Subversion Repositories eFlore/Applications.cel

Rev

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

Rev Author Line No. Line
416 aurelien 1
<?php
849 aurelien 2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
416 aurelien 3
 
886 aurelien 4
/**
5
* PHP Version 5
6
*
7
* @category  PHP
8
* @package   jrest
9
* @author    David Delon <david.delon@clapas.net>
10
* @copyright 2010 Tela-Botanica
11
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
12
* @version   SVN: <svn_id>
13
* @link      /doc/jrest/
14
*/
15
 
16
/**
17
*
18
* in : utf8
19
* out : utf8
20
*
21
*
22
* Transmission observation vers Tela
23
*/
762 aurelien 24
class InventoryTransmit extends Cel  {
416 aurelien 25
 
26
	function updateElement($uid,$pairs) {
27
 
762 aurelien 28
		// Controle detournement utilisateur
29
 	    $this->controleUtilisateur($uid[0]);
1860 raphael 30
		if (!isset($uid[1]) || ! $this->estUneSuiteIdentifiantsObservation($uid[1])) return false;
1301 aurelien 31
 
1860 raphael 32
		$transmission = intval($pairs['transmission']);
33
		if($transmission != 0 && $transmission != 1) return false;
416 aurelien 34
 
1860 raphael 35
		$resultat_transmission = Cel::db()->executer(
36
			sprintf('UPDATE cel_obs SET'.
37
					// mise à jour de la valeur de transmission (peut-être ?)
38
					' transmission = %1$d,'.
39
 
40
					// date_transmission n'est réactualisé que si nécessaire, c'est à dire si le statut de "transmission" actuel n'est
41
					// pas à 1 et que le nouveau statut est à 1. Autrement il est mis (ou reste) à NULL
42
					' date_transmission = IF(transmission != 1 AND %1$s = 1, now(), NULL),'.
43
 
44
					// idem pour date_modification qui n'est mise à now() que si l'on passe une observation
45
					// de non-transmise à tranmise ou de transmise à non-transmise
46
					' date_modification = IF(transmission != %1$d, now(), date_modification)'.
47
 
48
					' WHERE ce_utilisateur = %2$s AND ordre in (%3$s)',
49
					$transmission,
50
					Cel::db()->proteger($uid[0]),
51
					Cel::db()->proteger($uid[1])));
52
 
53
        return ($resultat_transmission == 1);
416 aurelien 54
	}
762 aurelien 55
 
56
	private function estUneSuiteIdentifiantsObservation($chaine) {
57
 
58
		// un ensemble d'identifiants est une suite d'identifiants séparés par des virgules
59
		// sans virgule terminale
60
		$reg_exp = "/^(([0-9])+,)*([0-9])+$/";
61
 
62
		return preg_match($reg_exp, $chaine);
63
 
64
	}
416 aurelien 65
}
66
/* +--Fin du code ---------------------------------------------------------------------------------------+
67
* $Log$
68
* Revision 1.3  2008-01-30 08:57:28  ddelon
69
* fin mise en place mygwt
70
*
71
* Revision 1.2  2007-05-22 12:54:09  ddelon
72
* Securisation acces utilisateur
73
*
74
*/
849 aurelien 75
?>