30 |
'instruction' => 'updateDossierTacite', |
'instruction' => 'updateDossierTacite', |
31 |
'import' => 'importDigitalizedDocuments', |
'import' => 'importDigitalizedDocuments', |
32 |
'purge' => 'purgeDigitalizedDocuments', |
'purge' => 'purgeDigitalizedDocuments', |
33 |
|
'update_dossier_autorisation' => 'updateDAState', |
34 |
); |
); |
35 |
|
|
36 |
/** |
/** |
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 |
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); |
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 |
?> |
?> |