diff --git a/htdocs/compta/paiement_charge.php b/htdocs/compta/paiement_charge.php
index 0b2cc3ea70986819e294f251ed3075ac5dee2e77..dbdc14cb1b01ec3ac2e69e1e38312a2ce6abc450 100644
--- a/htdocs/compta/paiement_charge.php
+++ b/htdocs/compta/paiement_charge.php
@@ -185,7 +185,7 @@ if ($_GET["action"] == 'create')
 	print '<tr><td>'.$langs->trans("Label").'</td><td colspan="2">'.$charge->lib."</td></tr>\n";
 	print '<tr><td>'.$langs->trans("DateDue")."</td><td colspan=\"2\">".dol_print_date($charge->date_ech,'day')."</td></tr>\n";
 
-	print '<tr><td>'.$langs->trans("AmountTTC")."</td><td colspan=\"2\"><b>".price($charge->amount).'</b> '.$langs->trans("Currency".$conf->currency).'</td></tr>';
+	print '<tr><td>'.$langs->trans("Amount")."</td><td colspan=\"2\">".price($charge->amount,0,$outputlangs,1,-1,-1,$conf->currency).'</td></tr>';
 
 	$sql = "SELECT sum(p.amount) as total";
 	$sql.= " FROM ".MAIN_DB_PREFIX."paiementcharge as p";
@@ -197,8 +197,8 @@ if ($_GET["action"] == 'create')
 		$sumpaid = $obj->total;
 		$db->free();
 	}
-	print '<tr><td>'.$langs->trans("AlreadyPaid").'</td><td colspan="2"><b>'.price($sumpaid).'</b> '.$langs->trans("Currency".$conf->currency).'</td></tr>';
-	print "<tr><td valign=\"top\">".$langs->trans("RemainderToPay")."</td><td colspan=\"3\"><b>".price($total - $sumpaid).'</b> '.$langs->trans("Currency".$conf->currency).'</td></tr>';
+	print '<tr><td>'.$langs->trans("AlreadyPaid").'</td><td colspan="2">'.price($sumpaid,0,$outputlangs,1,-1,-1,$conf->currency).'</td></tr>';
+	print "<tr><td valign=\"top\">".$langs->trans("RemainderToPay")."</td><td colspan=\"3\">".price($total-$sumpaid,0,$outputlangs,1,-1,-1,$conf->currency).'</td></tr>';
 
 	print "<tr class=\"liste_titre\"><td colspan=\"3\">".$langs->trans("Payment").'</td>';
 
@@ -223,9 +223,10 @@ if ($_GET["action"] == 'create')
 	$form->select_comptes(isset($_POST["accountid"])?$_POST["accountid"]:$charge->accountid, "accountid", 0, '',1);  // Show opend bank account list
 	print '</td></tr>';
 
+	// Number
 	print '<tr><td>'.$langs->trans('Numero');
 	print ' <em>('.$langs->trans("ChequeOrTransferNumber").')</em>';
-	print "<td><input name=\"num_paiement\" type=\"text\"></td></tr>\n";
+	print '<td><input name="num_paiement" type="text" value="'.GETPOST('num_paiement').'"></td></tr>'."\n";
 
 	/*
  	 * Autres charges impayees
@@ -238,7 +239,7 @@ if ($_GET["action"] == 'create')
 	print '<tr class="liste_titre">';
 	//print '<td>'.$langs->trans("SocialContribution").'</td>';
 	print '<td align="left">'.$langs->trans("DateDue").'</td>';
-	print '<td align="right">'.$langs->trans("AmountTTC").'</td>';
+	print '<td align="right">'.$langs->trans("Amount").'</td>';
 	print '<td align="right">'.$langs->trans("AlreadyPaid").'</td>';
 	print '<td align="right">'.$langs->trans("RemainderToPay").'</td>';
 	print '<td align="right">'.$langs->trans("Amount").'</td>';
@@ -296,7 +297,7 @@ if ($_GET["action"] == 'create')
 	{
 		// Print total
 		print "<tr ".$bc[!$var].">";
-		print '<td colspan="2" align="left">'.$langs->trans("TotalTTC").':</td>';
+		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>";
@@ -304,29 +305,18 @@ if ($_GET["action"] == 'create')
 		print "</tr>\n";
 	}
 	print "</table></td></tr>\n";
-	//		}
-	//	      $db->free();
-	//	    }
-	//	  else
-	//	    {
-	//	      print $sql ."<br>".$db->error();
-	//	    }
-	/*
-	*
-	*/
 
 	print "</table>";
 
 	print '<br><center>';
-	//print '<tr><td colspan="3" align="center">';
+
 	print '<input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
 	print '&nbsp; &nbsp;';
 	print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
 
 	print '</center>';
-	//print '</td></tr>';
+
 	print "</form>\n";
-	//    }
 }
 
 
