diff --git a/dev/codesniffer/ruleset.dtd b/dev/codesniffer/ruleset.dtd
index 0d498bb033cd5c71f8877d4e848d131309bf02b9..e307d564e12199746479ce439e3fa19b1c029d36 100755
--- a/dev/codesniffer/ruleset.dtd
+++ b/dev/codesniffer/ruleset.dtd
@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!ELEMENT ruleset (description,rule+)>
+<!ELEMENT ruleset (description,exclude-pattern*,rule+)>
 <!ATTLIST ruleset name CDATA "">
 <!ELEMENT description (#PCDATA)>
+<!ELEMENT exclude-pattern (#PCDATA)>
 <!ELEMENT rule (properties*,severity*)>
 <!ATTLIST rule ref CDATA "">
 <!ELEMENT properties (property+)>
diff --git a/dev/codesniffer/ruleset.xml b/dev/codesniffer/ruleset.xml
index 9d605cefbb17eea8e0e95f9678e60c30bbb2d277..ba1a1ba65c3e92722f0bfac0562eccc365ab7717 100755
--- a/dev/codesniffer/ruleset.xml
+++ b/dev/codesniffer/ruleset.xml
@@ -3,6 +3,10 @@
 <ruleset name="Dolibarr">
 	<description>Dolibarr coding standard.</description>
 
+	<exclude-pattern>*/conf.php</exclude-pattern>
+	<exclude-pattern>*/includes/*</exclude-pattern>
+	<exclude-pattern>*/documents/*</exclude-pattern>
+
 	<!-- List of all tests -->
 
 	<rule ref="Internal.NoCodeFound">
@@ -19,7 +23,7 @@
 	</rule>
 
     <!-- The closing ?> tag MUST be omitted from files containing only PHP. -->
-    <!-- <rule ref="Zend.Files.ClosingTag"/> -->
+    <rule ref="Zend.Files.ClosingTag"/>
 
     <!-- <rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop" /> -->
 
diff --git a/htdocs/core/class/interfaces.class.php b/htdocs/core/class/interfaces.class.php
index 2f70c91ac6d80703beb18cf49e83bfc152cedf74..50a9cced421df8c45df010a09477f7dc8cf8664e 100644
--- a/htdocs/core/class/interfaces.class.php
+++ b/htdocs/core/class/interfaces.class.php
@@ -149,9 +149,23 @@ class Interfaces
             $objMod = new $modName($this->db);
             if ($objMod)
             {
-                dol_syslog(get_class($this)."::run_triggers action=".$action." Launch triggers for file '".$files[$key]."'", LOG_INFO);
+            	$result=0;
+
+				if (method_exists($objMod, 'runTrigger'))	// New method to implement
+				{
+	                dol_syslog(get_class($this)."::run_triggers action=".$action." Launch runTrigger for file '".$files[$key]."'", LOG_INFO);
+	                $result=$objMod->runTrigger($action,$object,$user,$langs,$conf);
+				}
+				elseif (method_exists($objMod, 'run_trigger'))	// Deprecated method
+				{
+	                dol_syslog(get_class($this)."::run_triggers action=".$action." Launch run_trigger for file '".$files[$key]."'", LOG_INFO);
+					$result=$objMod->run_trigger($action,$object,$user,$langs,$conf);
+				}
+				else
+				{
+	                dol_syslog(get_class($this)."::run_triggers action=".$action." A trigger was declared for class ".get_class($objMod)." but method runTrigger was not found", LOG_ERR);
+				}
 
-                $result=$objMod->run_trigger($action,$object,$user,$langs,$conf);
                 if ($result > 0)
                 {
                     // Action OK
@@ -173,7 +187,7 @@ class Interfaces
                 }
             }
             else
-            {
+			{
                 dol_syslog(get_class($this)."::run_triggers action=".$action." Failed to instantiate trigger for file '".$files[$key]."'", LOG_ERR);
             }
         }
diff --git a/htdocs/core/triggers/DolibarrTriggers.class.php b/htdocs/core/triggers/DolibarrTriggers.class.php
index 8d3227e64826e2ea8481ee5e91bbdfc092da5bb9..1fd29359d747cc03e80017df41ff39ed5c2e33e2 100644
--- a/htdocs/core/triggers/DolibarrTriggers.class.php
+++ b/htdocs/core/triggers/DolibarrTriggers.class.php
@@ -1,7 +1,5 @@
 <?php
-
-/*
- * Copyright (C) 2014 Marcos García         <marcosgdf@gmail.com>
+/* Copyright (C) 2014 Marcos García         <marcosgdf@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
@@ -135,15 +133,15 @@ abstract class DolibarrTriggers
 
 	/**
 	 * Function called when a Dolibarrr business event is done.
-	 * All functions "run_trigger" are triggered if file is inside directory htdocs/core/triggers
+	 * All functions "runTrigger" are triggered if file is inside directory htdocs/core/triggers or htdocs/module/code/triggers (and declared)
 	 *
 	 * @param string		$action		Event action code
 	 * @param Object		$object     Object
 	 * @param User		    $user       Object user
 	 * @param Translate 	$langs      Object langs
 	 * @param conf		    $conf       Object conf
-	 * @return int         			<0 if KO, 0 if no triggered ran, >0 if OK
+	 * @return int         				<0 if KO, 0 if no triggered ran, >0 if OK
 	 */
-	abstract function run_trigger($action, $object, User $user, Translate $langs, Conf $conf);
+	abstract function runTrigger($action, $object, User $user, Translate $langs, Conf $conf);
 
 }
\ No newline at end of file
diff --git a/htdocs/core/triggers/interface_20_all_Logevents.class.php b/htdocs/core/triggers/interface_20_all_Logevents.class.php
index a16eb82e2abb5255cd0b7ed4acfc48c3a03452d0..0770af5452054b45ae00324b317c62a58d45bf06 100644
--- a/htdocs/core/triggers/interface_20_all_Logevents.class.php
+++ b/htdocs/core/triggers/interface_20_all_Logevents.class.php
@@ -36,16 +36,16 @@ class InterfaceLogevents extends DolibarrTriggers
 
 	/**
 	 * Function called when a Dolibarrr business event is done.
-	 * All functions "run_trigger" are triggered if file is inside directory htdocs/core/triggers
+	 * All functions "runTrigger" are triggered if file is inside directory htdocs/core/triggers or htdocs/module/code/triggers (and declared)
 	 *
 	 * @param string		$action		Event action code
 	 * @param Object		$object     Object
-	 * @param User		$user       Object user
-	 * @param Translate	$langs      Object langs
-	 * @param conf		$conf       Object conf
-	 * @return int         			<0 if KO, 0 if no triggered ran, >0 if OK
+	 * @param User			$user       Object user
+	 * @param Translate		$langs      Object langs
+	 * @param conf			$conf       Object conf
+	 * @return int         				<0 if KO, 0 if no triggered ran, >0 if OK
 	 */
-	public function run_trigger($action, $object, User $user, Translate $langs, Conf $conf)
+	public function runTrigger($action, $object, User $user, Translate $langs, Conf $conf)
     {
     	if (! empty($conf->global->MAIN_LOGEVENTS_DISABLE_ALL)) return 0;	// Log events is disabled (hidden features)
 
diff --git a/htdocs/core/triggers/interface_20_modPaypal_PaypalWorkflow.class.php b/htdocs/core/triggers/interface_20_modPaypal_PaypalWorkflow.class.php
index 631b6a286398da536f046accb6ae2aafc98b6c11..13647814bb47c846b8c700874b94c25e4bc8bc23 100644
--- a/htdocs/core/triggers/interface_20_modPaypal_PaypalWorkflow.class.php
+++ b/htdocs/core/triggers/interface_20_modPaypal_PaypalWorkflow.class.php
@@ -35,16 +35,16 @@ class InterfacePaypalWorkflow extends DolibarrTriggers
 
 	/**
 	 * Function called when a Dolibarrr business event is done.
-	 * All functions "run_trigger" are triggered if file is inside directory htdocs/core/triggers
+	 * All functions "runTrigger" are triggered if file is inside directory htdocs/core/triggers or htdocs/module/code/triggers (and declared)
 	 *
 	 * @param string		$action		Event action code
 	 * @param Object		$object     Object
-	 * @param User		$user       Object user
-	 * @param Translate	$langs      Object langs
-	 * @param conf		$conf       Object conf
-	 * @return int         			<0 if KO, 0 if no triggered ran, >0 if OK
+	 * @param User			$user       Object user
+	 * @param Translate		$langs      Object langs
+	 * @param conf			$conf       Object conf
+	 * @return int         				<0 if KO, 0 if no triggered ran, >0 if OK
 	 */
-	public function run_trigger($action, $object, User $user, Translate $langs, Conf $conf)
+	public function runTrigger($action, $object, User $user, Translate $langs, Conf $conf)
     {
         // Mettre ici le code a executer en reaction de l'action
         // Les donnees de l'action sont stockees dans $object
diff --git a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php
index 074118ebdd4fb3b884dc44ff1cc0ea20ad3ab11a..c1e3995afa89a210edc71b92e26acab62c0e0c7c 100644
--- a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php
+++ b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php
@@ -37,16 +37,16 @@ class InterfaceWorkflowManager extends DolibarrTriggers
 
 	/**
 	 * Function called when a Dolibarrr business event is done.
-	 * All functions "run_trigger" are triggered if file is inside directory htdocs/core/triggers
+	 * All functions "runTrigger" are triggered if file is inside directory htdocs/core/triggers or htdocs/module/code/triggers (and declared)
 	 *
 	 * @param string		$action		Event action code
 	 * @param Object		$object     Object
 	 * @param User		    $user       Object user
 	 * @param Translate 	$langs      Object langs
 	 * @param conf		    $conf       Object conf
-	 * @return int         			<0 if KO, 0 if no triggered ran, >0 if OK
+	 * @return int         				<0 if KO, 0 if no triggered ran, >0 if OK
 	 */
-	public function run_trigger($action, $object, User $user, Translate $langs, Conf $conf)
+	public function runTrigger($action, $object, User $user, Translate $langs, Conf $conf)
     {
         if (empty($conf->workflow->enabled)) return 0;     // Module not active, we do nothing
 
@@ -116,7 +116,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers
         		return $ret;
         	}
         }
-        
+
         // classify billed order
         if ($action == 'BILL_VALIDATE')
         {
diff --git a/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php b/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php
index 8ad12b34638b024280c441864b2881c96be0e221..a30c26ece3b6bfa370fb81d779b148ac4bedba15 100644
--- a/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php
+++ b/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php
@@ -38,7 +38,7 @@ class InterfaceActionsAuto extends DolibarrTriggers
 
 	/**
 	 * Function called when a Dolibarrr business event is done.
-	 * All functions "run_trigger" are triggered if file is inside directory htdocs/core/triggers
+	 * All functions "runTrigger" are triggered if file is inside directory htdocs/core/triggers or htdocs/module/code/triggers (and declared)
 	 *
 	 * Following properties must be filled:
 	 *      $object->actiontypecode (translation action code: AC_OTH, ...)
@@ -55,9 +55,9 @@ class InterfaceActionsAuto extends DolibarrTriggers
 	 * @param User		    $user       Object user
 	 * @param Translate 	$langs      Object langs
 	 * @param conf		    $conf       Object conf
-	 * @return int         			<0 if KO, 0 if no triggered ran, >0 if OK
+	 * @return int         				<0 if KO, 0 if no triggered ran, >0 if OK
 	 */
-	public function run_trigger($action, $object, User $user, Translate $langs, Conf $conf)
+	public function runTrigger($action, $object, User $user, Translate $langs, Conf $conf)
 	{
 		// Module not active, we do nothing
         if (empty($conf->agenda->enabled)) {
diff --git a/htdocs/core/triggers/interface_50_modLdap_Ldapsynchro.class.php b/htdocs/core/triggers/interface_50_modLdap_Ldapsynchro.class.php
index f98d8bf5248c81f9427ec298ce71b23dec965aee..dcecdc269918e38cadb5a80393307a7780068d4f 100644
--- a/htdocs/core/triggers/interface_50_modLdap_Ldapsynchro.class.php
+++ b/htdocs/core/triggers/interface_50_modLdap_Ldapsynchro.class.php
@@ -37,16 +37,16 @@ class InterfaceLdapsynchro extends DolibarrTriggers
 
 	/**
 	 * Function called when a Dolibarrr business event is done.
-	 * All functions "run_trigger" are triggered if file is inside directory htdocs/core/triggers
+	 * All functions "runTrigger" are triggered if file is inside directory htdocs/core/triggers or htdocs/module/code/triggers (and declared)
 	 *
 	 * @param string		$action		Event action code
 	 * @param Object		$object     Object
 	 * @param User		    $user       Object user
 	 * @param Translate 	$langs      Object langs
 	 * @param conf		    $conf       Object conf
-	 * @return int         			<0 if KO, 0 if no triggered ran, >0 if OK
+	 * @return int         				<0 if KO, 0 if no triggered ran, >0 if OK
 	 */
-	public function run_trigger($action, $object, User $user, Translate $langs, Conf $conf)
+	public function runTrigger($action, $object, User $user, Translate $langs, Conf $conf)
     {
         if (empty($conf->ldap->enabled)) return 0;     // Module not active, we do nothing
 
diff --git a/htdocs/core/triggers/interface_50_modMailmanspip_Mailmanspipsynchro.class.php b/htdocs/core/triggers/interface_50_modMailmanspip_Mailmanspipsynchro.class.php
index 51f84d2f39e8f04b8f8f9b49125116da2b6db17f..d2c01f5f508502a8cce00c3c8aa77b0811c8150b 100644
--- a/htdocs/core/triggers/interface_50_modMailmanspip_Mailmanspipsynchro.class.php
+++ b/htdocs/core/triggers/interface_50_modMailmanspip_Mailmanspipsynchro.class.php
@@ -37,16 +37,16 @@ class InterfaceMailmanSpipsynchro extends DolibarrTriggers
 
 	/**
 	 * Function called when a Dolibarrr business event is done.
-	 * All functions "run_trigger" are triggered if file is inside directory htdocs/core/triggers
+	 * All functions "runTrigger" are triggered if file is inside directory htdocs/core/triggers or htdocs/module/code/triggers (and declared)
 	 *
 	 * @param string		$action		Event action code
 	 * @param Object		$object     Object
 	 * @param User		    $user       Object user
 	 * @param Translate 	$langs      Object langs
 	 * @param conf		    $conf       Object conf
-	 * @return int         			<0 if KO, 0 if no triggered ran, >0 if OK
+	 * @return int         				<0 if KO, 0 if no triggered ran, >0 if OK
 	 */
-	public function run_trigger($action, $object, User $user, Translate $langs, Conf $conf)
+	public function runTrigger($action, $object, User $user, Translate $langs, Conf $conf)
 	{
         if (empty($conf->mailmanspip->enabled)) return 0;     // Module not active, we do nothing
 
diff --git a/htdocs/core/triggers/interface_50_modNotification_Notification.class.php b/htdocs/core/triggers/interface_50_modNotification_Notification.class.php
index 159b3575855a49e0f941cafc20adb09f8a920919..c26ca4e33ef4e75b1a077d405b68e6faaf7ffc30 100644
--- a/htdocs/core/triggers/interface_50_modNotification_Notification.class.php
+++ b/htdocs/core/triggers/interface_50_modNotification_Notification.class.php
@@ -46,16 +46,16 @@ class InterfaceNotification extends DolibarrTriggers
 
 	/**
 	 * Function called when a Dolibarrr business event is done.
-	 * All functions "run_trigger" are triggered if file is inside directory htdocs/core/triggers
+	 * All functions "runTrigger" are triggered if file is inside directory htdocs/core/triggers or htdocs/module/code/triggers (and declared)
 	 *
 	 * @param string		$action		Event action code
 	 * @param Object		$object     Object
 	 * @param User		    $user       Object user
 	 * @param Translate 	$langs      Object langs
 	 * @param conf		    $conf       Object conf
-	 * @return int         			<0 if KO, 0 if no triggered ran, >0 if OK
+	 * @return int         				<0 if KO, 0 if no triggered ran, >0 if OK
 	 */
-	public function run_trigger($action, $object, User $user, Translate $langs, Conf $conf)
+	public function runTrigger($action, $object, User $user, Translate $langs, Conf $conf)
 	{
 		if (empty($conf->notification->enabled)) return 0;     // Module not active, we do nothing
 
diff --git a/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN b/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN
index 1599ec2c45d98a582fb015e759a1773d39f472fe..d1f093af09b47abf0f1aa010f848916e9d4a38b4 100644
--- a/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN
+++ b/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN
@@ -43,16 +43,16 @@ class InterfaceDemo extends DolibarrTriggers
 
 	/**
      * Function called when a Dolibarrr business event is done.
-     * All functions "run_trigger" are triggered if file is inside directory htdocs/core/triggers
+	 * All functions "runTrigger" are triggered if file is inside directory htdocs/core/triggers or htdocs/module/code/triggers (and declared)
      *
      * @param string		$action		Event action code
      * @param Object		$object     Object
      * @param User		    $user       Object user
      * @param Translate 	$langs      Object langs
      * @param conf		    $conf       Object conf
-     * @return int         			<0 if KO, 0 if no triggered ran, >0 if OK
+     * @return int         				<0 if KO, 0 if no triggered ran, >0 if OK
      */
-    public function run_trigger($action, $object, User $user, Translate $langs, Conf $conf)
+    public function runTrigger($action, $object, User $user, Translate $langs, Conf $conf)
     {
 		// Put here code you want to execute when a Dolibarr business events occurs.
         // Data and type of action are stored into $object and $action
diff --git a/htdocs/livraison/class/livraison.class.php b/htdocs/livraison/class/livraison.class.php
index c46e333c1914f1301443644a62b8b9571626f97b..7db42b6ac44946bce71fc92f35d791736993804c 100644
--- a/htdocs/livraison/class/livraison.class.php
+++ b/htdocs/livraison/class/livraison.class.php
@@ -606,8 +606,8 @@ class Livraison extends CommonObject
                     if ($result < 0)
                     {
                         $this->db->rollback();
-                        return -4; 
-                    }            
+                        return -4;
+                    }
                     // End call triggers
 
 					return 1;
@@ -959,5 +959,3 @@ class LivraisonLigne
 	}
 
 }
-
-?>
diff --git a/htdocs/opensurvey/fonctions.php b/htdocs/opensurvey/fonctions.php
index c3c80a59b86051431bfecedf264cebf714636232..b65abcaffe91ee65f71fc38e1bdb774f09d70806 100644
--- a/htdocs/opensurvey/fonctions.php
+++ b/htdocs/opensurvey/fonctions.php
@@ -25,14 +25,14 @@
 /**
  * Returns an array with the tabs for the "Opensurvey poll" section
  * It loads tabs from modules looking for the entity Opensurveyso
- * 
+ *
  * @param Opensurveysondage $object Current viewing poll
  * @return array Tabs for the opensurvey section
  */
 function opensurvey_prepare_head(Opensurveysondage $object) {
-	
+
 	global $langs, $conf;
-	
+
 	$h = 0;
 	$head = array();
 
@@ -40,7 +40,7 @@ function opensurvey_prepare_head(Opensurveysondage $object) {
 	$head[0][1] = $langs->trans("Card");
 	$head[0][2] = 'general';
 	$h++;
-	
+
 	$head[1][0] = 'results.php?id='.$object->id_sondage;
 	$head[1][1] = $langs->trans("SurveyResults");
 	$head[1][2] = 'preview';
@@ -111,12 +111,12 @@ function showlogo()
 			$urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=companylogo&amp;file=thumbs/'.urlencode($mysoc->logo_small);
 		}
 	}
-	
+
 	if (!$urllogo && (is_readable(DOL_DOCUMENT_ROOT.'/theme/dolibarr_logo.png')))
 	{
 		$urllogo=DOL_URL_ROOT.'/theme/dolibarr_logo.png';
 	}
-	
+
 	print '<div style="text-align:center"><img alt="Logo" id="logosubscribe" title="" src="'.$urllogo.'"/></div>';
 	print '<br>';
 }
@@ -205,14 +205,14 @@ function dol_survey_random($car)
 function ajouter_sondage()
 {
 	global $db, $user;
-	
+
 	require_once DOL_DOCUMENT_ROOT.'/opensurvey/class/opensurveysondage.class.php';
 
 	$sondage=dol_survey_random(16);
 
 	$allow_comments = empty($_SESSION['allow_comments']) ? 0 : 1;
 	$allow_spy = empty($_SESSION['allow_spy']) ? 0 : 1;
-	
+
 	// Insert survey
 	$opensurveysondage = new Opensurveysondage($db);
 	$opensurveysondage->id_sondage = $sondage;
@@ -226,9 +226,9 @@ function ajouter_sondage()
 	$opensurveysondage->allow_comments = $allow_comments;
 	$opensurveysondage->allow_spy = $allow_spy;
 	$opensurveysondage->sujet = $_SESSION['toutchoix'];
-	
+
 	$res = $opensurveysondage->create($user);
-	
+
 	if ($res < 0) {
 		dol_print_error($db);
 	}
@@ -243,11 +243,9 @@ function ajouter_sondage()
 	unset($_SESSION['toutchoix']);
 	unset($_SESSION['totalchoixjour']);
 	unset($_SESSION['champdatefin']);
-	
+
 	$urlback=dol_buildpath('/opensurvey/card.php',1).'?id='.$sondage;
 
 	header("Location: ".$urlback);
 	exit();
 }
-
-?>
diff --git a/htdocs/opensurvey/results.php b/htdocs/opensurvey/results.php
index 7dbdac8c2bcd2597f5f5f620533968b2a37a5416..63c56f9d5e31b26550d803229fb6de1386931e6d 100644
--- a/htdocs/opensurvey/results.php
+++ b/htdocs/opensurvey/results.php
@@ -1078,4 +1078,3 @@ print '<a name="bas"></a>'."\n";
 llxFooterSurvey();
 
 $db->close();
-?>
diff --git a/htdocs/printipp/admin/printipp.php b/htdocs/printipp/admin/printipp.php
index 08202b38f8e2526f85eef5ea3e6ebaeb8dad3871..68dee5ca22b982e5fda4163c65de6c1961351678 100644
--- a/htdocs/printipp/admin/printipp.php
+++ b/htdocs/printipp/admin/printipp.php
@@ -149,7 +149,7 @@ if ($mode == 'config' && $user->admin)
     print $langs->trans("PRINTIPP_PASSWORD").'</td><td>';
     print '<input size="32" type="text" name="PRINTIPP_PASSWORD" value="'.$conf->global->PRINTIPP_PASSWORD.'">';
     print '</td></tr>';
-    
+
     //$var=true;
     //print '<tr class="liste_titre">';
     //print '<td>'.$langs->trans("OtherParameter").'</td>';
@@ -181,7 +181,7 @@ if ($mode == 'test' && $user->admin)
     print '<td>Media</td>';
     print '<td>Supported</td>';
     print "</tr>\n";
-    
+
     $list = $printer->getlist_available_printers();
     $var = true;
     foreach ($list as $value)
@@ -203,7 +203,7 @@ if ($mode == 'test' && $user->admin)
         print "</tr>\n";
     }
     print '</table>';
-    
+
     if (count($list) == 0) print $langs->trans("NoPrinterFound");
 }
 
@@ -212,4 +212,3 @@ dol_fiche_end();
 llxFooter();
 
 $db->close();
-?>
diff --git a/htdocs/societe/ajaxcompanies.php b/htdocs/societe/ajaxcompanies.php
index 36abbb909adccacfa3ba94faefc6162a1ac2e54d..8771c0219c791a9e5526746e8327ab896da91b01 100644
--- a/htdocs/societe/ajaxcompanies.php
+++ b/htdocs/societe/ajaxcompanies.php
@@ -110,5 +110,3 @@ else
 {
     echo json_encode(array('nom'=>'ErrorBadParameter','label'=>'ErrorBadParameter','key'=>'ErrorBadParameter','value'=>'ErrorBadParameter'));
 }
-
-?>
\ No newline at end of file
diff --git a/htdocs/societe/canvas/actions_card_common.class.php b/htdocs/societe/canvas/actions_card_common.class.php
index 1ee163038bbcc2c8d1296dcc56ff027b0d312cab..27630fa4dfe454f4895d2991dd708e5eae770eb9 100644
--- a/htdocs/societe/canvas/actions_card_common.class.php
+++ b/htdocs/societe/canvas/actions_card_common.class.php
@@ -705,5 +705,3 @@ abstract class ActionsCardCommon
     }
 
 }
-
-?>
diff --git a/test/phpunit/CommandeFournisseurTest.php b/test/phpunit/CommandeFournisseurTest.php
index 2c83b4fdfc37eee419d0d07b5e4c07b2aea459a1..90c0d10e3fb6d6bf4c93ec76b5bb493740e57991 100644
--- a/test/phpunit/CommandeFournisseurTest.php
+++ b/test/phpunit/CommandeFournisseurTest.php
@@ -338,4 +338,3 @@ class CommandeFournisseurTest extends PHPUnit_Framework_TestCase
     }
 
 }
