62 |
/** |
/** |
63 |
* Catégorie de la tâche |
* Catégorie de la tâche |
64 |
*/ |
*/ |
65 |
var $category = 'platau'; |
var $category = PLATAU; |
66 |
|
|
67 |
/** |
/** |
68 |
* Définition des actions disponibles sur la classe. |
* Définition des actions disponibles sur la classe. |
424 |
// DI / DA correspondant. On stocke le numéro de dossier dans la propriété val |
// DI / DA correspondant. On stocke le numéro de dossier dans la propriété val |
425 |
// du formulaire pour pouvoir l'afficher |
// du formulaire pour pouvoir l'afficher |
426 |
if ($external_uid != '') { |
if ($external_uid != '') { |
427 |
$uid = sprintf( |
$qres = $this->f->get_one_result_from_db_query( |
428 |
'SELECT |
sprintf( |
429 |
lien_id_interne_uid_externe.dossier |
'SELECT |
430 |
FROM |
lien_id_interne_uid_externe.dossier |
431 |
%1$slien_id_interne_uid_externe |
FROM |
432 |
WHERE |
%1$slien_id_interne_uid_externe |
433 |
lien_id_interne_uid_externe.external_uid = \'%2$s\'', |
WHERE |
434 |
DB_PREFIXE, |
lien_id_interne_uid_externe.external_uid = \'%2$s\'', |
435 |
$external_uid |
DB_PREFIXE, |
436 |
|
$this->f->db->escapeSimple($external_uid) |
437 |
|
), |
438 |
|
array( |
439 |
|
"origin" => __METHOD__, |
440 |
|
) |
441 |
); |
); |
442 |
$res_external_uid = $this->f->get_one_result_from_db_query($uid); |
if (! empty($qres["result"])) { |
443 |
if (! empty($res_external_uid['result'])) { |
$form->val['dossier'] = $qres["result"]; |
|
$form->val['dossier'] = $res_external_uid['result']; |
|
444 |
} |
} |
445 |
} |
} |
446 |
} |
} |
451 |
$obj_link = ''; |
$obj_link = ''; |
452 |
if ($form->val['type'] == "creation_DA" || $form->val['type'] == "modification_DA") { |
if ($form->val['type'] == "creation_DA" || $form->val['type'] == "modification_DA") { |
453 |
// Vérification que le numéro de DA affiché dans le formulaire existe |
// Vérification que le numéro de DA affiché dans le formulaire existe |
454 |
$idDA = sprintf( |
$qres = $this->f->get_one_result_from_db_query( |
455 |
'SELECT |
sprintf( |
456 |
dossier_autorisation.dossier_autorisation |
'SELECT |
457 |
FROM |
dossier_autorisation.dossier_autorisation |
458 |
%1$sdossier_autorisation |
FROM |
459 |
WHERE |
%1$sdossier_autorisation |
460 |
dossier_autorisation.dossier_autorisation = \'%2$s\'', |
WHERE |
461 |
DB_PREFIXE, |
dossier_autorisation.dossier_autorisation = \'%2$s\'', |
462 |
$form->val['dossier'] |
DB_PREFIXE, |
463 |
|
$this->f->db->escapeSimple($form->val['dossier']) |
464 |
|
), |
465 |
|
array( |
466 |
|
"origin" => __METHOD__, |
467 |
|
) |
468 |
); |
); |
|
$resIdDA=$this->f->get_one_result_from_db_query($idDA); |
|
469 |
// Si on a un résultat c'est que le dossier existe, il faut afficher le lien |
// Si on a un résultat c'est que le dossier existe, il faut afficher le lien |
470 |
if (! empty($resIdDA['result'])) { |
if (! empty($qres["result"])) { |
471 |
$obj_link = 'dossier_autorisation'; |
$obj_link = 'dossier_autorisation'; |
472 |
} |
} |
473 |
} else { |
} else { |
474 |
// Vérification que le numéro de DI affiché dans le formulaire existe |
// Vérification que le numéro de DI affiché dans le formulaire existe |
475 |
$idDI = sprintf( |
$qres = $this->f->get_one_result_from_db_query( |
476 |
'SELECT |
sprintf( |
477 |
dossier.dossier |
'SELECT |
478 |
FROM |
dossier.dossier |
479 |
%1$sdossier |
FROM |
480 |
WHERE |
%1$sdossier |
481 |
dossier.dossier = \'%2$s\'', |
WHERE |
482 |
DB_PREFIXE, |
dossier.dossier = \'%2$s\'', |
483 |
$form->val['dossier'] |
DB_PREFIXE, |
484 |
|
$this->f->db->escapeSimple($form->val['dossier']) |
485 |
|
), |
486 |
|
array( |
487 |
|
"origin" => __METHOD__, |
488 |
|
) |
489 |
); |
); |
|
$resDI = $this->f->get_one_result_from_db_query($idDI); |
|
490 |
// Si on a un résultat c'est que le dossier existe, il faut afficher le lien |
// Si on a un résultat c'est que le dossier existe, il faut afficher le lien |
491 |
if (! empty($resDI['result'])) { |
if (! empty($qres["result"])) { |
492 |
$obj_link = 'dossier_instruction'; |
$obj_link = 'dossier_instruction'; |
493 |
} |
} |
494 |
} |
} |
518 |
function setVal(&$form, $maj, $validation, &$dnu1 = null, $dnu2 = null) { |
function setVal(&$form, $maj, $validation, &$dnu1 = null, $dnu2 = null) { |
519 |
// parent::setVal($form, $maj, $validation); |
// parent::setVal($form, $maj, $validation); |
520 |
// |
// |
521 |
if ($this->getVal('stream') == "output") { |
if ($this->getVal('stream') == "output" |
522 |
|
&& $this->getVal('state') !== self::STATUS_DONE) { |
523 |
|
// |
524 |
$form->setVal('json_payload', $this->view_form_json(true)); |
$form->setVal('json_payload', $this->view_form_json(true)); |
525 |
} else { |
} else { |
526 |
$form->setVal('json_payload', json_encode(json_decode($this->getVal('json_payload'), true), JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)); |
$form->setVal('json_payload', json_encode(json_decode($this->getVal('json_payload'), true), JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)); |
605 |
$this->valF['stream'] == 'input')) { |
$this->valF['stream'] == 'input')) { |
606 |
|
|
607 |
// décode la payload JSON |
// décode la payload JSON |
608 |
|
// TODO : COMMENTER |
609 |
$json_payload = json_decode($this->valF['json_payload'], true); |
$json_payload = json_decode($this->valF['json_payload'], true); |
610 |
|
|
611 |
// défini une liste de chemin de clés requises |
// défini une liste de chemin de clés requises |
612 |
$paths = array(); |
$paths = array(); |
613 |
if ($this->valF['category'] === 'platau') { |
if ($this->valF['category'] === PLATAU) { |
614 |
$paths = array( |
$paths = array( |
615 |
'external_uids/dossier' |
'external_uids/dossier' |
616 |
); |
); |
688 |
* @return [type] [description] |
* @return [type] [description] |
689 |
*/ |
*/ |
690 |
public function task_exists(string $type, string $object_id, string $dossier = null, bool $is_not_done = true) { |
public function task_exists(string $type, string $object_id, string $dossier = null, bool $is_not_done = true) { |
691 |
$query = sprintf(' |
$qres = $this->f->get_one_result_from_db_query( |
692 |
SELECT task |
sprintf( |
693 |
FROM %1$stask |
'SELECT |
694 |
WHERE %2$s |
task |
695 |
type = \'%3$s\' |
FROM |
696 |
AND (object_id = \'%4$s\' |
%1$stask |
697 |
%5$s) |
WHERE |
698 |
AND state != \'%6$s\' |
%2$s |
699 |
', |
type = \'%3$s\' |
700 |
DB_PREFIXE, |
AND ( |
701 |
$is_not_done == true ? 'state != \''.self::STATUS_DONE.'\' AND' : '', |
object_id = \'%4$s\' |
702 |
$type, |
%5$s |
703 |
$object_id, |
) |
704 |
$dossier !== null ? sprintf('OR dossier = \'%s\'', $dossier) : '', |
AND state != \'%6$s\'', |
705 |
self::STATUS_CANCELED |
DB_PREFIXE, |
706 |
|
$is_not_done == true ? 'state != \''.self::STATUS_DONE.'\' AND' : '', |
707 |
|
$type, |
708 |
|
$object_id, |
709 |
|
$dossier !== null ? sprintf('OR dossier = \'%s\'', $dossier) : '', |
710 |
|
self::STATUS_CANCELED |
711 |
|
), |
712 |
|
array( |
713 |
|
"origin" => __METHOD__, |
714 |
|
) |
715 |
); |
); |
716 |
$res = $this->f->get_one_result_from_db_query($query); |
if ($qres["result"] !== null && $qres["result"] !== "") { |
717 |
if ($res['result'] !== null && $res['result'] !== '') { |
return $qres["result"]; |
|
return $res['result']; |
|
718 |
} |
} |
719 |
return false; |
return false; |
720 |
} |
} |
736 |
empty($search_values) === false ? ' WHERE ' : '', |
empty($search_values) === false ? ' WHERE ' : '', |
737 |
implode(' AND ', $search_values) |
implode(' AND ', $search_values) |
738 |
); |
); |
739 |
$res = $this->f->get_all_results_from_db_query($query); |
$res = $this->f->get_all_results_from_db_query( |
740 |
|
$query, |
741 |
|
array( |
742 |
|
"origin" => __METHOD__, |
743 |
|
) |
744 |
|
); |
745 |
if (count($res['result']) > 0) { |
if (count($res['result']) > 0) { |
746 |
return $res['result']; |
return $res['result']; |
747 |
} |
} |
841 |
$this->valF['object_id'] = $new_values['object_id']; |
$this->valF['object_id'] = $new_values['object_id']; |
842 |
$this->valF['last_modification_date'] = date('Y-m-d'); |
$this->valF['last_modification_date'] = date('Y-m-d'); |
843 |
$this->valF['last_modification_time'] = date('H:i:s'); |
$this->valF['last_modification_time'] = date('H:i:s'); |
844 |
|
if ($val['stream'] === 'output') { |
845 |
|
$this->valF['json_payload'] = "{}"; |
846 |
|
if ($this->getVal("state") !== self::STATUS_DONE |
847 |
|
&& $this->valF['state'] === self::STATUS_DONE) { |
848 |
|
// |
849 |
|
$this->valF['json_payload'] = $this->view_form_json(true); |
850 |
|
} |
851 |
|
} |
852 |
|
|
853 |
return true; |
return true; |
854 |
} |
} |
891 |
$tables = $this->get_tables_by_task_type($this->getVal('type'), $this->getVal('stream')); |
$tables = $this->get_tables_by_task_type($this->getVal('type'), $this->getVal('stream')); |
892 |
foreach ($tables as $table) { |
foreach ($tables as $table) { |
893 |
// Vérifie s'il y a un ou aucun résultat |
// Vérifie s'il y a un ou aucun résultat |
894 |
$query = sprintf(' |
$qres = $this->f->get_one_result_from_db_query( |
895 |
SELECT COUNT(%2$s) |
sprintf( |
896 |
FROM %1$s%2$s |
'SELECT |
897 |
WHERE %2$s::CHARACTER VARYING = \'%3$s\' |
COUNT(%2$s) |
898 |
', |
FROM |
899 |
DB_PREFIXE, |
%1$s%2$s |
900 |
$table, |
WHERE |
901 |
$value['prev_object_id'] |
%2$s::CHARACTER VARYING = \'%3$s\'', |
902 |
|
DB_PREFIXE, |
903 |
|
$table, |
904 |
|
$value['prev_object_id'] |
905 |
|
), |
906 |
|
array( |
907 |
|
"origin" => __METHOD__, |
908 |
|
"force_return" => true, |
909 |
|
) |
910 |
); |
); |
911 |
$res = $this->f->get_one_result_from_db_query($query, true); |
if ($qres["code"] !== "OK") { |
|
if ($res['code'] === 'KO') { |
|
912 |
return $this->end_treatment(__METHOD__, false); |
return $this->end_treatment(__METHOD__, false); |
913 |
} |
} |
914 |
// Affectation des valeurs et sortie de la boucle |
// Affectation des valeurs et sortie de la boucle |
915 |
if ($res['result'] == '1') { |
if ($qres["result"] == '1') { |
916 |
$params['object_id'] = $value['prev_object_id']; |
$params['object_id'] = $value['prev_object_id']; |
917 |
$params['state'] = $this->getVal('state'); |
$params['state'] = $this->getVal('state'); |
918 |
break; |
break; |
969 |
// En cas de changement de l'état de la tâche de notification, alors |
// En cas de changement de l'état de la tâche de notification, alors |
970 |
// le suivi des dates de la notification et de l'instruction, est effectué |
// le suivi des dates de la notification et de l'instruction, est effectué |
971 |
if (isset($val['category']) === true |
if (isset($val['category']) === true |
972 |
&& $val['category'] === 'portal' |
&& $val['category'] === PORTAL |
973 |
&& isset($val['type']) === true |
&& isset($val['type']) === true |
974 |
&& ($val['type'] === 'notification_recepisse' |
&& ($val['type'] === 'notification_recepisse' |
975 |
|| $val['type'] === 'notification_instruction' |
|| $val['type'] === 'notification_instruction' |
1012 |
} |
} |
1013 |
$valF_instruction['date_envoi_rar'] = date('d/m/Y'); |
$valF_instruction['date_envoi_rar'] = date('d/m/Y'); |
1014 |
$valF_instruction['date_retour_rar'] = date('d/m/Y', strtotime('now + 1 day')); |
$valF_instruction['date_retour_rar'] = date('d/m/Y', strtotime('now + 1 day')); |
1015 |
$inst_instruction->setParameter('maj', 1); |
// Action spécifique pour identifier que la modification |
1016 |
|
// est une nootification de demandeur |
1017 |
|
$inst_instruction->setParameter('maj', 175); |
1018 |
$update_instruction = $inst_instruction->modifier($valF_instruction); |
$update_instruction = $inst_instruction->modifier($valF_instruction); |
1019 |
if ($update_instruction === false) { |
if ($update_instruction === false) { |
1020 |
$this->addToLog(__METHOD__."(): ".$inst_instruction->msg, DEBUG_MODE); |
$this->addToLog(__METHOD__."(): ".$inst_instruction->msg, DEBUG_MODE); |
1338 |
DB_PREFIXE, |
DB_PREFIXE, |
1339 |
$where |
$where |
1340 |
); |
); |
1341 |
$res = $this->f->get_all_results_from_db_query($query, true); |
$res = $this->f->get_all_results_from_db_query( |
1342 |
|
$query, |
1343 |
|
array( |
1344 |
|
"origin" => __METHOD__, |
1345 |
|
"force_return" => true, |
1346 |
|
) |
1347 |
|
); |
1348 |
if ($res['code'] === 'KO') { |
if ($res['code'] === 'KO') { |
1349 |
return false; |
return false; |
1350 |
} |
} |
1520 |
', |
', |
1521 |
DB_PREFIXE |
DB_PREFIXE |
1522 |
); |
); |
1523 |
$res = $this->f->get_all_results_from_db_query($query, true); |
$res = $this->f->get_all_results_from_db_query( |
1524 |
|
$query, |
1525 |
|
array( |
1526 |
|
"origin" => __METHOD__, |
1527 |
|
"force_return" => true, |
1528 |
|
) |
1529 |
|
); |
1530 |
if ($res['code'] === 'KO') { |
if ($res['code'] === 'KO') { |
1531 |
return array(); |
return array(); |
1532 |
} |
} |
1537 |
return $result; |
return $result; |
1538 |
} |
} |
1539 |
|
|
1540 |
protected function get_external_uid($fk_idx, string $fk_idx_2, $fk_idx_3 = 'platau', $order_asc_desc = 'DESC') { |
protected function get_external_uid($fk_idx, string $fk_idx_2, $fk_idx_3 = PLATAU, $order_asc_desc = 'DESC') { |
1541 |
$inst_external_uid = $this->f->get_inst__by_other_idx(array( |
$inst_external_uid = $this->f->get_inst__by_other_idx(array( |
1542 |
"obj" => "lien_id_interne_uid_externe", |
"obj" => "lien_id_interne_uid_externe", |
1543 |
"fk_field" => 'object_id', |
"fk_field" => 'object_id', |
1552 |
return $inst_external_uid->getVal('external_uid'); |
return $inst_external_uid->getVal('external_uid'); |
1553 |
} |
} |
1554 |
|
|
1555 |
protected function get_all_external_uids($fk_idx, $link_objects = array(), $category='platau') { |
protected function get_all_external_uids($fk_idx, $link_objects = array(), $category=PLATAU) { |
1556 |
if (count($link_objects) == 0) { |
if (count($link_objects) == 0) { |
1557 |
$link_objects = $this->get_list_distinct_objects_external_link(); |
$link_objects = $this->get_list_distinct_objects_external_link(); |
1558 |
} |
} |
1708 |
|
|
1709 |
// Récupération des liens vers les documents et des id et type des annexes |
// Récupération des liens vers les documents et des id et type des annexes |
1710 |
$infoDocNotif = $inst_in->getInfosDocumentsNotif($inst_in->getVal($inst_in->clePrimaire), $category); |
$infoDocNotif = $inst_in->getInfosDocumentsNotif($inst_in->getVal($inst_in->clePrimaire), $category); |
1711 |
$cle = $category == 'portal' ? 'path' : 'lien_telechargement_document'; |
$cle = $category == PORTAL ? 'path' : 'lien_telechargement_document'; |
1712 |
$val_in[$cle] = $infoDocNotif['document']['path']; |
$val_in[$cle] = $infoDocNotif['document']['path']; |
1713 |
$val_in['annexes'] = $infoDocNotif['annexes']; |
$val_in['annexes'] = $infoDocNotif['annexes']; |
1714 |
} |
} |
1759 |
if ($instruction === null) { |
if ($instruction === null) { |
1760 |
return false; |
return false; |
1761 |
} |
} |
1762 |
$query = sprintf(' |
$qres = $this->f->get_one_result_from_db_query( |
1763 |
SELECT demande_type.dossier_instruction_type |
sprintf( |
1764 |
FROM %1$sdemande |
'SELECT |
1765 |
INNER JOIN %1$sdemande_type ON demande.demande_type = demande_type.demande_type |
demande_type.dossier_instruction_type |
1766 |
WHERE demande.instruction_recepisse = %2$s |
FROM |
1767 |
', |
%1$sdemande |
1768 |
DB_PREFIXE, |
INNER JOIN %1$sdemande_type |
1769 |
$instruction |
ON demande.demande_type = demande_type.demande_type |
1770 |
); |
WHERE |
1771 |
$res = $this->f->get_one_result_from_db_query( |
demande.instruction_recepisse = %2$s', |
1772 |
$query, |
DB_PREFIXE, |
1773 |
true |
intval($instruction) |
1774 |
|
), |
1775 |
|
array( |
1776 |
|
"origin" => __METHOD__, |
1777 |
|
"force_return" => true, |
1778 |
|
) |
1779 |
); |
); |
1780 |
if ($res['code'] === 'KO') { |
if ($qres["code"] !== "OK") { |
1781 |
return null; |
return null; |
1782 |
} |
} |
1783 |
if ($res['result'] === '') { |
if ($qres["result"] === "") { |
1784 |
return true; |
return true; |
1785 |
} |
} |
1786 |
return false; |
return false; |
2051 |
$val_external_uid = array(); |
$val_external_uid = array(); |
2052 |
// Affiche l'identifiant externe lié à l'instruction si cette combinaison existe, sinon celui lié au dossier |
// Affiche l'identifiant externe lié à l'instruction si cette combinaison existe, sinon celui lié au dossier |
2053 |
$val_external_uid['demande'] = $this->get_external_uid($instruction_id, 'demande') !== '' ? $this->get_external_uid($instruction_id, 'demande') : $this->get_external_uid($dossier_id, 'demande'); |
$val_external_uid['demande'] = $this->get_external_uid($instruction_id, 'demande') !== '' ? $this->get_external_uid($instruction_id, 'demande') : $this->get_external_uid($dossier_id, 'demande'); |
2054 |
$val_external_uid['demande (instruction)'] = $this->get_external_uid($instruction_id, 'demande', 'portal', 'ASC'); |
$val_external_uid['demande (instruction)'] = $this->get_external_uid($instruction_id, 'demande', PORTAL, 'ASC'); |
2055 |
$val_external_uid['instruction_notification'] = $this->get_external_uid($this->getVal('object_id'), 'instruction_notification', 'portal'); |
$val_external_uid['instruction_notification'] = $this->get_external_uid($this->getVal('object_id'), 'instruction_notification', PORTAL); |
2056 |
$val['external_uids'] = $val_external_uid; |
$val['external_uids'] = $val_external_uid; |
2057 |
} |
} |
2058 |
// |
// |