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

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

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

revision 10207 by softime, Tue Jun 29 13:39:42 2021 UTC revision 14064 by softime, Thu Feb 16 22:52:47 2023 UTC
# Line 104  class DigitalizedDocument { Line 104  class DigitalizedDocument {
104       * @return int       Identifiant du type de document       * @return int       Identifiant du type de document
105       */       */
106      private function get_document_numerise_by_code($code) {      private function get_document_numerise_by_code($code) {
107            // Recherche du type de document avec le code de la nomenclature externe
108            // issu du nom du fichier
109            // Dans le nom du fichier des "_" sont utilisés à la place des "-" pour éviter
110            // la confusion entre le code de le pièce et son numéro de version. Pour
111            // retrouver la pièce ils doivent être remplacé.
112            $qres = $this->f->get_one_result_from_db_query(
113                sprintf(
114                    'SELECT
115                        lien_document_n_type_d_i_t.document_numerise_type
116                    FROM
117                        %1$slien_document_n_type_d_i_t
118                    WHERE
119                        lien_document_n_type_d_i_t.code LIKE \'%2$s\'',
120                    DB_PREFIXE,
121                    $this->f->db->escapeSimple(str_replace('_', '-', $code))
122                ),
123                array(
124                    "origin" => __METHOD__,
125                )
126            );
127            $document_numerise_type = $qres["result"];
128            if (! empty($document_numerise_type) && is_numeric($document_numerise_type)) {
129                return $document_numerise_type;
130            }
131    
132          //Requête SQL          //Requête SQL
133          $sql = "SELECT document_numerise_type          $qres = $this->f->get_one_result_from_db_query(
134                  FROM ".DB_PREFIXE."document_numerise_type              sprintf(
135                  WHERE code = '".$code."'";                  'SELECT
136          $document_numerise_type = $this->f->db->getOne($sql);                      document_numerise_type
137          $this->f->addToLog(__METHOD__."(): db->getOne(".$sql.")", VERBOSE_MODE);                  FROM
138          $this->f->isDatabaseError($document_numerise_type);                      %1$sdocument_numerise_type
139                    WHERE
140          //retourne la clé primaire                      code = \'%2$s\'',
141                    DB_PREFIXE,
142                    $this->f->db->escapeSimple($code)
143                ),
144                array(
145                    "origin" => __METHOD__,
146                )
147            );
148            $document_numerise_type = $qres["result"];
149          return $document_numerise_type;          return $document_numerise_type;
150      }      }
151    
# Line 150  class DigitalizedDocument { Line 182  class DigitalizedDocument {
182              while(false !== ($file = readdir($dir))) {              while(false !== ($file = readdir($dir))) {
183    
184                  //Si le document est bien un fichier de type pdf                  //Si le document est bien un fichier de type pdf
185                  if($file != '.' && $file != '..' && !is_dir($dir.$file)                  $autorisedExtension = explode(';', $this->f->config['upload_extension']);
                     && strcasecmp(strstr($file, '.'), ".pdf") == 0) {  
186    
187                      //Alors il est ajouté dans le tableau                  // $this->add_to_log(__METHOD__."(): file = ".$file."; extension ? = ".strstr($file, '.')."; tableau= ".var_export($autorisedExtension, true));
188                    if($file != '.' && $file != '..' && !is_dir($dir.$file)
189                        && ! empty($autorisedExtension) && is_array($autorisedExtension)
190                        && in_array(strstr($file, '.'), $autorisedExtension, true) === true) {
191                            
192                    // Alors il est ajouté dans le tableau
193                      array_push($listFiles, $file);                      array_push($listFiles, $file);
194    
195                  }                  }
# Line 326  class DigitalizedDocument { Line 362  class DigitalizedDocument {
362          $metadataFromFilename = $this->extractMetadataFromFilename($filename);          $metadataFromFilename = $this->extractMetadataFromFilename($filename);
363    
364          //Données          //Données
365            // Récupèration d'une nature de document numérisé pour pouvoir utiliser
366            // la méthode de récupèration de la valeur de la nature par défaut
367            $docNumNature = $this->f->get_inst__om_dbform(array(
368                'obj' => 'document_numerise_nature',
369                'idx' => ']'
370            ));
371    
372          $values = array(          $values = array(
373              'document_numerise' => '',              'document_numerise' => '',
374              'uid' => 'tmp|'.$uid,              'uid' => 'tmp|'.$uid,
# Line 333  class DigitalizedDocument { Line 376  class DigitalizedDocument {
376              'nom_fichier' => $filename,              'nom_fichier' => $filename,
377              'date_creation' => $metadataFromFilename['dateEvenementDocument'],              'date_creation' => $metadataFromFilename['dateEvenementDocument'],
378              'document_numerise_type' => $this->get_document_numerise_by_code($metadataFromFilename['title']),              'document_numerise_type' => $this->get_document_numerise_by_code($metadataFromFilename['title']),
379              'uid_dossier_final' => ''              'uid_dossier_final' => '',
380                'document_numerise_nature' => $docNumNature->get_default_select_value($dossier),
381                'description_type' => '',
382                'document_travail' => false,
383                'uid_thumbnail' => null,
384          );          );
385    
386          //Ajoute dans la table le lien          //Ajoute dans la table le lien
# Line 479  class DigitalizedDocument { Line 526  class DigitalizedDocument {
526          $dossier = str_replace('.', '', $foldername);          $dossier = str_replace('.', '', $foldername);
527    
528          //Vérifie si le numéro de dossier d'instruction est sur quatres chiffres          //Vérifie si le numéro de dossier d'instruction est sur quatres chiffres
529          if(preg_match('/[A-Za-z]{2,3}'.$this->f->getParameter("departement").          if(preg_match('/[A-Za-z]{2,3}'.strtoupper($this->f->getParameter("departement")).
530              $this->f->getParameter("commune").'[0-9]{2}[0-9]{4}[A-Za-z]{1,5}[0-9]{1,2}/',              $this->f->getParameter("commune").'[0-9]{2}[0-9]{4}[A-Za-z]{1,5}[0-9]{1,2}/',
531              $dossier)){              $dossier)){
532                            
533              //On modifie le nom du dossier d'instruction pour qu'il ait la numérotation              //On modifie le nom du dossier d'instruction pour qu'il ait la numérotation
534              //standard              //standard
535              $tempDossier = preg_split('/([A-Za-z]{2,3}'.$this->f->getParameter("departement").              $tempDossier = preg_split('/([A-Za-z]{2,3}'.strtoupper($this->f->getParameter("departement")).
536                  $this->f->getParameter("commune").'[0-9]{2})/i', $dossier, 0, PREG_SPLIT_NO_EMPTY |                  $this->f->getParameter("commune").'[0-9]{2})/i', $dossier, 0, PREG_SPLIT_NO_EMPTY |
537                  PREG_SPLIT_DELIM_CAPTURE);                  PREG_SPLIT_DELIM_CAPTURE);
538                            
# Line 493  class DigitalizedDocument { Line 540  class DigitalizedDocument {
540          }          }
541                    
542          //On vérifie que le dossier existe          //On vérifie que le dossier existe
543          $sql = "SELECT dossier          $inst_dossier_instruction = $this->f->get_inst__om_dbform(array(
544              FROM ".DB_PREFIXE."dossier              "obj" => "dossier",
545              WHERE dossier = '".$dossier."'";              "idx" => $dossier,
546          $dossierExist = $this->f->db->getOne($sql);          ));
         $this->f->addToLog(__METHOD__."(): db->getOne(".$sql.")", VERBOSE_MODE);  
         $this->f->isDatabaseError($dossierExist);  
           
547          //Si le dossier n'existe pas on annule l'importation          //Si le dossier n'existe pas on annule l'importation
548          if (!$dossierExist){          if (!$inst_dossier_instruction->exists()){
549              $this->add_to_log(__METHOD__."(): ".$pathSrc."/ : "._("Le dossier d'instruction n'existe pas.")." ".$this->NO_IMPORT, true);              $this->add_to_log(__METHOD__."(): ".$pathSrc."/ : "._("Le dossier d'instruction n'existe pas.")." ".$this->NO_IMPORT, true);
550              return false;              return false;
551          }          }

Legend:
Removed from v.10207  
changed lines
  Added in v.14064

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26