fix: on Event tabs, if no evt type use in filter, filter on label and state not apply

This commit is contained in:
Florian HENRY 2021-09-10 15:45:03 +02:00
parent 29820f446d
commit 257686c2fe

View File

@ -1548,7 +1548,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = '', $noprin
$sql .= "OR ("; $sql .= "OR (";
} }
if (!empty($code)) { if (!empty($code)) {
addEventTypeSQL($sql, $code, $donetodo, $now, $filters, ""); addEventTypeSQL($sql, $code);
} }
if ($key != 0) { if ($key != 0) {
$sql .= ")"; $sql .= ")";
@ -1556,9 +1556,11 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = '', $noprin
} }
$sql .= ')'; $sql .= ')';
} elseif (!empty($actioncode)) { } elseif (!empty($actioncode)) {
addEventTypeSQL($sql, $actioncode, $donetodo, $now, $filters); addEventTypeSQL($sql, $actioncode);
} }
addOtherFilterSQL($sql, $donetodo, $now, $filters);
if (is_array($actioncode)) { if (is_array($actioncode)) {
foreach ($actioncode as $code) { foreach ($actioncode as $code) {
$sql2 = addMailingEventTypeSQL($code, $objcon, $filterobj); $sql2 = addMailingEventTypeSQL($code, $objcon, $filterobj);
@ -2021,13 +2023,10 @@ function show_subsidiaries($conf, $langs, $db, $object)
* *
* @param string $sql $sql modified * @param string $sql $sql modified
* @param string $actioncode Action code * @param string $actioncode Action code
* @param string $donetodo donetodo
* @param string $now now
* @param string $filters array
* @param string $sqlANDOR "AND", "OR" or "" sql condition * @param string $sqlANDOR "AND", "OR" or "" sql condition
* @return string sql request * @return string sql request
*/ */
function addEventTypeSQL(&$sql, $actioncode, $donetodo, $now, $filters, $sqlANDOR = "AND") function addEventTypeSQL(&$sql, $actioncode, $sqlANDOR = "AND")
{ {
global $conf, $db; global $conf, $db;
// Condition on actioncode // Condition on actioncode
@ -2054,6 +2053,23 @@ function addEventTypeSQL(&$sql, $actioncode, $donetodo, $now, $filters, $sqlANDO
} }
} }
return $sql;
}
/**
* Add Event Type SQL
*
* @param string $sql $sql modified
* @param string $donetodo donetodo
* @param string $now now
* @param string $filters array
* @return string sql request
*/
function addOtherFilterSQL(&$sql, $donetodo, $now, $filters)
{
global $conf, $db;
// Condition on actioncode
if ($donetodo == 'todo') { if ($donetodo == 'todo') {
$sql .= " AND ((a.percent >= 0 AND a.percent < 100) OR (a.percent = -1 AND a.datep > '".$db->idate($now)."'))"; $sql .= " AND ((a.percent >= 0 AND a.percent < 100) OR (a.percent = -1 AND a.datep > '".$db->idate($now)."'))";
} elseif ($donetodo == 'done') { } elseif ($donetodo == 'done') {