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

Diff of /trunk/obj/dossier.class.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 626 by vpihour, Wed Nov 7 16:54:25 2012 UTC revision 835 by mlimic, Mon Nov 26 16:46:20 2012 UTC
# Line 3  Line 3 
3  //gen openMairie le 10/02/2011 20:39  //gen openMairie le 10/02/2011 20:39
4    
5  require_once ("../gen/obj/dossier.class.php");  require_once ("../gen/obj/dossier.class.php");
6    require_once("../services/outgoing/messageenqueuer.php");
7    
8  class dossier extends dossier_gen {  class dossier extends dossier_gen {
9    
# Line 277  class dossier extends dossier_gen { Line 278  class dossier extends dossier_gen {
278              $form->setType('temp4',$temp4_type);              $form->setType('temp4',$temp4_type);
279              $form->setType('temp5',$temp5_type);              $form->setType('temp5',$temp5_type);
280          }          }
281            if ($maj == 1) {
282                //
283                if ($this->f->isAccredited("dossier_modifier_instructeur")) {
284                    $form->setType('instructeur', 'select');
285                } else {
286                    $form->setType('instructeur', 'selecthiddenstatic');
287                }
288                //
289                if($this->f->getParameter('afficher_division') === 'true') {
290                    //
291                    if ($this->f->isAccredited("dossier_modifier_division")) {
292                        $form->setType('division', 'select');
293                    } else {
294                        $form->setType('division', 'selecthiddenstatic');
295                    }
296                } else {
297                    $form->setType('division', 'hidden');
298                }
299            }
300          if($maj == 3) {          if($maj == 3) {
301              $form->setType('annee', 'hidden');              $form->setType('annee', 'hidden');
302              $form->setType('nature', 'selectstatic');              $form->setType('nature', 'selectstatic');
# Line 290  class dossier extends dossier_gen { Line 310  class dossier extends dossier_gen {
310              $form->setType('geom1','hidden');              $form->setType('geom1','hidden');
311              $form->setType('geom','hidden');              $form->setType('geom','hidden');
312          }          }
313          if($this->f->getParameter('afficher_division')==='true') {          $form->setType('a_qualifier', 'hidden');
314              $form->setType('division','hiddenstatic');          //
315          } else {          if(!$this->f->getParameter('afficher_division') === 'true') {
316              $form->setType('division','hidden');              $form->setType('division', 'hidden');
317          }          }
           
         /* Gestion des droits pour l'ajout forcé d'un instructeur, si le profil est 5, c'est un administrateur */  
         if ( !$this->f->isAccredited("dossier_modifier_instructeur") )  
             $form->setType('instructeur', 'hidden');  