-?>
\ No newline at end of file
diff --git a/test/phpunit/CommandeTest.php b/test/phpunit/CommandeTest.php
index 451e886a7614a5b19176a745307047a364273eae..8a2e3f57120c57aa6ef6196477b2c15665dcbe9d 100644
--- a/test/phpunit/CommandeTest.php
+++ b/test/phpunit/CommandeTest.php
@@ -265,4 +265,3 @@ class CommandeTest extends PHPUnit_Framework_TestCase
     }
 
 }
-?>
\ No newline at end of file
diff --git a/test/phpunit/CommonObjectTest.php b/test/phpunit/CommonObjectTest.php
index cbdde31e14d9c56ecb82553198681330d4550b6b..a22146dfc2add302df2746af5c40ac1980156719 100644
--- a/test/phpunit/CommonObjectTest.php
+++ b/test/phpunit/CommonObjectTest.php
@@ -183,4 +183,3 @@ class CommonObjectTest extends PHPUnit_Framework_TestCase
     	return $result;
     }
 }
-?>
\ No newline at end of file
diff --git a/test/phpunit/CompanyBankAccountTest.php b/test/phpunit/CompanyBankAccountTest.php
index 24d6ad03d80efed2496cf7b3a53abfe77ad14a41..a105bb37a535767cce2da62d38710e1ce5a157b7 100644
--- a/test/phpunit/CompanyBankAccountTest.php
+++ b/test/phpunit/CompanyBankAccountTest.php
@@ -233,4 +233,3 @@ class CompanyBankAccountTest extends PHPUnit_Framework_TestCase
     }
 
 }
