= ' . $tmpAge1; } if ($tmpAge2 != '') { $where = ' <= ' . $tmpAge2; } if ($tmpAge1 != '' && $tmpAge2 != '') { $where = ' BETWEEN ' . $tmpAge1 . ' AND ' . $tmpAge2; } } $subselect_select = ''; $field_id = $field_prefixe . "_id"; $field2_id = $field2_prefixe . "_id"; $field_section_id = $field_prefixe . "_section_id[" . $section . "]"; if ($mode == 'LI') { $subselect_select = " $field_id = ANY (array(SELECT to_id FROM $module.t_listes_contenu WHERE liste_id = $oid)::bigint[])"; } if ($mode == 'SL') { $subselect_select = " $field_id != ALL (array(SELECT to_id FROM $module.t_listes_contenu WHERE liste_id = $oid)::bigint[])"; } if ($mode == 'LS') { $subselect_select = " $field_section_id = $oid"; } if ($mode == 'NV') { $subselect_select = " $field_id IS DISTINCT FROM 0"; } if ($mode == 'DT') { $subselect_select = " $field_id = $oid"; } if ($mode == 'D2') { $subselect_select = " $field2_id = $oid"; } if ($mode == 'C*') { $subselect_select = " $field_id = ANY (array(SELECT oid FROM $module.$table_name WHERE $where_codes)::bigint[])"; } if ($mode == 'IN') { $subselect_select = " age_id $where"; } if ($subselect_select != '') { $select = " AND $subselect_select "; } } return $select; } public static function specific_field_select($field, $value, $dateDebut, $dateFin) { $ret = ''; switch ($field) { case 'PRESENCESAL': switch ($value) { case '1': $ret .= " AND v_rh_view_1.date_debut_activite = '$dateDebut' "; break; case '2': $ret .= " AND v_rh_view_1.date_fin_activite = '$dateFin' "; break; case '3': $ret .= " AND v_rh_view_1.date_debut_activite = '$dateDebut' AND v_rh_view_1.date_fin_activite = '$dateFin' "; break; } break; case 'PRESENCECNT': switch ($value) { case '1': $ret .= " AND v_rh_view_1.date_debut_contrat <= '$dateDebut' "; break; case '2': $ret .= " AND v_rh_view_1.date_fin_contrat >= '$dateFin' "; break; case '3': $ret .= " AND v_rh_view_1.date_debut_contrat <= '$dateDebut' AND v_rh_view_1.date_fin_contrat >= '$dateFin' "; break; case '4': $ret .= " AND v_rh_view_1.present_debut_mois = 1 "; break; case '4a': $ret .= " AND (FALSE OR v_rh_view_1.present_debut_mois||v_rh_view_1.mois_only_activite_code = '101' OR v_rh_view_1.present_debut_mois||v_rh_view_1.mois_only_activite_code = '104' OR v_rh_view_1.present_debut_mois||v_rh_view_1.mois_only_activite_code = '107' OR v_rh_view_1.present_debut_mois||v_rh_view_1.mois_only_activite_code = '110') "; break; case '4b': $ret .= " AND v_rh_view_1.present_debut_mois||v_rh_view_1.mois_only_activite_code = '101' "; break; case '5': $ret .= " AND v_rh_view_1.present_fin_mois = 1 "; break; case '5a': $ret .= " AND (FALSE OR v_rh_view_1.present_fin_mois||v_rh_view_1.mois_only_activite_code = '103' OR v_rh_view_1.present_fin_mois||v_rh_view_1.mois_only_activite_code = '106' OR v_rh_view_1.present_fin_mois||v_rh_view_1.mois_only_activite_code = '109' OR v_rh_view_1.present_fin_mois||v_rh_view_1.mois_only_activite_code = '112') "; break; case '5b': $ret .= " AND v_rh_view_1.present_fin_mois||v_rh_view_1.mois_only_activite_code = '112' "; break; case '6': $ret .= " AND v_rh_view_1.present_debut_mois = 1 AND v_rh_view_1.present_fin_mois = 1 "; break; case '6a': $ret .= " AND (FALSE OR v_rh_view_1.present_debut_mois||v_rh_view_1.mois_only_activite_code = '101' OR v_rh_view_1.present_debut_mois||v_rh_view_1.mois_only_activite_code = '104' OR v_rh_view_1.present_debut_mois||v_rh_view_1.mois_only_activite_code = '107' OR v_rh_view_1.present_debut_mois||v_rh_view_1.mois_only_activite_code = '110') AND (FALSE OR v_rh_view_1.present_fin_mois||v_rh_view_1.mois_only_activite_code = '103' OR v_rh_view_1.present_fin_mois||v_rh_view_1.mois_only_activite_code = '106' OR v_rh_view_1.present_fin_mois||v_rh_view_1.mois_only_activite_code = '109' OR v_rh_view_1.present_fin_mois||v_rh_view_1.mois_only_activite_code = '112') "; break; case '6b': $ret .= " AND v_rh_view_1.present_debut_mois||v_rh_view_1.mois_only_activite_code = '101' AND v_rh_view_1.present_fin_mois||v_rh_view_1.mois_only_activite_code = '112' "; break; case '7': $ret .= " AND v_rh_view_1.mois_activite_code = to_char('$dateDebut'::date, 'YYYYMM'::text) AND v_rh_view_1.present_debut_mois = 1 "; break; case '8': $ret .= " AND v_rh_view_1.mois_activite_code = to_char('$dateFin'::date, 'YYYYMM'::text) AND v_rh_view_1.present_fin_mois = 1 "; break; case '9': $ret .= " AND v_rh_view_1.mois_activite_code = to_char('$dateDebut'::date, 'YYYYMM'::text) AND v_rh_view_1.present_debut_mois = 1 AND v_rh_view_1.mois_activite_code = to_char('$dateFin'::date, 'YYYYMM'::text) AND v_rh_view_1.present_fin_mois = 1 "; break; } break; } return $ret; } public static function specific_day_field_select($days) { $ret = ''; // On effectue le traitement uniquement si une case a été décochée. if (implode('', $days) != '1111111') { for ($i = 0; $i < 7; $i++) { if ($days[$i] == '0') { $ret .= "\nAND to_char(v_rh_view_1.date_fin_activite, 'ID') != " . ($i + 1); } } } return $ret; } }