diff --git a/htdocs/compta/charges/index.php b/htdocs/compta/charges/index.php
index ca03e11bcba..eb10fce7768 100644
--- a/htdocs/compta/charges/index.php
+++ b/htdocs/compta/charges/index.php
@@ -93,9 +93,10 @@ if ($conf->salaries->enabled)
print_fiche_titre($langs->trans("SalariesPayments").($year?' ('.$langs->trans("Year").' '.$year.')':''), '', '');
- $sql = "SELECT s.rowid, s.amount, s.label, s.datev as dm";
- $sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as s";
- $sql.= " WHERE s.entity = ".$conf->entity;
+ $sql = "SELECT s.rowid, s.amount, s.label, s.datev as dm, s.salary, u.salary as current_salary";
+ $sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as s, ".MAIN_DB_PREFIX."user as u";
+ $sql.= " WHERE s.entity IN (".getEntity('user',1).")";
+ $sql.= " AND u.rowid = s.fk_user";
if ($year > 0)
{
// Si period renseignee on l'utilise comme critere de date, sinon on prend date echeance,
@@ -132,11 +133,11 @@ if ($conf->salaries->enabled)
print "
".$obj->label." | \n";
- print ''.price($obj->amount)." | ";
+ print ''.($obj->salary?price($obj->salary):'')." | ";
// Ref payment
- $sal_static->id=$obj->rowid;
- $sal_static->ref=$obj->rowid;
+ $sal_static->id=$obj->rowid;
+ $sal_static->ref=$obj->rowid;
print ''.$sal_static->getNomUrl(1)." | \n";
print ''.dol_print_date($db->jdate($obj->dm),'day')." | \n";
@@ -146,7 +147,7 @@ if ($conf->salaries->enabled)
$i++;
}
print '| '.$langs->trans("Total").' | ';
- print ''.price($total)." | ";
+ print ''." | ";
print ' | ';
print ' | ';
print ''.price($total)." | ";
diff --git a/htdocs/compta/salaries/card.php b/htdocs/compta/salaries/card.php
index 49c3192fa7f..3bd93659b5e 100644
--- a/htdocs/compta/salaries/card.php
+++ b/htdocs/compta/salaries/card.php
@@ -67,8 +67,8 @@ if ($action == 'add' && $_POST["cancel"] <> $langs->trans("Cancel"))
$datesp=dol_mktime(12,0,0, $_POST["datespmonth"], $_POST["datespday"], $_POST["datespyear"]);
$dateep=dol_mktime(12,0,0, $_POST["dateepmonth"], $_POST["dateepday"], $_POST["dateepyear"]);
- $sal->accountid=GETPOST("accountid");
- $sal->fk_user=GETPOST("fk_user");
+ $sal->accountid=GETPOST("accountid","int");
+ $sal->fk_user=GETPOST("fk_user","int");
$sal->datev=$datev;
$sal->datep=$datep;
$sal->amount=price2num(GETPOST("amount"));
@@ -80,6 +80,11 @@ if ($action == 'add' && $_POST["cancel"] <> $langs->trans("Cancel"))
$sal->num_payment=GETPOST("num_payment");
$sal->fk_user_creat=$user->id;
+ // Set user current salary as ref salaray for the payment
+ $fuser=new User($db);
+ $fuser->fetch(GETPOST("fk_user","int"));
+ $sal->salary=$fuser->salary;
+
if (empty($datep) || empty($datev) || empty($datesp) || empty($dateep))
{
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Date")),'errors');
diff --git a/htdocs/compta/salaries/class/paymentsalary.class.php b/htdocs/compta/salaries/class/paymentsalary.class.php
index 83a1c937545..f566123809c 100644
--- a/htdocs/compta/salaries/class/paymentsalary.class.php
+++ b/htdocs/compta/salaries/class/paymentsalary.class.php
@@ -324,6 +324,7 @@ class PaymentSalary extends CommonObject
$sql.= ", datep";
$sql.= ", datev";
$sql.= ", amount";
+ $sql.= ", salary";
$sql.= ", fk_typepayment";
$sql.= ", num_payment";
if ($this->note) $sql.= ", note";
@@ -338,7 +339,8 @@ class PaymentSalary extends CommonObject
$sql.= "'".$this->fk_user."'";
$sql.= ", '".$this->db->idate($this->datep)."'";
$sql.= ", '".$this->db->idate($this->datev)."'";
- $sql.= ", '".$this->amount."'";
+ $sql.= ", ".$this->amount;
+ $sql.= ", ".($this->salary > 0 ? $this->salary : "null");
$sql.= ", '".$this->type_payment."'";
$sql.= ", '".$this->num_payment."'";
if ($this->note) $sql.= ", '".$this->db->escape($this->note)."'";
diff --git a/htdocs/compta/salaries/index.php b/htdocs/compta/salaries/index.php
index 79d139255c2..484010c9f03 100644
--- a/htdocs/compta/salaries/index.php
+++ b/htdocs/compta/salaries/index.php
@@ -83,7 +83,8 @@ $form = new Form($db);
$salstatic = new PaymentSalary($db);
$userstatic = new User($db);
-$sql = "SELECT u.rowid as uid, u.lastname, u.firstname, u.salary, s.rowid, s.fk_user, s.amount, s.label, s.datev as dm, s.fk_typepayment as type, s.num_payment,";
+$sql = "SELECT u.rowid as uid, u.lastname, u.firstname, u.login, u.email, u.admin, u.salary as current_salary, u.fk_societe as fk_soc,";
+$sql.= " s.rowid, s.fk_user, s.amount, s.salary, s.label, s.datev as dm, s.fk_typepayment as type, s.num_payment,";
$sql.= " pst.code as payment_code";
$sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as s";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as pst ON s.fk_typepayment = pst.id,";
@@ -125,7 +126,7 @@ if ($result)
print '
';
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"s.rowid","",$param,"",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Person"),$_SERVER["PHP_SELF"],"u.rowid","",$param,"",$sortfield,$sortorder);
- print_liste_field_titre($langs->trans("CurrentSalary"),$_SERVER["PHP_SELF"],"u.salary","",$param,"",$sortfield,$sortorder);
+ print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"s.salary","",$param,"",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"s.label","",$param,'align="left"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"s.datev","",$param,'align="left"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("PaymentMode"),$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder);
@@ -164,6 +165,10 @@ if ($result)
$userstatic->id=$obj->uid;
$userstatic->lastname=$obj->lastname;
$userstatic->firstname=$obj->firstname;
+ $userstatic->admin=$obj->admin;
+ $userstatic->login=$obj->login;
+ $userstatic->email=$obj->email;
+ $userstatic->societe_id=$obj->fk_soc;
$salstatic->id=$obj->rowid;
$salstatic->ref=$obj->rowid;
// Ref
diff --git a/htdocs/install/mysql/migration/3.7.0-3.8.0.sql b/htdocs/install/mysql/migration/3.7.0-3.8.0.sql
index 2a36ef78737..2de1556ed3e 100755
--- a/htdocs/install/mysql/migration/3.7.0-3.8.0.sql
+++ b/htdocs/install/mysql/migration/3.7.0-3.8.0.sql
@@ -19,6 +19,8 @@
-- -- VMYSQL4.1 DELETE FROM llx_usergroup_user WHERE fk_usergroup NOT IN (SELECT rowid from llx_usergroup);
+ALTER TABLE llx_payment_salary ADD COLUMN salary real after datev;
+
UPDATE llx_projet_task_time SET task_datehour = task_date where task_datehour IS NULL;
ALTER TABLE llx_projet_task_time ADD COLUMN task_date_withhour integer DEFAULT 0 after task_datehour;
diff --git a/htdocs/install/mysql/tables/llx_payment_salary.sql b/htdocs/install/mysql/tables/llx_payment_salary.sql
index b82ff66ecc1..2498c771ba6 100644
--- a/htdocs/install/mysql/tables/llx_payment_salary.sql
+++ b/htdocs/install/mysql/tables/llx_payment_salary.sql
@@ -23,6 +23,7 @@ create table llx_payment_salary
fk_user integer NOT NULL,
datep date, -- date de paiement
datev date, -- date de valeur
+ salary real, -- salary of user when payment was done
amount real NOT NULL DEFAULT 0,
fk_typepayment integer NOT NULL,
num_payment varchar(50),