diff --git a/htdocs/compta/salaries/class/paymentsalary.class.php b/htdocs/compta/salaries/class/paymentsalary.class.php
index ebdd5fa16556e11c4a1a9d45f836eb1431d8f201..87e23e02deb3962c3a94521618c3a34be9765ddb 100644
--- a/htdocs/compta/salaries/class/paymentsalary.class.php
+++ b/htdocs/compta/salaries/class/paymentsalary.class.php
@@ -1,19 +1,19 @@
 <?php
 /* Copyright (C) 2011-2014 Alexandre Spangaro   <alexandre.spangaro@gmail.com>
  *
- * 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
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
+* 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
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
 
 /**
  *      \file       htdocs/compta/salaries/class/paymentsalary.class.php
@@ -26,270 +26,199 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
 
 
 /**
- *  Put here description of your class
+ *  Class to manage salary payments
  */
 class PaymentSalary extends CommonObject
 {
 	//public $element='payment_salary';			//!< Id that identify managed objects
 	//public $table_element='payment_salary';	//!< Name of table without prefix where object is stored
 
-  var $id;
-  var $ref;
+	var $id;
+	var $ref;
 
 	var $tms;
 	var $fk_user;
-  var $datep;
+	var $datep;
 	var $datev;
 	var $amount;
+	var $type_payment;
+	var $num_payment;
 	var $label;
-  var $datesp;
-  var $dateep;
+	var $datesp;
+	var $dateep;
 	var $note;
 	var $fk_bank;
 	var $fk_user_creat;
 	var $fk_user_modif;
 
 
-
-    /**
+	/**
 	 *	Constructor
 	 *
 	 *  @param		DoliDB		$db      Database handler
-     */
-    function __construct($db)
-    {
-        $this->db = $db;
-        $this->element = 'payment_salary';
-        $this->table_element = 'payment_salary';
-        return 1;
-    }
-
-
-    /**
-     *  Create in database
-     *
-     *  @param      User	$user       User that create
-     *  @return     int      			<0 if KO, >0 if OK
-     */
-    function create($user)
-    {
-    	global $conf, $langs;
-
-  		$error=0;
-
-  		// Clean parameters
-      $this->fk_user=trim($this->fk_user);
-  		$this->amount=trim($this->amount);
-  		$this->label=trim($this->label);
-  		$this->note=trim($this->note);
-  		$this->fk_bank=trim($this->fk_bank);
-  		$this->fk_user_creat=trim($this->fk_user_creat);
-  		$this->fk_user_modif=trim($this->fk_user_modif);
-
-  		// Check parameters
-  		// Put here code to add control on parameters values
-
-      // Insert request
-  		$sql = "INSERT INTO ".MAIN_DB_PREFIX."payment_salary(";
-  		$sql.= "tms,";
-      $sql.= "fk_user,";
-  		$sql.= "datep,";
-  		$sql.= "datev,";
-  		$sql.= "amount,";
-  		$sql.= "label,";
-      $sql.= "datesp,";
-  		$sql.= "dateep,";
-  		$sql.= "note,";
-  		$sql.= "fk_bank,";
-  		$sql.= "fk_user_creat,";
-  		$sql.= "fk_user_modif";
-
-          $sql.= ") VALUES (";
-
-  		$sql.= " '".$this->db->idate($this->tms).",";
-  		$sql.= " '".$this->fk_user."',";
-		$sql.= " '".$this->db->idate($this->datep)."',";
-  		$sql.= " '".$this->db->idate($this->datev)."',";
-  		$sql.= " '".$this->amount."',";
-  		$sql.= " '".$this->label."',";
-  		$sql.= " '".$this->db->idate($this->datesp)."',";
-  		$sql.= " '".$this->db->idate($this->dateep)."',";
-		$sql.= " '".$this->note."',";
-  		$sql.= " ".($this->fk_bank <= 0 ? "NULL" : "'".$this->fk_bank."'").",";
-  		$sql.= " '".$this->fk_user_creat."',";
-  		$sql.= " '".$this->fk_user_modif."'";
-
-  		$sql.= ")";
-
-	   	dol_syslog(get_class($this)."::create sql=".$sql, LOG_DEBUG);
-        $resql=$this->db->query($sql);
-        if ($resql)
-        {
-            $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."payment_salary");
-
-            // Appel des triggers
-            include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
-            $interface=new Interfaces($this->db);
-            $result=$interface->run_triggers('PAYMENT_SALARY_CREATE',$this,$user,$langs,$conf);
-            if ($result < 0) { $error++; $this->errors=$interface->errors; }
-            // Fin appel triggers
-
-            return $this->id;
-        }
-        else
-        {
-            $this->error="Error ".$this->db->lasterror();
-            dol_syslog(get_class($this)."::create ".$this->error, LOG_ERR);
-            return -1;
-        }
-    }
-
-    /**
-     * Update database
-     *
-     * @param   User	$user        	User that modify
-     * @param	int		$notrigger	    0=no, 1=yes (no update trigger)
-     * @return  int         			<0 if KO, >0 if OK
-     */
-    function update($user=0, $notrigger=0)
-    {
-    	global $conf, $langs;
-
-  		$error=0;
-
-  		// Clean parameters
-  		$this->fk_user=trim($this->fk_user);
-  		$this->amount=trim($this->amount);
-  		$this->label=trim($this->label);
-  		$this->note=trim($this->note);
-  		$this->fk_bank=trim($this->fk_bank);
-  		$this->fk_user_creat=trim($this->fk_user_creat);
-  		$this->fk_user_modif=trim($this->fk_user_modif);
-
-  		// Check parameters
-  		if (empty($this->fk_user) || $this->fk_user < 0)
-  		{
-  			$this->error='ErrorBadParameter';
-  			return -1;
-  		}
-
-      // Update request
-      $sql = "UPDATE ".MAIN_DB_PREFIX."payment_salary SET";
-
-    	$sql.= " tms=".$this->db->idate($this->tms).",";
-    	$sql.= " fk_user='".$this->fk_user."',";
-		  $sql.= " datep=".$this->db->idate($this->datep).",";
-    	$sql.= " datev=".$this->db->idate($this->datev).",";
-    	$sql.= " amount='".$this->amount."',";
-    	$sql.= " label='".$this->db->escape($this->label)."',";
-      $sql.= " datesp=".$this->db->idate($this->datesp).",";
-    	$sql.= " dateep=".$this->db->idate($this->dateep).",";
-    	$sql.= " note='".$this->db->escape($this->note)."',";
-    	$sql.= " fk_bank='".$this->fk_bank."',";
-    	$sql.= " fk_user_creat='".$this->fk_user_creat."',";
-    	$sql.= " fk_user_modif='".$this->fk_user_modif."'";
-
-      $sql.= " WHERE rowid=".$this->id;
-
-      dol_syslog(get_class($this)."::update sql=".$sql, LOG_DEBUG);
-      $resql = $this->db->query($sql);
-      if (! $resql)
-      {
-          $this->error="Error ".$this->db->lasterror();
-          dol_syslog(get_class($this)."::update ".$this->error, LOG_ERR);
-          return -1;
-      }
+	 */
+	function __construct($db)
+	{
+		$this->db = $db;
+		$this->element = 'payment_salary';
+		$this->table_element = 'payment_salary';
+		return 1;
+	}
+
+	/**
+	 * Update database
+	 *
+	 * @param   User	$user        	User that modify
+	 * @param	int		$notrigger	    0=no, 1=yes (no update trigger)
+	 * @return  int         			<0 if KO, >0 if OK
+	 */
+	function update($user=0, $notrigger=0)
+	{
+		global $conf, $langs;
+
+		$error=0;
+
+		// Clean parameters
+		$this->fk_user=trim($this->fk_user);
+		$this->amount=trim($this->amount);
+		$this->label=trim($this->label);
+		$this->note=trim($this->note);
+		$this->fk_bank=trim($this->fk_bank);
+		$this->fk_user_creat=trim($this->fk_user_creat);
+		$this->fk_user_modif=trim($this->fk_user_modif);
+
+		// Check parameters
+		if (empty($this->fk_user) || $this->fk_user < 0)
+		{
+			$this->error='ErrorBadParameter';
+			return -1;
+		}
+
+		// Update request
+		$sql = "UPDATE ".MAIN_DB_PREFIX."payment_salary SET";
+
+		$sql.= " tms=".$this->db->idate($this->tms).",";
+		$sql.= " fk_user='".$this->fk_user."',";
+		$sql.= " datep=".$this->db->idate($this->datep).",";
+		$sql.= " datev=".$this->db->idate($this->datev).",";
+		$sql.= " amount='".$this->amount."',";
+		$sql.= " fk_typepayment=".$this->fk_typepayment."',";
+		$sql.= " num_payment='".$this->num_payment."',";
+		$sql.= " label='".$this->db->escape($this->label)."',";
+		$sql.= " datesp=".$this->db->idate($this->datesp).",";
+		$sql.= " dateep=".$this->db->idate($this->dateep).",";
+		$sql.= " note='".$this->db->escape($this->note)."',";
+		$sql.= " fk_bank=".($this->fk_bank > 0 ? "'".$this->fk_bank."'":"null").",";
+		$sql.= " fk_user_creat='".$this->fk_user_creat."',";
+		$sql.= " fk_user_modif='".$this->fk_user_modif."'";
+
+		$sql.= " WHERE rowid=".$this->id;
+
+		dol_syslog(get_class($this)."::update sql=".$sql, LOG_DEBUG);
+		$resql = $this->db->query($sql);
+		if (! $resql)
+		{
+			$this->error="Error ".$this->db->lasterror();
+			dol_syslog(get_class($this)."::update ".$this->error, LOG_ERR);
+			return -1;
+		}
 
 		if (! $notrigger)
 		{
-            // Appel des triggers
-            include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
-            $interface=new Interfaces($this->db);
-            $result=$interface->run_triggers('PAYMENT_SALARY_MODIFY',$this,$user,$langs,$conf);
-            if ($result < 0) { $error++; $this->errors=$interface->errors; }
-            // Fin appel triggers
-    	}
-
-        return 1;
-    }
-
-
-    /**
-     *  Load object in memory from database
-     *
-     *  @param	int		$id         id object
-     *  @param  User	$user       User that load
-     *  @return int         		<0 if KO, >0 if OK
-     */
-    function fetch($id, $user=0)
-    {
-    	global $langs;
-        $sql = "SELECT";
-    		$sql.= " s.rowid,";
-
-    		$sql.= " s.tms,";
-    		$sql.= " s.fk_user,";
-    		$sql.= " s.datep,";
-    		$sql.= " s.datev,";
-    		$sql.= " s.amount,";
-    		$sql.= " s.label,";
-        $sql.= " s.datesp,";
-    		$sql.= " s.dateep,";
-    		$sql.= " s.note,";
-    		$sql.= " s.fk_bank,";
-    		$sql.= " s.fk_user_creat,";
-    		$sql.= " s.fk_user_modif,";
-    		$sql.= " b.fk_account,";
-    		$sql.= " b.fk_type,";
-    		$sql.= " b.rappro";
-
-        $sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as s";
-		    $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."bank as b ON s.fk_bank = b.rowid";
-        $sql.= " WHERE s.rowid = ".$id;
-
-    	  dol_syslog(get_class($this)."::fetch sql=".$sql, LOG_DEBUG);
-        $resql=$this->db->query($sql);
-        if ($resql)
-        {
-            if ($this->db->num_rows($resql))
-            {
-                $obj = $this->db->fetch_object($resql);
-
-                $this->id    = $obj->rowid;
-                $this->ref   = $obj->rowid;
-        				$this->tms   = $this->db->jdate($obj->tms);
-        				$this->fk_user = $obj->fk_user;
-        				$this->datep = $this->db->jdate($obj->datep);
-        				$this->datev = $this->db->jdate($obj->datev);
-        				$this->amount = $obj->amount;
-        				$this->label = $obj->label;
-        				$this->datesp = $this->db->jdate($obj->datesp);
-        				$this->dateep = $this->db->jdate($obj->dateep);
-        				$this->note  = $obj->note;
-        				$this->fk_bank = $obj->fk_bank;
-        				$this->fk_user_creat = $obj->fk_user_creat;
-        				$this->fk_user_modif = $obj->fk_user_modif;
-        				$this->fk_account = $obj->fk_account;
-        				$this->fk_type = $obj->fk_type;
-        				$this->rappro  = $obj->rappro;
-            }
-            $this->db->free($resql);
-
-            return 1;
-        }
-        else
-        {
-      	    $this->error="Error ".$this->db->lasterror();
-            dol_syslog(get_class($this)."::fetch ".$this->error, LOG_ERR);
-            return -1;
-        }
-    }
-
-
- 	/**
+			// Appel des triggers
+			include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
+			$interface=new Interfaces($this->db);
+			$result=$interface->run_triggers('PAYMENT_SALARY_MODIFY',$this,$user,$langs,$conf);
+			if ($result < 0) {
+				$error++; $this->errors=$interface->errors;
+			}
+			// Fin appel triggers
+		}
+
+		return 1;
+	}
+
+
+	/**
+	 *  Load object in memory from database
+	 *
+	 *  @param	int		$id         id object
+	 *  @param  User	$user       User that load
+	 *  @return int         		<0 if KO, >0 if OK
+	 */
+	function fetch($id, $user=0)
+	{
+		global $langs;
+		$sql = "SELECT";
+		$sql.= " s.rowid,";
+
+		$sql.= " s.tms,";
+		$sql.= " s.fk_user,";
+		$sql.= " s.datep,";
+		$sql.= " s.datev,";
+		$sql.= " s.amount,";
+		$sql.= " s.fk_typepayment,";
+		$sql.= " s.num_payment,";
+		$sql.= " s.label,";
+		$sql.= " s.datesp,";
+		$sql.= " s.dateep,";
+		$sql.= " s.note,";
+		$sql.= " s.fk_bank,";
+		$sql.= " s.fk_user_creat,";
+		$sql.= " s.fk_user_modif,";
+		$sql.= " b.fk_account,";
+		$sql.= " b.fk_type,";
+		$sql.= " b.rappro";
+
+		$sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as s";
+		$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."bank as b ON s.fk_bank = b.rowid";
+		$sql.= " WHERE s.rowid = ".$id;
+
+		dol_syslog(get_class($this)."::fetch sql=".$sql, LOG_DEBUG);
+		$resql=$this->db->query($sql);
+		if ($resql)
+		{
+			if ($this->db->num_rows($resql))
+			{
+				$obj = $this->db->fetch_object($resql);
+
+				$this->id    = $obj->rowid;
+				$this->ref   = $obj->rowid;
+				$this->tms   = $this->db->jdate($obj->tms);
+				$this->fk_user = $obj->fk_user;
+				$this->datep = $this->db->jdate($obj->datep);
+				$this->datev = $this->db->jdate($obj->datev);
+				$this->amount = $obj->amount;
+				$this->type_payement = $obj->fk_typepayment;
+				$this->num_payment = $obj->num_payment;
+				$this->label = $obj->label;
+				$this->datesp = $this->db->jdate($obj->datesp);
+				$this->dateep = $this->db->jdate($obj->dateep);
+				$this->note  = $obj->note;
+				$this->fk_bank = $obj->fk_bank;
+				$this->fk_user_creat = $obj->fk_user_creat;
+				$this->fk_user_modif = $obj->fk_user_modif;
+				$this->fk_account = $obj->fk_account;
+				$this->fk_type = $obj->fk_type;
+				$this->rappro  = $obj->rappro;
+			}
+			$this->db->free($resql);
+
+			return 1;
+		}
+		else
+		{
+			$this->error="Error ".$this->db->lasterror();
+			dol_syslog(get_class($this)."::fetch ".$this->error, LOG_ERR);
+			return -1;
+		}
+	}
+
+
+	/**
 	 *  Delete object in database
 	 *
-     *	@param	User	$user       User that delete
+	 *	@param	User	$user       User that delete
 	 *	@return	int					<0 if KO, >0 if OK
 	 */
 	function delete($user)
@@ -301,32 +230,34 @@ class PaymentSalary extends CommonObject
 		$sql = "DELETE FROM ".MAIN_DB_PREFIX."payment_salary";
 		$sql.= " WHERE rowid=".$this->id;
 
-	  dol_syslog(get_class($this)."::delete sql=".$sql);
+		dol_syslog(get_class($this)."::delete sql=".$sql);
 		$resql = $this->db->query($sql);
 		if (! $resql)
 		{
 			$this->error="Error ".$this->db->lasterror();
-            dol_syslog(get_class($this)."::delete ".$this->error, LOG_ERR);
+			dol_syslog(get_class($this)."::delete ".$this->error, LOG_ERR);
 			return -1;
 		}
 
-    // Appel des triggers
-    include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
-    $interface=new Interfaces($this->db);
-    $result=$interface->run_triggers('PAYMENT_SALARY_DELETE',$this,$user,$langs,$conf);
-    if ($result < 0) { $error++; $this->errors=$interface->errors; }
-    // Fin appel triggers
+		// Appel des triggers
+		include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
+		$interface=new Interfaces($this->db);
+		$result=$interface->run_triggers('PAYMENT_SALARY_DELETE',$this,$user,$langs,$conf);
+		if ($result < 0) {
+			$error++; $this->errors=$interface->errors;
+		}
+		// Fin appel triggers
 
 		return 1;
 	}
 
 
 	/**
-     *  Initialise an instance with random values.
-     *  Used to build previews or test instances.
-     *	id must be 0 if object instance is a specimen.
-     *
-     *  @return	void
+	 *  Initialise an instance with random values.
+	 *  Used to build previews or test instances.
+	 *	id must be 0 if object instance is a specimen.
+	 *
+	 *  @return	void
 	 */
 	function initAsSpecimen()
 	{
@@ -334,7 +265,7 @@ class PaymentSalary extends CommonObject
 
 		$this->tms='';
 		$this->fk_user='';
-    $this->datep='';
+		$this->datep='';
 		$this->datev='';
 		$this->amount='';
 		$this->label='';
@@ -346,192 +277,198 @@ class PaymentSalary extends CommonObject
 		$this->fk_user_modif='';
 	}
 
