Subversion Repositories eFlore/Applications.cel

Rev

Rev 1860 | Rev 1949 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1860 Rev 1867
1
<?php
1
<?php
-
 
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>
2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
7
 * @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
-
 
8
 */
3
 
-
 
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
*/ 
9
 
24
class InventoryTransmit extends Cel  {
-
 
25
 
10
class InventoryTransmit extends Cel  {
26
	function updateElement($uid,$pairs) {
-
 
27
		
11
	function updateElement($uid, $pairs) {
28
		// Controle detournement utilisateur 
12
		// Controle detournement utilisateur 
29
 	    $this->controleUtilisateur($uid[0]);
13
 	    $this->controleUtilisateur($uid[0]);
30
		if (!isset($uid[1]) || ! $this->estUneSuiteIdentifiantsObservation($uid[1])) return false;
14
		if (!isset($uid[1])) return false;
31
 
15
 
32
		$transmission = intval($pairs['transmission']);
16
		$transmission = intval($pairs['transmission']);
33
		if($transmission != 0 && $transmission != 1) return false;
17
		if($transmission != 0 && $transmission != 1) return false;
-
 
18
 
-
 
19
		$ids = array_filter(array_map(create_function('$v','return intval($v);'),
-
 
20
									  explode(',', $uid[1])));
-
 
21
		if(!$ids) return FALSE;
34
 
22
 
35
		$resultat_transmission = Cel::db()->executer(
23
		$resultat_transmission = Cel::db()->executer(
36
			sprintf('UPDATE cel_obs SET'.
24
			sprintf('UPDATE cel_obs SET'.
37
					// mise à jour de la valeur de transmission (peut-être ?)
25
					// mise à jour de la valeur de transmission (peut-être ?)
38
					' transmission = %1$d,'.
26
					' transmission = %1$d,'.
39
 
27
 
40
					// date_transmission n'est réactualisé que si nécessaire, c'est à dire si le statut de "transmission" actuel n'est
28
					// 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
29
					// 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),'.
30
					' date_transmission = IF(transmission != 1 AND %1$s = 1, now(), NULL),'.
43
 
31
 
44
					// idem pour date_modification qui n'est mise à now() que si l'on passe une observation
32
					// 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
33
					// de non-transmise à tranmise ou de transmise à non-transmise
46
					' date_modification = IF(transmission != %1$d, now(), date_modification)'.
34
					' date_modification = IF(transmission != %1$d, now(), date_modification)'.
47
 
35
 
48
					' WHERE ce_utilisateur = %2$s AND ordre in (%3$s)',
36
					' WHERE ce_utilisateur = %2$s AND ordre in (%3$s)',
49
					$transmission,
37
					$transmission,
50
					Cel::db()->proteger($uid[0]),
38
					Cel::db()->proteger($uid[0]),
51
					Cel::db()->proteger($uid[1])));
39
					implode(',', $ids)));
52
 
-
 
53
        return ($resultat_transmission == 1);
40
		return ($resultat_transmission != 0);
54
	}
-
 
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
	}
41
	}
65
}
42
}
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
*/
-
 
75
?>
-
 
76
43