62 |
); |
); |
63 |
|
|
64 |
/** |
/** |
65 |
|
* Liste des types de tâche pouvant avoir des documents associés |
66 |
|
*/ |
67 |
|
const TASK_WITH_DOCUMENT = array( |
68 |
|
'add_piece', |
69 |
|
'avis_consultation', |
70 |
|
'pec_metier_consultation' |
71 |
|
); |
72 |
|
|
73 |
|
/** |
74 |
* Catégorie de la tâche |
* Catégorie de la tâche |
75 |
*/ |
*/ |
76 |
var $category = PLATAU; |
var $category = PLATAU; |
1137 |
// Si la tâche est de type ajout_piece et de stream input alors on ajoute le fichier |
// Si la tâche est de type ajout_piece et de stream input alors on ajoute le fichier |
1138 |
// et on ajoute l'uid dans le champ json_payload avant l'ajout de la tâche |
// et on ajoute l'uid dans le champ json_payload avant l'ajout de la tâche |
1139 |
if (isset($params['val']['type']) |
if (isset($params['val']['type']) |
1140 |
&& ($params['val']['type'] == "add_piece" || $params['val']['type'] == "avis_consultation") |
&& in_array($params['val']['type'], self::TASK_WITH_DOCUMENT) |
1141 |
&& isset($params['val']['stream']) |
&& isset($params['val']['stream']) |
1142 |
&& $params['val']['stream'] == "input" ) { |
&& $params['val']['stream'] == "input" ) { |
1143 |
// |
// |
1214 |
$search_values_specifics = array( |
$search_values_specifics = array( |
1215 |
sprintf('object_id = \'%s\'', $valF['object_id']), |
sprintf('object_id = \'%s\'', $valF['object_id']), |
1216 |
); |
); |
1217 |
|
|
1218 |
|
// Recherche multi-critères sur les tâches |
1219 |
|
// Si l'object id/dossier à des tâches de type $valF['type'] qui lui est associé |
1220 |
|
// Et que ces tâches ont des statut différents de canceled et done |
1221 |
|
// Alors on récupère ces tâches |
1222 |
|
// Sinon return false |
1223 |
$task_exists = $this->task_exists_multi_search(array_merge($search_values_common, $search_values_others)); |
$task_exists = $this->task_exists_multi_search(array_merge($search_values_common, $search_values_others)); |
1224 |
|
|
1225 |
|
// S'il n'existe pas de tâche de type 'modification DI' pour l'object id/dossier |
1226 |
if ($valF['type'] === 'modification_DI' && $task_exists === false) { |
if ($valF['type'] === 'modification_DI' && $task_exists === false) { |
1227 |
|
// On se réfère à la tâche de type 'creation DI' de l'object id |
1228 |
$task_exists = $this->task_exists_multi_search(array_merge($search_values_common, $search_values_specifics, array("type = 'creation_DI'"))); |
$task_exists = $this->task_exists_multi_search(array_merge($search_values_common, $search_values_specifics, array("type = 'creation_DI'"))); |
1229 |
} |
} |
1230 |
|
// S'il n'existe pas de tâche de type 'modification DA' pour l'object id/dossier |
1231 |
if ($valF['type'] === 'modification_DA' && $task_exists === false) { |
if ($valF['type'] === 'modification_DA' && $task_exists === false) { |
1232 |
|
// On se réfère à la tâche de type 'creation DA' de l'object id |
1233 |
$task_exists = $this->task_exists_multi_search(array_merge($search_values_common, $search_values_specifics, array("type = 'creation_DA'"))); |
$task_exists = $this->task_exists_multi_search(array_merge($search_values_common, $search_values_specifics, array("type = 'creation_DA'"))); |
1234 |
} |
} |
1235 |
if ($valF['type'] === 'ajout_piece') { |
if ($valF['type'] === 'ajout_piece') { |
1236 |
|
// On se réfère à la tâche de type 'ajout piece' de l'object id |
1237 |
$task_exists = $this->task_exists_multi_search(array_merge($search_values_common, $search_values_specifics, array("type = 'ajout_piece'"))); |
$task_exists = $this->task_exists_multi_search(array_merge($search_values_common, $search_values_specifics, array("type = 'ajout_piece'"))); |
1238 |
} |
} |
1239 |
if ($valF['type'] === 'creation_consultation') { |
if ($valF['type'] === 'creation_consultation') { |
1240 |
|
// On se réfère à la tâche de type 'creation consultation' de l'object id |
1241 |
$task_exists = $this->task_exists_multi_search(array_merge($search_values_common, $search_values_specifics, array("type = 'creation_consultation'"))); |
$task_exists = $this->task_exists_multi_search(array_merge($search_values_common, $search_values_specifics, array("type = 'creation_consultation'"))); |
1242 |
} |
} |
1243 |
// En cas de l'existance d'une tâches pour l'objet concerné, pas d'ajout de nouvelle |
// S'il existe une tâche pour l'objet concerné, pas d'ajout de nouvelle |
1244 |
// tâche mais mise à jour de l'existante |
// tâche mais mise à jour de l'existante |
1245 |
if ($task_exists !== false) { |
if ($task_exists !== false) { |
1246 |
// Plusieurs tâches pourraient exister, elles sont contôler par ordre croissant |
// Plusieurs tâches pourraient exister, elles sont contôler par ordre croissant |
1254 |
$update_state = $params['update_val']['state']; |
$update_state = $params['update_val']['state']; |
1255 |
} |
} |
1256 |
$object_id = $inst_task->getVal('object_id'); |
$object_id = $inst_task->getVal('object_id'); |
1257 |
if ($valF['object_id'] !== '') { |
if (!empty($valF['object_id'])) { |
1258 |
$object_id = $valF['object_id']; |
$object_id = $valF['object_id']; |
1259 |
} |
} |
1260 |
// Pour être mise à jour, la tâche existante ne doit pas être en cours de traitement |
// Pour être mise à jour, la tâche existante ne doit pas être en cours de traitement |
1536 |
if (isset($val_dt['tax_ext_pret']) === true |
if (isset($val_dt['tax_ext_pret']) === true |
1537 |
&& $val_dt['tax_ext_pret'] === 'f') { |
&& $val_dt['tax_ext_pret'] === 'f') { |
1538 |
// |
// |
1539 |
$val_dt['tax_su_princ_surf1'] = $val_dt['tax_surf_tot_cstr']; |
$val_dt['tax_su_princ_surf1'] = isset($val_dt['tax_surf_tot_cstr']) === true ? $val_dt['tax_surf_tot_cstr'] : ''; |
1540 |
$val_dt['tax_su_princ_surf_stat1'] = $val_dt['tax_surf_loc_stat']; |
$val_dt['tax_su_princ_surf_stat1'] = isset($val_dt['tax_surf_loc_stat']) === true ? $val_dt['tax_surf_loc_stat'] : ''; |
1541 |
} |
} |
1542 |
if (isset($val_dt['tax_ext_pret']) === true |
if (isset($val_dt['tax_ext_pret']) === true |
1543 |
&& $val_dt['tax_ext_pret'] === 't') { |
&& $val_dt['tax_ext_pret'] === 't') { |
1546 |
if (preg_match('/[pP].*[lL].*[aA].*[iI]/', $val_dt['tax_ext_desc']) === 1 |
if (preg_match('/[pP].*[lL].*[aA].*[iI]/', $val_dt['tax_ext_desc']) === 1 |
1547 |
|| preg_match('/[lL].*[lL].*[tT].*[sS]/', $val_dt['tax_ext_desc']) === 1) { |
|| preg_match('/[lL].*[lL].*[tT].*[sS]/', $val_dt['tax_ext_desc']) === 1) { |
1548 |
// |
// |
1549 |
$val_dt['tax_su_princ_surf2'] = $val_dt['tax_surf_tot_cstr']; |
$val_dt['tax_su_princ_surf2'] = isset($val_dt['tax_surf_tot_cstr']) === true ? $val_dt['tax_surf_tot_cstr'] : ''; |
1550 |
$val_dt['tax_su_princ_surf_stat2'] = $val_dt['tax_surf_loc_stat']; |
$val_dt['tax_su_princ_surf_stat2'] = isset($val_dt['tax_surf_loc_stat']) === true ? $val_dt['tax_surf_loc_stat'] : ''; |
1551 |
} |
} |
1552 |
// if (preg_match('/[pP].*[tT].*[zZ]/', $val_dt['tax_ext_desc']) === 1) { |
// if (preg_match('/[pP].*[tT].*[zZ]/', $val_dt['tax_ext_desc']) === 1) { |
1553 |
// $val_dt['tax_su_princ_surf4'] = $val_dt['tax_surf_tot_cstr']; |
// $val_dt['tax_su_princ_surf4'] = $val_dt['tax_surf_tot_cstr']; |
2472 |
)) === true) { |
)) === true) { |
2473 |
$tables = array('instruction', ); |
$tables = array('instruction', ); |
2474 |
} |
} |
2475 |
|
if (in_array($type, array('envoi_CL', )) === true) { |
2476 |
|
$objects = array('instruction', ); |
2477 |
|
} |
2478 |
if (in_array($type, array('pec_metier_consultation', )) === true |
if (in_array($type, array('pec_metier_consultation', )) === true |
2479 |
&& $stream === 'output') { |
&& $stream === 'output') { |
2480 |
$tables = array('instruction', ); |
$tables = array('instruction', ); |
2536 |
*/ |
*/ |
2537 |
protected function does_referenced_object_exist($taskObjectId, string $taskType, string $taskStream = 'output') { |
protected function does_referenced_object_exist($taskObjectId, string $taskType, string $taskStream = 'output') { |
2538 |
$refTables = $this->get_tables_by_task_type($taskType, $taskStream); |
$refTables = $this->get_tables_by_task_type($taskType, $taskStream); |
2539 |
|
if (empty($refTables) === true) { |
2540 |
|
$this->f->addToLog( |
2541 |
|
sprintf( |
2542 |
|
__("Impossible de vérifier si l'objet de référence existe, car le type de task '%s' n'a pas de correspondance avec une table dans la méthode %s."), |
2543 |
|
$taskType, |
2544 |
|
"get_tables_by_task_type()" |
2545 |
|
), |
2546 |
|
DEBUG_MODE |
2547 |
|
); |
2548 |
|
return true; |
2549 |
|
} |
2550 |
foreach ($refTables as $table) { |
foreach ($refTables as $table) { |
2551 |
$inst = $this->f->get_inst__om_dbform(array( |
$inst = $this->f->get_inst__om_dbform(array( |
2552 |
'obj' => $table, |
'obj' => $table, |