-  /**
-   *  Ajoute un paiement de salaire
-   *
+	/**
+	 *  Ajoute un paiement de salaire
+	 *
 	 *	@param	User	$user		Object user that insert
 	 *	@return	int					<0 if KO, rowid in tva table if OK
-   */
-    function addPayment($user)
-    {
-        global $conf,$langs;
-
-        $this->db->begin();
-
-        // Clean parameters
-        $this->amount=price2num(trim($this->amount));
-
-        // Check parameters
-    		if (! $this->label)
-    		{
-    			$this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Label"));
-    			return -3;
-    		}
-        if ($this->fk_user < 0 || $this->fk_user == '')
-        {
-            $this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Employee"));
-            return -4;
-        }
-        if ($this->amount < 0 || $this->amount == '')
-        {
-            $this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Amount"));
-            return -5;
-        }
-        if (! empty($conf->banque->enabled) && (empty($this->accountid) || $this->accountid <= 0))
-        {
-            $this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Account"));
-            return -6;
-        }
-        if (! empty($conf->banque->enabled) && (empty($this->paymenttype) || $this->paymenttype <= 0))
-        {
-            $this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("PaymentMode"));
-            return -6;
-        }
-
-        // Insertion dans table des paiement salaires
-        $sql = "INSERT INTO ".MAIN_DB_PREFIX."payment_salary (fk_user";
-        $sql.= ", datep";
-        $sql.= ", datev";
-        $sql.= ", amount";
-        if ($this->note)  $sql.=", note";
-        if ($this->label) $sql.=", label";
-        $sql.= ", datesp";
-        $sql.= ", dateep";
-        $sql.= ", fk_user_creat";
-        $sql.= ", fk_bank";
-        $sql.= ", entity";
-		    $sql.= ") ";
-        $sql.= " VALUES (";
-        $sql.= "'".$this->fk_user."'";
-        $sql.= ", '".$this->db->idate($this->datep)."'";
-        $sql.= ", '".$this->db->idate($this->datev)."'";
-        $sql.= ", ".$this->amount;
-        if ($this->note)  $sql.= ", '".$this->db->escape($this->note)."'";
-        if ($this->label) $sql.= ", '".$this->db->escape($this->label)."'";
-        $sql.= ", '".$this->db->idate($this->datesp)."'";
-        $sql.= ", '".$this->db->idate($this->dateep)."'";
-        $sql.= ", '".$user->id."'";
-        $sql.= ", NULL";
-        $sql.= ", ".$conf->entity;
-        $sql.= ")";
-
-		    dol_syslog(get_class($this)."::addPayment sql=".$sql);
-        $result = $this->db->query($sql);
-        if ($result)
-        {
-            $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."payment_salary");    // TODO devrait s'appeler payment_salary
-
-            // Appel des triggers
-            include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
-            $interface=new Interfaces($this->db);
-            $result=$interface->run_triggers('PAYMENT_SALARY_ADDPAYMENT',$this,$user,$langs,$conf);
-            if ($result < 0) { $error++; $this->errors=$interface->errors; }
-            // Fin appel triggers
-
-            if ($this->id > 0)
-            {
-                $ok=1;
-				        if (! empty($conf->banque->enabled) && ! empty($this->amount))
-                {
-                    // Insertion dans llx_bank
-                    require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
-
-                    $acc = new Account($this->db);
-					          $result=$acc->fetch($this->accountid);
-					          if ($result <= 0) dol_print_error($this->db);
-
-                    // Insert payment into llx_bank
-                    // Add link 'payment_salary' in bank_url between payment and bank transaction
-                    $bank_line_id = $acc->addline(
-                        $this->datep,
-                        $this->paymenttype,
-                        $this->label,
-                        -abs($this->amount),
-                        '',
-                        '',
-                        $user
-                    );
-
-                    // Mise a jour fk_bank dans llx_paiement.
-                    // On connait ainsi le paiement qui a genere l'ecriture bancaire
-                    if ($bank_line_id > 0)
-					          {
-                        $this->update_fk_bank($bank_line_id);
-                    }
-          					else
-          					{
-          						$this->error=$acc->error;
-          						$ok=0;
-          					}
-
-                    // Add link 'payment_salary' in bank_url between payment and bank transaction
-                    $url=DOL_URL_ROOT.'/compta/salaries/fiche.php?id=';
-
-                    $result=$acc->add_url_line($bank_line_id, $this->id, $url, "(SalaryPayment)", "payment_salary");
-                    if ($result <= 0)
-                    {
-                        $this->error=$acc->error;
-                    	  $ok=0;
-                    }
-
-                    // Add link 'user' in bank_url between operation and bank transaction
-                    $linkaddedforthirdparty=array();
-                    foreach ($this->amounts as $key => $value)
-                    {
-                        $sal = new PaymentSalary($this->db);
-
-                        $sal->fetch($key);
-                        $sal->fetch_user($this->fk_user);
-
-                        if (! in_array($sal->user->id,$linkaddedforthirdparty)) // Not yet done for this thirdparty
-                        {
-                            $result=$acc->add_url_line(
-                            $bank_line_id,
-                            $sal->user->id,
-                            DOL_URL_ROOT.'/user/fiche.php?id=',
-                            $sal->user->lastname,
-                            'user'
-                            );
-
-                            if ($result <= 0) dol_print_error($this->db);
-                            $linkaddedforthirdparty[$sal->user->id]=$sal->user->id;  // Mark as done for this thirdparty
-                        }
-
-                    }
-                }
-
-              if ($ok)
-      				{
-      					$this->db->commit();
-      					return $this->id;
-      				}
-      				else
-      				{
-      					$this->db->rollback();
-      					return -3;
-      				}
-            }
-            else
-            {
-                $this->error=$this->db->error();
-                $this->db->rollback();
-                return -2;
-            }
-        }
-        else
-        {
-            $this->error=$this->db->error();
-            $this->db->rollback();
-            return -1;
-        }
-    }
-
-  /**
-   *  Mise a jour du lien entre le paiement salaire et la ligne générée dans llx_bank
-   *
-   *  @param	int		$id_bank    Id compte bancaire
+	 */
+	function create($user)
+	{
+		global $conf,$langs;
+
+		// Clean parameters
+		$this->amount=price2num(trim($this->amount));
+
+		// Check parameters
+		if (! $this->label)
+		{
+			$this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Label"));
+			return -3;
+		}
+		if ($this->fk_user < 0 || $this->fk_user == '')
+		{
+			$this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Employee"));
+			return -4;
+		}
+		if ($this->amount < 0 || $this->amount == '')
+		{
+			$this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Amount"));
+			return -5;
+		}
+		if (! empty($conf->banque->enabled) && (empty($this->accountid) || $this->accountid <= 0))
+		{
+			$this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Account"));
+			return -6;
+		}
+		if (! empty($conf->banque->enabled) && (empty($this->type_payment) || $this->type_payment <= 0))
+		{
+			$this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("PaymentMode"));
+			return -6;
+		}
+
+		$this->db->begin();
+
+		// Insertion dans table des paiement salaires
+		$sql = "INSERT INTO ".MAIN_DB_PREFIX."payment_salary (fk_user";
+		$sql.= ", datep";
+		$sql.= ", datev";
+		$sql.= ", amount";
+		$sql.= ", fk_typepayment";
+		$sql.= ", num_payment";
+		$sql.=", note";
+		$sql.=", label";
+		$sql.= ", datesp";
+		$sql.= ", dateep";
+		$sql.= ", fk_user_creat";
+		$sql.= ", fk_bank";
+		$sql.= ", entity";
+		$sql.= ") ";
+		$sql.= " VALUES (";
+		$sql.= "'".$this->fk_user."'";
+		$sql.= ", '".$this->db->idate($this->datep)."'";
+		$sql.= ", '".$this->db->idate($this->datev)."'";
+		$sql.= ", ".$this->amount;
+		$sql.= ", ".$this->type_payment;
+		$sql.= ", ".$this->num_payment;
+		$sql.= ", '".$this->db->escape($this->note)."'";
+		$sql.= ", '".$this->db->escape($this->label)."'";
+		$sql.= ", '".$this->db->idate($this->datesp)."'";
+		$sql.= ", '".$this->db->idate($this->dateep)."'";
+		$sql.= ", '".$user->id."'";
+		$sql.= ", NULL";
+		$sql.= ", ".$conf->entity;
+		$sql.= ")";
+
+		dol_syslog(get_class($this)."::create sql=".$sql);
+		$result = $this->db->query($sql);
+		if ($result)
+		{
+			$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."payment_salary");    // TODO devrait s'appeler payment_salary
+
+			// Appel des triggers
+			include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
+			$interface=new Interfaces($this->db);
+			$result=$interface->run_triggers('PAYMENT_SALARY_CREATE',$this,$user,$langs,$conf);
+			if ($result < 0) {
+				$error++; $this->errors=$interface->errors;
+			}
+			// Fin appel triggers
+
+			if ($this->id > 0)
+			{
+				$ok=1;
+				if (! empty($conf->banque->enabled) && ! empty($this->amount))
+				{
+					// Insertion dans llx_bank
+					require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
+
+					$acc = new Account($this->db);
+					$result=$acc->fetch($this->accountid);
+					if ($result <= 0) dol_print_error($this->db);
+
+					// Insert payment into llx_bank
+					// Add link 'payment_salary' in bank_url between payment and bank transaction
+					$bank_line_id = $acc->addline(
+						$this->datep,
+						$this->type_payment,
+						$this->label,
+						-abs($this->amount),
+						$this->num_payment,
+						'',
+						$user
+					);
+
+					// Mise a jour fk_bank dans llx_paiement.
+					// On connait ainsi le paiement qui a genere l'ecriture bancaire
+					if ($bank_line_id > 0)
+					{
+						$this->update_fk_bank($bank_line_id);
+					}
+					else
+					{
+						$this->error=$acc->error;
+						$ok=0;
+					}
+
+					// Add link 'payment_salary' in bank_url between payment and bank transaction
+					$url=DOL_URL_ROOT.'/compta/salaries/fiche.php?id=';
+
+					$result=$acc->add_url_line($bank_line_id, $this->id, $url, "(SalaryPayment)", "payment_salary");
+					if ($result <= 0)
+					{
+						$this->error=$acc->error;
+						$ok=0;
+					}
+
+					// Add link 'user' in bank_url between operation and bank transaction
+					$linkaddedforthirdparty=array();
+					foreach ($this->amounts as $key => $value)
+					{
+						$sal = new PaymentSalary($this->db);
+
+						$sal->fetch($key);
+						$sal->fetch_user($this->fk_user);
+
+						if (! in_array($sal->user->id,$linkaddedforthirdparty)) // Not yet done for this thirdparty
+						{
+							$result=$acc->add_url_line(
+								$bank_line_id,
+								$sal->user->id,
+								DOL_URL_ROOT.'/user/fiche.php?id=',
+								$sal->user->lastname,
+								'user'
+							);
+
+							if ($result <= 0) dol_print_error($this->db);
+							$linkaddedforthirdparty[$sal->user->id]=$sal->user->id;  // Mark as done for this thirdparty
+						}
+
+					}
+				}
+
+				if ($ok)
+				{
+					$this->db->commit();
+					return $this->id;
+				}
+				else
+				{
+					$this->db->rollback();
+					return -3;
+				}
+			}
+			else
+			{
+				$this->error=$this->db->error();
+				$this->db->rollback();
+				return -2;
+			}
+		}
+		else
+		{
+			$this->error=$this->db->error();
+			$this->db->rollback();
+			return -1;
+		}
+	}
+
+	/**
+	 *  Mise a jour du lien entre le paiement salaire et la ligne générée dans llx_bank
+	 *
+	 *  @param	int		$id_bank    Id compte bancaire
 	 *	@return	int					<0 if KO, >0 if OK
-   */
+	 */
 	function update_fk_bank($id_bank)
 	{
 		$sql = 'UPDATE '.MAIN_DB_PREFIX.'payment_salary SET fk_bank = '.$id_bank;
diff --git a/htdocs/compta/salaries/fiche.php b/htdocs/compta/salaries/fiche.php
index ca49efc068be5c7a92b1e7a8f8f736640c75fd94..5febffa2b7b24fcd2ea52180604367dcca501a7f 100644
--- a/htdocs/compta/salaries/fiche.php
+++ b/htdocs/compta/salaries/fiche.php
@@ -1,5 +1,6 @@
 <?php
 /* Copyright (C) 2011-2014 Alexandre Spangaro   <alexandre.spangaro@gmail.com>
+ * Copyright (C) 2014      Laurent Destailleur  <eldy@users.sourceforge.net>
  *
  * 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
@@ -17,7 +18,7 @@
 
 /**
  *	    \file       htdocs/compta/salaries/fiche.php
- *      \ingroup    tax
+ *      \ingroup    salaries
  *		\brief      Page of salaries payments
  */
 
@@ -59,50 +60,73 @@ if ($_POST["cancel"] == $langs->trans("Cancel"))
 
 if ($action == 'add' && $_POST["cancel"] <> $langs->trans("Cancel"))
 {
-    $db->begin();
-
-    $datev=dol_mktime(12,0,0, $_POST["datevmonth"], $_POST["datevday"], $_POST["datevyear"]);
-    $datep=dol_mktime(12,0,0, $_POST["datepmonth"], $_POST["datepday"], $_POST["datepyear"]);
-    $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=$_POST["accountid"];
-    $sal->paymenttype=$_POST["paiementtype"];
-    $sal->fk_user=$_POST["fk_user"];
-    $sal->datev=$datev;
-    $sal->datep=$datep;
-    $sal->amount=$_POST["amount"];
-	  $sal->label=$_POST["label"];
-    $sal->datesp=$datesp;
-    $sal->dateep=$dateep;
-
-    $ret=$sal->addPayment($user);
-    if ($ret > 0)
-    {
-        $db->commit();
-        header("Location: index.php");
-        exit;
-    }
-    else
-    {
-        $db->rollback();
-        setEventMessage($sal->error, 'errors');
-        $action="create";
-    }
+	$error=0;
+
+	$datev=dol_mktime(12,0,0, $_POST["datevmonth"], $_POST["datevday"], $_POST["datevyear"]);
+	$datep=dol_mktime(12,0,0, $_POST["datepmonth"], $_POST["datepday"], $_POST["datepyear"]);
+	$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->datev=$datev;
+	$sal->datep=$datep;
+	$sal->amount=price2num(GETPOST("amount"));
+	$sal->label=GETPOST("label");
+	$sal->datesp=$datesp;
+	$sal->dateep=$dateep;
+	$sal->type_payment=GETPOST("paymenttype");
+	$sal->num_payment=GETPOST('num_payment');
+
+	if (empty($sal->fk_user) || $sal->fk_user < 0)
+	{
+		setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Employee")),'errors');
+		$error++;
+	}
+	if (empty($sal->type_payment) || $sal->type_payment < 0)
+	{
+		setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("PaymentMode")),'errors');
+		$error++;
+	}
+	if (empty($sal->amount))
+	{
+		setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Amount")),'errors');
+		$error++;
+	}
+
+	if (! $error)
+	{
+		$db->begin();
+	  
+		$ret=$sal->create($user);
+		if ($ret > 0)
+		{
+			$db->commit();
+			header("Location: index.php");
+			exit;
+		}
+		else
+		{
+			$db->rollback();
+			setEventMessage($sal->error, 'errors');
+			$action="create";
+		}
+	}
+
+	$action='create';
 }
 
 if ($action == 'delete')
 {
-    $result=$sal->fetch($id);
+	$result=$sal->fetch($id);
 
 	if ($sal->rappro == 0)
 	{
-	    $db->begin();
+		$db->begin();
 
-	    $ret=$sal->delete($user);
-	    if ($ret > 0)
-	    {
+		$ret=$sal->delete($user);
+		if ($ret > 0)
+		{
 			if ($sal->fk_bank)
 			{
 				$accountline=new AccountLine($db);
@@ -122,23 +146,23 @@ if ($action == 'delete')
 				$db->rollback();
 				setEventMessage($sal->error,'errors');
 			}
-	    }
-	    else
-	    {
-	        $db->rollback();
-	        setEventMessage($sal->error,'errors');
-	    }
+		}
+		else
+		{
+			$db->rollback();
+			setEventMessage($sal->error,'errors');
+		}
 	}
 	else
 	{
-        setEventMessage('Error try do delete a line linked to a conciliated bank transaction','errors');
+		setEventMessage('Error try do delete a line linked to a conciliated bank transaction','errors');
 	}
 }
 
 
 /*
-*	View
-*/
+ *	View
+ */
 
 llxHeader();
 
