Forráskód Böngészése

FIX Missing $param in hook call for list

Laurent Destailleur 1 éve
szülő
commit
a854e58905
51 módosított fájl, 1318 hozzáadás és 1318 törlés
  1. 1 1
      htdocs/adherents/subscription/list.php
  2. 1 1
      htdocs/asset/list.php
  3. 1 1
      htdocs/asset/model/list.php
  4. 1 1
      htdocs/bom/bom_list.php
  5. 1 1
      htdocs/bookcal/availabilities_list.php
  6. 1 1
      htdocs/bookcal/calendar_list.php
  7. 1 1
      htdocs/bookmarks/list.php
  8. 1 1
      htdocs/comm/mailing/list.php
  9. 1248 1248
      htdocs/comm/propal/list.php
  10. 1 1
      htdocs/commande/list_det.php
  11. 1 1
      htdocs/compta/bank/list.php
  12. 1 1
      htdocs/compta/cashcontrol/cashcontrol_list.php
  13. 1 1
      htdocs/compta/facture/invoicetemplate_list.php
  14. 1 1
      htdocs/compta/facture/list.php
  15. 1 1
      htdocs/eventorganization/conferenceorbooth_list.php
  16. 1 1
      htdocs/eventorganization/conferenceorboothattendee_list.php
  17. 1 1
      htdocs/expedition/list.php
  18. 1 1
      htdocs/fichinter/list.php
  19. 1 1
      htdocs/fourn/commande/list.php
  20. 1 1
      htdocs/fourn/facture/list-rec.php
  21. 1 1
      htdocs/fourn/facture/list.php
  22. 1 1
      htdocs/hrm/evaluation_list.php
  23. 1 1
      htdocs/hrm/job_list.php
  24. 1 1
      htdocs/hrm/position.php
  25. 1 1
      htdocs/hrm/position_list.php
  26. 1 1
      htdocs/hrm/skill_list.php
  27. 1 1
      htdocs/intracommreport/list.php
  28. 1 1
      htdocs/knowledgemanagement/knowledgerecord_list.php
  29. 1 1
      htdocs/loan/list.php
  30. 1 1
      htdocs/modulebuilder/template/myobject_list.php
  31. 1 1
      htdocs/mrp/mo_list.php
  32. 1 1
      htdocs/partnership/partnership_list.php
  33. 1 1
      htdocs/product/inventory/list.php
  34. 1 1
      htdocs/product/list.php
  35. 1 1
      htdocs/product/stats/facture.php
  36. 1 1
      htdocs/product/stock/list.php
  37. 1 1
      htdocs/product/stock/movement_list.php
  38. 1 1
      htdocs/product/stock/productlot_list.php
  39. 1 1
      htdocs/product/stock/stocktransfer/stocktransfer_list.php
  40. 21 21
      htdocs/projet/list.php
  41. 1 1
      htdocs/projet/tasks/list.php
  42. 1 1
      htdocs/projet/tasks/time.php
  43. 1 1
      htdocs/recruitment/recruitmentcandidature_list.php
  44. 1 1
      htdocs/recruitment/recruitmentjobposition_list.php
  45. 1 1
      htdocs/salaries/list.php
  46. 1 1
      htdocs/societe/list.php
  47. 1 1
      htdocs/ticket/list.php
  48. 1 1
      htdocs/user/group/list.php
  49. 1 1
      htdocs/variants/list.php
  50. 1 1
      htdocs/webhook/target_list.php
  51. 1 1
      htdocs/workstation/workstation_list.php

+ 1 - 1
htdocs/adherents/subscription/list.php

@@ -333,7 +333,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/asset/list.php

@@ -382,7 +382,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/asset/model/list.php

@@ -385,7 +385,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/bom/bom_list.php

