* @author Jean-Pascal MILCENT * @author Aurelien PERONNET * @license GPL v3 * @license CECILL v2 * @copyright 1999-2014 Tela Botanica */ 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']); $date = ($transmission == 1) ? 'NOW()' : 'NULL'; $idsObsConcat = implode(',', $this->getIdsObs()); $requete = 'UPDATE cel_obs '. "SET transmission = $transmission, date_transmission = $date, date_modification = NOW() ". "WHERE id_observation IN ($idsObsConcat) ". ' -- '.__FILE__.':'.__LINE__; $resultatObs = Cel::db()->executer($requete); $requete = 'UPDATE cel_images '. "SET transmission = $transmission, date_transmission = $date, date_modification = NOW() ". "WHERE ce_observation IN ($idsObsConcat) ". ' -- '.__FILE__.':'.__LINE__; $resultatImg = Cel::db()->executer($requete); 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()->executer($requete); $idsObs = array(); if ($idsObs && is_array($idsObs)) { 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; } }