@@ -146,7 +170,7 @@ $form = new Form($db);
 
 if ($id)
 {
-  $salpayment = new PaymentSalary($db);
+	$salpayment = new PaymentSalary($db);
 	$result = $salpayment->fetch($id);
 	if ($result <= 0)
 	{
@@ -158,86 +182,93 @@ if ($id)
 // Formulaire saisie salaire
 if ($action == 'create')
 {
-    $year_current = strftime("%Y",dol_now());
-    $pastmonth = strftime("%m",dol_now()) - 1;
-    $pastmonthyear = $year_current;
-    if ($pastmonth == 0)
-    {
-    	$pastmonth = 12;
-    	$pastmonthyear--;
-    }
-
-    $datesp=dol_mktime(0, 0, 0, $datespmonth, $datespday, $datespyear);
-    $dateep=dol_mktime(23, 59, 59, $dateepmonth, $dateepday, $dateepyear);
-
-    if (empty($datesp) || empty($dateep)) // We define date_start and date_end
-    {
-    	$datesp=dol_get_first_day($pastmonthyear,$pastmonth,false); $dateep=dol_get_last_day($pastmonthyear,$pastmonth,false);
-    }
-
-    print "<form name='add' action=\"fiche.php\" method=\"post\">\n";
-    print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
-    print '<input type="hidden" name="action" value="add">';
-
-    print_fiche_titre($langs->trans("NewSalaryPayment"));
-
-    print '<table class="border" width="100%">';
-
-    print "<tr>";
-    print '<td class="fieldrequired">'.$langs->trans("DatePayment").'</td><td>';
-    print $form->select_date($datep,"datep",'','','','add');
-    print '</td></tr>';
-
-    print '<tr><td class="fieldrequired">'.$langs->trans("DateValue").'</td><td>';
-    print $form->select_date($datev,"datev",'','','','add');
-    print '</td></tr>';
-
-    // Employee
-    print "<tr>";
-    print '<td class="fieldrequired">'.$langs->trans("Employee").'</td><td>';
-    print $form->select_dolusers(GETPOST('fk_user','int'),'fk_user',1);
-    print '</td></tr>';
-
-  	// Label
-  	print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td><td><input name="label" size="40" value="'.($_POST["label"]?$_POST["label"]:$langs->trans("SalaryPayment")).'"></td></tr>';
-
-    print "<tr>";
-    print '<td class="fieldrequired">'.$langs->trans("DateStartPeriod").'</td><td>';
-    print $form->select_date($datesp,"datesp",'','','','add');
-    print '</td></tr>';
-
-    print '<tr><td class="fieldrequired">'.$langs->trans("DateEndPeriod").'</td><td>';
-    print $form->select_date($dateep,"dateep",'','','','add');
-    print '</td></tr>';
-
-  	// Amount
-  	print '<tr><td class="fieldrequired">'.$langs->trans("Amount").'</td><td><input name="amount" size="10" value="'.$_POST["amount"].'"></td></tr>';
-
-    // Bank
-    if (! empty($conf->banque->enabled))
-    {
-  	    print '<tr><td class="fieldrequired">'.$langs->trans("Account").'</td><td>';
-        $form->select_comptes($_POST["accountid"],"accountid",0,"courant=1",1);  // Affiche liste des comptes courant
-        print '</td></tr>';
-
-  	    print '<tr><td class="fieldrequired">'.$langs->trans("PaymentMode").'</td><td>';
-  	    $form->select_types_paiements($_POST["paiementtype"], "paiementtype");
-  	    print "</td>\n";
-  	    print "</tr>";
-  	}
-
-    // Other attributes
-    $parameters=array('colspan' => ' colspan="1"');
-    $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action);    // Note that $action and $object may have been modified by hook
-
-    print '</table>';
-
-  	print "<br>";
-
-  	print '<center><input type="submit" class="button" value="'.$langs->trans("Save").'"> &nbsp; ';
-    print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'"></center>';
-
-    print '</form>';
+	$year_current = strftime("%Y",dol_now());
+	$pastmonth = strftime("%m",dol_now()) - 1;
+	$pastmonthyear = $year_current;
+	if ($pastmonth == 0)
+	{
+		$pastmonth = 12;
+		$pastmonthyear--;
+	}
+
+	$datesp=dol_mktime(0, 0, 0, $datespmonth, $datespday, $datespyear);
+	$dateep=dol_mktime(23, 59, 59, $dateepmonth, $dateepday, $dateepyear);
+
+	if (empty($datesp) || empty($dateep)) // We define date_start and date_end
+	{
+		$datesp=dol_get_first_day($pastmonthyear,$pastmonth,false); $dateep=dol_get_last_day($pastmonthyear,$pastmonth,false);
+	}
+
+	print "<form name='add' action=\"fiche.php\" method=\"post\">\n";
+	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
+	print '<input type="hidden" name="action" value="add">';
+
+	print_fiche_titre($langs->trans("NewSalaryPayment"));
+
+	print '<table class="border" width="100%">';
+
+	print "<tr>";
+	print '<td class="fieldrequired">'.$langs->trans("DatePayment").'</td><td>';
+	print $form->select_date($datep,"datep",'','','','add');
+	print '</td></tr>';
+
+	print '<tr><td class="fieldrequired">'.$langs->trans("DateValue").'</td><td>';
+	print $form->select_date($datev,"datev",'','','','add');
+	print '</td></tr>';
+
+	// Employee
+	print "<tr>";
+	print '<td class="fieldrequired">'.$langs->trans("Employee").'</td><td>';
+	print $form->select_dolusers(GETPOST('fk_user','int'),'fk_user',1);
+	print '</td></tr>';
+
+	// Label
+	print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td><td><input name="label" size="40" value="'.($_POST["label"]?$_POST["label"]:$langs->trans("SalaryPayment")).'"></td></tr>';
+
+	print "<tr>";
+	print '<td class="fieldrequired">'.$langs->trans("DateStartPeriod").'</td><td>';
+	print $form->select_date($datesp,"datesp",'','','','add');
+	print '</td></tr>';
+
+	print '<tr><td class="fieldrequired">'.$langs->trans("DateEndPeriod").'</td><td>';
+	print $form->select_date($dateep,"dateep",'','','','add');
+	print '</td></tr>';
+
+	// Amount
+	print '<tr><td class="fieldrequired">'.$langs->trans("Amount").'</td><td><input name="amount" size="10" value="'.GETPOST("amount").'"></td></tr>';
+
+	// Bank
+	if (! empty($conf->banque->enabled))
+	{
+		print '<tr><td class="fieldrequired">'.$langs->trans("Account").'</td><td>';
+		$form->select_comptes($_POST["accountid"],"accountid",0,"courant=1",1);  // Affiche liste des comptes courant
+		print '</td></tr>';
+
+	}
+
+	// TYpe payment
+	print '<tr><td class="fieldrequired">'.$langs->trans("PaymentMode").'</td><td>';
+	$form->select_types_paiements(GETPOST("paymenttype"), "paymenttype");
+	print "</td>\n";
+	print "</tr>";
+	 
+	// Number
+	print '<tr><td>'.$langs->trans('Numero');
+	print ' <em>('.$langs->trans("ChequeOrTransferNumber").')</em>';
+	print '<td><input name="num_payment" type="text" value="'.GETPOST("num_payment").'"></td></tr>'."\n";
+	 
+	// Other attributes
+	$parameters=array('colspan' => ' colspan="1"');
+	$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action);    // Note that $action and $object may have been modified by hook
+
+	print '</table>';
+
+	print "<br>";
+
+	print '<center><input type="submit" class="button" value="'.$langs->trans("Save").'"> &nbsp; ';
+	print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'"></center>';
+
+	print '</form>';
 }
 
 
