diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 4618828e476..e06e071ee89 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -1317,8 +1317,14 @@ 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,"; - $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,"; @@ -1332,7 +1338,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"; - 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'"; @@ -1361,8 +1372,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)) {