-?>
diff --git a/test/phpunit/EntrepotTest.php b/test/phpunit/EntrepotTest.php
index efd5f54008fb65cd22f28f824ee24c677d2c128e..53788d71dab6265855390f2c8b939c434961bf26 100755
--- a/test/phpunit/EntrepotTest.php
+++ b/test/phpunit/EntrepotTest.php
@@ -257,4 +257,3 @@ class EntrepotTest extends PHPUnit_Framework_TestCase
         return;
     }
 }
-?>
\ No newline at end of file
diff --git a/test/phpunit/ExportTest.php b/test/phpunit/ExportTest.php
index d5938fc46915816c4d16f1d79a2b0bd335f9ea8a..49695ab1946d9928b87396b45a184924d548161a 100755
--- a/test/phpunit/ExportTest.php
+++ b/test/phpunit/ExportTest.php
@@ -265,4 +265,3 @@ class ExportTest extends PHPUnit_Framework_TestCase
         return true;
     }
 }
-?>
diff --git a/test/phpunit/FactureRecTest.php b/test/phpunit/FactureRecTest.php
index 4adace8ef9a62b5bf31ebe006ad1d59d6caa4d5c..8933b9a73e08c6100b513074f106017bc12e85fa 100644
--- a/test/phpunit/FactureRecTest.php
+++ b/test/phpunit/FactureRecTest.php
@@ -131,7 +131,7 @@ class FactureRecTest extends PHPUnit_Framework_TestCase
 		$localobjectinv=new Facture($this->savdb);
 		$localobjectinv->initAsSpecimen();
 		$localobjectinv->create($user);