@@ -265,17 +296,17 @@ if ($id)
 	print $salpayment->ref;
 	print '</td></tr>';
 
-  // Person
-  print '<tr><td>'.$langs->trans("Person").'</td><td>';
-  $usersal=new User($db);
-  $usersal->fetch($salpayment->fk_user);
-  print $usersal->getNomUrl(1);
-  print '</td></tr>';
+	// Person
+	print '<tr><td>'.$langs->trans("Person").'</td><td>';
+	$usersal=new User($db);
+	$usersal->fetch($salpayment->fk_user);
+	print $usersal->getNomUrl(1);
+	print '</td></tr>';
 
 	// Label
 	print '<tr><td>'.$langs->trans("Label").'</td><td>'.$salpayment->label.'</td></tr>';
 
-  print "<tr>";
+	print "<tr>";
 	print '<td>'.$langs->trans("DateStartPeriod").'</td><td colspan="3">';
 	print dol_print_date($salpayment->datesp,'day');
 	print '</td></tr>';
@@ -293,34 +324,34 @@ if ($id)
 	print dol_print_date($salpayment->datev,'day');
 	print '</td></tr>';
 
-	print '<tr><td>'.$langs->trans("Amount").'</td><td colspan="3">'.price($salpayment->amount).'</td></tr>';
+	print '<tr><td>'.$langs->trans("Amount").'</td><td colspan="3">'.price($salpayment->amount,0,$outputlangs,1,-1,-1,$conf->currency).'</td></tr>';
 
 	if (! empty($conf->banque->enabled))
 	{
 		if ($salpayment->fk_account > 0)
 		{
- 		   	$bankline=new AccountLine($db);
-    		$bankline->fetch($salpayment->fk_bank);
-
-	    	print '<tr>';
-	    	print '<td>'.$langs->trans('BankTransactionLine').'</td>';
-			  print '<td colspan="3">';
-			  print $bankline->getNomUrl(1,0,'showall');
-	    	print '</td>';
-	    	print '</tr>';
+			$bankline=new AccountLine($db);
+			$bankline->fetch($salpayment->fk_bank);
+
+			print '<tr>';
+			print '<td>'.$langs->trans('BankTransactionLine').'</td>';
+			print '<td colspan="3">';
+			print $bankline->getNomUrl(1,0,'showall');
+			print '</td>';
+			print '</tr>';
 		}
 	}
 
