New file |
0,0 → 1,771 |
<?php |
|
// +------------------------------------------------------------------------------------------------------+ |
// | PHP version 4.1 | |
// +------------------------------------------------------------------------------------------------------+ |
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) | |
// +------------------------------------------------------------------------------------------------------+ |
// | This library is free software; you can redistribute it and/or | |
// | modify it under the terms of the GNU Lesser General Public | |
// | License as published by the Free Software Foundation; either | |
// | version 2.1 of the License, or (at your option) any later version. | |
// | | |
// | This library is distributed in the hope that it will be useful, | |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
// | Lesser General Public License for more details. | |
// | | |
// | You should have received a copy of the GNU Lesser General Public | |
// | License along with this library; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// |@author ABDOOL RAHEEM shaheen shaheenar50@hotmail.com | |
// |@version 3 | |
|
// +------------------------------------------------------------------------------------------------------+ |
/* |
*fichier contenant le menu principal de l'application de gestion du temps de travail |
*@package gtt_general |
//Auteur original : |
*@author Dorian Bannier <dbannier@aol.com> |
//Autres auteurs : |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
*@copyright Copyright (C) 2003 Tela-Botanica |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
include_once CHEMIN_FN_GENERIQUE_AFFICHAGE; |
include_once 'gtt_config.inc.php'; |
include_once CHEMIN_MENU.'gtt_menu_travail.php'; |
include_once CHEMIN_CLASSES_METIER.'gtt_travail.class.php'; |
include_once CHEMIN_CLASSES_METIER.'gtt_taches.class.php'; |
include_once CHEMIN_CLASSES_METIER.'gtt_prevision_tache.class.php'; |
/** |
*fonction verifiant si les heures rentrees sont bien valides |
*verification si heure rentree dans une case <24 ou >0 |
*verifiaction si somme heure d'une journee<24 |
*/ |
|
|
function verifTempsTravail() |
{ |
$nb=$_POST["champ_nb_projet"]; |
|
$res = true; |
//iniatilisation des variables |
$somme1=$somme2=$somme3=$somme4=$somme5=$somme6=$somme7=0; |
|
$verif_a_faire=false; |
//tableau jour |
$tabJour=array(0=>"champ_lundi",1=>"champ_mardi","champ_mercredi","champ_jeudi","champ_vendredi","champ_samedi","champ_dimanche"); |
|
for ($i=0;$i<$nb;$i++) |
{ |
for ($j=0;$j<count($tabJour);$j++) |
{ |
//on ne fait les tests que si des jours de travail ou de recuperation partielle |
if ((isset($_POST[$tabJour[$j].$i]))and (($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_TRAVAIL) or |
($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]=="Récup part:1/2j"))) |
{ |
$verif_a_faire=true; |
//attribution de la limite selon le type de jour |
if ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_TRAVAIL) |
{ |
$limite = 24; |
} |
elseif($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]=="Récup part:1/2j") |
{ |
$limite = 12; |
} |
|
if ((!(($_POST[$tabJour[$j].$i]<$limite)and ($_POST[$tabJour[$j].$i]>=0)))or |
(empty($_POST[$tabJour[$j].$i])!=1 and is_numeric($_POST[$tabJour[$j].$i])!=1)) |
{ |
$res=false; |
}else{ |
switch ($j) |
{ |
//cas lundi |
case 1: |
$somme1 += $_POST[$tabJour[$j].$i]; |
break; |
//cas mardi |
case 2 : |
|
$somme2 += $_POST[$tabJour[$j].$i]; |
break; |
|
//cas mercredi |
case 3 : |
$somme3 += $_POST[$tabJour[$j].$i]; |
break; |
|
//cas jeudi |
case 4 : |
$somme4 += $_POST[$tabJour[$j].$i]; |
break; |
//cas vendredi |
case 5 : |
$somme5 += $_POST[$tabJour[$j].$i]; |
break; |
|
//cas samedi |
case 6 : |
$somme6 += $_POST[$tabJour[$j].$i]; |
break; |
//cas dimanche |
|
case 7 : |
$somme7 += $_POST[$tabJour[$j].$i]; |
break; |
} |
} |
} |
|
} |
} |
|
//test si une des valeurs >24 |
if( $verif_a_faire==true) |
{ |
$resultat=(($somme1<$limite)and ($somme2<$limite)and ($somme3<$limite)and ($somme4<$limite)and ($somme5<$limite) |
and ($somme6<$limite)and ($somme7<$limite)and ($res==true)); |
}else $resultat=true; |
|
return $resultat; |
} |
/** |
*fonction traitant l'ajout d'un champ travail dans la base |
*@param : utilisateur |
*/ |
function traiterSemaine($utilisateur) |
{ |
|
if (isset($_POST["champ_valider_travail"])) |
{ |
|
//recuperation de l'utilisateur |
$user1=&Utilisateur::recupererUtilisateur($utilisateur); |
//parcours du tableau de jours |
$tabListeJour=array(0 =>'champ_lundi',1 =>'champ_mardi','champ_mercredi','champ_jeudi','champ_vendredi','champ_samedi','champ_dimanche'); |
//parcourt du tableau de jour |
for ($nb=0;$nb<$_POST["champ_nb_projet"];$nb++) |
{ |
|
for($j=0; $j<count($tabListeJour);$j++) |
{ |
//test du type de jour |
|
if (isset($_POST["champ_type_jour".$j])) |
{ |
//cas jour de travail ou recuperation partielle(recuperation partielle ne reduit pas le temps de travail |
if (($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_TRAVAIL) |
or (($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_RECUP_PART) |
and ($_POST["champ_rtt_type_jour".$_POST["champ_type_jour".$j]]==0))) |
{ |
|
//test si aucun conges prealablement rentre ne chevauche la date voulue |
//construction d'un objet absence equivalent a la date de travail |
$testAbs= new Absence($utilisateur,0,date('Y-m-d',$_POST["champ_date_j".$j])); |
$testAbs->setDateFin(date('Y-m-d',$_POST["champ_date_j".$j])); |
$tabAbsence=$testAbs->existeAbsence(); |
//booleen pour indiquer si on peut ajouter |
$possibleAjout=true; |
//si chevauchement: verification si tous validee |
if(count($tabAbsence)>0) |
{ |
if($testAbs->existeAbsenceValidee()==true) |
{ |
$possibleAjout=false; |
$_POST[$tabListeJour[$j].$nb]=''; |
$codeErreur=2; |
}else{ |
//supression des absences non validees |
for($p=0;$p<count($tabAbsence);$p++) |
{ |
$l=$tabAbsence[$p]; |
$absTemp2=$testAbs; |
$absTemp2->construireAbsence($l); |
$nbJour2=$absTemp2->getDureeAbsence(); |
//mise a jour des quota heures sup et des conges payes de l'utilisateur |
if($_POST["champ_libelle_type_jour".$l[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_RECUPERATION) |
{ |
$quotaTemp=$user1->getQuota(); |
$user1->setQuota($quotaTemp+(($user1->getTempsTravail())*$nbJour2)); |
|
}elseif($_POST["champ_libelle_type_jour".$l[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_RECUP_PART) |
{ |
$quotaTemp=$user1->getQuota(); |
$user1->setQuota($quotaTemp+((($user1->getTempsTravail())/2)*$nbJour2)); |
|
}else |
{ |
if ($_POST["champ_libelle_type_jour".$l[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_CONGES_PAYES) |
{ |
$congesTemp=$user1->getConges(); |
$user1->setConges($congesTemp+($nbJour2*1)); |
|
} |
} |
$f=$testAbs->supprimerAbsence($utilisateur,$l[GEST_CHAMPS_DATE_DEBUT_ABSENCE]); |
if ($f!=1)$codeErreur=3; |
} |
} |
} |
|
|
//determination des limites de travail en fonction du type de jour |
if ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_TRAVAIL) |
{ |
$limiteHeureTravail=$GLOBALS['limiteJourTravail']; |
}else |
{ |
$limiteHeureTravail=$GLOBALS['limiteJourRecupPart']; |
//construction de l'absence |
$absenceRecupPart=new Absence($utilisateur,$_POST["champ_type_jour".$j],date('Y-m-d',$_POST["champ_date_j".$j])); |
$absenceRecupPart->setDateFin(date('Y-m-d',$_POST["champ_date_j".$j])); |
|
//traitement de l'enregistrement de la recuperation partielle |
if($possibleAjout==true) |
{ |
$q = $absenceRecupPart->enregistrerNewAbsence(); |
//mise a jour des quotas |
$val=$user1->getQuota(); |
$duree=$user1->getTempsTravail(); |
$user1->setQuota($val-(($user1->getTempsTravail())/2)); |
|
if ($q!=1 ) |
{ |
//attribution d'un code erreur |
$codeErreur=1; |
} |
} |
} |
//test si le champ n'est pas vide et le champ est different de 0 |
|
if (empty($_POST[$tabListeJour[$j].$nb])!=1 and ($_POST[$tabListeJour[$j].$nb])!=0) |
{ |
|
//test si date <=date d'aujourd'hui |
if ($_POST["champ_date_j".$j]<=time() and ($possibleAjout==true)) |
{ |
//impossible de modifier des donnees une fosi que l'absence |
//est enregistree |
//construction de l'objet travail |
|
$travail= new Travail($utilisateur,$_POST["champ_tache".$nb]); |
$travail->setDateTravail(date('Y-m-d',$_POST["champ_date_j".$j])); |
$travail->setDureeTravail($_POST[$tabListeJour[$j].$nb]); |
|
//traitement de l'objet travail |
$t=traiterTravail($travail,$limiteHeureTravail); |
$_POST[$tabListeJour[$j].$nb]=''; |
if($t!=1)$codeErreur=$t; |
|
}else{ |
|
if($possibleAjout==true) |
{ |
//cas ou la date est superieure a la date d'aujourd'hui |
//construction de l'objet prevision |
$prevision=new Prevision(1000,1000); |
$tableau=array(GEST_CHAMPS_ID_UTILISATEUR=>$utilisateur, |
GEST_CHAMPS_ID_TACHE=>$_POST["champ_tache".$nb], |
GEST_CHAMPS_DATE_PREVISION=>date('Y-m-d',$_POST["champ_date_j".$j]), |
GEST_CHAMPS_DUREE_PREVISION=> $_POST["$tabListeJour[$j]".$nb]); |
|
$prevision->construirePrevision($tableau); |
|
$o=traiterPrevision($prevision, $limiteHeureTravail); |
$_POST[$tabListeJour[$j].$nb]=''; |
if($o!=1)$codeErreur=$o; |
|
} |
} |
}//fin traitement travail et prevision |
}else{ |
//cas des conges |
//cas : conges paye,recup,maladie,greve,ferie |
if(($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_CONGES_PAYES) |
or ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_RECUPERATION) |
or ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_MALADIE) |
or ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_GREVE) |
or ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_WEEK_END) |
or ($_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]==GTT_NOM_FERIE)) |
{ |
//construction du nouvel objet absence |
$objetAbsence=new Absence($utilisateur,$_POST["champ_type_jour".$j],date('Y-m-d',$_POST["champ_date_j".$j])); |
$objetAbsence->setDateFin(date('Y-m-d',$_POST["champ_date_j".$j])); |
//traitement de l'objet absence |
$g=traiterAbsence($objetAbsence,$user1,$_POST["champ_libelle_type_jour".$_POST["champ_type_jour".$j]]); |
if ($g[0]!=1){ |
$codeErreur=$g[0]; |
}else { |
$user1=$g[1]; |
|
} |
|
} |
}//fin traitement type jour |
}//typr jour |
|
} |
// } |
} |
$h=$user1->mettreAJourUtilisateur(); |
if ($h!=1) |
{ |
$codeErreur=25; |
} |
} |
$_POST["champ_valider_travail"]='dejaValider'; |
} |
|
/** |
fonction qui traite les travaux |
*enregistre si nouveau travail |
*met a jour si existe deja |
*@param : $travail : objet travail |
*@param :limiteHeuretravail=la limite des heure sde travail |
*/ |
function traiterTravail($travail,$limiteHeureTravail) |
{ |
//verification si on ne depasse pas 24 heures |
$sommeTravail= $travail->sommeHeureTravail($travail->getIdUserTravail(),$travail->getDateTravail()); |
|
if (is_null($sommeTravail)) |
{ |
$sommeTravail=0; |
} |
|
//verification si donnees precedemment rentrees |
if (($travail->existeTravail()!=0)and ($travail->existeTravail()!=-1)) |
{ |
if (($sommeTravail + ($travail->getDureeTravail())-($travail->existeTravail()))<$limiteHeureTravail) |
{ |
$q=$travail->mettreAjourTravail(); |
|
if ($q!=1) { |
$res=4; |
}else $res=1; |
} |
|
}else |
//cas travail n'existe pas encore |
{ |
if ($travail->existeTravail()==0) |
{ |
//test si on de depasse pas 24 heures pour une journee |
if ($sommeTravail + ($travail->getDureeTravail())<$limiteHeureTravail) |
{ |
$w=$travail->enregistrerNewTravail(); |
if ($w!=1){ |
$res=5; |
}else $res=1; |
} |
|
} |
} |
return $res; |
} |
|
/** |
*fonction qui traite les previsions |
*@param $prevision: l'objet prevision |
*@param : limite heure de travail |
*@return 1 si aucun erreur |
*@return 5 ou 6 si erreur |
*/ |
function traiterPrevision($prevision, $limiteHeureTravail) |
{ |
//verification si on ne depasse pas 24 heures pour les donnees |
//rentrees a unedate donnee dans la base de donnees |
$sommePrev = $prevision->sommeHeurePrevision($prevision->getIdUserPrevision(),$prevision->getDatePrevision()); |
//verification si une prevision a deja ete faite |
|
if (($prevision->existePrevision()!=0) and (($prevision->existePrevision()!=-1))) |
{ |
if ($sommePrev+($prevision->getDureePrevision())-($prevision->existePrevision())<$limiteHeureTravail) |
{ |
$q=$prevision->mettreAJourPrevision(); |
if ($q!=1) |
{ |
$res=5; |
echo "echec enregistrement prevision dans base de donnees <br />"; |
}else $res=1; |
} |
}else{ |
//cas ou aucuen prevsion n'a deja ete rentree |
if( $prevision->existePrevision()==0) |
{ |
//test si la somme des previsions de depasse pas 24 heures |
if (($sommePrev+($prevision->getDureePrevision()))<<$limiteHeureTravail) |
{ |
$w =$prevision->enregistrerNewPrevision(); |
if ($w!=1) { |
$res=6; |
echo "erreur enregistrement prevision"; |
}else $res=1; |
} |
} |
} |
return $res; |
} |
/** |
*fonction qui traite les absences |
*@param : $abs : objet absence |
*@param : user: objet utilisateur |
*@param $j : jour de la semaine : lundi =0 |
*supression d'eventuelle absences prealablement rentree |
*supression et enregistrement effectif que si aucune lettre n'a prealablement ete |
*renvoie 1 si enregistrement effectuee |
*met a jour la det de fin si l'absence fait partie d'une periode |
*renvoie code erreur si erreur |
*/ |
function traiterAbsence($abs,$user,$libelle) |
{ |
$tabAbs=$abs->existeAbsence(); |
$ok=true;//booleen indiquant si traitement a faire ou non |
$possible=true;//booleen indiquant que l'absence est possible |
|
//test si weekend =>on n'insere aucun enregistrement |
if($libelle==GTT_NOM_WEEK_END) |
{ |
$ok=false; |
} |
//si chevauchement existe |
|
if(count($tabAbs)>0) |
{ |
//on sait que $tabAbs contient au plus un enregistrement |
//car la periode ne tient que sur une journee |
$line=$tabAbs[0]; |
//si pas meme identifiant |
if($line[GEST_CHAMPS_ID_MOTIF]!=$abs->getIdMotif()) |
{ |
if($line[GEST_CHAMPS_DATE_ENVOI_LETTRE]!='0000-00-00') |
{ |
//si le jour d'absence a ete valide |
$ok=false; |
}else{ |
//si absence non encore validee |
//verifiaction pour un jour de conges payes ou recuperation |
if(($libelle==GTT_NOM_CONGES_PAYES)or ($libelle=GTT_NOM_RECUPERATION)) |
{ |
|
//recuperation de la duree de l'absence qui chevauche le jour demande |
$debut=explode('-',$line[GEST_CHAMPS_DATE_DEBUT_ABSENCE]); |
$fin=explode('-',$line[GEST_CHAMPS_DATE_FIN_ABSENCE]); |
$dateDeb=mktime(0,0,0,$debut[1],$debut[2],$debut[0]); |
$dateFin=mktime(0,0,0,$fin[1],$fin[2],$fin[0]); |
|
//verification si absence precedente est un conges payes |
if($_POST["champ_libelle_type_jour".$line[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_CONGES_PAYES) |
{ |
$duree=intval((($dateFin-$dateDeb)/3600)/24); |
}else $duree=0; |
|
|
//verification si possible de prendre le conge paye |
if($libelle==GTT_NOM_CONGES_PAYES) |
{ |
if (((($user->getConges())+($duree)-($abs->getDureeAbsence()))<0)) |
{ |
$possible=false; |
} |
}else |
{ |
//mise a jour de la quantite d'heure supp |
$heureSup=$user->getQuota(); |
$user->setQuota($heureSup-($user->getTempsTravail())); |
|
} |
}//fin test conges payes |
|
|
|
//supression des anciennes absence dans le cas d'une nouvelle absence |
if($possible==true) |
{ |
for ($p=0;$p<count($tabAbs);$p++) |
{ |
$line1=$tabAbs[$p]; |
//duree de l'absence a supprimer |
$abs2=$abs; |
$abs2->construireAbsence($line1); |
|
$nbJour=$abs2->getDureeAbsence(); |
|
//mise a jour des quota heures sup et des conges payes de l'utilisateur |
if($_POST["champ_libelle_type_jour".$line1[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_RECUPERATION) |
{ |
$quotaTemp=$user->getQuota(); |
$user->setQuota($quotaTemp+(($user->getTempsTravail())*$nbJour)); |
|
}elseif($_POST["champ_libelle_type_jour".$line1[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_RECUP_PART) |
{ |
$quotaTemp=$user->getQuota(); |
$user->setQuota($quotaTemp+($nbJour*(($user->getTempsTravail())/2))); |
|
}else |
{ |
if ($_POST["champ_libelle_type_jour".$line1[GEST_CHAMPS_ID_MOTIF]]==GTT_NOM_CONGES_PAYES) |
{ |
$congesTemp=$user->getConges(); |
$user->setConges($congesTemp+(1*$nbJour)); |
|
} |
} |
$z=$abs->supprimerAbsence($abs->getIdUserAbsence(),$line1[GEST_CHAMPS_DATE_DEBUT_ABSENCE]); |
if($z!=1) |
{ |
$res=7; |
}else $res=1; |
} |
} |
|
} |
}else |
{ |
//si meme motif on ne fait rien |
$ok=false; |
} |
|
}else{ |
//si pas de chevauchement |
$supprimTravail=true; |
|
//supression d'eventuelles travaux |
if ($supprimTravail==true) |
{ |
$res=&Travail::supprimerTachesUserDate($abs->getIdUserAbsence(),$abs->getDateDebAbsence()); |
if($res!=1) |
{ |
$res=8; |
} |
} |
|
//mise a jour des conge spayes et heures sup |
|
if(($libelle==GTT_NOM_CONGES_PAYES)or ($libelle=GTT_NOM_RECUPERATION)) |
{ |
|
//verification si possible de prendre le conge paye |
if($libelle==GTT_NOM_CONGES_PAYES) |
{ |
if ((($user->getConges())-($abs->getDureeAbsence()))>=0) |
{ |
$temp=$user->getConges(); |
//mise a jour des conges payes |
$user->setConges($temp-($abs->getDureeAbsence())); |
|
}else $ok=false; |
}else |
{ |
//mise a jour de la quantite d'heure supp |
$heureSup=$user->getQuota(); |
$user->setQuota($heureSup-($user->getTempsTravail())); |
|
} |
}//fin test conges payes |
} |
//enregistrement de la nouvelle absence |
//si traitement a faire |
if($ok==true and $possible==true) |
{ |
$nouveau=true; //booleen indiquant s'il faut enregistrer une nouvelle absence |
$absencePrec=$abs->getAbsencesPrec(); |
$absenceSuiv=$abs->getAbsencesSuiv(); |
//timestamp de la date de debut d'absence |
$dDeb=explode('-',$abs->getDateDebAbsence()); |
$timeDeb=mktime(0,0,0,$dDeb[1],$dDeb[2],$dDeb[0]); |
|
//timestamp de la date de fin d'absence |
$dFin=explode('-',$abs->getDateFinAbsence()); |
$timeFin=mktime(0,0,0, $dFin[1], $dFin[2], $dFin[0]); |
|
//creation des timestamp des absences precedentes et suivantes |
if($absencePrec!=-1) |
{ |
$finPrec=explode('-',$absencePrec->getDateFinAbsence()); |
$datePrec=mktime(0,0,0,$finPrec[1],$finPrec[2],$finPrec[0]); |
} |
//timestamp de l'absence suivant |
if($absenceSuiv!=-1) |
{ |
$debSuiv=explode('-',$absenceSuiv->getDateDebAbsence()); |
$dateSuiv=mktime(0,0,0,$debSuiv[1],$debSuiv[2],$debSuiv[0]); |
} |
//verification s'il existe des absences precedentes |
//non encore validees |
//si pas d'absence precedentes |
if($absencePrec==-1) |
{ |
if ($absenceSuiv!=-1) |
{ |
//si absence suivante est contigue |
if(isDateContigues($timeFin,$dateSuiv)==1) |
{ |
$absTemp=$absenceSuiv; |
|
$absTemp->setDateDeb($abs->getDateDebAbsence()); |
|
$w=$absTemp->supprimerAbsence($absenceSuiv->getIdUserAbsence(),$absenceSuiv->getDateDebAbsence()); |
$resTemp=$absTemp->enregistrerNewAbsence(); |
$nouveau=false; |
if ($resTemp!=1 or $w!=1) |
{ |
$res=9; |
} |
} |
} |
}else//s'il existe une absence precedentes |
{ |
//si absence precedente contigue |
if(isDateContigues($datePrec,$timeDeb)==1) |
{ |
$absTemp=$absencePrec; |
$absTemp->setDateFin($abs->getDateFinAbsence()); |
$nouveau=false; |
//test si l'absence suivante est vide |
if($absenceSuiv==-1) |
{ |
|
$resTemp=$absTemp->mettreAJourAbsence(); |
|
if($resTemp!=1) |
{ |
$res=10; |
} |
}else//si absence suivante existe |
{ |
//test si absence suivante contigue |
if(isDateContigues($timeFin,$dateSuiv)==1) |
{ |
$absTemp->setDateFin($absenceSuiv->getDateFinAbsence()); |
//supression de l'absence suivante |
$res=&Absence::supprimerAbsence($absenceSuiv->getIdUserAbsence(),$absenceSuiv->getDateDebAbsence()); |
if($res!=1) |
{ |
$res=11; |
} |
//mise a jour de l'absence |
|
$resTemp=$absTemp->enregistrerNewAbsence(); |
|
if($resTemp!=1) |
{ |
$res=12; |
} |
|
}else |
{ |
//absence suivante non contigue |
//mise a jour de l'absence |
$resTemp=$absTemp->mettreAJourAbsence(); |
|
if($resTemp!=1) |
{ |
$res=13; |
} |
} |
} |
|
|
}else |
{ |
//si l'absence precedente n'est pas contigue |
if($absenceSuiv!=-1)//verification si absence suivante non vide |
{ |
if(isDateContigues($timeFin,$dateSuiv)==1) |
{ |
//si contigue |
$absTemp=$absenceSuiv; |
$absTemp->setDateDeb($abs->getDateDebAbsence()); |
//enregistrement de l'absence |
$w=$absTemp->supprimerAbsence($absTemp->getIdUserAbsence(),$absenceSuiv->getDateDebAbsence()); |
$resTemp=$absTemp->enregistrerNewAbsence(); |
if($resTemp!=1 or $w!=1) |
{ |
$res=14; |
} |
$nouveau=false; |
} |
} |
|
} |
} |
if($nouveau==true) |
{ |
$res=$abs->enregistrerNewAbsence(); |
if($res!=1) |
{ |
$res=15; |
} |
} |
|
|
return array($res,$user); |
} |
} |
/** |
*fonction qui verifie si deu dates sont contigues |
*@param $dateVerif : timestamp unix |
*@param $date : timestamp unix |
*/ |
function isDateContigues($dateVerif,$date) |
{ |
if ($dateVerif<$date) |
{ |
$dateDeb=$date; |
$dateFin=$dateVerif; |
}else{ |
$dateDeb=$dateVerif; |
$dateFin=$date; |
} |
$r=-1; |
|
|
//verification si la date de debut est en semaine |
//ou lundi |
$jour=date('w',$dateDeb); |
//si c un lundi |
if ($jour==1) |
{ |
if(($dateDeb-(3600*24*3))==$dateFin) |
{ |
$r=1; |
} |
}else//si c un jour de semaine |
{ |
if(($dateDeb-(3600*24))==$dateFin) |
{ |
$r=1; |
} |
} |
return $r; |
|
} |
|
|
/** |
*fonction traitant le menu travail |
*/ |
function traiterAdminTravail($url,$semaine,$annee,$utilisateur) |
{ |
$text=creerEntetePage(GESTION_GESTIONDEPOSTE_L); |
$form=afficherTableauJour($url,$utilisateur,$semaine,$annee); |
|
if (isset($_POST["champ_valider_travail"])and $_POST["champ_valider_travail"]!='dejaValider'and $form->validate()) |
{ |
|
$form->process(traiterSemaine($utilisateur)); |
$t=afficherTableauJour($url,$utilisateur,$semaine,$annee); |
$text.=$t->ToHTml(); |
}else{ |
$text.=$form->ToHtml(); |
} |
return $text; |
} |
|
|
?> |
Property changes: |
Added: svn:executable |