1,67 → 1,42 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
/* |
* @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> |
*/ |
|
/** |
* PHP Version 5 |
* |
* @category PHP |
* @package jrest |
* @author David Delon <david.delon@clapas.net> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/jrest/ |
*/ |
|
/** |
* |
* in : utf8 |
* out : utf8 |
* |
* |
* Transmission observation vers Tela |
*/ |
class InventoryTransmit extends Cel { |
|
function updateElement($uid,$pairs) { |
|
function updateElement($uid, $pairs) { |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
if (!isset($uid[1])) return false; |
|
//TODO: modification pour passer ceci dans la classe gestion observation |
if (isset($uid[1]) && $this->estUneSuiteIdentifiantsObservation($uid[1])) { |
$requete_transmission = 'UPDATE cel_obs '. |
'SET transmission = '.$pairs['transmission'].','. |
'date_modification = now(), date_transmission = now() '. |
'WHERE ce_utilisateur = '.Cel::db()->proteger($uid[0]).' AND ordre in ('.$uid[1].')'; |
} |
$transmission = intval($pairs['transmission']); |
if($transmission != 0 && $transmission != 1) return false; |
|
$resultat_transmission = Cel::db()->executer($requete_transmission); |
|
if ($resultat_transmission === false) { |
return false; |
} |
|
return true; |
$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); |
} |
|
private function estUneSuiteIdentifiantsObservation($chaine) { |
|
// un ensemble d'identifiants est une suite d'identifiants séparés par des virgules |
// sans virgule terminale |
$reg_exp = "/^(([0-9])+,)*([0-9])+$/"; |
|
return preg_match($reg_exp, $chaine); |
|
} |
} |
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* $Log$ |
* Revision 1.3 2008-01-30 08:57:28 ddelon |
* fin mise en place mygwt |
* |
* Revision 1.2 2007-05-22 12:54:09 ddelon |
* Securisation acces utilisateur |
* |
*/ |
?> |