-        // Other attributes
-        $parameters=array('colspan' => ' colspan="3"');
-        $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$salpayment,$action);    // Note that $action and $object may have been modified by hook
+	// Other attributes
+	$parameters=array('colspan' => ' colspan="3"');
+	$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$salpayment,$action);    // Note that $action and $object may have been modified by hook
 
 	print '</table>';
 
 	print '</div>';
 
 	/*
-	* Boutons d'actions
+	 * Boutons d'actions
 	*/
 	print "<div class=\"tabsAction\">\n";
 	if ($salpayment->rappro == 0)
@@ -342,7 +373,8 @@ if ($id)
 }
 
 
-$db->close();
 
 llxFooter();
-?>
+
+$db->close();
+?>
\ No newline at end of file
diff --git a/htdocs/compta/salaries/index.php b/htdocs/compta/salaries/index.php
index 7de22d7919644217ea19899a494fa2e3ac30ff05..f32c1bad951d0b2846cd920f6990b16ce0dc3a7b 100644
--- a/htdocs/compta/salaries/index.php
+++ b/htdocs/compta/salaries/index.php
@@ -17,8 +17,8 @@
 
 /**
  *	    \file       htdocs/compta/salaries/index.php
- *      \ingroup    tax
- *		  \brief      List of salaries payments
+ *      \ingroup    salaries
+ *		\brief     	List of salaries payments
  */
 
 require '../../main.inc.php';
