From aea01b32081af59d827708d679cd24f65813452a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20J?= Date: Wed, 7 Nov 2018 17:04:18 +0100 Subject: [PATCH 1/5] NEW Work with new table actioncomm_resources and multiple contact affectation --- htdocs/core/lib/company.lib.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index bcf8bfe14a8..761a2d3790f 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -1359,8 +1359,14 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint= $sql.= " AND a.fk_element = o.rowid AND a.elementtype = 'product'"; if ($filterobj->id) $sql.= " AND a.fk_element = ".$filterobj->id; } - //TODO check how ot work with new table actioncomm_resources and multiple contact affectation - if (is_object($objcon) && $objcon->id) $sql.= " AND a.fk_contact = ".$objcon->id; + + // Work with new table actioncomm_resources and multiple contact affectation. + if (is_object($objcon) && $objcon->id) + { + $sql.= " AND r.element_type = '" . $objcon->table_element . "'" . + " AND r.fk_element = " . $objcon->id; + } + // Condition on actioncode if (! empty($actioncode)) { From 121297b5bdac288840d631e38388659e6822e800 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20J?= Date: Wed, 7 Nov 2018 17:10:51 +0100 Subject: [PATCH 2/5] SQL Join actioncomm_resources --- htdocs/core/lib/company.lib.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 761a2d3790f..42b9f9a3f58 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -1330,6 +1330,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint= $sql.= " FROM ".MAIN_DB_PREFIX."actioncomm as a"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u on u.rowid = a.fk_user_action"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_actioncomm as c ON a.fk_action = c.id"; + $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."actioncomm_resources as r ON a.id = r.fk_actioncomm"; if (is_object($filterobj) && get_class($filterobj) == 'Societe') $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople as sp ON a.fk_contact = sp.rowid"; elseif (is_object($filterobj) && get_class($filterobj) == 'Dolresource') { $sql.= " INNER JOIN ".MAIN_DB_PREFIX."element_resources as er"; From 9a6a3d8df4fc2a8bc76bc69910d6357163281ea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20J?= Date: Mon, 12 Nov 2018 12:20:07 +0100 Subject: [PATCH 3/5] Join llx_actioncomm_resources only if we have a contact object. --- htdocs/core/lib/company.lib.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 42b9f9a3f58..fc34c287a34 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -1330,8 +1330,12 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint= $sql.= " FROM ".MAIN_DB_PREFIX."actioncomm as a"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u on u.rowid = a.fk_user_action"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_actioncomm as c ON a.fk_action = c.id"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."actioncomm_resources as r ON a.id = r.fk_actioncomm"; - if (is_object($filterobj) && get_class($filterobj) == 'Societe') $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople as sp ON a.fk_contact = sp.rowid"; + + if (is_object($objcon) && $objcon->id) { + $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."actioncomm_resources as r ON a.id = r.fk_actioncomm"; + } + + if (is_object($filterobj) && get_class($filterobj) == 'Societe') $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople as sp ON a.fk_contact = sp.rowid"; elseif (is_object($filterobj) && get_class($filterobj) == 'Dolresource') { $sql.= " INNER JOIN ".MAIN_DB_PREFIX."element_resources as er"; $sql.= " ON er.resource_type = 'dolresource'"; From 10dd5652ee56a291bdd653357b0ff786460a32b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20J?= Date: Mon, 12 Nov 2018 12:34:25 +0100 Subject: [PATCH 4/5] Add SELECT DISTINCT to show_actions_done() SQL request --- htdocs/core/lib/company.lib.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index fc34c287a34..0893c0ef0d9 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -1315,7 +1315,8 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint= if (! empty($conf->agenda->enabled)) { // Recherche histo sur actioncomm - $sql = "SELECT a.id, a.label,"; + // @since PR #9972, add DISTINCT. + $sql = "SELECT DISTINCT a.id, a.label,"; $sql.= " a.datep as dp,"; $sql.= " a.datep2 as dp2,"; $sql.= " a.note, a.percent,"; From 9ac984af76b1b7da3a49f65d31cb4ff204072001 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 1 Dec 2018 16:15:34 +0100 Subject: [PATCH 5/5] Update company.lib.php --- htdocs/core/lib/company.lib.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 0893c0ef0d9..4f1bee1914c 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -1315,9 +1315,14 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint= if (! empty($conf->agenda->enabled)) { // Recherche histo sur actioncomm - // @since PR #9972, add DISTINCT. - $sql = "SELECT DISTINCT a.id, a.label,"; - $sql.= " a.datep as dp,"; + if (is_object($objcon) && $objcon->id) { + $sql = "SELECT DISTINCT a.id, a.label,"; + } + else + { + $sql = "SELECT a.id, a.label,"; + } + $sql.= " a.datep as dp,"; $sql.= " a.datep2 as dp2,"; $sql.= " a.note, a.percent,"; $sql.= " a.fk_element, a.elementtype,";