From 6329344df267879a137bf8ab2cabedb84a437139 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 22 Oct 2012 09:15:08 +0200 Subject: [PATCH 1/5] Fix: broken features Fix: use entity O for all entities --- htdocs/core/lib/admin.lib.php | 2 +- htdocs/install/mysql/migration/3.2.0-3.3.0.sql | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php index eaa173eb6fe..b82387310b7 100644 --- a/htdocs/core/lib/admin.lib.php +++ b/htdocs/core/lib/admin.lib.php @@ -254,7 +254,7 @@ function run_sql($sqlfile,$silent=1,$entity='',$usesavepoint=1,$handler='',$oker dol_syslog('Admin.lib::run_sql Request '.($i+1).' sql='.$newsql, LOG_DEBUG); // Replace for encrypt data - if (preg_match_all('/__ENCRYPT\(\'([A-Za-z0-9_]+)\'\)__/i',$newsql,$reg)) + if (preg_match_all('/__ENCRYPT\(\'([A-Za-z0-9_\"\[\]]+)\'\)__/i',$newsql,$reg)) { $num=count($reg[0]); diff --git a/htdocs/install/mysql/migration/3.2.0-3.3.0.sql b/htdocs/install/mysql/migration/3.2.0-3.3.0.sql index fa1989522c9..0ad962745b5 100755 --- a/htdocs/install/mysql/migration/3.2.0-3.3.0.sql +++ b/htdocs/install/mysql/migration/3.2.0-3.3.0.sql @@ -761,7 +761,8 @@ UPDATE llx_product p SET p.stock= (SELECT SUM(ps.reel) FROM llx_product_stock ps ALTER TABLE llx_user ADD COLUMN job varchar(128) AFTER firstname; -INSERT INTO llx_const(name, entity, value) SELECT 'SYSLOG_HANDLERS', 1, '["mod_syslog_file"]' FROM llx_const WHERE name = 'SYSLOG_FILE_ON' and value = '1'; +-- Use entity 0 for all entities +INSERT INTO llx_const(name, entity, value) SELECT __ENCRYPT('SYSLOG_HANDLERS')__, 0, __ENCRYPT('["mod_syslog_file"]')__ FROM llx_const WHERE __DECRYPT('name')__ = 'SYSLOG_FILE_ON' AND __DECRYPT('value')__ = '1'; -- New Imports From 864f03837063d8608a6049699b7bcbac3c66549c Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 22 Oct 2012 09:24:27 +0200 Subject: [PATCH 2/5] Fix: missing "visible" field --- htdocs/install/mysql/migration/3.2.0-3.3.0.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/install/mysql/migration/3.2.0-3.3.0.sql b/htdocs/install/mysql/migration/3.2.0-3.3.0.sql index 0ad962745b5..0600ddfe9a7 100755 --- a/htdocs/install/mysql/migration/3.2.0-3.3.0.sql +++ b/htdocs/install/mysql/migration/3.2.0-3.3.0.sql @@ -762,7 +762,7 @@ ALTER TABLE llx_user ADD COLUMN job varchar(128) AFTER firstname; -- Use entity 0 for all entities -INSERT INTO llx_const(name, entity, value) SELECT __ENCRYPT('SYSLOG_HANDLERS')__, 0, __ENCRYPT('["mod_syslog_file"]')__ FROM llx_const WHERE __DECRYPT('name')__ = 'SYSLOG_FILE_ON' AND __DECRYPT('value')__ = '1'; +INSERT INTO llx_const(name, value, visible, entity) SELECT __ENCRYPT('SYSLOG_HANDLERS')__, __ENCRYPT('["mod_syslog_file"]')__, 0, 0 FROM llx_const WHERE __DECRYPT('name')__ = 'SYSLOG_FILE_ON' AND __DECRYPT('value')__ = '1'; -- New Imports From f89e3238eec39807b0f5abb114b32974827cbfaa Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sat, 20 Oct 2012 10:53:44 +0200 Subject: [PATCH 3/5] New: try to use hooks for customizing lists --- htdocs/comm/list.php | 2 +- htdocs/comm/prospect/list.php | 35 +++++++++++++++++++++++++++++------ htdocs/fourn/liste.php | 35 ++++++++++++++++++++++++++++++----- 3 files changed, 60 insertions(+), 12 deletions(-) diff --git a/htdocs/comm/list.php b/htdocs/comm/list.php index eebb066beed..73fb5e06c76 100755 --- a/htdocs/comm/list.php +++ b/htdocs/comm/list.php @@ -149,7 +149,7 @@ if ($result) $i = 0; - print '
'."\n"; + print ''."\n"; // Filter on categories $moreforfilter=''; diff --git a/htdocs/comm/prospect/list.php b/htdocs/comm/prospect/list.php index caac721333c..f30fdcc943d 100755 --- a/htdocs/comm/prospect/list.php +++ b/htdocs/comm/prospect/list.php @@ -145,9 +145,20 @@ if (!$user->rights->societe->client->voir && !$socid) $search_sale = $user->id; // List of avaible states; we'll need that for each lines (quick changing prospect states) and for search bar (filter by prospect state) $sts = array(-1,0,1,2,3); + +// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array +include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; +$hookmanager=new HookManager($db); +$hookmanager->initHooks(array('prospectlist')); + + /* * Actions */ + +$parameters=array(); +$reshook=$hookmanager->executeHooks('doActions',$parameters); // Note that $action and $object may have been modified by some hooks + if ($action == 'cstc') { $sql = "UPDATE ".MAIN_DB_PREFIX."societe SET fk_stcomm = ".$_GET["pstcomm"]; @@ -255,9 +266,7 @@ if ($resql) // Print the search-by-sale and search-by-categ filters - print ''; - - print ''; + print ''; // Filter on categories $moreforfilter=''; @@ -275,12 +284,13 @@ if ($resql) } if ($moreforfilter) { - print ''; - print ''; + print ''; } + print '
'; + print '
'; print $moreforfilter; - print '
'; + print ''; print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,'',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.ville","",$param,"",$sortfield,$sortorder); @@ -290,6 +300,10 @@ if ($resql) print_liste_field_titre($langs->trans("StatusProsp"),$_SERVER["PHP_SELF"],"s.fk_stcomm","",$param,'align="center"',$sortfield,$sortorder); print ''; print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"s.status","",$param,'align="right"',$sortfield,$sortorder); + + $parameters=array(); + $formconfirm=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook + print "\n"; print ''; @@ -348,6 +362,9 @@ if ($resql) print ''; print ''; + $parameters=array(); + $formconfirm=$hookmanager->executeHooks('printFieldListOption',$parameters); // Note that $action and $object may have been modified by hook + print "\n"; $i = 0; @@ -399,6 +416,9 @@ if ($resql) print $prospectstatic->getLibStatut(3); print ''; + $parameters=array('obj' => $obj); + $formconfirm=$hookmanager->executeHooks('printFieldListValue',$parameters); // Note that $action and $object may have been modified by hook + print "\n"; $i++; } @@ -410,6 +430,9 @@ if ($resql) print ""; $db->free($resql); + + $parameters=array('sql' => $sql); + $formconfirm=$hookmanager->executeHooks('printFieldListFooter',$parameters); // Note that $action and $object may have been modified by hook } else { diff --git a/htdocs/fourn/liste.php b/htdocs/fourn/liste.php index 7589e021e6e..f371931c374 100644 --- a/htdocs/fourn/liste.php +++ b/htdocs/fourn/liste.php @@ -55,6 +55,17 @@ $pagenext = $page + 1; if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="nom"; +// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array +include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; +$hookmanager=new HookManager($db); +$hookmanager->initHooks(array('supplierlist')); + +/* + * Actions + */ + +$parameters=array(); +$reshook=$hookmanager->executeHooks('doActions',$parameters); // Note that $action and $object may have been modified by some hooks /* @@ -114,8 +125,7 @@ if ($resql) print_barre_liste($langs->trans("ListOfSuppliers"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords); - print ''; - print '
 
'; + print ''."\n"; // Filter on categories $moreforfilter=''; @@ -127,12 +137,13 @@ if ($resql) } if ($moreforfilter) { - print ''; - print ''; + print ''; } + print '
'; + print '
'; print $moreforfilter; - print '
'; + print ''; print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,'valign="middle"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.ville","",$param,'valign="middle"',$sortfield,$sortorder); @@ -140,6 +151,10 @@ if ($resql) print_liste_field_titre($langs->trans("AccountancyCode"),$_SERVER["PHP_SELF"],"s.code_compta_fournisseur","",$param,'align="left"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"s.datec","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"s.status","",$param,'align="right"',$sortfield,$sortorder); + + $parameters=array(); + $formconfirm=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook + print "\n"; print ''; @@ -162,6 +177,9 @@ if ($resql) print ''; + $parameters=array(); + $formconfirm=$hookmanager->executeHooks('printFieldListOption',$parameters); // Note that $action and $object may have been modified by hook + print ''; $var=True; @@ -185,12 +203,19 @@ if ($resql) print ''; print ''; + + $parameters=array('obj' => $obj); + $formconfirm=$hookmanager->executeHooks('printFieldListValue',$parameters); // Note that $action and $object may have been modified by hook + print "\n"; $i++; } print "
'; print dol_print_date($db->jdate($obj->datec),'day').''.$thirdpartystatic->getLibStatut(3).'
\n"; print "\n"; $db->free($resql); + + $parameters=array('sql' => $sql); + $formconfirm=$hookmanager->executeHooks('printFieldListFooter',$parameters); // Note that $action and $object may have been modified by hook } else { From a24034348253b2d2536cf07897acff797e8bce74 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 22 Oct 2012 11:05:55 +0200 Subject: [PATCH 4/5] Fix: add possibility to filter with zipcode (very important) --- htdocs/comm/list.php | 11 ++++++++++- htdocs/comm/prospect/list.php | 12 ++++++++++-- htdocs/fourn/liste.php | 10 ++++++++-- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/htdocs/comm/list.php b/htdocs/comm/list.php index 73fb5e06c76..7f461282359 100755 --- a/htdocs/comm/list.php +++ b/htdocs/comm/list.php @@ -47,6 +47,7 @@ if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="s.nom"; $search_nom=GETPOST("search_nom"); +$search_zipcode=GETPOST("search_zipcode"); $search_ville=GETPOST("search_ville"); $search_code=GETPOST("search_code"); $search_compta=GETPOST("search_compta"); @@ -77,6 +78,7 @@ if (GETPOST("button_removefilter_x")) $search_sale=''; $socname=""; $search_nom=""; + $search_zipcode=""; $search_ville=""; $search_idprof1=''; $search_idprof2=''; @@ -96,7 +98,7 @@ $thirdpartystatic=new Societe($db); $help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; llxHeader('',$langs->trans("ThirdParty"),$help_url); -$sql = "SELECT s.rowid, s.nom as name, s.client, s.ville, st.libelle as stcomm, s.prefix_comm, s.code_client, s.code_compta, s.status as status,"; +$sql = "SELECT s.rowid, s.nom as name, s.client, s.cp as zip, s.ville, st.libelle as stcomm, s.prefix_comm, s.code_client, s.code_compta, s.status as status,"; $sql.= " s.datec, s.datea, s.canvas"; // We'll need these fields in order to filter by sale (including the case where the user can only see his prospects) if ($search_sale) $sql .= ", sc.fk_soc, sc.fk_user"; @@ -116,6 +118,7 @@ if ($catid == -2) $sql.= " AND cs.fk_categorie IS NULL"; if ($search_categ > 0) $sql.= " AND cs.fk_categorie = ".$search_categ; if ($search_categ == -2) $sql.= " AND cs.fk_categorie IS NULL"; if ($search_nom) $sql.= " AND s.nom LIKE '%".$db->escape(strtolower($search_nom))."%'"; +if ($search_zipcode) $sql.= " AND s.cp LIKE '%".$db->escape(strtolower($search_zipcode))."%'"; if ($search_ville) $sql.= " AND s.ville LIKE '%".$db->escape(strtolower($search_ville))."%'"; if ($search_code) $sql.= " AND s.code_client LIKE '%".$db->escape(strtolower($search_code))."%'"; if ($search_compta) $sql.= " AND s.code_compta LIKE '%".$db->escape($search_compta)."%'"; @@ -176,6 +179,7 @@ if ($result) print ''; print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Zip"),$_SERVER["PHP_SELF"],"s.cp","",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.ville","",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("AccountancyCode"),$_SERVER["PHP_SELF"],"s.code_compta","",$param,'align="left"',$sortfield,$sortorder); @@ -193,6 +197,10 @@ if ($result) print ''; print ''; + print ''; + print ''; + print ''; + print ''; print ''; print ''; @@ -234,6 +242,7 @@ if ($result) $thirdpartystatic->status=$obj->status; print $thirdpartystatic->getNomUrl(1); print ''; + print ''.$obj->zip.''; print ''.$obj->ville.''; print ''.$obj->code_client.''; print ''.$obj->code_compta.''; diff --git a/htdocs/comm/prospect/list.php b/htdocs/comm/prospect/list.php index f30fdcc943d..45efe02addd 100755 --- a/htdocs/comm/prospect/list.php +++ b/htdocs/comm/prospect/list.php @@ -40,6 +40,7 @@ $action = GETPOST('action','alpha'); $socname = GETPOST("socname",'alpha'); $stcomm = GETPOST("stcomm",'int'); $search_nom = GETPOST("search_nom"); +$search_zipcode = GETPOST("search_zipcode"); $search_ville = GETPOST("search_ville"); $search_departement = GETPOST("search_departement"); $search_datec = GETPOST("search_datec"); @@ -173,7 +174,7 @@ if ($action == 'cstc') $formother=new FormOther($db); -$sql = "SELECT s.rowid, s.nom, s.ville, s.datec, s.datea, s.status as status,"; +$sql = "SELECT s.rowid, s.nom, s.cp as zip, s.ville, s.datec, s.datea, s.status as status,"; $sql.= " st.libelle as stcomm, s.prefix_comm, s.fk_stcomm, s.fk_prospectlevel,"; $sql.= " d.nom as departement"; // Updated by Matelli @@ -194,6 +195,7 @@ if ($catid == -2) $sql.= " AND cs.fk_categorie IS NULL"; if ($search_categ > 0) $sql.= " AND cs.fk_categorie = ".$search_categ; if ($search_categ == -2) $sql.= " AND cs.fk_categorie IS NULL"; if ($search_nom) $sql .= " AND s.nom LIKE '%".$db->escape(strtolower($search_nom))."%'"; +if ($search_zipcode) $sql .= " AND s.cp LIKE '%".$db->escape(strtolower($search_zipcode))."%'"; if ($search_ville) $sql .= " AND s.ville LIKE '%".$db->escape(strtolower($search_ville))."%'"; if ($search_departement) $sql .= " AND d.nom LIKE '%".$db->escape(strtolower($search_departement))."%'"; if ($search_datec) $sql .= " AND s.datec LIKE '%".$db->escape($search_datec)."%'"; @@ -293,6 +295,7 @@ if ($resql) print ''; print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,'',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Zip"),$_SERVER["PHP_SELF"],"s.cp","",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.ville","",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("State"),$_SERVER["PHP_SELF"],"s.fk_departement","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"s.datec","",$param,'align="center"',$sortfield,$sortorder); @@ -309,7 +312,11 @@ if ($resql) print ''; print ''; print ''; - print ''; + print ''; + print ''; + print ''; + print ''; + print ''; print ''; print ''; print ''; @@ -386,6 +393,7 @@ if ($resql) $prospectstatic->status=$obj->status; print $prospectstatic->getNomUrl(1,'prospect'); print ''; + print "".$obj->zip." "; print "".$obj->ville." "; print ''.$obj->departement.''; // Creation date diff --git a/htdocs/fourn/liste.php b/htdocs/fourn/liste.php index f371931c374..6ed18f2392c 100644 --- a/htdocs/fourn/liste.php +++ b/htdocs/fourn/liste.php @@ -33,6 +33,7 @@ $langs->load("companies"); $socname = GETPOST("socname"); $search_nom = GETPOST("search_nom"); +$search_zipcode = GETPOST("search_zipcode"); $search_ville = GETPOST("search_ville"); $search_code_fournisseur = GETPOST("search_code_fournisseur"); $search_compta_fournisseur = GETPOST("search_compta_fournisseur"); @@ -78,7 +79,7 @@ $thirdpartystatic=new Societe($db); $help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; llxHeader('',$langs->trans("ThirdParty"),$help_url); -$sql = "SELECT s.rowid as socid, s.nom, s.ville, s.datec, s.datea, st.libelle as stcomm, s.prefix_comm, s.status as status, "; +$sql = "SELECT s.rowid as socid, s.nom, s.cp as zip, s.ville, s.datec, s.datea, st.libelle as stcomm, s.prefix_comm, s.status as status, "; $sql.= "code_fournisseur, code_compta_fournisseur"; if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user "; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; @@ -96,6 +97,7 @@ if ($socname) $sortorder = "ASC"; } if ($search_nom) $sql .= " AND s.nom LIKE '%".$db->escape($search_nom)."%'"; +if ($search_zipcode) $sql .= " AND s.cp LIKE '%".$db->escape($search_zipcode)."%'"; if ($search_ville) $sql .= " AND s.ville LIKE '%".$db->escape($search_ville)."%'"; if ($search_code_fournisseur) $sql .= " AND s.code_fournisseur LIKE '%".$db->escape($search_code_fournisseur)."%'"; if ($search_compta_fournisseur) $sql .= " AND s.code_compta_fournisseur LIKE '%".$db->escape($search_compta_fournisseur)."%'"; @@ -146,6 +148,7 @@ if ($resql) print ''; print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,'valign="middle"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Zip"),$_SERVER["PHP_SELF"],"s.cp","",$param,'valign="middle"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.ville","",$param,'valign="middle"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("SupplierCode"),$_SERVER["PHP_SELF"],"s.code_fournisseur","",$param,'align="left"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("AccountancyCode"),$_SERVER["PHP_SELF"],"s.code_compta_fournisseur","",$param,'align="left"',$sortfield,$sortorder); @@ -161,6 +164,8 @@ if ($resql) print ''; + print ''; + print ''; print ''; @@ -197,7 +202,8 @@ if ($resql) print ''; print $thirdpartystatic->getNomUrl(1,'supplier'); print "\n"; - print "".$obj->ville."\n"; + print ''.$obj->zip.''."\n"; + print ''.$obj->ville.''."\n"; print ''.$obj->code_fournisseur.' '; print ''.$obj->code_compta_fournisseur.' '; print ''; From 2f15857dab97822139d284b7a6d95b4fcfc5bef0 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 22 Oct 2012 11:20:59 +0200 Subject: [PATCH 5/5] Fix: add mobile phone in contact list TODO: Fax is obsolete and not used by several companies --- htdocs/core/lib/company.lib.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index cace19d0c88..004750dc192 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -527,8 +527,11 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='') print "\n".''."\n"; print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; // TODO Fax is obsolete, not used by several companies + print ''; print ""; if (! empty($conf->agenda->enabled) && $user->rights->agenda->myactions->create) { @@ -536,7 +539,7 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='') } print ""; - $sql = "SELECT p.rowid, p.name, p.firstname, p.fk_pays, p.poste, p.phone, p.fax, p.email, p.note "; + $sql = "SELECT p.rowid, p.name, p.firstname, p.fk_pays, p.poste, p.phone, p.phone_mobile, p.fax, p.email, p.note "; $sql .= " FROM ".MAIN_DB_PREFIX."socpeople as p"; $sql .= " WHERE p.fk_soc = ".$object->id; $sql .= " ORDER by p.datec"; @@ -572,7 +575,10 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='') print dol_print_phone($obj->phone,$country_code,$obj->rowid,$object->id,'AC_TEL'); print ''; print ''; + print ''; print '
'.$langs->trans("Name").''.$langs->trans("Poste").''.$langs->trans("Tel").''.$langs->trans("Fax").''.$langs->trans("EMail").''.$langs->trans("Poste").''.$langs->trans("PhonePro").''.$langs->trans("PhoneMobile").''.$langs->trans("Fax").''.$langs->trans("EMail").' 
'; - print dol_print_phone($obj->fax,$country_code,$obj->rowid,$object->id,'AC_FAX'); + print dol_print_phone($obj->phone_mobile,$country_code,$obj->rowid,$object->id,'AC_TEL'); + print ''; + print dol_print_phone($obj->fax,$country_code,$obj->rowid,$object->id,'AC_FAX'); // TODO Fax is obsolete, not used by several companies print ''; print dol_print_email($obj->email,$obj->rowid,$object->id,'AC_EMAIL');