@@ -26,6 +26,7 @@ require_once DOL_DOCUMENT_ROOT.'/compta/salaries/class/paymentsalary.class.php';
 
 $langs->load("compta");
 $langs->load("salaries");
+$langs->load("bills");
 
 // Security check
 $socid = isset($_GET["socid"])?$_GET["socid"]:'';
@@ -46,8 +47,11 @@ $userstatic = new User($db);
 
 print_fiche_titre($langs->trans("SalariesPayments"));
 
-$sql = "SELECT u.rowid as uid, u.lastname, u.firstname, s.rowid, s.fk_user, s.amount, s.label, s.datev as dm";
-$sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as s, ".MAIN_DB_PREFIX."user as u";
+$sql = "SELECT u.rowid as uid, u.lastname, u.firstname, s.rowid, s.fk_user, s.amount, s.label, s.datev as dm, 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,";
+$sql.= " ".MAIN_DB_PREFIX."user as u";
 $sql.= " WHERE u.rowid = s.fk_user";
 $sql.= " AND s.entity = ".$conf->entity;
 $sql.= " ORDER BY dm DESC";
@@ -65,6 +69,7 @@ if ($result)
     print "<td>".$langs->trans("Person")."</td>";
     print "<td>".$langs->trans("Label")."</td>";
     print '<td class="nowrap" align="left">'.$langs->trans("DatePayment").'</td>';