318      }      }
319    
320      function setVal(&$form,$maj,$validation){      function setVal(&$form,$maj,$validation){
# Line 446  class dossier extends dossier_gen { Line 462  class dossier extends dossier_gen {
462      }          }    
463    
464      function setGroupe(&$form,$maj){      function setGroupe(&$form,$maj){
465          If ($maj==0){          //If ($maj==0){
466              $form->setGroupe('date_demande','D');          //    $form->setGroupe('date_demande','D');
467              $form->setGroupe('date_depot','G');          //    $form->setGroupe('date_depot','G');
468              $form->setGroupe('division','F');          //    $form->setGroupe('division','F');
469          }else{          //}else{
470              $form->setGroupe('dossier','D');          //    $form->setGroupe('dossier','D');
471              $form->setGroupe('nature','G');          //    $form->setGroupe('nature','G');
472              $form->setGroupe('annee','G');          //    $form->setGroupe('annee','G');
473              $form->setGroupe('date_demande','G');          //    $form->setGroupe('date_demande','G');
474              $form->setGroupe('date_depot','G');          //    $form->setGroupe('date_depot','G');
475              $form->setGroupe('division','F');          //    $form->setGroupe('division','F');
476          }          //}
477          $form->setGroupe('demandeur_categorie','D');          $form->setGroupe('demandeur_categorie','D');
478          $form->setGroupe('demandeur_civilite','G');          $form->setGroupe('demandeur_civilite','G');
479          $form->setGroupe('demandeur_nom','F');          $form->setGroupe('demandeur_nom','F');
# Line 488  class dossier extends dossier_gen { Line 504  class dossier extends dossier_gen {
504          $form->setGroupe('delegataire_telephone','F');          $form->setGroupe('delegataire_telephone','F');
505                                
506          $form->setGroupe('architecte','D');          $form->setGroupe('architecte','D');
507          $form->setGroupe('architecte_nom','G');          $form->setGroupe('architecte_nom','F');
508          $form->setGroupe('saisie_architecte','F');          //$form->setGroupe('saisie_architecte','F');
509                    
510          $form->setGroupe('travaux','D');            $form->setGroupe('travaux','D');  
511          $form->setGroupe('travaux_complement','F');          $form->setGroupe('travaux_complement','F');
# Line 573  class dossier extends dossier_gen { Line 589  class dossier extends dossier_gen {
589          $form->setOnchange('terrain_surface','VerifNumdec(this)');          $form->setOnchange('terrain_surface','VerifNumdec(this)');
590      }      }
591    
592      function setRegroupe(&$form,$maj){      function setLayout(&$form, $maj) {
593          // depot          //
594          If ($maj==0){          $form->setBloc('dossier', 'D', '', ($maj == 3 ? 'col_9':'col_12'));
595              $form->setRegroupe('date_demande','D',_("Depot"),$this->aff_depot );          $form->setBloc('dossier', 'D', '', 'col_9');
596          }          $form->setFieldset('dossier', 'D', _("Dossier d'instruction"));
597          If ($maj==1){          $form->setFieldset('autorite_competente', 'F');
598              $form->setRegroupe('dossier','D',_("Depot"), $this->aff_depot);          $form->setBloc('autorite_competente', 'F');
599              $form->setRegroupe('date_demande','G','');          $form->setBloc('date_demande', 'D', '', 'col_3');
600          }          $form->setFieldset('date_demande', 'D', _("Depot"));
601          $form->setRegroupe('date_depot','G','');          $form->setFieldset('date_depot', 'F');
602          $form->setRegroupe('division','F','');          $form->setFieldset('enjeu_urba', 'D', _("Enjeu"));
603            $form->setFieldset('enjeu_erp', 'F');
604            $form->setBloc('enjeu_erp', 'F');
605            $form->setBloc('enjeu_erp', 'F');
606            //
607            $form->setBloc('objet_dossier', 'D', '', 'col_12');
608            //
609            $form->setFieldset('date_complet', 'D', _('Instruction'), 'col_12');
610            $form->setRegroupe('date_conformite','F','');
611            //
612            $form->setBloc('geom1', 'F');
613                    
614        }
615        
616        function setRegroupe(&$form,$maj) {
617            //// depot
618            //If ($maj==0){
619            //    $form->setRegroupe('date_demande','D',_("Depot"),$this->aff_depot );
620            //}
621            //If ($maj==1){
622            //    $form->setRegroupe('dossier','D',_("Depot"), $this->aff_depot);
623            //    $form->setRegroupe('date_demande','G','');
624            //}
625            //$form->setRegroupe('date_depot','G','');
626            //$form->setRegroupe('division','F','');
627    
628          // travaux          // travaux
629          $form->setRegroupe('architecte','D',_('Architecte')." / "._("Travaux"), $this->aff_travaux);          $form->setRegroupe('architecte','D',_('Architecte')." / "._("Travaux"), $this->aff_travaux);
630          $form->setRegroupe('architecte_nom','G','');          $form->setRegroupe('architecte_nom','G','');
631          $form->setRegroupe('travaux','G','');          $form->setRegroupe('travaux','G','');
632          $form->setRegroupe('travaux_complement','F','');          $form->setRegroupe('travaux_complement','F','');
633                    
634          // instruction          //// instruction
635          $form->setRegroupe('date_complet','D',_('Instruction'), $this->aff_instruction);          //$form->setRegroupe('date_complet','D',_('Instruction'), $this->aff_instruction);
636          $form->setRegroupe('date_rejet','G','');          //$form->setRegroupe('date_rejet','G','');
637          $form->setRegroupe('date_notification_delai','G','');          //$form->setRegroupe('date_notification_delai','G','');
638          $form->setRegroupe('delai','G','');          //$form->setRegroupe('delai','G','');
639          $form->setRegroupe('date_limite','G','Decision ');          //$form->setRegroupe('date_limite','G','Decision ');
640          $form->setRegroupe('accord_tacite','G','');          //$form->setRegroupe('accord_tacite','G','');
641          $form->setRegroupe('etat','G','');          //$form->setRegroupe('etat','G','');
642          $form->setRegroupe('date_decision','G','');          //$form->setRegroupe('date_decision','G','');
643          $form->setRegroupe('avis_decision','G','');          //$form->setRegroupe('avis_decision','G','');
644          $form->setRegroupe('date_validite','G','');          //$form->setRegroupe('date_validite','G','');
645          $form->setRegroupe('types','G','');          //$form->setRegroupe('types','G','');
646          $form->setRegroupe('date_chantier','G','');          //$form->setRegroupe('date_chantier','G','');
647          $form->setRegroupe('date_achevement','G','');          //$form->setRegroupe('date_achevement','G','');
648          $form->setRegroupe('date_conformite','F','');          //$form->setRegroupe('date_conformite','F','');
649                    
650          // demandeur          // demandeur
651          $form->setRegroupe('demandeur_categorie','D',_('Demandeur'), $this->aff_demandeur);          $form->setRegroupe('demandeur_categorie','D',_('Demandeur'), $this->aff_demandeur);
# Line 676  class dossier extends dossier_gen { Line 716  class dossier extends dossier_gen {
716      /* =============================================================      /* =============================================================
717      * fonction trigger relative a la connexion SIG      * fonction trigger relative a la connexion SIG
718      * $sig = 1 dans dyn/var.inc      * $sig = 1 dans dyn/var.inc
719        * utilisé aussi pour envoyer une message au service REST d'ERP
720      * ===============================================================      * ===============================================================
721      */      */
722    
# Line 691  class dossier extends dossier_gen { Line 732  class dossier extends dossier_gen {
732                  $this->addToMessage("<br>"._("Parcelle non renseignee dans dossier")." ".$id." <br>");                  $this->addToMessage("<br>"._("Parcelle non renseignee dans dossier")." ".$id." <br>");
733                            
734          }          }
735            
736            // envoie d'une message au service REST d'ERP
737            if ($this->valF['enjeu_erp'] === true) {
738                $msgenque = new MessageEnqueuer();
739                $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
740                $msgenque->enqueueMessage($msgenque::$ERP_DEPOT_DOSSIER_DAT);
741            }
742      }      }
743            
744      /*      /*
745       * Calcul l'identifiant du quartier et d'un arrondissement d'une parcelle       * Calcul l'identifiant du quartier et d'un arrondissement d'une parcelle
746       * */       * */
747       function getQuartierArrondissement($parcelle, &$quartier, &$arrondissement, &$db) {       function getQuartierArrondissement($parcelle) {
748                            
749           $parcelle = trim($parcelle);           $parcelle = trim($parcelle);
750           $quartier = '';           $quartier = '';
751                    
752           /*Code impots*/           /*Récupère le code impot du quartier dans la parcelle*/
753           for ( $i = 0 ; $i < strlen($parcelle) ; $i++ )           for ( $i = 0 ; $i < strlen($parcelle) ; $i++ ){
754              if (is_numeric($parcelle[$i]) )                  
755                if (is_numeric($parcelle[$i]) ){
756                        
757                  $quartier .= $parcelle[$i];                  $quartier .= $parcelle[$i];
758              else              }
759                else{
760                        
761                  break;                  break;
762                }
763             }
764                    
765          if ( $quartier !== '' ){          if ( $quartier !== '' ){
766                            
# Line 718  class dossier extends dossier_gen { Line 772  class dossier extends dossier_gen {
772                      WHERE                      WHERE
773                          code_impots='$quartier'";                          code_impots='$quartier'";
774                            
775              $res = $db->query($sql);              $this->addToLog("getQuartierArrondissement(parcelle) : db->query(\"$sql\")", VERBOSE_MODE);
776                $res = $this->db->query($sql);
777              if (database :: isError($res))              if (database :: isError($res))
778                  die($res->getMessage()."erreur ".$sql);                  die($res->getMessage()."erreur ".$sql);
779                            
780              if ( $res->numRows() > 0 ){              if ( $res->numRows() > 0 ){
781                                            
782                  while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){                  return $res->fetchRow(DB_FETCHMODE_ASSOC);
                   
                     $quartier = $row['quartier'];  
                     $arrondissement = $row['arrondissement'];  
                 }  
783              }              }
784          }          }
785            
786            return NULL;
787       }       }
788            
789       /*       /*
# Line 751  class dossier extends dossier_gen { Line 804  class dossier extends dossier_gen {
804      /*      /*
805       * Retourne l'intructeur correspondant le mieux à la parcelle       * Retourne l'intructeur correspondant le mieux à la parcelle
806       * */       * */
807       function getInstructeur( $quartier, $arrondissement, $section, $nature, &$db) {       function getInstructeurDivision( $quartier, $arrondissement, $section, $nature) {
808                    
809            $quartier = ( $quartier == NULL ) ? -1 : $quartier;
810            $arrondissement = ( $arrondissement == NULL ) ? -1 : $arrondissement;
811                    
812          $sql = "          $sql = "
813             SELECT             SELECT
# Line 778  class dossier extends dossier_gen { Line 834  class dossier extends dossier_gen {
834             ORDER BY section, quartier, arrondissement, nature             ORDER BY section, quartier, arrondissement, nature
835             LIMIT 1             LIMIT 1
836          ";          ";
837                    
838          $res = $db->query($sql);          $this->addToLog("getInstructeurDivision( quartier, arrondissement, section, nature) : db->query(\"$sql\")", VERBOSE_MODE);
839            $res = $this->db->query($sql);
840          if (database :: isError($res))          if (database :: isError($res))
841              die($res->getMessage()."erreur ".$sql);              die($res->getMessage()."erreur ".$sql);
842                    
843          if ( $res->numRows() > 0 ){          if ( $res->numRows() > 0 ){
844              $row=& $res->fetchRow(DB_FETCHMODE_ASSOC);              
845              return $row['instructeur'];              $row = $res->fetchRow(DB_FETCHMODE_ASSOC);
846                
847                $sql = "SELECT division FROM instructeur WHERE instructeur = ".$row['instructeur'];
848                $res = $this->db->query($sql);
849                if (database :: isError($res))
850                    die($res->getMessage()."erreur ".$sql);
851                    
852                if ( $res->numRows() > 0 ){
853                    
854                    $rowT=& $res->fetchRow(DB_FETCHMODE_ASSOC);
855                    $row['division'] = $rowT['division'];
856                }
857                
858                return $row;
859          }          }
860                    
861          return NULL;          return NULL;
# Line 798  class dossier extends dossier_gen { Line 868  class dossier extends dossier_gen {
868      */      */
869    
870      function triggerajouter($id,&$db,$val,$DEBUG) {      function triggerajouter($id,&$db,$val,$DEBUG) {
871            //
872            $this->addToLog("triggerajouter() : start", EXTRA_VERBOSE_MODE);
873                    
874            // Initialisation des variables nécessaires à l'affectation automatique
875            $quartier = NULL;
876            $arrondissement = NULL;
877            $section = NULL;
878            
879            // Si la parcelle n'est pas vide alors on récupère la section, le
880            // quartier et l'arrondissement
881            if ($val['parcelle'] != '') {
882                // Cette méthode récupère l'arrondissement et le quartier associé à une parcelle
883                $quartierArrondissement = $this->getQuartierArrondissement($val['parcelle']);
884                if ( $quartierArrondissement!= NULL ){
885                                    
886          /*Localisation*/                  $quartier = $quartierArrondissement['quartier'];
887          $quartier = 'NULL';                  $arrondissement = $quartierArrondissement['arrondissement'];
888          $arrondissement = 'NULL';              }
889          $section = 'NULL' ;              // Si il n'y a pas d'arrondissement alors on vide le quartier
890                        if ( strcmp($arrondissement,'') == 0 )  {
891          if($val['parcelle']!=''){                  
892                                $arrondissement = NULL;
893              $this->getQuartierArrondissement($val['parcelle'], $quartier, $arrondissement, $db);                  $quartier = NULL;
894                            }
895              if ( strcmp($arrondissement,'NULL') == 0 )              // On récupère la section
                 $quartier = 'NULL';  
               
896              $section = $this->getSection($val['parcelle']);              $section = $this->getSection($val['parcelle']);
               
               
897          }          }
898                    
899          /*Instructeur*/          // Si aucun instructeur n'est saisi et que la nature n'est pas vide
900          if ( ( empty($this->valF['instructeur']) || $this->valF['instructeur'] == '' ) && $val['nature'] != '' ){          // alors on récupère l'instructeur et la division depuis l'affectation
901                          if ( ( empty($this->valF['instructeur']) || $this->valF['instructeur'] == '' ) && $val['nature'] != '' ) {
902              $instructeur = $this->getInstructeur($quartier, $arrondissement, $section, $val['nature'], $db);              
903                //
904                $instructeurDivision = $this->getInstructeurDivision($quartier, $arrondissement, $section, $val['nature']);
905                if ( $instructeurDivision != NULL ){
906                    
907                    $instructeur = $instructeurDivision['instructeur'];
908                    $division = $instructeurDivision['division'];
909                }
910                            
911              if ( $instructeur != NULL )              if ( $instructeur != NULL ){
912                    
913                  $this->valF['instructeur'] = $instructeur;                  $this->valF['instructeur'] = $instructeur;
914              else {                  $this->valF['division'] = $division;
915                  if ( is_numeric($_SESSION['profil']) && $_SESSION['profil'] == 5 )              } else {
916                    if ($this->f->isAccredited("dossier_modifier_instructeur")) {
917                      $this->addToMessage("<br/> "._("Pensez a assigner un instructeur a ce dossier.")." <br/>");                      $this->addToMessage("<br/> "._("Pensez a assigner un instructeur a ce dossier.")." <br/>");
918                  else                  } else {
919                      $this->addToMessage("<br/> "._("Aucun instructeur compatible avec ce dossier trouve, contactez votre administrateur afin d'en assigner un a ce dossier.")." <br/>");                      $this->addToMessage("<br/> "._("Aucun instructeur compatible avec ce dossier trouve, contactez votre administrateur afin d'en assigner un a ce dossier.")." <br/>");
920                    }
921              }              }
922            } else {
923                $this->addToMessage("<br/> "._("Aucun instructeur compatible avec ce dossier trouve, contactez votre administrateur afin d'en assigner un a ce dossier.")." <br/>");
924          }          }
925                    //
926          else          $this->addToLog("triggerajouter() : end", EXTRA_VERBOSE_MODE);
                     $this->addToMessage("<br/> "._("Aucun instructeur compatible avec ce dossier trouve, contactez votre administrateur afin d'en assigner un a ce dossier.")." <br/>");  
927      }      }
928    
929      function triggermodifierapres($id,&$db,$val,$DEBUG) {      function triggermodifierapres($id,&$db,$val,$DEBUG) {
# Line 853  class dossier extends dossier_gen { Line 943  class dossier extends dossier_gen {
943              }              }
944                  $this->addToMessage("<br>"._("Parcelle ou parcelle_lot non renseignee dans dossier")." ".$id." <br>");                      $this->addToMessage("<br>"._("Parcelle ou parcelle_lot non renseignee dans dossier")." ".$id." <br>");    
945              }              }
946         }          }
947            // si la qualification est changée, envoie une message au service ERP
948            if ($this->val[array_search('a_qualifier', $this->champs)] != $this->valF['a_qualifier']
949                && $this->valF['enjeu_erp'] === true) {
950                $msgenque = new MessageEnqueuer();
951                $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
952                //$msgenque->competence(xxx); // TODO
953                //$msgenque->contrainte_plu(xxx); // TODO
954                $msgenque->enqueueMessage($msgenque::$ERP_DEPOT_DOSSIER_DAT);
955            }
956      }      }
957    
958      function sig_parametre(&$db){      function sig_parametre(&$db){

Legend:
Removed from v.626  
changed lines
  Added in v.835

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26