Subversion Repositories Applications.gtt

Rev

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

Rev 2 Rev 5
1
<?php
1
<?php
2
 
2
 
3
// +------------------------------------------------------------------------------------------------------+
3
// +------------------------------------------------------------------------------------------------------+
4
// | PHP version 4.1                                                                                      |
4
// | PHP version 4.1                                                                                      |
5
// +------------------------------------------------------------------------------------------------------+
5
// +------------------------------------------------------------------------------------------------------+
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
7
// +------------------------------------------------------------------------------------------------------+
7
// +------------------------------------------------------------------------------------------------------+
8
// | This library is free software; you can redistribute it and/or                                        |
8
// | This library is free software; you can redistribute it and/or                                        |
9
// | modify it under the terms of the GNU Lesser General Public                                           |
9
// | modify it under the terms of the GNU Lesser General Public                                           |
10
// | License as published by the Free Software Foundation; either                                         |
10
// | License as published by the Free Software Foundation; either                                         |
11
// | version 2.1 of the License, or (at your option) any later version.                                   |
11
// | version 2.1 of the License, or (at your option) any later version.                                   |
12
// |                                                                                                      |
12
// |                                                                                                      |
13
// | This library is distributed in the hope that it will be useful,                                      |
13
// | This library is distributed in the hope that it will be useful,                                      |
14
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
14
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
15
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
15
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
16
// | Lesser General Public License for more details.                                                      |
16
// | Lesser General Public License for more details.                                                      |
17
// |                                                                                                      |
17
// |                                                                                                      |
18
// | You should have received a copy of the GNU Lesser General Public                                     |
18
// | You should have received a copy of the GNU Lesser General Public                                     |
19
// | License along with this library; if not, write to the Free Software                                  |
19
// | License along with this library; if not, write to the Free Software                                  |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// +------------------------------------------------------------------------------------------------------+
21
// +------------------------------------------------------------------------------------------------------+
22
// |@author ABDOOL RAHEEM shaheen   shaheenar50@hotmail.com                                                 |
22
// |@author ABDOOL RAHEEM shaheen   shaheenar50@hotmail.com                                                 |
23
// |@version 3                                                                                            |
23
// |@version 3                                                                                            |
24
 
24
 
25
// +------------------------------------------------------------------------------------------------------+
25
// +------------------------------------------------------------------------------------------------------+
26
/*
26
/*
27
*fichier contenant le menu principal de l'application de gestion du temps de travail 
27
*fichier contenant le menu principal de l'application de gestion du temps de travail 
28
*@package gtt_general
28
*@package gtt_general
29
//Auteur original :
29
//Auteur original :
30
*@author        Dorian Bannier <dbannier@aol.com>
30
*@author        Dorian Bannier <dbannier@aol.com>
31
//Autres auteurs :
31
//Autres auteurs :
32
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
32
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
33
*@copyright     Copyright (C) 2003 Tela-Botanica
33
*@copyright     Copyright (C) 2003 Tela-Botanica
34
*/
34
*/
35
// +------------------------------------------------------------------------------------------------------+
35
// +------------------------------------------------------------------------------------------------------+
36
include_once CHEMIN_FN_GENERIQUE_AFFICHAGE;
36
include_once CHEMIN_FN_GENERIQUE_AFFICHAGE;
37
include_once 'gtt_config.inc.php';
-
 
38
include_once CHEMIN_MENU.'gtt_menu_travail.php';
37
include_once CHEMIN_MENU.'gtt_menu_travail.php';
39
include_once CHEMIN_CLASSES_METIER.'gtt_travail.class.php';
38
include_once CHEMIN_CLASSES_METIER.'gtt_travail.class.php';
40
include_once CHEMIN_CLASSES_METIER.'gtt_taches.class.php';
39
include_once CHEMIN_CLASSES_METIER.'gtt_taches.class.php';
41
include_once CHEMIN_CLASSES_METIER.'gtt_prevision_tache.class.php';
40
include_once CHEMIN_CLASSES_METIER.'gtt_prevision_tache.class.php';
42
/**
41
/**
43
*fonction verifiant si les heures rentrees sont bien valides
42
*fonction verifiant si les heures rentrees sont bien valides
44
*verification si heure rentree dans une case <24 ou >0
43
*verification si heure rentree dans une case <24 ou >0
45
*verifiaction si somme heure d'une journee<24
44
*verifiaction si somme heure d'une journee<24
46
*/
45
*/
47
 
46
 
48
 
47
 
49
function verifTempsTravail()
48
function verifTempsTravail()
50
{
49
{
51
    $nb=$_POST["champ_nb_projet"];
50
	$nb = $_POST['champ_nb_projet'];
52
    
-
 
53
    $res  = true;
51
	$res  = true;
54
    //iniatilisation des variables
52
	// Iniatilisation des variables
55
    $somme1=$somme2=$somme3=$somme4=$somme5=$somme6=$somme7=0;
53
	$somme1 = $somme2 = $somme3 = $somme4 = $somme5 = $somme6 = $somme7 = 0;
56
    
-
 
57
    $verif_a_faire=false;
54
    $verif_a_faire = false;
58
    //tableau jour
55
    // Tableau jour
59
    $tabJour=array(0=>"champ_lundi",1=>"champ_mardi","champ_mercredi","champ_jeudi","champ_vendredi","champ_samedi","champ_dimanche");
56
    $tabJour = array(0 => "champ_lundi", 1 => "champ_mardi", "champ_mercredi", "champ_jeudi", "champ_vendredi", "champ_samedi", "champ_dimanche");
60
    
57
    
61
    for ($i=0;$i<$nb;$i++)
58
    for ($i = 0; $i < $nb; $i++) {   
62
    {   
-
 
63
	for ($j=0;$j<count($tabJour);$j++)
59
		for ($j = 0; $j < count($tabJour); $j++) {
64
	{
-
 
65
	    //on ne fait les tests que si des jours de travail ou de recuperation partielle
60
		    // On ne fait les tests que si des jours de travail ou de recuperation partielle
66
	    if ((isset($_POST[$tabJour[$j].$i]))and (($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_TRAVAIL) or
61
		    if ((isset($_POST[$tabJour[$j].$i]))and (($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_TRAVAIL) or
67
	    ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]=="Récup part:1/2j")))
62
		    ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]=="Récup part:1/2j"))) {
68
	    {
-
 
69
		$verif_a_faire=true;
63
				$verif_a_faire = true;
70
		//attribution de la limite selon le type de jour
64
				//attribution de la limite selon le type de jour
71
		if  ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_TRAVAIL)
65
				if ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_TRAVAIL) {
72
		{
-
 
73
		    $limite = 24;
66
					$limite = 24;
74
		}
-
 
75
		elseif($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]=="Récup part:1/2j")
67
				} elseif ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]=="Récup part:1/2j") {
76
		{
-
 
77
		    $limite = 12;
68
					$limite = 12;
78
		}
69
				}
79
		
70
				
