Rev 2490 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// declare(encoding='UTF-8');/*** Service rendant publique une observation.** @internal Mininum PHP version : 5.2* @category CEL* @package Services* @subpackage Observations* @version 0.1* @author Mathias CHOUET <mathias@tela-botanica.org>* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>* @author Aurelien PERONNET <aurelien@tela-botanica.org>* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org>*/class InventoryTransmit extends Cel {private $idUtilisateur = null;private $ordres = null;public function updateElement($ressources, $data) {$this->verifierRessources($ressources);$this->verifierData($data);$transmission = intval($data['transmission']) == 1 ? true : false;$idsObs = $this->getIdsObs();$gestionnaireObs = new GestionObservation($this->config);$resultatObs = $gestionnaireObs->modifierTransmissionObservation($idsObs, $transmission);if ($resultatObs === false) {$idsObsConcat = implode(', ', $idsObs);$msg = "Un problème est survenu (voir log). Les observations « $idsObsConcat » n'ont pas pu être dépubliées.";$this->envoyerMessageErreur(304, $msg);}$gestionnaireImg = new GestionImage($this->config);$resultatImg = $gestionnaireImg->modifierTransmissionParObs($idsObs, $transmission);if ($resultatImg === false) {$idsObsConcat = implode(', ', $idsObs);$msg = "Un problème est survenu (voir log). Les images liées aux obs « $idsObsConcat » n'ont pas pu être dépubliées.";$this->envoyerMessageErreur(304, $msg);}return ($resultatObs != 0 && $resultatImg != 0);}private function verifierRessources($ressources) {if (!isset($ressources[0])) {return false;} else {$this->controleUtilisateur($ressources[0]);$this->idUtilisateur = $ressources[0];}if (!isset($ressources[1])) {return false;} else {$this->ordres = $ressources[1];}}private function verifierData($data) {$transmission = (int) $data['transmission'];if ($transmission != 0 && $transmission != 1) {return false;}}private function getIdsObs() {$idUtilisateurP = Cel::db()->proteger($this->idUtilisateur);$ordres = $this->nettoyerOrdres();$ordreConcat = implode(',', $ordres);$requete = 'SELECT id_observation '.'FROM cel_obs '."WHERE ce_utilisateur = $idUtilisateurP "."AND ordre IN ($ordreConcat) ".' -- '.__FILE__.':'.__LINE__;$resultats = Cel::db()->requeter($requete);$idsObs = array();if ($resultats && is_array($resultats)) {foreach ($resultats as $infos) {$idsObs[] = $infos['id_observation'];}}return $idsObs;}private function nettoyerOrdres() {$ordres = explode(',', $this->ordres);$ordresNettoyes = array();foreach ($ordres as $ordre) {if (preg_match('/^\d+$/', $ordre)) {$ordresNettoyes[] = $ordre;}}return $ordresNettoyes;}}