@@ -467,7 +467,7 @@ foreach ($search as $key => $val) {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/bookcal/availabilities_list.php

@@ -426,7 +426,7 @@ foreach ($search as $key => $val) {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/bookcal/calendar_list.php

@@ -446,7 +446,7 @@ foreach ($search as $key => $val) {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/bookmarks/list.php

@@ -233,7 +233,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/comm/mailing/list.php

@@ -282,7 +282,7 @@ if ($filteremail) {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1248 - 1248
htdocs/comm/propal/list.php

@@ -1054,1358 +1054,1358 @@ if ($search_date_signature_endyear) {
 	$param .= '&search_date_signature_endyear='.urlencode($search_date_signature_endyear);
 }
 
-	// Add $param from extra fields
-	include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
-	// Add $param from hooks
-	$parameters = array();
-	$reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
-	$param .= $hookmanager->resPrint;
-
-	// List of mass actions available
-	$arrayofmassactions = array(
-		'generate_doc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("ReGeneratePDF"),
-		'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"),
-	);
-	if ($permissiontosendbymail) {
-		$arrayofmassactions['presend']=img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail");
-	}
-	if ($permissiontovalidate) {
-		$arrayofmassactions['prevalidate']=img_picto('', 'check', 'class="pictofixedwidth"').$langs->trans("Validate");
-	}
-	if ($permissiontoclose) {
-		$arrayofmassactions['presign']=img_picto('', 'propal', 'class="pictofixedwidth"').$langs->trans("Sign");
-		$arrayofmassactions['nopresign']=img_picto('', 'propal', 'class="pictofixedwidth"').$langs->trans("NoSign");
-		$arrayofmassactions['setbilled'] =img_picto('', 'bill', 'class="pictofixedwidth"').$langs->trans("ClassifyBilled");
-	}
-	if ($permissiontodelete) {
-		$arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete");
-	}
+// Add $param from extra fields
+include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
+// Add $param from hooks
+$parameters = array('param' => &$param);
+$reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
+$param .= $hookmanager->resPrint;
+
+// List of mass actions available
+$arrayofmassactions = array(
+	'generate_doc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("ReGeneratePDF"),
+	'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"),
+);
+if ($permissiontosendbymail) {
+	$arrayofmassactions['presend']=img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail");
+}
+if ($permissiontovalidate) {
+	$arrayofmassactions['prevalidate']=img_picto('', 'check', 'class="pictofixedwidth"').$langs->trans("Validate");
+}
+if ($permissiontoclose) {
+	$arrayofmassactions['presign']=img_picto('', 'propal', 'class="pictofixedwidth"').$langs->trans("Sign");
+	$arrayofmassactions['nopresign']=img_picto('', 'propal', 'class="pictofixedwidth"').$langs->trans("NoSign");
+	$arrayofmassactions['setbilled'] =img_picto('', 'bill', 'class="pictofixedwidth"').$langs->trans("ClassifyBilled");
+}
+if ($permissiontodelete) {
+	$arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete");
+}
 
-	if (in_array($massaction, array('presend', 'predelete', 'closed'))) {
-		$arrayofmassactions = array();
-	}
-	$massactionbutton = $form->selectMassAction('', $arrayofmassactions);
+if (in_array($massaction, array('presend', 'predelete', 'closed'))) {
+	$arrayofmassactions = array();
+}
+$massactionbutton = $form->selectMassAction('', $arrayofmassactions);
 
-	$url = DOL_URL_ROOT.'/comm/propal/card.php?action=create';
-	if (!empty($socid)) {
-		$url .= '&socid='.$socid;
-	}
-	$newcardbutton = '';
-	$newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition'));
-	$newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition'));
-	$newcardbutton .= dolGetButtonTitleSeparator();
-	$newcardbutton .= dolGetButtonTitle($langs->trans('NewPropal'), '', 'fa fa-plus-circle', $url, '', $user->hasRight('propal', 'creer'));
-
-	// Fields title search
-	print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
-	if ($optioncss != '') {
-		print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
-	}
-	print '<input type="hidden" name="token" value="'.newToken().'">';
-	print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
-	print '<input type="hidden" name="action" value="list">';
-	print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
-	print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
-	print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
-	print '<input type="hidden" name="mode"value="'.$mode.'">';
-
-	print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'propal', 0, $newcardbutton, '', $limit, 0, 0, 1);
-
-	$topicmail = "SendPropalRef";
-	$modelmail = "propal_send";
-	$objecttmp = new Propal($db);
-	$trackid = 'pro'.$object->id;
-	include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';
-
-	if ($massaction == 'prevalidate') {
-		print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassValidation"), $langs->trans("ConfirmMassValidationQuestion"), "validate", null, '', 0, 200, 500, 1);
-	}
+$url = DOL_URL_ROOT.'/comm/propal/card.php?action=create';
+if (!empty($socid)) {
+	$url .= '&socid='.$socid;
+}
+$newcardbutton = '';
+$newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition'));
+$newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition'));
+$newcardbutton .= dolGetButtonTitleSeparator();
+$newcardbutton .= dolGetButtonTitle($langs->trans('NewPropal'), '', 'fa fa-plus-circle', $url, '', $user->hasRight('propal', 'creer'));
 
-	if ($massaction == 'presign') {
-		print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassSignature"), $langs->trans("ConfirmMassSignatureQuestion"), "sign", null, '', 0, 200, 500, 1);
-	}
+// Fields title search
+print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
+if ($optioncss != '') {
+	print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
+}
+print '<input type="hidden" name="token" value="'.newToken().'">';
+print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
+print '<input type="hidden" name="action" value="list">';
+print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
+print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
+print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
+print '<input type="hidden" name="mode"value="'.$mode.'">';
 
-	if ($massaction == 'nopresign') {
-		print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassNoSignature"), $langs->trans("ConfirmMassNoSignatureQuestion"), "nosign", null, '', 0, 200, 500, 1);
-	}
+print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'propal', 0, $newcardbutton, '', $limit, 0, 0, 1);
 
-	if ($search_all) {
-		foreach ($fieldstosearchall as $key => $val) {
-			$fieldstosearchall[$key] = $langs->trans($val);
-		}
-		print '<div class="divsearchfieldfilter">'.$langs->trans("FilterOnInto", $search_all).join(', ', $fieldstosearchall).'</div>';
-	}
+$topicmail = "SendPropalRef";
+$modelmail = "propal_send";
+$objecttmp = new Propal($db);
+$trackid = 'pro'.$object->id;
+include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';
 
-	$i = 0;
+if ($massaction == 'prevalidate') {
+	print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassValidation"), $langs->trans("ConfirmMassValidationQuestion"), "validate", null, '', 0, 200, 500, 1);
+}
 
-	$moreforfilter = '';
+if ($massaction == 'presign') {
+	print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassSignature"), $langs->trans("ConfirmMassSignatureQuestion"), "sign", null, '', 0, 200, 500, 1);
+}
 
-	// If the user can view prospects other than his'
-	if ($user->hasRight('user', 'user', 'lire')) {
-		$langs->load("commercial");
-		$moreforfilter .= '<div class="divsearchfield">';
-		$tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative');
-		$moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, $tmptitle, 'maxwidth250 widthcentpercentminusx', 1);
-		$moreforfilter .= '</div>';
-	}
-	// If the user can view prospects other than his'
-	if ($user->hasRight('user', 'user', 'lire')) {
-		$moreforfilter .= '<div class="divsearchfield">';
-		$tmptitle = $langs->trans('LinkedToSpecificUsers');
-		$moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$form->select_dolusers($search_user, 'search_user', $tmptitle, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth250 widthcentpercentminusx');
-		$moreforfilter .= '</div>';
-	}
-	// If the user can view products
-	if (isModEnabled('categorie') && $user->hasRight('categorie', 'read') && ($user->hasRight('product', 'read') || $user->hasRight('service', 'read'))) {
-		$searchCategoryProductOperator = -1;
-		include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
-		$tmptitle = $langs->trans('IncludingProductWithTag');
-		$formcategory = new FormCategory($db);
-		$moreforfilter .= $formcategory->getFilterBox(Categorie::TYPE_PRODUCT, array($search_product_category), 'maxwidth300', $searchCategoryProductOperator, 0, 0, $tmptitle);
-	}
-	if (isModEnabled('categorie') && $user->hasRight('categorie', 'lire')) {
-		require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
-		$moreforfilter .= '<div class="divsearchfield">';
-		$tmptitle = $langs->trans('CustomersProspectsCategoriesShort');
-		$moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$formother->select_categories('customer', $search_categ_cus, 'search_categ_cus', 1, $tmptitle, (empty($conf->dol_optimize_smallscreen) ? 'maxwidth300 widthcentpercentminusx' : 'maxwidth250 widthcentpercentminusx'));
-		$moreforfilter .= '</div>';
-	}
-	if (isModEnabled('stock') && getDolGlobalString('WAREHOUSE_ASK_WAREHOUSE_DURING_PROPAL')) {
-		require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
-		$formproduct = new FormProduct($db);
-		$moreforfilter .= '<div class="divsearchfield">';
-		$tmptitle = $langs->trans('Warehouse');
-		$moreforfilter .= img_picto($tmptitle, 'stock', 'class="pictofixedwidth"').$formproduct->selectWarehouses($search_warehouse, 'search_warehouse', '', $tmptitle, 0, 0, $tmptitle);
-		$moreforfilter .= '</div>';
-	}
-	$parameters = array();
-	$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
-	if (empty($reshook)) {
-		$moreforfilter .= $hookmanager->resPrint;
-	} else {
-		$moreforfilter = $hookmanager->resPrint;
-	}
+if ($massaction == 'nopresign') {
+	print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassNoSignature"), $langs->trans("ConfirmMassNoSignatureQuestion"), "nosign", null, '', 0, 200, 500, 1);
+}
 
-	if (!empty($moreforfilter)) {
-		print '<div class="liste_titre liste_titre_bydiv centpercent">';
-		print $moreforfilter;
-		print '</div>';
+if ($search_all) {
+	foreach ($fieldstosearchall as $key => $val) {
+		$fieldstosearchall[$key] = $langs->trans($val);
 	}
+	print '<div class="divsearchfieldfilter">'.$langs->trans("FilterOnInto", $search_all).join(', ', $fieldstosearchall).'</div>';
+}
 
-	$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
-	$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')); // This also change content of $arrayfields
-	$selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : '');
+$i = 0;
 
-	print '<div class="div-table-responsive">';
-	print '<table class="tagtable nobottomiftotal liste'.($moreforfilter ? " listwithfilterbefore" : "").'">'."\n";
+$moreforfilter = '';
 
-	print '<tr class="liste_titre_filter">';
+// If the user can view prospects other than his'
+if ($user->hasRight('user', 'user', 'lire')) {
+	$langs->load("commercial");
+	$moreforfilter .= '<div class="divsearchfield">';
+	$tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative');
+	$moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, $tmptitle, 'maxwidth250 widthcentpercentminusx', 1);
+	$moreforfilter .= '</div>';
+}
+// If the user can view prospects other than his'
+if ($user->hasRight('user', 'user', 'lire')) {
+	$moreforfilter .= '<div class="divsearchfield">';
+	$tmptitle = $langs->trans('LinkedToSpecificUsers');
+	$moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$form->select_dolusers($search_user, 'search_user', $tmptitle, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth250 widthcentpercentminusx');
+	$moreforfilter .= '</div>';
+}
+// If the user can view products
+if (isModEnabled('categorie') && $user->hasRight('categorie', 'read') && ($user->hasRight('product', 'read') || $user->hasRight('service', 'read'))) {
+	$searchCategoryProductOperator = -1;
+	include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
+	$tmptitle = $langs->trans('IncludingProductWithTag');
+	$formcategory = new FormCategory($db);
+	$moreforfilter .= $formcategory->getFilterBox(Categorie::TYPE_PRODUCT, array($search_product_category), 'maxwidth300', $searchCategoryProductOperator, 0, 0, $tmptitle);
+}
+if (isModEnabled('categorie') && $user->hasRight('categorie', 'lire')) {
+	require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
+	$moreforfilter .= '<div class="divsearchfield">';
+	$tmptitle = $langs->trans('CustomersProspectsCategoriesShort');
+	$moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$formother->select_categories('customer', $search_categ_cus, 'search_categ_cus', 1, $tmptitle, (empty($conf->dol_optimize_smallscreen) ? 'maxwidth300 widthcentpercentminusx' : 'maxwidth250 widthcentpercentminusx'));
+	$moreforfilter .= '</div>';
+}
+if (isModEnabled('stock') && getDolGlobalString('WAREHOUSE_ASK_WAREHOUSE_DURING_PROPAL')) {
+	require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
+	$formproduct = new FormProduct($db);
+	$moreforfilter .= '<div class="divsearchfield">';
+	$tmptitle = $langs->trans('Warehouse');
+	$moreforfilter .= img_picto($tmptitle, 'stock', 'class="pictofixedwidth"').$formproduct->selectWarehouses($search_warehouse, 'search_warehouse', '', $tmptitle, 0, 0, $tmptitle);
+	$moreforfilter .= '</div>';
+}
+$parameters = array();
+$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
+if (empty($reshook)) {
+	$moreforfilter .= $hookmanager->resPrint;
+} else {
+	$moreforfilter = $hookmanager->resPrint;
+}
 
-	// Action column
-	if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
-		print '<td class="liste_titre" align="middle">';
-		$searchpicto = $form->showFilterButtons('left');
-		print $searchpicto;
-		print '</td>';
-	}
+if (!empty($moreforfilter)) {
+	print '<div class="liste_titre liste_titre_bydiv centpercent">';
+	print $moreforfilter;
+	print '</div>';
+}
 
-	if (!empty($arrayfields['p.ref']['checked'])) {
-		print '<td class="liste_titre">';
-		print '<input class="flat maxwidth50" type="text" name="search_ref" value="'.dol_escape_htmltag($search_ref).'">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['p.ref_client']['checked'])) {
-		print '<td class="liste_titre">';
-		print '<input class="flat maxwidth50" type="text" name="search_refcustomer" value="'.dol_escape_htmltag($search_refcustomer).'">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['pr.ref']['checked'])) {
-		print '<td class="liste_titre">';
-		print '<input class="flat maxwidth50" type="text" name="search_refproject" value="'.dol_escape_htmltag($search_refproject).'">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['pr.title']['checked'])) {
-		print '<td class="liste_titre">';
-		print '<input class="flat maxwidth50" type="text" name="search_project" value="'.dol_escape_htmltag($search_project).'">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['s.nom']['checked'])) {
-		print '<td class="liste_titre" align="left">';
-		print '<input class="flat maxwidth100" type="text" name="search_societe" value="'.dol_escape_htmltag($search_societe).'">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['s.name_alias']['checked'])) {
-		print '<td class="liste_titre" align="left">';
-		print '<input class="flat maxwidth100" type="text" name="search_societe_alias" value="'.dol_escape_htmltag($search_societe_alias).'">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['s.town']['checked'])) {
-		print '<td class="liste_titre"><input class="flat maxwidth50" type="text" name="search_town" value="'.$search_town.'"></td>';
-	}
-	if (!empty($arrayfields['s.zip']['checked'])) {
-		print '<td class="liste_titre"><input class="flat maxwidth50" type="text" name="search_zip" value="'.$search_zip.'"></td>';
-	}
-	// State
-	if (!empty($arrayfields['state.nom']['checked'])) {
-		print '<td class="liste_titre">';
-		print '<input class="flat maxwidth50" type="text" name="search_state" value="'.dol_escape_htmltag($search_state).'">';
-		print '</td>';
-	}
-	// Country
-	if (!empty($arrayfields['country.code_iso']['checked'])) {
-		print '<td class="liste_titre" align="center">';
-		print $form->select_country($search_country, 'search_country', '', 0, 'minwidth100imp maxwidth100');
-		print '</td>';
-	}
-	// Company type
-	if (!empty($arrayfields['typent.code']['checked'])) {
-		print '<td class="liste_titre maxwidth100onsmartphone" align="center">';
-		print $form->selectarray("search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 1, 0, 0, '', 0, 0, 0, (!getDolGlobalString('SOCIETE_SORT_ON_TYPEENT') ? 'ASC' : $conf->global->SOCIETE_SORT_ON_TYPEENT), '', 1);
-		print ajax_combobox('search_type_thirdparty');
-		print '</td>';
-	}
-	// Date
-	if (!empty($arrayfields['p.date']['checked'])) {
-		print '<td class="liste_titre center">';
-		print '<div class="nowrapfordate">';
-		print $form->selectDate($search_date_start ? $search_date_start : -1, 'search_date_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From'));
-		print '</div>';
-		print '<div class="nowrapfordate">';
-		print $form->selectDate($search_date_end ? $search_date_end : -1, 'search_date_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to'));
-		print '</div>';
-		print '</td>';
-	}
-	// Date end
-	if (!empty($arrayfields['p.fin_validite']['checked'])) {
-		print '<td class="liste_titre center">';
-		print '<div class="nowrapfordate">';
-		print $form->selectDate($search_date_end_start ? $search_date_end_start : -1, 'search_date_end_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From'));
-		print '</div>';
-		print '<div class="nowrapfordate">';
-		print $form->selectDate($search_date_end_end ? $search_date_end_end : -1, 'search_date_end_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to'));
-		print '</div>';
-		print '</td>';
-	}
-	// Date delivery
-	if (!empty($arrayfields['p.date_livraison']['checked'])) {
-		print '<td class="liste_titre center">';
-		print '<div class="nowrapfordate">';
-		print $form->selectDate($search_date_delivery_start ? $search_date_delivery_start : -1, 'search_date_delivery_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From'));
-		print '</div>';
-		print '<div class="nowrapfordate">';
-		print $form->selectDate($search_date_delivery_end ? $search_date_delivery_end : -1, 'search_date_delivery_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From'));
-		print '</div>';
-		print '</td>';
-	}
-	// Date Signature
-	if (!empty($arrayfields['p.date_signature']['checked'])) {
-		print '<td class="liste_titre center">';
-		print '<div class="nowrapfordate">';
-		print $form->selectDate($search_date_signature_start ? $search_date_signature_start : -1, 'search_date_signature_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From'));
-		print '</div>';
-		print '<div class="nowrapfordate">';
-		print $form->selectDate($search_date_signature_end ? $search_date_signature_end : -1, 'search_date_signature_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From'));
-		print '</div>';
-		print '</td>';
-	}
-	// Availability
-	if (!empty($arrayfields['ava.rowid']['checked'])) {
-		print '<td class="liste_titre maxwidth100onsmartphone center">';
-		$form->selectAvailabilityDelay($search_availability, 'search_availability', '', 1);
-		print ajax_combobox('search_availability');
-		print '</td>';
-	}
-	// Shipping Method
-	if (!empty($arrayfields['p.fk_shipping_method']['checked'])) {
-		print '<td class="liste_titre">';
-		$form->selectShippingMethod($search_fk_shipping_method, 'search_fk_shipping_method', '', 1, '', 1);
-		print '</td>';
-	}
-	// Source - Input reason
-	if (!empty($arrayfields['p.fk_input_reason']['checked'])) {
-		print '<td class="liste_titre">';
-		$form->selectInputReason($search_fk_input_reason, 'search_fk_input_reason', '', 1, 'maxwidth125', 1);
-		print '</td>';
-	}
-	// Payment term
-	if (!empty($arrayfields['p.fk_cond_reglement']['checked'])) {
-		print '<td class="liste_titre">';
-		print $form->getSelectConditionsPaiements($search_fk_cond_reglement, 'search_fk_cond_reglement', 1, 1, 1);
-		print '</td>';
-	}
-	// Payment mode
-	if (!empty($arrayfields['p.fk_mode_reglement']['checked'])) {
-		print '<td class="liste_titre">';
-		print $form->select_types_paiements($search_fk_mode_reglement, 'search_fk_mode_reglement', '', 0, 1, 1, 0, -1, '', 1);
-		print '</td>';
-	}
-	if (!empty($arrayfields['p.total_ht']['checked'])) {
-		// Amount
-		print '<td class="liste_titre right">';
-		print '<input class="flat" type="text" size="5" name="search_montant_ht" value="'.dol_escape_htmltag($search_montant_ht).'">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['p.total_tva']['checked'])) {
-		// Amount
-		print '<td class="liste_titre right">';
-		print '<input class="flat" type="text" size="5" name="search_montant_vat" value="'.dol_escape_htmltag($search_montant_vat).'">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['p.total_ttc']['checked'])) {
-		// Amount
-		print '<td class="liste_titre right">';
-		print '<input class="flat" type="text" size="5" name="search_montant_ttc" value="'.dol_escape_htmltag($search_montant_ttc).'">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['p.total_ht_invoiced']['checked'])) {
-		// Amount invoiced
-		print '<td class="liste_titre right">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['p.total_invoiced']['checked'])) {
-		// Amount invoiced
-		print '<td class="liste_titre right">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['p.multicurrency_code']['checked'])) {
-		// Currency
-		print '<td class="liste_titre">';
-		print $form->selectMultiCurrency($search_multicurrency_code, 'search_multicurrency_code', 1);
-		print '</td>';
-	}
-	if (!empty($arrayfields['p.multicurrency_tx']['checked'])) {
-		// Currency rate
-		print '<td class="liste_titre">';
-		print '<input class="flat" type="text" size="4" name="search_multicurrency_tx" value="'.dol_escape_htmltag($search_multicurrency_tx).'">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['p.multicurrency_total_ht']['checked'])) {
-		// Amount
-		print '<td class="liste_titre right">';
-		print '<input class="flat" type="text" size="4" name="search_multicurrency_montant_ht" value="'.dol_escape_htmltag($search_multicurrency_montant_ht).'">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['p.multicurrency_total_tva']['checked'])) {
-		// Amount
-		print '<td class="liste_titre right">';
-		print '<input class="flat" type="text" size="4" name="search_multicurrency_montant_vat" value="'.dol_escape_htmltag($search_multicurrency_montant_vat).'">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['p.multicurrency_total_ttc']['checked'])) {
-		// Amount
-		print '<td class="liste_titre right">';
-		print '<input class="flat" type="text" size="4" name="search_multicurrency_montant_ttc" value="'.dol_escape_htmltag($search_multicurrency_montant_ttc).'">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['p.multicurrency_total_ht_invoiced']['checked'])) {
-		// Amount invoiced
-		print '<td class="liste_titre right">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['p.multicurrency_total_invoiced']['checked'])) {
-		// Amount invoiced
-		print '<td class="liste_titre right">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['u.login']['checked'])) {
-		// Author
-		print '<td class="liste_titre">';
-		print '<input class="flat maxwidth75" type="text" name="search_login" value="'.dol_escape_htmltag($search_login).'">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['sale_representative']['checked'])) {
-		print '<td class="liste_titre"></td>';
-	}
-	if (!empty($arrayfields['total_pa']['checked'])) {
-		print '<td class="liste_titre right">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['total_margin']['checked'])) {
-		print '<td class="liste_titre right">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['total_margin_rate']['checked'])) {
-		print '<td class="liste_titre right">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['total_mark_rate']['checked'])) {
-		print '<td class="liste_titre right">';
-		print '</td>';
-	}
-	// Extra fields
-	include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php';
-
-	// Fields from hook
-	$parameters = array('arrayfields'=>$arrayfields);
-	$reshook = $hookmanager->executeHooks('printFieldListOption', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
-	print $hookmanager->resPrint;
-	// Date creation
-	if (!empty($arrayfields['p.datec']['checked'])) {
-		print '<td class="liste_titre">';
-		print '</td>';
-	}
-	// Date modification
-	if (!empty($arrayfields['p.tms']['checked'])) {
-		print '<td class="liste_titre">';
-		print '</td>';
-	}
-	// Date cloture
-	if (!empty($arrayfields['p.date_cloture']['checked'])) {
-		print '<td class="liste_titre">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['p.note_public']['checked'])) {
-		// Note public
-		print '<td class="liste_titre">';
-		print '</td>';
-	}
-	if (!empty($arrayfields['p.note_private']['checked'])) {
-		// Note private
-		print '<td class="liste_titre">';
-		print '</td>';
-	}
-	// Status
-	if (!empty($arrayfields['p.fk_statut']['checked'])) {
-		print '<td class="liste_titre center parentonrightofpage">';
-		$formpropal->selectProposalStatus($search_status, 1, 0, 1, 'customer', 'search_statut', 'search_status width100 onrightofpage');
-		print '</td>';
-	}
-	// Action column
-	if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
-		print '<td class="liste_titre" align="middle">';
-		$searchpicto = $form->showFilterButtons();
-		print $searchpicto;
-		print '</td>';
-	}
-	print "</tr>\n";
-
-	$totalarray = array(
-		'nbfield' => 0,
-		'val' => array(
-			'p.total_ht' => 0,
-			'p.total_tva' => 0,
-			'p.total_ttc' => 0,
-		),
-	);
-
-	// Fields title
-	print '<tr class="liste_titre">';
-	if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
-		print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.ref']['checked'])) {
-		print_liste_field_titre($arrayfields['p.ref']['label'], $_SERVER["PHP_SELF"], 'p.ref', '', $param, '', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.ref_client']['checked'])) {
-		print_liste_field_titre($arrayfields['p.ref_client']['label'], $_SERVER["PHP_SELF"], 'p.ref_client', '', $param, '', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['pr.ref']['checked'])) {
-		print_liste_field_titre($arrayfields['pr.ref']['label'], $_SERVER["PHP_SELF"], 'pr.ref', '', $param, '', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['pr.title']['checked'])) {
-		print_liste_field_titre($arrayfields['pr.title']['label'], $_SERVER["PHP_SELF"], 'pr.title', '', $param, '', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['s.nom']['checked'])) {
-		print_liste_field_titre($arrayfields['s.nom']['label'], $_SERVER["PHP_SELF"], 's.nom', '', $param, '', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['s.name_alias']['checked'])) {
-		print_liste_field_titre($arrayfields['s.name_alias']['label'], $_SERVER["PHP_SELF"], 's.name_alias', '', $param, '', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['s.town']['checked'])) {
-		print_liste_field_titre($arrayfields['s.town']['label'], $_SERVER["PHP_SELF"], 's.town', '', $param, '', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['s.zip']['checked'])) {
-		print_liste_field_titre($arrayfields['s.zip']['label'], $_SERVER["PHP_SELF"], 's.zip', '', $param, '', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['state.nom']['checked'])) {
-		print_liste_field_titre($arrayfields['state.nom']['label'], $_SERVER["PHP_SELF"], "state.nom", "", $param, '', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['country.code_iso']['checked'])) {
-		print_liste_field_titre($arrayfields['country.code_iso']['label'], $_SERVER["PHP_SELF"], "country.code_iso", "", $param, 'class="center"', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['typent.code']['checked'])) {
-		print_liste_field_titre($arrayfields['typent.code']['label'], $_SERVER["PHP_SELF"], "typent.code", "", $param, 'class="center"', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.date']['checked'])) {
-		print_liste_field_titre($arrayfields['p.date']['label'], $_SERVER["PHP_SELF"], 'p.datep', '', $param, 'class="center"', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.fin_validite']['checked'])) {
-		print_liste_field_titre($arrayfields['p.fin_validite']['label'], $_SERVER["PHP_SELF"], 'dfv', '', $param, 'class="center"', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.date_livraison']['checked'])) {
-		print_liste_field_titre($arrayfields['p.date_livraison']['label'], $_SERVER["PHP_SELF"], 'p.date_livraison', '', $param, 'class="center"', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.date_signature']['checked'])) {
-		print_liste_field_titre($arrayfields['p.date_signature']['label'], $_SERVER["PHP_SELF"], 'p.date_signature', '', $param, 'class="center"', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['ava.rowid']['checked'])) {
-		print_liste_field_titre($arrayfields['ava.rowid']['label'], $_SERVER["PHP_SELF"], 'availability', '', $param, '', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.fk_shipping_method']['checked'])) {
-		print_liste_field_titre($arrayfields['p.fk_shipping_method']['label'], $_SERVER["PHP_SELF"], "p.fk_shipping_method", "", $param, '', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.fk_input_reason']['checked'])) {
-		print_liste_field_titre($arrayfields['p.fk_input_reason']['label'], $_SERVER["PHP_SELF"], "p.fk_input_reason", "", $param, '', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.fk_cond_reglement']['checked'])) {
-		print_liste_field_titre($arrayfields['p.fk_cond_reglement']['label'], $_SERVER["PHP_SELF"], "p.fk_cond_reglement", "", $param, '', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.fk_mode_reglement']['checked'])) {
-		print_liste_field_titre($arrayfields['p.fk_mode_reglement']['label'], $_SERVER["PHP_SELF"], "p.fk_mode_reglement", "", $param, '', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.total_ht']['checked'])) {
-		print_liste_field_titre($arrayfields['p.total_ht']['label'], $_SERVER["PHP_SELF"], 'p.total_ht', '', $param, '', $sortfield, $sortorder, 'right ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.total_tva']['checked'])) {
-		print_liste_field_titre($arrayfields['p.total_tva']['label'], $_SERVER["PHP_SELF"], 'p.total_tva', '', $param, '', $sortfield, $sortorder, 'right ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.total_ttc']['checked'])) {
-		print_liste_field_titre($arrayfields['p.total_ttc']['label'], $_SERVER["PHP_SELF"], 'p.total_ttc', '', $param, '', $sortfield, $sortorder, 'right ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.total_ht_invoiced']['checked'])) {
-		print_liste_field_titre($arrayfields['p.total_ht_invoiced']['label'], $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.total_invoiced']['checked'])) {
-		print_liste_field_titre($arrayfields['p.total_invoiced']['label'], $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.multicurrency_code']['checked'])) {
-		print_liste_field_titre($arrayfields['p.multicurrency_code']['label'], $_SERVER['PHP_SELF'], 'p.multicurrency_code', '', $param, '', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.multicurrency_tx']['checked'])) {
-		print_liste_field_titre($arrayfields['p.multicurrency_tx']['label'], $_SERVER['PHP_SELF'], 'p.multicurrency_tx', '', $param, '', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.multicurrency_total_ht']['checked'])) {
-		print_liste_field_titre($arrayfields['p.multicurrency_total_ht']['label'], $_SERVER['PHP_SELF'], 'p.multicurrency_total_ht', '', $param, '', $sortfield, $sortorder, 'right ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.multicurrency_total_tva']['checked'])) {
-		print_liste_field_titre($arrayfields['p.multicurrency_total_tva']['label'], $_SERVER['PHP_SELF'], 'p.multicurrency_total_tva', '', $param, '', $sortfield, $sortorder, 'right ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.multicurrency_total_ttc']['checked'])) {
-		print_liste_field_titre($arrayfields['p.multicurrency_total_ttc']['label'], $_SERVER['PHP_SELF'], 'p.multicurrency_total_ttc', '', $param, '', $sortfield, $sortorder, 'right ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.multicurrency_total_ht_invoiced']['checked'])) {
-		print_liste_field_titre($arrayfields['p.multicurrency_total_ht_invoiced']['label'], $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.multicurrency_total_invoiced']['checked'])) {
-		print_liste_field_titre($arrayfields['p.multicurrency_total_invoiced']['label'], $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['u.login']['checked'])) {
-		print_liste_field_titre($arrayfields['u.login']['label'], $_SERVER["PHP_SELF"], 'u.login', '', $param, '', $sortfield, $sortorder, 'center ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['sale_representative']['checked'])) {
-		print_liste_field_titre($arrayfields['sale_representative']['label'], $_SERVER["PHP_SELF"], "", "", "$param", '', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['total_pa']['checked'])) {
-		print_liste_field_titre($arrayfields['total_pa']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'right ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['total_margin']['checked'])) {
-		print_liste_field_titre($arrayfields['total_margin']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'right ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['total_margin_rate']['checked'])) {
-		print_liste_field_titre($arrayfields['total_margin_rate']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'right ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['total_mark_rate']['checked'])) {
-		print_liste_field_titre($arrayfields['total_mark_rate']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'right ');
-		$totalarray['nbfield']++;
-	}
-	// Extra fields
-	include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
-	// Hook fields
-	$parameters = array(
-		'arrayfields' => $arrayfields,
-		'param' => $param,
-		'sortfield' => $sortfield,
-		'sortorder' => $sortorder,
-		'totalarray' => &$totalarray,
-	);
-
-	$reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
-
-	print $hookmanager->resPrint;
-	if (!empty($arrayfields['p.datec']['checked'])) {
-		print_liste_field_titre($arrayfields['p.datec']['label'], $_SERVER["PHP_SELF"], "p.datec", "", $param, '', $sortfield, $sortorder, 'center nowraponall ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.tms']['checked'])) {
-		print_liste_field_titre($arrayfields['p.tms']['label'], $_SERVER["PHP_SELF"], "p.tms", "", $param, '', $sortfield, $sortorder, 'center nowraponall ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.date_cloture']['checked'])) {
-		print_liste_field_titre($arrayfields['p.date_cloture']['label'], $_SERVER["PHP_SELF"], "p.date_cloture", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder);
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.note_public']['checked'])) {
-		print_liste_field_titre($arrayfields['p.note_public']['label'], $_SERVER["PHP_SELF"], "p.note_public", "", $param, '', $sortfield, $sortorder, 'center nowrap ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.note_private']['checked'])) {
-		print_liste_field_titre($arrayfields['p.note_private']['label'], $_SERVER["PHP_SELF"], "p.note_private", "", $param, '', $sortfield, $sortorder, 'center nowrap ');
-		$totalarray['nbfield']++;
-	}
-	if (!empty($arrayfields['p.fk_statut']['checked'])) {
-		print_liste_field_titre($arrayfields['p.fk_statut']['label'], $_SERVER["PHP_SELF"], "p.fk_statut", "", $param, '', $sortfield, $sortorder, 'center ');
-		$totalarray['nbfield']++;
-	}
-	if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
-		print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch ');
-		$totalarray['nbfield']++;
-	}
-	print '</tr>'."\n";
-
-	// Loop on record
-	// --------------------------------------------------------------------
-	$typenArray = null;
-	$now = dol_now();
-
-	$with_margin_info = false;
-	if (isModEnabled('margin') && (
-		!empty($arrayfields['total_pa']['checked'])
-		|| !empty($arrayfields['total_margin']['checked'])
-		|| !empty($arrayfields['total_margin_rate']['checked'])
-		|| !empty($arrayfields['total_mark_rate']['checked'])
-	)
-	) {
-		$with_margin_info = true;
-	}
-	$total_ht = 0;
-	$total_margin = 0;
-
-	$i = 0;
-	$savnbfield = $totalarray['nbfield'];
-	$totalarray = array();
-	$totalarray['nbfield'] = 0;
-	$imaxinloop = ($limit ? min($num, $limit) : $num);
-	while ($i < $imaxinloop) {
-		$obj = $db->fetch_object($resql);
-		if (empty($obj)) {
-			break; // Should not happen
-		}
-
-		$objectstatic->id = $obj->rowid;
-		$objectstatic->ref = $obj->ref;
-		$objectstatic->ref_client = $obj->ref_client;
-		$objectstatic->note_public = $obj->note_public;
-		$objectstatic->note_private = $obj->note_private;
-		$objectstatic->statut = $obj->status;
-		$objectstatic->status = $obj->status;
-
-		$companystatic->id = $obj->socid;
-		$companystatic->name = $obj->name;
-		$companystatic->name_alias = $obj->alias;
-		$companystatic->client = $obj->client;
-		$companystatic->fournisseur = $obj->fournisseur;
-		$companystatic->code_client = $obj->code_client;
-		$companystatic->email = $obj->email;
-		$companystatic->phone = $obj->phone;
-		$companystatic->address = $obj->address;
-		$companystatic->zip = $obj->zip;
-		$companystatic->town = $obj->town;
-		$companystatic->country_code = $obj->country_code;
-
-		$projectstatic->id = $obj->project_id;
-		$projectstatic->ref = $obj->project_ref;
-		$projectstatic->title = $obj->project_label;
-
-		$totalInvoicedHT = 0;
-		$totalInvoicedTTC = 0;
-		$multicurrency_totalInvoicedHT = 0;
-		$multicurrency_totalInvoicedTTC = 0;
-
-		$TInvoiceData = $objectstatic->InvoiceArrayList($obj->rowid);
-
-		if (!empty($TInvoiceData)) {
-			foreach ($TInvoiceData as $invoiceData) {
-				$invoice = new Facture($db);
-				$invoice->fetch($invoiceData->facid);
-
-				if (getDolGlobalString('FACTURE_DEPOSITS_ARE_JUST_PAYMENTS') && $invoice->type == Facture::TYPE_DEPOSIT) {
-					continue;
-				}
+$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
+$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')); // This also change content of $arrayfields
+$selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : '');
+
+print '<div class="div-table-responsive">';
+print '<table class="tagtable nobottomiftotal liste'.($moreforfilter ? " listwithfilterbefore" : "").'">'."\n";
+
+print '<tr class="liste_titre_filter">';
+
+// Action column
+if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
+	print '<td class="liste_titre" align="middle">';
+	$searchpicto = $form->showFilterButtons('left');
+	print $searchpicto;
+	print '</td>';
+}
+
+if (!empty($arrayfields['p.ref']['checked'])) {
+	print '<td class="liste_titre">';
+	print '<input class="flat maxwidth50" type="text" name="search_ref" value="'.dol_escape_htmltag($search_ref).'">';
+	print '</td>';
+}
+if (!empty($arrayfields['p.ref_client']['checked'])) {
+	print '<td class="liste_titre">';
+	print '<input class="flat maxwidth50" type="text" name="search_refcustomer" value="'.dol_escape_htmltag($search_refcustomer).'">';
+	print '</td>';
+}
+if (!empty($arrayfields['pr.ref']['checked'])) {
+	print '<td class="liste_titre">';
+	print '<input class="flat maxwidth50" type="text" name="search_refproject" value="'.dol_escape_htmltag($search_refproject).'">';
+	print '</td>';
+}
+if (!empty($arrayfields['pr.title']['checked'])) {
+	print '<td class="liste_titre">';
+	print '<input class="flat maxwidth50" type="text" name="search_project" value="'.dol_escape_htmltag($search_project).'">';
+	print '</td>';
+}
+if (!empty($arrayfields['s.nom']['checked'])) {
+	print '<td class="liste_titre" align="left">';
+	print '<input class="flat maxwidth100" type="text" name="search_societe" value="'.dol_escape_htmltag($search_societe).'">';
+	print '</td>';
+}
+if (!empty($arrayfields['s.name_alias']['checked'])) {
+	print '<td class="liste_titre" align="left">';
+	print '<input class="flat maxwidth100" type="text" name="search_societe_alias" value="'.dol_escape_htmltag($search_societe_alias).'">';
+	print '</td>';
+}
+if (!empty($arrayfields['s.town']['checked'])) {
+	print '<td class="liste_titre"><input class="flat maxwidth50" type="text" name="search_town" value="'.$search_town.'"></td>';
+}
+if (!empty($arrayfields['s.zip']['checked'])) {
+	print '<td class="liste_titre"><input class="flat maxwidth50" type="text" name="search_zip" value="'.$search_zip.'"></td>';
+}
+// State
+if (!empty($arrayfields['state.nom']['checked'])) {
+	print '<td class="liste_titre">';
+	print '<input class="flat maxwidth50" type="text" name="search_state" value="'.dol_escape_htmltag($search_state).'">';
+	print '</td>';
+}
+// Country
+if (!empty($arrayfields['country.code_iso']['checked'])) {
+	print '<td class="liste_titre" align="center">';
+	print $form->select_country($search_country, 'search_country', '', 0, 'minwidth100imp maxwidth100');
+	print '</td>';
+}
+// Company type
+if (!empty($arrayfields['typent.code']['checked'])) {
+	print '<td class="liste_titre maxwidth100onsmartphone" align="center">';
+	print $form->selectarray("search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 1, 0, 0, '', 0, 0, 0, (!getDolGlobalString('SOCIETE_SORT_ON_TYPEENT') ? 'ASC' : $conf->global->SOCIETE_SORT_ON_TYPEENT), '', 1);
+	print ajax_combobox('search_type_thirdparty');
+	print '</td>';
+}
+// Date
+if (!empty($arrayfields['p.date']['checked'])) {
+	print '<td class="liste_titre center">';
+	print '<div class="nowrapfordate">';
+	print $form->selectDate($search_date_start ? $search_date_start : -1, 'search_date_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From'));
+	print '</div>';
+	print '<div class="nowrapfordate">';
+	print $form->selectDate($search_date_end ? $search_date_end : -1, 'search_date_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to'));
+	print '</div>';
+	print '</td>';
+}
+// Date end
+if (!empty($arrayfields['p.fin_validite']['checked'])) {
+	print '<td class="liste_titre center">';
+	print '<div class="nowrapfordate">';
+	print $form->selectDate($search_date_end_start ? $search_date_end_start : -1, 'search_date_end_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From'));
+	print '</div>';
+	print '<div class="nowrapfordate">';
+	print $form->selectDate($search_date_end_end ? $search_date_end_end : -1, 'search_date_end_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to'));
+	print '</div>';
+	print '</td>';
+}
+// Date delivery
+if (!empty($arrayfields['p.date_livraison']['checked'])) {
+	print '<td class="liste_titre center">';
+	print '<div class="nowrapfordate">';
+	print $form->selectDate($search_date_delivery_start ? $search_date_delivery_start : -1, 'search_date_delivery_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From'));
+	print '</div>';
+	print '<div class="nowrapfordate">';
+	print $form->selectDate($search_date_delivery_end ? $search_date_delivery_end : -1, 'search_date_delivery_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From'));
+	print '</div>';
+	print '</td>';
+}
+// Date Signature
+if (!empty($arrayfields['p.date_signature']['checked'])) {
+	print '<td class="liste_titre center">';
+	print '<div class="nowrapfordate">';
+	print $form->selectDate($search_date_signature_start ? $search_date_signature_start : -1, 'search_date_signature_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From'));
+	print '</div>';
+	print '<div class="nowrapfordate">';
+	print $form->selectDate($search_date_signature_end ? $search_date_signature_end : -1, 'search_date_signature_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From'));
+	print '</div>';
+	print '</td>';
+}
+// Availability
+if (!empty($arrayfields['ava.rowid']['checked'])) {
+	print '<td class="liste_titre maxwidth100onsmartphone center">';
+	$form->selectAvailabilityDelay($search_availability, 'search_availability', '', 1);
+	print ajax_combobox('search_availability');
+	print '</td>';
+}
+// Shipping Method
+if (!empty($arrayfields['p.fk_shipping_method']['checked'])) {
+	print '<td class="liste_titre">';
+	$form->selectShippingMethod($search_fk_shipping_method, 'search_fk_shipping_method', '', 1, '', 1);
+	print '</td>';
+}
+// Source - Input reason
+if (!empty($arrayfields['p.fk_input_reason']['checked'])) {
+	print '<td class="liste_titre">';
+	$form->selectInputReason($search_fk_input_reason, 'search_fk_input_reason', '', 1, 'maxwidth125', 1);
+	print '</td>';
+}
+// Payment term
+if (!empty($arrayfields['p.fk_cond_reglement']['checked'])) {
+	print '<td class="liste_titre">';
+	print $form->getSelectConditionsPaiements($search_fk_cond_reglement, 'search_fk_cond_reglement', 1, 1, 1);
+	print '</td>';
+}
+// Payment mode
+if (!empty($arrayfields['p.fk_mode_reglement']['checked'])) {
+	print '<td class="liste_titre">';
+	print $form->select_types_paiements($search_fk_mode_reglement, 'search_fk_mode_reglement', '', 0, 1, 1, 0, -1, '', 1);
+	print '</td>';
+}
+if (!empty($arrayfields['p.total_ht']['checked'])) {
+	// Amount
+	print '<td class="liste_titre right">';
+	print '<input class="flat" type="text" size="5" name="search_montant_ht" value="'.dol_escape_htmltag($search_montant_ht).'">';
+	print '</td>';
+}
+if (!empty($arrayfields['p.total_tva']['checked'])) {
+	// Amount
+	print '<td class="liste_titre right">';
+	print '<input class="flat" type="text" size="5" name="search_montant_vat" value="'.dol_escape_htmltag($search_montant_vat).'">';
+	print '</td>';
+}
+if (!empty($arrayfields['p.total_ttc']['checked'])) {
+	// Amount
+	print '<td class="liste_titre right">';
+	print '<input class="flat" type="text" size="5" name="search_montant_ttc" value="'.dol_escape_htmltag($search_montant_ttc).'">';
+	print '</td>';
+}
+if (!empty($arrayfields['p.total_ht_invoiced']['checked'])) {
+	// Amount invoiced
+	print '<td class="liste_titre right">';
+	print '</td>';
+}
+if (!empty($arrayfields['p.total_invoiced']['checked'])) {
+	// Amount invoiced
+	print '<td class="liste_titre right">';
+	print '</td>';
+}
+if (!empty($arrayfields['p.multicurrency_code']['checked'])) {
+	// Currency
+	print '<td class="liste_titre">';
+	print $form->selectMultiCurrency($search_multicurrency_code, 'search_multicurrency_code', 1);
+	print '</td>';
+}
+if (!empty($arrayfields['p.multicurrency_tx']['checked'])) {
+	// Currency rate
+	print '<td class="liste_titre">';
+	print '<input class="flat" type="text" size="4" name="search_multicurrency_tx" value="'.dol_escape_htmltag($search_multicurrency_tx).'">';
+	print '</td>';
+}
+if (!empty($arrayfields['p.multicurrency_total_ht']['checked'])) {
+	// Amount
+	print '<td class="liste_titre right">';
+	print '<input class="flat" type="text" size="4" name="search_multicurrency_montant_ht" value="'.dol_escape_htmltag($search_multicurrency_montant_ht).'">';
+	print '</td>';
+}
+if (!empty($arrayfields['p.multicurrency_total_tva']['checked'])) {
+	// Amount
+	print '<td class="liste_titre right">';
+	print '<input class="flat" type="text" size="4" name="search_multicurrency_montant_vat" value="'.dol_escape_htmltag($search_multicurrency_montant_vat).'">';
+	print '</td>';
+}
+if (!empty($arrayfields['p.multicurrency_total_ttc']['checked'])) {
+	// Amount
+	print '<td class="liste_titre right">';
+	print '<input class="flat" type="text" size="4" name="search_multicurrency_montant_ttc" value="'.dol_escape_htmltag($search_multicurrency_montant_ttc).'">';
+	print '</td>';
+}
+if (!empty($arrayfields['p.multicurrency_total_ht_invoiced']['checked'])) {
+	// Amount invoiced
+	print '<td class="liste_titre right">';
+	print '</td>';
+}
+if (!empty($arrayfields['p.multicurrency_total_invoiced']['checked'])) {
+	// Amount invoiced
+	print '<td class="liste_titre right">';
+	print '</td>';
+}
+if (!empty($arrayfields['u.login']['checked'])) {
+	// Author
+	print '<td class="liste_titre">';
+	print '<input class="flat maxwidth75" type="text" name="search_login" value="'.dol_escape_htmltag($search_login).'">';
+	print '</td>';
+}
+if (!empty($arrayfields['sale_representative']['checked'])) {
+	print '<td class="liste_titre"></td>';
+}
+if (!empty($arrayfields['total_pa']['checked'])) {
+	print '<td class="liste_titre right">';
+	print '</td>';
+}
+if (!empty($arrayfields['total_margin']['checked'])) {
+	print '<td class="liste_titre right">';
+	print '</td>';
+}
+if (!empty($arrayfields['total_margin_rate']['checked'])) {
+	print '<td class="liste_titre right">';
+	print '</td>';
+}
+if (!empty($arrayfields['total_mark_rate']['checked'])) {
+	print '<td class="liste_titre right">';
+	print '</td>';
+}
+// Extra fields
+include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php';
+
+// Fields from hook
+$parameters = array('arrayfields'=>$arrayfields);
+$reshook = $hookmanager->executeHooks('printFieldListOption', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
+print $hookmanager->resPrint;
+// Date creation
+if (!empty($arrayfields['p.datec']['checked'])) {
+	print '<td class="liste_titre">';
+	print '</td>';
+}
+// Date modification
+if (!empty($arrayfields['p.tms']['checked'])) {
+	print '<td class="liste_titre">';
+	print '</td>';
+}
+// Date cloture
+if (!empty($arrayfields['p.date_cloture']['checked'])) {
+	print '<td class="liste_titre">';
+	print '</td>';
+}
+if (!empty($arrayfields['p.note_public']['checked'])) {
+	// Note public
+	print '<td class="liste_titre">';
+	print '</td>';
+}
+if (!empty($arrayfields['p.note_private']['checked'])) {
+	// Note private
+	print '<td class="liste_titre">';
+	print '</td>';
+}
+// Status
+if (!empty($arrayfields['p.fk_statut']['checked'])) {
+	print '<td class="liste_titre center parentonrightofpage">';
+	$formpropal->selectProposalStatus($search_status, 1, 0, 1, 'customer', 'search_statut', 'search_status width100 onrightofpage');
+	print '</td>';
+}
+// Action column
+if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
+	print '<td class="liste_titre" align="middle">';
+	$searchpicto = $form->showFilterButtons();
+	print $searchpicto;
+	print '</td>';
+}
+print "</tr>\n";
+
+$totalarray = array(
+	'nbfield' => 0,
+	'val' => array(
+		'p.total_ht' => 0,
+		'p.total_tva' => 0,
+		'p.total_ttc' => 0,
+	),
+);
 
-				$totalInvoicedHT += $invoice->total_ht;
-				$totalInvoicedTTC += $invoice->total_ttc;
-				$multicurrency_totalInvoicedHT += $invoice->multicurrency_total_ht;
-				$multicurrency_totalInvoicedTTC += $invoice->multicurrency_total_ttc;
+// Fields title
+print '<tr class="liste_titre">';
+if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
+	print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.ref']['checked'])) {
+	print_liste_field_titre($arrayfields['p.ref']['label'], $_SERVER["PHP_SELF"], 'p.ref', '', $param, '', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.ref_client']['checked'])) {
+	print_liste_field_titre($arrayfields['p.ref_client']['label'], $_SERVER["PHP_SELF"], 'p.ref_client', '', $param, '', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['pr.ref']['checked'])) {
+	print_liste_field_titre($arrayfields['pr.ref']['label'], $_SERVER["PHP_SELF"], 'pr.ref', '', $param, '', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['pr.title']['checked'])) {
+	print_liste_field_titre($arrayfields['pr.title']['label'], $_SERVER["PHP_SELF"], 'pr.title', '', $param, '', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['s.nom']['checked'])) {
+	print_liste_field_titre($arrayfields['s.nom']['label'], $_SERVER["PHP_SELF"], 's.nom', '', $param, '', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['s.name_alias']['checked'])) {
+	print_liste_field_titre($arrayfields['s.name_alias']['label'], $_SERVER["PHP_SELF"], 's.name_alias', '', $param, '', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['s.town']['checked'])) {
+	print_liste_field_titre($arrayfields['s.town']['label'], $_SERVER["PHP_SELF"], 's.town', '', $param, '', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['s.zip']['checked'])) {
+	print_liste_field_titre($arrayfields['s.zip']['label'], $_SERVER["PHP_SELF"], 's.zip', '', $param, '', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['state.nom']['checked'])) {
+	print_liste_field_titre($arrayfields['state.nom']['label'], $_SERVER["PHP_SELF"], "state.nom", "", $param, '', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['country.code_iso']['checked'])) {
+	print_liste_field_titre($arrayfields['country.code_iso']['label'], $_SERVER["PHP_SELF"], "country.code_iso", "", $param, 'class="center"', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['typent.code']['checked'])) {
+	print_liste_field_titre($arrayfields['typent.code']['label'], $_SERVER["PHP_SELF"], "typent.code", "", $param, 'class="center"', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.date']['checked'])) {
+	print_liste_field_titre($arrayfields['p.date']['label'], $_SERVER["PHP_SELF"], 'p.datep', '', $param, 'class="center"', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.fin_validite']['checked'])) {
+	print_liste_field_titre($arrayfields['p.fin_validite']['label'], $_SERVER["PHP_SELF"], 'dfv', '', $param, 'class="center"', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.date_livraison']['checked'])) {
+	print_liste_field_titre($arrayfields['p.date_livraison']['label'], $_SERVER["PHP_SELF"], 'p.date_livraison', '', $param, 'class="center"', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.date_signature']['checked'])) {
+	print_liste_field_titre($arrayfields['p.date_signature']['label'], $_SERVER["PHP_SELF"], 'p.date_signature', '', $param, 'class="center"', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['ava.rowid']['checked'])) {
+	print_liste_field_titre($arrayfields['ava.rowid']['label'], $_SERVER["PHP_SELF"], 'availability', '', $param, '', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.fk_shipping_method']['checked'])) {
+	print_liste_field_titre($arrayfields['p.fk_shipping_method']['label'], $_SERVER["PHP_SELF"], "p.fk_shipping_method", "", $param, '', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.fk_input_reason']['checked'])) {
+	print_liste_field_titre($arrayfields['p.fk_input_reason']['label'], $_SERVER["PHP_SELF"], "p.fk_input_reason", "", $param, '', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.fk_cond_reglement']['checked'])) {
+	print_liste_field_titre($arrayfields['p.fk_cond_reglement']['label'], $_SERVER["PHP_SELF"], "p.fk_cond_reglement", "", $param, '', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.fk_mode_reglement']['checked'])) {
+	print_liste_field_titre($arrayfields['p.fk_mode_reglement']['label'], $_SERVER["PHP_SELF"], "p.fk_mode_reglement", "", $param, '', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.total_ht']['checked'])) {
+	print_liste_field_titre($arrayfields['p.total_ht']['label'], $_SERVER["PHP_SELF"], 'p.total_ht', '', $param, '', $sortfield, $sortorder, 'right ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.total_tva']['checked'])) {
+	print_liste_field_titre($arrayfields['p.total_tva']['label'], $_SERVER["PHP_SELF"], 'p.total_tva', '', $param, '', $sortfield, $sortorder, 'right ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.total_ttc']['checked'])) {
+	print_liste_field_titre($arrayfields['p.total_ttc']['label'], $_SERVER["PHP_SELF"], 'p.total_ttc', '', $param, '', $sortfield, $sortorder, 'right ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.total_ht_invoiced']['checked'])) {
+	print_liste_field_titre($arrayfields['p.total_ht_invoiced']['label'], $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.total_invoiced']['checked'])) {
+	print_liste_field_titre($arrayfields['p.total_invoiced']['label'], $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.multicurrency_code']['checked'])) {
+	print_liste_field_titre($arrayfields['p.multicurrency_code']['label'], $_SERVER['PHP_SELF'], 'p.multicurrency_code', '', $param, '', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.multicurrency_tx']['checked'])) {
+	print_liste_field_titre($arrayfields['p.multicurrency_tx']['label'], $_SERVER['PHP_SELF'], 'p.multicurrency_tx', '', $param, '', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.multicurrency_total_ht']['checked'])) {
+	print_liste_field_titre($arrayfields['p.multicurrency_total_ht']['label'], $_SERVER['PHP_SELF'], 'p.multicurrency_total_ht', '', $param, '', $sortfield, $sortorder, 'right ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.multicurrency_total_tva']['checked'])) {
+	print_liste_field_titre($arrayfields['p.multicurrency_total_tva']['label'], $_SERVER['PHP_SELF'], 'p.multicurrency_total_tva', '', $param, '', $sortfield, $sortorder, 'right ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.multicurrency_total_ttc']['checked'])) {
+	print_liste_field_titre($arrayfields['p.multicurrency_total_ttc']['label'], $_SERVER['PHP_SELF'], 'p.multicurrency_total_ttc', '', $param, '', $sortfield, $sortorder, 'right ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.multicurrency_total_ht_invoiced']['checked'])) {
+	print_liste_field_titre($arrayfields['p.multicurrency_total_ht_invoiced']['label'], $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.multicurrency_total_invoiced']['checked'])) {
+	print_liste_field_titre($arrayfields['p.multicurrency_total_invoiced']['label'], $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['u.login']['checked'])) {
+	print_liste_field_titre($arrayfields['u.login']['label'], $_SERVER["PHP_SELF"], 'u.login', '', $param, '', $sortfield, $sortorder, 'center ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['sale_representative']['checked'])) {
+	print_liste_field_titre($arrayfields['sale_representative']['label'], $_SERVER["PHP_SELF"], "", "", "$param", '', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['total_pa']['checked'])) {
+	print_liste_field_titre($arrayfields['total_pa']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'right ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['total_margin']['checked'])) {
+	print_liste_field_titre($arrayfields['total_margin']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'right ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['total_margin_rate']['checked'])) {
+	print_liste_field_titre($arrayfields['total_margin_rate']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'right ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['total_mark_rate']['checked'])) {
+	print_liste_field_titre($arrayfields['total_mark_rate']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'right ');
+	$totalarray['nbfield']++;
+}
+// Extra fields
+include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
+// Hook fields
+$parameters = array(
+	'arrayfields' => $arrayfields,
+	'param' => $param,
+	'sortfield' => $sortfield,
+	'sortorder' => $sortorder,
+	'totalarray' => &$totalarray,
+);
+
+$reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
+
+print $hookmanager->resPrint;
+if (!empty($arrayfields['p.datec']['checked'])) {
+	print_liste_field_titre($arrayfields['p.datec']['label'], $_SERVER["PHP_SELF"], "p.datec", "", $param, '', $sortfield, $sortorder, 'center nowraponall ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.tms']['checked'])) {
+	print_liste_field_titre($arrayfields['p.tms']['label'], $_SERVER["PHP_SELF"], "p.tms", "", $param, '', $sortfield, $sortorder, 'center nowraponall ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.date_cloture']['checked'])) {
+	print_liste_field_titre($arrayfields['p.date_cloture']['label'], $_SERVER["PHP_SELF"], "p.date_cloture", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder);
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.note_public']['checked'])) {
+	print_liste_field_titre($arrayfields['p.note_public']['label'], $_SERVER["PHP_SELF"], "p.note_public", "", $param, '', $sortfield, $sortorder, 'center nowrap ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.note_private']['checked'])) {
+	print_liste_field_titre($arrayfields['p.note_private']['label'], $_SERVER["PHP_SELF"], "p.note_private", "", $param, '', $sortfield, $sortorder, 'center nowrap ');
+	$totalarray['nbfield']++;
+}
+if (!empty($arrayfields['p.fk_statut']['checked'])) {
+	print_liste_field_titre($arrayfields['p.fk_statut']['label'], $_SERVER["PHP_SELF"], "p.fk_statut", "", $param, '', $sortfield, $sortorder, 'center ');
+	$totalarray['nbfield']++;
+}
+if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
+	print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch ');
+	$totalarray['nbfield']++;
+}
+print '</tr>'."\n";
+
+// Loop on record
+// --------------------------------------------------------------------
+$typenArray = null;
+$now = dol_now();
+
+$with_margin_info = false;
+if (isModEnabled('margin') && (
+	!empty($arrayfields['total_pa']['checked'])
+	|| !empty($arrayfields['total_margin']['checked'])
+	|| !empty($arrayfields['total_margin_rate']['checked'])
+	|| !empty($arrayfields['total_mark_rate']['checked'])
+)
+) {
+	$with_margin_info = true;
+}
+$total_ht = 0;
+$total_margin = 0;
+
+$i = 0;
+$savnbfield = $totalarray['nbfield'];
+$totalarray = array();
+$totalarray['nbfield'] = 0;
+$imaxinloop = ($limit ? min($num, $limit) : $num);
+while ($i < $imaxinloop) {
+	$obj = $db->fetch_object($resql);
+	if (empty($obj)) {
+		break; // Should not happen
+	}
+
+	$objectstatic->id = $obj->rowid;
+	$objectstatic->ref = $obj->ref;
+	$objectstatic->ref_client = $obj->ref_client;
+	$objectstatic->note_public = $obj->note_public;
+	$objectstatic->note_private = $obj->note_private;
+	$objectstatic->statut = $obj->status;
+	$objectstatic->status = $obj->status;
+
+	$companystatic->id = $obj->socid;
+	$companystatic->name = $obj->name;
+	$companystatic->name_alias = $obj->alias;
+	$companystatic->client = $obj->client;
+	$companystatic->fournisseur = $obj->fournisseur;
+	$companystatic->code_client = $obj->code_client;
+	$companystatic->email = $obj->email;
+	$companystatic->phone = $obj->phone;
+	$companystatic->address = $obj->address;
+	$companystatic->zip = $obj->zip;
+	$companystatic->town = $obj->town;
+	$companystatic->country_code = $obj->country_code;
+
+	$projectstatic->id = $obj->project_id;
+	$projectstatic->ref = $obj->project_ref;
+	$projectstatic->title = $obj->project_label;
+
+	$totalInvoicedHT = 0;
+	$totalInvoicedTTC = 0;
+	$multicurrency_totalInvoicedHT = 0;
+	$multicurrency_totalInvoicedTTC = 0;
+
+	$TInvoiceData = $objectstatic->InvoiceArrayList($obj->rowid);
+
+	if (!empty($TInvoiceData)) {
+		foreach ($TInvoiceData as $invoiceData) {
+			$invoice = new Facture($db);
+			$invoice->fetch($invoiceData->facid);
+
+			if (getDolGlobalString('FACTURE_DEPOSITS_ARE_JUST_PAYMENTS') && $invoice->type == Facture::TYPE_DEPOSIT) {
+				continue;
 			}
+
+			$totalInvoicedHT += $invoice->total_ht;
+			$totalInvoicedTTC += $invoice->total_ttc;
+			$multicurrency_totalInvoicedHT += $invoice->multicurrency_total_ht;
+			$multicurrency_totalInvoicedTTC += $invoice->multicurrency_total_ttc;
 		}
+	}
 
-		$marginInfo = array();
-		if ($with_margin_info === true) {
-			$objectstatic->fetch_lines();
-			$marginInfo = $formmargin->getMarginInfosArray($objectstatic);
-			$total_ht += $obj->total_ht;
-			$total_margin += $marginInfo['total_margin'];
+	$marginInfo = array();
+	if ($with_margin_info === true) {
+		$objectstatic->fetch_lines();
+		$marginInfo = $formmargin->getMarginInfosArray($objectstatic);
+		$total_ht += $obj->total_ht;
+		$total_margin += $marginInfo['total_margin'];
+	}
+
+	if ($mode == 'kanban') {
+		if ($i == 0) {
+			print '<tr class="trkanban"><td colspan="'.$savnbfield.'">';
+			print '<div class="box-flex-container kanban">';
+		}
+		// Output Kanban
+		$userstatic->fetch($obj->fk_user_author);
+		$arrayofparams = array('selected' => in_array($object->id, $arrayofselected), 'authorlink' => $userstatic->getNomUrl(-2), 'projectlink' => $projectstatic->getNomUrl(2));
+		print $objectstatic->getKanbanView('', $arrayofparams);
+		if ($i == ($imaxinloop - 1)) {
+			print '</div>';
+			print '</td></tr>';
 		}
+	} else {
+		print '<tr class="oddeven">';
 
-		if ($mode == 'kanban') {
-			if ($i == 0) {
-				print '<tr class="trkanban"><td colspan="'.$savnbfield.'">';
-				print '<div class="box-flex-container kanban">';
+		// Action column
+		if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
+			print '<td class="nowrap" align="center">';
+			if ($massactionbutton || $massaction) {   // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
+				$selected = 0;
+				if (in_array($obj->rowid, $arrayofselected)) {
+					$selected = 1;
+				}
+				print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected ? ' checked="checked"' : '').'>';
 			}
-			// Output Kanban
-			$userstatic->fetch($obj->fk_user_author);
-			$arrayofparams = array('selected' => in_array($object->id, $arrayofselected), 'authorlink' => $userstatic->getNomUrl(-2), 'projectlink' => $projectstatic->getNomUrl(2));
-			print $objectstatic->getKanbanView('', $arrayofparams);
-			if ($i == ($imaxinloop - 1)) {
-				print '</div>';
-				print '</td></tr>';
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-		} else {
-			print '<tr class="oddeven">';
-
-			// Action column
-			if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
-				print '<td class="nowrap" align="center">';
-				if ($massactionbutton || $massaction) {   // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
-					$selected = 0;
-					if (in_array($obj->rowid, $arrayofselected)) {
-						$selected = 1;
-					}
-					print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected ? ' checked="checked"' : '').'>';
-				}
+		}
+
+		if (!empty($arrayfields['p.ref']['checked'])) {
+			print '<td class="nowraponall">';
+
+			print '<table class="nobordernopadding"><tr class="nocellnopadd">';
+			// Picto + Ref
+			print '<td class="nobordernopadding nowraponall">';
+			print $objectstatic->getNomUrl(1, '', '', 0, 1, (isset($conf->global->PROPAL_LIST_SHOW_NOTES) ? $conf->global->PROPAL_LIST_SHOW_NOTES : 1));
+			print '</td>';
+			// Warning
+			$warnornote = '';
+			if ($obj->status == Propal::STATUS_VALIDATED && $db->jdate($obj->dfv) < ($now - $conf->propal->cloture->warning_delay)) {
+				$warnornote .= img_warning($langs->trans("Late"));
+			}
+			if ($warnornote) {
+				print '<td style="min-width: 20px" class="nobordernopadding nowrap">';
+				print $warnornote;
 				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
 			}
+			// Other picto tool
+			print '<td width="16" class="nobordernopadding right">';
+			$filename = dol_sanitizeFileName($obj->ref);
+			$filedir = $conf->propal->multidir_output[$obj->propal_entity].'/'.dol_sanitizeFileName($obj->ref);
+			$urlsource = $_SERVER['PHP_SELF'].'?id='.$obj->rowid;
+			print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
+			print '</td></tr></table>';
+
+			print "</td>\n";
+			if (!$i) {
+				$totalarray['nbfield']++;
+			}
+		}
 
-			if (!empty($arrayfields['p.ref']['checked'])) {
-				print '<td class="nowraponall">';
+		if (!empty($arrayfields['p.ref_client']['checked'])) {
+			// Customer ref
+			print '<td class="nowrap tdoverflowmax200">';
+			print dol_escape_htmltag($obj->ref_client);
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
+			}
+		}
 
-				print '<table class="nobordernopadding"><tr class="nocellnopadd">';
-				// Picto + Ref
-				print '<td class="nobordernopadding nowraponall">';
-				print $objectstatic->getNomUrl(1, '', '', 0, 1, (isset($conf->global->PROPAL_LIST_SHOW_NOTES) ? $conf->global->PROPAL_LIST_SHOW_NOTES : 1));
-				print '</td>';
-				// Warning
-				$warnornote = '';
-				if ($obj->status == Propal::STATUS_VALIDATED && $db->jdate($obj->dfv) < ($now - $conf->propal->cloture->warning_delay)) {
-					$warnornote .= img_warning($langs->trans("Late"));
-				}
-				if ($warnornote) {
-					print '<td style="min-width: 20px" class="nobordernopadding nowrap">';
-					print $warnornote;
-					print '</td>';
-				}
-				// Other picto tool
-				print '<td width="16" class="nobordernopadding right">';
-				$filename = dol_sanitizeFileName($obj->ref);
-				$filedir = $conf->propal->multidir_output[$obj->propal_entity].'/'.dol_sanitizeFileName($obj->ref);
-				$urlsource = $_SERVER['PHP_SELF'].'?id='.$obj->rowid;
-				print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
-				print '</td></tr></table>';
-
-				print "</td>\n";
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		if (!empty($arrayfields['pr.ref']['checked'])) {
+			// Project ref
+			print '<td class="nowraponall">';
+			if ($obj->project_id > 0) {
+				print $projectstatic->getNomUrl(1);
+			}
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
+		}
 
-			if (!empty($arrayfields['p.ref_client']['checked'])) {
-				// Customer ref
-				print '<td class="nowrap tdoverflowmax200">';
-				print dol_escape_htmltag($obj->ref_client);
-				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		if (!empty($arrayfields['pr.title']['checked'])) {
+			// Project label
+			print '<td class="nowrap">';
+			if ($obj->project_id > 0) {
+				print dol_escape_htmltag($projectstatic->title);
 			}
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
+			}
+		}
 
-			if (!empty($arrayfields['pr.ref']['checked'])) {
-				// Project ref
-				print '<td class="nowraponall">';
-				if ($obj->project_id > 0) {
-					print $projectstatic->getNomUrl(1);
-				}
-				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		// Thirdparty
+		if (!empty($arrayfields['s.nom']['checked'])) {
+			print '<td class="tdoverflowmax150">';
+			print $companystatic->getNomUrl(1, 'customer', 0, 0, 1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1);
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
+		}
 
-			if (!empty($arrayfields['pr.title']['checked'])) {
-				// Project label
-				print '<td class="nowrap">';
-				if ($obj->project_id > 0) {
-					print dol_escape_htmltag($projectstatic->title);
-				}
-				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		// Alias
+		if (!empty($arrayfields['s.name_alias']['checked'])) {
+			print '<td class="tdoverflowmax200">';
+			print $obj->alias;
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
+		}
 
-			// Thirdparty
-			if (!empty($arrayfields['s.nom']['checked'])) {
-				print '<td class="tdoverflowmax150">';
-				print $companystatic->getNomUrl(1, 'customer', 0, 0, 1, empty($arrayfields['s.name_alias']['checked']) ? 0 : 1);
-				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		// Town
+		if (!empty($arrayfields['s.town']['checked'])) {
+			print '<td class="tdoverflowmax100" title="'.dol_escape_htmltag($obj->town).'">';
+			print dol_escape_htmltag($obj->town);
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
+			}
+		}
+		// Zip
+		if (!empty($arrayfields['s.zip']['checked'])) {
+			print '<td class="nocellnopadd">';
+			print $obj->zip;
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
+			}
+		}
+		// State
+		if (!empty($arrayfields['state.nom']['checked'])) {
+			print "<td>".$obj->state_name."</td>\n";
+			if (!$i) {
+				$totalarray['nbfield']++;
+			}
+		}
+		// Country
+		if (!empty($arrayfields['country.code_iso']['checked'])) {
+			print '<td class="center">';
+			$tmparray = getCountry($obj->fk_pays, 'all');
+			print $tmparray['label'];
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
+			}
+		}
+		// Type ent
+		if (!empty($arrayfields['typent.code']['checked'])) {
+			if (!is_array($typenArray) || empty($typenArray)) {
+				$typenArray = $formcompany->typent_array(1);
 			}
 
-			// Alias
-			if (!empty($arrayfields['s.name_alias']['checked'])) {
-				print '<td class="tdoverflowmax200">';
-				print $obj->alias;
-				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+			print '<td class="center">';
+			print $typenArray[$obj->typent_code];
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
+		}
 
-			// Town
-			if (!empty($arrayfields['s.town']['checked'])) {
-				print '<td class="tdoverflowmax100" title="'.dol_escape_htmltag($obj->town).'">';
-				print dol_escape_htmltag($obj->town);
-				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		// Date proposal
+		if (!empty($arrayfields['p.date']['checked'])) {
+			print '<td class="center">';
+			print dol_print_date($db->jdate($obj->dp), 'day');
+			print "</td>\n";
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Zip
-			if (!empty($arrayfields['s.zip']['checked'])) {
-				print '<td class="nocellnopadd">';
-				print $obj->zip;
+		}
+
+		// Date end validity
+		if (!empty($arrayfields['p.fin_validite']['checked'])) {
+			if ($obj->dfv) {
+				print '<td class="center">'.dol_print_date($db->jdate($obj->dfv), 'day');
 				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+			} else {
+				print '<td>&nbsp;</td>';
 			}
-			// State
-			if (!empty($arrayfields['state.nom']['checked'])) {
-				print "<td>".$obj->state_name."</td>\n";
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Country
-			if (!empty($arrayfields['country.code_iso']['checked'])) {
-				print '<td class="center">';
-				$tmparray = getCountry($obj->fk_pays, 'all');
-				print $tmparray['label'];
+		}
+		// Date delivery
+		if (!empty($arrayfields['p.date_livraison']['checked'])) {
+			if ($obj->ddelivery) {
+				print '<td class="center">'.dol_print_date($db->jdate($obj->ddelivery), 'day');
 				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+			} else {
+				print '<td>&nbsp;</td>';
 			}
-			// Type ent
-			if (!empty($arrayfields['typent.code']['checked'])) {
-				if (!is_array($typenArray) || empty($typenArray)) {
-					$typenArray = $formcompany->typent_array(1);
-				}
-
-				print '<td class="center">';
-				print $typenArray[$obj->typent_code];
+			if (!$i) {
+				$totalarray['nbfield']++;
+			}
+		}
+		// Date Signature
+		if (!empty($arrayfields['p.date_signature']['checked'])) {
+			if ($obj->dsignature) {
+				print '<td class="center">'.dol_print_date($db->jdate($obj->dsignature), 'day');
 				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+			} else {
+				print '<td>&nbsp;</td>';
 			}
-
-			// Date proposal
-			if (!empty($arrayfields['p.date']['checked'])) {
-				print '<td class="center">';
-				print dol_print_date($db->jdate($obj->dp), 'day');
-				print "</td>\n";
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-
-			// Date end validity
-			if (!empty($arrayfields['p.fin_validite']['checked'])) {
-				if ($obj->dfv) {
-					print '<td class="center">'.dol_print_date($db->jdate($obj->dfv), 'day');
-					print '</td>';
-				} else {
-					print '<td>&nbsp;</td>';
-				}
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		}
+		// Availability
+		if (!empty($arrayfields['ava.rowid']['checked'])) {
+			print '<td class="center">';
+			$form->form_availability('', $obj->availability, 'none', 1);
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Date delivery
-			if (!empty($arrayfields['p.date_livraison']['checked'])) {
-				if ($obj->ddelivery) {
-					print '<td class="center">'.dol_print_date($db->jdate($obj->ddelivery), 'day');
-					print '</td>';
-				} else {
-					print '<td>&nbsp;</td>';
-				}
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		}
+		// Shipping Method
+		if (!empty($arrayfields['p.fk_shipping_method']['checked'])) {
+			print '<td>';
+			$form->formSelectShippingMethod('', $obj->fk_shipping_method, 'none', 1);
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Date Signature
-			if (!empty($arrayfields['p.date_signature']['checked'])) {
-				if ($obj->dsignature) {
-					print '<td class="center">'.dol_print_date($db->jdate($obj->dsignature), 'day');
-					print '</td>';
-				} else {
-					print '<td>&nbsp;</td>';
-				}
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		}
+		// Source - input reason
+		if (!empty($arrayfields['p.fk_input_reason']['checked'])) {
+			print '<td class="tdoverflowmax125" title="'.dol_escape_htmltag($form->cache_demand_reason[$obj->fk_input_reason]['label']).'">';
+			if ($obj->fk_input_reason > 0) {
+				print $form->cache_demand_reason[$obj->fk_input_reason]['label'];
 			}
-			// Availability
-			if (!empty($arrayfields['ava.rowid']['checked'])) {
-				print '<td class="center">';
-				$form->form_availability('', $obj->availability, 'none', 1);
-				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Shipping Method
-			if (!empty($arrayfields['p.fk_shipping_method']['checked'])) {
-				print '<td>';
-				$form->formSelectShippingMethod('', $obj->fk_shipping_method, 'none', 1);
-				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		}
+		// Payment terms
+		if (!empty($arrayfields['p.fk_cond_reglement']['checked'])) {
+			print '<td>';
+			$form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none', 0, '', 1, $obj->deposit_percent);
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Source - input reason
-			if (!empty($arrayfields['p.fk_input_reason']['checked'])) {
-				print '<td class="tdoverflowmax125" title="'.dol_escape_htmltag($form->cache_demand_reason[$obj->fk_input_reason]['label']).'">';
-				if ($obj->fk_input_reason > 0) {
-					print $form->cache_demand_reason[$obj->fk_input_reason]['label'];
-				}
-				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		}
+		// Payment mode
+		if (!empty($arrayfields['p.fk_mode_reglement']['checked'])) {
+			print '<td>';
+			$form->form_modes_reglement($_SERVER['PHP_SELF'], $obj->fk_mode_reglement, 'none', '', -1);
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Payment terms
-			if (!empty($arrayfields['p.fk_cond_reglement']['checked'])) {
-				print '<td>';
-				$form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none', 0, '', 1, $obj->deposit_percent);
-				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		}
+		// Amount HT
+		if (!empty($arrayfields['p.total_ht']['checked'])) {
+			print '<td class="nowrap right"><span class="amount">'.price($obj->total_ht)."</span></td>\n";
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Payment mode
-			if (!empty($arrayfields['p.fk_mode_reglement']['checked'])) {
-				print '<td>';
-				$form->form_modes_reglement($_SERVER['PHP_SELF'], $obj->fk_mode_reglement, 'none', '', -1);
-				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+			if (!$i) {
+				$totalarray['pos'][$totalarray['nbfield']] = 'p.total_ht';
 			}
-			// Amount HT
-			if (!empty($arrayfields['p.total_ht']['checked'])) {
-				print '<td class="nowrap right"><span class="amount">'.price($obj->total_ht)."</span></td>\n";
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
-				if (!$i) {
-					$totalarray['pos'][$totalarray['nbfield']] = 'p.total_ht';
-				}
-				if (empty($totalarray['val']['p.total_ht'])) {
-					$totalarray['val']['p.total_ht'] = $obj->total_ht;
-				} else {
-					$totalarray['val']['p.total_ht'] += $obj->total_ht;
-				}
+			if (empty($totalarray['val']['p.total_ht'])) {
+				$totalarray['val']['p.total_ht'] = $obj->total_ht;
+			} else {
+				$totalarray['val']['p.total_ht'] += $obj->total_ht;
 			}
-			// Amount VAT
-			if (!empty($arrayfields['p.total_tva']['checked'])) {
-				print '<td class="nowrap right"><span class="amount">'.price($obj->total_tva)."</span></td>\n";
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
-				if (!$i) {
-					$totalarray['pos'][$totalarray['nbfield']] = 'p.total_tva';
-				}
-				if (empty($totalarray['val']['p.total_tva'])) {
-					$totalarray['val']['p.total_tva'] = $obj->total_tva;
-				} else {
-					$totalarray['val']['p.total_tva'] += $obj->total_tva;
-				}
+		}
+		// Amount VAT
+		if (!empty($arrayfields['p.total_tva']['checked'])) {
+			print '<td class="nowrap right"><span class="amount">'.price($obj->total_tva)."</span></td>\n";
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Amount TTC
-			if (!empty($arrayfields['p.total_ttc']['checked'])) {
-				print '<td class="nowrap right"><span class="amount">'.price($obj->total_ttc)."</span></td>\n";
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
-				if (!$i) {
-					$totalarray['pos'][$totalarray['nbfield']] = 'p.total_ttc';
-				}
-				if (empty($totalarray['val']['p.total_ttc'])) {
-					$totalarray['val']['p.total_ttc'] = $obj->total_ttc;
-				} else {
-					$totalarray['val']['p.total_ttc'] += $obj->total_ttc;
-				}
+			if (!$i) {
+				$totalarray['pos'][$totalarray['nbfield']] = 'p.total_tva';
 			}
-			// Amount invoiced HT
-			if (!empty($arrayfields['p.total_ht_invoiced']['checked'])) {
-				print '<td class="nowrap right"><span class="amount">'.price($totalInvoicedHT)."</span></td>\n";
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
-				if (!$i) {
-					$totalarray['pos'][$totalarray['nbfield']] = 'p.total_ht_invoiced';
-				}
-				if (empty($totalarray['val']['p.total_ht_invoiced'])) {
-					$totalarray['val']['p.total_ht_invoiced'] = $totalInvoicedHT;
-				} else {
-					$totalarray['val']['p.total_ht_invoiced'] += $totalInvoicedHT;
-				}
+			if (empty($totalarray['val']['p.total_tva'])) {
+				$totalarray['val']['p.total_tva'] = $obj->total_tva;
+			} else {
+				$totalarray['val']['p.total_tva'] += $obj->total_tva;
 			}
-			// Amount invoiced TTC
-			if (!empty($arrayfields['p.total_invoiced']['checked'])) {
-				print '<td class="nowrap right"><span class="amount">'.price($totalInvoicedTTC)."</span></td>\n";
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
-				if (!$i) {
-					$totalarray['pos'][$totalarray['nbfield']] = 'p.total_invoiced';
-				}
-				if (empty($totalarray['val']['p.total_invoiced'])) {
-					$totalarray['val']['p.total_invoiced'] = $totalInvoicedTTC;
-				} else {
-					$totalarray['val']['p.total_invoiced'] += $totalInvoicedTTC;
-				}
+		}
+		// Amount TTC
+		if (!empty($arrayfields['p.total_ttc']['checked'])) {
+			print '<td class="nowrap right"><span class="amount">'.price($obj->total_ttc)."</span></td>\n";
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Currency
-			if (!empty($arrayfields['p.multicurrency_code']['checked'])) {
-				print '<td class="nowrap">'.$obj->multicurrency_code.' - '.$langs->trans('Currency'.$obj->multicurrency_code)."</td>\n";
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+			if (!$i) {
+				$totalarray['pos'][$totalarray['nbfield']] = 'p.total_ttc';
+			}
+			if (empty($totalarray['val']['p.total_ttc'])) {
+				$totalarray['val']['p.total_ttc'] = $obj->total_ttc;
+			} else {
+				$totalarray['val']['p.total_ttc'] += $obj->total_ttc;
+			}
+		}
+		// Amount invoiced HT
+		if (!empty($arrayfields['p.total_ht_invoiced']['checked'])) {
+			print '<td class="nowrap right"><span class="amount">'.price($totalInvoicedHT)."</span></td>\n";
+			if (!$i) {
+				$totalarray['nbfield']++;
+			}
+			if (!$i) {
+				$totalarray['pos'][$totalarray['nbfield']] = 'p.total_ht_invoiced';
 			}
+			if (empty($totalarray['val']['p.total_ht_invoiced'])) {
+				$totalarray['val']['p.total_ht_invoiced'] = $totalInvoicedHT;
+			} else {
+				$totalarray['val']['p.total_ht_invoiced'] += $totalInvoicedHT;
+			}
+		}
+		// Amount invoiced TTC
+		if (!empty($arrayfields['p.total_invoiced']['checked'])) {
+			print '<td class="nowrap right"><span class="amount">'.price($totalInvoicedTTC)."</span></td>\n";
+			if (!$i) {
+				$totalarray['nbfield']++;
+			}
+			if (!$i) {
+				$totalarray['pos'][$totalarray['nbfield']] = 'p.total_invoiced';
+			}
+			if (empty($totalarray['val']['p.total_invoiced'])) {
+				$totalarray['val']['p.total_invoiced'] = $totalInvoicedTTC;
+			} else {
+				$totalarray['val']['p.total_invoiced'] += $totalInvoicedTTC;
+			}
+		}
+		// Currency
+		if (!empty($arrayfields['p.multicurrency_code']['checked'])) {
+			print '<td class="nowrap">'.$obj->multicurrency_code.' - '.$langs->trans('Currency'.$obj->multicurrency_code)."</td>\n";
+			if (!$i) {
+				$totalarray['nbfield']++;
+			}
+		}
 
-			// Currency rate
-			if (!empty($arrayfields['p.multicurrency_tx']['checked'])) {
-				print '<td class="nowrap">';
-				$form->form_multicurrency_rate($_SERVER['PHP_SELF'].'?id='.$obj->rowid, $obj->multicurrency_tx, 'none', $obj->multicurrency_code);
-				print "</td>\n";
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		// Currency rate
+		if (!empty($arrayfields['p.multicurrency_tx']['checked'])) {
+			print '<td class="nowrap">';
+			$form->form_multicurrency_rate($_SERVER['PHP_SELF'].'?id='.$obj->rowid, $obj->multicurrency_tx, 'none', $obj->multicurrency_code);
+			print "</td>\n";
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Amount HT
-			if (!empty($arrayfields['p.multicurrency_total_ht']['checked'])) {
-				print '<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ht)."</span></td>\n";
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		}
+		// Amount HT
+		if (!empty($arrayfields['p.multicurrency_total_ht']['checked'])) {
+			print '<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ht)."</span></td>\n";
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Amount VAT
-			if (!empty($arrayfields['p.multicurrency_total_tva']['checked'])) {
-				print '<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_tva)."</span></td>\n";
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		}
+		// Amount VAT
+		if (!empty($arrayfields['p.multicurrency_total_tva']['checked'])) {
+			print '<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_tva)."</span></td>\n";
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Amount TTC
-			if (!empty($arrayfields['p.multicurrency_total_ttc']['checked'])) {
-				print '<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ttc)."</span></td>\n";
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		}
+		// Amount TTC
+		if (!empty($arrayfields['p.multicurrency_total_ttc']['checked'])) {
+			print '<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ttc)."</span></td>\n";
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Amount invoiced
-			if (!empty($arrayfields['p.multicurrency_total_ht_invoiced']['checked'])) {
-				print '<td class="nowrap right"><span class="amount">'.price($multicurrency_totalInvoicedHT)."</span></td>\n";
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		}
+		// Amount invoiced
+		if (!empty($arrayfields['p.multicurrency_total_ht_invoiced']['checked'])) {
+			print '<td class="nowrap right"><span class="amount">'.price($multicurrency_totalInvoicedHT)."</span></td>\n";
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Amount invoiced
-			if (!empty($arrayfields['p.multicurrency_total_invoiced']['checked'])) {
-				print '<td class="nowrap right"><span class="amount">'.price($multicurrency_totalInvoicedTTC)."</span></td>\n";
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		}
+		// Amount invoiced
+		if (!empty($arrayfields['p.multicurrency_total_invoiced']['checked'])) {
+			print '<td class="nowrap right"><span class="amount">'.price($multicurrency_totalInvoicedTTC)."</span></td>\n";
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
+		}
 
-			$userstatic->id = $obj->fk_user_author;
-			$userstatic->login = $obj->login;
-			$userstatic->lastname = $obj->lastname;
-			$userstatic->firstname = $obj->firstname;
-			$userstatic->email = $obj->user_email;
-			$userstatic->statut = $obj->user_statut;
-			$userstatic->entity = $obj->user_entity;
-			$userstatic->photo = $obj->photo;
-			$userstatic->office_phone = $obj->office_phone;
-			$userstatic->office_fax = $obj->office_fax;
-			$userstatic->user_mobile = $obj->user_mobile;
-			$userstatic->job = $obj->job;
-			$userstatic->gender = $obj->gender;
-
-			// Author
-			if (!empty($arrayfields['u.login']['checked'])) {
-				print '<td class="tdoverflowmax150">';
-				if ($userstatic->id) {
-					print $userstatic->getNomUrl(-1);
-				}
-				print "</td>\n";
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		$userstatic->id = $obj->fk_user_author;
+		$userstatic->login = $obj->login;
+		$userstatic->lastname = $obj->lastname;
+		$userstatic->firstname = $obj->firstname;
+		$userstatic->email = $obj->user_email;
+		$userstatic->statut = $obj->user_statut;
+		$userstatic->entity = $obj->user_entity;
+		$userstatic->photo = $obj->photo;
+		$userstatic->office_phone = $obj->office_phone;
+		$userstatic->office_fax = $obj->office_fax;
+		$userstatic->user_mobile = $obj->user_mobile;
+		$userstatic->job = $obj->job;
+		$userstatic->gender = $obj->gender;
+
+		// Author
+		if (!empty($arrayfields['u.login']['checked'])) {
+			print '<td class="tdoverflowmax150">';
+			if ($userstatic->id) {
+				print $userstatic->getNomUrl(-1);
 			}
+			print "</td>\n";
+			if (!$i) {
+				$totalarray['nbfield']++;
+			}
+		}
 
-			if (!empty($arrayfields['sale_representative']['checked'])) {
-				// Sales representatives
-				print '<td class="tdoverflowmax125">';
-				if ($obj->socid > 0) {
-					$listsalesrepresentatives = $companystatic->getSalesRepresentatives($user);
-					if ($listsalesrepresentatives < 0) {
-						dol_print_error($db);
-					}
-					$nbofsalesrepresentative = count($listsalesrepresentatives);
-					if ($nbofsalesrepresentative > 6) {
-						// We print only number
-						print $nbofsalesrepresentative;
-					} elseif ($nbofsalesrepresentative > 0) {
-						$userstatic = new User($db);
-						$j = 0;
-						foreach ($listsalesrepresentatives as $val) {
-							$userstatic->id = $val['id'];
-							$userstatic->lastname = $val['lastname'];
-							$userstatic->firstname = $val['firstname'];
-							$userstatic->email = $val['email'];
-							$userstatic->statut = $val['statut'];
-							$userstatic->entity = $val['entity'];
-							$userstatic->photo = $val['photo'];
-							$userstatic->login = $val['login'];
-							$userstatic->office_phone = $val['office_phone'];
-							$userstatic->office_fax = $val['office_fax'];
-							$userstatic->user_mobile = $val['user_mobile'];
-							$userstatic->job = $val['job'];
-							$userstatic->gender = $val['gender'];
-							//print '<div class="float">':
-							print ($nbofsalesrepresentative < 2) ? $userstatic->getNomUrl(-1, '', 0, 0, 12) : $userstatic->getNomUrl(-2);
-							$j++;
-							if ($j < $nbofsalesrepresentative) {
-								print ' ';
-							}
-							//print '</div>';
+		if (!empty($arrayfields['sale_representative']['checked'])) {
+			// Sales representatives
+			print '<td class="tdoverflowmax125">';
+			if ($obj->socid > 0) {
+				$listsalesrepresentatives = $companystatic->getSalesRepresentatives($user);
+				if ($listsalesrepresentatives < 0) {
+					dol_print_error($db);
+				}
+				$nbofsalesrepresentative = count($listsalesrepresentatives);
+				if ($nbofsalesrepresentative > 6) {
+					// We print only number
+					print $nbofsalesrepresentative;
+				} elseif ($nbofsalesrepresentative > 0) {
+					$userstatic = new User($db);
+					$j = 0;
+					foreach ($listsalesrepresentatives as $val) {
+						$userstatic->id = $val['id'];
+						$userstatic->lastname = $val['lastname'];
+						$userstatic->firstname = $val['firstname'];
+						$userstatic->email = $val['email'];
+						$userstatic->statut = $val['statut'];
+						$userstatic->entity = $val['entity'];
+						$userstatic->photo = $val['photo'];
+						$userstatic->login = $val['login'];
+						$userstatic->office_phone = $val['office_phone'];
+						$userstatic->office_fax = $val['office_fax'];
+						$userstatic->user_mobile = $val['user_mobile'];
+						$userstatic->job = $val['job'];
+						$userstatic->gender = $val['gender'];
+						//print '<div class="float">':
+						print ($nbofsalesrepresentative < 2) ? $userstatic->getNomUrl(-1, '', 0, 0, 12) : $userstatic->getNomUrl(-2);
+						$j++;
+						if ($j < $nbofsalesrepresentative) {
+							print ' ';
 						}
+						//print '</div>';
 					}
-					//else print $langs->trans("NoSalesRepresentativeAffected");
-				} else {
-					print '&nbsp;';
-				}
-				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
 				}
+				//else print $langs->trans("NoSalesRepresentativeAffected");
+			} else {
+				print '&nbsp;';
+			}
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
+		}
 
-			// Total buying or cost price
-			if (!empty($arrayfields['total_pa']['checked'])) {
-				print '<td class="right nowrap">'.price($marginInfo['pa_total']).'</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		// Total buying or cost price
+		if (!empty($arrayfields['total_pa']['checked'])) {
+			print '<td class="right nowrap">'.price($marginInfo['pa_total']).'</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Total margin
-			if (!empty($arrayfields['total_margin']['checked'])) {
-				print '<td class="right nowrap">'.price($marginInfo['total_margin']).'</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
-				if (!$i) {
-					$totalarray['pos'][$totalarray['nbfield']] = 'total_margin';
-				}
-				$totalarray['val']['total_margin'] = $total_margin;
+		}
+		// Total margin
+		if (!empty($arrayfields['total_margin']['checked'])) {
+			print '<td class="right nowrap">'.price($marginInfo['total_margin']).'</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Total margin rate
-			if (!empty($arrayfields['total_margin_rate']['checked'])) {
-				print '<td class="right nowrap">'.(($marginInfo['total_margin_rate'] == '') ? '' : price($marginInfo['total_margin_rate'], null, null, null, null, 2).'%').'</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+			if (!$i) {
+				$totalarray['pos'][$totalarray['nbfield']] = 'total_margin';
 			}
-			// Total mark rate
-			if (!empty($arrayfields['total_mark_rate']['checked'])) {
-				print '<td class="right nowrap">'.(($marginInfo['total_mark_rate'] == '') ? '' : price($marginInfo['total_mark_rate'], null, null, null, null, 2).'%').'</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
-				if (!$i) {
-					$totalarray['pos'][$totalarray['nbfield']] = 'total_mark_rate';
-				}
-				if ($i >= $imaxinloop - 1) {
-					if (!empty($total_ht)) {
-						$totalarray['val']['total_mark_rate'] = price2num($total_margin * 100 / $total_ht, 'MT');
-					} else {
-						$totalarray['val']['total_mark_rate'] = '';
-					}
+			$totalarray['val']['total_margin'] = $total_margin;
+		}
+		// Total margin rate
+		if (!empty($arrayfields['total_margin_rate']['checked'])) {
+			print '<td class="right nowrap">'.(($marginInfo['total_margin_rate'] == '') ? '' : price($marginInfo['total_margin_rate'], null, null, null, null, 2).'%').'</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
+			}
+		}
+		// Total mark rate
+		if (!empty($arrayfields['total_mark_rate']['checked'])) {
+			print '<td class="right nowrap">'.(($marginInfo['total_mark_rate'] == '') ? '' : price($marginInfo['total_mark_rate'], null, null, null, null, 2).'%').'</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
+			}
+			if (!$i) {
+				$totalarray['pos'][$totalarray['nbfield']] = 'total_mark_rate';
+			}
+			if ($i >= $imaxinloop - 1) {
+				if (!empty($total_ht)) {
+					$totalarray['val']['total_mark_rate'] = price2num($total_margin * 100 / $total_ht, 'MT');
+				} else {
+					$totalarray['val']['total_mark_rate'] = '';
 				}
 			}
+		}
 
-			// Extra fields
-			include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php';
-			// Fields from hook
-			$parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray);
-			$reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
-			print $hookmanager->resPrint;
-			// Date creation
-			if (!empty($arrayfields['p.datec']['checked'])) {
-				print '<td align="center" class="nowrap">';
-				print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser');
-				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		// Extra fields
+		include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php';
+		// Fields from hook
+		$parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray);
+		$reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
+		print $hookmanager->resPrint;
+		// Date creation
+		if (!empty($arrayfields['p.datec']['checked'])) {
+			print '<td align="center" class="nowrap">';
+			print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser');
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Date modification
-			if (!empty($arrayfields['p.tms']['checked'])) {
-				print '<td align="center" class="nowrap">';
-				print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser');
-				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		}
+		// Date modification
+		if (!empty($arrayfields['p.tms']['checked'])) {
+			print '<td align="center" class="nowrap">';
+			print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser');
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Date cloture
-			if (!empty($arrayfields['p.date_cloture']['checked'])) {
-				print '<td align="center" class="nowrap">';
-				print dol_print_date($db->jdate($obj->date_cloture), 'dayhour', 'tzuser');
-				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		}
+		// Date cloture
+		if (!empty($arrayfields['p.date_cloture']['checked'])) {
+			print '<td align="center" class="nowrap">';
+			print dol_print_date($db->jdate($obj->date_cloture), 'dayhour', 'tzuser');
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Note public
-			if (!empty($arrayfields['p.note_public']['checked'])) {
-				print '<td class="center">';
-				print dol_string_nohtmltag($obj->note_public);
-				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		}
+		// Note public
+		if (!empty($arrayfields['p.note_public']['checked'])) {
+			print '<td class="center">';
+			print dol_string_nohtmltag($obj->note_public);
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Note private
-			if (!empty($arrayfields['p.note_private']['checked'])) {
-				print '<td class="center">';
-				print dol_string_nohtmltag($obj->note_private);
-				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		}
+		// Note private
+		if (!empty($arrayfields['p.note_private']['checked'])) {
+			print '<td class="center">';
+			print dol_string_nohtmltag($obj->note_private);
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Status
-			if (!empty($arrayfields['p.fk_statut']['checked'])) {
-				print '<td class="nowrap center">'.$objectstatic->getLibStatut(5).'</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		}
+		// Status
+		if (!empty($arrayfields['p.fk_statut']['checked'])) {
+			print '<td class="nowrap center">'.$objectstatic->getLibStatut(5).'</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-			// Action column
-			if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
-				print '<td class="nowrap" align="center">';
-				if ($massactionbutton || $massaction) {   // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
-					$selected = 0;
-					if (in_array($obj->rowid, $arrayofselected)) {
-						$selected = 1;
-					}
-					print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected ? ' checked="checked"' : '').'>';
-				}
-				print '</td>';
-				if (!$i) {
-					$totalarray['nbfield']++;
-				}
+		}
+		// Action column
+		if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
+			print '<td class="nowrap" align="center">';
+			if ($massactionbutton || $massaction) {   // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
+				$selected = 0;
+				if (in_array($obj->rowid, $arrayofselected)) {
+					$selected = 1;
+				}
+				print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected ? ' checked="checked"' : '').'>';
+			}
+			print '</td>';
+			if (!$i) {
+				$totalarray['nbfield']++;
 			}
-
-
-			print '</tr>'."\n";
 		}
 
-		$i++;
+
+		print '</tr>'."\n";
 	}
 
-	// Show total line
-	include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php';
+	$i++;
+}
 
-	// If no record found
-	if ($num == 0) {
-		$colspan = 1;
-		foreach ($arrayfields as $key => $val) {
-			if (!empty($val['checked'])) {
-				$colspan++;
-			}
+// Show total line
+include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php';
+
+// If no record found
+if ($num == 0) {
+	$colspan = 1;
+	foreach ($arrayfields as $key => $val) {
+		if (!empty($val['checked'])) {
+			$colspan++;
 		}
-		print '<tr><td colspan="'.$colspan.'"><span class="opacitymedium">'.$langs->trans("NoRecordFound").'</span></td></tr>';
 	}
+	print '<tr><td colspan="'.$colspan.'"><span class="opacitymedium">'.$langs->trans("NoRecordFound").'</span></td></tr>';
+}
 
-	$db->free($resql);
+$db->free($resql);
 
-	$parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql);
-	$reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
-	print $hookmanager->resPrint;
+$parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql);
+$reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
+print $hookmanager->resPrint;
 
-	print '</table>'."\n";
-	print '</div>'."\n";
+print '</table>'."\n";
+print '</div>'."\n";
 
-	print '</form>'."\n";
+print '</form>'."\n";
 
-	if (in_array('builddoc', array_keys($arrayofmassactions)) && ($nbtotalofrecords === '' || $nbtotalofrecords)) {
-		$hidegeneratedfilelistifempty = 1;
-		if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) {
-			$hidegeneratedfilelistifempty = 0;
-		}
+if (in_array('builddoc', array_keys($arrayofmassactions)) && ($nbtotalofrecords === '' || $nbtotalofrecords)) {
+	$hidegeneratedfilelistifempty = 1;
+	if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) {
+		$hidegeneratedfilelistifempty = 0;
+	}
 
-		require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
-		$formfile = new FormFile($db);
+	require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
+	$formfile = new FormFile($db);
 
-		// Show list of available documents
-		$urlsource = $_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder;
-		$urlsource .= str_replace('&amp;', '&', $param);
+	// Show list of available documents
+	$urlsource = $_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder;
+	$urlsource .= str_replace('&amp;', '&', $param);
 
-		$filedir = $diroutputmassaction;
-		$genallowed = $permissiontoread;
-		$delallowed = $permissiontoadd;
+	$filedir = $diroutputmassaction;
+	$genallowed = $permissiontoread;
+	$delallowed = $permissiontoadd;
 
-		print $formfile->showdocuments('massfilesarea_proposals', '', $filedir, $urlsource, 0, $delallowed, '', 1, 1, 0, 48, 1, $param, $title, '', '', '', null, $hidegeneratedfilelistifempty);
-	}
+	print $formfile->showdocuments('massfilesarea_proposals', '', $filedir, $urlsource, 0, $delallowed, '', 1, 1, 0, 48, 1, $param, $title, '', '', '', null, $hidegeneratedfilelistifempty);
+}
 
-	// End of page
-	llxFooter();
-	$db->close();
+// End of page
+llxFooter();
+$db->close();

+ 1 - 1
htdocs/commande/list_det.php

@@ -860,7 +860,7 @@ if ($resql) {
 	include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 
 	// Add $param from hooks
-	$parameters = array();
+	$parameters = array('param' => &$param);
 	$reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 	$param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/compta/bank/list.php

@@ -341,7 +341,7 @@ if ($show_files) {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/compta/cashcontrol/cashcontrol_list.php

@@ -371,7 +371,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/compta/facture/invoicetemplate_list.php

@@ -518,7 +518,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/compta/facture/list.php

@@ -1164,7 +1164,7 @@ if (!empty($search_fac_rec_source_title)) {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/eventorganization/conferenceorbooth_list.php

@@ -704,7 +704,7 @@ foreach ($search as $key => $val) {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/eventorganization/conferenceorboothattendee_list.php

@@ -716,7 +716,7 @@ $param .= $withProjectUrl;
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/expedition/list.php

@@ -579,7 +579,7 @@ if ($optioncss != '') {
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/fichinter/list.php

@@ -436,7 +436,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/fourn/commande/list.php

@@ -1177,7 +1177,7 @@ if ($resql) {
 	// Add $param from extra fields
 	include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 
-	$parameters = array();
+	$parameters = array('param' => &$param);
 	$reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 	$param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/fourn/facture/list-rec.php

@@ -512,7 +512,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/fourn/facture/list.php

@@ -913,7 +913,7 @@ if ($search_type_thirdparty != '' && $search_type_thirdparty > 0) {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/hrm/evaluation_list.php

@@ -415,7 +415,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/hrm/job_list.php

@@ -392,7 +392,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/hrm/position.php

@@ -468,7 +468,7 @@ if ($job->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'
 	// Add $param from extra fields
 	include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_list_search_param.tpl.php';
 	// Add $param from hooks
-	$parameters = array();
+	$parameters = array('param' => &$param);
 	$reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 	$param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/hrm/position_list.php

@@ -404,7 +404,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/hrm/skill_list.php

@@ -402,7 +402,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/intracommreport/list.php

@@ -354,7 +354,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/knowledgemanagement/knowledgerecord_list.php

@@ -430,7 +430,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/loan/list.php

@@ -251,7 +251,7 @@ if ($search_amount) {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/modulebuilder/template/myobject_list.php

@@ -480,7 +480,7 @@ foreach ($search as $key => $val) {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/mrp/mo_list.php

@@ -400,7 +400,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/partnership/partnership_list.php

@@ -631,7 +631,7 @@ if ($search_filter && $search_filter != '-1') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/product/inventory/list.php

@@ -412,7 +412,7 @@ foreach ($searchCategoryProductList as $searchCategoryProduct) {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/product/list.php

@@ -817,7 +817,7 @@ if ($search_finished) {
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/product/stats/facture.php

@@ -284,7 +284,7 @@ if ($id > 0 || !empty($ref)) {
 				// Add $param from extra fields
 				include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 				// Add $param from hooks
-				$parameters = array();
+				$parameters = array('param' => &$param);
 				$reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 				$option .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/product/stock/list.php

@@ -434,7 +434,7 @@ foreach ($search as $key => $val) {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/product/stock/movement_list.php

@@ -1054,7 +1054,7 @@ if ($search_fk_project != '' && $search_fk_project != '-1') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/product/stock/productlot_list.php

@@ -397,7 +397,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/product/stock/stocktransfer/stocktransfer_list.php

@@ -392,7 +392,7 @@ foreach ($search as $key => $val) {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 21 - 21
htdocs/projet/list.php

@@ -809,6 +809,12 @@ if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
 if ($limit > 0 && $limit != $conf->liste_limit) {
 	$param .= '&limit='.((int) $limit);
 }
+if ($optioncss != '') {
+	$param .= '&optioncss='.urlencode($optioncss);
+}
+if ($socid) {
+	$param .= '&socid='.urlencode($socid);
+}
 if ($search_all != '') {
 	$param .= '&search_all='.urlencode($search_all);
 }
@@ -926,9 +932,6 @@ if ($search_date_modif_endday) {
 if ($search_date_modif_end) {
 	$param .= '&search_date_modif_end=' . urlencode($search_date_modif_end);
 }
-if ($socid) {
-	$param .= '&socid='.urlencode($socid);
-}
 if (!empty($search_category_array)) {
 	foreach ($search_category_array as $tmpval) {
 		$param .= '&search_categegory_project_list[]='.urlencode($tmpval);
@@ -1000,9 +1003,6 @@ if ($search_login) {
 if ($search_import_key) {
 	$param .= '&search_import_key='.urlencode($search_import_key);
 }
-if ($optioncss != '') {
-	$param .= '&optioncss='.urlencode($optioncss);
-}
 foreach ($searchCategoryCustomerList as $searchCategoryCustomer) {
 	$param .= "&search_category_customer_list[]=".urlencode($searchCategoryCustomer);
 }
@@ -1010,7 +1010,7 @@ foreach ($searchCategoryCustomerList as $searchCategoryCustomer) {
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 
@@ -1216,10 +1216,10 @@ if (!empty($arrayfields['commercial']['checked'])) {
 if (!empty($arrayfields['p.dateo']['checked'])) {
 	print '<td class="liste_titre center nowraponall">';
 	/*if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) {
-		print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="search_sday" value="'.dol_escape_htmltag($search_sday).'">';
-	}
-	print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="search_smonth" value="'.dol_escape_htmltag($search_smonth).'">';
-	print $formother->selectyear($search_syear ? $search_syear : -1, 'search_syear', 1, 20, 5, 0, 0, '', 'widthauto valignmiddle');*/
+	 print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="search_sday" value="'.dol_escape_htmltag($search_sday).'">';
+	 }
+	 print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="search_smonth" value="'.dol_escape_htmltag($search_smonth).'">';
+	 print $formother->selectyear($search_syear ? $search_syear : -1, 'search_syear', 1, 20, 5, 0, 0, '', 'widthauto valignmiddle');*/
 	print '<div class="nowrapfordate">';
 	print $form->selectDate($search_date_start_start ? $search_date_start_start : -1, 'search_date_start_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From'));
 	print '</div>';
@@ -1232,10 +1232,10 @@ if (!empty($arrayfields['p.dateo']['checked'])) {
 if (!empty($arrayfields['p.datee']['checked'])) {
 	print '<td class="liste_titre center nowraponall">';
 	/*if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) {
-		print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="search_eday" value="'.dol_escape_htmltag($search_eday).'">';
-	}
-	print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="search_emonth" value="'.dol_escape_htmltag($search_emonth).'">';
-	print $formother->selectyear($search_eyear ? $search_eyear : -1, 'search_eyear', 1, 20, 5, 0, 0, '', 'widthauto valignmiddle');*/
+	 print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="search_eday" value="'.dol_escape_htmltag($search_eday).'">';
+	 }
+	 print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="search_emonth" value="'.dol_escape_htmltag($search_emonth).'">';
+	 print $formother->selectyear($search_eyear ? $search_eyear : -1, 'search_eyear', 1, 20, 5, 0, 0, '', 'widthauto valignmiddle');*/
 	print '<div class="nowrapfordate">';
 	print $form->selectDate($search_date_end_start ? $search_date_end_start : -1, 'search_date_end_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From'));
 	print '</div>';
@@ -1596,12 +1596,12 @@ while ($i < $imaxinloop) {
 						$stringassignedusers .= $c->getNomUrl(-2, '', 0, '', -1, 0, 'valignmiddle'.($ifisrt ? '' : ' notfirst'));
 					}
 					/*} else {
-						if (get_class($c) == 'User') {
-							$stringassignedusers .= $c->getNomUrl(2, '', 0, 0, 24, 1, '', 'valignmiddle'.($ifisrt ? '' : ' notfirst'));
-						} else {
-							$stringassignedusers .= $c->getNomUrl(2, '', 0, '', -1, 0, 'valignmiddle'.($ifisrt ? '' : ' notfirst'));
-						}
-					}*/
+					 if (get_class($c) == 'User') {
+					 $stringassignedusers .= $c->getNomUrl(2, '', 0, 0, 24, 1, '', 'valignmiddle'.($ifisrt ? '' : ' notfirst'));
+					 } else {
+					 $stringassignedusers .= $c->getNomUrl(2, '', 0, '', -1, 0, 'valignmiddle'.($ifisrt ? '' : ' notfirst'));
+					 }
+					 }*/
 					$ifisrt = 0;
 				}
 			}

+ 1 - 1
htdocs/projet/tasks/list.php

@@ -704,7 +704,7 @@ foreach ($searchCategoryCustomerList as $searchCategoryCustomer) {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/projet/tasks/time.php

@@ -1380,7 +1380,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser
 			$param .= '&withproject=' . urlencode($withproject);
 		}
 		// Add $param from hooks
-		$parameters = array();
+		$parameters = array('param' => &$param);
 		$reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 		$param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/recruitment/recruitmentcandidature_list.php

@@ -527,7 +527,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/recruitment/recruitmentjobposition_list.php

@@ -372,7 +372,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/salaries/list.php

@@ -401,7 +401,7 @@ if (!empty($search_date_end_to)) {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/societe/list.php

@@ -1040,7 +1040,7 @@ if ($search_date_modif_end) {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/ticket/list.php

@@ -681,7 +681,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 if ($socid > 0) {

+ 1 - 1
htdocs/user/group/list.php

@@ -248,7 +248,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/variants/list.php

@@ -425,7 +425,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/webhook/target_list.php

@@ -433,7 +433,7 @@ if ($optioncss != '') {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;
 

+ 1 - 1
htdocs/workstation/workstation_list.php

@@ -410,7 +410,7 @@ foreach ($search as $key => $val) {
 // Add $param from extra fields
 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
 // Add $param from hooks
-$parameters = array();
+$parameters = array('param' => &$param);
 $reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
 $param .= $hookmanager->resPrint;