|
|
|
@ -628,16 +628,19 @@ if (!empty($filterToSend)) { |
|
|
|
$userStartDate = isset($params['extra_access_start_date']) ? $params['extra_access_start_date'] : $defaultExtraStartDate; |
|
|
|
$userStartDate = isset($params['extra_access_start_date']) ? $params['extra_access_start_date'] : $defaultExtraStartDate; |
|
|
|
$userEndDate = isset($params['extra_access_end_date']) ? $params['extra_access_end_date'] : $defaultExtraEndDate; |
|
|
|
$userEndDate = isset($params['extra_access_end_date']) ? $params['extra_access_end_date'] : $defaultExtraEndDate; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Minus 3 days |
|
|
|
$date = new DateTime($userStartDate); |
|
|
|
$date = new DateTime($userStartDate); |
|
|
|
$date->sub(new DateInterval('P3D')); |
|
|
|
$date->sub(new DateInterval('P3D')); |
|
|
|
$userStartDateMinus = $date->format('Y-m-d h:i:s'); |
|
|
|
$userStartDateMinus = $date->format('Y-m-d h:i:s'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Plus 2 days |
|
|
|
$date = new DateTime($userEndDate); |
|
|
|
$date = new DateTime($userEndDate); |
|
|
|
$date->add(new DateInterval('P2D')); |
|
|
|
$date->add(new DateInterval('P2D')); |
|
|
|
$userEndDatePlus = $date->format('Y-m-d h:i:s'); |
|
|
|
$userEndDatePlus = $date->format('Y-m-d h:i:s'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Special OFAJ date logic |
|
|
|
$sql = " AND ( |
|
|
|
$sql = " AND ( |
|
|
|
(s.access_start_date > '$userStartDateMinus' AND s.access_start_date < '$userEndDatePlus') OR |
|
|
|
(s.access_start_date > '$userStartDateMinus' AND s.access_end_date < '$userEndDatePlus') OR |
|
|
|
(s.access_start_date > '$userStartDateMinus' AND (s.access_start_date = '' OR s.access_start_date IS NULL)) OR |
|
|
|
(s.access_start_date > '$userStartDateMinus' AND (s.access_start_date = '' OR s.access_start_date IS NULL)) OR |
|
|
|
((s.access_start_date = '' OR s.access_start_date IS NULL) AND (s.access_end_date = '' OR s.access_end_date IS NULL)) |
|
|
|
((s.access_start_date = '' OR s.access_start_date IS NULL) AND (s.access_end_date = '' OR s.access_end_date IS NULL)) |
|
|
|
)"; |
|
|
|
)"; |
|
|
|
@ -645,6 +648,8 @@ if (!empty($filterToSend)) { |
|
|
|
$extraFieldOptions = new ExtraFieldOption('session'); |
|
|
|
$extraFieldOptions = new ExtraFieldOption('session'); |
|
|
|
$extraFieldSession = new ExtraField('session'); |
|
|
|
$extraFieldSession = new ExtraField('session'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Special filters |
|
|
|
|
|
|
|
// see https://task.beeznest.com/issues/10849#change-81902 |
|
|
|
foreach ($filterToSend['rules'] as &$filterItem) { |
|
|
|
foreach ($filterToSend['rules'] as &$filterItem) { |
|
|
|
switch ($filterItem['field']) { |
|
|
|
switch ($filterItem['field']) { |
|
|
|
case 'extra_ecouter': |
|
|
|
case 'extra_ecouter': |
|
|
|
@ -656,7 +661,6 @@ if (!empty($filterToSend)) { |
|
|
|
$fieldExtra = str_replace('extra_', '', $filterItem['field']); |
|
|
|
$fieldExtra = str_replace('extra_', '', $filterItem['field']); |
|
|
|
$extraFieldSessionData = $extraFieldSession->get_handler_field_info_by_field_variable($fieldExtra); |
|
|
|
$extraFieldSessionData = $extraFieldSession->get_handler_field_info_by_field_variable($fieldExtra); |
|
|
|
|
|
|
|
|
|
|
|
// see https://task.beeznest.com/issues/10849#change-81902 |
|
|
|
|
|
|
|
if (is_array($filterItem['data'])) { |
|
|
|
if (is_array($filterItem['data'])) { |
|
|
|
$myOrder = []; |
|
|
|
$myOrder = []; |
|
|
|
foreach ($filterItem['data'] as $option) { |
|
|
|
foreach ($filterItem['data'] as $option) { |
|
|
|
@ -693,11 +697,42 @@ if (!empty($filterToSend)) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$filterItem['data'] = $searchOptions; |
|
|
|
$filterItem['data'] = $searchOptions; |
|
|
|
|
|
|
|
|
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
case 'extra_domaine': |
|
|
|
|
|
|
|
// Special condition see: |
|
|
|
|
|
|
|
// https://task.beeznest.com/issues/10849#note-218 |
|
|
|
|
|
|
|
// Remove filiere |
|
|
|
|
|
|
|
$list = [ |
|
|
|
|
|
|
|
'vie-quotidienne', |
|
|
|
|
|
|
|
//'competente-dans-mon-domaine-de-specialite', |
|
|
|
|
|
|
|
'arrivee-sur-mon-poste-de-travail' |
|
|
|
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$deleteFiliere = false; |
|
|
|
|
|
|
|
if (is_array($filterItem['data'])) { |
|
|
|
|
|
|
|
$myOrder = []; |
|
|
|
|
|
|
|
foreach ($filterItem['data'] as $option) { |
|
|
|
|
|
|
|
if (in_array($option, $list)) { |
|
|
|
|
|
|
|
$deleteFiliere = true; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
if (in_array($filterItem['data'], $list)) { |
|
|
|
|
|
|
|
$deleteFiliere = true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($deleteFiliere) { |
|
|
|
|
|
|
|
foreach ($filterToSend['rules'] as &$filterItem) { |
|
|
|
|
|
|
|
if ($filterItem['field'] == 'extra_filiere') { |
|
|
|
|
|
|
|
$filterItem = []; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
//var_dump($filterToSend['rules']); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($userStartDate && !empty($userStartDate)) { |
|
|
|
if ($userStartDate && !empty($userStartDate)) { |
|
|
|
$filterToSend['custom_dates'] = $sql; |
|
|
|
$filterToSend['custom_dates'] = $sql; |
|
|
|
|