80
		if ((!(($_POST[$tabJour[$j].$i]<$limite)and ($_POST[$tabJour[$j].$i]>=0)))or
71
				if ((!(($_POST[$tabJour[$j].$i]<$limite)and ($_POST[$tabJour[$j].$i]>=0))) or
81
		(empty($_POST[$tabJour[$j].$i])!=1 and is_numeric($_POST[$tabJour[$j].$i])!=1))
72
				(empty($_POST[$tabJour[$j].$i])!=1 and is_numeric($_POST[$tabJour[$j].$i]) != 1)) {
82
		{
-
 
83
		    $res=false;
73
				    $res = false;
84
		}else{
74
				} else {
85
		    switch ($j)
75
				    switch ($j) {
86
		    {
-
 
87
			//cas lundi
76
					//cas lundi
88
			case 1:
77
					case 1:
89
			$somme1 += $_POST[$tabJour[$j].$i];
78
					$somme1 += $_POST[$tabJour[$j].$i];
90
			break;
79
					break;
91
			//cas  mardi
80
					//cas  mardi
92
			case 2 : 
81
					case 2 : 
93
			
82
					
94
			$somme2 += $_POST[$tabJour[$j].$i];
83
					$somme2 += $_POST[$tabJour[$j].$i];
95
			break;
84
					break;
96
			
85
					
97
			//cas mercredi
86
					//cas mercredi
98
			case 3 :
87
					case 3 :
99
			$somme3 += $_POST[$tabJour[$j].$i];
88
					$somme3 += $_POST[$tabJour[$j].$i];
100
			break;
89
					break;
101
			
90
					
102
			//cas jeudi
91
					//cas jeudi
103
			case 4 :
92
					case 4 :
104
			$somme4 += $_POST[$tabJour[$j].$i];
93
					$somme4 += $_POST[$tabJour[$j].$i];
105
			break;
94
					break;
106
			//cas vendredi
95
					//cas vendredi
107
			case 5 :
96
					case 5 :
108
			$somme5 += $_POST[$tabJour[$j].$i];
97
					$somme5 += $_POST[$tabJour[$j].$i];
109
			break;
98
					break;
110
			
99
					
111
			//cas samedi
100
					//cas samedi
112
			case 6 :
101
					case 6 :
113
			$somme6 += $_POST[$tabJour[$j].$i];
102
					$somme6 += $_POST[$tabJour[$j].$i];
114
			break;
103
					break;
115
			//cas dimanche
104
					//cas dimanche
116
			
105
					
117
			case 7 :
106
					case 7 :
118
			$somme7 += $_POST[$tabJour[$j].$i];
107
					$somme7 += $_POST[$tabJour[$j].$i];
119
			break;
108
					break;
-
 
109
				    } 
-
 
110
				}
120
		    } 
111
		    }
121
		}
112
		}
122
	    }
-
 
123
	    
-
 
124
	}
-
 
125
    }
113
    }
126
    
114
    
127
    //test si une des valeurs >24
115
    //test si une des valeurs >24
128
    if(  $verif_a_faire==true)
116
    if(  $verif_a_faire == true) {
129
    {
-
 
130
    $resultat=(($somme1<$limite)and ($somme2<$limite)and ($somme3<$limite)and ($somme4<$limite)and ($somme5<$limite)
117
    	$resultat=(($somme1<$limite)and ($somme2<$limite)and ($somme3<$limite)and ($somme4<$limite)and ($somme5<$limite)
131
    and ($somme6<$limite)and ($somme7<$limite)and ($res==true));
118
    	and ($somme6<$limite)and ($somme7<$limite)and ($res==true));
-
 
119
    } else {
132
    }else $resultat=true;
120
    	$resultat = true;
-
 
121
    }
133
   
122
	
134
    return $resultat;
123
	return $resultat;
135
}
124
}
-
 
125
 
