Subversion Repositories eFlore/Applications.cel

Rev

Rev 1765 | Rev 1949 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //

/**
* 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) {
                
                // Controle detournement utilisateur 
            $this->controleUtilisateur($uid[0]);
                if (!isset($uid[1]) || ! $this->estUneSuiteIdentifiantsObservation($uid[1])) return false;

                $transmission = intval($pairs['transmission']);
                if($transmission != 0 && $transmission != 1) 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]),
                                        Cel::db()->proteger($uid[1])));

        return ($resultat_transmission == 1);
        }
        
        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
* 
*/
?>