setMessage(__('L\'identifiant du dossier d\'instruction '. 'manque ou n\'est pas dans le bon format')); return $this->BAD_DATA; } $this->metier_instance = $this->f->get_inst__om_dbform(array( "obj" => "dossier", "idx" => $this->f->clean_break($id), )); $this->metier_instance->setValFFromVal(); // verifie que on n'a pas eu une bogue de BD if (isset($this->metier_instance->errors['db_debuginfo']) && !empty($this->metier_instance->errors['db_debuginfo'])) { $this->setMessage(__('Probleme pendent la recuperation du dossier '. 'd\'instruction.')); return $this->KO; } // verifie que le dossier etait bien trouve if (empty($this->metier_instance->valF['dossier'])) { $this->setMessage(__('Le dossier d\'instruction '. $id .' n\'etait pas trouve')); return $this->BAD_DATA; } return $this->OK; } /** * Mise à jour d'un dossier d'instruction de type AT * * @param mixed $data Le tableau contenant les donnees arrivees par * le service web * @param string $id L'identifiant du dossier d'instruction * @return string $header l'header à retourner */ public function updateDossierInstructionAT($data, $id) { $id = $this->f->clean_break($id); //{{{Vérification des données fournies //Récupération de données liées au dossier d'instruction passé en paramètre $qres = $this->f->get_all_results_from_db_query( sprintf( 'SELECT dossier.dossier, etat.etat, etat.statut FROM %1$sdossier LEFT JOIN %1$setat ON dossier.etat = etat.etat WHERE dossier.dossier = \'%2$s\'', DB_PREFIXE, $this->f->db->escapeSimple($id) ), array( 'origin' => __METHOD__ ) ); if ($qres['code'] !== 'OK') { // PP die($res->getMessage()); } //Vérifie que le dossier d'instruction existe if ($qres['row_count'] == 0) { $this->setMessage(__("Ce dossier n'existe pas")); return $this->BAD_DATA; } //Vérifie que le dossier est bien de type AT $qres_tmp = $this->f->get_all_results_from_db_query( sprintf( 'SELECT dossier_autorisation_type_detaille.dossier_autorisation_type_detaille FROM %1$sdossier_autorisation_type_detaille LEFT JOIN %1$sdossier_instruction_type ON dossier_instruction_type.dossier_autorisation_type_detaille = dossier_autorisation_type_detaille.dossier_autorisation_type_detaille LEFT JOIN %1$sdossier ON dossier.dossier_instruction_type = dossier_instruction_type.dossier_instruction_type WHERE dossier.dossier = \'%2$s\' AND dossier_autorisation_type_detaille.code = \'AT\'', DB_PREFIXE, $this->f->db->escapeSimple($id) ), array( 'origin' => __METHOD__ ) ); if ($qres_tmp['code'] !== 'OK') { // PP die($qres_tmp['message']); return $this->BAD_DATA; } if ($qres_tmp['row_count'] == 0 ){ $this->setMessage(__("Ce dossier n'est pas un dossier de type AT")); return $this->BAD_DATA; } //Vérifie qu'un message a été fourni if (!isset($data["message"]) || is_null($data["message"]) || $data["message"] == '' ){ $this->setMessage(__("Aucun message fourni")); return $this->BAD_DATA; } //Vérifie que le message fourni est correct if ( $data["message"] !== "complet" && $data["message"] !== "clos" ){ $this->setMessage(__("Message fourni incorrect")); return $this->BAD_DATA; } //Vérifie qu'une date a été fournie if ( !isset($data["date"]) || is_null($data["date"] || $data["date"] == '' ) ){ $this->setMessage(__("Aucune date fournie")); return $this->BAD_DATA; } //Vérifie le format de la date if ( !preg_match( '`^\d{1,2}/\d{1,2}/\d{4}$`' , $data["date"]) ){ $this->setMessage(__("Date fournie au mauvais format")); return $this->BAD_DATA; } $row = array_shift($qres['result']); //}}} //Mise à jour du dossier d'instruction $ret = $this->updateDossierAT($id, $data["message"], $data["date"]); //Si la mise à jour du dossier d'instruction s'est bien passée if ($ret === true) { $this->setMessage(__("Mise a jour des donnees realisees avec succes")); return $this->OK; } else { $this->setMessage(__("Une erreur s'est produite")); return $this->KO; } } /** * Mise à jour d'un dossier d'instruction de type AT * * @param string $id L'identifiant du dossier d'instruction * @return boolean Si la mise à jour s'est correctement effectuée */ private function updateDossierAT($id, $message, $date){ $ret = false; //L'identifiant de l'événement à rajouter au dossier d'instruction $evenement = ( $message == "clos" ) ? $this->f->getParameter("id_evenement_cloture_at") : $this->f->getParameter("id_evenement_completude_at"); //Données //Récupération de la lettre type de l'événement $lettretype = $this->f->getLettreType($evenement); /*Récupération de la lettre type de l'événement*/ $document_type = $this->f->get_document_type($evenement); $value['instruction']=NULL; $value['destinataire']=$id; $value['dossier']=$id; $value['date_evenement']=$date; $value['document_type_instruction']=$document_type; $value['fichier_instruction_name']=NULL; $value['evenement']=$evenement; $value['lettretype']=$lettretype; $value['complement_om_html']=""; $value['complement2_om_html']=""; //Ces données seront mises à jour dans l'instruction $value['action']="initialisation"; $value['delai']="2 mois"; $value['etat']="notifier"; $value['accord_tacite']="Oui"; $value['delai_notification']="1 mois"; $value['archive_delai']=""; $value['archive_date_complet']=NULL; $value['archive_date_dernier_depot']=NULL; $value['archive_date_rejet']=NULL; $value['archive_date_limite']=NULL; $value['archive_date_notification_delai']=NULL; $value['archive_accord_tacite']="Non"; $value['archive_etat']="initialiser"; $value['archive_date_decision']=NULL; $value['archive_avis']=""; $value['archive_date_validite']=NULL; $value['archive_date_achevement']=NULL; $value['archive_date_chantier']=NULL; $value['archive_date_conformite']=NULL; $value['archive_incompletude']=NULL; $value['archive_incomplet_notifie']=NULL; $value['archive_evenement_suivant_tacite']=""; $value['archive_evenement_suivant_tacite_incompletude']=NULL; $value['archive_etat_pendant_incompletude']=NULL; $value['archive_date_limite_incompletude']=NULL; $value['archive_delai_incompletude']=NULL; $value['archive_autorite_competente']=NULL; $value['complement3_om_html']=""; $value['complement4_om_html']=""; $value['complement5_om_html']=""; $value['complement6_om_html']=""; $value['complement7_om_html']=""; $value['complement8_om_html']=""; $value['complement9_om_html']=""; $value['complement10_om_html']=""; $value['complement11_om_html']=""; $value['complement12_om_html']=""; $value['complement13_om_html']=""; $value['complement14_om_html']=""; $value['complement15_om_html']=""; $value['avis_decision']=NULL; $value['date_finalisation_courrier']=NULL; $value['date_envoi_signature']=NULL; $value['date_retour_signature']=NULL; $value['date_envoi_rar']=NULL; $value['date_retour_rar']=NULL; $value['date_envoi_controle_legalite']=NULL; $value['date_retour_controle_legalite']=NULL; $value['signataire_arrete']=NULL; $value['tiers_destinataire']=NULL; $value['tiers_destinataire_parametre']=NULL; $value['numero_arrete']=NULL; $value['code_barres']=NULL; $value['om_fichier_instruction']=NULL; $value['om_final_instruction']=NULL; $value['om_final_instruction_utilisateur']=NULL; $value['om_fichier_instruction_dossier_final']=NULL; $value['document_numerise']=NULL; $value['autorite_competente']=NULL; $value['duree_validite_parametrage']="0"; $value['duree_validite']="0"; $value['created_by_commune']=NULL; $value['date_depot']=NULL; $value['archive_date_cloture_instruction'] = null; $value['archive_date_premiere_visite'] = null; $value['archive_date_derniere_visite'] = null; $value['archive_date_contradictoire'] = null; $value['archive_date_retour_contradictoire'] = null; $value['archive_date_ait'] = null; $value['archive_date_transmission_parquet'] = null; $value['flag_edition_integrale'] = null; $value['titre_om_htmletat'] = null; $value['corps_om_htmletatex'] = null; $value['archive_dossier_instruction_type'] = null; $value['archive_date_affichage'] = null; $value['date_depot_mairie'] = null; $value['pec_metier'] = null; $value['archive_pec_metier'] = null; $value['archive_a_qualifier'] = null; $value['id_parapheur_signature'] = null; $value['statut_signature'] = null; $value['commentaire_signature'] = null; $value['historique_signature'] = null; $value['commentaire'] = null; $value['etat_transmission_platau'] = "non_transmissible"; $value['envoye_cl_platau'] = null; $value['parapheur_lien_page_signature'] = NULL; //Création de l'instruction $instruction = $this->f->get_inst__om_dbform(array( "obj" => "instruction", "idx" => "]", )); $instruction->valF = array(); $ret = $instruction->ajouter($value); return $ret; } /** * Called when the ERP services would like to obtain information * on a dossier. * * @todo Pour l'instant on envoi seulement le contenu de la table * dossier_autorisation, et apres on doit ajouter les evenements, * les contraintes, ... * * @param string $id The ID of the dossier. * @return bool 'OK' */ public function consultDossier($id) { // recupere le dossier depuis de la base $ret = $this->generic($id); if ($ret != $this->OK) { return $ret; } // les donnees du dossier sont recuperation avec success return $this->OK; } /** * Retourne la representation de dossier d'instruction * comme un tableau. * * Cette methode est utilisee pour recuperer le contenu * d'un dossier d'instruction apres l'appel de la methode * $this->consultDossier * * @return mixed Le contenu du tableau valF d'une instance * de la classe dossier_autorisation */ public function getDossierArrayRepresentation() { return $this->metier_instance->get_datas(); } } ?>