/[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 2301 by softime, Tue Sep 10 17:40:30 2013 UTC revision 2302 by vpihour, Mon Sep 16 16:25:21 2013 UTC
# Line 914  class dossier extends dossier_gen { Line 914  class dossier extends dossier_gen {
914    
915      }      }
916            
917      /*      /**
918       * Calcul l'identifiant du quartier et d'un arrondissement d'une parcelle       * Récupère l'identifiant du quartier et d'un arrondissement d'une référence
919       * */       * cadastrale
920       function getQuartierArrondissement($parcelle) {       * @param string $reference_cadastrale
921         *
922         * @return array
923         */
924        function getQuartierArrondissement($reference_cadastrale) {
925                            
926           $parcelle = trim($parcelle);          $reference_cadastrale = trim($reference_cadastrale);
927           $quartier = '';          $quartier = '';
928                    
929           /*Récupère le code impot du quartier dans la parcelle*/          //Récupère le code impot du quartier dans la référence cadastrale
930           for ( $i = 0 ; $i < strlen($parcelle) ; $i++ ){          for ( $i = 0 ; $i < strlen($reference_cadastrale) ; $i++ ){
931                              
932              if (is_numeric($parcelle[$i]) ){             //Si c'est un chiffre, c'est le code quartier
933                                   if (is_numeric($reference_cadastrale[$i]) ){
934                  $quartier .= $parcelle[$i];  
935              }                 $quartier .= $reference_cadastrale[$i];
936              else{             }
937                                   //Sinon c'est la section
938                  break;             else{
939              }                 break;
940           }             }
941                    }
942          
943            //Si le code impôt du quartier a bien été renseigné
944          if ( $quartier !== '' ){          if ( $quartier !== '' ){
945                          
946              /*identifiant*/              //Requête de récupération de l'identifiantdu quartier et de
947                //l'arrondissement
948              $sql = "SELECT              $sql = "SELECT
949                          quartier, arrondissement                          quartier, arrondissement
950                      FROM                      FROM
951                          ".DB_PREFIXE."quartier                          ".DB_PREFIXE."quartier
952                      WHERE                      WHERE
953                          code_impots='$quartier'";                          code_impots='$quartier'";
954                            $this->addToLog("getQuartierArrondissement() : db->query(\"$sql\")", VERBOSE_MODE);
             $this->addToLog("getQuartierArrondissement(parcelle) : db->query(\"$sql\")", VERBOSE_MODE);  
955              $res = $this->db->query($sql);              $res = $this->db->query($sql);
956              if (database :: isError($res))              if (database::isError($res)) {
957                  die($res->getMessage()."erreur ".$sql);                  die();
958                            }
959              if ( $res->numRows() > 0 ){            
960                                    //Si on a un résultat
961                if ( $res->numRows() == 1 ){
962                    //    
963                  return $res->fetchRow(DB_FETCHMODE_ASSOC);                  return $res->fetchRow(DB_FETCHMODE_ASSOC);
964              }              }
965          }          }
966                  
967          return NULL;          return NULL;
968       }      }
969            
970       /*      /**
971       * Retourne la section d'une parcelle       * Récupère la section d'une référence cadastrale
972       * */       * @param string $reference_cadastrale
973       function getSection($parcelle){       *
974         * @return string
975         */
976        function getSection($reference_cadastrale){
977                    
978           $parcelle = trim($parcelle);          $reference_cadastrale = trim($reference_cadastrale);
979           $section = NULL;          $section = NULL;
980                    
981           for ( $i = 0 ; $i < strlen($parcelle) ; $i++ )          for ( $i = 0 ; $i < strlen($reference_cadastrale) ; $i++ )
982              if ( !is_numeric($parcelle[$i]) && is_string($parcelle[$i]) && $parcelle[$i] !== ' ' )              if ( !is_numeric($reference_cadastrale[$i]) && is_string($reference_cadastrale[$i]) && $reference_cadastrale[$i] !== ' ' )
983                  $section .= $parcelle[$i];                  $section .= $reference_cadastrale[$i];
984                    
985           return $section;          return $section;
986       }      }
987            
988      /*      /*
989       * Retourne l'intructeur correspondant le mieux à la parcelle       * Retourne l'intructeur correspondant le mieux à la parcelle
990       * */       * */
991       function getInstructeurDivision( $quartier, $arrondissement, $section, $dossier_autorisation) {      /**
992         * Récupère la section d'une référence cadastrale
993         * @param string $quartier
994         * @param string $arrondissement
995         * @param string $section
996         * @param string $dossier_autorisation
997         *
998         * @return array
999         */    
1000        function getInstructeurDivision( $quartier, $arrondissement, $section, $dossier_autorisation) {
1001                                    
1002          $quartier = ( $quartier == NULL ) ? -1 : $quartier;          $quartier = ( $quartier == NULL ) ? -1 : $quartier;
1003          $arrondissement = ( $arrondissement == NULL ) ? -1 : $arrondissement;          $arrondissement = ( $arrondissement == NULL ) ? -1 : $arrondissement;
1004                    
1005          /*Récupération du dossier_autorisation_type_detaille concerné par le $dossier_autorisation*/          //Récupération du dossier_autorisation_type_detaille concerné par le
1006            //$dossier_autorisation
1007          $sql = "          $sql = "
1008             SELECT             SELECT
1009                 dossier_autorisation_type_detaille                 dossier_autorisation_type_detaille
# Line 994  class dossier extends dossier_gen { Line 1015  class dossier extends dossier_gen {
1015          $this->addToLog("getInstructeurDivision : db->query(\"$sql\")", VERBOSE_MODE);          $this->addToLog("getInstructeurDivision : db->query(\"$sql\")", VERBOSE_MODE);
1016          $resDATD = $this->db->query($sql);          $resDATD = $this->db->query($sql);
1017          if (database :: isError($resDATD))          if (database :: isError($resDATD))
1018              die($resDATD->getMessage()."erreur ".$sql);              die($resDATD->getMessage()."erreur ".$sql);        
1019            
1020            //Si le dossier d'autorisation a un type détaillé de dossier
1021            //d'autorisation associé
1022          if ( $resDATD->numRows() > 0 ){          if ( $resDATD->numRows() > 0 ){
1023              $rowDATD = $resDATD->fetchRow(DB_FETCHMODE_ASSOC);              $rowDATD = $resDATD->fetchRow(DB_FETCHMODE_ASSOC);
1024                            
1025                //Requête de récupération de l'instructeur à affecter
1026              $sql = "              $sql = "
1027                 SELECT                 SELECT
1028                     instructeur, section, quartier, arrondissement, dossier_autorisation_type_detaille                     instructeur, section, quartier, arrondissement, dossier_autorisation_type_detaille
# Line 1022  class dossier extends dossier_gen { Line 1046  class dossier extends dossier_gen {
1046                     ( dossier_autorisation_type_detaille = ".$rowDATD['dossier_autorisation_type_detaille']." AND arrondissement = $arrondissement AND quartier = $quartier AND section IS NULL ) OR                     ( dossier_autorisation_type_detaille = ".$rowDATD['dossier_autorisation_type_detaille']." AND arrondissement = $arrondissement AND quartier = $quartier AND section IS NULL ) OR
1047                     ( dossier_autorisation_type_detaille = ".$rowDATD['dossier_autorisation_type_detaille']." AND arrondissement = $arrondissement AND quartier = $quartier AND section = '$section' )                     ( dossier_autorisation_type_detaille = ".$rowDATD['dossier_autorisation_type_detaille']." AND arrondissement = $arrondissement AND quartier = $quartier AND section = '$section' )
1048                 ORDER BY section, quartier, arrondissement, dossier_autorisation_type_detaille                 ORDER BY section, quartier, arrondissement, dossier_autorisation_type_detaille
1049                 LIMIT 1                 LIMIT 1";
             ";  
               
1050              $this->addToLog("getInstructeurDivision : db->query(\"$sql\")", VERBOSE_MODE);              $this->addToLog("getInstructeurDivision : db->query(\"$sql\")", VERBOSE_MODE);
1051              $res = $this->db->query($sql);              $res = $this->db->query($sql);
1052              if (database :: isError($res))              if (database :: isError($res))
1053                  die($res->getMessage()."erreur ".$sql);                  die($res->getMessage()."erreur ".$sql);
1054                            
1055                //Si on a récupéré un instructeur correspondant aux critères
1056              if ( $res->numRows() > 0 ){              if ( $res->numRows() > 0 ){
1057                                    
1058                  $row = $res->fetchRow(DB_FETCHMODE_ASSOC);                  $row = $res->fetchRow(DB_FETCHMODE_ASSOC);
1059                                    //On récupère sa division
1060                  $sql = "SELECT division FROM ".DB_PREFIXE."instructeur WHERE instructeur = ".$row['instructeur'];                  $sql = "SELECT division FROM ".DB_PREFIXE."instructeur WHERE instructeur = ".$row['instructeur'];
1061                  $res = $this->db->query($sql);                  $res = $this->db->query($sql);
1062                  if (database :: isError($res))                  if (database :: isError($res))
1063                      die($res->getMessage()."erreur ".$sql);                      die($res->getMessage()."erreur ".$sql);
1064                                        
1065                    $row['division'] = NULL;
1066                    //S'il a une division
1067                  if ( $res->numRows() > 0 ){                  if ( $res->numRows() > 0 ){
1068                                            
1069                      $rowT=& $res->fetchRow(DB_FETCHMODE_ASSOC);                      $rowT=& $res->fetchRow(DB_FETCHMODE_ASSOC);
# Line 1067  class dossier extends dossier_gen { Line 1092  class dossier extends dossier_gen {
1092          $arrondissement = NULL;          $arrondissement = NULL;
1093          $section = NULL;          $section = NULL;
1094          $instructeur = NULL;          $instructeur = NULL;
1095            
1096          // Si la parcelle n'est pas vide alors on récupère la section, le          // Si la référence cadastrale n'est pas vide alors on récupère la
1097          // quartier et l'arrondissement          //section, le quartier et l'arrondissement
1098          if ($val['parcelle'] != '') {          if ($this->valF['terrain_references_cadastrales'] != '') {
1099              // Cette méthode récupère l'arrondissement et le quartier associé à une parcelle              
1100              $quartierArrondissement = $this->getQuartierArrondissement($val['parcelle']);              // Cette méthode récupère l'arrondissement et le quartier de la
1101                //référence cadastrale saisie
1102                $quartierArrondissement = $this->getQuartierArrondissement($this->valF['terrain_references_cadastrales']);
1103              if ( $quartierArrondissement!= NULL ){              if ( $quartierArrondissement!= NULL ){
1104                                    
1105                  $quartier = $quartierArrondissement['quartier'];                  $quartier = $quartierArrondissement['quartier'];
# Line 1085  class dossier extends dossier_gen { Line 1112  class dossier extends dossier_gen {
1112                  $quartier = NULL;                  $quartier = NULL;
1113              }              }
1114              // On récupère la section              // On récupère la section
1115              $section = $this->getSection($val['parcelle']);              $section = $this->getSection($this->valF['terrain_references_cadastrales']);
1116          }          }
1117            
1118          // Si aucun instructeur n'est saisi et que la dossier_autorisation_type_detaille n'est pas vide          // Si aucun instructeur n'est saisi et que la dossier_autorisation_type_detaille n'est pas vide
1119          // alors on récupère l'instructeur et la division depuis l'affectation          // alors on récupère l'instructeur et la division depuis l'affectation
1120          if ( ( empty($this->valF['instructeur']) || $this->valF['instructeur'] == '' ) && $val['dossier_autorisation'] != '' ) {          if ( ( empty($this->valF['instructeur']) || $this->valF['instructeur'] == '' ) && $val['dossier_autorisation'] != '' ) {
1121                            
1122              //              //Récupération de l'instructeur ainsi que de sa division
1123              $instructeurDivision = $this->getInstructeurDivision($quartier, $arrondissement, $section, $val['dossier_autorisation']);              $instructeurDivision = $this->getInstructeurDivision($quartier, $arrondissement, $section, $this->valF['dossier_autorisation']);
1124    
1125                //Si un instructeur et sa division ont été récupérés
1126              if ( $instructeurDivision != NULL ){              if ( $instructeurDivision != NULL ){
1127                                    
1128                  $instructeur = $instructeurDivision['instructeur'];                  $instructeur = $instructeurDivision['instructeur'];
1129                  $division = $instructeurDivision['division'];                  $division = $instructeurDivision['division'];
1130              }              }
1131                            //Si un instructeur et sa division n'ont pas été récupérés, on
1132                //ajoute pas les données
1133              if ( $instructeur != NULL ){              if ( $instructeur != NULL ){
1134                                    
1135                  $this->valF['instructeur'] = $instructeur;                  $this->valF['instructeur'] = $instructeur;
1136                  $this->valF['division'] = $division;                  $this->valF['division'] = $division;
1137              } else {              } else {
1138                    //On affiche un message à l'utilisateur pour lui signifier
1139                    //qu'aucun instructeur n'a été assigné au dossier d'instruction
1140                    //créé
1141                  if ($this->f->isAccredited("dossier_modifier_instructeur")) {                  if ($this->f->isAccredited("dossier_modifier_instructeur")) {
1142                      $this->addToMessage("<br/> "._("Pensez a assigner un instructeur a ce dossier.")." <br/>");                      $this->addToMessage("<br/> "._("Pensez a assigner un instructeur a ce dossier.")." <br/>");
1143                  } else {                  } else {

Legend:
Removed from v.2301  
changed lines
  Added in v.2302

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26