/[openfoncier]/trunk/sql/pgsql/dossier_instruction.inc.php
ViewVC logotype

Annotation of /trunk/sql/pgsql/dossier_instruction.inc.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 10573 - (hide annotations)
Thu Oct 14 12:43:35 2021 UTC (3 years, 3 months ago) by softime
File size: 15724 byte(s)
* Fusion de la branche d'intégration 5.0.0-develop dans le trunk

1 mbroquet 3730 <?php
2     /**
3     *
4     * @package openfoncier
5     * @version SVN : $Id: dossier_instruction.inc.php 6128 2016-03-08 15:43:42Z jymadier $
6     */
7    
8     /*Etend la classe dossier*/
9     include('../sql/pgsql/dossier.inc.php');
10    
11     /*Titre de la page*/
12     $ent = _("instruction")." -> "._("dossiers d'instruction");
13    
14     $tab_title = _("DI");
15    
16 softime 7996 // Pour le formulaire de géocodage par lot
17     // Change le nom de l'onglet principal et cache les autres onglets
18     if ($f->get_submitted_get_value('action') === '126'){
19     $tab_title = _("Géolocalisation des dossiers");
20     $sousformulaire = array();
21     }
22    
23 mbroquet 3730 /* Test SQL pour récupérer les bons champs selon la qualité du demandeur :
24     * particulier ou personne morale*/
25     $case_demandeur = "CASE WHEN demandeur.qualite='particulier'
26     THEN TRIM(CONCAT(demandeur.particulier_nom, ' ', demandeur.particulier_prenom))
27     ELSE TRIM(CONCAT(demandeur.personne_morale_raison_sociale, ' ', demandeur.personne_morale_denomination))
28     END";
29    
30     /*Formatage de l'adresse du terrain, concatenantion de plusieurs champs pour les
31     * mettrent dans une seule colonne*/
32 softime 10573 $trim_concat_terrain = '
33     TRIM(
34     COALESCE(
35     dossier.adresse_normalisee,
36     CONCAT_WS(
37     \' \',
38     dossier.terrain_adresse_voie_numero,
39     dossier.terrain_adresse_voie,
40     dossier.terrain_adresse_lieu_dit,
41     dossier.terrain_adresse_code_postal,
42     dossier.terrain_adresse_localite,
43     dossier.terrain_adresse_bp,
44     dossier.terrain_adresse_cedex
45     )
46     )
47     ) as "'.__("localisation").'"';
48 mbroquet 3730
49     /*Tables sur lesquels la requête va s'effectuer*/
50     $table = DB_PREFIXE."dossier
51 softime 6565 LEFT JOIN (
52     SELECT *
53     FROM ".DB_PREFIXE."lien_dossier_demandeur
54     INNER JOIN ".DB_PREFIXE."demandeur
55     ON demandeur.demandeur = lien_dossier_demandeur.demandeur
56     WHERE lien_dossier_demandeur.petitionnaire_principal IS TRUE
57     AND LOWER(demandeur.type_demandeur) = LOWER('petitionnaire')
58     ) as demandeur
59     ON demandeur.dossier = dossier.dossier
60 mbroquet 3730 LEFT JOIN ".DB_PREFIXE."dossier_autorisation
61     ON dossier_autorisation.dossier_autorisation = dossier.dossier_autorisation
62     LEFT JOIN ".DB_PREFIXE."dossier_autorisation_type_detaille
63     ON dossier_autorisation_type_detaille.dossier_autorisation_type_detaille = dossier_autorisation.dossier_autorisation_type_detaille
64     LEFT JOIN ".DB_PREFIXE."instructeur
65     ON dossier.instructeur = instructeur.instructeur
66     LEFT JOIN ".DB_PREFIXE."om_utilisateur
67     ON instructeur.om_utilisateur = om_utilisateur.om_utilisateur
68 softime 6565 LEFT JOIN ".DB_PREFIXE."instructeur as instructeur2
69     ON dossier.instructeur_2 = instructeur2.instructeur
70     LEFT JOIN ".DB_PREFIXE."om_utilisateur as om_utilisateur2
71     ON instructeur2.om_utilisateur = om_utilisateur2.om_utilisateur
72 mbroquet 3730 LEFT JOIN ".DB_PREFIXE."etat
73     ON dossier.etat = etat.etat
74     LEFT JOIN ".DB_PREFIXE."division
75     ON dossier.division = division.division
76     LEFT JOIN ".DB_PREFIXE."avis_decision
77     ON avis_decision.avis_decision=dossier.avis_decision
78     LEFT JOIN ".DB_PREFIXE."om_collectivite
79     ON dossier.om_collectivite=om_collectivite.om_collectivite
80 softime 6565 LEFT OUTER JOIN ".DB_PREFIXE."arrondissement
81 softime 7521 ON arrondissement.code_postal = dossier.terrain_adresse_code_postal
82 mbroquet 3730 ";
83 softime 10573 if ($f->is_option_dossier_commune_enabled()) {
84     $table .= "
85     LEFT OUTER JOIN ".DB_PREFIXE."commune
86     ON commune.commune = dossier.commune
87     ";
88     }
89 mbroquet 3730
90 softime 10573 $champ_date_depot_mairie = 'to_char(dossier.date_depot_mairie ,\'DD/MM/YYYY\') as "'._("date_depot_mairie").'"';
91    
92 mbroquet 3730 /*Champs du début de la requête*/
93     $champAffiche_debut_commun = array(
94     'dossier.dossier as "'._("dossier").'"',
95 softime 10573 'dossier.dossier_libelle as "'._("dossier").'"'
96     );
97     if ($f->is_option_dossier_commune_enabled()) {
98     $champAffiche_debut_commun[] = 'commune.libelle as "'.__("commune").'"';
99     }
100     array_push($champAffiche_debut_commun,
101 mbroquet 3730 $case_demandeur.' as "'._("petitionnaire").'"',
102     $trim_concat_terrain,
103     'dossier_autorisation_type_detaille.libelle as "'._("nature_dossier").'"',
104     'to_char(dossier.date_depot ,\'DD/MM/YYYY\') as "'._("date_depot").'"',
105     'to_char(dossier.date_complet ,\'DD/MM/YYYY\') as "'._("date_complet").'"',
106     'CASE WHEN dossier.incomplet_notifie IS TRUE AND dossier.incompletude IS TRUE
107     THEN to_char(dossier.date_limite_incompletude ,\'DD/MM/YYYY\')
108     ELSE to_char(dossier.date_limite ,\'DD/MM/YYYY\')
109 softime 10573 END as "'._("date_limite").'"'
110 mbroquet 3730 );
111    
112 softime 10573 if ($f->is_option_date_depot_mairie_enabled() === true) {
113     $champAffiche_debut_commun[] = $champ_date_depot_mairie;
114     }
115 softime 7521 /**
116     * Colonne "Nature des travaux" (regroupe les descriptions des données
117     * techniques).
118     */
119     // Nombre max de caractères à afficher dans la colonne de la nature des travaux
120     // avant de tronquer la valeur et d'ajouter une ellipse "…"
121     $max_chars = 40;
122     //
123     $nature_des_travaux_select = "
124     CASE WHEN char_length(nature_des_travaux) <= ".$max_chars." THEN
125     CONCAT('<span title=\"',
126     nature_des_travaux,
127     '\">',
128     replace(nature_des_travaux, '\n', '<br/>'),
129     '</span>')
130     ELSE
131     CONCAT('<span title=\"',
132     nature_des_travaux,
133     '\">',
134     replace(left(nature_des_travaux, ".$max_chars."), '\n', '<br/>') || '…',
135     '</span>')
136     END as \""._("nature des travaux").'"';
137 softime 10573 // description/nature des travaux. En cas de modif, bloc de code aussi présent dans
138     // dossier.form.inc.php (le formulaire du DI)', 'om_requete' et 'stats à la demande'
139 softime 7521 $nature_des_travaux_from = "
140     INNER JOIN (
141     SELECT
142     CONCAT_WS(
143     '\n',
144     CASE WHEN co_projet_desc = '' THEN
145     NULL
146     ELSE
147     TRIM(co_projet_desc)
148     END,
149     CASE WHEN ope_proj_desc = '' THEN
150     NULL
151     ELSE
152     TRIM(ope_proj_desc)
153     END,
154     CASE WHEN am_projet_desc = '' THEN
155     NULL
156     ELSE
157     TRIM(am_projet_desc)
158     END,
159     CASE WHEN dm_projet_desc = '' THEN
160     NULL
161     ELSE
162     TRIM(dm_projet_desc)
163     END,
164     CASE WHEN donnees_techniques.erp_cstr_neuve IS TRUE
165     THEN '".str_replace("'", "''", _('erp_cstr_neuve'))."' END,
166     CASE WHEN donnees_techniques.erp_trvx_acc IS TRUE
167     THEN '".str_replace("'", "''", _('erp_trvx_acc'))."' END,
168     CASE WHEN donnees_techniques.erp_extension IS TRUE
169     THEN '".str_replace("'", "''", _('erp_extension'))."' END,
170     CASE WHEN donnees_techniques.erp_rehab IS TRUE
171     THEN '".str_replace("'", "''", _('erp_rehab'))."' END,
172     CASE WHEN donnees_techniques.erp_trvx_am IS TRUE
173     THEN '".str_replace("'", "''", _('erp_trvx_am'))."' END,
174     CASE WHEN donnees_techniques.erp_vol_nouv_exist IS TRUE
175     THEN '".str_replace("'", "''", _('erp_vol_nouv_exist'))."' END
176     ) as nature_des_travaux,
177 softime 7685 dossier_instruction
178 softime 7521 FROM ".DB_PREFIXE."donnees_techniques
179     ) as nature_des_travaux
180 softime 7685 ON nature_des_travaux.dossier_instruction = dossier.dossier
181 softime 7521 ";
182     // On ne veut cette colonne que dans les trois listings "Recherche",
183     // "Mes encours" et "Tous les encours"
184     $listings = array("dossier_instruction",
185     "dossier_instruction_mes_encours",
186     "dossier_instruction_tous_encours");
187     //
188     $is_in_obj_whitelist = in_array($obj, $listings);
189     // La variable $retourformulaire permet de s'assurer que l'on est pas dans un
190     // sous-tableau
191     if ($is_in_obj_whitelist === true && $retourformulaire === '') {
192     // Modifie les colonnes à afficher en début du tableau
193     $champAffiche_debut_commun = array(
194     'dossier.dossier as "'._("dossier").'"',
195 softime 10573 'dossier.dossier_libelle as "'._("dossier").'"'
196     );
197     if ($f->is_option_dossier_commune_enabled()) {
198     $champAffiche_debut_commun[] = 'commune.libelle as "'.__("commune").'"';
199     }
200     array_push($champAffiche_debut_commun,
201 softime 7521 $case_demandeur.' as "'._("petitionnaire").'"',
202     $trim_concat_terrain,
203     'dossier_autorisation_type_detaille.libelle as "'._("nature_dossier").'"',
204     $nature_des_travaux_select,
205     'to_char(dossier.date_depot ,\'DD/MM/YYYY\') as "'._("date_depot").'"',
206     'to_char(dossier.date_complet ,\'DD/MM/YYYY\') as "'._("date_complet").'"',
207     'CASE WHEN dossier.incomplet_notifie IS TRUE AND dossier.incompletude IS TRUE
208     THEN to_char(dossier.date_limite_incompletude ,\'DD/MM/YYYY\')
209     ELSE to_char(dossier.date_limite ,\'DD/MM/YYYY\')
210 softime 10573 END as "'._("date_limite").'"'
211 softime 7521 );
212 softime 10573 if ($f->is_option_date_depot_mairie_enabled() === true) {
213     $champAffiche_debut_commun[] = $champ_date_depot_mairie;
214     }
215 softime 7521 // Modifie également le from
216     $table .= $nature_des_travaux_from;
217     }
218    
219 mbroquet 3730 /*Champs de la fin de la requête*/
220     $champAffiche_fin_commun = array(
221     'etat.libelle as "'._("etat").'"',
222     'CASE WHEN dossier.enjeu_urba is TRUE
223     THEN \'<span class="om-icon om-icon-16 om-icon-fix enjeu_urba-16" title="'._("Enjeu URBA").'">URBA</span>\'
224     ELSE \'\'
225     END ||
226     CASE WHEN dossier.enjeu_erp is TRUE
227     THEN \'<span class="om-icon om-icon-16 om-icon-fix enjeu_erp-16" title="'._("Enjeu ERP").'">ERP</span>\'
228     ELSE \'\'
229     END
230     as "'._("enjeu").'"',
231     );
232 softime 7521
233 mbroquet 3730 //
234     if ($_SESSION['niveau'] == '2') {
235     array_push($champAffiche_fin_commun, "om_collectivite.libelle as \""._("collectivite")."\"");
236     }
237    
238 softime 6565 $selection .= "AND groupe.code != 'CTX'";
239    
240 mbroquet 3730 /*Liste des champs affichés dans le tableau de résultat*/
241 softime 7521 $champAffiche = array_merge(
242     $champAffiche_debut_commun,
243     array('instructeur.nom as "'._("instructeur").'"',
244     'division.code as "'._("division").'"',
245     ),
246     $champAffiche_fin_commun
247     );
248 mbroquet 3730
249 softime 6565 // Suppression du bouton d'ajout, qui n'est pas affiché par défaut dans les listings de
250     // dossiers d'instruction
251     $tab_actions['corner']['ajouter'] = NULL;
252    
253 mbroquet 3730 // Liste des autres dossiers d'instructions
254     if ($retourformulaire== 'dossier_instruction'){
255 softime 10573 $champAffiche = array(
256 mbroquet 3730 'b.dossier as "'._("dossier_instruction").'"',
257 softime 10573 'b.dossier_libelle as "'._("dossier").'"'
258     );
259     if ($f->is_option_dossier_commune_enabled()) {
260     $champAffiche[] = 'c.libelle as "'._("commune").'"';
261     }
262     array_push($champAffiche,
263 mbroquet 3730 'dossier_instruction_type.libelle as "'._("demande_type").'"',
264     'to_char(b.date_depot ,\'DD/MM/YYYY\') as "'._("date_depot").'"',
265 softime 10573 'b.etat as "'._("etat").'"'
266 mbroquet 3730 );
267    
268     $table =DB_PREFIXE.'dossier as a
269     JOIN '.DB_PREFIXE.'dossier_autorisation
270     ON a.dossier_autorisation=dossier_autorisation.dossier_autorisation
271     JOIN '.DB_PREFIXE.'dossier as b
272     ON b.dossier_autorisation=dossier_autorisation.dossier_autorisation
273     JOIN '.DB_PREFIXE.'dossier_instruction_type
274     ON dossier_instruction_type.dossier_instruction_type = b.dossier_instruction_type';
275 softime 10573 if ($f->is_option_dossier_commune_enabled()) {
276     $table .= '
277     JOIN '.DB_PREFIXE.'commune as c
278     ON c.commune = dossier.commune';
279     }
280 softime 8989 $selection = 'WHERE a.dossier=\''.$f->db->escapeSimple($idxformulaire).'\'';
281 mbroquet 3730 $tri= "order by b.date_depot ASC";
282    
283 softime 6565 //
284 mbroquet 3730 $tab_actions['left']["consulter"] =
285 softime 7996 array('lien' => ''.OM_ROUTE_FORM.'&obj=dossier_instruction&amp;action=3'.'&amp;idx=',
286 mbroquet 3730 'id' => '&retourformulaire='.$retourformulaire.'&retour=',
287     'lib' => '<span class="om-icon om-icon-16 om-icon-fix consult-16" title="'._('Consulter').'">'._('Consulter').'</span>',
288     'rights' => array('list' => array('dossier_instruction', 'dossier_instruction_consulter'), 'operator' => 'OR'),
289     'ordre' => 10,
290     'ajax' => false);
291    
292     $tab_actions['content'] = $tab_actions['left']["consulter"];
293     $options[] = array(
294     "type"=>"pagination_select",
295     "display"=>false,
296     );
297     }
298 softime 7521 if ( $retourformulaire == "dossier_autorisation") {
299 softime 6565
300     //
301 mbroquet 3730 $tab_actions['left']["consulter"] =
302 softime 7996 array('lien' => ''.OM_ROUTE_FORM.'&obj=dossier_instruction&amp;action=3&amp;idx=',
303 mbroquet 3730 'id' => '&amp;retourformulaire='.$retourformulaire,
304     'lib' => '<span class="om-icon om-icon-16 om-icon-fix consult-16" title="'._('Consulter').'">'._('Consulter').'</span>',
305     'rights' => array('list' => array('dossier_instruction', 'dossier_instruction_consulter'), 'operator' => 'OR'),
306     'ordre' => 10,
307     'ajax' => false);
308    
309     $tab_actions['content'] = $tab_actions['left']["consulter"] ;
310     }
311    
312    
313     // Affichage du bouton de redirection vers le SIG externe si configuré
314     // XXX Ajouter filtre pour afficher l'icone géolocalisation en fonction de la conf SIG du dossier
315     if($f->getParameter('option_sig') == 'sig_externe') {
316     $tab_actions['left']["localiser-sig-externe"] = array(
317 softime 7996 'lien' => ''.OM_ROUTE_FORM.'&obj=dossier_instruction&amp;action=140&amp;idx=',
318 mbroquet 3730 'id' => '',
319     'lib' => '<span class="om-icon om-icon-16 om-icon-fix sig-16" title="'._('Localiser').'">'._('Localiser').'</span>',
320     'rights' => array('list' => array('dossier_instruction', 'dossier_instruction_consulter'), 'operator' => 'OR'),
321     'ordre' => 20,
322     'target' => "_SIG",
323     'ajax' => false);
324     }
325    
326     // Si filtre DI auxquels on peut proposer une autre décision
327     if (isset($extra_parameters["filtre_decision"])
328     && $extra_parameters["filtre_decision"] == true) {
329    
330     // Augmentation de la limite
331     $serie = 50;
332     // Réinitialisation des options
333     $options = array();
334     // Suppression de la recherche avancée
335     $options[] = array(
336     'type' => 'search',
337     'display' => false);
338     // Suppression du sélecteur de pages
339     $options[] = array(
340     'type' => 'pagination_select',
341     'display' => false);
342     // Ajout jointure
343     $table .= "JOIN ".DB_PREFIXE."instruction ON instruction.instruction = (
344     SELECT instruction
345     FROM ".DB_PREFIXE."instruction
346     JOIN ".DB_PREFIXE."evenement on instruction.evenement=evenement.evenement
347     WHERE instruction.dossier = dossier.dossier
348     AND evenement.retour IS FALSE
349     ORDER BY date_evenement DESC, instruction DESC
350     LIMIT 1
351     )
352     JOIN ".DB_PREFIXE."evenement ON instruction.evenement=evenement.evenement
353     JOIN ".DB_PREFIXE."dossier_instruction_type ON dossier.dossier_instruction_type=dossier_instruction_type.dossier_instruction_type AND dossier_instruction_type.code IN ('P', 'T', 'M')";
354     // Modification sélection
355     $selection = "WHERE
356 softime 6565 groupe.code != 'CTX'
357     AND ((evenement.type = 'arrete' AND instruction.om_final_instruction IS TRUE) OR evenement.type = 'changement_decision')
358 mbroquet 3730 AND evenement.retour IS FALSE
359     AND instruction.date_retour_signature IS NULL
360     AND instruction.date_envoi_rar IS NULL
361     AND instruction.date_retour_rar IS NULL
362     AND instruction.date_envoi_controle_legalite IS NULL
363     AND instruction.date_retour_controle_legalite IS NULL
364     AND etat.statut = 'encours'
365     AND om_utilisateur.login != '".$_SESSION['login']."'";
366     // Si collectivité de l'utilisateur niveau mono alors filtre sur celle-ci
367     if ($f->isCollectiviteMono($_SESSION['collectivite']) === true) {
368     $selection .= " AND dossier.om_collectivite=".$_SESSION['collectivite'];
369     }
370     // Modification tri
371     $tri = " ORDER BY dossier.dossier ";
372     }
373    
374 softime 6565 // Gestion des groupes et confidentialité
375     include ('../sql/pgsql/filter_group.inc.php');
376    
377 softime 10573 ?>

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26