Subversion Repositories eFlore/Applications.cel

Rev

Rev 1840 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1840 Rev 1914
Line 1... Line 1...
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
 */
Line 3... Line -...
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 
-
 
13
 	    $this->controleUtilisateur($uid[0]);
Line 29... Line -...
29
 	    $this->controleUtilisateur($uid[0]);
-
 
30
 
-
 
31
 	    //TODO: modification pour passer ceci dans la classe gestion observation
-
 
32
		if (isset($uid[1]) && $this->estUneSuiteIdentifiantsObservation($uid[1])) {
14
		if (!isset($uid[1])) return false;
33
	           	$requete_transmission = 'UPDATE cel_obs '.
15
 
34
	           	'SET transmission = '.$pairs['transmission'].','.
-
 
35
				'date_modification = now(), date_transmission = now() '. 
-
 
36
	        	'WHERE ce_utilisateur = '.Cel::db()->proteger($uid[0]).' AND ordre in ('.$uid[1].')';
16
		$transmission = intval($pairs['transmission']);
37
		} 
17
		if($transmission != 0 && $transmission != 1) return false;
-
 
18
 
-
 
19
		$ids = array_filter(array_map(create_function('$v','return intval($v);'),
38
 
20
									  explode(',', $uid[1])));
39
    	$resultat_transmission = Cel::db()->executer($requete_transmission);
21
		if(!$ids) return FALSE;
40
                
22
 
-
 
23
		$resultat_transmission = Cel::db()->executer(
41
        if ($resultat_transmission === false) {
24
			sprintf('UPDATE cel_obs SET'.
42
        	return false;
25
					// mise à jour de la valeur de transmission (peut-être ?)
-
 
26
					' transmission = %1$d,'.
43
        }
27
 
44
        
-
 
-
 
28
					// date_transmission n'est réactualisé que si nécessaire, c'est à dire si le statut de "transmission" actuel n'est
45
        return true;               
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),'.
46
	}
31
 
-
 
32
					// idem pour date_modification qui n'est mise à now() que si l'on passe une observation
47
	
33
					// de non-transmise à tranmise ou de transmise à non-transmise
48
	private function estUneSuiteIdentifiantsObservation($chaine) {
34
					' date_modification = IF(transmission != %1$d, now(), date_modification)'.
49
		
35
 
50
		// un ensemble d'identifiants est une suite d'identifiants séparés par des virgules
36
					' WHERE ce_utilisateur = %2$s AND ordre in (%3$s)',
51
		// sans virgule terminale
-
 
-
 
37
					$transmission,
52
		$reg_exp = "/^(([0-9])+,)*([0-9])+$/";
38
					Cel::db()->proteger($uid[0]),
53
		
-
 
54
		return preg_match($reg_exp, $chaine);
39
					implode(',', $ids)));
55
		
40
		return ($resultat_transmission != 0);
56
	}
-
 
57
}
-
 
58
/* +--Fin du code ---------------------------------------------------------------------------------------+
-
 
59
* $Log$
-
 
60
* Revision 1.3  2008-01-30 08:57:28  ddelon
-
 
61
* fin mise en place mygwt
-
 
62
*
-
 
63
* Revision 1.2  2007-05-22 12:54:09  ddelon
-
 
64
* Securisation acces utilisateur
-
 
65
* 
-
 
66
*/
41
	}