416 |
aurelien |
1 |
<?php
|
1914 |
raphael |
2 |
/*
|
|
|
3 |
* @author Raphaël Droz <raphael@tela-botanica.org>
|
|
|
4 |
* @author David Delon <david.delon@clapas.net>
|
|
|
5 |
* @copyright 2010, 2013 Tela-Botanica
|
|
|
6 |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
|
|
|
7 |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
|
|
|
8 |
*/
|
416 |
aurelien |
9 |
|
762 |
aurelien |
10 |
class InventoryTransmit extends Cel {
|
1914 |
raphael |
11 |
function updateElement($uid, $pairs) {
|
762 |
aurelien |
12 |
// Controle detournement utilisateur
|
|
|
13 |
$this->controleUtilisateur($uid[0]);
|
1914 |
raphael |
14 |
if (!isset($uid[1])) return false;
|
1301 |
aurelien |
15 |
|
1914 |
raphael |
16 |
$transmission = intval($pairs['transmission']);
|
|
|
17 |
if($transmission != 0 && $transmission != 1) return false;
|
416 |
aurelien |
18 |
|
1914 |
raphael |
19 |
$ids = array_filter(array_map(create_function('$v','return intval($v);'),
|
|
|
20 |
explode(',', $uid[1])));
|
|
|
21 |
if(!$ids) return FALSE;
|
|
|
22 |
|
|
|
23 |
$resultat_transmission = Cel::db()->executer(
|
|
|
24 |
sprintf('UPDATE cel_obs SET'.
|
|
|
25 |
// mise à jour de la valeur de transmission (peut-être ?)
|
|
|
26 |
' transmission = %1$d,'.
|
|
|
27 |
|
|
|
28 |
// date_transmission n'est réactualisé que si nécessaire, c'est à dire si le statut de "transmission" actuel n'est
|
|
|
29 |
// pas à 1 et que le nouveau statut est à 1. Autrement il est mis (ou reste) à NULL
|
|
|
30 |
' date_transmission = IF(transmission != 1 AND %1$s = 1, now(), NULL),'.
|
|
|
31 |
|
|
|
32 |
// idem pour date_modification qui n'est mise à now() que si l'on passe une observation
|
|
|
33 |
// de non-transmise à tranmise ou de transmise à non-transmise
|
|
|
34 |
' date_modification = IF(transmission != %1$d, now(), date_modification)'.
|
|
|
35 |
|
|
|
36 |
' WHERE ce_utilisateur = %2$s AND ordre in (%3$s)',
|
|
|
37 |
$transmission,
|
|
|
38 |
Cel::db()->proteger($uid[0]),
|
|
|
39 |
implode(',', $ids)));
|
|
|
40 |
return ($resultat_transmission != 0);
|
416 |
aurelien |
41 |
}
|
|
|
42 |
}
|