From 03b04bea089d3f1460ca4d0fb3bab6937f93df83 Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Wed, 25 Aug 2021 12:46:56 +0200 Subject: [PATCH] NEW: date filter on project list and task list From->To --- htdocs/projet/list.php | 120 +++++++++++++++++++++++++++++++++-- htdocs/projet/tasks.php | 116 +++++++++++++++++++++++++++++++-- htdocs/projet/tasks/list.php | 70 ++++++++++++++++++-- 3 files changed, 294 insertions(+), 12 deletions(-) diff --git a/htdocs/projet/list.php b/htdocs/projet/list.php index 43f5bd6ff2f..0df6c88a5a6 100644 --- a/htdocs/projet/list.php +++ b/htdocs/projet/list.php @@ -120,6 +120,26 @@ $search_eday = GETPOST('search_eday', 'int'); $search_emonth = GETPOST('search_emonth', 'int'); $search_eyear = GETPOST('search_eyear', 'int'); + +$search_date_start_startmonth = GETPOST('search_date_start_startmonth', 'int'); +$search_date_start_startyear = GETPOST('search_date_start_startyear', 'int'); +$search_date_start_startday = GETPOST('search_date_start_startday', 'int'); +$search_date_start_start = dol_mktime(0, 0, 0, $search_date_start_startmonth, $search_date_start_startday, $search_date_start_startyear); // Use tzserver +$search_date_start_endmonth = GETPOST('search_date_start_endmonth', 'int'); +$search_date_start_endyear = GETPOST('search_date_start_endyear', 'int'); +$search_date_start_endday = GETPOST('search_date_start_endday', 'int'); +$search_date_start_end = dol_mktime(23, 59, 59, $search_date_start_endmonth, $search_date_start_endday, $search_date_start_endyear); // Use tzserver + +$search_date_end_startmonth = GETPOST('search_date_end_startmonth', 'int'); +$search_date_end_startyear = GETPOST('search_date_end_startyear', 'int'); +$search_date_end_startday = GETPOST('search_date_end_startday', 'int'); +$search_date_end_start = dol_mktime(0, 0, 0, $search_date_end_startmonth, $search_date_end_startday, $search_date_end_startyear); // Use tzserver +$search_date_end_endmonth = GETPOST('search_date_end_endmonth', 'int'); +$search_date_end_endyear = GETPOST('search_date_end_endyear', 'int'); +$search_date_end_endday = GETPOST('search_date_end_endday', 'int'); +$search_date_end_end = dol_mktime(23, 59, 59, $search_date_end_endmonth, $search_date_end_endday, $search_date_end_endyear); // Use tzserver + + if ($search_status == '') { $search_status = -1; // -1 or 1 } @@ -237,6 +257,22 @@ if (empty($reshook)) { $search_eday = ""; $search_emonth = ""; $search_eyear = ""; + $search_date_start_startmonth = ""; + $search_date_start_startyear = ""; + $search_date_start_startday = ""; + $search_date_start_start = ""; + $search_date_start_endmonth = ""; + $search_date_start_endyear = ""; + $search_date_start_endday = ""; + $search_date_start_end = ""; + $search_date_end_startmonth = ""; + $search_date_end_startyear = ""; + $search_date_end_startday = ""; + $search_date_end_start = ""; + $search_date_end_endmonth = ""; + $search_date_end_endyear = ""; + $search_date_end_endday = ""; + $search_date_end_end = ""; $search_usage_opportunity = ''; $search_usage_task = ''; $search_usage_bill_time = ''; @@ -408,6 +444,22 @@ if ($search_opp_percent) { } $sql .= dolSqlDateFilter('p.dateo', $search_sday, $search_smonth, $search_syear); $sql .= dolSqlDateFilter('p.datee', $search_eday, $search_emonth, $search_eyear); + + +if ($search_date_start_start) { + $sql .= " AND p.dateo >= '".$db->idate($search_date_start_start)."'"; +} +if ($search_date_start_end) { + $sql .= " AND p.dateo <= '".$db->idate($search_date_start_end)."'"; +} + +if ($search_date_end_start) { + $sql .= " AND p.datee >= '".$db->idate($search_date_end_start)."'"; +} +if ($search_date_end_end) { + $sql .= " AND p.datee <= '".$db->idate($search_date_end_end)."'"; +} + if ($search_all) { $sql .= natural_search(array_keys($fieldstosearchall), $search_all); } @@ -558,6 +610,54 @@ if ($search_emonth) { if ($search_eyear) { $param .= '&search_eyear='.urlencode($search_eyear); } +if ($search_date_start_startmonth) { + $param .= '&search_date_start_startmonth='.urlencode($search_date_start_startmonth); +} +if ($search_date_start_startyear) { + $param .= '&search_date_start_startyear='.urlencode($search_date_start_startyear); +} +if ($search_date_start_startday) { + $param .= '&search_date_start_startday='.urlencode($search_date_start_startday); +} +if ($search_date_start_start) { + $param .= '&search_date_start_start='.urlencode($search_date_start_start); +} +if ($search_date_start_endmonth) { + $param .= '&search_date_start_endmonth='.urlencode($search_date_start_endmonth); +} +if ($search_date_start_endyear) { + $param .= '&search_date_start_endyear='.urlencode($search_date_start_endyear); +} +if ($search_date_start_endday) { + $param .= '&search_date_start_endday='.urlencode($search_date_start_endday); +} +if ($search_date_start_end) { + $param .= '&search_date_start_end='.urlencode($search_date_start_end); +} +if ($search_date_end_startmonth) { + $param .= '&search_date_end_startmonth='.urlencode($search_date_end_startmonth); +} +if ($search_date_end_startyear) { + $param .= '&search_date_end_startyear='.urlencode($search_date_end_startyear); +} +if ($search_date_end_startday) { + $param .= '&search_date_end_startday='.urlencode($search_date_end_startday); +} +if ($search_date_end_start) { + $param .= '&search_date_end_start='.urlencode($search_date_end_start); +} +if ($search_date_end_endmonth) { + $param .= '&search_date_end_endmonth='.urlencode($search_date_end_endmonth); +} +if ($search_date_end_endyear) { + $param .= '&search_date_end_endyear='.urlencode($search_date_end_endyear); +} +if ($search_date_end_endday) { + $param .= '&search_date_end_endday='.urlencode($search_date_end_endday); +} +if ($search_date_end_end) { + $param .= '&search_date_end_end=' . urlencode($search_date_end_end); +} if ($socid) { $param .= '&socid='.urlencode($socid); } @@ -769,21 +869,33 @@ if (!empty($arrayfields['commercial']['checked'])) { // Start date if (!empty($arrayfields['p.dateo']['checked'])) { print ''; - if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) { + /*if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) { print ''; } print ''; - $formother->select_year($search_syear ? $search_syear : -1, 'search_syear', 1, 20, 5, 0, 0, '', 'widthauto valignmiddle'); + $formother->select_year($search_syear ? $search_syear : -1, 'search_syear', 1, 20, 5, 0, 0, '', 'widthauto valignmiddle');*/ + print '
'; + print $form->selectDate($search_date_start_start ? $search_date_start_start : -1, 'search_date_start_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); + print '
'; + print '
'; + print $form->selectDate($search_date_start_end ? $search_date_start_end : -1, 'search_date_start_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); + print '
'; print ''; } // End date if (!empty($arrayfields['p.datee']['checked'])) { print ''; - if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) { + /*if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) { print ''; } print ''; - $formother->select_year($search_eyear ? $search_eyear : -1, 'search_eyear', 1, 20, 5, 0, 0, '', 'widthauto valignmiddle'); + $formother->select_year($search_eyear ? $search_eyear : -1, 'search_eyear', 1, 20, 5, 0, 0, '', 'widthauto valignmiddle');*/ + print '
'; + print $form->selectDate($search_date_end_start ? $search_date_end_start : -1, 'search_date_end_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); + print '
'; + print '
'; + print $form->selectDate($search_date_end_end ? $search_date_end_end : -1, 'search_date_end_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); + print '
'; print ''; } if (!empty($arrayfields['p.public']['checked'])) { diff --git a/htdocs/projet/tasks.php b/htdocs/projet/tasks.php index 367f7a27681..aec790b9240 100644 --- a/htdocs/projet/tasks.php +++ b/htdocs/projet/tasks.php @@ -83,6 +83,24 @@ $search_timespend = GETPOST('search_timespend'); $search_progresscalc = GETPOST('search_progresscalc'); $search_progressdeclare = GETPOST('search_progressdeclare'); +$search_date_start_startmonth = GETPOST('search_date_start_startmonth', 'int'); +$search_date_start_startyear = GETPOST('search_date_start_startyear', 'int'); +$search_date_start_startday = GETPOST('search_date_start_startday', 'int'); +$search_date_start_start = dol_mktime(0, 0, 0, $search_date_start_startmonth, $search_date_start_startday, $search_date_start_startyear); // Use tzserver +$search_date_start_endmonth = GETPOST('search_date_start_endmonth', 'int'); +$search_date_start_endyear = GETPOST('search_date_start_endyear', 'int'); +$search_date_start_endday = GETPOST('search_date_start_endday', 'int'); +$search_date_start_end = dol_mktime(23, 59, 59, $search_date_start_endmonth, $search_date_start_endday, $search_date_start_endyear); // Use tzserver + +$search_date_end_startmonth = GETPOST('search_date_end_startmonth', 'int'); +$search_date_end_startyear = GETPOST('search_date_end_startyear', 'int'); +$search_date_end_startday = GETPOST('search_date_end_startday', 'int'); +$search_date_end_start = dol_mktime(0, 0, 0, $search_date_end_startmonth, $search_date_end_startday, $search_date_end_startyear); // Use tzserver +$search_date_end_endmonth = GETPOST('search_date_end_endmonth', 'int'); +$search_date_end_endyear = GETPOST('search_date_end_endyear', 'int'); +$search_date_end_endday = GETPOST('search_date_end_endday', 'int'); +$search_date_end_end = dol_mktime(23, 59, 59, $search_date_end_endmonth, $search_date_end_endday, $search_date_end_endyear); // Use tzserver + $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'projecttasklist'; //if (! $user->rights->projet->all->lire) $mine=1; // Special for projects @@ -188,6 +206,22 @@ if (empty($reshook)) { $search_progressdeclare = ''; $toselect = ''; $search_array_options = array(); + $search_date_start_startmonth = ""; + $search_date_start_startyear = ""; + $search_date_start_startday = ""; + $search_date_start_start = ""; + $search_date_start_endmonth = ""; + $search_date_start_endyear = ""; + $search_date_start_endday = ""; + $search_date_start_end = ""; + $search_date_end_startmonth = ""; + $search_date_end_startyear = ""; + $search_date_end_startday = ""; + $search_date_end_start = ""; + $search_date_end_endmonth = ""; + $search_date_end_endyear = ""; + $search_date_end_endday = ""; + $search_date_end_end = ""; } // Mass actions @@ -219,6 +253,20 @@ if ($moresql) { $morewherefilterarray[] = $moresql; } +if ($search_date_start_start) { + $morewherefilterarray[] = " t.dateo >= '".$db->idate($search_date_start_start)."'"; +} +if ($search_date_start_end) { + $morewherefilterarray[] = " t.dateo <= '".$db->idate($search_date_start_end)."'"; +} + +if ($search_date_end_start) { + $morewherefilterarray[] = " t.datee >= '".$db->idate($search_date_end_start)."'"; +} +if ($search_date_end_end) { + $morewherefilterarray[] = " t.datee <= '".$db->idate($search_date_end_end)."'"; +} + if (!empty($search_planedworkload)) { $morewherefilterarray[] = natural_search('t.planned_workload', $search_planedworkload, 1, 1); } @@ -416,6 +464,54 @@ if ($id > 0 || !empty($ref)) { if ($search_dtendyear) { $param .= '&search_dtendyear='.urlencode($search_dtendyear); } + if ($search_date_start_startmonth) { + $param .= '&search_date_start_startmonth='.urlencode($search_date_start_startmonth); + } + if ($search_date_start_startyear) { + $param .= '&search_date_start_startyear='.urlencode($search_date_start_startyear); + } + if ($search_date_start_startday) { + $param .= '&search_date_start_startday='.urlencode($search_date_start_startday); + } + if ($search_date_start_start) { + $param .= '&search_date_start_start='.urlencode($search_date_start_start); + } + if ($search_date_start_endmonth) { + $param .= '&search_date_start_endmonth='.urlencode($search_date_start_endmonth); + } + if ($search_date_start_endyear) { + $param .= '&search_date_start_endyear='.urlencode($search_date_start_endyear); + } + if ($search_date_start_endday) { + $param .= '&search_date_start_endday='.urlencode($search_date_start_endday); + } + if ($search_date_start_end) { + $param .= '&search_date_start_end='.urlencode($search_date_start_end); + } + if ($search_date_end_startmonth) { + $param .= '&search_date_end_startmonth='.urlencode($search_date_end_startmonth); + } + if ($search_date_end_startyear) { + $param .= '&search_date_end_startyear='.urlencode($search_date_end_startyear); + } + if ($search_date_end_startday) { + $param .= '&search_date_end_startday='.urlencode($search_date_end_startday); + } + if ($search_date_end_start) { + $param .= '&search_date_end_start='.urlencode($search_date_end_start); + } + if ($search_date_end_endmonth) { + $param .= '&search_date_end_endmonth='.urlencode($search_date_end_endmonth); + } + if ($search_date_end_endyear) { + $param .= '&search_date_end_endyear='.urlencode($search_date_end_endyear); + } + if ($search_date_end_endday) { + $param .= '&search_date_end_endday='.urlencode($search_date_end_endday); + } + if ($search_date_end_end) { + $param .= '&search_date_end_end=' . urlencode($search_date_end_end); + } if ($search_planedworkload) { $param .= '&search_planedworkload='.urlencode($search_planedworkload); } @@ -777,17 +873,29 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third if (!empty($arrayfields['t.dateo']['checked'])) { print ''; - print ''; + /*print ''; print ''; - $formother->select_year($search_dtstartyear ? $search_dtstartyear : -1, 'search_dtstartyear', 1, 20, 5); + $formother->select_year($search_dtstartyear ? $search_dtstartyear : -1, 'search_dtstartyear', 1, 20, 5);*/ + print '
'; + print $form->selectDate($search_date_start_start ? $search_date_start_start : -1, 'search_date_start_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); + print '
'; + print '
'; + print $form->selectDate($search_date_start_end ? $search_date_start_end : -1, 'search_date_start_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); + print '
'; print ''; } if (!empty($arrayfields['t.datee']['checked'])) { print ''; - print ''; + /*print ''; print ''; - $formother->select_year($search_dtendyear ? $search_dtendyear : -1, 'search_dtendyear', 1, 20, 5); + $formother->select_year($search_dtendyear ? $search_dtendyear : -1, 'search_dtendyear', 1, 20, 5);*/ + print '
'; + print $form->selectDate($search_date_end_start ? $search_date_end_start : -1, 'search_date_end_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); + print '
'; + print '
'; + print $form->selectDate($search_date_end_end ? $search_date_end_end : -1, 'search_date_end_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); + print '
'; print ''; } diff --git a/htdocs/projet/tasks/list.php b/htdocs/projet/tasks/list.php index 8dc369b6a0a..8ffbcf7d609 100644 --- a/htdocs/projet/tasks/list.php +++ b/htdocs/projet/tasks/list.php @@ -78,6 +78,24 @@ $search_eday = GETPOST('search_eday', 'int'); $search_emonth = GETPOST('search_emonth', 'int'); $search_eyear = GETPOST('search_eyear', 'int'); +$search_date_start_startmonth = GETPOST('search_date_start_startmonth', 'int'); +$search_date_start_startyear = GETPOST('search_date_start_startyear', 'int'); +$search_date_start_startday = GETPOST('search_date_start_startday', 'int'); +$search_date_start_start = dol_mktime(0, 0, 0, $search_date_start_startmonth, $search_date_start_startday, $search_date_start_startyear); // Use tzserver +$search_date_start_endmonth = GETPOST('search_date_start_endmonth', 'int'); +$search_date_start_endyear = GETPOST('search_date_start_endyear', 'int'); +$search_date_start_endday = GETPOST('search_date_start_endday', 'int'); +$search_date_start_end = dol_mktime(23, 59, 59, $search_date_start_endmonth, $search_date_start_endday, $search_date_start_endyear); // Use tzserver + +$search_date_end_startmonth = GETPOST('search_date_end_startmonth', 'int'); +$search_date_end_startyear = GETPOST('search_date_end_startyear', 'int'); +$search_date_end_startday = GETPOST('search_date_end_startday', 'int'); +$search_date_end_start = dol_mktime(0, 0, 0, $search_date_end_startmonth, $search_date_end_startday, $search_date_end_startyear); // Use tzserver +$search_date_end_endmonth = GETPOST('search_date_end_endmonth', 'int'); +$search_date_end_endyear = GETPOST('search_date_end_endyear', 'int'); +$search_date_end_endday = GETPOST('search_date_end_endday', 'int'); +$search_date_end_end = dol_mktime(23, 59, 59, $search_date_end_endmonth, $search_date_end_endday, $search_date_end_endyear); // Use tzserver + // Initialize context for list $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'tasklist'; @@ -197,6 +215,22 @@ if (empty($reshook)) { $search_eday = ''; $search_emonth = ''; $search_eyear = ''; + $search_date_start_startmonth = ""; + $search_date_start_startyear = ""; + $search_date_start_startday = ""; + $search_date_start_start = ""; + $search_date_start_endmonth = ""; + $search_date_start_endyear = ""; + $search_date_start_endday = ""; + $search_date_start_end = ""; + $search_date_end_startmonth = ""; + $search_date_end_startyear = ""; + $search_date_end_startday = ""; + $search_date_end_start = ""; + $search_date_end_endmonth = ""; + $search_date_end_endyear = ""; + $search_date_end_endday = ""; + $search_date_end_end = ""; $toselect = ''; $search_array_options = array(); } @@ -372,8 +406,24 @@ if ($search_task_progress) { if ($search_societe) { $sql .= natural_search('s.nom', $search_societe); } + $sql .= dolSqlDateFilter('t.dateo', $search_sday, $search_smonth, $search_syear); $sql .= dolSqlDateFilter('t.datee', $search_eday, $search_emonth, $search_eyear); + +if ($search_date_start_start) { + $sql .= " AND t.dateo >= '".$db->idate($search_date_start_start)."'"; +} +if ($search_date_start_end) { + $sql .= " AND t.dateo <= '".$db->idate($search_date_start_end)."'"; +} + +if ($search_date_end_start) { + $sql .= " AND t.datee >= '".$db->idate($search_date_end_start)."'"; +} +if ($search_date_end_end) { + $sql .= " AND t.datee <= '".$db->idate($search_date_end_end)."'"; +} + if ($search_all) { $sql .= natural_search(array_keys($fieldstosearchall), $search_all); } @@ -647,21 +697,33 @@ if (!empty($arrayfields['t.description']['checked'])) { // Start date if (!empty($arrayfields['t.dateo']['checked'])) { print ''; - if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) { + /*if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) { print ''; } print ''; - print $formother->selectyear($search_syear ? $search_syear : -1, 'search_syear', 1, 20, 5, 0, 0, '', 'valignmiddle width75', 1); + print $formother->selectyear($search_syear ? $search_syear : -1, 'search_syear', 1, 20, 5, 0, 0, '', 'valignmiddle width75', 1);*/ + print '
'; + print $form->selectDate($search_date_start_start ? $search_date_start_start : -1, 'search_date_start_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); + print '
'; + print '
'; + print $form->selectDate($search_date_start_end ? $search_date_start_end : -1, 'search_date_start_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); + print '
'; print ''; } // End date if (!empty($arrayfields['t.datee']['checked'])) { print ''; - if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) { + /*if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) { print ''; } print ''; - print $formother->selectyear($search_eyear ? $search_eyear : -1, 'search_eyear', 1, 20, 5, 0, 0, '', 'valignmiddle width75', 1); + print $formother->selectyear($search_eyear ? $search_eyear : -1, 'search_eyear', 1, 20, 5, 0, 0, '', 'valignmiddle width75', 1);*/ + print '
'; + print $form->selectDate($search_date_end_start ? $search_date_end_start : -1, 'search_date_end_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); + print '
'; + print '
'; + print $form->selectDate($search_date_end_end ? $search_date_end_end : -1, 'search_date_end_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to')); + print '
'; print ''; } if (!empty($arrayfields['p.ref']['checked'])) {