From 59c41105a27b157812a24cfe619e0d529e678c07 Mon Sep 17 00:00:00 2001 From: Lionel VESSILLER Date: Fri, 29 Mar 2019 17:03:23 +0100 Subject: [PATCH 1/4] Fix project and contract fields in fichinter list --- htdocs/fichinter/list.php | 87 +++++++++++++++++++++++++++++++++++---- 1 file changed, 78 insertions(+), 9 deletions(-) diff --git a/htdocs/fichinter/list.php b/htdocs/fichinter/list.php index 5cba3b31c4d..67bfc14c89b 100644 --- a/htdocs/fichinter/list.php +++ b/htdocs/fichinter/list.php @@ -32,9 +32,13 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; +if (!empty($conf->projet->enabled)) require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php'; +if (!empty($conf->contrat->enabled)) require_once DOL_DOCUMENT_ROOT . '/contrat/class/contrat.class.php'; // Load translation files required by the page $langs->loadLangs(array('companies', 'bills', 'interventions')); +if (!empty($conf->projet->enabled)) $langs->load("projects"); +if (!empty($conf->contrat->enabled)) $langs->load("contracts"); $action=GETPOST('action','alpha'); $massaction=GETPOST('massaction','alpha'); @@ -45,6 +49,8 @@ $contextpage=GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'interventi $search_ref=GETPOST('search_ref')?GETPOST('search_ref','alpha'):GETPOST('search_inter','alpha'); $search_company=GETPOST('search_company','alpha'); +$search_projet_ref=GETPOST('search_projet_ref','alpha'); +$search_contrat_ref=GETPOST('search_contrat_ref','alpha'); $search_desc=GETPOST('search_desc','alpha'); $search_status=GETPOST('search_status'); $sall=trim((GETPOST('search_all', 'alphanohtml')!='')?GETPOST('search_all', 'alphanohtml'):GETPOST('sall', 'alphanohtml')); @@ -75,11 +81,11 @@ if (! $sortfield) } $sall=trim((GETPOST('search_all', 'alphanohtml')!='')?GETPOST('search_all', 'alphanohtml'):GETPOST('sall', 'alphanohtml')); -$search_ref=GETPOST('search_ref')?GETPOST('search_ref','alpha'):GETPOST('search_inter','alpha'); -$search_company=GETPOST('search_company','alpha'); -$search_desc=GETPOST('search_desc','alpha'); -$search_status=GETPOST('search_status'); -$optioncss = GETPOST('optioncss','alpha'); +//$search_ref=GETPOST('search_ref')?GETPOST('search_ref','alpha'):GETPOST('search_inter','alpha'); +//$search_company=GETPOST('search_company','alpha'); +//$search_desc=GETPOST('search_desc','alpha'); +//$search_status=GETPOST('search_status'); +//$optioncss = GETPOST('optioncss','alpha'); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $object = new Fichinter($db); @@ -104,8 +110,8 @@ if (! empty($conf->global->FICHINTER_DISABLE_DETAILS)) unset($fieldstosearchall[ $arrayfields=array( 'f.ref'=>array('label'=>'Ref', 'checked'=>1), 's.nom'=>array('label'=>'ThirdParty', 'checked'=>1), - 'f.fk_project'=>array('label'=>'Project', 'checked'=>1), - 'f.fk_contrat'=>array('label'=>'Contract', 'checked'=>1), + 'pr.ref'=>array('label'=>$langs->trans("Project"), 'checked'=>1, 'enabled'=>(empty($conf->projet->enabled)?0:1)), + 'c.ref'=>array('label'=>$langs->trans("Contract"), 'checked'=>1, 'enabled'=>(empty($conf->contrat->enabled)?0:1)), 'f.description'=>array('label'=>'Description', 'checked'=>1), 'f.datec'=>array('label'=>'DateCreation', 'checked'=>0, 'position'=>500), 'f.tms'=>array('label'=>'DateModificationShort', 'checked'=>0, 'position'=>500), @@ -145,8 +151,8 @@ if (empty($reshook)) { $search_ref=""; $search_company=""; - $search_project=""; - $search_contract=""; + $search_projet_ref=""; + $search_contrat_ref=""; $search_desc=""; $search_status=""; $toselect=''; @@ -174,6 +180,12 @@ $form = new Form($db); $formfile = new FormFile($db); $objectstatic=new Fichinter($db); $companystatic=new Societe($db); +if (!empty($conf->projet->enabled)) { + $projetstatic=new Project($db); +} +if (!empty($conf->contrat->enabled)) { + $contratstatic=new Contrat($db); +} $title=$langs->trans("ListOfInterventions"); llxHeader('', $title); @@ -195,6 +207,12 @@ $sql = "SELECT"; $sql.= " f.ref, f.rowid, f.fk_statut, f.description, f.datec as date_creation, f.tms as date_update, f.note_private,"; if (empty($conf->global->FICHINTER_DISABLE_DETAILS) && $atleastonefieldinlines) $sql.= "fd.rowid as lineid, fd.description as descriptiondetail, fd.date as dp, fd.duree,"; $sql.= " s.nom as name, s.rowid as socid, s.client"; +if (!empty($conf->projet->enabled)) { + $sql .= ", pr.rowid as projet_id, pr.ref as projet_ref, pr.title as projet_title"; +} +if (!empty($conf->contrat->enabled)) { + $sql .= ", c.rowid as contrat_id, c.ref as contrat_ref, c.ref_customer as contrat_ref_supplier, c.ref_supplier as contrat_ref_supplier"; +} // Add fields from extrafields foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); // Add fields from hooks @@ -202,6 +220,12 @@ $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."fichinter as f"; +if (!empty($conf->projet->enabled)) { + $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet as pr on f.fk_projet = pr.rowid"; +} +if (!empty($conf->contrat->enabled)) { + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."contrat as c on f.fk_contrat = c.rowid"; +} if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."fichinter_extrafields as ef on (f.rowid = ef.fk_object)"; if (empty($conf->global->FICHINTER_DISABLE_DETAILS) && $atleastonefieldinlines) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."fichinterdet as fd ON fd.fk_fichinter = f.rowid"; if (! $user->rights->societe->client->voir && empty($socid)) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; @@ -214,6 +238,12 @@ if ($search_ref) { if ($search_company) { $sql .= natural_search('s.nom', $search_company); } +if ($search_projet_ref) { + $sql .= natural_search('pr.ref', $search_projet_ref); +} +if ($search_contrat_ref) { + $sql .= natural_search('c.ref', $search_contrat_ref); +} if ($search_desc) { if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) $sql .= natural_search(array('f.description', 'fd.description'), $search_desc); else $sql .= natural_search(array('f.description'), $search_desc); @@ -354,6 +384,18 @@ if ($resql) print ''; print ''; } + if (! empty($arrayfields['pr.ref']['checked'])) + { + print ''; + print ''; + print ''; + } + if (! empty($arrayfields['c.ref']['checked'])) + { + print ''; + print ''; + print ''; + } if (! empty($arrayfields['f.description']['checked'])) { print ''; @@ -412,6 +454,8 @@ if ($resql) print ''; if (! empty($arrayfields['f.ref']['checked'])) print_liste_field_titre($arrayfields['f.ref']['label'], $_SERVER["PHP_SELF"],"f.ref","",$param,'',$sortfield,$sortorder); if (! empty($arrayfields['s.nom']['checked'])) print_liste_field_titre($arrayfields['s.nom']['label'], $_SERVER["PHP_SELF"],"s.nom","",$param,'',$sortfield,$sortorder); + if (! empty($arrayfields['pr.ref']['checked'])) print_liste_field_titre("Project",$_SERVER["PHP_SELF"],"pr.ref","",$param,'',$sortfield,$sortorder); + if (! empty($arrayfields['c.ref']['checked'])) print_liste_field_titre("Contract",$_SERVER["PHP_SELF"],"c.ref","",$param,'',$sortfield,$sortorder); if (! empty($arrayfields['f.description']['checked'])) print_liste_field_titre($arrayfields['f.description']['label'], $_SERVER["PHP_SELF"],"f.description","",$param,'',$sortfield,$sortorder); // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; @@ -488,6 +532,31 @@ if ($resql) print ''; if (! $i) $totalarray['nbfield']++; } + if (! empty($arrayfields['pr.ref']['checked'])) + { + print ''; + $projetstatic->id=$obj->projet_id; + $projetstatic->ref=$obj->projet_ref; + $projetstatic->title=$obj->projet_title; + if ($projetstatic->id > 0) { + print $projetstatic->getNomUrl(1,''); + } + print ''; + if (! $i) $totalarray['nbfield']++; + } + if (! empty($arrayfields['c.ref']['checked'])) + { + print ''; + $contratstatic->id=$obj->contrat_id; + $contratstatic->ref=$obj->contrat_ref; + $contratstatic->ref_customer=$obj->contrat_ref_customer; + $contratstatic->ref_supplier=$obj->contrat_ref_supplier; + if ($contratstatic->id > 0) { + print $contratstatic->getNomUrl(1, ''); + print ''; + } + if (! $i) $totalarray['nbfield']++; + } if (! empty($arrayfields['f.description']['checked'])) { print ''.dol_trunc(dolGetFirstLineOfText($obj->description),48).''; From 48ce60dd17d55522b8c57259e053f1f9bb311a92 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 31 Mar 2019 19:04:28 +0200 Subject: [PATCH 2/4] Update list.php --- htdocs/fichinter/list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/fichinter/list.php b/htdocs/fichinter/list.php index 67bfc14c89b..873ca572217 100644 --- a/htdocs/fichinter/list.php +++ b/htdocs/fichinter/list.php @@ -110,8 +110,8 @@ if (! empty($conf->global->FICHINTER_DISABLE_DETAILS)) unset($fieldstosearchall[ $arrayfields=array( 'f.ref'=>array('label'=>'Ref', 'checked'=>1), 's.nom'=>array('label'=>'ThirdParty', 'checked'=>1), - 'pr.ref'=>array('label'=>$langs->trans("Project"), 'checked'=>1, 'enabled'=>(empty($conf->projet->enabled)?0:1)), - 'c.ref'=>array('label'=>$langs->trans("Contract"), 'checked'=>1, 'enabled'=>(empty($conf->contrat->enabled)?0:1)), + 'pr.ref'=>array('label'=>"Project", 'checked'=>1, 'enabled'=>(empty($conf->projet->enabled)?0:1)), + 'c.ref'=>array('label'=>"Contract", 'checked'=>1, 'enabled'=>(empty($conf->contrat->enabled)?0:1)), 'f.description'=>array('label'=>'Description', 'checked'=>1), 'f.datec'=>array('label'=>'DateCreation', 'checked'=>0, 'position'=>500), 'f.tms'=>array('label'=>'DateModificationShort', 'checked'=>0, 'position'=>500), From b3f81d2c1aa2224b8e2e8c69e524bebbb65d85b7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 31 Mar 2019 19:06:44 +0200 Subject: [PATCH 3/4] Update list.php --- htdocs/fichinter/list.php | 7 ------- 1 file changed, 7 deletions(-) diff --git a/htdocs/fichinter/list.php b/htdocs/fichinter/list.php index 873ca572217..a0e394b3220 100644 --- a/htdocs/fichinter/list.php +++ b/htdocs/fichinter/list.php @@ -80,13 +80,6 @@ if (! $sortfield) $sortfield="f.ref"; } -$sall=trim((GETPOST('search_all', 'alphanohtml')!='')?GETPOST('search_all', 'alphanohtml'):GETPOST('sall', 'alphanohtml')); -//$search_ref=GETPOST('search_ref')?GETPOST('search_ref','alpha'):GETPOST('search_inter','alpha'); -//$search_company=GETPOST('search_company','alpha'); -//$search_desc=GETPOST('search_desc','alpha'); -//$search_status=GETPOST('search_status'); -//$optioncss = GETPOST('optioncss','alpha'); - // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $object = new Fichinter($db); $hookmanager->initHooks(array('interventionlist')); From 24fef25fd81d2d4ee43b970f93163e7f78156b5c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 31 Mar 2019 19:07:25 +0200 Subject: [PATCH 4/4] Update list.php --- htdocs/fichinter/list.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/fichinter/list.php b/htdocs/fichinter/list.php index a0e394b3220..6fef8517ea4 100644 --- a/htdocs/fichinter/list.php +++ b/htdocs/fichinter/list.php @@ -103,15 +103,15 @@ if (! empty($conf->global->FICHINTER_DISABLE_DETAILS)) unset($fieldstosearchall[ $arrayfields=array( 'f.ref'=>array('label'=>'Ref', 'checked'=>1), 's.nom'=>array('label'=>'ThirdParty', 'checked'=>1), - 'pr.ref'=>array('label'=>"Project", 'checked'=>1, 'enabled'=>(empty($conf->projet->enabled)?0:1)), - 'c.ref'=>array('label'=>"Contract", 'checked'=>1, 'enabled'=>(empty($conf->contrat->enabled)?0:1)), + 'pr.ref'=>array('label'=>'Project', 'checked'=>1, 'enabled'=>(empty($conf->projet->enabled)?0:1)), + 'c.ref'=>array('label'=>'Contract', 'checked'=>1, 'enabled'=>(empty($conf->contrat->enabled)?0:1)), 'f.description'=>array('label'=>'Description', 'checked'=>1), 'f.datec'=>array('label'=>'DateCreation', 'checked'=>0, 'position'=>500), 'f.tms'=>array('label'=>'DateModificationShort', 'checked'=>0, 'position'=>500), 'f.fk_statut'=>array('label'=>'Status', 'checked'=>1, 'position'=>1000), - 'fd.description'=>array('label'=>"DescriptionOfLine", 'checked'=>1, 'enabled'=>empty($conf->global->FICHINTER_DISABLE_DETAILS)?1:0), - 'fd.date'=>array('label'=>'DateOfLine', 'checked'=>1, 'enabled'=>empty($conf->global->FICHINTER_DISABLE_DETAILS)?1:0), - 'fd.duree'=>array('label'=>'DurationOfLine', 'checked'=>1, 'enabled'=>empty($conf->global->FICHINTER_DISABLE_DETAILS)?1:0), + 'fd.description'=>array('label'=>"DescriptionOfLine", 'checked'=>1, 'enabled'=>empty($conf->global->FICHINTER_DISABLE_DETAILS)?1:0), + 'fd.date'=>array('label'=>'DateOfLine', 'checked'=>1, 'enabled'=>empty($conf->global->FICHINTER_DISABLE_DETAILS)?1:0), + 'fd.duree'=>array('label'=>'DurationOfLine', 'checked'=>1, 'enabled'=>empty($conf->global->FICHINTER_DISABLE_DETAILS)?1:0), ); // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))