/[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 726 by nhaye, Fri Nov 16 16:27:09 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 715  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 730  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 757  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 790  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, &$division) {       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 817  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                $row = $res->fetchRow(DB_FETCHMODE_ASSOC);
846                            
847              $sql = "SELECT division FROM instructeur WHERE instructeur = ".$row['instructeur'];              $sql = "SELECT division FROM instructeur WHERE instructeur = ".$row['instructeur'];
848              $res = $db->query($sql);              $res = $this->db->query($sql);
849              if (database :: isError($res))              if (database :: isError($res))
850                  die($res->getMessage()."erreur ".$sql);                  die($res->getMessage()."erreur ".$sql);
851                                    
852              if ( $res->numRows() > 0 ){              if ( $res->numRows() > 0 ){
853                    
854                  $rowT=& $res->fetchRow(DB_FETCHMODE_ASSOC);                  $rowT=& $res->fetchRow(DB_FETCHMODE_ASSOC);
855                  $division = $rowT['division'];                  $row['division'] = $rowT['division'];
856              }              }
857                            
858              return $row['instructeur'];              return $row;
859          }          }
860                    
861          return NULL;          return NULL;
# Line 848  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            // Si aucun instructeur n'est saisi et que la nature n'est pas vide
900            // 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                            
903              /*Instructeur*/              //
904              if ( ( empty($this->valF['instructeur']) || $this->valF['instructeur'] == '' ) && $val['nature'] != '' ){              $instructeurDivision = $this->getInstructeurDivision($quartier, $arrondissement, $section, $val['nature']);
905                if ( $instructeurDivision != NULL ){
906                                    
907                  $division = '';                  $instructeur = $instructeurDivision['instructeur'];
908                  $instructeur = $this->getInstructeur($quartier, $arrondissement, $section, $val['nature'], $db, $division);                  $division = $instructeurDivision['division'];
909                }
910                
911                if ( $instructeur != NULL ){
912                                    
913                  if ( $instructeur != NULL ){                  $this->valF['instructeur'] = $instructeur;
914                      $this->valF['instructeur'] = $instructeur;                  $this->valF['division'] = $division;
915                      $this->valF['division'] = $division;              } else {
916                  }                  if ($this->f->isAccredited("dossier_modifier_instructeur")) {
917                  else {                      $this->addToMessage("<br/> "._("Pensez a assigner un instructeur a ce dossier.")." <br/>");
918                      if ( is_numeric($_SESSION['profil']) && $_SESSION['profil'] == 5 )                  } else {
919                          $this->addToMessage("<br/> "._("Pensez a assigner un instructeur 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/>");
                     else  
                         $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              else              $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/>");  
924          }          }
925            //
926          else          $this->addToLog("triggerajouter() : end", EXTRA_VERBOSE_MODE);
             $this->addToMessage("<br/> "._("Pensez a assigner un instructeur a ce dossier.")." <br/>");  
927      }      }
928    
929      function triggermodifierapres($id,&$db,$val,$DEBUG) {      function triggermodifierapres($id,&$db,$val,$DEBUG) {
# Line 907  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.726  
changed lines
  Added in v.835

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26