136
/**
126
/**
137
*fonction traitant l'ajout d'un champ travail dans la base
127
*fonction traitant l'ajout d'un champ travail dans la base
138
*@param : utilisateur
128
*@param : utilisateur
139
*/
129
*/
140
function traiterSemaine($utilisateur)
130
function traiterSemaine($utilisateur)
141
{
131
{
142
    
-
 
143
    if (isset($_POST["champ_valider_travail"]))
132
	if (isset($_POST['champ_valider_travail']))	{
144
    {
-
 
145
	
-
 
146
	//recuperation de l'utilisateur
133
		// Récuperation de l'utilisateur
147
	$user1=&Utilisateur::recupererUtilisateur($utilisateur);
134
		$user1 = Utilisateur::recupererUtilisateur($utilisateur);
148
	//parcours du tableau de jours
135
		// Parcours du tableau de jours
149
	$tabListeJour=array(0 =>'champ_lundi',1 =>'champ_mardi','champ_mercredi','champ_jeudi','champ_vendredi','champ_samedi','champ_dimanche');
136
		$tabListeJour = array(0 =>'champ_lundi',1 =>'champ_mardi','champ_mercredi','champ_jeudi','champ_vendredi','champ_samedi','champ_dimanche');
150
	//parcourt du tableau de jour 
137
		// Parcourt du tableau de jour 
151
	for ($nb=0;$nb<$_POST["champ_nb_projet"];$nb++)
138
		for ($nb = 0; $nb < $_POST["champ_nb_projet"]; $nb++) {
152
	{
-
 
153
	    
-
 
154
	    for($j=0; $j<count($tabListeJour);$j++)
139
		    for($j = 0; $j < count($tabListeJour); $j++) {
155
	    {
-
 
156
		//test du type de jour
140
			// Test du type de jour
157
		
-
 
158
		if (isset($_POST["champ_type_jour".$j]))
141
			if (isset($_POST["champ_type_jour".$j])) {   
159
		{   
-
 
160
		    //cas  jour de travail ou recuperation partielle(recuperation partielle ne reduit pas le temps de travail
142
			    //cas  jour de travail ou recuperation partielle(recuperation partielle ne reduit pas le temps de travail
161
		    if (($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_TRAVAIL)
143
			    if (($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]] == GTT_NOM_TRAVAIL)
162
		    or (($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_RECUP_PART)
144
			    	or (($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]] == GTT_NOM_RECUP_PART)
163
		    and ($_POST["champ_rtt_type_jour".$_POST["champ_type_jour".$j]]==0)))
145
			    	and ($_POST["champ_rtt_type_jour".$_POST["champ_type_jour".$j]] == 0))) {
164
		    {
-
 
165
			
146
				
166
			//test si aucun conges prealablement rentre ne chevauche la date voulue
147
					//test si aucun conges prealablement rentre ne chevauche la date voulue
167
			//construction d'un objet absence equivalent a la date de travail
148
					//construction d'un objet absence equivalent a la date de travail
168
			$testAbs= new Absence($utilisateur,0,date('Y-m-d',$_POST["champ_date_j".$j]));
149
					$testAbs = new Absence($utilisateur,0,date('Y-m-d', $_POST["champ_date_j".$j]));
169
			$testAbs->setDateFin(date('Y-m-d',$_POST["champ_date_j".$j]));
150
					$testAbs->setDateFin(date('Y-m-d', $_POST["champ_date_j".$j]));
170
			$tabAbsence=$testAbs->existeAbsence();
151
					$tabAbsence = $testAbs->existeAbsence();
171
			//booleen pour indiquer si on peut ajouter
152
					// Booleen pour indiquer si on peut ajouter
172
			$possibleAjout=true;
153
					$possibleAjout = true;
173
			//si chevauchement: verification si tous validee
154
					// Si chevauchement: verification si tous validee
174
			if(count($tabAbsence)>0)
155
					if (count($tabAbsence) > 0) {
175
			{
-
 
176
			    if($testAbs->existeAbsenceValidee()==true)
156
					    if ($testAbs->existeAbsenceValidee() == true) {
177
			    {
-
 
178
				$possibleAjout=false;
157
							$possibleAjout = false;
179
				$_POST[$tabListeJour[$j].$nb]='';
158
							$_POST[$tabListeJour[$j].$nb] = '';
180
				$codeErreur=2;
159
							$codeErreur = 2;
181
			    }else{
160
					    } else {
182
				//supression des absences non validees
161
							//supression des absences non validees
183
				for($p=0;$p<count($tabAbsence);$p++)
162
							for ($p = 0; $p < count($tabAbsence); $p++) {
184
				{
-
 
185
				    $l=$tabAbsence[$p];
163
							    $l = $tabAbsence[$p];
186
				    $absTemp2=$testAbs;
164
							    $absTemp2 = $testAbs;
187
				    $absTemp2->construireAbsence($l);
165
							    $absTemp2->construireAbsence($l);
188
				    $nbJour2=$absTemp2->getDureeAbsence();
166
							    $nbJour2 = $absTemp2->getDureeAbsence();
189
				    //mise a jour des quota heures sup et des conges payes de l'utilisateur
167
							    // Mise a jour des quota heures sup et des conges payes de l'utilisateur
190
				    if($_POST["champ_libelle_type_jour".$l[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_RECUPERATION)
168
							    if ($_POST["champ_libelle_type_jour".$l[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_RECUPERATION) {
191
				    {
169
									$quotaTemp=$user1->getQuota();
-
 
170
									$user1->setQuota($quotaTemp+(($user1->getTempsTravail())*$nbJour2));
-
 
171
							    } elseif ($_POST["champ_libelle_type_jour".$l[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_RECUP_PART) {
192
					$quotaTemp=$user1->getQuota();
172
									$quotaTemp=$user1->getQuota();
193
					$user1->setQuota($quotaTemp+(($user1->getTempsTravail())*$nbJour2));
173
									$user1->setQuota($quotaTemp+((($user1->getTempsTravail())/2)*$nbJour2));
-
 
174
							    } else {
-
 
175
									if ($_POST["champ_libelle_type_jour".$l[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_CONGES_PAYES) {
-
 
176
										$congesTemp=$user1->getConges();
-
 
177
										$user1->setConges($congesTemp+($nbJour2*1));
-
 
178
									}
-
 
179
							    }
-
 
180
							    $f = $testAbs->supprimerAbsence($utilisateur,$l[GEST_CHAMPS_DATE_DEBUT_ABSENCE]);
-
 
181
							    if ($f != 1) {
-
 
182
							    	$codeErreur = 3;
-
 
183
							    }
-
 
184
							}
-
 
185
					    }
-
 
186
					}
194
					
-
 
195
				    }elseif($_POST["champ_libelle_type_jour".$l[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_RECUP_PART)
-
 
196
				    {
-
 
197
					$quotaTemp=$user1->getQuota();
-
 
198
					$user1->setQuota($quotaTemp+((($user1->getTempsTravail())/2)*$nbJour2));
187
					
199
					
-
 
200
				    }else
188
					
-
 
189
					//determination des limites de travail en fonction du type de jour
201
				    {
190
					if ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_TRAVAIL) {
-
 
191
						$limiteHeureTravail = $GLOBALS['limiteJourTravail'];
202
					if ($_POST["champ_libelle_type_jour".$l[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_CONGES_PAYES)
192
					} else {
-
 
193
					    $limiteHeureTravail=$GLOBALS['limiteJourRecupPart'];
203
					{
194
					    //construction de l'absence 
-
 
195
					    $absenceRecupPart=new Absence($utilisateur,$_POST["champ_type_jour".$j],date('Y-m-d',$_POST["champ_date_j".$j]));
-
 
196
					    $absenceRecupPart->setDateFin(date('Y-m-d',$_POST["champ_date_j".$j]));
-
 
197
					    
-
 
198
					    //traitement de l'enregistrement de la recuperation partielle
-
 
199
					    if ($possibleAjout == true) {
-
 
200
							$q = $absenceRecupPart->enregistrerNewAbsence();
-
 
201
							//mise a jour des quotas
-
 
202
							$val=$user1->getQuota();
-
 
203
							$duree=$user1->getTempsTravail();
-
 
204
							$user1->setQuota($val-(($user1->getTempsTravail())/2));
-
 
205
							
-
 
206
							if ($q != 1 ) {
-
 
207
							    //attribution d'un code erreur
204
					    $congesTemp=$user1->getConges();
208
							    $codeErreur=1;
205
					    $user1->setConges($congesTemp+($nbJour2*1));
-
 
206
					    
209
							}
-
 
210
					    }
207
					}
211
					}
208
				    }
212
					//test si le champ n'est pas vide et le champ est different de 0
209
				    $f=$testAbs->supprimerAbsence($utilisateur,$l[GEST_CHAMPS_DATE_DEBUT_ABSENCE]);
-
 
210
				    if ($f!=1)$codeErreur=3;
-
 
211
				}
-
 
212
			    }
213
					
213
			}
214
					if (empty($_POST[$tabListeJour[$j].$nb])!=1 and ($_POST[$tabListeJour[$j].$nb])!=0)
214
			
215
					{
215
			
216
					    
216
			//determination des limites de travail en fonction du type de jour
217
					    //test si date <=date d'aujourd'hui
217
			if ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_TRAVAIL)
218
					    if ($_POST["champ_date_j".$j]<=time() and ($possibleAjout==true))
218
			{
-
 
219
			    $limiteHeureTravail=$GLOBALS['limiteJourTravail'];
-
 
220
			}else 
219
					    {
221
			{
-
 
222
			    $limiteHeureTravail=$GLOBALS['limiteJourRecupPart'];
-
 
223
			    //construction de l'absence 
220
						//impossible de modifier des donnees une fosi que l'absence
224
			    $absenceRecupPart=new Absence($utilisateur,$_POST["champ_type_jour".$j],date('Y-m-d',$_POST["champ_date_j".$j]));
221
						//est enregistree
225
			    $absenceRecupPart->setDateFin(date('Y-m-d',$_POST["champ_date_j".$j]));
-
 
226
			    
-
 
227
			    //traitement de l'enregistrement de la recuperation partielle
222
						//construction de l'objet travail
228
			    if($possibleAjout==true)
-
 
229
			    {
-
 
230
				$q = $absenceRecupPart->enregistrerNewAbsence();
-
 
231
				//mise a jour des quotas
223
						
232
				$val=$user1->getQuota();
224
						$travail= new Travail($utilisateur,$_POST["champ_tache".$nb]);
233
				$duree=$user1->getTempsTravail();
225
						$travail->setDateTravail(date('Y-m-d',$_POST["champ_date_j".$j]));
234
				$user1->setQuota($val-(($user1->getTempsTravail())/2));
-
 
235
				
226
						$travail->setDureeTravail($_POST[$tabListeJour[$j].$nb]);
236
				if ($q!=1 )
227
						
237
				{
-
 
238
				    //attribution d'un code erreur
-
 
239
				    $codeErreur=1;
-
 
240
				}
228
						//traitement de l'objet travail
241
			    }
229
						$t=traiterTravail($travail,$limiteHeureTravail);
242
			}
-
 
243
			//test si le champ n'est pas vide et le champ est different de 0
230
						$_POST[$tabListeJour[$j].$nb]='';
244
			
231
						if($t!=1)$codeErreur=$t;
245
			if (empty($_POST[$tabListeJour[$j].$nb])!=1 and ($_POST[$tabListeJour[$j].$nb])!=0)
-
 
246
			{
232
						
247
			    
233
					    }else{
248
			    //test si date <=date d'aujourd'hui
234
						
249
			    if ($_POST["champ_date_j".$j]<=time() and ($possibleAjout==true))
235
						if($possibleAjout==true)
250
			    {
236
						{
251
				//impossible de modifier des donnees une fosi que l'absence
-
 
-
 
237
						    //cas ou la date est superieure a la date d'aujourd'hui
252
				//est enregistree
238
						    //construction de l'objet prevision
253
				//construction de l'objet travail
239
						    $prevision=new Prevision(1000,1000);
254
				
240
						    $tableau=array(GEST_CHAMPS_ID_UTILISATEUR=>$utilisateur,
255
				$travail= new Travail($utilisateur,$_POST["champ_tache".$nb]);
241
						    GEST_CHAMPS_ID_TACHE=>$_POST["champ_tache".$nb],
256
				$travail->setDateTravail(date('Y-m-d',$_POST["champ_date_j".$j]));
242
						    GEST_CHAMPS_DATE_PREVISION=>date('Y-m-d',$_POST["champ_date_j".$j]),
-
 
243
						    GEST_CHAMPS_DUREE_PREVISION=> $_POST["$tabListeJour[$j]".$nb]);
257
				$travail->setDureeTravail($_POST[$tabListeJour[$j].$nb]);
244
						    
258
				
245
						    $prevision->construirePrevision($tableau);
259
				//traitement de l'objet travail
246
						    
260
				$t=traiterTravail($travail,$limiteHeureTravail);
247
						    $o=traiterPrevision($prevision, $limiteHeureTravail);
-
 
248
						    $_POST[$tabListeJour[$j].$nb]='';
-
 
249
						    if($o!=1)$codeErreur=$o;
-
 
250
						    
261
				$_POST[$tabListeJour[$j].$nb]='';
251
						}
262
				if($t!=1)$codeErreur=$t;
-
 
263
				
252
					    }
-
 
253
					}//fin traitement travail et prevision
-
 
254
			    }else{
-
 
255
				//cas des conges
-
 
256
				//cas : conges paye,recup,maladie,greve,ferie
-
 
257
				if(($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_CONGES_PAYES)
-
 
258
				or ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_RECUPERATION)
-
 
259
				or ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_MALADIE)
264
			    }else{
260
				or ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_GREVE)
265
				
-
 
266
				if($possibleAjout==true)
261
				or ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_WEEK_END)
267
				{
262
				or ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_FERIE))
268
				    //cas ou la date est superieure a la date d'aujourd'hui
263
				{
269
				    //construction de l'objet prevision
264
				    //construction du nouvel objet absence
270
				    $prevision=new Prevision(1000,1000);
265
				    $objetAbsence=new Absence($utilisateur,$_POST["champ_type_jour".$j],date('Y-m-d',$_POST["champ_date_j".$j]));
271
				    $tableau=array(GEST_CHAMPS_ID_UTILISATEUR=>$utilisateur,
266
				    $objetAbsence->setDateFin(date('Y-m-d',$_POST["champ_date_j".$j]));
272
				    GEST_CHAMPS_ID_TACHE=>$_POST["champ_tache".$nb],
-
 
273
				    GEST_CHAMPS_DATE_PREVISION=>date('Y-m-d',$_POST["champ_date_j".$j]),
267
				    //traitement de l'objet absence
-
 
268
				    $g=traiterAbsence($objetAbsence,$user1,$_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]);
-
 
269
				    if ($g[0]!=1){
274
				    GEST_CHAMPS_DUREE_PREVISION=> $_POST["$tabListeJour[$j]".$nb]);
270
					$codeErreur=$g[0];
275
				    
-
 
276
				    $prevision->construirePrevision($tableau);
-
 
277
				    
271
				    }else {
278
				    $o=traiterPrevision($prevision, $limiteHeureTravail);
272
					$user1=$g[1];
279
				    $_POST[$tabListeJour[$j].$nb]='';
-
 
280
				    if($o!=1)$codeErreur=$o;
-
 
281
				    
-
 
282
				}
-
 
283
			    }
-
 
284
			}//fin traitement travail et prevision
-
 
285
		    }else{
-
 
286
			//cas des conges
-
 
287
			//cas : conges paye,recup,maladie,greve,ferie
-
 
288
			if(($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_CONGES_PAYES)
-
 
289
			or ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_RECUPERATION)
-
 
290
			or ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_MALADIE)
-
 
291
			or ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_GREVE)
-
 
292
			or ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_WEEK_END)
-
 
293
			or ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_FERIE))
-
 
294
			{
-
 
295
			    //construction du nouvel objet absence
-
 
296
			    $objetAbsence=new Absence($utilisateur,$_POST["champ_type_jour".$j],date('Y-m-d',$_POST["champ_date_j".$j]));
-
 
297
			    $objetAbsence->setDateFin(date('Y-m-d',$_POST["champ_date_j".$j]));
-
 
298
			    //traitement de l'objet absence
-
 
299
			    $g=traiterAbsence($objetAbsence,$user1,$_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]);
-
 
300
			    if ($g[0]!=1){
-
 
301
				$codeErreur=$g[0];
-
 
302
			    }else {
-
 
303
				$user1=$g[1];
-
 
304
				
273
					
305
			    }
274
				    }
306
			    
275
				    
307
			}
276
				}
308
		    }//fin traitement type jour
277
			    }//fin traitement type jour
309
		}//typr jour
278
			}//typr jour
310
		
279
			
311
	    }
280
		    }
