1 |
<?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 |
if (isset($idz) && trim($idz) != '') { |
14 |
$ent .= "-> ".mb_strtoupper($idz, "UTF-8")." "; |
15 |
} else { |
16 |
$idz = ''; |
17 |
} |
18 |
|
19 |
$tab_title = _("DI"); |
20 |
|
21 |
/* Test SQL pour récupérer les bons champs selon la qualité du demandeur : |
22 |
* particulier ou personne morale*/ |
23 |
$case_demandeur = "CASE WHEN demandeur.qualite='particulier' |
24 |
THEN TRIM(CONCAT(demandeur.particulier_nom, ' ', demandeur.particulier_prenom)) |
25 |
ELSE TRIM(CONCAT(demandeur.personne_morale_raison_sociale, ' ', demandeur.personne_morale_denomination)) |
26 |
END"; |
27 |
|
28 |
/*Formatage de l'adresse du terrain, concatenantion de plusieurs champs pour les |
29 |
* mettrent dans une seule colonne*/ |
30 |
$trim_concat_terrain ='TRIM(CONCAT(dossier.terrain_adresse_voie_numero,\' \', |
31 |
dossier.terrain_adresse_voie,\' \', |
32 |
dossier.terrain_adresse_lieu_dit,\' \', |
33 |
dossier.terrain_adresse_code_postal,\' \', |
34 |
dossier.terrain_adresse_localite,\' \', |
35 |
dossier.terrain_adresse_bp,\' \', |
36 |
dossier.terrain_adresse_cedex |
37 |
)) as "'._("terrain").'"'; |
38 |
|
39 |
/*Tables sur lesquels la requête va s'effectuer*/ |
40 |
$table = DB_PREFIXE."dossier |
41 |
LEFT JOIN ( |
42 |
SELECT * |
43 |
FROM ".DB_PREFIXE."lien_dossier_demandeur |
44 |
INNER JOIN ".DB_PREFIXE."demandeur |
45 |
ON demandeur.demandeur = lien_dossier_demandeur.demandeur |
46 |
WHERE lien_dossier_demandeur.petitionnaire_principal IS TRUE |
47 |
AND LOWER(demandeur.type_demandeur) = LOWER('petitionnaire') |
48 |
) as demandeur |
49 |
ON demandeur.dossier = dossier.dossier |
50 |
LEFT JOIN ".DB_PREFIXE."dossier_autorisation |
51 |
ON dossier_autorisation.dossier_autorisation = dossier.dossier_autorisation |
52 |
LEFT JOIN ".DB_PREFIXE."dossier_autorisation_type_detaille |
53 |
ON dossier_autorisation_type_detaille.dossier_autorisation_type_detaille = dossier_autorisation.dossier_autorisation_type_detaille |
54 |
LEFT JOIN ".DB_PREFIXE."instructeur |
55 |
ON dossier.instructeur = instructeur.instructeur |
56 |
LEFT JOIN ".DB_PREFIXE."om_utilisateur |
57 |
ON instructeur.om_utilisateur = om_utilisateur.om_utilisateur |
58 |
LEFT JOIN ".DB_PREFIXE."instructeur as instructeur2 |
59 |
ON dossier.instructeur_2 = instructeur2.instructeur |
60 |
LEFT JOIN ".DB_PREFIXE."om_utilisateur as om_utilisateur2 |
61 |
ON instructeur2.om_utilisateur = om_utilisateur2.om_utilisateur |
62 |
LEFT JOIN ".DB_PREFIXE."etat |
63 |
ON dossier.etat = etat.etat |
64 |
LEFT JOIN ".DB_PREFIXE."division |
65 |
ON dossier.division = division.division |
66 |
LEFT JOIN ".DB_PREFIXE."avis_decision |
67 |
ON avis_decision.avis_decision=dossier.avis_decision |
68 |
LEFT JOIN ".DB_PREFIXE."om_collectivite |
69 |
ON dossier.om_collectivite=om_collectivite.om_collectivite |
70 |
LEFT OUTER JOIN ".DB_PREFIXE."arrondissement |
71 |
ON arrondissement.code_postal = dossier.terrain_adresse_code_postal |
72 |
"; |
73 |
|
74 |
|
75 |
/*Champs du début de la requête*/ |
76 |
$champAffiche_debut_commun = array( |
77 |
'dossier.dossier as "'._("dossier").'"', |
78 |
'dossier.dossier_libelle as "'._("dossier").'"', |
79 |
$case_demandeur.' as "'._("petitionnaire").'"', |
80 |
$trim_concat_terrain, |
81 |
'dossier_autorisation_type_detaille.libelle as "'._("nature_dossier").'"', |
82 |
'to_char(dossier.date_depot ,\'DD/MM/YYYY\') as "'._("date_depot").'"', |
83 |
'to_char(dossier.date_complet ,\'DD/MM/YYYY\') as "'._("date_complet").'"', |
84 |
'CASE WHEN dossier.incomplet_notifie IS TRUE AND dossier.incompletude IS TRUE |
85 |
THEN to_char(dossier.date_limite_incompletude ,\'DD/MM/YYYY\') |
86 |
ELSE to_char(dossier.date_limite ,\'DD/MM/YYYY\') |
87 |
END as "'._("date_limite").'"', |
88 |
); |
89 |
|
90 |
/*Champs de la fin de la requête*/ |
91 |
$champAffiche_fin_commun = array( |
92 |
'etat.libelle as "'._("etat").'"', |
93 |
'CASE WHEN dossier.enjeu_urba is TRUE |
94 |
THEN \'<span class="om-icon om-icon-16 om-icon-fix enjeu_urba-16" title="'._("Enjeu URBA").'">URBA</span>\' |
95 |
ELSE \'\' |
96 |
END || |
97 |
CASE WHEN dossier.enjeu_erp is TRUE |
98 |
THEN \'<span class="om-icon om-icon-16 om-icon-fix enjeu_erp-16" title="'._("Enjeu ERP").'">ERP</span>\' |
99 |
ELSE \'\' |
100 |
END |
101 |
as "'._("enjeu").'"', |
102 |
); |
103 |
// |
104 |
if ($_SESSION['niveau'] == '2') { |
105 |
array_push($champAffiche_fin_commun, "om_collectivite.libelle as \""._("collectivite")."\""); |
106 |
} |
107 |
|
108 |
$selection .= "AND groupe.code != 'CTX'"; |
109 |
|
110 |
/*Liste des champs affichés dans le tableau de résultat*/ |
111 |
$champAffiche = array_merge($champAffiche_debut_commun, |
112 |
array('instructeur.nom as "'._("instructeur").'"', |
113 |
'division.code as "'._("division").'"', |
114 |
), |
115 |
$champAffiche_fin_commun); |
116 |
|
117 |
// Suppression du bouton d'ajout, qui n'est pas affiché par défaut dans les listings de |
118 |
// dossiers d'instruction |
119 |
$tab_actions['corner']['ajouter'] = NULL; |
120 |
|
121 |
// Liste des autres dossiers d'instructions |
122 |
if ($retourformulaire== 'dossier_instruction'){ |
123 |
$champAffiche=array( |
124 |
'b.dossier as "'._("dossier_instruction").'"', |
125 |
'b.dossier_libelle as "'._("dossier").'"', |
126 |
'dossier_instruction_type.libelle as "'._("demande_type").'"', |
127 |
'to_char(b.date_depot ,\'DD/MM/YYYY\') as "'._("date_depot").'"', |
128 |
'b.etat as "'._("etat").'"', |
129 |
); |
130 |
|
131 |
$table =DB_PREFIXE.'dossier as a |
132 |
JOIN '.DB_PREFIXE.'dossier_autorisation |
133 |
ON a.dossier_autorisation=dossier_autorisation.dossier_autorisation |
134 |
JOIN '.DB_PREFIXE.'dossier as b |
135 |
ON b.dossier_autorisation=dossier_autorisation.dossier_autorisation |
136 |
JOIN '.DB_PREFIXE.'dossier_instruction_type |
137 |
ON dossier_instruction_type.dossier_instruction_type = b.dossier_instruction_type'; |
138 |
$selection = 'WHERE a.dossier=\''.$idx.'\''; |
139 |
$tri= "order by b.date_depot ASC"; |
140 |
|
141 |
// |
142 |
$tab_actions['left']["consulter"] = |
143 |
array('lien' => 'form.php?obj=dossier_instruction&action=3'.'&idx=', |
144 |
'id' => '&retourformulaire='.$retourformulaire.'&retour=', |
145 |
'lib' => '<span class="om-icon om-icon-16 om-icon-fix consult-16" title="'._('Consulter').'">'._('Consulter').'</span>', |
146 |
'rights' => array('list' => array('dossier_instruction', 'dossier_instruction_consulter'), 'operator' => 'OR'), |
147 |
'ordre' => 10, |
148 |
'ajax' => false); |
149 |
|
150 |
$tab_actions['content'] = $tab_actions['left']["consulter"]; |
151 |
$options[] = array( |
152 |
"type"=>"pagination_select", |
153 |
"display"=>false, |
154 |
); |
155 |
} |
156 |
if ( $retourformulaire == "dossier_autorisation"){ |
157 |
|
158 |
// |
159 |
$tab_actions['left']["consulter"] = |
160 |
array('lien' => '../scr/form.php?obj=dossier_instruction&action=3&idx=', |
161 |
'id' => '&retourformulaire='.$retourformulaire, |
162 |
'lib' => '<span class="om-icon om-icon-16 om-icon-fix consult-16" title="'._('Consulter').'">'._('Consulter').'</span>', |
163 |
'rights' => array('list' => array('dossier_instruction', 'dossier_instruction_consulter'), 'operator' => 'OR'), |
164 |
'ordre' => 10, |
165 |
'ajax' => false); |
166 |
|
167 |
$tab_actions['content'] = $tab_actions['left']["consulter"] ; |
168 |
} |
169 |
|
170 |
|
171 |
// Affichage du bouton de redirection vers le SIG externe si configuré |
172 |
// XXX Ajouter filtre pour afficher l'icone géolocalisation en fonction de la conf SIG du dossier |
173 |
if($f->getParameter('option_sig') == 'sig_externe') { |
174 |
$tab_actions['left']["localiser-sig-externe"] = array( |
175 |
'lien' => 'form.php?obj=dossier_instruction&action=140&idx=', |
176 |
'id' => '', |
177 |
'lib' => '<span class="om-icon om-icon-16 om-icon-fix sig-16" title="'._('Localiser').'">'._('Localiser').'</span>', |
178 |
'rights' => array('list' => array('dossier_instruction', 'dossier_instruction_consulter'), 'operator' => 'OR'), |
179 |
'ordre' => 20, |
180 |
'target' => "_SIG", |
181 |
'ajax' => false); |
182 |
} |
183 |
|
184 |
/*Paramétrage des actions du portlet*/ |
185 |
$portlet_actions['modifier'] = array('lien' => "form.php?obj=dossier_instruction&action=1&idx=", |
186 |
'id' => "&idz=$idz&premier=0&advs_id=&recherche=&tricol=-0&selectioncol=&valide=&retour=form&retourformulaire=".$obj."&retourformulaire2=".$retourformulaire, |
187 |
'lib' => "<span class=\"om-prev-icon om-icon-16 edit-16\" title=\"". |
188 |
_("Modifier")."\">"._("Modifier")."</span>", |
189 |
'ordre' => 10, |
190 |
'rights' => array('list' => array("dossier_instruction_mes_encours_modifier", "dossier_instruction_tous_encours_modifier", "dossier_instruction_mes_clotures_modifier", "dossier_instruction_tous_clotures_modifier", "dossier_instruction_modifier", |
191 |
"dossier_contentieux_mes_infraction", "dossier_contentieux_toutes_infraction"), 'operator' => 'OR'), |
192 |
'ajax' => false); |
193 |
|
194 |
$portlet_actions['supprimer'] = array('lien' => "form.php?obj=dossier_instruction&action=2&idx=", |
195 |
'id' => "&idz=$idz&premier=0&advs_id=&recherche=&tricol=-0&selectioncol=&valide=&retour=form&retourformulaire=".$obj."&retourformulaire2=".$retourformulaire, |
196 |
'lib' => "<span class=\"om-prev-icon om-icon-16 delete-16\" title=\"". |
197 |
_("Supprimer")."\">"._("Supprimer")."</span>", |
198 |
'ordre' => 28, |
199 |
'rights' => array('list' => array("dossier_instruction_mes_encours_supprimer", "dossier_instruction_tous_encours_supprimer", "dossier_instruction_mes_clotures_supprimer", "dossier_instruction_tous_clotures_supprimer", "dossier_instruction_supprimer", |
200 |
"dossier_contentieux_mes_infraction", "dossier_contentieux_toutes_infraction"), 'operator' => 'OR'), |
201 |
'ajax' => false); |
202 |
|
203 |
// Si filtre DI auxquels on peut proposer une autre décision |
204 |
if (isset($extra_parameters["filtre_decision"]) |
205 |
&& $extra_parameters["filtre_decision"] == true) { |
206 |
|
207 |
// Augmentation de la limite |
208 |
$serie = 50; |
209 |
// Réinitialisation des options |
210 |
$options = array(); |
211 |
// Suppression de la recherche avancée |
212 |
$options[] = array( |
213 |
'type' => 'search', |
214 |
'display' => false); |
215 |
// Suppression du sélecteur de pages |
216 |
$options[] = array( |
217 |
'type' => 'pagination_select', |
218 |
'display' => false); |
219 |
// Ajout jointure |
220 |
$table .= "JOIN ".DB_PREFIXE."instruction ON instruction.instruction = ( |
221 |
SELECT instruction |
222 |
FROM ".DB_PREFIXE."instruction |
223 |
JOIN ".DB_PREFIXE."evenement on instruction.evenement=evenement.evenement |
224 |
WHERE instruction.dossier = dossier.dossier |
225 |
AND evenement.retour IS FALSE |
226 |
ORDER BY date_evenement DESC, instruction DESC |
227 |
LIMIT 1 |
228 |
) |
229 |
JOIN ".DB_PREFIXE."evenement ON instruction.evenement=evenement.evenement |
230 |
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')"; |
231 |
// Modification sélection |
232 |
$selection = "WHERE |
233 |
groupe.code != 'CTX' |
234 |
AND ((evenement.type = 'arrete' AND instruction.om_final_instruction IS TRUE) OR evenement.type = 'changement_decision') |
235 |
AND evenement.retour IS FALSE |
236 |
AND instruction.date_retour_signature IS NULL |
237 |
AND instruction.date_envoi_rar IS NULL |
238 |
AND instruction.date_retour_rar IS NULL |
239 |
AND instruction.date_envoi_controle_legalite IS NULL |
240 |
AND instruction.date_retour_controle_legalite IS NULL |
241 |
AND etat.statut = 'encours' |
242 |
AND om_utilisateur.login != '".$_SESSION['login']."'"; |
243 |
// Si collectivité de l'utilisateur niveau mono alors filtre sur celle-ci |
244 |
if ($f->isCollectiviteMono($_SESSION['collectivite']) === true) { |
245 |
$selection .= " AND dossier.om_collectivite=".$_SESSION['collectivite']; |
246 |
} |
247 |
// Modification tri |
248 |
$tri = " ORDER BY dossier.dossier "; |
249 |
} |
250 |
|
251 |
// Gestion des groupes et confidentialité |
252 |
include ('../sql/pgsql/filter_group.inc.php'); |
253 |
|
254 |
?> |