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

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

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

revision 13136 by softime, Mon Aug 1 16:58:31 2022 UTC revision 13137 by softime, Thu Oct 27 20:34:03 2022 UTC
# Line 62  class task extends task_gen { Line 62  class task extends task_gen {
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.
# Line 424  class task extends task_gen { Line 424  class task extends task_gen {
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              }              }
# Line 447  class task extends task_gen { Line 451  class task extends task_gen {
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              }              }
# Line 506  class task extends task_gen { Line 518  class task extends task_gen {
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));
# Line 591  class task extends task_gen { Line 605  class task extends task_gen {
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                  );                  );
# Line 673  class task extends task_gen { Line 688  class task extends task_gen {
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      }      }
# Line 713  class task extends task_gen { Line 736  class task extends task_gen {
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          }          }
# Line 813  class task extends task_gen { Line 841  class task extends task_gen {
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      }      }
# Line 855  class task extends task_gen { Line 891  class task extends task_gen {
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;
# Line 926  class task extends task_gen { Line 969  class task extends task_gen {
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'
# Line 969  class task extends task_gen { Line 1012  class task extends task_gen {
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);
# Line 1293  class task extends task_gen { Line 1338  class task extends task_gen {
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          }          }
# Line 1469  class task extends task_gen { Line 1520  class task extends task_gen {
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          }          }
# Line 1480  class task extends task_gen { Line 1537  class task extends task_gen {
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',
# Line 1495  class task extends task_gen { Line 1552  class task extends task_gen {
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          }          }
# Line 1651  class task extends task_gen { Line 1708  class task extends task_gen {
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          }          }
# Line 1702  class task extends task_gen { Line 1759  class task extends task_gen {
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;
# Line 1989  class task extends task_gen { Line 2051  class task extends task_gen {
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              //              //

Legend:
Removed from v.13136  
changed lines
  Added in v.13137

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26