20 |
"groupe_instruction" => 'getGroupeInstruction', |
"groupe_instruction" => 'getGroupeInstruction', |
21 |
"type_doc" => 'getTypeDoc', |
"type_doc" => 'getTypeDoc', |
22 |
), |
), |
23 |
|
"document_arrete" => array( |
24 |
|
"numArrete" => "getNumArrete", |
25 |
|
"specialiteArrete" => "getSpecialiteArrete", |
26 |
|
"decisionArrete" => "getDecisionArrete", |
27 |
|
"chketatReglementaire" => "getChketatReglementaire", |
28 |
|
"chkNotification" => "getChkNotification", |
29 |
|
"dateNotification" => "getDateNotification", |
30 |
|
"chkCreationdroit" => "getChkCreationdroit", |
31 |
|
"chkPublication" => "getChkPublication", |
32 |
|
"datePublication" => "getDatePublication", |
33 |
|
"chkControleLegalite" => "getChkControleLegalite", |
34 |
|
"dateSignatureArrete" => "getDateSignatureArrete", |
35 |
|
"nomSignataire" => "getNomSignataire", |
36 |
|
"qualiteSignataire" => "getQualiteSignataire", |
37 |
|
"chkDelegation" => "getChkDelegation", |
38 |
|
"ap_numRue" => "getAp_numRue", |
39 |
|
"ap_nomDeLaVoie" => "getAp_nomDeLaVoie", |
40 |
|
"ap_codePostal" => "getAp_codePostal", |
41 |
|
"ap_ville" => "getAp_ville", |
42 |
|
), |
43 |
); |
); |
44 |
|
|
45 |
var $abstract_type = array( |
var $abstract_type = array( |
148 |
|
|
149 |
//Génération automatique nom du fichier |
//Génération automatique nom du fichier |
150 |
$this->valF['nom_fichier'] = $this->generateFilename($this->valF["date_creation"], $document_numerise_type); |
$this->valF['nom_fichier'] = $this->generateFilename($this->valF["date_creation"], $document_numerise_type); |
151 |
|
|
152 |
|
// Si c'est un arrêté alors on ajoute les métadonnées pour ce type de document |
153 |
|
if ($this->get_document_numerise_type_categorie_libelle($val["document_numerise_type"]) == 'Arrêté') { |
154 |
|
|
155 |
|
// rassemble les elément des deux tableau |
156 |
|
$this->metadata['uid'] = array_merge($this->metadata['uid'], $this->metadata['document_arrete']); |
157 |
|
} |
158 |
} |
} |
159 |
|
|
160 |
/** |
/** |
216 |
} |
} |
217 |
} |
} |
218 |
|
|
219 |
|
// {{{ |
220 |
|
// Méthodes de récupération des métadonnées document |
221 |
/** |
/** |
222 |
* Récupération du numéro de dossier d'instruction à ajouter aux métadonnées |
* Récupération du numéro de dossier d'instruction à ajouter aux métadonnées |
223 |
* @return [type] [description] |
* @return [type] [description] |
321 |
//Retourne le code du type de document |
//Retourne le code du type de document |
322 |
return $document_numerise_type_libelle; |
return $document_numerise_type_libelle; |
323 |
} |
} |
324 |
|
// Fin des méthodes de récupération des métadonnées |
325 |
|
// }}} |
326 |
|
|
327 |
|
// {{{ |
328 |
|
// Méthodes de récupération des métadonnées arrêté |
329 |
|
/** |
330 |
|
* @return string Retourne le numéro d'arrêté |
331 |
|
*/ |
332 |
|
function getNumArrete() { |
333 |
|
return ''; |
334 |
|
} |
335 |
|
/** |
336 |
|
* @return string ads |
337 |
|
*/ |
338 |
|
function getSpecialiteArrete() { |
339 |
|
return "ADS"; |
340 |
|
} |
341 |
|
/** |
342 |
|
* @return string decision |
343 |
|
*/ |
344 |
|
function getDecisionArrete() { |
345 |
|
if (empty($this->metadonneesArrete)) { |
346 |
|
$this->getArreteMetadata(); |
347 |
|
} |
348 |
|
return $this->metadonneesArrete["decisionarrete"]; |
349 |
|
} |
350 |
|
/** |
351 |
|
* @return chaîne vide |
352 |
|
*/ |
353 |
|
function getChketatReglementaire() { |
354 |
|
return 'true'; |
355 |
|
} |
356 |
|
/** |
357 |
|
* @return boolean de notification au pétitionnaire |
358 |
|
*/ |
359 |
|
function getChkNotification() { |
360 |
|
return 'true'; |
361 |
|
} |
362 |
|
/** |
363 |
|
* @return date de notification au pétitionnaire |
364 |
|
*/ |
365 |
|
function getDateNotification() { |
366 |
|
if (empty($this->metadonneesArrete)) { |
367 |
|
$this->getArreteMetadata(); |
368 |
|
} |
369 |
|
return $this->metadonneesArrete["datenotification"]; |
370 |
|
} |
371 |
|
/** |
372 |
|
* @return chaîne vide |
373 |
|
*/ |
374 |
|
function getChkCreationdroit() { |
375 |
|
return "true"; |
376 |
|
} |
377 |
|
/** |
378 |
|
* @return chaîne vide |
379 |
|
*/ |
380 |
|
function getChkPublication() { |
381 |
|
return "true"; |
382 |
|
} |
383 |
|
/** |
384 |
|
* @return chaîne vide |
385 |
|
*/ |
386 |
|
function getDatePublication() { |
387 |
|
return ""; |
388 |
|
} |
389 |
|
/** |
390 |
|
* @return boolean check si le document est passé au contrôle de légalité |
391 |
|
*/ |
392 |
|
function getChkControleLegalite() { |
393 |
|
return 'true'; |
394 |
|
} |
395 |
|
/** |
396 |
|
* @return date de signature de l'arrêté |
397 |
|
*/ |
398 |
|
function getDateSignatureArrete() { |
399 |
|
if (empty($this->metadonneesArrete)) { |
400 |
|
$this->getArreteMetadata(); |
401 |
|
} |
402 |
|
return $this->metadonneesArrete["datesignaturearrete"]; |
403 |
|
} |
404 |
|
/** |
405 |
|
* @return string nom du signataire |
406 |
|
*/ |
407 |
|
function getNomSignataire() { |
408 |
|
if (empty($this->metadonneesArrete)) { |
409 |
|
$this->getArreteMetadata(); |
410 |
|
} |
411 |
|
return $this->metadonneesArrete["nomsignataire"]; |
412 |
|
} |
413 |
|
/** |
414 |
|
* @return string qualité du signataire |
415 |
|
*/ |
416 |
|
function getQualiteSignataire() { |
417 |
|
if (empty($this->metadonneesArrete)) { |
418 |
|
$this->getArreteMetadata(); |
419 |
|
} |
420 |
|
return $this->metadonneesArrete["qualitesignataire"]; |
421 |
|
} |
422 |
|
/** |
423 |
|
* @return string chaîne vide |
424 |
|
*/ |
425 |
|
function getChkDelegation() { |
426 |
|
return "true"; |
427 |
|
} |
428 |
|
/** |
429 |
|
* @return string numéro du terrain |
430 |
|
*/ |
431 |
|
function getAp_numRue() { |
432 |
|
if (empty($this->metadonneesArrete)) { |
433 |
|
$this->getArreteMetadata(); |
434 |
|
} |
435 |
|
return $this->metadonneesArrete["ap_numrue"]; |
436 |
|
} |
437 |
|
/** |
438 |
|
* @return string nom de la rue du terrain |
439 |
|
*/ |
440 |
|
function getAp_nomDeLaVoie() { |
441 |
|
if (empty($this->metadonneesArrete)) { |
442 |
|
$this->getArreteMetadata(); |
443 |
|
} |
444 |
|
return $this->metadonneesArrete["ap_nomdelavoie"]; |
445 |
|
} |
446 |
|
/** |
447 |
|
* @return string code postal du terrain |
448 |
|
*/ |
449 |
|
function getAp_codePostal() { |
450 |
|
if (empty($this->metadonneesArrete)) { |
451 |
|
$this->getArreteMetadata(); |
452 |
|
} |
453 |
|
return $this->metadonneesArrete["ap_codepostal"]; |
454 |
|
} |
455 |
|
/** |
456 |
|
* @return string ville du terrain |
457 |
|
*/ |
458 |
|
function getAp_ville() { |
459 |
|
if (empty($this->metadonneesArrete)) { |
460 |
|
$this->getArreteMetadata(); |
461 |
|
} |
462 |
|
return $this->metadonneesArrete["ap_ville"]; |
463 |
|
} |
464 |
|
|
465 |
|
// Fin des méthodes de récupération des métadonnées |
466 |
|
// }}} |
467 |
|
|
468 |
/** |
/** |
469 |
* Génère le nom du fichier avec les information du formulaire |
* Génère le nom du fichier avec les information du formulaire |
504 |
return $document_numerise_type_code; |
return $document_numerise_type_code; |
505 |
} |
} |
506 |
|
|
507 |
|
/** |
508 |
|
* Permet de récupérer le libellé de la catégorie du type de document |
509 |
|
* @param int $document_numerise_type Clé primaire d'un donnée de document_numerise_type |
510 |
|
* @return string Libellé de la catégorie du type de document |
511 |
|
*/ |
512 |
|
private function get_document_numerise_type_categorie_libelle($document_numerise_type) { |
513 |
|
|
514 |
|
// Requête sql |
515 |
|
$sql = "SELECT document_numerise_type_categorie.libelle |
516 |
|
FROM ".DB_PREFIXE."document_numerise_type |
517 |
|
LEFT JOIN ".DB_PREFIXE."document_numerise_type_categorie |
518 |
|
ON document_numerise_type.document_numerise_type_categorie = document_numerise_type_categorie.document_numerise_type_categorie |
519 |
|
WHERE document_numerise_type.document_numerise_type = ".$document_numerise_type; |
520 |
|
$document_numerise_type_categorie_libelle = $this->db->getOne($sql); |
521 |
|
$this->addToLog("db->getone(\"".$sql."\");", VERBOSE_MODE); |
522 |
|
$this->f->addToLog("obj/document_numerise.class.php : db->getOne(".$sql.")", VERBOSE_MODE); |
523 |
|
if (database::isError($document_numerise_type_categorie_libelle)) { |
524 |
|
die(); |
525 |
|
} |
526 |
|
|
527 |
|
//Retourne le code du type de document |
528 |
|
return $document_numerise_type_categorie_libelle; |
529 |
|
} |
530 |
|
|
531 |
|
|
532 |
/** |
/** |
533 |
* Cette méthode permet de stocker en attribut toutes les métadonnées |
* Cette méthode permet de stocker en attribut toutes les métadonnées |
534 |
* nécessaire à l'ajout d'un document. |
* nécessaire à l'ajout d'un document. |
535 |
*/ |
*/ |
536 |
public function getSpecificMetadata() { |
public function getSpecificMetadata() { |
|
|
|
537 |
|
|
538 |
//Requête pour récupérer les informations essentiels sur le dossier d'instruction |
//Requête pour récupérer les informations essentiels sur le dossier d'instruction |
539 |
$sql = "SELECT dossier.dossier as dossier, |
$sql = "SELECT dossier.dossier as dossier, |
558 |
ON dossier_autorisation_type.groupe = groupe.groupe |
ON dossier_autorisation_type.groupe = groupe.groupe |
559 |
WHERE dossier.dossier = '".$this->valF["dossier"]."'"; |
WHERE dossier.dossier = '".$this->valF["dossier"]."'"; |
560 |
$res = $this->db->query($sql); |
$res = $this->db->query($sql); |
561 |
$this->f->addToLog("obj/document_numerise.class.php : db->query(".$sql.")", VERBOSE_MODE); |
$this->f->addToLog("getSpecificMetadata : db->query(".$sql.")", VERBOSE_MODE); |
562 |
if ( database::isError($res)){ |
if ( database::isError($res)){ |
563 |
die(); |
die(); |
564 |
} |
} |
576 |
} |
} |
577 |
|
|
578 |
/** |
/** |
579 |
|
* Méthode de récupération des métadonnées arrêtés dans la base de données, |
580 |
|
* les données sont stockés dans l'attribut $this->metadonneesArrete |
581 |
|
*/ |
582 |
|
function getArreteMetadata() { |
583 |
|
$sqlArrete = "SELECT signataire_arrete.nom as \"nomsignataire\", |
584 |
|
signataire_arrete.qualite as \"qualitesignataire\", |
585 |
|
instruction.date_evenement as \"datesignaturearrete\", |
586 |
|
instruction.etat as \"decisionarrete\", |
587 |
|
instruction.date_retour_rar as \"datenotification\", |
588 |
|
instruction.date_retour_signature as \"datesignaturesrrete\", |
589 |
|
dossier.terrain_adresse_voie_numero as \"ap_numrue\", |
590 |
|
dossier.complement as \"ap_nomdelavoie\", |
591 |
|
dossier.terrain_adresse_code_postal as \"ap_codepostal\", |
592 |
|
dossier.terrain_adresse_localite as \"ap_ville\" |
593 |
|
FROM ".DB_PREFIXE."instruction |
594 |
|
LEFT JOIN ".DB_PREFIXE."signataire_arrete ON |
595 |
|
instruction.signataire_arrete = signataire_arrete.signataire_arrete |
596 |
|
LEFT JOIN ".DB_PREFIXE."dossier ON |
597 |
|
instruction.dossier = dossier.dossier |
598 |
|
LEFT JOIN ".DB_PREFIXE."donnees_techniques ON |
599 |
|
donnees_techniques.dossier_instruction = dossier.dossier |
600 |
|
WHERE dossier.dossier = '".$this->valF["dossier"]."' |
601 |
|
AND instruction.instruction = ".$this->getLastInstruction($this->valF["dossier"]); |
602 |
|
$resArrete = $this->db->query($sqlArrete); |
603 |
|
$this->f->addToLog("getArreteMetadata(): db->query(\"".$sqlArrete."\");", VERBOSE_MODE); |
604 |
|
if ( database::isError($resArrete)){ |
605 |
|
die(); |
606 |
|
} |
607 |
|
|
608 |
|
$this->metadonneesArrete = $resArrete->fetchRow(DB_FETCHMODE_ASSOC); |
609 |
|
} |
610 |
|
|
611 |
|
/** |
612 |
* Cette methode est à surcharger elle permet de tester dans chaque classe |
* Cette methode est à surcharger elle permet de tester dans chaque classe |
613 |
* des droits spécifiques en fonction des données |
* des droits spécifiques en fonction des données |
614 |
*/ |
*/ |
615 |
function canAccess() { |
function canAccess() { |
616 |
$retourformulaire = $this->getParameter("retourformulaire"); |
|
617 |
// Si l'utilisateur est un instructeur et que le dossier d'instruction est cloturé |
// Si l'utilisateur est un intructeur qui ne correspond pas à la |
618 |
if ( $this->f->isUserInstructeur() && |
// division du dossier |
619 |
$this->getStatutDossier($this->getParameter("idxformulaire")) == "cloture" && |
if ($this->f->isUserInstructeur() |
620 |
( |
&& $this->f->om_utilisateur["division"] != $this->getDivisionFromDossier() |
621 |
$retourformulaire == 'dossier' || |
&& $this->getParameter("maj") != 3) { |
622 |
$retourformulaire == 'dossier_instruction' || |
// |
|
$retourformulaire == 'dossier_instruction_mes_encours' || |
|
|
$retourformulaire == 'dossier_instruction_tous_encours' || |
|
|
$retourformulaire == 'dossier_instruction_mes_clotures' || |
|
|
$retourformulaire == 'dossier_instruction_tous_clotures' |
|
|
) && |
|
|
$this->getParameter("maj") != 3) { |
|
|
|
|
623 |
return false; |
return false; |
624 |
} |
} |
625 |
// |
// |
655 |
} |
} |
656 |
return $statut; |
return $statut; |
657 |
} |
} |
658 |
|
|
659 |
|
/** |
660 |
|
* Cette variable permet de stocker le résultat de la méthode |
661 |
|
* getDivisionFromDossier() afin de ne pas effectuer le recalcul à chacun de |
662 |
|
* ces appels. |
663 |
|
* @var string Code de la division du dossier en cours |
664 |
|
*/ |
665 |
|
var $_division_from_dossier = NULL; |
666 |
|
|
667 |
|
/** |
668 |
|
* Cette méthode permet de récupérer le code de division correspondant |
669 |
|
* au dossier sur lequel on se trouve. |
670 |
|
* |
671 |
|
* @return string Code de la division du dossier en cours |
672 |
|
*/ |
673 |
|
function getDivisionFromDossier() { |
674 |
|
|
675 |
|
// Cette méthode peut être appelée plusieurs fois lors d'une requête. |
676 |
|
// Pour éviter de refaire le traitement de recherche de la division |
677 |
|
// alors on vérifie si nous ne l'avons pas déjà calculé. |
678 |
|
if ($this->_division_from_dossier != NULL) { |
679 |
|
// Logger |
680 |
|
$this->addToLog("getDivisionFromDossier(): retour de la valeur déjà calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE); |
681 |
|
// On retourne la valeur déjà calculée |
682 |
|
return $this->_division_from_dossier; |
683 |
|
} |
684 |
|
|
685 |
|
// Par défaut, on définit la valeur du dossier à NULL |
686 |
|
$dossier = NULL; |
687 |
|
// Test sur le mode et le contexte du formulaire |
688 |
|
if ($this->getParameter("maj") == 0 |
689 |
|
&& ($this->getParameter("retourformulaire") == "dossier" |
690 |
|
|| $this->getParameter("retourformulaire") == "dossier_instruction" |
691 |
|
|| $this->getParameter("retourformulaire") == "dossier_instruction_mes_encours" |
692 |
|
|| $this->getParameter("retourformulaire") == "dossier_instruction_tous_encours" |
693 |
|
|| $this->getParameter("retourformulaire") == "dossier_instruction_mes_clotures" |
694 |
|
|| $this->getParameter("retourformulaire") == "dossier_instruction_tous_clotures")) { |
695 |
|
// Si on se trouve en mode AJOUT (seul mode où l'enregistrement |
696 |
|
// n'existe pas en base de données) ET que nous nous trouvons |
697 |
|
// dans le contexte d'un dossier d'instruction alors on récupère |
698 |
|
// le numéro de dossier depuis le paramètre 'idxformulaire' |
699 |
|
$dossier = $this->getParameter("idxformulaire"); |
700 |
|
} else { |
701 |
|
// Sinon on récupère le numéro de dossier dans le champs dossier de |
702 |
|
// l'enregistrement (en base de données) |
703 |
|
$dossier = $this->getVal("dossier"); |
704 |
|
} |
705 |
|
|
706 |
|
// On appelle la méthode de la classe utils qui renvoi le code de la |
707 |
|
// division d'un dossier, on la stocke pour ne pas refaire le calcul au |
708 |
|
// prochain appel de cette méthode |
709 |
|
$this->_division_from_dossier = $this->f->getDivisionFromDossier($dossier); |
710 |
|
// Logger |
711 |
|
$this->addToLog("getDivisionFromDossier(): retour de la valeur nouvellement calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE); |
712 |
|
// On retourne la valeur retournée |
713 |
|
return $this->_division_from_dossier; |
714 |
|
|
715 |
|
} |
716 |
|
|
717 |
|
function getLastInstruction($dossier) { |
718 |
|
|
719 |
|
// |
720 |
|
$sql = "SELECT max(instruction) FROM ".DB_PREFIXE."instruction |
721 |
|
JOIN ".DB_PREFIXE."dossier ON instruction.dossier = dossier.dossier |
722 |
|
WHERE dossier.dossier='".$dossier."'"; |
723 |
|
$lastInstruction = $this->db->getOne($sql); |
724 |
|
$this->f->addToLog("getStatutDossier() : db->getOne(\"".$sql."\")", VERBOSE_MODE); |
725 |
|
if ( database::isError($lastInstruction)){ |
726 |
|
die(); |
727 |
|
} |
728 |
|
|
729 |
|
return $lastInstruction; |
730 |
|
} |
731 |
}// fin classe |
}// fin classe |
732 |
?> |
?> |