/[openfoncier]/trunk/obj/utils.class.php
ViewVC logotype

Annotation of /trunk/obj/utils.class.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2605 - (hide annotations)
Thu Dec 12 18:00:35 2013 UTC (11 years, 1 month ago) by softime
File size: 24126 byte(s)
- Ajout du profil 'ADMINISTRATEUR FONCTIONNEL' qui a accès aux actions du guichet unique, de l'instruction et du suivi.
- Modification des tests pour lancer une fonction test avec plusieurs utilisateurs
- Ajout du controle sur ce nouveau profil pour avoir accès aux traitements comme l'administrateur /!\ C'est une mauvaise méthode qui devra être corrigée pour utiliser seulement des droits
- Ajout de droit pour les dashboard des menus
- MàJ HISTORY.txt

1 fraynaud 3 <?php
2     /**
3 fraynaud 96 * Ce fichier est destine a permettre la surcharge de certaines methodes de
4     * la classe om_application pour des besoins specifiques de l'application
5 fraynaud 3 *
6     * @package openmairie_exemple
7 fraynaud 96 * @version SVN : $Id: utils.class.php 547 2011-08-25 12:03:42Z fmichon $
8 fraynaud 3 */
9    
10     /**
11     *
12     */
13     require_once "../dyn/locales.inc.php";
14    
15     /**
16     *
17     */
18     require_once "../dyn/include.inc.php";
19    
20     /**
21     *
22     */
23     require_once "../dyn/debug.inc.php";
24    
25     /**
26     *
27     */
28     (defined("PATH_OPENMAIRIE") ? "" : define("PATH_OPENMAIRIE", ""));
29    
30     /**
31     *
32     */
33     require_once PATH_OPENMAIRIE."om_application.class.php";
34    
35     /**
36     *
37     */
38     class utils extends application {
39 fraynaud 96
40 fmichon 686 // {{{
41 fmichon 818
42     /**
43     *
44     */
45     function isAccredited($obj = NULL, $operator = "AND") {
46     // Lorsque l'utilisateur a le login 'admin' alors il est authorisé à
47     // accéder à toutes les fonctions du logiciel
48     // XXX à modifier pour changer ça vers un profil et non un login utilisateur
49     if ($_SESSION["login"] == "admin") {
50     return true;
51     }
52     // Fonctionnement standard
53     return parent::isAccredited($obj, $operator);
54     }
55    
56     // }}}
57 fmichon 686
58 fmichon 818 // {{{
59    
60 fmichon 817 var $om_utilisateur = array();
61     var $user_is_instr = NULL;
62 softime 2120 var $user_is_service = NULL;
63     var $user_is_admin = NULL;
64 fmichon 817 var $user_is_service_ext = NULL;
65 softime 2120 var $user_is_qualificateur = NULL;
66     var $user_is_chef = NULL;
67     var $user_is_divisionnaire = NULL;
68     var $user_is_service_int = NULL;
69 fmichon 817
70     /**
71     * Méthode de récupération des informations de l'utilisateur connecté.
72     */
73     function getUserInfos() {
74    
75     // Si l'utilisateur est loggé $_SESSION existe
76     if(isset($_SESSION['login']) AND !empty($_SESSION['login'])) {
77    
78     // Récupération des infos utilisateur
79     $sqlUser = "SELECT om_utilisateur, nom, email, login, om_collectivite, om_profil ".
80 fmichon 924 "FROM ".DB_PREFIXE."om_utilisateur WHERE login = '".$_SESSION['login']."'";
81 fmichon 817 $resUser=$this->db->query($sqlUser);
82     $this->addToLog("getUserInfos(): db->query(\"".$sqlUser."\");", VERBOSE_MODE);
83 vpihour 1777 if ( database::isError($resUser)){
84     die();
85     }
86 fmichon 817 $this->om_utilisateur=&$resUser->fetchRow(DB_FETCHMODE_ASSOC);
87 softime 2034
88     // Récupère le profil et test si c'est un
89     $sqlProfil = "SELECT libelle FROM ".DB_PREFIXE."om_profil WHERE om_profil = ".$this->om_utilisateur['om_profil'];
90     $resProfil=$this->db->getOne($sqlProfil);
91     $this->addToLog("getUserInfos(): db->getOne(\"".$sqlProfil."\");", VERBOSE_MODE);
92     if (database::isError($resProfil)){
93     die();
94     }
95 softime 2120 // Sauvegarde le libelle du profil
96     $this->om_utilisateur["libelle_profil"] = $resProfil;
97    
98 softime 2034 // si c'est un administrateur technique
99 softime 2605 // XXX Mauvaise méthode, il faut utiliser isAccredited
100     if ($resProfil == "ADMINISTRATEUR TECHNIQUE"
101     || $resProfil == "ADMINISTRATEUR FONCTIONNEL") {
102 softime 2034 $this->user_is_admin = true;
103     } else {
104     $this->user_is_admin = false;
105     }
106 softime 2120
107     //si c'est un service externe
108     if ($resProfil == "SERVICE CONSULTÉ") {
109     $this->user_is_service_ext = true;
110     } else {
111     $this->user_is_service_ext = false;
112     }
113    
114     //si c'est un service interne
115     if ($resProfil == "SERVICE CONSULTÉ INTERNE") {
116     $this->user_is_service_int = true;
117     } else {
118     $this->user_is_service_int = false;
119     }
120    
121     // si c'est un qualificateur
122     if ($resProfil == "QUALIFICATEUR") {
123     $this->user_is_qualificateur = true;
124     } else {
125     $this->user_is_qualificateur = false;
126     }
127    
128     // si c'est un chef de service
129     if ($resProfil == "CHEF DE SERVICE") {
130     $this->user_is_chef = true;
131     } else {
132     $this->user_is_chef = false;
133     }
134    
135     // si c'est un divisionnaire
136     if ($resProfil == "DIVISIONNAIRE") {
137     $this->user_is_divisionnaire = true;
138     } else {
139     $this->user_is_divisionnaire = false;
140     }
141 fmichon 817
142     // Récupération des infos instructeur
143 fmichon 943 $sqlInstr = "SELECT instructeur.instructeur, instructeur.nom, instructeur.telephone,
144     division.division, division.code, division.libelle ".
145 fmichon 924 "FROM ".DB_PREFIXE."instructeur INNER JOIN ".DB_PREFIXE."division ON division.division=instructeur.division ".
146 fmichon 817 "WHERE instructeur.om_utilisateur = ".$this->om_utilisateur['om_utilisateur'];
147     $resInstr=$this->db->query($sqlInstr);
148     $this->addToLog("getUserInfos(): db->query(\"".$sqlInstr."\");", VERBOSE_MODE);
149 vpihour 1777 if ( database::isError($resInstr)){
150     die();
151     }
152 fmichon 817 $tempInstr=&$resInstr->fetchRow(DB_FETCHMODE_ASSOC);
153     // Si il y a un resultat c'est un instructeur
154     if(count($tempInstr)>0) {
155     $this->user_is_instr=true;
156     $this->om_utilisateur = array_merge($this->om_utilisateur,$tempInstr);
157     } else {
158     $this->user_is_instr=false;
159     }
160    
161 softime 2120 // Récupération des infos de services consultés
162     $sqlServ = "SELECT service.service, service.abrege, service.libelle ".
163 fmichon 924 "FROM ".DB_PREFIXE."service ".
164     "INNER JOIN ".DB_PREFIXE."lien_service_om_utilisateur ON lien_service_om_utilisateur.service=service.service ".
165 fmichon 817 "WHERE lien_service_om_utilisateur.om_utilisateur = ".$this->om_utilisateur['om_utilisateur'];
166 softime 2120 $resServ=$this->db->query($sqlServ);
167     $this->addToLog("getUserInfos(): db->query(\"".$sqlServ."\");", VERBOSE_MODE);
168     if ( database::isError($resServ)){
169 vpihour 1777 die();
170     }
171 fmichon 817
172 softime 2120 while ($tempServ=&$resServ->fetchRow(DB_FETCHMODE_ASSOC)) {
173     $this->om_utilisateur['service'][]=$tempServ;
174 fmichon 817 }
175     // Si il y a un resultat c'est un utilisateur de service
176     if(isset($this->om_utilisateur['service'])) {
177 softime 2120 $this->user_is_service=true;
178 fmichon 817 } else {
179 softime 2120 $this->user_is_service=false;
180 fmichon 817 }
181     }
182     }
183    
184     /**
185 softime 2120 * getter user_is_service
186 fmichon 817 */
187 softime 2120 function isUserService() {
188 fmichon 817 //
189 softime 2120 if (is_null($this->user_is_service)) {
190 fmichon 817 //
191     $this->getUserInfos();
192     }
193     //
194 softime 2120 return $this->user_is_service;
195 fmichon 817 }
196    
197     /**
198     * getter user_is_instr
199     */
200     function isUserInstructeur() {
201     //
202     if (is_null($this->user_is_instr)) {
203     //
204     $this->getUserInfos();
205     }
206     //
207     return $this->user_is_instr;
208     }
209    
210 softime 2034 function isUserAdministrateur() {
211     //
212     if (is_null($this->user_is_admin)) {
213     //
214     $this->getUserInfos();
215     }
216     //
217     return $this->user_is_admin;
218     }
219    
220 softime 2120 /**
221     * getter user_is_service_ext
222     */
223     function isUserServiceExt() {
224     //
225     if (is_null($this->user_is_service_ext)) {
226     //
227     $this->getUserInfos();
228     }
229     //
230     return $this->user_is_service_ext;
231     }
232    
233     /**
234     * getter user_is_service_int
235     */
236     function isUserServiceInt() {
237     //
238     if (is_null($this->user_is_service_int)) {
239     //
240     $this->getUserInfos();
241     }
242     //
243     return $this->user_is_service_int;
244     }
245    
246     /**
247     * getter user_is_qualificateur
248     */
249     function isUserQualificateur() {
250     //
251     if (is_null($this->user_is_qualificateur)) {
252     //
253     $this->getUserInfos();
254     }
255     //
256     return $this->user_is_qualificateur;
257     }
258    
259     /**
260     * getter user_is_chef
261     */
262     function isUserChef() {
263     //
264     if (is_null($this->user_is_chef)) {
265     //
266     $this->getUserInfos();
267     }
268     //
269     return $this->user_is_chef;
270     }
271    
272     /**
273     * getter user_is_divisionnaire
274     */
275     function isUserDivisionnaire() {
276     //
277     if (is_null($this->user_is_divisionnaire)) {
278     //
279     $this->getUserInfos();
280     }
281     //
282     return $this->user_is_divisionnaire;
283     }
284    
285 fmichon 686 // Ajout de variables de session contenant la division pour permettre une
286     // utilisation plus efficace dans les requetes
287     function triggerAfterLogin($utilisateur = NULL) {
288     //
289     $sql = "SELECT instructeur.division, division.code
290     FROM ".DB_PREFIXE."instructeur
291     LEFT JOIN ".DB_PREFIXE."division
292     ON instructeur.division = division.division
293     WHERE instructeur.om_utilisateur='".$utilisateur["om_utilisateur"]."'";
294     $res = $this->db->query($sql);
295     $this->addToLog("triggerAfterLogin(): db->query(\"".$sql."\");", VERBOSE_MODE);
296 vpihour 1777 if ( database::isError($res)){
297     die();
298     }
299 fmichon 686 $row = $res->fetchrow(DB_FETCHMODE_ASSOC);
300     //
301     if (isset($row["division"]) && $row["division"] != NULL) {
302     $_SESSION["division"] = $row["division"];
303     $_SESSION["division_code"] = $row["code"];
304     } else {
305     $_SESSION["division"] = "0";
306     $_SESSION["division_code"] = "";
307     }
308    
309     }
310    
311     // Affichage des actions supplémentaires
312     function displayActionExtras() {
313     // Affichage de la division si l'utilisateur en possède une
314     if ($_SESSION["division"] != 0) {
315     echo "\t\t\t<li class=\"action-division\">";
316     echo "(".$_SESSION['division_code'].")";
317     echo "</li>\n";
318     }
319     }
320 fmichon 817
321 fmichon 686 // }}}
322    
323 fmichon 949
324     function getDivisionFromDossier($dossier) {
325     //
326     $sql = "select division from ".DB_PREFIXE."dossier ";
327     $sql .= " where dossier='".$dossier."'";
328     //
329     $division = $this->db->getOne($sql);
330     $this->addToLog("getDivisionFromDossier(): db->getone(\"".$sql."\")", VERBOSE_MODE);
331     database::isError($division);
332     //
333     return $division;
334     }
335    
336 fmichon 818 // {{{ GESTION DES FICHIERS
337 nhaye 580
338 nhaye 677 /**
339     *
340     */
341     function notExistsError ($explanation = NULL) {
342     // message
343     $message_class = "error";
344     $message = _("Cette page n'existe pas.");
345     $this->addToMessage ($message_class, $message);
346     //
347     $this->setFlag(NULL);
348     $this->display();
349    
350     //
351     die();
352     }
353 vpihour 1978
354 fmichon 818 // }}}
355 vpihour 1978 /**
356     * Retourne le statut du dossier d'instruction
357     * @param string $idx Identifiant du dossier d'instruction
358     * @return string Le statut du dossier d'instruction
359     */
360     function getStatutDossier($idx){
361    
362     $statut = '';
363    
364     //Si l'identifiant du dossier d'instruction fourni est correct
365     if ( $idx != '' ){
366    
367     //On récupère le statut de l'état du dossier à partir de l'identifiant du
368     //dossier d'instruction
369     $sql = "SELECT etat.statut
370     FROM ".DB_PREFIXE."dossier
371     LEFT JOIN
372     ".DB_PREFIXE."etat
373     ON
374     dossier.etat = etat.etat
375     WHERE dossier ='".$idx."'";
376     $statut = $this->db->getOne($sql);
377     $this->addToLog("getStatutDossier() : db->getOne(\"".$sql."\")", VERBOSE_MODE);
378     if ( database::isError($statut)){
379     die();
380     }
381     }
382     return $statut;
383     }
384 softime 2170
385     /**
386     * Formate le champ pour le type Timestamp
387     * @param date $date_str Date
388     * @param boolean $show Format pour l'affichage
389     * @return mixed False si le traitement échoue ou la date formatée
390     */
391     function formatTimestamp ($date_str, $show = true) {
392    
393     // Sépare la date et l'heure
394     $date = explode(" ", $date_str);
395     if (count($date) != 2) {
396     return false;
397     }
398    
399     // Date en BDD
400     $date_db = explode ('-', $date[0]);
401     // Date en affichage
402     $date_show = explode ('/', $date[0]);
403    
404     // Contrôle la composition de la date
405     if (count ($date_db) != 3 and count ($date_show) != 3) {
406     return false;
407     }
408    
409     if (count ($date_db) == 3) {
410     // Vérifie que c'est une date valide
411     if (!checkdate($date_db[1], $date_db[2], $date_db[0])) {
412     return false;
413     }
414     // Si c'est pour l'affichage de la date
415     if ($show == true) {
416     return $date_db [2]."/".$date_db [1]."/".$date_db [0]." ".$date[1];
417     } else {
418     return $date[0];
419     }
420     }
421    
422     //
423     if (count ($date_show) == 3) {
424     // Vérifie que c'est une date valide
425     if (!checkdate($date_show[1], $date_show[0], $date_show[2])) {
426     return false;
427     }
428     // Si c'est pour l'affichage de la date
429     if ($show == true) {
430     return $date[0];
431     } else {
432     return $date_show [2]."-".$date_show [1]."-".$date_show [0]." ".$date[1];
433     }
434    
435     }
436     return false;
437    
438     }
439 softime 2172
440     /**
441     * Permet de calculer la liste des parcelles à partir de la chaîne passée en paramètre
442     * et la retourner sous forme d'un tableau associatif
443     *
444     * @param string $strParcelles chaîne de la parcelles
445     * @return array (array(quartier, section, parcelle), ...)
446     */
447     function parseParcelles($strParcelles) {
448    
449     // Séparation des lignes
450     $references = explode(";", $strParcelles);
451     $liste_parcelles = array();
452    
453     // On boucle sur chaque ligne pour ajouter la liste des parcelles de chaque ligne
454     foreach ($references as $parcelles) {
455    
456     // On transforme la chaîne de la ligne de parcelles en tableau
457     $ref = str_split($parcelles);
458     // Les 1er caractères sont numériques
459     $num = true;
460    
461     // Tableau des champs de la ligne de références cadastrales
462     $reference_tab = array();
463     $temp = "";
464     foreach ($ref as $carac) {
465    
466     // Permet de tester si le caractère courant est de même type que le précédent
467     if(is_numeric($carac) === $num) {
468     $temp .= $carac;
469     } else {
470     // Bascule
471     $num = !$num;
472     // On stock le champ
473     $reference_tab[] = $temp;
474     // re-init de la valeur temporaire pour le champ suivant
475     $temp = $carac;
476     }
477     }
478     // Stockage du dernier champ sur lequel il n'y a pas eu de bascule
479     $reference_tab[] = $temp;
480     // Calcul des parcelles
481     $quartier = $reference_tab[0];
482     $sect = $reference_tab[1];
483    
484     $ancien_ref_parc = "";
485     for ($i=2; $i < count($reference_tab); $i+=2) {
486     $parc["quartier"] = $quartier;
487 softime 2267 // Met en majuscule si besoin
488     $parc["section"] = strtoupper($sect);
489 softime 2172 if( $ancien_ref_parc == "" OR $reference_tab[$i-1] == "/") {
490     // 1ere parcelle ou parcelle individuelle
491 softime 2267 // Compléte par des "0" le début de la chaîne si besoin
492     $parc["parcelle"] = str_pad($reference_tab[$i], 4, "0", STR_PAD_LEFT);
493 softime 2172 // Ajout d'une parcelle à la liste
494     $liste_parcelles[] = $parc;
495     } elseif ($reference_tab[$i-1] == "A") {
496     // Interval de parcelles
497     for ($j=$ancien_ref_parc+1; $j <= $reference_tab[$i]; $j++) {
498     // Compléte par des "0" le début de la chaîne si besoin
499     $parc["parcelle"] = str_pad($j, 4, "0", STR_PAD_LEFT);
500     // Ajout d'une parcelle à la liste
501     $liste_parcelles[] = $parc;
502     }
503     }
504     //Gestion des erreurs
505     else{
506    
507     echo _("Une erreur de formattage a ete detecte dans la reference cadastrale du dossier ").$this->row['dossier'];
508     }
509     // Sauvegarde de la référence courante de parcelle
510     $ancien_ref_parc = $reference_tab[$i];
511     }
512     }
513    
514     return $liste_parcelles;
515     }
516    
517     /**
518     * Formate les parcelles en ajoutant le code impôt
519     * @param array $liste_parcelles Tableau des parcelles
520     * @return string Liste des parcelles formatées
521     */
522     function formatParcelleToSend($liste_parcelles) {
523    
524     //
525 nhaye 2180 $wParcelle = array();
526 softime 2172
527     //Formatage des références cadastrales pour l'envoi
528     foreach ($liste_parcelles as $value) {
529    
530     // On ajoute les données dans le tableau que si quartier + section + parcelle
531     // a été fourni
532 nhaye 2180 if ($value["quartier"] !== ""
533     && $value["section"] !== ""
534     && $value["parcelle"] !== ""){
535 softime 2172
536     //On récupère le code impôt de l'arrondissement
537     $arrondissement = $this->getCodeImpotByQuartier($value["quartier"]);
538    
539     //On ajoute la parcelle, si un arrondissement a été trouvé
540     if ($arrondissement!=="") {
541     //
542 nhaye 2180 $wParcelle[] = $arrondissement.$value["quartier"]." ".
543     $value["section"].$value["parcelle"];
544 softime 2172
545     }
546     }
547     }
548    
549     //
550     return $wParcelle;
551     }
552    
553     /**
554     * Récupère le code impôt par rapport au quartier
555     * @param string $quartier Numéro de quartier
556     * @return string Code impôt
557     */
558     function getCodeImpotByQuartier($quartier) {
559    
560     $arrondissement = "";
561    
562     // Si le quartier fournis est correct
563     if ($quartier != "") {
564    
565     // Requête SQL
566     $sql = "SELECT
567     arrondissement.code_impots
568     FROM
569     ".DB_PREFIXE."arrondissement
570     LEFT JOIN
571     ".DB_PREFIXE."quartier
572     ON
573     quartier.arrondissement = arrondissement.arrondissement
574     WHERE
575     quartier.code_impots = '".$quartier."'";
576     $this->addToLog("getCodeImpotByQuartier() : db->getOne(\"".$sql."\")", VERBOSE_MODE);
577     $arrondissement = $this->db->getOne($sql);
578     $this->isDatabaseError($arrondissement);
579     }
580    
581     // Retour
582     return $arrondissement;
583     }
584    
585 softime 2175 /**
586     * Vérification des paramètres
587     */
588     function checkParams() {
589     parent::checkParams();
590    
591     (isset($this->config['path_scan']) ? "" : $this->config['path_scan'] = '../trs/numerisation/');
592 softime 2178
593     $default_sig_elyx = array(
594     'wsdl' => '../tests/wsurbanisme.wsdl',
595     'login' => 'sig',
596     'password' => 'sig',
597     );
598     (isset($this->config['sig_elyx']) ? "" : $this->config['sig_elyx'] = $default_sig_elyx);
599 softime 2175 }
600    
601 nhaye 2180 /**
602     * Retourne true si tous les paramètres du SIG externe ont bien été définis
603     * @return bool true/false
604     */
605     public function issetSIGParameter() {
606     if($this->getParameter("sig_web_server") != NULL AND
607     $this->getParameter("sig_web_server") != "" AND
608     $this->getParameter("sig_couche_emprise_dossier") != NULL AND
609     $this->getParameter("sig_couche_emprise_dossier") != "" AND
610     $this->getParameter("sig_couche_affichage_dossier") != NULL AND
611     $this->getParameter("sig_couche_affichage_dossier") != "" AND
612     $this->getParameter("sig_couche_affichage_parcelle") != NULL AND
613     $this->getParameter("sig_couche_affichage_parcelle") != "") {
614     return true;
615     } else {
616     return false;
617     }
618     }
619    
620 softime 2305 /**
621     * Permet de vérifier que des champs existe dans une table
622     * @param array $list_fields Liste des champs à tester
623     * @param string $table Table où les champs doivent exister
624     * @return mixed Retourne les champs qui n'existent pas
625     * ou true
626     */
627     public function check_field_exist($list_fields, $table) {
628    
629     // Requête SQL pour récupérer le nom des colonnes
630     $sql = "SELECT column_name
631     FROM information_schema.columns
632     WHERE table_schema = '".substr(DB_PREFIXE, 0, -1)."'
633     AND table_name = '".$table."'
634     ORDER BY ordinal_position";
635     $this->addToLog("check_field_exist() : db->query(\"".$sql."\")", VERBOSE_MODE);
636     $res = $this->db->query($sql);
637     $this->isDatabaseError($res);
638    
639     // Tant qu'il y a un résultat
640     while ($row = &$res->fetchRow(DB_FETCHMODE_ASSOC)) {
641    
642     // Le nom de la colonne est mise dans un tableau
643     $list_column[] = $row['column_name'];
644     }
645    
646     // Tableau des champs en erreur
647     $error_fields = array();
648    
649     // Pour chaque champ à tester
650     foreach ($list_fields as $value) {
651    
652     // S'il n'apparaît pas dans la liste des champs possible
653     if (!in_array($value, $list_column)) {
654    
655     // Alors le champ est ajouté au tableau des erreurs
656     $error_fields[] = $value;
657     }
658     }
659    
660     // Si le tableau des erreurs n'est pas vide on le retourne
661     if (count($error_fields) > 0) {
662     return $error_fields;
663     }
664    
665     // Sinon on retourne le booléen true
666     return true;
667    
668     }
669    
670 vpihour 2450 /*
671     *
672     */
673     /**
674     * Récupère la lettre type lié à un événement
675     * @param integer $evenement L'identifiant de l'événement
676     * @return integer Retourne l'idenfiant de la lettre-type ou true
677     */
678     function getLettreType($evenement){
679    
680     $lettretype = NULL;
681    
682     $sql =
683     "SELECT
684     lettretype
685     FROM
686     ".DB_PREFIXE."evenement
687     WHERE
688     evenement = $evenement";
689    
690     $this->addToLog("getLettreType() : db->query(\"".$sql."\")", VERBOSE_MODE);
691     $res = $this->db->query($sql);
692     if ( database::isError($res)){
693     die();
694     }
695    
696     if ( $res->numrows() > 0 ){
697    
698     $row=& $res->fetchRow(DB_FETCHMODE_ASSOC);
699     $lettretype = $row['lettretype'];
700     }
701    
702     return $lettretype;
703     }
704    
705     /**
706     * Retourne le type de dossier d'autorisation du dossier courant :
707     * @param $idxDossier Le numéro du dossier d'instruction
708     * @return le code du type détaillée de dossier d'autorisation
709     **/
710     function getDATDCode($idxDossier) {
711     $sql = "SELECT dossier_autorisation_type_detaille.code
712     FROM ".DB_PREFIXE."dossier_autorisation_type_detaille
713     INNER JOIN ".DB_PREFIXE."dossier_autorisation
714     ON dossier_autorisation_type_detaille.dossier_autorisation_type_detaille =
715     dossier_autorisation.dossier_autorisation_type_detaille
716     INNER JOIN ".DB_PREFIXE."dossier ON dossier.dossier_autorisation = dossier_autorisation.dossier_autorisation
717     WHERE dossier.dossier = '".$idxDossier."'";
718     $res = $this->db->getOne($sql);
719     $this->addToLog("getDATDCode() : db->getOne(\"".$sql."\")", VERBOSE_MODE);
720     if ( database::isError($res)){
721     die();
722     }
723     return $res;
724     }
725 fraynaud 96 }
726 fraynaud 3
727 fraynaud 96 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26