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 ".DB_PREFIXE."lien_dossier_demandeur |
42 |
ON lien_dossier_demandeur.dossier=dossier.dossier |
43 |
AND lien_dossier_demandeur.petitionnaire_principal IS TRUE |
44 |
LEFT JOIN ".DB_PREFIXE."demandeur |
45 |
ON lien_dossier_demandeur.demandeur=demandeur.demandeur |
46 |
LEFT JOIN ".DB_PREFIXE."dossier_autorisation |
47 |
ON dossier_autorisation.dossier_autorisation = dossier.dossier_autorisation |
48 |
LEFT JOIN ".DB_PREFIXE."dossier_autorisation_type_detaille |
49 |
ON dossier_autorisation_type_detaille.dossier_autorisation_type_detaille = dossier_autorisation.dossier_autorisation_type_detaille |
50 |
LEFT JOIN ".DB_PREFIXE."instructeur |
51 |
ON dossier.instructeur = instructeur.instructeur |
52 |
LEFT JOIN ".DB_PREFIXE."om_utilisateur |
53 |
ON instructeur.om_utilisateur = om_utilisateur.om_utilisateur |
54 |
LEFT JOIN ".DB_PREFIXE."etat |
55 |
ON dossier.etat = etat.etat |
56 |
LEFT JOIN ".DB_PREFIXE."division |
57 |
ON dossier.division = division.division |
58 |
LEFT JOIN ".DB_PREFIXE."avis_decision |
59 |
ON avis_decision.avis_decision=dossier.avis_decision |
60 |
LEFT JOIN ".DB_PREFIXE."om_collectivite |
61 |
ON dossier.om_collectivite=om_collectivite.om_collectivite |
62 |
"; |
63 |
|
64 |
|
65 |
/*Champs du début de la requête*/ |
66 |
$champAffiche_debut_commun = array( |
67 |
'dossier.dossier as "'._("dossier").'"', |
68 |
'dossier.dossier_libelle as "'._("dossier").'"', |
69 |
$case_demandeur.' as "'._("petitionnaire").'"', |
70 |
$trim_concat_terrain, |
71 |
'dossier_autorisation_type_detaille.libelle as "'._("nature_dossier").'"', |
72 |
'to_char(dossier.date_depot ,\'DD/MM/YYYY\') as "'._("date_depot").'"', |
73 |
'to_char(dossier.date_complet ,\'DD/MM/YYYY\') as "'._("date_complet").'"', |
74 |
'CASE WHEN dossier.incomplet_notifie IS TRUE AND dossier.incompletude IS TRUE |
75 |
THEN to_char(dossier.date_limite_incompletude ,\'DD/MM/YYYY\') |
76 |
ELSE to_char(dossier.date_limite ,\'DD/MM/YYYY\') |
77 |
END as "'._("date_limite").'"', |
78 |
); |
79 |
|
80 |
/*Champs de la fin de la requête*/ |
81 |
$champAffiche_fin_commun = array( |
82 |
'etat.libelle as "'._("etat").'"', |
83 |
'CASE WHEN dossier.enjeu_urba is TRUE |
84 |
THEN \'<span class="om-icon om-icon-16 om-icon-fix enjeu_urba-16" title="'._("Enjeu URBA").'">URBA</span>\' |
85 |
ELSE \'\' |
86 |
END || |
87 |
CASE WHEN dossier.enjeu_erp is TRUE |
88 |
THEN \'<span class="om-icon om-icon-16 om-icon-fix enjeu_erp-16" title="'._("Enjeu ERP").'">ERP</span>\' |
89 |
ELSE \'\' |
90 |
END |
91 |
as "'._("enjeu").'"', |
92 |
); |
93 |
// |
94 |
if ($_SESSION['niveau'] == '2') { |
95 |
array_push($champAffiche_fin_commun, "om_collectivite.libelle as \""._("collectivite")."\""); |
96 |
} |
97 |
|
98 |
/*Liste des champs affichés dans le tableau de résultat*/ |
99 |
$champAffiche = array_merge($champAffiche_debut_commun, |
100 |
array('instructeur.nom as "'._("instructeur").'"', |
101 |
'division.code as "'._("division").'"', |
102 |
), |
103 |
$champAffiche_fin_commun); |
104 |
|
105 |
// Liste des autres dossiers d'instructions |
106 |
if ($retourformulaire== 'dossier_instruction'){ |
107 |
$champAffiche=array( |
108 |
'b.dossier as "'._("dossier_instruction").'"', |
109 |
'b.dossier_libelle as "'._("dossier").'"', |
110 |
'dossier_instruction_type.libelle as "'._("demande_type").'"', |
111 |
'to_char(b.date_depot ,\'DD/MM/YYYY\') as "'._("date_depot").'"', |
112 |
'b.etat as "'._("etat").'"', |
113 |
); |
114 |
|
115 |
$table =DB_PREFIXE.'dossier as a |
116 |
JOIN '.DB_PREFIXE.'dossier_autorisation |
117 |
ON a.dossier_autorisation=dossier_autorisation.dossier_autorisation |
118 |
JOIN '.DB_PREFIXE.'dossier as b |
119 |
ON b.dossier_autorisation=dossier_autorisation.dossier_autorisation |
120 |
JOIN '.DB_PREFIXE.'dossier_instruction_type |
121 |
ON dossier_instruction_type.dossier_instruction_type = b.dossier_instruction_type'; |
122 |
$selection = 'WHERE a.dossier=\''.$idx.'\''; |
123 |
$tri= "order by b.date_depot ASC"; |
124 |
|
125 |
//Suppression du bouton d'ajout |
126 |
$tab_actions['corner']['ajouter'] = NULL; |
127 |
|
128 |
//Suppression du bouton d'ajout |
129 |
$tab_actions['left']["consulter"] = |
130 |
array('lien' => 'form.php?obj=dossier_instruction&action=3'.'&idx=', |
131 |
'id' => '&retourformulaire='.$retourformulaire.'&retour=', |
132 |
'lib' => '<span class="om-icon om-icon-16 om-icon-fix consult-16" title="'._('Consulter').'">'._('Consulter').'</span>', |
133 |
'rights' => array('list' => array('dossier_instruction', 'dossier_instruction_consulter'), 'operator' => 'OR'), |
134 |
'ordre' => 10, |
135 |
'ajax' => false); |
136 |
|
137 |
$tab_actions['content'] = $tab_actions['left']["consulter"]; |
138 |
$options[] = array( |
139 |
"type"=>"pagination_select", |
140 |
"display"=>false, |
141 |
); |
142 |
} |
143 |
if ( $retourformulaire == "dossier_autorisation"){ |
144 |
|
145 |
//Suppression du bouton d'ajout |
146 |
$tab_actions['corner']['ajouter'] = NULL; |
147 |
|
148 |
//Suppression du bouton d'ajout |
149 |
$tab_actions['left']["consulter"] = |
150 |
array('lien' => '../scr/form.php?obj=dossier_instruction&action=3&idx=', |
151 |
'id' => '&retourformulaire='.$retourformulaire, |
152 |
'lib' => '<span class="om-icon om-icon-16 om-icon-fix consult-16" title="'._('Consulter').'">'._('Consulter').'</span>', |
153 |
'rights' => array('list' => array('dossier_instruction', 'dossier_instruction_consulter'), 'operator' => 'OR'), |
154 |
'ordre' => 10, |
155 |
'ajax' => false); |
156 |
|
157 |
$tab_actions['content'] = $tab_actions['left']["consulter"] ; |
158 |
} |
159 |
|
160 |
|
161 |
// Affichage du bouton de redirection vers le SIG externe si configuré |
162 |
// XXX Ajouter filtre pour afficher l'icone géolocalisation en fonction de la conf SIG du dossier |
163 |
if($f->getParameter('option_sig') == 'sig_externe') { |
164 |
$tab_actions['left']["localiser-sig-externe"] = array( |
165 |
'lien' => 'form.php?obj=dossier_instruction&action=140&idx=', |
166 |
'id' => '', |
167 |
'lib' => '<span class="om-icon om-icon-16 om-icon-fix sig-16" title="'._('Localiser').'">'._('Localiser').'</span>', |
168 |
'rights' => array('list' => array('dossier_instruction', 'dossier_instruction_consulter'), 'operator' => 'OR'), |
169 |
'ordre' => 20, |
170 |
'target' => "_SIG", |
171 |
'ajax' => false); |
172 |
} |
173 |
|
174 |
/*Paramétrage des actions du portlet*/ |
175 |
$portlet_actions['modifier'] = array('lien' => "form.php?obj=dossier_instruction&action=1&idx=", |
176 |
'id' => "&idz=$idz&premier=0&advs_id=&recherche=&tricol=-0&selectioncol=&valide=&retour=form&retourformulaire=".$obj."&retourformulaire2=".$retourformulaire, |
177 |
'lib' => "<span class=\"om-prev-icon om-icon-16 edit-16\" title=\"". |
178 |
_("Modifier")."\">"._("Modifier")."</span>", |
179 |
'ordre' => 10, |
180 |
'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"), 'operator' => 'OR'), |
181 |
'ajax' => false); |
182 |
|
183 |
$portlet_actions['supprimer'] = array('lien' => "form.php?obj=dossier_instruction&action=2&idx=", |
184 |
'id' => "&idz=$idz&premier=0&advs_id=&recherche=&tricol=-0&selectioncol=&valide=&retour=form&retourformulaire=".$obj."&retourformulaire2=".$retourformulaire, |
185 |
'lib' => "<span class=\"om-prev-icon om-icon-16 delete-16\" title=\"". |
186 |
_("Supprimer")."\">"._("Supprimer")."</span>", |
187 |
'ordre' => 28, |
188 |
'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"), 'operator' => 'OR'), |
189 |
'ajax' => false); |
190 |
|
191 |
// Si filtre DI auxquels on peut proposer une autre décision |
192 |
if (isset($extra_parameters["filtre_decision"]) |
193 |
&& $extra_parameters["filtre_decision"] == true) { |
194 |
|
195 |
// Suppression du bouton d'ajout |
196 |
$tab_actions['corner']['ajouter'] = NULL; |
197 |
// Augmentation de la limite |
198 |
$serie = 50; |
199 |
// Réinitialisation des options |
200 |
$options = array(); |
201 |
// Suppression de la recherche avancée |
202 |
$options[] = array( |
203 |
'type' => 'search', |
204 |
'display' => false); |
205 |
// Suppression du sélecteur de pages |
206 |
$options[] = array( |
207 |
'type' => 'pagination_select', |
208 |
'display' => false); |
209 |
// Ajout jointure |
210 |
$table .= "JOIN ".DB_PREFIXE."instruction ON instruction.instruction = ( |
211 |
SELECT instruction |
212 |
FROM ".DB_PREFIXE."instruction |
213 |
JOIN ".DB_PREFIXE."evenement on instruction.evenement=evenement.evenement |
214 |
WHERE instruction.dossier = dossier.dossier |
215 |
AND evenement.retour IS FALSE |
216 |
ORDER BY date_evenement DESC, instruction DESC |
217 |
LIMIT 1 |
218 |
) |
219 |
JOIN ".DB_PREFIXE."evenement ON instruction.evenement=evenement.evenement |
220 |
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')"; |
221 |
// Modification sélection |
222 |
$selection = "WHERE |
223 |
((evenement.type = 'arrete' AND instruction.om_final_instruction IS TRUE) OR evenement.type = 'changement_decision') |
224 |
AND evenement.retour IS FALSE |
225 |
AND instruction.date_retour_signature IS NULL |
226 |
AND instruction.date_envoi_rar IS NULL |
227 |
AND instruction.date_retour_rar IS NULL |
228 |
AND instruction.date_envoi_controle_legalite IS NULL |
229 |
AND instruction.date_retour_controle_legalite IS NULL |
230 |
AND etat.statut = 'encours' |
231 |
AND om_utilisateur.login != '".$_SESSION['login']."'"; |
232 |
// Si collectivité de l'utilisateur niveau mono alors filtre sur celle-ci |
233 |
if ($f->isCollectiviteMono($_SESSION['collectivite']) === true) { |
234 |
$selection .= " AND dossier.om_collectivite=".$_SESSION['collectivite']; |
235 |
} |
236 |
// Modification tri |
237 |
$tri = " ORDER BY dossier.dossier "; |
238 |
} |
239 |
|
240 |
?> |