setMessage("L'identifiant '".$id."' fourni est incorrect."); return $this->BAD_DATA; } // On instancie la consultation sur laquelle porte la requête $this->metier_instance = new instruction($id, $this->db, DEBUG); $this->metier_instance->f = $this->f; // On vérifie si l'instanciation a produit une erreur de base de données // alors on ajoute un message d'informations et on retourne un résultat // d'erreur if (isset($this->metier_instance->errors['db_debuginfo']) && !empty($this->metier_instance->errors['db_debuginfo'])) { $this->setMessage(_("Erreur lors de la recuperation de l'instruction no").$id); return $this->BAD_DATA; } // Vérification ou non de l'existance d'un numéro d'arrêté dans l'enregistrement if($this->metier_instance->getVal('numero_arrete') != "") { $this->setMessage(_("Erreur : un numero d'arrete existe deja pour cette instruction")); return $this->BAD_DATA; } $val=array("numero_arrete"=>$numero_arrete); // Maj des données $res = $this->db->autoExecute(DB_PREFIXE."instruction", $val, DB_AUTOQUERY_UPDATE,"instruction=".$id); // Exécution du traitement if ($this->f->isDatabaseError($res, true)){ $this->setMessage(_("Erreur lors de l'enregistrement du numero d'arrete")); return $this->KO; } $this->setMessage(_("Le numero d'arrete a ete mis a jour.")); return $this->OK; } /** * Mise à jour des métadonnées du document arrêté * * @param Array les paramètres reçus * @return l'identifiant de l'instruction */ function updateMetadata($request_data){ $sql = "SELECT max(instruction) FROM ".DB_PREFIXE."instruction JOIN ".DB_PREFIXE."dossier ON instruction.dossier = dossier.dossier LEFT JOIN ".DB_PREFIXE."evenement ON instruction.evenement = evenement.evenement WHERE dossier.dossier='".$this->f->clean_break($request_data["numero_dossier"])."' AND evenement.type = 'arrete'"; $idx = $this->db->getOne($sql); if ($this->f->isDatabaseError($idx, true)) { $this->setMessage(_("Erreur lors de la recuperation de l'id de l'instruction")); return $this->KO; } // On instancie la consultation sur laquelle porte la requête $this->metier_instance = new instruction($idx, $this->db, DEBUG); $this->metier_instance->f = $this->f; //On vérifie que le fichier est présent dans l'instruction $document_numerise = $this->metier_instance->getVal('document_numerise'); if ( !isset($document_numerise) || $document_numerise == "" ){ $this->setMessage(_("Aucun document arrete associe a l'instruction no").$idx); return $this->BAD_DATA; } //Récupération du fichier $sql_document_numerise = "SELECT uid FROM ".DB_PREFIXE."document_numerise WHERE document_numerise = ".$document_numerise; $document_numerise = $this->db->getOne($sql_document_numerise); if ($this->f->isDatabaseError($document_numerise, true)) { $this->setMessage(_("Le document associe a l'instruction n'existe pas")); return $this->KO; } $file = $this->metier_instance->f->storage->get($document_numerise); if(!isset($file) || $file == null) { $this->setMessage(_("Erreur lors de la recuperation du document de l'instruction no").$idx); return $this->BAD_DATA; } // métadonnées du fichier $metadata = $file["metadata"]; // métadonnées à mettre à jour $new_metadata = array( "numArrete" => $request_data["numero_arrete"], ); // contenu du fichier $pdf_output = $file["file_content"]; // fusion des anciennes et nouvelles métadonnées $metadata = array_merge($metadata, $new_metadata); // met à jour le fichier $uid = $this->metier_instance->f->storage->update( $document_numerise, $pdf_output, $metadata); // si le fichier n'a pas était mis a jour on retourne une erreur if( $uid == null || $uid == "") { $this->setMessage(_("Erreur lors de la mise a jour des metadonnees du document de l'instruction no").$idx); return $this->BAD_DATA; } // return $idx; } } ?>