17,28 → 17,83 |
*/ |
class InventoryTransmit extends Cel { |
|
public function updateElement($uid, $pairs) { |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
if (!isset($uid[1])) { |
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]; |
} |
$transmission = intval($pairs['transmission']); |
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; |
} |
} |
|
$ids = array_filter(array_map(create_function('$v','return intval($v);'), explode(',', $uid[1])), 'strlen'); |
private function getIdsObs() { |
$idUtilisateurP = Cel::db()->proteger($this->idUtilisateur); |
$ordres = $this->nettoyerOrdres(); |
$ordreConcat = implode(',', $ordres); |
|
$date = ($transmission == 1) ? 'now()' : 'NULL'; |
//TODO: modification pour passer ceci dans la classe gestion observation |
$requete = 'UPDATE cel_obs '. |
'SET transmission = '.$pairs['transmission'].', '. |
'date_modification = now(), date_transmission = '.$date.' '. |
'WHERE ce_utilisateur = '.Cel::db()->proteger($uid[0]).' '. |
'AND ordre in ('.implode(',', $ids).') '. |
$requete = 'SELECT id_observation '. |
'FROM cel_obs '. |
"WHERE ce_utilisateur = $idUtilisateurP ". |
"AND ordre IN ($ordreConcat) ". |
' -- '.__FILE__.':'.__LINE__; |
$resultat = Cel::db()->executer($requete); |
return ($resultat != 0); |
$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; |
} |
} |