mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-02-20 13:46:52 +01:00
Correct lot of bugs
This commit is contained in:
parent
9c3fa5a9eb
commit
3042bf4dc2
|
|
@ -33,13 +33,15 @@ $langs->load("loan");
|
|||
$id=GETPOST('id','int');
|
||||
$action=GETPOST('action');
|
||||
$confirm=GETPOST('confirm');
|
||||
$cancel=GETPOST('cancel');
|
||||
$cancel=GETPOST('cancel','alpha');
|
||||
|
||||
// Security check
|
||||
$socid = GETPOST('socid','int');
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result = restrictedArea($user, 'loan', $id, '','');
|
||||
|
||||
$object = new Loan($db);
|
||||
|
||||
/*
|
||||
* Actions
|
||||
*/
|
||||
|
|
@ -47,7 +49,6 @@ $result = restrictedArea($user, 'loan', $id, '','');
|
|||
// Classify paid
|
||||
if ($action == 'confirm_paid' && $confirm == 'yes')
|
||||
{
|
||||
$object = new Loan($db);
|
||||
$object->fetch($id);
|
||||
$result = $object->set_paid($user);
|
||||
}
|
||||
|
|
@ -55,7 +56,6 @@ if ($action == 'confirm_paid' && $confirm == 'yes')
|
|||
// Delete loan
|
||||
if ($action == 'confirm_delete' && $confirm == 'yes')
|
||||
{
|
||||
$object = new Loan($db);
|
||||
$object->fetch($id);
|
||||
$result=$object->delete($user);
|
||||
if ($result > 0)
|
||||
|
|
@ -72,86 +72,88 @@ if ($action == 'confirm_delete' && $confirm == 'yes')
|
|||
// Add loan
|
||||
if ($action == 'add' && $user->rights->loan->write)
|
||||
{
|
||||
$datestart=@dol_mktime(12,0,0, $_POST["startmonth"], $_POST["startday"], $_POST["startyear"]);
|
||||
$dateend=@dol_mktime(12,0,0, $_POST["endmonth"], $_POST["endday"], $_POST["endyear"]);
|
||||
|
||||
if (! $datestart)
|
||||
if (! $cancel)
|
||||
{
|
||||
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("DateStart")), 'errors');
|
||||
$action = 'create';
|
||||
}
|
||||
elseif (! $dateend)
|
||||
{
|
||||
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("DateEnd")), 'errors');
|
||||
$action = 'create';
|
||||
}
|
||||
elseif (! $_POST["capital"])
|
||||
{
|
||||
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("Capital")), 'errors');
|
||||
$action = 'create';
|
||||
}
|
||||
else
|
||||
{
|
||||
$object = new Loan($db);
|
||||
|
||||
$object->label = $_POST["label"];
|
||||
$object->fk_bank = $_POST["accountid"];
|
||||
$object->capital = $_POST["capital"];
|
||||
$object->datestart = $datestart;
|
||||
$object->dateend = $dateend;
|
||||
$object->nbterm = $_POST["nbterm"];
|
||||
$object->rate = $_POST["rate"];
|
||||
$datestart=@dol_mktime(12,0,0, $_POST["startmonth"], $_POST["startday"], $_POST["startyear"]);
|
||||
$dateend=@dol_mktime(12,0,0, $_POST["endmonth"], $_POST["endday"], $_POST["endyear"]);
|
||||
|
||||
$object->account_capital = $_POST["accountancy_account_capital"];
|
||||
$object->account_insurance = $_POST["accountancy_account_insurance"];
|
||||
$object->account_interest = $_POST["accountancy_account_interest"];
|
||||
|
||||
$id=$object->create($user);
|
||||
if ($id <= 0)
|
||||
if (! $datestart)
|
||||
{
|
||||
setEventMessage($object->error, 'errors');
|
||||
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("DateStart")), 'errors');
|
||||
$action = 'create';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ($action == 'update' && ! $cancel && $user->rights->loan->write)
|
||||
{
|
||||
$datestart=dol_mktime(12,0,0, $GETPOST("startmonth"), $GETPOST("startday"), $GETPOST("startyear"));
|
||||
$dateend=dol_mktime(12,0,0, $GETPOST("endmonth"), $GETPOST("endday"), $GETPOST("endyear"));
|
||||
if (! $datestart)
|
||||
{
|
||||
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("DateStart")), 'errors');
|
||||
$action = 'edit';
|
||||
}
|
||||
elseif (! $dateend)
|
||||
{
|
||||
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("DateEnd")), 'errors');
|
||||
$action = 'edit';
|
||||
}
|
||||
else
|
||||
{
|
||||
$object = new Loan($db);
|
||||
if ($object->fetch($id))
|
||||
elseif (! $dateend)
|
||||
{
|
||||
$object->label = $GETPOST("label");
|
||||
$object->datestart = $datestart;
|
||||
$object->dateend = $dateend;
|
||||
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("DateEnd")), 'errors');
|
||||
$action = 'create';
|
||||
}
|
||||
|
||||
if ($object->update($id, $user) > 0)
|
||||
elseif (! $_POST["capital"])
|
||||
{
|
||||
$action = '';
|
||||
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("Capital")), 'errors');
|
||||
$action = 'create';
|
||||
}
|
||||
else
|
||||
{
|
||||
$action = 'edit';
|
||||
setEventMessage($object->error, 'errors');
|
||||
$object->label = $_POST["label"];
|
||||
$object->fk_bank = $_POST["accountid"];
|
||||
$object->capital = $_POST["capital"];
|
||||
$object->datestart = $datestart;
|
||||
$object->dateend = $dateend;
|
||||
$object->nbterm = $_POST["nbterm"];
|
||||
$object->rate = $_POST["rate"];
|
||||
|
||||
$object->account_capital = $_POST["accountancy_account_capital"];
|
||||
$object->account_insurance = $_POST["accountancy_account_insurance"];
|
||||
$object->account_interest = $_POST["accountancy_account_interest"];
|
||||
|
||||
$id=$object->create($user);
|
||||
if ($id <= 0)
|
||||
{
|
||||
setEventMessage($object->error, 'errors');
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
header("Location: index.php");
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
||||
// Update record
|
||||
else if ($action == 'update' && $user->rights->loan->write)
|
||||
{
|
||||
if (! $cancel)
|
||||
{
|
||||
$result = $object->fetch($id);
|
||||
|
||||
if ($object->fetch($id))
|
||||
{
|
||||
$object->label = GETPOST("label");
|
||||
$object->datestart = dol_mktime(12, 0, 0, GETPOST('startmonth','int'), GETPOST('startday','int'), GETPOST('startyear','int'));
|
||||
$object->dateend = dol_mktime(12, 0, 0, GETPOST('endmonth','int'), GETPOST('endday','int'), GETPOST('endyear','int'));
|
||||
$object->nbterm = GETPOST("nbterm");
|
||||
$object->rate = GETPOST("rate");
|
||||
}
|
||||
|
||||
$result = $object->update($user);
|
||||
|
||||
if ($result > 0)
|
||||
{
|
||||
header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id);
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
setEventMessage($object->error, 'errors');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* View
|
||||
|
|
@ -212,10 +214,10 @@ if ($action == 'create')
|
|||
print '</td></tr>';
|
||||
|
||||
// Number of terms
|
||||
print '<tr><td class="fieldrequired">'.$langs->trans("Nbterms").'</td><td><input name="nbterm" size="4" value="' . GETPOST('nbterm') . '"></td></tr>';
|
||||
print '<tr><td class="fieldrequired">'.$langs->trans("Nbterms").'</td><td><input name="nbterm" size="5" value="' . GETPOST('nbterm') . '"></td></tr>';
|
||||
|
||||
// Rate
|
||||
print '<tr><td class="fieldrequired">'.$langs->trans("Rate").'</td><td><input name="rate" size="10" value="' . GETPOST("rate") . '"></td></tr>';
|
||||
print '<tr><td class="fieldrequired">'.$langs->trans("Rate").'</td><td><input name="rate" size="5" value="' . GETPOST("rate") . '"> %</td></tr>';
|
||||
|
||||
// Note
|
||||
print '<tr>';
|
||||
|
|
@ -273,7 +275,6 @@ if ($action == 'create')
|
|||
// View
|
||||
if ($id > 0)
|
||||
{
|
||||
$object = new Loan($db);
|
||||
$result = $object->fetch($id);
|
||||
|
||||
if ($result > 0)
|
||||
|
|
@ -297,8 +298,10 @@ if ($id > 0)
|
|||
|
||||
if ($action == 'edit')
|
||||
{
|
||||
print '<form name="loan" action="' . $_SERVER["PHP_SELF"] . '?id=$object->id&action=update" method="POST">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<form name="update" action="' . $_SERVER["PHP_SELF"] . '" method="POST">' . "\n";
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<input type="hidden" name="action" value="update">';
|
||||
print '<input type="hidden" name="id" value="'.$id.'">';
|
||||
}
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
|
|
@ -353,7 +356,7 @@ if ($id > 0)
|
|||
print '<tr><td>'.$langs->trans("Nbterms").'</td><td>'.$object->nbterm.'</td></tr>';
|
||||
|
||||
// Rate
|
||||
print '<tr><td>'.$langs->trans("Rate").'</td><td>'.$object->rate.'</td></tr>';
|
||||
print '<tr><td>'.$langs->trans("Rate").'</td><td>'.$object->rate.' %</td></tr>';
|
||||
|
||||
// Status
|
||||
print '<tr><td>'.$langs->trans("Status").'</td><td>'.$object->getLibStatut(4, $totalpaye).'</td></tr>';
|
||||
|
|
@ -378,8 +381,9 @@ if ($id > 0)
|
|||
/*
|
||||
* Payments
|
||||
*/
|
||||
$sql = "SELECT p.rowid, p.num_payment, datep as dp, p.amount,";
|
||||
$sql.= "c.libelle as paiement_type";
|
||||
$sql = "SELECT p.rowid, p.num_payment, datep as dp,";
|
||||
$sql.= " p.amount_capital, p.amount_insurance, p.amount_interest,";
|
||||
$sql.= " c.libelle as paiement_type";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."payment_loan as p";
|
||||
$sql.= ", ".MAIN_DB_PREFIX."c_paiement as c ";
|
||||
$sql.= ", ".MAIN_DB_PREFIX."loan as l";
|
||||
|
|
@ -400,7 +404,9 @@ if ($id > 0)
|
|||
print '<td>'.$langs->trans("RefPayment").'</td>';
|
||||
print '<td>'.$langs->trans("Date").'</td>';
|
||||
print '<td>'.$langs->trans("Type").'</td>';
|
||||
print '<td align="right">'.$langs->trans("Amount").'</td>';
|
||||
print '<td align="center" colspan="2">'.$langs->trans("Insurance").'</td>';
|
||||
print '<td align="center" colspan="2">'.$langs->trans("Interest").'</td>';
|
||||
print '<td align="center" colspan="2">'.$langs->trans("Capital").'</td>';
|
||||
print '<td> </td>';
|
||||
print '</tr>';
|
||||
|
||||
|
|
@ -413,21 +419,23 @@ if ($id > 0)
|
|||
print '<a href="'.DOL_URL_ROOT.'/compta/loan/payment/card.php?id='.$objp->rowid.'">'.img_object($langs->trans("Payment"),"payment").' '.$objp->rowid.'</a></td>';
|
||||
print '<td>'.dol_print_date($db->jdate($objp->dp),'day')."</td>\n";
|
||||
print "<td>".$objp->paiement_type.' '.$objp->num_payment."</td>\n";
|
||||
print '<td align="right">'.price($objp->amount)."</td><td> ".$langs->trans("Currency".$conf->currency)."</td>\n";
|
||||
print '<td align="right">'.price($objp->amount_insurance)."</td><td> ".$langs->trans("Currency".$conf->currency)."</td>\n";
|
||||
print '<td align="right">'.price($objp->amount_interest)."</td><td> ".$langs->trans("Currency".$conf->currency)."</td>\n";
|
||||
print '<td align="right">'.price($objp->amount_capital)."</td><td> ".$langs->trans("Currency".$conf->currency)."</td>\n";
|
||||
print "</tr>";
|
||||
$totalpaid += $objp->amount;
|
||||
$totalpaid += $objp->amount_capital;
|
||||
$i++;
|
||||
}
|
||||
|
||||
if ($object->paid == 0)
|
||||
{
|
||||
print "<tr><td colspan=\"3\" align=\"right\">".$langs->trans("AlreadyPaid")." :</td><td align=\"right\"><b>".price($totalpaid)."</b></td><td> ".$langs->trans("Currency".$conf->currency)."</td></tr>\n";
|
||||
print "<tr><td colspan=\"3\" align=\"right\">".$langs->trans("AmountExpected")." :</td><td align=\"right\" bgcolor=\"#d0d0d0\">".price($object->capital)."</td><td bgcolor=\"#d0d0d0\"> ".$langs->trans("Currency".$conf->currency)."</td></tr>\n";
|
||||
print '<tr><td colspan="7" align="right">'.$langs->trans("AlreadyPaid").' :</td><td align="right"><b>'.price($totalpaid).'</b></td><td> '.$langs->trans("Currency".$conf->currency).'</td></tr>';
|
||||
print '<tr><td colspan="7" align="right">'.$langs->trans("AmountExpected").' :</td><td align="right" bgcolor="#d0d0d0">'.price($object->capital).'</td><td bgcolor="#d0d0d0"> '.$langs->trans("Currency".$conf->currency).'</td></tr>';
|
||||
|
||||
$staytopay = $object->capital - $totalpaid;
|
||||
|
||||
print "<tr><td colspan=\"3\" align=\"right\">".$langs->trans("RemainderToPay")." :</td>";
|
||||
print "<td align=\"right\" bgcolor=\"#f0f0f0\"><b>".price($staytopay)."</b></td><td bgcolor=\"#f0f0f0\"> ".$langs->trans("Currency".$conf->currency)."</td></tr>\n";
|
||||
print '<tr><td colspan="7" align="right">'.$langs->trans("RemainderToPay").' :</td>';
|
||||
print '<td align="right" bgcolor="#f0f0f0"><b>'.price($staytopay).'</b></td><td bgcolor="#f0f0f0"> '.$langs->trans("Currency".$conf->currency).'</td></tr>';
|
||||
}
|
||||
print "</table>";
|
||||
$db->free($resql);
|
||||
|
|
@ -444,7 +452,7 @@ if ($id > 0)
|
|||
*/
|
||||
if ($action != 'edit')
|
||||
{
|
||||
print "<div class=\"tabsAction\">\n";
|
||||
print '<div class="tabsAction">';
|
||||
|
||||
// Edit
|
||||
if ($user->rights->loan->write)
|
||||
|
|
|
|||
|
|
@ -263,8 +263,8 @@ class Loan extends CommonObject
|
|||
/**
|
||||
* Update loan
|
||||
*
|
||||
* @param User $user Utilisateur qui modifie
|
||||
* @return int <0 si erreur, >0 si ok
|
||||
* @param User $user User who modified
|
||||
* @return int <0 if error, >0 if ok
|
||||
*/
|
||||
function update($user)
|
||||
{
|
||||
|
|
@ -273,7 +273,8 @@ class Loan extends CommonObject
|
|||
$sql = "UPDATE ".MAIN_DB_PREFIX."loan";
|
||||
$sql.= " SET label='".$this->db->escape($this->label)."',";
|
||||
$sql.= " datestart='".$this->db->idate($this->datestart)."',";
|
||||
$sql.= " dateend='".$this->db->idate($this->dateend)."'";
|
||||
$sql.= " dateend='".$this->db->idate($this->dateend)."',";
|
||||
$sql.= " fk_user_modif = ".$user->id;
|
||||
$sql.= " WHERE rowid=".$this->id;
|
||||
|
||||
dol_syslog(get_class($this)."::update", LOG_DEBUG);
|
||||
|
|
@ -379,7 +380,7 @@ class Loan extends CommonObject
|
|||
* @param int $maxlen Label max length
|
||||
* @return string Chaine with URL
|
||||
*/
|
||||
function getNameUrl($withpicto=0,$maxlen=0)
|
||||
function getLinkUrl($withpicto=0,$maxlen=0)
|
||||
{
|
||||
global $langs;
|
||||
|
||||
|
|
@ -432,40 +433,43 @@ class Loan extends CommonObject
|
|||
* @param int $id Id of record
|
||||
* @return void
|
||||
*/
|
||||
function info($id)
|
||||
{
|
||||
$sql = "SELECT l.rowid, l.tms as datem, l.fk_user_author as user_author, l.datec as datec";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."loan as l";
|
||||
$sql.= " WHERE l.rowid = ".$id;
|
||||
function info($id)
|
||||
{
|
||||
$sql = 'SELECT l.rowid, l.datec, l.fk_user_author, l.fk_user_modif,';
|
||||
$sql.= ' l.tms';
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'loan as l';
|
||||
$sql.= ' WHERE l.rowid = '.$id;
|
||||
|
||||
dol_syslog(get_class($this)."::info", LOG_DEBUG);
|
||||
$result=$this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
if ($this->db->num_rows($result))
|
||||
{
|
||||
$obj = $this->db->fetch_object($result);
|
||||
|
||||
$this->id = $obj->rowid;
|
||||
|
||||
if ($obj->user_author) {
|
||||
$cuser = new User($this->db);
|
||||
$cuser->fetch($obj->user_author);
|
||||
$this->user_creation = $cuser;
|
||||
}
|
||||
|
||||
$this->date_creation = $this->db->jdate($obj->datec);
|
||||
$this->date_modification = $this->db->jdate($obj->datem);
|
||||
|
||||
}
|
||||
|
||||
$this->db->free($result);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_print_error($this->db);
|
||||
}
|
||||
}
|
||||
}
|
||||
dol_syslog(get_class($this).'::info', LOG_DEBUG);
|
||||
$result = $this->db->query($sql);
|
||||
|
||||
if ($result)
|
||||
{
|
||||
if ($this->db->num_rows($result))
|
||||
{
|
||||
$obj = $this->db->fetch_object($result);
|
||||
$this->id = $obj->rowid;
|
||||
if ($obj->fk_user_author)
|
||||
{
|
||||
$cuser = new User($this->db);
|
||||
$cuser->fetch($obj->fk_user_author);
|
||||
$this->user_creation = $cuser;
|
||||
}
|
||||
if ($obj->fk_user_modif)
|
||||
{
|
||||
$muser = new User($this->db);
|
||||
$muser->fetch($obj->fk_user_modif);
|
||||
$this->user_modification = $muser;
|
||||
}
|
||||
$this->date_creation = $this->db->jdate($obj->datec);
|
||||
if (empty($obj->fk_user_modif)) $obj->tms = "";
|
||||
$this->date_modification = $this->db->jdate($obj->tms);
|
||||
}
|
||||
$this->db->free($result);
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_print_error($this->db);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -39,8 +39,10 @@ class PaymentLoan extends CommonObject
|
|||
var $datec='';
|
||||
var $tms='';
|
||||
var $datep='';
|
||||
var $amount; // Total amount of payment
|
||||
var $amounts=array(); // Array of amounts
|
||||
var $amount_capital; // Total amount of payment
|
||||
var $amount_insurance;
|
||||
var $amount_interest;
|
||||
var $fk_typepayment;
|
||||
var $num_payment;
|
||||
var $note;
|
||||
|
|
@ -82,7 +84,9 @@ class PaymentLoan extends CommonObject
|
|||
|
||||
// Clean parameters
|
||||
if (isset($this->fk_loan)) $this->fk_loan = trim($this->fk_loan);
|
||||
if (isset($this->amount)) $this->amount = trim($this->amount);
|
||||
if (isset($this->amount_capital)) $this->amount_capital = trim($this->amount_capital);
|
||||
if (isset($this->amount_insurance)) $this->amount_insurance = trim($this->amount_insurance);
|
||||
if (isset($this->amount_interest)) $this->amount_interest = trim($this->amount_interest);
|
||||
if (isset($this->fk_typepayment)) $this->fk_typepayment = trim($this->fk_typepayment);
|
||||
if (isset($this->num_payment)) $this->num_payment = trim($this->num_payment);
|
||||
if (isset($this->note)) $this->note = trim($this->note);
|
||||
|
|
@ -107,7 +111,7 @@ class PaymentLoan extends CommonObject
|
|||
|
||||
if ($totalamount != 0)
|
||||
{
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."payment_loan (fk_loan, datec, datep, amount,";
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."payment_loan (fk_loan, datec, datep, amount_capital, amount_insurance, amount_interest,";
|
||||
$sql.= " fk_typepayment, num_payment, note, fk_user_creat, fk_bank)";
|
||||
$sql.= " VALUES ($this->chid, '".$this->db->idate($now)."',";
|
||||
$sql.= " '".$this->db->idate($this->datepaid)."',";
|
||||
|
|
@ -130,7 +134,7 @@ class PaymentLoan extends CommonObject
|
|||
|
||||
if ($totalamount != 0 && ! $error)
|
||||
{
|
||||
$this->amount=$totalamount;
|
||||
$this->amount_capital=$totalamount;
|
||||
$this->total=$totalamount; // deprecated
|
||||
$this->db->commit();
|
||||
return $this->id;
|
||||
|
|
@ -158,7 +162,9 @@ class PaymentLoan extends CommonObject
|
|||
$sql.= " t.datec,";
|
||||
$sql.= " t.tms,";
|
||||
$sql.= " t.datep,";
|
||||
$sql.= " t.amount,";
|
||||
$sql.= " t.amount_capital,";
|
||||
$sql.= " t.amount_insurance,";
|
||||
$sql.= " t.amount_interest,";
|
||||
$sql.= " t.fk_typepayment,";
|
||||
$sql.= " t.num_payment,";
|
||||
$sql.= " t.note,";
|
||||
|
|
@ -186,7 +192,9 @@ class PaymentLoan extends CommonObject
|
|||
$this->datec = $this->db->jdate($obj->datec);
|
||||
$this->tms = $this->db->jdate($obj->tms);
|
||||
$this->datep = $this->db->jdate($obj->datep);
|
||||
$this->amount = $obj->amount;
|
||||
$this->amount_capital = $obj->amount_capital;
|
||||
$this->amount_insurance = $obj->amount_insurance;
|
||||
$this->amount_interest = $obj->amount_interest;
|
||||
$this->fk_typepayment = $obj->fk_typepayment;
|
||||
$this->num_payment = $obj->num_payment;
|
||||
$this->note = $obj->note;
|
||||
|
|
@ -225,9 +233,10 @@ class PaymentLoan extends CommonObject
|
|||
$error=0;
|
||||
|
||||
// Clean parameters
|
||||
|
||||
if (isset($this->fk_loan)) $this->fk_loan=trim($this->fk_loan);
|
||||
if (isset($this->amount)) $this->amount=trim($this->amount);
|
||||
if (isset($this->amount_capital)) $this->amount_capital=trim($this->amount_capital);
|
||||
if (isset($this->amount_insurance)) $this->amount_insurance=trim($this->amount_insurance);
|
||||
if (isset($this->amount_interest)) $this->amount_interest=trim($this->amount_interest);
|
||||
if (isset($this->fk_typepayment)) $this->fk_typepayment=trim($this->fk_typepayment);
|
||||
if (isset($this->num_payment)) $this->num_payment=trim($this->num_payment);
|
||||
if (isset($this->note)) $this->note=trim($this->note);
|
||||
|
|
@ -245,7 +254,9 @@ class PaymentLoan extends CommonObject
|
|||
$sql.= " datec=".(dol_strlen($this->datec)!=0 ? "'".$this->db->idate($this->datec)."'" : 'null').",";
|
||||
$sql.= " tms=".(dol_strlen($this->tms)!=0 ? "'".$this->db->idate($this->tms)."'" : 'null').",";
|
||||
$sql.= " datep=".(dol_strlen($this->datep)!=0 ? "'".$this->db->idate($this->datep)."'" : 'null').",";
|
||||
$sql.= " amount=".(isset($this->amount)?$this->amount:"null").",";
|
||||
$sql.= " amount_capital=".(isset($this->amount_capital)?$this->amount_capital:"null").",";
|
||||
$sql.= " amount_insurance=".(isset($this->amount_insurance)?$this->amount_insurance:"null").",";
|
||||
$sql.= " amount_interest=".(isset($this->amount_interest)?$this->amount_interest:"null").",";
|
||||
$sql.= " fk_typepayment=".(isset($this->fk_typepayment)?$this->fk_typepayment:"null").",";
|
||||
$sql.= " num_payment=".(isset($this->num_payment)?"'".$this->db->escape($this->num_payment)."'":"null").",";
|
||||
$sql.= " note=".(isset($this->note)?"'".$this->db->escape($this->note)."'":"null").",";
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ $limit = $conf->liste_limit;
|
|||
|
||||
$search_ref=GETPOST('search_ref','int');
|
||||
$search_label=GETPOST('search_label','alpha');
|
||||
$search_amount=GETPOST('search_amount','alpha');
|
||||
$filtre=GETPOST("filtre");
|
||||
|
||||
if (GETPOST("button_removefilter"))
|
||||
|
|
@ -60,36 +61,37 @@ if (GETPOST("button_removefilter"))
|
|||
* View
|
||||
*/
|
||||
|
||||
$loan = new Loan($db);
|
||||
$loan_static = new Loan($db);
|
||||
|
||||
llxHeader();
|
||||
|
||||
$sql = "SELECT l.rowid, l.label, l.capital, l.datestart, l.dateend,";
|
||||
$sql.= " SUM(pl.amount) as alreadypayed";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."loan as l,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."payment_loan as pl";
|
||||
$sql.= " WHERE pl.fk_loan = l.rowid";
|
||||
$sql.= " AND l.entity = ".$conf->entity;
|
||||
if (GETPOST("search_ref")) $sql.=" AND (l.rowid = ".$db->escape($search_ref).")";
|
||||
if (GETPOST("search_label")) $sql.=" AND l.label LIKE '%".$db->escape($search_label)."%'";
|
||||
|
||||
$sql.= " SUM(pl.amount_capital) as alreadypayed";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."loan as l LEFT JOIN ".MAIN_DB_PREFIX."payment_loan AS pl";
|
||||
$sql.= " ON l.rowid = pl.fk_loan";
|
||||
$sql.= " WHERE l.entity = ".$conf->entity;
|
||||
if ($search_amount) $sql.=" AND l.capital='".$db->escape(price2num(trim($search_amount)))."'";
|
||||
if ($search_ref) $sql.=" AND l.rowid = ".$db->escape($search_ref);
|
||||
if ($search_label) $sql.=" AND l.label LIKE '%".$db->escape($search_label)."%'";
|
||||
if ($filtre) {
|
||||
$filtre=str_replace(":","=",$filtre);
|
||||
$sql .= " AND ".$filtre;
|
||||
}
|
||||
$sql.= " GROUP BY l.rowid, l.label, l.capital, l.datestart, l.dateend";
|
||||
$sql.= $db->order($sortfield,$sortorder);
|
||||
$sql.= $db->plimit($limit + 1, $offset);
|
||||
$sql.= $db->plimit($limit+1, $offset);
|
||||
|
||||
//print $sql;
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$num = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
$var=true;
|
||||
|
||||
print_fiche_titre($langs->trans("Loans"));
|
||||
|
||||
$i = 0;
|
||||
print '<form method="get" action="'.$_SERVER["PHP_SELF"].'">'."\n";
|
||||
print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">'."\n";
|
||||
print '<table class="noborder" width="100%">';
|
||||
print '<tr class="liste_titre">';
|
||||
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"l.rowid","",$param,"",$sortfield,$sortorder);
|
||||
|
|
@ -101,9 +103,9 @@ if ($resql)
|
|||
|
||||
// Filters lines
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td class="liste_titre"> </td>';
|
||||
print '<td class="liste_titre"><input type="text" class="flat" size="8" name="search_label" value="'.GETPOST("search_label").'"></td>';
|
||||
print '<td class="liste_titre"> </td>';
|
||||
print '<td class="liste_titre"><input class="flat" size="4" type="text" name="search_ref" value="'.$search_ref.'"></td>';
|
||||
print '<td class="liste_titre"><input class="flat" size="12" type="text" name="search_label" value="'.$search_label.'"></td>';
|
||||
print '<td class="liste_titre" align="right" ><input class="flat" size="8" type="text" name="search_amount" value="'.$search_amount.'"></td>';
|
||||
print '<td class="liste_titre"> </td>';
|
||||
print '<td align="right" class="liste_titre">';
|
||||
print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" name="button_search" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
|
||||
|
|
@ -111,19 +113,15 @@ if ($resql)
|
|||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
$var=true;
|
||||
while ($i < min($num,$limit))
|
||||
{
|
||||
$obj = $db->fetch_object($resql);
|
||||
|
||||
|
||||
$var = !$var;
|
||||
print "<tr ".$bc[$var].">";
|
||||
|
||||
// Ref
|
||||
print '<td width="60">';
|
||||
$loan->id = $obj->id;
|
||||
print $loan->getNameUrl(1,'20');
|
||||
print '</td>';
|
||||
print '<td><a href="card.php?id='.$obj->rowid.'">'.img_object($langs->trans("ShowLoan"),"label").' '.$obj->rowid.'</a></td>';
|
||||
|
||||
// Label
|
||||
print '<td>'.dol_trunc($obj->label,42).'</td>';
|
||||
|
|
@ -134,7 +132,7 @@ if ($resql)
|
|||
// Date start
|
||||
print '<td width="110" align="center">'.dol_print_date($db->jdate($obj->datestart), 'day').'</td>';
|
||||
|
||||
print '<td align="right" class="nowrap">'.$loan->LibStatut($obj->paid,5,$obj->alreadypayed).'</a></td>';
|
||||
print '<td align="right" class="nowrap">'.$loan_static->LibStatut($obj->paid,5,$obj->alreadypayed).'</a></td>';
|
||||
|
||||
print "</tr>\n";
|
||||
|
||||
|
|
|
|||
|
|
@ -118,7 +118,6 @@ if ($action == 'confirm_valide' && $confirm == 'yes' && $user->rights->loan->wri
|
|||
llxHeader();
|
||||
|
||||
$loan = new Loan($db);
|
||||
|
||||
$form = new Form($db);
|
||||
|
||||
$h=0;
|
||||
|
|
@ -168,7 +167,9 @@ print '<tr><td valign="top">'.$langs->trans('Mode').'</td><td colspan="3">'.$lan
|
|||
print '<tr><td valign="top">'.$langs->trans('Number').'</td><td colspan="3">'.$payment->num_payment.'</td></tr>';
|
||||
|
||||
// Amount
|
||||
print '<tr><td valign="top">'.$langs->trans('Amount').'</td><td colspan="3">'.price($payment->amount, 0, $outputlangs, 1, -1, -1, $conf->currency).'</td></tr>';
|
||||
print '<tr><td valign="top">'.$langs->trans('Capital').'</td><td colspan="3">'.price($payment->amount_capital, 0, $outputlangs, 1, -1, -1, $conf->currency).'</td></tr>';
|
||||
print '<tr><td valign="top">'.$langs->trans('Insurance').'</td><td colspan="3">'.price($payment->amount_insurance, 0, $outputlangs, 1, -1, -1, $conf->currency).'</td></tr>';
|
||||
print '<tr><td valign="top">'.$langs->trans('Interest').'</td><td colspan="3">'.price($payment->amount_interest, 0, $outputlangs, 1, -1, -1, $conf->currency).'</td></tr>';
|
||||
|
||||
// Note
|
||||
print '<tr><td valign="top">'.$langs->trans('Note').'</td><td colspan="3">'.nl2br($payment->note).'</td></tr>';
|
||||
|
|
@ -198,7 +199,7 @@ print '</table>';
|
|||
*/
|
||||
|
||||
$disable_delete = 0;
|
||||
$sql = 'SELECT l.rowid as id, l.label, l.paid, l.capital as capital, pl.amount';
|
||||
$sql = 'SELECT l.rowid as id, l.label, l.paid, l.capital as capital, pl.amount_capital, pl.amount_insurance, pl.amount_interest';
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'payment_loan as pl,'.MAIN_DB_PREFIX.'loan as l';
|
||||
$sql.= ' WHERE pl.fk_loan = l.rowid';
|
||||
$sql.= ' AND l.entity = '.$conf->entity;
|
||||
|
|
@ -234,22 +235,22 @@ if ($resql)
|
|||
// Ref
|
||||
print '<td>';
|
||||
$loan->fetch($objp->id);
|
||||
print $loan->getNameUrl(1);
|
||||
print $loan->getLinkUrl(1);
|
||||
print "</td>\n";
|
||||
// Label
|
||||
print '<td>'.$objp->label.'</td>';
|
||||
// Expected to pay
|
||||
print '<td align="right">'.price($objp->capital).'</td>';
|
||||
// Status
|
||||
print '<td align="center">'.$loan->getLibStatut(4,$objp->amount).'</td>';
|
||||
print '<td align="center">'.$loan->getLibStatut(4,$objp->amount_capital).'</td>';
|
||||
// Amount payed
|
||||
print '<td align="right">'.price($objp->amount).'</td>';
|
||||
print '<td align="right">'.price($objp->amount_capital).'</td>';
|
||||
print "</tr>\n";
|
||||
if ($objp->paye == 1) // If at least one invoice is paid, disable delete
|
||||
if ($objp->paid == 1) // If at least one invoice is paid, disable delete
|
||||
{
|
||||
$disable_delete = 1;
|
||||
}
|
||||
$total = $total + $objp->amount;
|
||||
$total = $total + $objp->amount_capital;
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
|
|
@ -267,7 +268,7 @@ print '</div>';
|
|||
|
||||
|
||||
/*
|
||||
* Boutons Actions
|
||||
* Actions buttons
|
||||
*/
|
||||
print '<div class="tabsAction">';
|
||||
|
||||
|
|
|
|||
|
|
@ -29,9 +29,10 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
|||
$langs->load("bills");
|
||||
$langs->load("loan");
|
||||
|
||||
$chid=GETPOST("id");
|
||||
$chid=GETPOST('id','int');
|
||||
$action=GETPOST('action');
|
||||
$amounts = array();
|
||||
$cancel=GETPOST('cancel','alpha');
|
||||
|
||||
// Security check
|
||||
$socid=0;
|
||||
|
|
@ -47,7 +48,7 @@ if ($action == 'add_payment')
|
|||
{
|
||||
$error=0;
|
||||
|
||||
if ($_POST["cancel"])
|
||||
if ($cancel)
|
||||
{
|
||||
$loc = DOL_URL_ROOT.'/compta/loan/card.php?id='.$chid;
|
||||
header("Location: ".$loc);
|
||||
|
|
@ -98,12 +99,15 @@ if ($action == 'add_payment')
|
|||
|
||||
// Create a line of payments
|
||||
$payment = new PaymentLoan($db);
|
||||
$payment->chid = $chid;
|
||||
$payment->datepaid = $datepaid;
|
||||
$payment->amounts = $amounts; // Tableau de montant
|
||||
$payment->paymenttype = $_POST["paymenttype"];
|
||||
$payment->num_payment = $_POST["num_payment"];
|
||||
$payment->note = $_POST["note"];
|
||||
$payment->chid = $chid;
|
||||
$payment->datepaid = $datepaid;
|
||||
$payment->amounts = $amounts; // Tableau de montant
|
||||
$payment->amount_capital = $_POST["amount_capital"];
|
||||
$payment->amount_insurance = $_POST["amount_insurance"];
|
||||
$payment->amount_interest = $_POST["amount_interest"];
|
||||
$payment->paymenttype = $_POST["paymenttype"];
|
||||
$payment->num_payment = $_POST["num_payment"];
|
||||
$payment->note = $_POST["note"];
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
|
|
@ -177,12 +181,12 @@ if ($_GET["action"] == 'create')
|
|||
|
||||
print '<table cellspacing="0" class="border" width="100%" cellpadding="2">';
|
||||
|
||||
print "<tr class=\"liste_titre\"><td colspan=\"3\">".$langs->trans("Loan")."</td>";
|
||||
print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("Loan").'</td>';
|
||||
|
||||
print '<tr><td width="25%">'.$langs->trans("Ref").'</td><td colspan="2"><a href="'.DOL_URL_ROOT.'/compta/loan/card.php?id='.$chid.'">'.$chid.'</a></td></tr>';
|
||||
print '<tr><td>'.$langs->trans("DateStart")."</td><td colspan=\"2\">".dol_print_date($loan->datestart,'day')."</td></tr>\n";
|
||||
print '<tr><td>'.$langs->trans("DateStart").'</td><td colspan="2">'.dol_print_date($loan->datestart,'day')."</td></tr>\n";
|
||||
print '<tr><td>'.$langs->trans("Label").'</td><td colspan="2">'.$loan->label."</td></tr>\n";
|
||||
print '<tr><td>'.$langs->trans("Amount")."</td><td colspan=\"2\">".price($loan->capital,0,$outputlangs,1,-1,-1,$conf->currency).'</td></tr>';
|
||||
print '<tr><td>'.$langs->trans("Amount").'</td><td colspan="2">'.price($loan->capital,0,$outputlangs,1,-1,-1,$conf->currency).'</td></tr>';
|
||||
|
||||
$sql = "SELECT sum(p.amount) as total";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."payment_loan as p";
|
||||
|
|
@ -204,7 +208,7 @@ if ($_GET["action"] == 'create')
|
|||
|
||||
print '<table cellspacing="0" class="border" width="100%" cellpadding="2">';
|
||||
print '<tr class="liste_titre">';
|
||||
print "<td colspan=\"3\">".$langs->trans("Payment").'</td>';
|
||||
print '<td colspan="3">'.$langs->trans("Payment").'</td>';
|
||||
print '</tr>';
|
||||
|
||||
print '<tr><td width="25%" class="fieldrequired">'.$langs->trans("Date").'</td><td colspan="2">';
|
||||
|
|
@ -249,10 +253,10 @@ if ($_GET["action"] == 'create')
|
|||
print '<table class="noborder" width="100%">';
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td align="left">'.$langs->trans("DateDue").'</td>';
|
||||
print '<td align="right">'.$langs->trans("Amount").'</td>';
|
||||
print '<td align="right">'.$langs->trans("Capital").'</td>';
|
||||
print '<td align="right">'.$langs->trans("AlreadyPaid").'</td>';
|
||||
print '<td align="right">'.$langs->trans("RemainderToPay").'</td>';
|
||||
print '<td align="center">'.$langs->trans("Amount").'</td>';
|
||||
print '<td align="right">'.$langs->trans("Amount").'</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
$var=True;
|
||||
|
|
@ -269,24 +273,44 @@ if ($_GET["action"] == 'create')
|
|||
|
||||
if ($objp->datestart > 0)
|
||||
{
|
||||
print "<td align=\"left\">".dol_print_date($objp->datestart,'day')."</td>\n";
|
||||
print '<td align="left" valign="center">'.dol_print_date($objp->datestart,'day').'</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print "<td align=\"center\"><b>!!!</b></td>\n";
|
||||
print '<td align="center" valign="center"><b>!!!</b></td>';
|
||||
}
|
||||
|
||||
print '<td align="right">'.price($objp->capital)."</td>";
|
||||
print '<td align="right" valign="center">'.price($objp->capital)."</td>";
|
||||
|
||||
print '<td align="right">'.price($sumpaid)."</td>";
|
||||
print '<td align="right" valign="center">'.price($sumpaid)."</td>";
|
||||
|
||||
print '<td align="right">'.price($objp->capital - $sumpaid)."</td>";
|
||||
print '<td align="right" valign="center">'.price($objp->capital - $sumpaid)."</td>";
|
||||
|
||||
print '<td align="center">';
|
||||
print '<td align="right">';
|
||||
if ($sumpaid < $objp->capital)
|
||||
{
|
||||
$namef = "amount_".$objp->id;
|
||||
print '<input type="text" size="8" name="'.$namef.'">';
|
||||
$namec = "amount_capital_".$objp->id;
|
||||
print $langs->trans("Capital") .': <input type="text" size="8" name="'.$namec.'">';
|
||||
}
|
||||
else
|
||||
{
|
||||
print '-';
|
||||
}
|
||||
print '<br>';
|
||||
if ($sumpaid < $objp->capital)
|
||||
{
|
||||
$namea = "amount_insurance_".$objp->id;
|
||||
print $langs->trans("Insurance") .': <input type="text" size="8" name="'.$namea.'">';
|
||||
}
|
||||
else
|
||||
{
|
||||
print '-';
|
||||
}
|
||||
print '<br>';
|
||||
if ($sumpaid < $objp->capital)
|
||||
{
|
||||
$namei = "amount_interest_".$objp->id;
|
||||
print $langs->trans("Interest") .': <input type="text" size="8" name="'.$namei.'">';
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -305,9 +329,9 @@ if ($_GET["action"] == 'create')
|
|||
// Print total
|
||||
print "<tr ".$bc[!$var].">";
|
||||
print '<td colspan="2" align="left">'.$langs->trans("Total").':</td>';
|
||||
print "<td align=\"right\"><b>".price($total_ttc)."</b></td>";
|
||||
print "<td align=\"right\"><b>".price($totalrecu)."</b></td>";
|
||||
print "<td align=\"right\"><b>".price($total_ttc - $totalrecu)."</b></td>";
|
||||
print '<td align="right"><b>"'.price($total_ttc).'"</b></td>';
|
||||
print '<td align="right"><b>"'.price($totalrecu).'"</b></td>';
|
||||
print '<td align="right"><b>"'.price($total_ttc - $totalrecu).'"</b></td>';
|
||||
print '<td align="center"> </td>';
|
||||
print "</tr>\n";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1099,48 +1099,6 @@ CREATE TABLE llx_usergroup_extrafields (
|
|||
|
||||
ALTER TABLE llx_usergroup_extrafields ADD INDEX idx_usergroup_extrafields (fk_object);
|
||||
|
||||
-- Loan
|
||||
create table llx_loan
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
entity integer DEFAULT 1 NOT NULL,
|
||||
datec datetime,
|
||||
tms timestamp,
|
||||
label varchar(80) NOT NULL,
|
||||
fk_bank integer,
|
||||
capital real default 0 NOT NULL,
|
||||
datestart date,
|
||||
dateend date,
|
||||
nbterm real,
|
||||
rate double NOT NULL,
|
||||
note text,
|
||||
capital_position real default 0,
|
||||
date_position date,
|
||||
paid smallint default 0 NOT NULL,
|
||||
accountancy_account_capital varchar(32),
|
||||
accountancy_account_insurance varchar(32),
|
||||
accountancy_account_interest varchar(32),
|
||||
fk_user_author integer DEFAULT NULL,
|
||||
fk_user_modif integer DEFAULT NULL,
|
||||
active tinyint DEFAULT 1 NOT NULL
|
||||
)ENGINE=innodb;
|
||||
|
||||
create table llx_payment_loan
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
fk_loan integer,
|
||||
datec datetime,
|
||||
tms timestamp,
|
||||
datep datetime,
|
||||
amount real DEFAULT 0,
|
||||
fk_typepayment integer NOT NULL,
|
||||
num_payment varchar(50),
|
||||
note text,
|
||||
fk_bank integer NOT NULL,
|
||||
fk_user_creat integer,
|
||||
fk_user_modif integer
|
||||
)ENGINE=innodb;
|
||||
|
||||
ALTER TABLE llx_contrat ADD COLUMN model_pdf varchar(255) DEFAULT NULL AFTER note_public;
|
||||
|
||||
ALTER TABLE llx_c_country ADD COLUMN favorite tinyint DEFAULT 0 AFTER active;
|
||||
|
|
|
|||
63
htdocs/install/mysql/migration/3.7.0-3.8.0.sql
Normal file
63
htdocs/install/mysql/migration/3.7.0-3.8.0.sql
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
--
|
||||
-- Be carefull to requests order.
|
||||
-- This file must be loaded by calling /install/index.php page
|
||||
-- when current version is 3.8.0 or higher.
|
||||
--
|
||||
-- To rename a table: ALTER TABLE llx_table RENAME TO llx_table_new;
|
||||
-- To add a column: ALTER TABLE llx_table ADD COLUMN newcol varchar(60) NOT NULL DEFAULT '0' AFTER existingcol;
|
||||
-- To rename a column: ALTER TABLE llx_table CHANGE COLUMN oldname newname varchar(60);
|
||||
-- To drop a column: ALTER TABLE llx_table DROP COLUMN oldname;
|
||||
-- To change type of field: ALTER TABLE llx_table MODIFY COLUMN name varchar(60);
|
||||
-- To drop a foreign key: ALTER TABLE llx_table DROP FOREIGN KEY fk_name;
|
||||
-- To restrict request to Mysql version x.y use -- VMYSQLx.y
|
||||
-- To restrict request to Pgsql version x.y use -- VPGSQLx.y
|
||||
-- To make pk to be auto increment (mysql): VMYSQL4.3 ALTER TABLE llx_c_shipment_mode CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT;
|
||||
-- To make pk to be auto increment (postgres): VPGSQL8.2 NOT POSSIBLE. MUST DELETE/CREATE TABLE
|
||||
-- To set a field as NULL: VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name DROP NOT NULL;
|
||||
-- To set a field as default NULL: VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET DEFAULT NULL;
|
||||
-- -- VPGSQL8.2 DELETE FROM llx_usergroup_user WHERE fk_user NOT IN (SELECT rowid from llx_user);
|
||||
-- -- VMYSQL4.1 DELETE FROM llx_usergroup_user WHERE fk_usergroup NOT IN (SELECT rowid from llx_usergroup);
|
||||
|
||||
-- Loan
|
||||
create table llx_loan
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
entity integer DEFAULT 1 NOT NULL,
|
||||
datec datetime,
|
||||
tms timestamp,
|
||||
label varchar(80) NOT NULL,
|
||||
fk_bank integer,
|
||||
capital real default 0 NOT NULL,
|
||||
datestart date,
|
||||
dateend date,
|
||||
nbterm real,
|
||||
rate double NOT NULL,
|
||||
note text,
|
||||
capital_position real default 0,
|
||||
date_position date,
|
||||
paid smallint default 0 NOT NULL,
|
||||
accountancy_account_capital varchar(32),
|
||||
accountancy_account_insurance varchar(32),
|
||||
accountancy_account_interest varchar(32),
|
||||
fk_user_author integer DEFAULT NULL,
|
||||
fk_user_modif integer DEFAULT NULL,
|
||||
active tinyint DEFAULT 1 NOT NULL
|
||||
)ENGINE=innodb;
|
||||
|
||||
create table llx_payment_loan
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
fk_loan integer,
|
||||
datec datetime,
|
||||
tms timestamp,
|
||||
datep datetime,
|
||||
amount_capital real DEFAULT 0,
|
||||
amount_insurance real DEFAULT 0,
|
||||
amount_interest real DEFAULT 0,
|
||||
fk_typepayment integer NOT NULL,
|
||||
num_payment varchar(50),
|
||||
note text,
|
||||
fk_bank integer NOT NULL,
|
||||
fk_user_creat integer,
|
||||
fk_user_modif integer
|
||||
)ENGINE=innodb;
|
||||
|
|
@ -23,7 +23,9 @@ create table llx_payment_loan
|
|||
datec datetime, -- creation date
|
||||
tms timestamp,
|
||||
datep datetime, -- payment date
|
||||
amount real DEFAULT 0,
|
||||
amount_capital real DEFAULT 0,
|
||||
amount_insurance real DEFAULT 0,
|
||||
amount_interest real DEFAULT 0,
|
||||
fk_typepayment integer NOT NULL,
|
||||
num_payment varchar(50),
|
||||
note text,
|
||||
|
|
|
|||
|
|
@ -5,10 +5,13 @@ NewLoan=New Loan
|
|||
ShowLoan=Show Loan
|
||||
PaymentLoan=Loan payment
|
||||
Capital=Capital
|
||||
Insurance=Insurance
|
||||
Interest=Interest
|
||||
Nbterms=Number of terms
|
||||
LoanAccountancyCapitalCode=Accountancy code capital
|
||||
LoanAccountancyInsuranceCode=Accountancy code insurance
|
||||
LoanAccountancyInterestCode=Accountancy code interest
|
||||
LoanPayment=Loan payment
|
||||
ConfirmDeleteLoan=Confirm deleting this loan
|
||||
ConfirmPayLoan=Confirm classify paid this loan
|
||||
ErrorLoanCapital=<font color=red>Loan amount</font> has to be numeric and greater than zero.
|
||||
|
|
|
|||
|
|
@ -5,10 +5,13 @@ NewLoan=Nouvel emprunt
|
|||
ShowLoan=Voir emprunt
|
||||
PaymentLoan=Règlement d'emprunt
|
||||
Capital=Capital
|
||||
Insurance=Assurance
|
||||
Interest=Intérêt
|
||||
Nbterms=Nombre d'échéances
|
||||
LoanAccountancyCapitalCode=Compte comptable capital
|
||||
LoanAccountancyInsuranceCode=Compte comptable assurance
|
||||
LoanAccountancyInterestCode=Compte comptable intérêts
|
||||
LoanPayment=Règlement emprunt
|
||||
ConfirmDeleteLoan=Confirmation de supression de cet emprunt
|
||||
ConfirmPayLoan=Confirmation que cet emprunt est classé comme payé
|
||||
ErrorLoanCapital=<font color=red>Le capital de l'emprunt</font> doit être au format numérique et supérieur à zéro.
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user