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');