New file |
0,0 → 1,100 |
<?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; |
} |
} |
Property changes: |
Added: svnkit:entry:sha1-checksum |
+fd2a35dcbfc45ca8609a23242b84a35322fa7a91 |
\ No newline at end of property |
Added: svn:executable |
+* |
\ No newline at end of property |