-		
+
 		$localobject=new FactureRec($this->savdb);
     	$localobject->initAsSpecimen();
     	$result=$localobject->create($user, $localobjectinv->id);
@@ -141,11 +141,11 @@ class FactureRecTest extends PHPUnit_Framework_TestCase
     	return $result;
     }
 
-    
-    
-    
-    
-    
+
+
+
+
+
     /**
      * Edit an object to test updates
      *
@@ -196,4 +196,3 @@ class FactureRecTest extends PHPUnit_Framework_TestCase
         return $retAr;
     }
 }
-?>
\ No newline at end of file
diff --git a/test/phpunit/FactureTest.php b/test/phpunit/FactureTest.php
index 9551c6ce02e90a69ac49ae01c65ce06eebaa2206..a16ddbbbf477d58ba431bb08805b71016eb6b144 100644
--- a/test/phpunit/FactureTest.php
+++ b/test/phpunit/FactureTest.php
@@ -329,4 +329,3 @@ class FactureTest extends PHPUnit_Framework_TestCase
         return $retAr;
     }
 }
-?>
diff --git a/test/phpunit/FunctionsLibTest.php b/test/phpunit/FunctionsLibTest.php
index 2178ad6fb5aa64b5433db7c286f666b66e80e00c..8bf126e99c581ad66c495b8bd2b301f80af781bd 100755
--- a/test/phpunit/FunctionsLibTest.php
+++ b/test/phpunit/FunctionsLibTest.php
@@ -784,4 +784,3 @@ class FunctionsLibTest extends PHPUnit_Framework_TestCase
     }
 
 }
-?>
diff --git a/test/phpunit/PropalTest.php b/test/phpunit/PropalTest.php
index 3cac847a01fbf16846f5e419df55cb337a53558b..20b6a5afa3893416b1ce3601bcc8c40073eefa5a 100644
--- a/test/phpunit/PropalTest.php
+++ b/test/phpunit/PropalTest.php
@@ -265,4 +265,3 @@ class PropalTest extends PHPUnit_Framework_TestCase
     }
 
 }
-?>
diff --git a/test/phpunit/SocieteTest.php b/test/phpunit/SocieteTest.php
index 162248f2e9820edd4c014f85a03c1e8653f5bc06..730d3d457a27c3597deb1693cc21f1a81980433d 100755
--- a/test/phpunit/SocieteTest.php
+++ b/test/phpunit/SocieteTest.php
@@ -456,4 +456,3 @@ class SocieteTest extends PHPUnit_Framework_TestCase
     }
 
 }
-?>
diff --git a/test/phpunit/UserTest.php b/test/phpunit/UserTest.php
index d161b3ce3959b0bd78df9fdb1e5135ef964e5a5b..5df1549ea1464f01c5cb6653aca37bbece55714e 100644
--- a/test/phpunit/UserTest.php
+++ b/test/phpunit/UserTest.php
@@ -318,4 +318,3 @@ class UserTest extends PHPUnit_Framework_TestCase
     	return $retAr;
     }
 }
-?>
\ No newline at end of file
diff --git a/test/phpunit/WebservicesInvoicesTest.php b/test/phpunit/WebservicesInvoicesTest.php
index 12c01eeba706fa9c6084b52d3d5ed63feab5a21d..20e015953757a563bca1b9d7fd7e27098ba4f2ba 100755
--- a/test/phpunit/WebservicesInvoicesTest.php
+++ b/test/phpunit/WebservicesInvoicesTest.php
@@ -181,4 +181,3 @@ class WebservicesInvoicesTest extends PHPUnit_Framework_TestCase
     }
 
 }
-?>
diff --git a/test/phpunit/WebservicesThirdpartyTest.php b/test/phpunit/WebservicesThirdpartyTest.php
index 8ef0c3839555ec5ca875ac3d00cbe642cafb6efb..64753dcc502284c155fb385a4e2d293121b6a5cb 100755
--- a/test/phpunit/WebservicesThirdpartyTest.php
+++ b/test/phpunit/WebservicesThirdpartyTest.php
@@ -181,4 +181,3 @@ class WebservicesThirdpartyTest extends PHPUnit_Framework_TestCase
     }
 
 }
-?>