+    print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"c.libelle","",$paramlist,"",$sortfield,$sortorder);
     print "<td align=\"right\">".$langs->trans("PayedByThisPayment")."</td>";
     print "</tr>\n";
     $var=1;
@@ -78,20 +83,23 @@ if ($result)
         $userstatic->lastname=$obj->lastname;
         $userstatic->firstname=$obj->firstname;
         $salstatic->id=$obj->rowid;
-		    $salstatic->ref=$obj->rowid;
+		$salstatic->ref=$obj->rowid;
         print "<td>".$salstatic->getNomUrl(1)."</td>\n";
-		    print "<td>".$userstatic->getNomUrl(1)."</td>\n";
+		print "<td>".$userstatic->getNomUrl(1)."</td>\n";
         print "<td>".dol_trunc($obj->label,40)."</td>\n";
         print '<td align="left">'.dol_print_date($db->jdate($obj->dm),'day')."</td>\n";
-        $total = $total + $obj->amount;
-
-        print "<td align=\"right\">".price($obj->amount)."</td>";
+        // Type
+        print '<td>'.$langs->trans("PaymentTypeShort".$obj->payment_code).' '.$obj->num_payment.'</td>';
+		// Amount
+        print "<td align=\"right\">".price($obj->amount,0,$outputlangs,1,-1,-1,$conf->currency)."</td>";
         print "</tr>\n";
 
+        $total = $total + $obj->amount;
+        
         $i++;
     }
-    print '<tr class="liste_total"><td colspan="4">'.$langs->trans("Total").'</td>';
-    print "<td align=\"right\"><b>".price($total)."</b></td></tr>";
+    print '<tr class="liste_total"><td colspan="5" class="liste_total">'.$langs->trans("Total").'</td>';
+    print '<td  class="liste_total" align="right">'.price($total,0,$outputlangs,1,-1,-1,$conf->currency)."</td></tr>";
 
     print "</table>";
     $db->free($result);
diff --git a/htdocs/compta/sociales/charges.php b/htdocs/compta/sociales/charges.php
index adc5fb8ae74593e2caff6171974523905bc79dd4..b7d0e39ae6f43b30113a41ba4746c38307d7f528 100644
--- a/htdocs/compta/sociales/charges.php
+++ b/htdocs/compta/sociales/charges.php
@@ -226,7 +226,7 @@ if ($action == 'create')
     print $form->select_date(! empty($dateperiod)?$dateperiod:'-1', 'period', 0, 0, 0, 'charge', 1);
 	print '</td>';
 
-    print '<td align="right"><input type="text" size="6" name="amount" class="flat"></td>';
+    print '<td align="right"><input type="text" size="6" name="amount" class="flat" value="'.GETPOST('amount').'"></td>';
 
     print '<td align="center">';
     print $form->select_date(! empty($dateech)?$dateech:'-1', 'ech', 0, 0, 0, 'charge', 1);
diff --git a/htdocs/install/mysql/migration/3.5.0-3.6.0.sql b/htdocs/install/mysql/migration/3.5.0-3.6.0.sql
index f9e0264b906e56a3ab3ca9214d2a7d1c45741456..397a4896a5453c79429b01ee9619308f180787fc 100644
--- a/htdocs/install/mysql/migration/3.5.0-3.6.0.sql
+++ b/htdocs/install/mysql/migration/3.5.0-3.6.0.sql
@@ -1044,6 +1044,7 @@ CREATE TABLE llx_expeditiondet_batch (
 ) ENGINE=InnoDB;
 
 --Salary payment in tax module
+--DROP TABLE llx_payment_salary
 CREATE TABLE llx_payment_salary (
   rowid integer AUTO_INCREMENT PRIMARY KEY,
   tms timestamp,
@@ -1051,6 +1052,8 @@ CREATE TABLE llx_payment_salary (
   datep date,
   datev date,
   amount real NOT NULL DEFAULT 0,
+  fk_typepayment integer NOT NULL,
+  num_payment varchar(50),
   label varchar(255),
   datesp date,                       -- date de début de la période
   dateep date,                       -- date de fin de la période    
diff --git a/htdocs/install/mysql/tables/llx_payment_salary.sql b/htdocs/install/mysql/tables/llx_payment_salary.sql
index 513eed2b9436f3f7cbe5c779927c80bb88099371..b82ff66ecc1a3ee9811539cff19f5d31dac3b7db 100644
--- a/htdocs/install/mysql/tables/llx_payment_salary.sql
+++ b/htdocs/install/mysql/tables/llx_payment_salary.sql
@@ -24,6 +24,8 @@ create table llx_payment_salary
   datep           date,                       -- date de paiement
   datev           date,                       -- date de valeur
   amount          real NOT NULL DEFAULT 0,
+  fk_typepayment  integer NOT NULL,
+  num_payment     varchar(50),
   label           varchar(255),
   datesp          date,                       -- date de début de la période
   dateep          date,                       -- date de fin de la période