312
	   // }
-
 
313
	}
281
		   // }
314
	$h=$user1->mettreAJourUtilisateur();
282
		}
315
	if ($h!=1)
283
		$h=$user1->mettreAJourUtilisateur();
316
	{
284
		if ($h!=1) {
317
	    $codeErreur=25;
285
			$codeErreur = 25;
318
	}
286
		}
319
    }
287
    }
320
    $_POST["champ_valider_travail"]='dejaValider';
288
    $_POST['champ_valider_travail'] = 'dejaValider';
321
}
289
}
322
 
290
 
323
/**
291
/**
324
fonction qui traite les travaux
292
fonction qui traite les travaux
325
*enregistre si nouveau travail
293
*enregistre si nouveau travail
326
*met a jour si existe deja
294
*met a jour si existe deja
327
*@param : $travail : objet travail
295
*@param : $travail : objet travail
328
*@param :limiteHeuretravail=la limite des heure sde travail
296
*@param :limiteHeuretravail=la limite des heure sde travail
329
*/
297
*/
330
function traiterTravail($travail,$limiteHeureTravail)
298
function traiterTravail($travail,$limiteHeureTravail)
331
{
299
{
332
    //verification si on ne depasse pas 24 heures
300
    //verification si on ne depasse pas 24 heures
333
    $sommeTravail= $travail->sommeHeureTravail($travail->getIdUserTravail(),$travail->getDateTravail());
301
    $sommeTravail= $travail->sommeHeureTravail($travail->getIdUserTravail(),$travail->getDateTravail());
334
    
302
    
335
    if (is_null($sommeTravail))
303
    if (is_null($sommeTravail))
336
    {
304
    {
337
	$sommeTravail=0;
305
	$sommeTravail=0;
338
    }
306
    }
339
    
307
    
340
    //verification si donnees precedemment rentrees
308
    //verification si donnees precedemment rentrees
341
    if (($travail->existeTravail()!=0)and ($travail->existeTravail()!=-1))
309
    if (($travail->existeTravail()!=0)and ($travail->existeTravail()!=-1))
342
    {
310
    {
343
	if (($sommeTravail + ($travail->getDureeTravail())-($travail->existeTravail()))<$limiteHeureTravail)
311
	if (($sommeTravail + ($travail->getDureeTravail())-($travail->existeTravail()))<$limiteHeureTravail)
344
	{
312
	{
345
	    $q=$travail->mettreAjourTravail();
313
	    $q=$travail->mettreAjourTravail();
346
	    
314
	    
347
	    if ($q!=1) {
315
	    if ($q!=1) {
348
		$res=4;
316
		$res=4;
349
	    }else $res=1;
317
	    }else $res=1;
350
	}
318
	}
351
	
319
	
352
    }else
320
    }else
353
    //cas travail n'existe pas encore
321
    //cas travail n'existe pas encore
354
    {
322
    {
355
	if ($travail->existeTravail()==0)
323
	if ($travail->existeTravail()==0)
356
	{
324
	{
357
	    //test si on de depasse pas 24 heures pour une journee
325
	    //test si on de depasse pas 24 heures pour une journee
358
	    if ($sommeTravail + ($travail->getDureeTravail())<$limiteHeureTravail)
326
	    if ($sommeTravail + ($travail->getDureeTravail())<$limiteHeureTravail)
359
	    {
327
	    {
360
		$w=$travail->enregistrerNewTravail();
328
		$w=$travail->enregistrerNewTravail();
361
		if ($w!=1){
329
		if ($w!=1){
362
		    $res=5;
330
		    $res=5;
363
		}else $res=1;
331
		}else $res=1;
364
	    }
332
	    }
365
	    
333
	    
366
	}
334
	}
367
    }
335
    }
368
    return $res;
336
    return $res;
369
}
337
}
370
 
