get_submitted_get_value('filtre'); if (! empty($filtreContexte)) { $filtre = $filtreContexte; } $params = array( "filtre" => $filtre, ); /** * Récupération de la configuration de la requête à partir du widget. */ // require_once "../obj/om_widget.class.php"; $om_widget = new om_widget(0); // $conf = $om_widget->get_config_consultation_retours($params); // Ajout d'une jointure sur l'instructeur secondaire pour permettre la recherche // simple par instructeur secondaire $conf["query_ct_from"] .= sprintf( 'LEFT JOIN %1$sinstructeur as instructeur_secondaire ON dossier.instructeur_2 = instructeur_secondaire.instructeur LEFT JOIN %1$som_utilisateur as utilisateur_2 ON instructeur_secondaire.om_utilisateur = utilisateur_2.om_utilisateur', DB_PREFIXE ); // Récupération du filtre $sqlFiltre = $om_widget->get_query_filter( $conf["query_ct_from"].' WHERE '.$conf["query_ct_where_common"], $filtre ); /** * */ // $tab_description = $conf["message_help"]; // $tab_title = __("consultation"); // Traduction des termes technique du type de consultation. // Pour les consultations des tiers et des service la traduction est la même // sauf qu'on ne cherche pas les résultats dans la même table. Ce template // existe donc pour pouvoir être utilisé dans les 2 cas sans réécrire ce code $template_case_traduction_type_consultation = 'CASE WHEN %1$s.type_consultation=\'avec_avis_attendu\' THEN \''.__("avec avis attendu").'\' WHEN %1$s.type_consultation=\'pour_conformite\' THEN \''.__("pour conformite").'\' WHEN %1$s.type_consultation=\'pour_information\' THEN \''.__("pour information").'\' END'; // Affichage du type de consultation traduit selon l'élément consulte (tiers ou service) $case_type_consultation = sprintf( 'CASE WHEN consultation.service IS NOT NULL THEN (%1$s) ELSE (%2$s) END', sprintf($template_case_traduction_type_consultation, 'service'), sprintf($template_case_traduction_type_consultation, 'motif_consultation') ); // Affichage du nom du service ou du tiers consulte $case_element_consulte = "CASE WHEN consultation.service IS NOT NULL THEN concat(service.abrege, ' - ', service.libelle) ELSE concat(tiers_consulte.abrege, ' - ', tiers_consulte.libelle) END"; // $displayed_fields_begin = array( 'consultation.consultation as "'.__("consultation").'"', $select__dossier_libelle__column_as, $case_element_consulte.' as "'.__("service / tiers").'"', $case_type_consultation.' as "'.__("type_consultation").'"', 'to_char(consultation.date_reception ,\'DD/MM/YYYY\') as "'.__("date_reception").'"', 'to_char(consultation.date_retour ,\'DD/MM/YYYY\') as "'.__("date_retour").'"', 'to_char(consultation.date_limite ,\'DD/MM/YYYY\') as "'.__("date_limite").'"', 'avis_consultation.libelle as "'.__("avis_consultation").'"', ); $displayed_field_instructeur = array( 'instructeur.nom as "'.__("instructeur").'"', 'instructeur_secondaire.nom as "'.__("instructeur secondaire").'"', ); $displayed_field_division = array( 'division.code as "'.__("division").'"', ); $displayed_field_collectivite = array( 'om_collectivite.libelle as "'.__("collectivite").'"', ); $displayed_fields_end = array($select_enjeux_dossier); // FROM $table = $conf["query_ct_from"]. $sqlFiltre['FROM']; // WHERE $selection = sprintf( "WHERE %s %s ", $conf["query_ct_where_common"], $sqlFiltre['WHERE'] ); // $tri = " ORDER BY $order_by_enjeux_priorite_dossier, consultation.date_retour "; $options[] = array( 'type' => 'pagination_group_by', 'pagination_group_by' => false ); // $tab_actions['corner']['ajouter'] = null; /** * Options - Style CSS sur certaines lignes * On met la ligne en couleur selon le type de consultation */ $options[] = array( "type" => "condition", "field" => 'CASE WHEN service.type_consultation=\'avec_avis_attendu\' THEN \''.__("avec avis attendu").'\' WHEN service.type_consultation=\'pour_conformite\' THEN \''.__("pour conformite").'\' WHEN service.type_consultation=\'pour_information\' THEN \''.__("pour information").'\' END', "case" => array( array( "values" => array(__("avec avis attendu"), ), "style" => "consultation-avec-avis-attendu", ), array( "values" => array(__("pour conformite"), ), "style" => "consultation-pour-conformite", ), array( "values" => array(__("pour information"), ), "style" => "consultation-pour-information", ), ), ); /** * Options - ADVSEARCH */ // $advsearch_fields_begin = array( // 'service_abrege' => array( 'table' => 'service', 'colonne' => 'abrege', 'type' => 'text', 'libelle' => __('Service (abrege)'), 'taille' => '', 'max' => '', ), // 'service' => array( 'table' => 'service', 'colonne' => 'libelle', 'type' => 'text', 'libelle' => __('Service'), 'taille' => '', 'max' => '', ), ); // $advsearch_field_instructeur = array( 'instructeur' => array( 'colonne' => 'nom', 'table' => 'instructeur', 'libelle' => __('Instructeur'), 'type' => 'text', 'taille' => '', 'max' => '', ), 'instructeur_2' => array( 'table' => 'dossier', 'colonne' => 'instructeur_2', 'type' => 'select', 'libelle' => __('Instructeur secondaire'), 'subtype' => 'sqlselect', 'sql' => "SELECT instructeur.instructeur, instructeur.nom FROM ".DB_PREFIXE."instructeur INNER JOIN ".DB_PREFIXE."instructeur_qualite ON instructeur_qualite.instructeur_qualite=instructeur.instructeur_qualite WHERE ((instructeur.om_validite_debut IS NULL AND (instructeur.om_validite_fin IS NULL OR instructeur.om_validite_fin > CURRENT_DATE)) OR (instructeur.om_validite_debut <= CURRENT_DATE AND (instructeur.om_validite_fin IS NULL OR instructeur.om_validite_fin > CURRENT_DATE))) AND LOWER(instructeur_qualite.code) = LOWER('instr') ORDER BY nom", ), ); $advsearch_field_division = array( // 'division' => array( 'colonne' => 'code', 'table' => 'division', 'libelle' => __('Division'), 'type' => 'text', 'taille' => '', 'max' => '', ), ); // $advsearch_field_collectivite = array( // 'collectivite' => array( 'table' => 'om_collectivite', 'colonne' => 'libelle', 'type' => 'text', 'libelle' => __('om_collectivite'), 'taille' => '', 'max' => '', ), ); // $advsearch_fields_end = array( // 'date_envoi' => array( 'colonne' => 'date_envoi', 'table' => 'consultation', 'libelle' => __('Date d\'envoi'), 'type' => 'date', 'where' => 'intervaldate', 'taille' => '', ), // 'date_retour' => array( 'colonne' => 'date_retour', 'table' => 'consultation', 'libelle' => __('Date de retour'), 'type' => 'date', 'where' => 'intervaldate', 'taille' => '', ), // 'date_limite' => array( 'colonne' => 'date_limite', 'table' => 'consultation', 'libelle' => __('Date limite'), 'type' => 'date', 'where' => 'intervaldate', 'taille' => '', ), ); ?>