/[openfoncier]/trunk/services/metier/maintenancemanager.php
ViewVC logotype

Diff of /trunk/services/metier/maintenancemanager.php

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

revision 2126 by vpihour, Wed Jul 17 16:41:07 2013 UTC revision 2127 by softime, Mon Aug 5 12:59:05 2013 UTC
# Line 30  class MaintenanceManager extends MetierM Line 30  class MaintenanceManager extends MetierM
30          'instruction' => 'updateDossierTacite',          'instruction' => 'updateDossierTacite',
31          'import' => 'importDigitalizedDocuments',          'import' => 'importDigitalizedDocuments',
32          'purge' => 'purgeDigitalizedDocuments',          'purge' => 'purgeDigitalizedDocuments',
33            'update_dossier_autorisation' => 'updateDAState',
34      );      );
35    
36      /**      /**
# Line 285  class MaintenanceManager extends MetierM Line 286  class MaintenanceManager extends MetierM
286    
287          //Chemin des dossiers source et destination          //Chemin des dossiers source et destination
288          $path = $data;          $path = $data;
289    
290          //Si deux données sont présentes dans $data          //Si deux données sont présentes dans $data
291          if (!empty($path)) {          if (!empty($path)) {
292    
293              //Dossier source              //Dossier source
294              $pathSrc = isset($path["Todo"])?$path["Todo"]:"";              $pathSrc = isset($path["Todo"])?$path["Todo"]:"";
295              //Aucun chemin n'est fourni pour le dossier source, on utilise la              //Aucun chemin n'est fourni pour le dossier source, on utilise la
# Line 339  class MaintenanceManager extends MetierM Line 342  class MaintenanceManager extends MetierM
342    
343              $pathSrc = $this->f->config['path_scan'].'Todo/';              $pathSrc = $this->f->config['path_scan'].'Todo/';
344              $pathDes = $this->f->config['path_scan'].'Done/';              $pathDes = $this->f->config['path_scan'].'Done/';
345          }          }        
           
346    
347          //          //
348          $repo = scandir($pathSrc);          $repo = scandir($pathSrc);
# Line 453  class MaintenanceManager extends MetierM Line 455  class MaintenanceManager extends MetierM
455          return $this->OK;          return $this->OK;
456      }      }
457    
458        /**
459         * Cette fonction permet de mettre à jour l'état des dossiers d'autorisation
460         */
461        public function updateDAState() {
462    
463            // Récupération des DA dont l'état doit passer à "Périmé"
464            $sql_da = "SELECT dossier_autorisation.dossier_autorisation
465    
466                    FROM ".DB_PREFIXE."dossier_autorisation
467                    LEFT JOIN ".DB_PREFIXE."dossier
468                        ON dossier.dossier_autorisation = dossier_autorisation.dossier_autorisation
469                    LEFT JOIN ".DB_PREFIXE."dossier_instruction_type
470                        ON dossier.dossier_instruction_type = dossier_instruction_type.dossier_instruction_type
471                    LEFT JOIN ".DB_PREFIXE."etat_dossier_autorisation
472                        ON dossier_autorisation.etat_dossier_autorisation = etat_dossier_autorisation.etat_dossier_autorisation
473                    LEFT JOIN ".DB_PREFIXE."dossier_autorisation_type_detaille
474                        ON dossier_autorisation_type_detaille.dossier_autorisation_type_detaille = dossier_autorisation.dossier_autorisation_type_detaille
475    
476                    WHERE etat_dossier_autorisation.libelle = 'Accordé'
477                        AND dossier_autorisation.date_decision IS NOT NULL
478                        AND dossier.etat = 'accepter'
479                        AND (dossier_instruction_type.code != 'DACT'
480                            OR dossier_instruction_type.code != 'DOC')
481                        AND (dossier_autorisation.date_decision + dossier_autorisation_type_detaille.duree_validite) < current_date
482    
483                    GROUP BY dossier_autorisation.dossier_autorisation";
484            $res_da = $this->db->query($sql_da);
485            if ($this->f->isDatabaseError($res_da, true)) {
486                $this->setMessage(_("Erreur de base de donnees."));
487                return $this->KO;
488            }
489    
490            // Récupération de l'identifiant de l'état "Périmé"
491            $sql_etat_perime = "SELECT etat_dossier_autorisation
492                                FROM ".DB_PREFIXE."etat_dossier_autorisation
493                                WHERE libelle = 'Périmé'";
494            $res_etat_perime = $this->db->getOne($sql_etat_perime);
495            if ($this->f->isDatabaseError($res_etat_perime, true)) {
496                $this->setMessage(_("Erreur de base de donnees."));
497                return $this->KO;
498            }
499    
500            // Liste des dossiers d'autorisation
501            $ids = array();
502            while ($row_da =& $res_da->fetchRow(DB_FETCHMODE_ASSOC)) {
503                $ids[] = "'".$row_da['dossier_autorisation']."'";
504            }
505    
506            // Si aucun dossier d'autorisation n'est concerné par le traitement alors on
507            // ajoute un message d'informations et on retourne un résultat 'OK'
508            if (count($ids) == 0) {
509                $this->setMessage(_("Aucune mise a jour."));
510                return $this->OK;
511            }
512    
513            // Exécution du traitement
514            // On met à jour tous les dossiers d'autorisations
515            $fields = array(
516                'etat_dossier_autorisation' => $res_etat_perime,
517            );
518            $res = $this->db->autoExecute(DB_PREFIXE."dossier_autorisation",
519                                          $fields,
520                                          DB_AUTOQUERY_UPDATE,
521                                          'dossier_autorisation IN ('.implode(',', $ids).')');
522            // Logger
523            $this->addToLog("updateDAState(): db->autoExecute(\"".DB_PREFIXE."dossier_autorisation"."\", ".print_r($fields, true).", DB_AUTOQUERY_UPDATE, \"dossier_autorisation IN (\"".implode(',', $ids)."\")", VERBOSE_MODE);
524            // Si une erreur de base de données se produit sur cette requête
525            // alors on retourne un résultat d'erreur
526            if ($this->f->isDatabaseError($res, true)) {
527                $this->setMessage("Erreur de base de données.");
528                return $this->KO;
529            }
530    
531            // Tout s'est déroulé correctement alors on ajoute un message
532            // d'informations et on retourne le résultat 'OK'
533            $this->setMessage(count($ids)." "._("dossier(s) d'autorisation(s) mis a jour."));
534            return $this->OK;
535    
536        }
537    
538  }  }
539    
540  ?>  ?>

Legend:
Removed from v.2126  
changed lines
  Added in v.2127

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26