338
 
371
/**
339
/**
372
*fonction qui traite les previsions
340
*fonction qui traite les previsions
373
*@param $prevision: l'objet prevision
341
*@param $prevision: l'objet prevision
374
*@param : limite heure de travail
342
*@param : limite heure de travail
375
*@return 1 si aucun erreur
343
*@return 1 si aucun erreur
376
*@return 5 ou 6 si erreur
344
*@return 5 ou 6 si erreur
377
*/
345
*/
378
function traiterPrevision($prevision, $limiteHeureTravail)
346
function traiterPrevision($prevision, $limiteHeureTravail)
379
{
347
{
380
    //verification si on ne depasse pas 24 heures pour les donnees
348
    //verification si on ne depasse pas 24 heures pour les donnees
381
    //rentrees a unedate donnee dans la base de donnees
349
    //rentrees a unedate donnee dans la base de donnees
382
    $sommePrev = $prevision->sommeHeurePrevision($prevision->getIdUserPrevision(),$prevision->getDatePrevision());
350
    $sommePrev = $prevision->sommeHeurePrevision($prevision->getIdUserPrevision(),$prevision->getDatePrevision());
383
    //verification si une prevision a deja ete faite
351
    //verification si une prevision a deja ete faite
384
    
352
    
385
    if (($prevision->existePrevision()!=0) and (($prevision->existePrevision()!=-1)))
353
    if (($prevision->existePrevision()!=0) and (($prevision->existePrevision()!=-1)))
386
    {
354
    {
387
	if ($sommePrev+($prevision->getDureePrevision())-($prevision->existePrevision())<$limiteHeureTravail)
355
	if ($sommePrev+($prevision->getDureePrevision())-($prevision->existePrevision())<$limiteHeureTravail)
388
	{
356
	{
389
	    $q=$prevision->mettreAJourPrevision();
357
	    $q=$prevision->mettreAJourPrevision();
390
	    if ($q!=1)
358
	    if ($q!=1)
391
	    {
359
	    {
392
		$res=5;
360
		$res=5;
393
		echo "echec enregistrement prevision dans base de donnees <br />";
361
		echo "echec enregistrement prevision dans base de donnees <br />";
394
	    }else $res=1;
362
	    }else $res=1;
395
	}
363
	}
396
    }else{
364
    }else{
397
	//cas ou aucuen prevsion n'a deja ete rentree
365
	//cas ou aucuen prevsion n'a deja ete rentree
398
	if( $prevision->existePrevision()==0)
366
	if( $prevision->existePrevision()==0)
399
	{
367
	{
400
	    //test si la somme des previsions de depasse pas 24 heures
368
	    //test si la somme des previsions de depasse pas 24 heures
401
	    if (($sommePrev+($prevision->getDureePrevision()))<<$limiteHeureTravail)
369
	    if (($sommePrev+($prevision->getDureePrevision()))<<$limiteHeureTravail)
402
	    {
370
	    {
403
		$w =$prevision->enregistrerNewPrevision();
371
		$w =$prevision->enregistrerNewPrevision();
404
		if ($w!=1) {
372
		if ($w!=1) {
405
		    $res=6;
373
		    $res=6;
406
		    echo "erreur enregistrement prevision";
374
		    echo "erreur enregistrement prevision";
407
		}else $res=1;
375
		}else $res=1;
408
	    }
376
	    }
409
	}
377
	}
410
    }
378
    }
411
    return $res;
379
    return $res;
412
}
380
}
413
/**
381
/**
414
*fonction qui traite les absences 
382
*fonction qui traite les absences 
415
*@param : $abs : objet absence 
383
*@param : $abs : objet absence 
416
*@param : user: objet utilisateur
384
*@param : user: objet utilisateur
417
*@param $j : jour de la semaine : lundi =0
385
*@param $j : jour de la semaine : lundi =0
418
*supression d'eventuelle absences prealablement rentree
386
*supression d'eventuelle absences prealablement rentree
419
*supression et enregistrement effectif que si aucune lettre n'a prealablement ete 
387
*supression et enregistrement effectif que si aucune lettre n'a prealablement ete 
420
*renvoie 1 si enregistrement effectuee
388
*renvoie 1 si enregistrement effectuee
421
*met a jour la det de fin si l'absence fait partie d'une periode
389
*met a jour la det de fin si l'absence fait partie d'une periode
422
*renvoie code erreur si erreur
390
*renvoie code erreur si erreur
423
*/
391
*/
424
function traiterAbsence($abs,$user,$libelle)
392
function traiterAbsence($abs,$user,$libelle)
425
{
393
{
426
    $tabAbs=$abs->existeAbsence();
394
    $tabAbs=$abs->existeAbsence();
427
    $ok=true;//booleen indiquant si traitement a faire ou non
395
    $ok=true;//booleen indiquant si traitement a faire ou non
428
    $possible=true;//booleen indiquant que l'absence est possible
396
    $possible=true;//booleen indiquant que l'absence est possible
429
    
397
    
430
    //test si weekend =>on n'insere aucun enregistrement
398
    //test si weekend =>on n'insere aucun enregistrement
431
    if($libelle==GTT_NOM_WEEK_END)
399
    if($libelle==GTT_NOM_WEEK_END)
432
    {
400
    {
433
	$ok=false;
401
	$ok=false;
434
    }
402
    }
435
    //si chevauchement existe
403
    //si chevauchement existe
436
    
404
    
437
    if(count($tabAbs)>0)
405
    if(count($tabAbs)>0)
438
    {
406
    {
439
	//on sait que $tabAbs contient au plus un enregistrement
407
	//on sait que $tabAbs contient au plus un enregistrement
440
	//car la periode ne tient que sur une journee
408
	//car la periode ne tient que sur une journee
441
	$line=$tabAbs[0];
409
	$line=$tabAbs[0];
442
	//si pas meme identifiant 
410
	//si pas meme identifiant 
443
	if($line[GEST_CHAMPS_ID_MOTIF]!=$abs->getIdMotif())
411
	if($line[GEST_CHAMPS_ID_MOTIF]!=$abs->getIdMotif())
444
	{
412
	{
445
	    if($line[GEST_CHAMPS_DATE_ENVOI_LETTRE]!='0000-00-00')
413
	    if($line[GEST_CHAMPS_DATE_ENVOI_LETTRE]!='0000-00-00')
446
	    {
414
	    {
447
		//si le jour d'absence a ete valide
415
		//si le jour d'absence a ete valide
448
		$ok=false;
416
		$ok=false;
449
	    }else{
417
	    }else{
450
		//si absence non encore validee
418
		//si absence non encore validee
451
		//verifiaction pour un jour de conges payes ou recuperation
419
		//verifiaction pour un jour de conges payes ou recuperation
452
		if(($libelle==GTT_NOM_CONGES_PAYES)or ($libelle=GTT_NOM_RECUPERATION))
420
		if(($libelle==GTT_NOM_CONGES_PAYES)or ($libelle=GTT_NOM_RECUPERATION))
453
		{
421
		{
454
		    
422
		    
455
		    //recuperation de la duree de l'absence qui chevauche le jour demande
423
		    //recuperation de la duree de l'absence qui chevauche le jour demande
456
		    $debut=explode('-',$line[GEST_CHAMPS_DATE_DEBUT_ABSENCE]);
424
		    $debut=explode('-',$line[GEST_CHAMPS_DATE_DEBUT_ABSENCE]);
457
		    $fin=explode('-',$line[GEST_CHAMPS_DATE_FIN_ABSENCE]);
425
		    $fin=explode('-',$line[GEST_CHAMPS_DATE_FIN_ABSENCE]);
458
		    $dateDeb=mktime(0,0,0,$debut[1],$debut[2],$debut[0]);
426
		    $dateDeb=mktime(0,0,0,$debut[1],$debut[2],$debut[0]);
459
		    $dateFin=mktime(0,0,0,$fin[1],$fin[2],$fin[0]);
427
		    $dateFin=mktime(0,0,0,$fin[1],$fin[2],$fin[0]);
460
		    
428
		    
461
		    //verification si absence precedente est un conges payes
429
		    //verification si absence precedente est un conges payes
462
		    if($_POST["champ_libelle_type_jour".$line[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_CONGES_PAYES)
430
		    if($_POST["champ_libelle_type_jour".$line[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_CONGES_PAYES)
463
		    {
431
		    {
464
			$duree=intval((($dateFin-$dateDeb)/3600)/24);
432
			$duree=intval((($dateFin-$dateDeb)/3600)/24);
465
		    }else $duree=0;
433
		    }else $duree=0;
466
		    
434
		    
467
		    
435
		    
468
		    //verification si possible de prendre le conge paye
436
		    //verification si possible de prendre le conge paye
469
		    if($libelle==GTT_NOM_CONGES_PAYES)
437
		    if($libelle==GTT_NOM_CONGES_PAYES)
470
		    {
438
		    {
471
			if (((($user->getConges())+($duree)-($abs->getDureeAbsence()))<0))
439
			if (((($user->getConges())+($duree)-($abs->getDureeAbsence()))<0))
472
			{
440
			{
473
			   $possible=false;
441
			   $possible=false;
474
			}
442
			}
475
		    }else 
443
		    }else 
476
		    {
444
		    {
477
			//mise a jour de la quantite d'heure supp
445
			//mise a jour de la quantite d'heure supp
478
			$heureSup=$user->getQuota();
446
			$heureSup=$user->getQuota();
479
			$user->setQuota($heureSup-($user->getTempsTravail()));
447
			$user->setQuota($heureSup-($user->getTempsTravail()));
480
			
448
			
481
		    }
449
		    }
482
		}//fin test conges payes
450
		}//fin test conges payes
483
		
451
		
484
		
452
		
485
		
453
		
486
		//supression des anciennes absence dans le cas d'une nouvelle absence
454
		//supression des anciennes absence dans le cas d'une nouvelle absence
487
		if($possible==true)
455
		if($possible==true)
488
		{
456
		{
489
		    for ($p=0;$p<count($tabAbs);$p++)
457
		    for ($p=0;$p<count($tabAbs);$p++)
490
		    {
458
		    {
491
			$line1=$tabAbs[$p];
459
			$line1=$tabAbs[$p];
492
			//duree de l'absence a supprimer
460
			//duree de l'absence a supprimer
493
			$abs2=$abs;
461
			$abs2=$abs;
494
			$abs2->construireAbsence($line1);
462
			$abs2->construireAbsence($line1);
495
			
463
			
496
			$nbJour=$abs2->getDureeAbsence();
464
			$nbJour=$abs2->getDureeAbsence();
497
			 			 
465
			 			 
498
			//mise a jour des quota heures sup et des conges payes de l'utilisateur
466
			//mise a jour des quota heures sup et des conges payes de l'utilisateur
499
			if($_POST["champ_libelle_type_jour".$line1[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_RECUPERATION)
467
			if($_POST["champ_libelle_type_jour".$line1[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_RECUPERATION)
500
			{
468
			{
501
			    $quotaTemp=$user->getQuota();
469
			    $quotaTemp=$user->getQuota();
502
			    $user->setQuota($quotaTemp+(($user->getTempsTravail())*$nbJour));
470
			    $user->setQuota($quotaTemp+(($user->getTempsTravail())*$nbJour));
503
			    
471
			    
504
			}elseif($_POST["champ_libelle_type_jour".$line1[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_RECUP_PART)
472
			}elseif($_POST["champ_libelle_type_jour".$line1[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_RECUP_PART)
505
			{
473
			{
506
			    $quotaTemp=$user->getQuota();
474
			    $quotaTemp=$user->getQuota();
507
			    $user->setQuota($quotaTemp+($nbJour*(($user->getTempsTravail())/2)));
475
			    $user->setQuota($quotaTemp+($nbJour*(($user->getTempsTravail())/2)));
508
			    
476
			    
509
			}else
477
			}else
510
			{
478
			{
511
			    if ($_POST["champ_libelle_type_jour".$line1[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_CONGES_PAYES)
479
			    if ($_POST["champ_libelle_type_jour".$line1[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_CONGES_PAYES)
512
			    {
480
			    {
513
				$congesTemp=$user->getConges();
481
				$congesTemp=$user->getConges();
514
				$user->setConges($congesTemp+(1*$nbJour));
482
				$user->setConges($congesTemp+(1*$nbJour));
515
				
483
				
516
			    }
484
			    }
517
			}
485
			}
518
			$z=$abs->supprimerAbsence($abs->getIdUserAbsence(),$line1[GEST_CHAMPS_DATE_DEBUT_ABSENCE]);
486
			$z=$abs->supprimerAbsence($abs->getIdUserAbsence(),$line1[GEST_CHAMPS_DATE_DEBUT_ABSENCE]);
519
			if($z!=1)
487
			if($z!=1)
520
			{
488
			{
521
			    $res=7;
489
			    $res=7;
522
			}else $res=1;
490
			}else $res=1;
523
		    }
491
		    }
524
		}
492
		}
525
		
493
		
526
	    }
494
	    }
527
	}else
495
	}else
528
	{
496
	{
529
	    //si meme motif on ne fait rien
497
	    //si meme motif on ne fait rien
530
	    $ok=false;
498
	    $ok=false;
531
	}
499
	}
532
	
500
	
533
    }else{
501
    }else{
534
	//si pas de chevauchement
502
	//si pas de chevauchement
535
	$supprimTravail=true;
503
	$supprimTravail=true;
536
	
504
	
537
	//supression d'eventuelles travaux
505
	//supression d'eventuelles travaux
538
	if ($supprimTravail==true)
506
	if ($supprimTravail==true)
539
	{
507
	{
540
	    $res=&Travail::supprimerTachesUserDate($abs->getIdUserAbsence(),$abs->getDateDebAbsence());
508
	    $res=&Travail::supprimerTachesUserDate($abs->getIdUserAbsence(),$abs->getDateDebAbsence());
541
	    if($res!=1)
509
	    if($res!=1)
542
	    {
510
	    {
543
		$res=8;
511
		$res=8;
544
	    }
512
	    }
545
	}
513
	}
546
	
514
	
547
	//mise a jour des conge spayes et heures sup
515
	//mise a jour des conge spayes et heures sup
548
	
516
	
549
	if(($libelle==GTT_NOM_CONGES_PAYES)or ($libelle=GTT_NOM_RECUPERATION))
517
	if(($libelle==GTT_NOM_CONGES_PAYES)or ($libelle=GTT_NOM_RECUPERATION))
550
	{
518
	{
551
	    
519
	    
552
	     //verification si possible de prendre le conge paye
520
	     //verification si possible de prendre le conge paye
553
	    if($libelle==GTT_NOM_CONGES_PAYES)
521
	    if($libelle==GTT_NOM_CONGES_PAYES)
554
	    {
522
	    {
555
		if ((($user->getConges())-($abs->getDureeAbsence()))>=0)
523
		if ((($user->getConges())-($abs->getDureeAbsence()))>=0)
556
		{
524
		{
557
		    $temp=$user->getConges();
525
		    $temp=$user->getConges();
558
		    //mise a jour des conges payes
526
		    //mise a jour des conges payes
559
		    $user->setConges($temp-($abs->getDureeAbsence()));
527
		    $user->setConges($temp-($abs->getDureeAbsence()));
560
		    
528
		    
561
		}else $ok=false;
529
		}else $ok=false;
562
	    }else 
530
	    }else 
563
	    {
531
	    {
564
		//mise a jour de la quantite d'heure supp
532
		//mise a jour de la quantite d'heure supp
565
		$heureSup=$user->getQuota();
533
		$heureSup=$user->getQuota();
566
		$user->setQuota($heureSup-($user->getTempsTravail()));
534
		$user->setQuota($heureSup-($user->getTempsTravail()));
567
		
535
		
568
	    }
536
	    }
569
	}//fin test conges payes
537
	}//fin test conges payes
570
    }
538
    }
571
    //enregistrement de la nouvelle absence
539
    //enregistrement de la nouvelle absence
572
    //si traitement a faire
540
    //si traitement a faire
573
    if($ok==true and $possible==true)
541
    if($ok==true and $possible==true)
574
    {
542
    {
575
	$nouveau=true; //booleen indiquant s'il faut enregistrer une nouvelle absence
543
	$nouveau=true; //booleen indiquant s'il faut enregistrer une nouvelle absence
576
	$absencePrec=$abs->getAbsencesPrec();
544
	$absencePrec=$abs->getAbsencesPrec();
577
	$absenceSuiv=$abs->getAbsencesSuiv();
545
	$absenceSuiv=$abs->getAbsencesSuiv();
578
	//timestamp de la date de debut d'absence
546
	//timestamp de la date de debut d'absence
579
	$dDeb=explode('-',$abs->getDateDebAbsence());
547
	$dDeb=explode('-',$abs->getDateDebAbsence());
580
	$timeDeb=mktime(0,0,0,$dDeb[1],$dDeb[2],$dDeb[0]);
548
	$timeDeb=mktime(0,0,0,$dDeb[1],$dDeb[2],$dDeb[0]);
581
	
549
	
582
	//timestamp de la date de fin d'absence
550
	//timestamp de la date de fin d'absence
583
	$dFin=explode('-',$abs->getDateFinAbsence());
551
	$dFin=explode('-',$abs->getDateFinAbsence());
584
	$timeFin=mktime(0,0,0, $dFin[1], $dFin[2], $dFin[0]);
552
	$timeFin=mktime(0,0,0, $dFin[1], $dFin[2], $dFin[0]);
585
	
553
	
586
	//creation des timestamp des absences precedentes et suivantes
554
	//creation des timestamp des absences precedentes et suivantes
587
	if($absencePrec!=-1)
555
	if($absencePrec!=-1)
588
	{
556
	{
589
	    $finPrec=explode('-',$absencePrec->getDateFinAbsence());
557
	    $finPrec=explode('-',$absencePrec->getDateFinAbsence());
590
	    $datePrec=mktime(0,0,0,$finPrec[1],$finPrec[2],$finPrec[0]);
558
	    $datePrec=mktime(0,0,0,$finPrec[1],$finPrec[2],$finPrec[0]);
591
	}
559
	}
592
	//timestamp de l'absence suivant
560
	//timestamp de l'absence suivant
593
	if($absenceSuiv!=-1)
561
	if($absenceSuiv!=-1)
594
	{
562
	{
595
	    $debSuiv=explode('-',$absenceSuiv->getDateDebAbsence());
563
	    $debSuiv=explode('-',$absenceSuiv->getDateDebAbsence());
596
	    $dateSuiv=mktime(0,0,0,$debSuiv[1],$debSuiv[2],$debSuiv[0]);
564
	    $dateSuiv=mktime(0,0,0,$debSuiv[1],$debSuiv[2],$debSuiv[0]);
597
	}
565
	}
598
	//verification s'il existe des absences precedentes
566
	//verification s'il existe des absences precedentes
599
	//non encore validees
567
	//non encore validees
600
	//si pas d'absence precedentes
568
	//si pas d'absence precedentes
601
	if($absencePrec==-1)
569
	if($absencePrec==-1)
602
	{
570
	{
603
	    if ($absenceSuiv!=-1)
571
	    if ($absenceSuiv!=-1)
604
	    {
572
	    {
605
		//si absence suivante est contigue
573
		//si absence suivante est contigue
606
		if(isDateContigues($timeFin,$dateSuiv)==1)
574
		if(isDateContigues($timeFin,$dateSuiv)==1)
607
		{
575
		{
608
		    $absTemp=$absenceSuiv;
576
		    $absTemp=$absenceSuiv;
609
		   
577
		   
610
		    $absTemp->setDateDeb($abs->getDateDebAbsence());
578
		    $absTemp->setDateDeb($abs->getDateDebAbsence());
611
		   
579
		   
612
		    $w=$absTemp->supprimerAbsence($absenceSuiv->getIdUserAbsence(),$absenceSuiv->getDateDebAbsence());
580
		    $w=$absTemp->supprimerAbsence($absenceSuiv->getIdUserAbsence(),$absenceSuiv->getDateDebAbsence());
613
		    $resTemp=$absTemp->enregistrerNewAbsence();
581
		    $resTemp=$absTemp->enregistrerNewAbsence();
614
		    $nouveau=false;
582
		    $nouveau=false;
615
		    if ($resTemp!=1 or $w!=1)
583
		    if ($resTemp!=1 or $w!=1)
616
		    {
584
		    {
617
			$res=9;
585
			$res=9;
618
		    }
586
		    }
619
		}
587
		}
620
	    }
588
	    }
621
	}else//s'il existe une absence precedentes
589
	}else//s'il existe une absence precedentes
622
	{
590
	{
623
	    //si absence precedente contigue
591
	    //si absence precedente contigue
624
	    if(isDateContigues($datePrec,$timeDeb)==1)
592
	    if(isDateContigues($datePrec,$timeDeb)==1)
625
	    {
593
	    {
626
		$absTemp=$absencePrec;
594
		$absTemp=$absencePrec;
627
		$absTemp->setDateFin($abs->getDateFinAbsence());
595
		$absTemp->setDateFin($abs->getDateFinAbsence());
628
		$nouveau=false;
596
		$nouveau=false;
629
		//test si  l'absence suivante est vide 
597
		//test si  l'absence suivante est vide 
630
		if($absenceSuiv==-1)
598
		if($absenceSuiv==-1)
631
		{
599
		{
632
		  
600
		  
633
		    $resTemp=$absTemp->mettreAJourAbsence();
601
		    $resTemp=$absTemp->mettreAJourAbsence();
634
		    
602
		    
635
		    if($resTemp!=1)
603
		    if($resTemp!=1)
636
		    {
604
		    {
637
			$res=10;
605
			$res=10;
638
		    }
606
		    }
639
		}else//si absence suivante existe
607
		}else//si absence suivante existe
640
		{
608
		{
641
		    //test si absence suivante contigue
609
		    //test si absence suivante contigue
642
		    if(isDateContigues($timeFin,$dateSuiv)==1)
610
		    if(isDateContigues($timeFin,$dateSuiv)==1)
643
		    {
611
		    {
644
			$absTemp->setDateFin($absenceSuiv->getDateFinAbsence());
612
			$absTemp->setDateFin($absenceSuiv->getDateFinAbsence());
645
			//supression de l'absence suivante
613
			//supression de l'absence suivante
646
			$res=&Absence::supprimerAbsence($absenceSuiv->getIdUserAbsence(),$absenceSuiv->getDateDebAbsence());
614
			$res=&Absence::supprimerAbsence($absenceSuiv->getIdUserAbsence(),$absenceSuiv->getDateDebAbsence());
647
			if($res!=1)
615
			if($res!=1)
648
			{
616
			{
649
			    $res=11;
617
			    $res=11;
650
			}
618
			}
651
			//mise a jour de l'absence
619
			//mise a jour de l'absence
652
			 
620
			 
653
			$resTemp=$absTemp->enregistrerNewAbsence();
621
			$resTemp=$absTemp->enregistrerNewAbsence();
654
			
622
			
655
			if($resTemp!=1)
623
			if($resTemp!=1)
656
			{
624
			{
657
			    $res=12;
625
			    $res=12;
658
			}
626
			}
659
			
627
			
660
		    }else
628
		    }else
661
		    {
629
		    {
662
			//absence suivante non contigue
630
			//absence suivante non contigue
663
			//mise a jour de l'absence
631
			//mise a jour de l'absence
664
			$resTemp=$absTemp->mettreAJourAbsence();
632
			$resTemp=$absTemp->mettreAJourAbsence();
665
			
633
			
666
			if($resTemp!=1)
634
			if($resTemp!=1)
667
			{
635
			{
668
			    $res=13;
636
			    $res=13;
669
			}
637
			}
670
		    }
638
		    }
671
		}
639
		}
672
		
640
		
673
		
641
		
674
	    }else
642
	    }else
675
	    {
643
	    {
676
		//si l'absence precedente n'est pas contigue 
644
		//si l'absence precedente n'est pas contigue 
677
		if($absenceSuiv!=-1)//verification si absence suivante non vide
645
		if($absenceSuiv!=-1)//verification si absence suivante non vide
678
		{
646
		{
679
		    if(isDateContigues($timeFin,$dateSuiv)==1)
647
		    if(isDateContigues($timeFin,$dateSuiv)==1)
680
		    {
648
		    {
681
			//si contigue
649
			//si contigue
682
			$absTemp=$absenceSuiv;
650
			$absTemp=$absenceSuiv;
683
			$absTemp->setDateDeb($abs->getDateDebAbsence());
651
			$absTemp->setDateDeb($abs->getDateDebAbsence());
684
			//enregistrement de l'absence
652
			//enregistrement de l'absence
685
			$w=$absTemp->supprimerAbsence($absTemp->getIdUserAbsence(),$absenceSuiv->getDateDebAbsence());
653
			$w=$absTemp->supprimerAbsence($absTemp->getIdUserAbsence(),$absenceSuiv->getDateDebAbsence());
686
			$resTemp=$absTemp->enregistrerNewAbsence();
654
			$resTemp=$absTemp->enregistrerNewAbsence();
687
			if($resTemp!=1 or $w!=1)
655
			if($resTemp!=1 or $w!=1)
688
			{
656
			{
689
			    $res=14;
657
			    $res=14;
690
			}
658
			}
691
			$nouveau=false;
659
			$nouveau=false;
692
		    }
660
		    }
693
		}
661
		}
694
		
662
		
695
	    }
663
	    }
696
	}
664
	}
697
	if($nouveau==true)
665
	if($nouveau==true)
698
	{
666
	{
699
	    $res=$abs->enregistrerNewAbsence();
667
	    $res=$abs->enregistrerNewAbsence();
700
	    if($res!=1)
668
	    if($res!=1)
701
	    {
669
	    {
702
		$res=15;
670
		$res=15;
703
	    } 
671
	    } 
704
	}
672
	}
705
	
673
	
706
	
674
	
707
	return array($res,$user);
675
	return array($res,$user);
708
    }
676
    }
709
}
677
}
710
/**
678
/**
711
*fonction qui verifie si deu dates sont contigues
679
*fonction qui verifie si deu dates sont contigues
712
*@param $dateVerif : timestamp unix
680
*@param $dateVerif : timestamp unix
713
*@param $date : timestamp unix
681
*@param $date : timestamp unix
714
*/
682
*/
715
function isDateContigues($dateVerif,$date)
683
function isDateContigues($dateVerif,$date)
716
{
684
{
717
    if ($dateVerif<$date)
685
    if ($dateVerif<$date)
718
    {
686
    {
719
	$dateDeb=$date;
687
	$dateDeb=$date;
720
	$dateFin=$dateVerif;
688
	$dateFin=$dateVerif;
721
    }else{
689
    }else{
722
	$dateDeb=$dateVerif;
690
	$dateDeb=$dateVerif;
723
	$dateFin=$date;
691
	$dateFin=$date;
724
    }
692
    }
725
    $r=-1;
693
    $r=-1;
726
    
694
    
727
   
695
   
728
    //verification si la date de debut est en semaine
696
    //verification si la date de debut est en semaine
729
    //ou lundi
697
    //ou lundi
730
    $jour=date('w',$dateDeb);
698
    $jour=date('w',$dateDeb);
731
    //si c un lundi
699
    //si c un lundi
732
    if ($jour==1)
700
    if ($jour==1)
733
    {
701
    {
734
	if(($dateDeb-(3600*24*3))==$dateFin)
702
	if(($dateDeb-(3600*24*3))==$dateFin)
735
	{
703
	{
736
	    $r=1;
704
	    $r=1;
737
	}
705
	}
738
    }else//si c un jour de semaine
706
    }else//si c un jour de semaine
739
    {
707
    {
740
	if(($dateDeb-(3600*24))==$dateFin)
708
	if(($dateDeb-(3600*24))==$dateFin)
741
	{
709
	{
742
	    $r=1;
710
	    $r=1;
743
	}
711
	}
744
    }
712
    }
745
    return $r;
713
    return $r;
746
    
714
    
747
}
715
}
748
 
-
 
749
 
716
 
750
/**
717
/**
751
*fonction traitant le menu travail
718
*fonction traitant le menu travail
752
*/
719
*/
753
function traiterAdminTravail($url,$semaine,$annee,$utilisateur)
720
function traiterAdminTravail($url, $semaine, $annee, $utilisateur)
754
{
721
{
755
    $text=creerEntetePage(GESTION_GESTIONDEPOSTE_L);
722
	$text = creerEntetePage(GESTION_GESTIONDEPOSTE_L);
756
    $form=afficherTableauJour($url,$utilisateur,$semaine,$annee);
723
	$form = afficherTableauJour($url, $utilisateur, $semaine, $annee);
757
    
-
 
758
    if (isset($_POST["champ_valider_travail"])and $_POST["champ_valider_travail"]!='dejaValider'and $form->validate()) 
-
 
759
    {    
-
 
-
 
724
	
760
	
725
	if (isset($_POST['champ_valider_travail']) and $_POST['champ_valider_travail'] != 'dejaValider' and $form->validate()) {    
761
	$form->process(traiterSemaine($utilisateur));
726
		$form->process(traiterSemaine($utilisateur));
762
	$t=afficherTableauJour($url,$utilisateur,$semaine,$annee);
727
		$t = afficherTableauJour($url, $utilisateur, $semaine, $annee);
763
	$text.=$t->ToHTml();
728
		$text .= $t->ToHTml();
764
    }else{
729
	} else {
765
	$text.=$form->ToHtml();
730
		$text .= $form->ToHtml();
766
    }
731
	}
767
    return $text;
732
	return $text;
768
}
-
 
769
 
733
}
770
 
734
 
771
?>
735
?>