Rev 1840 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php
/*
* @author Raphaël Droz <raphael@tela-botanica.org>
* @author David Delon <david.delon@clapas.net>
* @copyright 2010, 2013 Tela-Botanica
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
*/
class InventoryTransmit extends Cel {
function updateElement($uid, $pairs) {
// Controle detournement utilisateur
$this->controleUtilisateur($uid[0]);
if (!isset($uid[1])) return false;
$transmission = intval($pairs['transmission']);
if($transmission != 0 && $transmission != 1) return false;
$ids = array_filter(array_map(create_function('$v','return intval($v);'),
explode(',', $uid[1])));
if(!$ids) return FALSE;
$resultat_transmission = Cel::db()->executer(
sprintf('UPDATE cel_obs SET'.
// mise à jour de la valeur de transmission (peut-être ?)
' transmission = %1$d,'.
// date_transmission n'est réactualisé que si nécessaire, c'est à dire si le statut de "transmission" actuel n'est
// pas à 1 et que le nouveau statut est à 1. Autrement il est mis (ou reste) à NULL
' date_transmission = IF(transmission != 1 AND %1$s = 1, now(), NULL),'.
// idem pour date_modification qui n'est mise à now() que si l'on passe une observation
// de non-transmise à tranmise ou de transmise à non-transmise
' date_modification = IF(transmission != %1$d, now(), date_modification)'.
' WHERE ce_utilisateur = %2$s AND ordre in (%3$s)',
$transmission,
Cel::db()->proteger($uid[0]),
implode(',', $ids)));
return ($resultat_transmission != 0);
}
}