'...', * 'evenement' => '...', * 'date_evenement' => '...', // optionnel * 'date_retour_rar' => '...', // optionnel * 'date_retour_signature' => '...', // optionnel * 'signataire_arrete' => '...', // optionnel * 'commentaire' => '...', // optionnel * 'menu' => null, // optionnel: 'infraction', 'recours', ou null * ) * @return string Le résultat du traitement */ public function create($request_data) { $this->f->disableLog(); // Vérification des paramètres obligatoires if (!isset($request_data['dossier_instruction']) || empty($request_data['dossier_instruction'])) { $this->setMessage(_("Le paramètre dossier_instruction est obligatoire.")); return $this->BAD_DATA; } if (!isset($request_data['evenement']) || empty($request_data['evenement'])) { $this->setMessage(_("Le paramètre evenement est obligatoire.")); return $this->BAD_DATA; } // Récupération du dossier d'instruction $dossier_instruction = str_replace(" ", "", $request_data['dossier_instruction']); // Récupération de l'ID de l'événement $evenement_id = $this->get_evenement_id($request_data['evenement']); if ($evenement_id === false) { return $this->BAD_DATA; } // Détermination de la classe d'instruction en fonction du menu $instruction_class = 'instruction'; if (isset($request_data['menu']) && $request_data['menu'] == 'infraction') { $instruction_class = 'instruction_contexte_ctx_inf'; } elseif (isset($request_data['menu']) && $request_data['menu'] == 'recours') { $instruction_class = 'instruction_contexte_ctx_re'; } // Création de l'instance d'instruction $instruction = $this->f->get_inst__om_dbform(array( "obj" => $instruction_class, "idx" => "]", )); // Préparation des valeurs $instruction_values = array(); foreach($instruction->champs as $champ) { $instruction_values[$champ] = null; } // Valeurs obligatoires $instruction_values['evenement'] = $evenement_id; $instruction_values['dossier'] = $dossier_instruction; // Date de l'événement if (isset($request_data['date_evenement']) && !empty($request_data['date_evenement'])) { $instruction_values['date_evenement'] = $request_data['date_evenement']; } else { $instruction_values['date_evenement'] = (new DateTime())->format('d/m/Y'); } // Valeurs optionnelles if (isset($request_data['date_retour_rar']) && !empty($request_data['date_retour_rar'])) { $instruction_values['date_retour_rar'] = $request_data['date_retour_rar']; } if (isset($request_data['date_retour_signature']) && !empty($request_data['date_retour_signature'])) { $instruction_values['date_retour_signature'] = $request_data['date_retour_signature']; } if (isset($request_data['signataire_arrete']) && !empty($request_data['signataire_arrete'])) { $signataire_id = $this->get_signataire_id($request_data['signataire_arrete']); if ($signataire_id !== false) { $instruction_values['signataire_arrete'] = $signataire_id; } } if (isset($request_data['commentaire']) && !empty($request_data['commentaire'])) { $instruction_values['commentaire'] = $request_data['commentaire']; } // Ajout de l'instruction if ($instruction->ajouter($instruction_values) === false) { $this->setMessage(_("Erreur lors de la création de l'instruction.") . " " . $instruction->msg); return $this->BAD_DATA; } $this->instruction_id = $instruction->valF['instruction']; $result = array( "instruction" => $this->instruction_id, "dossier" => $dossier_instruction, ); $this->setMessage($result); return $this->OK; } /** * Cette méthode prend le libellé d'un événement et retourne son identifiant. * * @param string $evenement_libelle Libellé de l'événement. * @return int|false L'identifiant de l'événement ou false. */ private function get_evenement_id($evenement_libelle) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT evenement FROM %1$sevenement WHERE libelle = \'%2$s\'', DB_PREFIXE, $this->f->db->escapeSimple($evenement_libelle) ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(_("L'événement passé en paramètre n'existe pas : ") . $evenement_libelle); return false; } return $qres["result"]; } /** * Cette méthode prend le nom d'un signataire et retourne son identifiant. * * @param string $signataire_nom Nom du signataire. * @return int|false L'identifiant du signataire ou false. */ private function get_signataire_id($signataire_nom) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT signataire_arrete FROM %1$ssignataire_arrete WHERE nom = \'%2$s\' OR prenom||\' \'||nom = \'%2$s\'', DB_PREFIXE, $this->f->db->escapeSimple($signataire_nom) ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(_("Le signataire passé en paramètre n'existe pas : ") . $signataire_nom); return false; } return $qres["result"]; } } ?>