diff --git a/htdocs/loan/calcmens.php b/htdocs/loan/calcmens.php index fbe1cecab2d..df6db76e1f2 100644 --- a/htdocs/loan/calcmens.php +++ b/htdocs/loan/calcmens.php @@ -50,7 +50,7 @@ $echance++; $capital=$cap_rest; while ($echance<=$nbterm) { - $mens = round($object->calc_mens($capital,$rate,$nbterm-$echance+1),2,PHP_ROUND_HALF_UP); + $mens = round($object->calcMonthlyPayments($capital, $rate, $nbterm-$echance+1), 2, PHP_ROUND_HALF_UP); $int = ($capital*($rate/12)); $int = round($int,2,PHP_ROUND_HALF_UP); @@ -63,4 +63,3 @@ while ($echance<=$nbterm) { } echo json_encode($output); - diff --git a/htdocs/loan/class/loan.class.php b/htdocs/loan/class/loan.class.php index dd066f0064c..20cccfdc232 100644 --- a/htdocs/loan/class/loan.class.php +++ b/htdocs/loan/class/loan.class.php @@ -51,7 +51,7 @@ class Loan extends CommonObject public $datestart; public $dateend; - /** + /** * @var string Loan label */ public $label; @@ -66,10 +66,26 @@ class Loan extends CommonObject public $date_creation; public $date_modification; public $date_validation; - public $fk_bank; - public $fk_user_creat; - public $fk_user_modif; - public $fk_project; + + /** + * @var int Bank ID + */ + public $fk_bank; + + /** + * @var int User ID + */ + public $fk_user_creat; + + /** + * @var int User ID + */ + public $fk_user_modif; + + /** + * @var int Project ID + */ + public $fk_project; /** @@ -158,10 +174,10 @@ class Loan extends CommonObject if (isset($this->account_capital)) $this->account_capital = trim($this->account_capital); if (isset($this->account_insurance)) $this->account_insurance = trim($this->account_insurance); if (isset($this->account_interest)) $this->account_interest = trim($this->account_interest); - if (isset($this->fk_bank)) $this->fk_bank=trim($this->fk_bank); - if (isset($this->fk_user_creat)) $this->fk_user_creat=trim($this->fk_user_creat); - if (isset($this->fk_user_modif)) $this->fk_user_modif=trim($this->fk_user_modif); - if (isset($this->fk_project)) $this->fk_project=trim($this->fk_project); + if (isset($this->fk_bank)) $this->fk_bank = (int) $this->fk_bank; + if (isset($this->fk_user_creat)) $this->fk_user_creat = (int) $this->fk_user_creat; + if (isset($this->fk_user_modif)) $this->fk_user_modif = (int) $this->fk_user_modif; + if (isset($this->fk_project)) $this->fk_project = (int) $this->fk_project; // Check parameters if (! $newcapital > 0 || empty($this->datestart) || empty($this->dateend)) @@ -445,9 +461,9 @@ class Loan extends CommonObject $tooltip = '' . $langs->trans("ShowLoan") . ''; if (! empty($this->ref)) - $tooltip .= '
' . $langs->trans('Ref') . ': ' . $this->ref; + $tooltip .= '
' . $langs->trans('Ref') . ': ' . $this->ref; if (! empty($this->label)) - $tooltip .= '
' . $langs->trans('Label') . ': ' . $this->label; + $tooltip .= '
' . $langs->trans('Label') . ': ' . $this->label; $linkstart = ''; $linkend = ''; diff --git a/htdocs/loan/class/loanschedule.class.php b/htdocs/loan/class/loanschedule.class.php index 2f37b1a870c..cf95b72715c 100644 --- a/htdocs/loan/class/loanschedule.class.php +++ b/htdocs/loan/class/loanschedule.class.php @@ -1,5 +1,6 @@ +/* Copyright (C) 2017 Florian HENRY + * Copyright (C) 2018 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -39,20 +40,53 @@ class LoanSchedule extends CommonObject */ public $table_element='loan_schedule'; - var $fk_loan; - var $datec=''; - var $tms=''; - var $datep=''; - 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 $fk_bank; - var $fk_user_creat; - var $fk_user_modif; - var $lines=array(); + /** + * @var int Loan ID + */ + public $fk_loan; + + /** + * @var string Create date + */ + public $datec=''; + public $tms=''; + + /** + * @var string Payment date + */ + public $datep=''; + + public $amounts=array(); // Array of amounts + public $amount_capital; // Total amount of payment + public $amount_insurance; + public $amount_interest; + + /** + * @var int Payment Type ID + */ + public $fk_typepayment; + + /** + * @var int Payment ID + */ + public $num_payment; + + /** + * @var int Bank ID + */ + public $fk_bank; + + /** + * @var int Bank ID + */ + public $fk_user_creat; + + /** + * @var int User ID + */ + public $fk_user_modif; + + public $lines=array(); /** * @deprecated @@ -65,7 +99,7 @@ class LoanSchedule extends CommonObject * * @param DoliDB $db Database handler */ - function __construct($db) + public function __construct($db) { $this->db = $db; } @@ -77,7 +111,7 @@ class LoanSchedule extends CommonObject * @param User $user User making payment * @return int <0 if KO, id of payment if OK */ - function create($user) + public function create($user) { global $conf, $langs; @@ -86,21 +120,21 @@ class LoanSchedule extends CommonObject $now=dol_now(); // Validate parameters - if (! $this->datepaid) + if (! $this->datep) { $this->error='ErrorBadValueForParameter'; return -1; } // Clean parameters - if (isset($this->fk_loan)) $this->fk_loan = trim($this->fk_loan); + if (isset($this->fk_loan)) $this->fk_loan = (int) $this->fk_loan; if (isset($this->amount_capital)) $this->amount_capital = trim($this->amount_capital?$this->amount_capital:0); if (isset($this->amount_insurance)) $this->amount_insurance = trim($this->amount_insurance?$this->amount_insurance:0); if (isset($this->amount_interest)) $this->amount_interest = trim($this->amount_interest?$this->amount_interest:0); - if (isset($this->fk_typepayment)) $this->fk_typepayment = trim($this->fk_typepayment); - if (isset($this->fk_bank)) $this->fk_bank = trim($this->fk_bank); - if (isset($this->fk_user_creat)) $this->fk_user_creat = trim($this->fk_user_creat); - if (isset($this->fk_user_modif)) $this->fk_user_modif = trim($this->fk_user_modif); + if (isset($this->fk_typepayment)) $this->fk_typepayment = (int) $this->fk_typepayment; + if (isset($this->fk_bank)) $this->fk_bank = (int) $this->fk_bank; + if (isset($this->fk_user_creat)) $this->fk_user_creat = (int) $this->fk_user_creat; + if (isset($this->fk_user_modif)) $this->fk_user_modif = (int) $this->fk_user_modif; $totalamount = $this->amount_capital + $this->amount_insurance + $this->amount_interest; $totalamount = price2num($totalamount); @@ -119,7 +153,7 @@ class LoanSchedule extends CommonObject $sql = "INSERT INTO ".MAIN_DB_PREFIX.$this->table_element." (fk_loan, datec, datep, amount_capital, amount_insurance, amount_interest,"; $sql.= " fk_typepayment, fk_user_creat, fk_bank)"; $sql.= " VALUES (".$this->fk_loan.", '".$this->db->idate($now)."',"; - $sql.= " '".$this->db->idate($this->datepaid)."',"; + $sql.= " '".$this->db->idate($this->datep)."',"; $sql.= " ".$this->amount_capital.","; $sql.= " ".$this->amount_insurance.","; $sql.= " ".$this->amount_interest.","; @@ -162,7 +196,7 @@ class LoanSchedule extends CommonObject * @param int $id Id object * @return int <0 if KO, >0 if OK */ - function fetch($id) + public function fetch($id) { global $langs; $sql = "SELECT"; @@ -215,8 +249,8 @@ class LoanSchedule extends CommonObject $this->type_code = $obj->type_code; $this->type_libelle = $obj->type_libelle; - $this->bank_account = $obj->fk_account; - $this->bank_line = $obj->fk_bank; + $this->bank_account = $obj->fk_account; + $this->bank_line = $obj->fk_bank; } $this->db->free($resql); @@ -237,7 +271,7 @@ class LoanSchedule extends CommonObject * @param int $notrigger 0=launch triggers after, 1=disable triggers * @return int <0 if KO, >0 if OK */ - function update($user=0, $notrigger=0) + public function update($user=0, $notrigger=0) { global $conf, $langs; $error=0; @@ -321,7 +355,7 @@ class LoanSchedule extends CommonObject * @param int $notrigger 0=launch triggers after, 1=disable triggers * @return int <0 if KO, >0 if OK */ - function delete($user, $notrigger=0) + public function delete($user, $notrigger=0) { global $conf, $langs; $error=0; @@ -372,18 +406,16 @@ class LoanSchedule extends CommonObject } } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps /** - * Calculate mensuality + * Calculate Monthly Payments * * @param double $capital Capital * @param double $rate rate * @param int $nbterm nb term * @return double mensuality */ - function calc_mens($capital, $rate, $nbterm) + public function calcMonthlyPayments($capital, $rate, $nbterm) { - // phpcs:enable $result=''; if (!empty($capital) && !empty($rate) && !empty($nbterm)) { @@ -400,7 +432,7 @@ class LoanSchedule extends CommonObject * @param int $loanid Id object * @return int <0 if KO, >0 if OK */ - function fetchAll($loanid) + public function fetchAll($loanid) { global $langs; @@ -461,15 +493,13 @@ class LoanSchedule extends CommonObject } } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps /** - * trans_paiment + * transPayment * * @return void */ - function trans_paiment() + private function transPayment() { - // phpcs:enable require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/loan.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; @@ -505,12 +535,12 @@ class LoanSchedule extends CommonObject /** - * trans_paiment + * transPayment * * @param int $loanid Loan id * @return int < 0 if KO, Date > 0 if OK */ - function lastpaiment($loanid) + public function lastpaiment($loanid) { $sql = "SELECT p.datep"; $sql.= " FROM ".MAIN_DB_PREFIX."payment_loan as p "; @@ -535,7 +565,7 @@ class LoanSchedule extends CommonObject * @param int $datemax Date max * @return array Array of id */ - function paimenttorecord($loanid, $datemax) + public function paimenttorecord($loanid, $datemax) { $sql = "SELECT p.rowid"; $sql.= " FROM ".MAIN_DB_PREFIX.$this->table_element." as p "; diff --git a/htdocs/loan/class/paymentloan.class.php b/htdocs/loan/class/paymentloan.class.php index add1aef496d..c4c29c99dce 100644 --- a/htdocs/loan/class/paymentloan.class.php +++ b/htdocs/loan/class/paymentloan.class.php @@ -1,6 +1,6 @@ - * Copyright (C) 2015 Frederic France + * Copyright (C) 2015-2018 Frederic France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -40,32 +40,68 @@ class PaymentLoan extends CommonObject */ public $table_element='payment_loan'; - var $fk_loan; - var $datec=''; - var $tms=''; - var $datep=''; - 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 $fk_bank; - var $fk_user_creat; - var $fk_user_modif; + /** + * @var int Loan ID + */ + public $fk_loan; + + /** + * @var string Create date + */ + public $datec=''; + + public $tms=''; + + /** + * @var string Payment date + */ + public $datep=''; + + public $amounts=array(); // Array of amounts + + public $amount_capital; // Total amount of payment + + public $amount_insurance; + + public $amount_interest; + + /** + * @var int Payment type ID + */ + public $fk_typepayment; + + /** + * @var int Payment ID + */ + public $num_payment; + + /** + * @var int Bank ID + */ + public $fk_bank; + + /** + * @var int User ID + */ + public $fk_user_creat; + + /** + * @var int user ID + */ + public $fk_user_modif; /** * @deprecated * @see amount, amounts */ - var $total; + public $total; /** * Constructor * * @param DoliDB $db Database handler */ - function __construct($db) + public function __construct($db) { $this->db = $db; } @@ -86,24 +122,24 @@ class PaymentLoan extends CommonObject $now=dol_now(); // Validate parameters - if (! $this->datepaid) + if (! $this->datep) { $this->error='ErrorBadValueForParameter'; return -1; } // Clean parameters - if (isset($this->fk_loan)) $this->fk_loan = trim($this->fk_loan); + if (isset($this->fk_loan)) $this->fk_loan = (int) $this->fk_loan; if (isset($this->amount_capital)) $this->amount_capital = price2num($this->amount_capital?$this->amount_capital:0); - if (isset($this->amount_insurance)) $this->amount_insurance = price2num($this->amount_insurance?$this->amount_insurance:0); + if (isset($this->amount_insurance)) $this->amount_insurance = price2num($this->amount_insurance?$this->amount_insurance:0); if (isset($this->amount_interest)) $this->amount_interest = price2num($this->amount_interest?$this->amount_interest:0); - 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->fk_typepayment)) $this->fk_typepayment = (int) $this->fk_typepayment; + if (isset($this->num_payment)) $this->num_payment = (int) $this->num_payment; if (isset($this->note_private)) $this->note_private = trim($this->note_private); if (isset($this->note_public)) $this->note_public = trim($this->note_public); - if (isset($this->fk_bank)) $this->fk_bank = trim($this->fk_bank); - if (isset($this->fk_user_creat)) $this->fk_user_creat = trim($this->fk_user_creat); - if (isset($this->fk_user_modif)) $this->fk_user_modif = trim($this->fk_user_modif); + if (isset($this->fk_bank)) $this->fk_bank = (int) $this->fk_bank; + if (isset($this->fk_user_creat)) $this->fk_user_creat = (int) $this->fk_user_creat; + if (isset($this->fk_user_modif)) $this->fk_user_modif = (int) $this->fk_user_modif; $totalamount = $this->amount_capital + $this->amount_insurance + $this->amount_interest; $totalamount = price2num($totalamount); @@ -119,7 +155,7 @@ class PaymentLoan extends CommonObject $sql = "INSERT INTO ".MAIN_DB_PREFIX."payment_loan (fk_loan, datec, datep, amount_capital, amount_insurance, amount_interest,"; $sql.= " fk_typepayment, num_payment, note_private, note_public, fk_user_creat, fk_bank)"; $sql.= " VALUES (".$this->chid.", '".$this->db->idate($now)."',"; - $sql.= " '".$this->db->idate($this->datepaid)."',"; + $sql.= " '".$this->db->idate($this->datep)."',"; $sql.= " ".$this->amount_capital.","; $sql.= " ".$this->amount_insurance.","; $sql.= " ".$this->amount_interest.","; @@ -244,17 +280,17 @@ class PaymentLoan extends CommonObject $error=0; // Clean parameters - if (isset($this->fk_loan)) $this->fk_loan=trim($this->fk_loan); + if (isset($this->fk_loan)) $this->fk_loan = (int) $this->fk_loan; 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->fk_typepayment)) $this->fk_typepayment = (int) $this->fk_typepayment; + if (isset($this->num_payment)) $this->num_payment = (int) $this->num_payment; if (isset($this->note_private)) $this->note=trim($this->note_private); if (isset($this->note_public)) $this->note=trim($this->note_public); - if (isset($this->fk_bank)) $this->fk_bank=trim($this->fk_bank); - if (isset($this->fk_user_creat)) $this->fk_user_creat=trim($this->fk_user_creat); - if (isset($this->fk_user_modif)) $this->fk_user_modif=trim($this->fk_user_modif); + if (isset($this->fk_bank)) $this->fk_bank = (int) $this->fk_bank; + if (isset($this->fk_user_creat)) $this->fk_user_creat = (int) $this->fk_user_creat; + if (isset($this->fk_user_modif)) $this->fk_user_modif = (int) $this->fk_user_modif; // Check parameters @@ -418,7 +454,7 @@ class PaymentLoan extends CommonObject // Insert payment into llx_bank $bank_line_id = $acc->addline( - $this->datepaid, + $this->datep, $this->paymenttype, // Payment mode id or code ("CHQ or VIR for example") $label, $total, diff --git a/htdocs/loan/createschedule.php b/htdocs/loan/createschedule.php index 08ca019f00e..7cfd54ab998 100644 --- a/htdocs/loan/createschedule.php +++ b/htdocs/loan/createschedule.php @@ -51,7 +51,7 @@ if ($action == 'createecheancier') { $echeance->fk_loan = $object->id; $echeance->datec = dol_now(); $echeance->tms = dol_now(); - $echeance->datepaid = $date; + $echeance->datep = $date; $echeance->amount_capital = $mens-$int; $echeance->amount_insurance = 0; $echeance->amount_interest = $int; @@ -61,7 +61,7 @@ if ($action == 'createecheancier') { $echeance->fk_user_modif = $user->id; $result=$echeance->create($user); if ($result<0) { - setEventMessages(null, $echeance->errors,'errors'); + setEventMessages($echeance->error, $echeance->errors,'errors'); } $i++; } @@ -165,7 +165,7 @@ if ($object->nbterm > 0 && count($echeance->lines)==0) $capital = $object->capital; while($i <$object->nbterm+1) { - $mens = price2num($echeance->calc_mens($capital, $object->rate/100, $object->nbterm-$i+1), 'MT'); + $mens = price2num($echeance->calcMonthlyPayments($capital, $object->rate/100, $object->nbterm-$i+1), 'MT'); $int = ($capital*($object->rate/12))/100; $int = price2num($int, 'MT'); $cap_rest = price2num($capital - ($mens-$int), 'MT'); @@ -213,6 +213,3 @@ print ''; // End of page llxFooter(); $db->close(); - - - diff --git a/htdocs/loan/payment/payment.php b/htdocs/loan/payment/payment.php index d84ea4ae26b..08937c1f389 100644 --- a/htdocs/loan/payment/payment.php +++ b/htdocs/loan/payment/payment.php @@ -93,12 +93,12 @@ if ($action == 'add_payment') // Create a line of payments $payment = new PaymentLoan($db); $payment->chid = $chid; - $payment->datepaid = $datepaid; + $payment->datep = $datepaid; $payment->label = $loan->label; $payment->amount_capital = GETPOST('amount_capital'); $payment->amount_insurance = GETPOST('amount_insurance'); $payment->amount_interest = GETPOST('amount_interest'); - $payment->paymenttype = GETPOST('paymenttype'); + $payment->paymenttype = GETPOST('paymenttype', 'int'); $payment->num_payment = GETPOST('num_payment'); $payment->note_private = GETPOST('note_private','none'); $payment->note_public = GETPOST('note_public','none');