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),