Subversion Repositories Applications.gtt

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1 → Rev 2

/trunk/classes_metier/gtt_taches.class.php
New file
0,0 → 1,174
<?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 langues
include_once CHEMIN_LANGUES.'gtt_langue_fr.inc.php';
//classe projet
include_once CHEMIN_CLASSES_METIER.'gtt_projet.class.php';
 
class Tache
{
var $_id_tache;
var $_nom_tache;
var $_description_tache;
var $_date_debut_tache;
var $_duree_prevue_tache;
var $_duree_reelle_tache;
var $_avancement_tache;
//identifiant du projet auquel il appartient
var $_projet;
/*tableau des predecesseurs */
var $_tab_pred= array ();
/*tableau des sucesseurs */
var $_tab_succ= array ();
/**
*constructeur
*/
function Tache($id)
{
$this->_id_tache=$id;
}
/**
*fonction construisant une nouvelle tache
*avec que les options obligatoires
*@param : id : identifiant de la tache
*@param : proj: identifiant du projet
*@pâram : nom de la tache
*/
function construireDefaultTache($proj,$nom)
{
$this->_id_tache=&Tache::nextId();
$this->_projet=$proj;
$this->_nom_tache=$nom;
$p=&Projet::recupererProjet($proj);
$this->_date_debut_tache=$p->getDateDeb();
$this->_duree_prevue_tache=$p->getDureePrevue();
}
/**
*enregistre une nouvelle tache par defaut
*dasn la base de donnees
*renvoie 1 si tache enregistree
*0 si pas d'enregistrement
*-1 si erreur
*/
function enregistrerNewDefaultTache()
{
$table =GEST_TACHES;
//Verification si identifiant deja attribue
$b=&Tache::nextId();
$this->_id_tache=$b;
$champs = array(
GEST_CHAMPS_ID_TACHE => $this->_id_tache,
GEST_CHAMPS_ID_PROJET=>$this->_projet,
GEST_CHAMPS_NOM_TACHE=> "$this->_nom_tache",
GEST_CHAMPS_DATE_DEB_TACHE=> $this->_date_debut_tache,
GEST_CHAMPS_DUREE_PREVUE_TACHE=>$this->_duree_prevue_tache);
$resultat = $GLOBALS['db']->autoExecute($table, $champs, DB_AUTOQUERY_INSERT);
if (DB::isError($resultat)) {
die($resultat->getMessage());
}
$j=$GLOBALS['db']->affectedRows();
switch ($j)
{
case 1 : return 1;
case 0 :return 0;
default :return -1;
}
}
 
/**
*recupere l'identifiant de la tache par defaut
*renvoie l'identifiant si aucune erreur
*-1 si erreur
*/
function recupererIdentifiantDefaultTache()
{
$requete="SELECT ".GEST_CHAMPS_ID_TACHE.
" FROM ".GEST_TACHES.
" WHERE ".GEST_CHAMPS_NOM_TACHE." = \"".GESTION_NOM_TACHE_DEFAUT_L."\"";
$resultat = $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$res = $resultat->fetchRow(DB_FETCHMODE_ORDERED);
$j=$resultat->numRows();
if ($j==1)
{
return $res[0];
}else return -1;
}
 
 
/**
*supprime une tache de la base de donnees
*@param $id_projet : supprime une tache a partir de l'identifiant
*de la tache
*/
function supprimerTache($id_tache)
{
}
/**
* met a jour l'etat d'avancement d'une tache
*/
 
function setAvancement($avanc)
{
$this->avancement_tache=$avanc;
}
/**
*recupere l'identifiant de la prochaine categorie
*de la base de donnees
*/
function nextId()
{
$requete = 'SELECT MAX('.GEST_CHAMPS_ID_TACHE.') AS maxi FROM '.GEST_TACHES;
$resultat = $GLOBALS['db']->query($requete);
if (DB::isError($resultat) || $resultat->numRows() > 1) {
return false;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
return $ligne->maxi + 1;
}
}
?>
Property changes:
Added: svn:executable
/trunk/classes_metier/gtt_utilisateur.class.php
New file
0,0 → 1,783
<?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 |
 
include_once "gtt_travail.class.php";
include_once "gtt_absence.class.php";
include_once "gtt_preference.class.php";
include_once CHEMIN_CLASSES."BOG_debogage.inc.php";
/**
* class Utilisateur : g?re les fonction utilisateurs
* classe m?tier
*
*/
 
class Utilisateur
{
 
 
var $_id_utilisateur=NULL;
var $_nom=NULL;
var $_prenom=NULL;
var $_password=NULL;
var $_email=NULL;
var $_telephone=NULL;
var $_adresse=NULL;
 
var $_code_postal=NULL;
var $_ville=NULL;
var $_quota_heures_sup=NULL;
var $_conges_payes=NULL;
var $temps_de_travail=NULL;
var $_admin=NULL;
var $_admin2=NULL;
/**
*indique si l'utilisateur figure dans les recapitulatifs ou non
*/
var $_Notes=NULL;
var $_statut=NULL;
/**
*aggregations
*/
var $_liste_preferences =array();//contient liste de preferences
var $_liste_travaux =array();//contient la liste des travaux
var $_liste_depenses=array();
var $_liste_absences=array();
/*
*cree un nouvel utilisateur a artir d'un identifiant
*/
function Utilisateur($id)
{
$this->_id_utilisateur = $id;
}
/**construit un utilisateur a partir d'un tableau
*remplit tous les champs except l'identifiant qui est deja attribué
*/
function ConstruireUtilisateur($tableau)
{
$this->_nom =$tableau[GEST_CHAMPS_NOM];
$this->_prenom =$tableau[GEST_CHAMPS_PRENOM];
$this->_password =$tableau[GEST_CHAMPS_PASSWORD];
$this->_email =$tableau[GEST_CHAMPS_EMAIL];
$this->_telephone = $tableau[GEST_CHAMPS_TELEPHONE];
$this->_adresse = $tableau[GEST_CHAMPS_ADRESSE];
$this->_code_postal = $tableau[GEST_CHAMPS_CODE_POSTAL];
$this->_ville =$tableau[GEST_CHAMPS_VILLE];
$this->_quota_heures_sup = $tableau[GEST_CHAMPS_QUOTA_HEURES_SUPP];
$this->_conges_payes = $tableau[GEST_CHAMPS_CONGES_PAYES];
$this->_temps_de_travail = $tableau[GEST_CHAMPS_TEMPS_DE_TRAVAIL];
$this->_admin =$tableau[GEST_CHAMPS_ADMIN];
$this->_admin2 =$tableau[GEST_CHAMPS_ADMIN2];
$this->_statut =$tableau[GEST_CHAMPS_STATUT];
if ($tableau[GEST_CHAMPS_NOTES]==NULL)
{
$this->_Notes=NULL;
}else{
$this->_Notes = $tableau[GEST_CHAMPS_NOTES];
}
}
 
/**
* permet de recuperer un utilisateur de la base de donnees
* renvoie -1 si erreur
*renvoie un utilisateur sinon
*/
 
function recupererUtilisateur($id)
{
$requete ="SELECT * FROM ".GEST_UTILISATEUR.
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $id";
$ligne = $GLOBALS['db']->query($requete);
$resultat =$ligne->fetchRow(DB_FETCHMODE_ASSOC);
 
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$nb_ligne_selectionne = $ligne->numRows();
if($nb_ligne_selectionne==1)
{
//construction d'un nouvel utilisateur
$user = new Utilisateur ($resultat[GEST_CHAMPS_ID_UTILISATEUR]) ;
$user->ConstruireUtilisateur($resultat);
return $user;
}
else {
return -1;
}
 
}
 
/**on travaille sur les instances car on suppose que les donnees utilisateurs
*ne sont pas en constante evolution dans la base
*on limite ainsi les acces a la base de donnees
*/
 
 
 
/**recuperer le nom
*
*/
function getNom( )
{
return $this->_nom;
}
 
 
/**
*
*/
function getPrenom( )
{
return $this->_prenom;
}
function getVille()
{
return $this->_ville;
}
/**
*
*/
function getQuota( )
{
return $this->_quota_heures_sup;
}
 
 
function getConges( )
{
return $this->_conges_payes;
}
/**
*recuperer le statut
*/
function getStatut( )
{
return $this->_statut;
}
 
/**
*recupere l'adresse
*/
function getAdresse()
{
return $this->_adresse;
}
/**
*modifier les attributs de la classe
*/
function setNom($nom)
{
$this->_nom= $nom;
}
function setEmail($mail)
{
$this->_email= $mail;
}
function setTelephone ($tel)
{
$this->_telephone= $tel;
}
function setAdresse($adr)
{
$this->_adresse = $adr;
}
function setCodePostal($code)
{
$this->_code_postal = $code;
}
function setVille($ville)
{
$this->_ville = $ville;
}
function setQuota($quota)
{
$this->_quota_heures_sup = $quota;
}
function setConges($nb)
{
$this->_conges_payes = $nb;
}
function setAdmin($nb)
{
$this->admin = $nb;
}
function setAdmin2($nb)
{
$this->admin2 = $nb;
}
function setStatut($st)
{
$this->statut = $st;
}
 
/**insertion de notes sur l'utilisateur
*/
function setNotes($notes)
{
$this->Notes = $notes;
}
/**augmenter le nombre d'heure sup
*un acces est fait a la bse de donnees pour enregistrer les changements en temps reel
*/
function augmenterQuotaHeuresSup($nb)
{
$requete = "UPDATE ".GEST_UTILISATEUR.
"SET ".GEST_CHAMPS_QUOTA_HEURES_SUPP." = ".GEST_CHAMPS_QUOTA_HEURES_SUPP."+ $nb
WHERE ".GEST_CHAMPS_ID_UTILISATEUR."= $this->_id_utilisateur";
$resultat = $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$this->_quota_heures_sup = $this->_quota_heures_sup +$nb;
}
/**diminuer le nb d'heures sup*/
function diminuerQuotaHeuresSup($nb)
{
$requete = "UPDATE ".GEST_UTILISATEUR."
SET ".GEST_CHAMPS_QUOTA_HEURES_SUPP." = ".GEST_CHAMPS_QUOTA_HEURES_SUPP."- $nb
WHERE ".GEST_CHAMPS_ID_UTILISATEUR."= $this->_id_utilisateur";
$resultat = $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$this->_quota_heures_sup = $this->_quota_heures_sup -$nb;
/*un quota heure supp negatif implique qu'il y a des heures a rattraper*/
}
/*augmenter le nombre de jours de conges */
function augmenterConges($nb)
{
$requete = "UPDATE ".GEST_UTILISATEUR." SET "
.GEST_CHAMPS_CONGES_PAYES." = ".GEST_CHAMPS_CONGES_PAYES." + $nb
WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $this->_id_utilisateur";
 
$resultat = $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$this->_conges_payes = $this->_conges_payes +$nb;
}
/*diminuer le nombre de jour de conges */
function diminuerConges($nb)
{
$requete = "UPDATE ".GEST_UTILISATEUR." SET "
.GEST_CHAMPS_CONGES_PAYES." = ".GEST_CHAMPS_CONGES_PAYES."- $nb
WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $this->_id_utilisateur
AND ".GEST_CHAMPS_CONGES_PAYES.">= $nb";
$resultat = $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$nb_ligne_modifie = $GLOBALS['db']->affectedRows();
/**si le update a bien eu lieu on renvoie 1
*sinon on renvoie -1 qui est synonyme d'erreur
*/
if($nb_ligne_modifie==1)
{
$this->_conges_payes = $this->_conges_payes -$nb;
return 1;
}
else return -1;
}
/**
* permet d'enregistrer un utilisateur dans une base de donnees a partir du nom de la
* base de donnes, du nom de la table et des attributs à ajouter
*
*/
function enregistrerNewUtilisateur()
{
//verification si identifiant deja attribue
//ou si email deja utilise
$b=&Utilisateur::nextId();
$this->_id_utilisateur =$b;
$requete= "INSERT INTO ".GEST_UTILISATEUR.
" SET ".GEST_CHAMPS_ID_UTILISATEUR." =$this->_id_utilisateur ,"
.GEST_CHAMPS_NOM." =\"$this->_nom\" ,"
.GEST_CHAMPS_PRENOM." =\"$this->_prenom\" ,"
.GEST_CHAMPS_PASSWORD." =MD5(\"$this->_password\") ,"
.GEST_CHAMPS_EMAIL." =\"$this->_email\" ,"
.GEST_CHAMPS_TELEPHONE." =$this->_telephone ,"
.GEST_CHAMPS_ADRESSE." =\"$this->_adresse\" ,"
.GEST_CHAMPS_CODE_POSTAL." =$this->_code_postal ,"
.GEST_CHAMPS_VILLE." =\"$this->_ville\" ,"
.GEST_CHAMPS_QUOTA_HEURES_SUPP." =$this->_quota_heures_sup ,"
.GEST_CHAMPS_CONGES_PAYES." =$this->_conges_payes ,"
.GEST_CHAMPS_TEMPS_DE_TRAVAIL." =$this->_temps_de_travail ,"
.GEST_CHAMPS_ADMIN." =$this->_admin ,"
.GEST_CHAMPS_ADMIN2." =$this->_admin2 ,"
.GEST_CHAMPS_STATUT." =$this->_statut ,"
.GEST_CHAMPS_NOTES." =\"$this->_Notes\" ";
$resultat =$GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$j=$GLOBALS['db']->affectedRows();
if ($j==1)
{
return 1;
}else return -1;
}
 
/*enregistrer la valeur d'un champs donne dans la table*/
function enregistrerChamps($field,$valeur)
{
$requete ="INSERT INTO ".GEST_UTILISATEUR.
" ($field) VALUES ($valeur)";
$resultat = $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
}
 
/**mettre a jour la table utilisateur pour prendre en compte les modifications
*sur les donnees utilisateur
*renvoie 1 si utilisateur mis a jour et -1 sinon
*/
function mettreAJourUtilisateur()
{
$table = GEST_UTILISATEUR;
$requete= "UPDATE $table SET "
.GEST_CHAMPS_NOM." =\"$this->_nom\","
.GEST_CHAMPS_PRENOM." = \"$this->_prenom\","
//.GEST_CHAMPS_PASSWORD." =MD5(\"$this->_password\") ,"
.GEST_CHAMPS_EMAIL." = \"$this->_email\","
.GEST_CHAMPS_TELEPHONE." =\"$this->_telephone\","
.GEST_CHAMPS_ADRESSE. "=\"$this->_adresse\","
.GEST_CHAMPS_CODE_POSTAL." = $this->_code_postal,"
.GEST_CHAMPS_VILLE." = \"$this->_ville\","
.GEST_CHAMPS_QUOTA_HEURES_SUPP." = $this->_quota_heures_sup,"
.GEST_CHAMPS_CONGES_PAYES." = $this->_conges_payes,"
.GEST_CHAMPS_TEMPS_DE_TRAVAIL." = $this->_temps_de_travail,"
.GEST_CHAMPS_ADMIN." = $this->_admin,"
.GEST_CHAMPS_ADMIN2." = $this->_admin2,"
.GEST_CHAMPS_NOTES." =\"$this->_Notes\","
.GEST_CHAMPS_STATUT." = $this->_statut"
." WHERE ".GEST_CHAMPS_ID_UTILISATEUR. " = $this->_id_utilisateur ";
$resultat= $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$nb_ligne_modifie = $GLOBALS['db']->affectedRows();
if ($nb_ligne_modifie==1)
{
return 1;
}
else return -1;
}
/**
*mettre a jour le champ password
*/
function mettreAJourPassword($p)
{
$table = GEST_UTILISATEUR;
$requete= "UPDATE $table SET "
.GEST_CHAMPS_PASSWORD." =MD5(\"$p\")"
." WHERE ".GEST_CHAMPS_ID_UTILISATEUR. " = $this->_id_utilisateur ";
$resultat= $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$nb_ligne_modifie = $GLOBALS['db']->affectedRows();
if ($nb_ligne_modifie==1)
{
return 1;
}
else return -1;
}
/**supprimer un utilisateur
*renvoie 1 si suppression effectuée et -1 sinon
*/
function supprimerUtilisateur($id)
{
$requete = "DELETE FROM ".GEST_UTILISATEUR.
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $id";
$resultat =$GLOBALS['db'] ->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
/* verification avant destruction de l'instance de l'objet */
$nb_ligne_modifie = $GLOBALS['db']-> affectedRows();
if ($nb_ligne_modifie==1)
{
return 1;
}
else return -1;
}
 
/**
*ajouter preferences
*prend en parametre une liste de projets
*/
function ajouterPreference($tableau)
{
//supression des preferences existantes
//creation d'un controleur
$cont=new Preference(0,0);
$ligne=$cont->supprimerPreferences($this->_id_utilisateur);
/*parcourt de la liste de projets
*pour creer des preferences
*et les enregistrer
*/
if ($ligne>=0)
{
foreach($tableau as $id)
{
$pref=new Preference($this->_id_utilisateur,$id);
$res= $pref->enregistrerPreference();
if ($res!=1){
exit;
}
}
}
}
/**
*recuperer les preferences d'un utilisateur
*/
function recupererPreferencesUtilisateur()
{
$controleur=new Preference($this->_id_utilisateur,0);
$liste_pref=$controleur->recupererTableauPreferences();
return $liste_pref;
}
/**
*modifie la liste de preferences
*/
function setPreferences($tableau)
{
$this->_liste_preferences=$tableau;
}
/**
*ajoute une absence a la liste d'absence
*de l'utilisateur
*@param abs=tableau de donnees
*/
function ajouterAbsenceUtilisateur($abs)
{
$controleur=new Absence(0,0,time());
$controleur->construireAbsence($abs);
//ajout a la liste
array_push($this->_liste_absences,$controleur);
//enregistrement de l'absence
$res=$controleur->enregistrerNewAbsence();
if ($res!=1)
{
echo "erreur ajout absence ";
}
}
/**
*ajouter un nouveau travail dans la liste
*de travaux
*/
function ajouterTravailUtilisateur($trav)
{
$controleur=new Travail(0,0);
$controleur->construireTravail($trav);
array_push($this->_liste_travaux,controleur);
$res=$controleur->enregistrerNewTravail();
if($res!=1)
{
"echo erreur ajout travail";
}
}
/*
*indique si la personn est administrateur
*renvoie 1 si administrateur
*0 sinon */
function isAdmin()
{
return $this->_admin;
}
/*
*
recupere code _postal
*/
function getCode()
{
return $this->_code_postal;
}
/**
*telephone
*/
function getTelephone()
{
return $this->_telephone;
}
/**
*temsp de travail
*/
function getTempsTravail()
{
return $this->_temps_de_travail;
}
/*
*fonction recuperant le mot de passe
*/
function getPassword()
{
return $this->_password;
}
/**
*recupere l'identifiant de la base de donnees
*/
function nextId()
{
$requete = 'SELECT MAX('.GEST_CHAMPS_ID_UTILISATEUR.') AS maxi FROM '.GEST_UTILISATEUR;
$resultat = $GLOBALS['db']->query($requete);
if (DB::isError($resultat) || $resultat->numRows() > 1) {
return false;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
return $ligne->maxi + 1;
}
/*
**indqiue si la personne ne doit pas figurer dans les recapitulatifs
*renvoie 1 si ne figuer pas
*0 sinon
*/
function isAdmin2()
{
return $this->_admin2;
}
/**
*fonction recuperant le mail
*/
function getEmail()
{
return $this->_email;
}
/**
*fonction permettant de chercher un utilisateur
* a partir de son email
*/
function recupIDUtilisateurMail($mail)
{
$requete="SELECT ".GEST_CHAMPS_ID_UTILISATEUR.
" FROM ".GEST_UTILISATEUR.
" WHERE ".GEST_CHAMPS_EMAIL." ='$mail' ";
$resultat =$GLOBALS['db']->query($requete) ;
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$i=$resultat->fetchRow(DB_FETCHMODE_ORDERED);
return $i[0];
}
/*afficher un utilisateur */
function afficherUtilisateur()
{
//if ($this->_id_utilisateur !=null){
echo " utilisateur : ";
echo "$this->_id_utilisateur<BR> \n" ;
echo "nom : ";
echo "$this->_nom \n";
echo "prenom :";
echo "$this->_prenom <BR>\n";
echo "mot de passe : ";
echo "$this->_password \n";
echo "email :";
echo "$this->_email<BR> \n";
echo "tel";
echo "$this->_telephone <BR>\n";
echo "adre : ";
echo "$this->_adresse \n";
echo "code_postal";
echo "$this->_code_postal \n";
echo "ville :";
echo "$this->_ville<BR> \n";
echo "nb heure supp :";
echo "$this->_quota_heures_sup <BR>\n";
echo "nb jour de conges restants : ";
echo "$this->_conges_payes<BR> \n";
echo "nb d'heure de travail par jour : ";
echo "$this->_temps_de_travail <BR>\n";
echo "admin : ";
echo "$this->_admin<BR> \n ";
echo "admin2 : ";
echo "$this->_admin2 <BR>\n";
echo "statut : ";
echo "$this->_statut<BR> \n";
echo "notes :";
echo "$this->_Notes<BR> \n";
}
//}
}
?>
Property changes:
Added: svn:executable
/trunk/classes_metier/gtt_motif.class.php
New file
0,0 → 1,219
<?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 |
 
 
/*
*gere la table contenant les motifs d'absence
*/
 
class Motif
{
 
 
/**Attributes: */
 
var $_id_motif =null;
var $_libelle_motif=null;
var $_type_rtt=null;
/**le type de rtt est ègale à si la condition d'absence occasionne
*une réduction du temps de travail
*et est égale à 0 sinon
*/
function Motif($id)
{
$this->_id_motif= $id;
}
/* Construit un motif à partir des paramètres passés dans le tableau*/
function ConstruireMotif($tableau)
{
$this->_id_motif =$tableau[GEST_CHAMPS_ID_MOTIF];
$this->_libelle_motif = $tableau[GEST_CHAMPS_LIBELLE_MOTIF];
$this->_type_rtt = $tableau[GEST_CHAMPS_TYPE_RTT];
}
 
/**
* enregistre les motifs d'absence
*renvoi 1 si enregistrement effectué
*renvoi message d'erreur sinon
*/
function enregistrerMotif()
{
$table = GEST_MOTIF_ABSENCE;
$i=$this->nextId();
$this->_id_motif=$i;
$champs = array (
GEST_CHAMPS_ID_MOTIF => $this->_id_motif,
GEST_CHAMPS_LIBELLE_MOTIF => "$this->_libelle_motif",
GEST_CHAMPS_TYPE_RTT=> $this->_type_rtt
);
$resultat = $GLOBALS['db']->autoExecute($table, $champs, DB_AUTOQUERY_INSERT);
if (DB::isError($resultat)) {
die($resultat->getMessage());
}
$j=$GLOBALS['db']->affectedRows();
if($j==1)
{
return 1;
}else return 0;
}
 
 
/**
* recupere tous les motifs de la bse de donnees
*et les renvoie sous forme d'un tableau avec 2 champs
*: champs identifiant et champs libelle
*/
function recupererTableauMotif()
{
$tableau = array();
$i =0;
$requete="SELECT ".GEST_CHAMPS_ID_MOTIF." , ".GEST_CHAMPS_LIBELLE_MOTIF.",".GEST_CHAMPS_TYPE_RTT
." FROM ".GEST_MOTIF_ABSENCE."";
$resultat = $GLOBALS['db']->query($requete);
while ($ligne= $resultat->fetchRow(DB_FETCHMODE_ASSOC))
{
$case = array(GEST_CHAMPS_ID_MOTIF => $ligne[GEST_CHAMPS_ID_MOTIF],
GEST_CHAMPS_LIBELLE_MOTIF =>$ligne[GEST_CHAMPS_LIBELLE_MOTIF],
GEST_CHAMPS_TYPE_RTT =>$ligne[GEST_CHAMPS_TYPE_RTT]);
$tableau[$i]=$case;
$i=$i+1;
}
return $tableau;
}
/**
* supprime un motif de la bse de donnees et detruit l'instance
*renvoie 1 si motif supprimé
*renvoie 0 si motif inexistant
*-1 si erreur
*/
function supprimerMotif($id)
{
$requete = "DELETE FROM ".GEST_MOTIF_ABSENCE.
" WHERE ".GEST_CHAMPS_ID_MOTIF."= $id";
$resultat = $GLOBALS['db'] ->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$int=$GLOBALS['db']->affectedRows();
if($int==1)
{
return 1;
}elseif($int==0){
return 0;
}else return-1;
}
/**
fonction retournant l'idntifiant suivant de la base de donnees
*/
function nextId()
{
$requete = 'SELECT MAX('.GEST_CHAMPS_ID_MOTIF.') AS maxi FROM '.GEST_MOTIF_ABSENCE;
$resultat = $GLOBALS['db']->query($requete);
if (DB::isError($resultat) || $resultat->numRows() > 1) {
return false;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
return $ligne->maxi + 1;
}
/**
*modifie le type de rtt
*/
function setRtt($typeRtt)
{
$requete = " UPDATE ".GEST_MOTIF_ABSENCE." SET "
.GEST_CHAMPS_TYPE_RTT." =$typeRtt WHERE ".GEST_CHAMPS_ID_MOTIF." = $this->_id_motif";
$resultat = $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$this->_type_rtt = $typeRtt;
}
/**
*fonction verifiant si le motif d'absence est en cours d'utilisation
*la suppression sera interdite dans ce cas afin de maintenir la cohérence de
*de la base de donnees
*renvoie 1 si le motif est utilisé
*-1 sinon
*/
function motifUtilise($id)
{
$requete="SELECT ".GEST_CHAMPS_ID_UTILISATEUR.
" FROM ".GEST_ABSENCE.
" WHERE ". GEST_CHAMPS_ID_MOTIF." = $id";
$ligne= $GLOBALS['db']->query($requete);
(DB::isError($ligne)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $ligne->getMessage(), $requete)) : '' ;
$j= $ligne->numRows();
if ($j==0){
return -1;
}else {
return 1;
}
}
 
/*afficher un motif */
 
function afficherMotif()
{
echo "Motif : \n";
echo "id :";
echo "$this->_id_motif <BR>";
echo "libelle :";
echo "$this->_libelle_motif <BR>";
echo "type rtt :";
echo "$this->_type_rtt <BR>";
}
}
?>
Property changes:
Added: svn:executable
/trunk/classes_metier/gtt_preference.class.php
New file
0,0 → 1,156
<?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 |
 
 
class Preference
{
var $_utilisateur=null;
var $_projet =null;
/**
*constructeur
*/
function Preference($u,$p)
{
$this->_utilisateur=$u;
$this->_projet=$p;
}
/**
*enregistrer une preference dans la base de donnees
*@return 1 si ok
*@return 0 si aucun enregistrement effectue
*@return -1 si erreur
*/
function enregistrerPreference()
{
$table=GEST_PREFERENCES;
$champs =array(
GEST_CHAMPS_ID_UTILISATEUR =>$this->_utilisateur,
GEST_CHAMPS_ID_PROJET =>$this->_projet);
$resultat = $GLOBALS['db']->autoExecute($table,$champs,DB_AUTOQUERY_INSERT);
if (DB::isError($resultat)) {
die($resultat->getMessage());
}
$j=$GLOBALS['db']->affectedRows();
if ($j==1)
{
return 1;
}elseif($j==0){
return 0;
}else{
return -1;
}
}
/**
*recuperer la liste de preferences d'un utilisateur
*@param identifiant utilisateur
*/
function recupererTableauPreferences()
{
$table=array();
$requete="SELECT P.".GEST_CHAMPS_ID_PROJET.", P.".GEST_CHAMPS_NOM_PROJET." ,C.".GEST_CHAMPS_ID_CATEGORIE.",C.".GEST_CHAMPS_LIBELLE_CATEGORIE.
" FROM ".GEST_PREFERENCES." F, ".GEST_PROJET." P,".GEST_CATEGORIE." C".
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR. " = $this->_utilisateur".
" AND F.".GEST_CHAMPS_ID_PROJET." = P.".GEST_CHAMPS_ID_PROJET.
" AND P.".GEST_CHAMPS_ID_CATEGORIE." = C.".GEST_CHAMPS_ID_CATEGORIE.
" ORDER BY ".GEST_CHAMPS_LIBELLE_CATEGORIE;
$resultat = $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
while($ligne=$resultat->fetchRow(DB_FETCHMODE_ASSOC))
{
$case=array('id_proj'=>$ligne[GEST_CHAMPS_ID_PROJET],'nom_proj'=>$ligne[GEST_CHAMPS_NOM_PROJET],'id_cat'=>$ligne[GEST_CHAMPS_ID_CATEGORIE],'libelle_cat'=>$ligne[GEST_CHAMPS_LIBELLE_CATEGORIE]);
array_push($table,$case);
}
return $table;
}
/**
*supprimer liste de preferences
*pour un utilisateur donne
*@param identifiant d'un utilisateur
*/
function supprimerPreferences($id)
{
$requete="DELETE FROM ".GEST_PREFERENCES.
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR. " =$id ";
$resultat = $GLOBALS['db']->query($requete);
$j=$GLOBALS['db']->affectedRows();
return $j;
}
/**
*fonction renvoyant vrai si un projet est dans la liste de preference d'un utilisateur
*$id : identifiant du projet a chercher
@return true : si existe
@return false si n'existe pas
*/
function isInPreferences($id)
{
$tab=$this->recupererTableauPreferences();
$res=false;
for ($r=0; $r<count($tab);$r++)
{
$t=$tab[$r];
if ($t['id_proj']==$id)
{
$res=true;
}
}
return $res;
}
/**
*afficher preferences
*/
function afficherPreference()
{
echo "<br /> preferences <br />";
$u= array($this->_utilisateur,$this->_projet);
foreach ($u as $p)
{
echo "$p , ";
}
echo "<br /> ";
}
}
?>
Property changes:
Added: svn:executable
/trunk/classes_metier/gtt_absence.class.php
New file
0,0 → 1,604
<?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 |
 
include_once CHEMIN_CLASSES."BOG_debogage.inc.php";
include_once "DB.php";
/**
* class Absence
*
*/
 
class Absence
{
/**Attributes: */
var $_date_debut_absence=null;
var $_date_fin_absence=null;
var $_date_envoi_lettre=null;
var $_utilisateur=null;//identifiant d'un utilisateur
var $_motif=null;//identifiant d'un motif d'absence
/*
*constructeur
*@param u : identifiant de l'utilisateur
*@param m: motif
*@param dd: date de debut d'absence
*/
function Absence($u, $m, $dd)
{
$this->_utilisateur=$u;
$this->_motif=$m;
$this->_date_debut_absence =$dd;
}
/*
*construit une absence a partir d'un tableau
*/
function construireAbsence($tableau)
{
$this->_date_debut_absence =$tableau[GEST_CHAMPS_DATE_DEBUT_ABSENCE];
$this->_date_fin_absence =$tableau[GEST_CHAMPS_DATE_FIN_ABSENCE];
$this->_date_envoi_lettre =$tableau[GEST_CHAMPS_DATE_ENVOI_LETTRE];
$this->_utilisateur =$tableau[GEST_CHAMPS_ID_UTILISATEUR];
$this->_motif =$tableau[GEST_CHAMPS_ID_MOTIF];
}
/*
*enregistre une absence dansla base de donnees
*renvoie 1 si ok, 0 si aucun enregistrement effectue, -1 sinon
*/
function enregistrerNewAbsence()
{
$table = GEST_ABSENCE;
$champs =array(GEST_CHAMPS_DATE_DEBUT_ABSENCE => "$this->_date_debut_absence",
GEST_CHAMPS_DATE_FIN_ABSENCE => "$this->_date_fin_absence",
GEST_CHAMPS_DATE_ENVOI_LETTRE=> "$this->_date_envoi_lettre",
GEST_CHAMPS_ID_UTILISATEUR => $this->_utilisateur,
GEST_CHAMPS_ID_MOTIF => $this->_motif);
$resultat =$GLOBALS['db']->autoExecute($table,$champs,DB_AUTOQUERY_INSERT);
if (DB::isError($resultat)) {
die($resultat->getMessage());
}
$j=$GLOBALS['db']->affectedRows();
if ($j==1)
{
return 1;
}elseif($j==0){
return 0;
}else{
return -1;
}
}
/**
*fonction qui met a jour une absence
*dasn la base de donnees
*@return 1 si modification effectuee
*@return -1 si erreur
*/
function mettreAJourAbsence()
{
$requete= "UPDATE ".GEST_ABSENCE.
" SET ".GEST_CHAMPS_ID_MOTIF." = $this->_motif ,".
GEST_CHAMPS_DATE_DEBUT_ABSENCE." = \"$this->_date_debut_absence\" ,".
GEST_CHAMPS_DATE_FIN_ABSENCE." =\"$this->_date_fin_absence\" ,".
GEST_CHAMPS_DATE_ENVOI_LETTRE."= \" $this->_date_envoi_lettre\" ".
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $this->_utilisateur ".
" AND ".GEST_CHAMPS_ID_MOTIF." = $this->_motif ".
" AND ".GEST_CHAMPS_DATE_DEBUT_ABSENCE."= \"$this->_date_debut_absence\" ";
$resultat=$GLOBALS['db']->query($requete);
$j=$GLOBALS['db']->affectedRows();
if ($j==1)
{
return 1;
}else return -1;
}
/**
*enregistre la date d'envoie de la lettre
*met a jour le champs date d'envoi de l'instance
*/
function enregistrerDateEnvoi($d)
{
$this->_date_envoi_lettre=$d;
$requete="UPDATE ".GEST_ABSENCE.
" SET ".GEST_CHAMPS_DATE_ENVOI_LETTRE." ='$d '"
." WHERE ".GEST_CHAMPS_ID_UTILISATEUR." =$this->_utilisateur AND "
.GEST_CHAMPS_ID_MOTIF." = $this->_motif AND "
.GEST_CHAMPS_DATE_DEBUT_ABSENCE." = '$this->_date_debut_absence' ";
$resultat=$GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$j=$GLOBALS['db']->affectedRows();
switch ($j)
{
case 1: return 1;
case 0: return 0;
default: return -1;
}
}
/**
*fonction recuperant lalist des absences de la semaine pour un utilisateur
*@param :$user identifiant de l'utilisateur
*@param : $date deb de la semaine
*@param :$date fin de la semaine
*les dates sont sosu le format mysql Y-m-d
*/
function recupAbsence($user,$dateDeb,$dateFin)
{
$requete="SELECT ".GEST_CHAMPS_ID_MOTIF." ,".GEST_CHAMPS_DATE_DEBUT_ABSENCE." ,".
GEST_CHAMPS_DATE_FIN_ABSENCE.
" FROM ".GEST_ABSENCE.
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $user ".
" AND ((".GEST_CHAMPS_DATE_DEBUT_ABSENCE." <= \"$dateDeb\" ".
" AND ".GEST_CHAMPS_DATE_FIN_ABSENCE." >= \"$dateDeb\" )".
" OR (".GEST_CHAMPS_DATE_DEBUT_ABSENCE."> \"$dateDeb\" ".
" AND ".GEST_CHAMPS_DATE_DEBUT_ABSENCE." <= \"$dateFin\") )".
" ORDER BY ".GEST_CHAMPS_DATE_DEBUT_ABSENCE."";
$resultat=$GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$j=$resultat->numRows();
$tab=array();
if ($j>0)
{
while($ligne=$resultat->fetchRow(DB_FETCHMODE_ASSOC))
{
$case=array(GEST_CHAMPS_ID_MOTIF => $ligne[GEST_CHAMPS_ID_MOTIF],
GEST_CHAMPS_DATE_DEBUT_ABSENCE => $ligne[GEST_CHAMPS_DATE_DEBUT_ABSENCE],
GEST_CHAMPS_DATE_FIN_ABSENCE => $ligne[GEST_CHAMPS_DATE_FIN_ABSENCE]);
array_push($tab,$case);
}
}
return $tab;
}
/**
*fonction qui renvoie la liste des absences qui chevauchent
*la periode d'absence
*/
function existeAbsence()
{
$requete="SELECT * ".
" FROM ".GEST_ABSENCE.
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $this->_utilisateur ".
" AND ((".GEST_CHAMPS_DATE_DEBUT_ABSENCE." <= \"$this->_date_debut_absence\" ".
" AND ".GEST_CHAMPS_DATE_FIN_ABSENCE." >= \"$this->_date_debut_absence\" )".
" OR (".GEST_CHAMPS_DATE_DEBUT_ABSENCE."> \"$this->_date_debut_absence\" ".
" AND ".GEST_CHAMPS_DATE_DEBUT_ABSENCE." < \"$this->_date_fin_absence\" ))".
" ORDER BY ".GEST_CHAMPS_DATE_DEBUT_ABSENCE."";
$resultat=$GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$j=$resultat->numRows();
$tab=array();
if ($j>0)
{
while($ligne=$resultat->fetchRow(DB_FETCHMODE_ASSOC))
{
$case=array(GEST_CHAMPS_ID_MOTIF => $ligne[GEST_CHAMPS_ID_MOTIF],
GEST_CHAMPS_DATE_DEBUT_ABSENCE => $ligne[GEST_CHAMPS_DATE_DEBUT_ABSENCE],
GEST_CHAMPS_DATE_FIN_ABSENCE => $ligne[GEST_CHAMPS_DATE_FIN_ABSENCE],
GEST_CHAMPS_ID_UTILISATEUR =>$ligne[GEST_CHAMPS_ID_UTILISATEUR],
GEST_CHAMPS_DATE_ENVOI_LETTRE => $ligne[GEST_CHAMPS_DATE_ENVOI_LETTRE]);
array_push($tab,$case);
}
}
return $tab;
}
/**
*fonction qui erifie s'il existe des absences qui chevauchent
*et si au moins une de ces absences a etet validee
*@return true si au moins uen absence a ete validee
*@return false si on peut donc modifier
*/
function existeAbsenceValidee()
{
$tableau=$this->existeAbsence();
$validee=false;
if (count($tableau)>0)
{
for($p=0;$p<count($tableau);$p++)
{
$h=$tableau[$p];
//test si au moins une lettre a ete envoyee
if ($h[GEST_CHAMPS_DATE_ENVOI_LETTRE]!='0000-00-00')
{
$validee=true;
}
}
}
return $validee;
}
/**
* renvoie un booleen true si la lettre a ete envoyee et faux sinon
*/
function isEnvoi( )
{
$requete="SELECT ".GEST_CHAMPS_DATE_ENVOI_LETTRE.
" FROM ".GEST_ABSENCE.
" WHERE ".GEST_CHAMPS_ID_ABSENCE. " =$this->_id_absence";
$resultat=$GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$j=$resultat->numRows();
if ($j==1)
{
return true;
}else {
return false;
}
}
/**
*fonction renvoyany l'identifiant d'un utilisateur
*/
function getIdUserAbsence()
{
return $this->_utilisateur;
}
/**
*fonction renvoyant la date de debut d'absence
*/
function getDateDebAbsence()
{
return $this->_date_debut_absence;
}
/**
*fonction renvoyant la date de fin d'absence
*/
function getDateFinAbsence()
{
return $this->_date_fin_absence;
}
/**
*fonction renvoyant le motif d'absence
*/
function getIdMotif()
{
return $this->_motif;
}
/**
*fonction qui renvoit la duree d'une absence
*/
function getDureeAbsence()
{
if(($this->_date_fin_absence=='0000-00-00') or($this->_date_debut_absence==$this->_date_fin_absence))
{
$duree=1;
}else{
$deb=explode('-',$this->getDateDebAbsence());
$fin=explode('-',$this->getDateFinAbsence());
$dateDeb=mktime(0,0,0,$deb[1],$deb[2],$deb[0]);
$dateFin=mktime(0,0,0,$fin[1],$fin[2],$fin[0]);
$duree=(intval((($dateFin-$dateDeb)/3600)/24)+1);
}
return $duree;
}
/**
*fonction renvoyant la date d'envoi de la lettre d'absence
*/
function getDateEnvoi()
{
return $this->_date_envoi_lettre;
}
/**
*fonction qui recupere la liste d'absence contigues
*a une absence donnee t qui ont le meme motif
*pour un utilisateur donne
*renvoie l'objet absence precedent
*renvoie -1 s'il n'existe pas
*/
function getAbsencesPrec()
{
//recuperation de l'absence juste avant
//recuperation par maximum date de debut
//recuperation des absences non encore validees
$requete="SELECT MAX(".GEST_CHAMPS_DATE_FIN_ABSENCE.") ".
" FROM ".GEST_ABSENCE.
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $this->_utilisateur ".
" AND ".GEST_CHAMPS_ID_MOTIF." = $this->_motif ".
" AND ".GEST_CHAMPS_DATE_ENVOI_LETTRE."= \"0000-00-00\"".
" AND ".GEST_CHAMPS_DATE_FIN_ABSENCE. "< \"$this->_date_debut_absence\"".
" AND ".GEST_CHAMPS_DATE_DEBUT_ABSENCE. " <\"$this->_date_debut_absence\"";
$resultat=$GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$ligne=$resultat->fetchRow(DB_FETCHMODE_ORDERED);
if($ligne[0]!=null)
{
//recuperation de l'objet absence precedente
$absence=&Absence::recupererAbsenceDateFin($this->_utilisateur,$this->_motif,$ligne[0]);
return $absence;
}else return -1;
}
/**
*fonnction qui recuprer l'absence du meme motif situe juste apres
*cette absence
*renvoi l'absence
*renvoie -1 si vide ou erreur
*/
function getAbsencesSuiv()
{
$requete= " SELECT MIN(".GEST_CHAMPS_DATE_DEBUT_ABSENCE.")".
" FROM ".GEST_ABSENCE.
" WHERE ".GEST_CHAMPS_ID_MOTIF." = $this->_motif ".
" AND ".GEST_CHAMPS_ID_UTILISATEUR." = $this->_utilisateur ".
" AND ".GEST_CHAMPS_DATE_DEBUT_ABSENCE." > \"$this->_date_debut_absence\" ".
" AND ".GEST_CHAMPS_DATE_ENVOI_LETTRE. " = \"0000-00-00\"";
$resultat=$GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$ligne =$resultat->fetchRow(DB_FETCHMODE_ORDERED);
if($ligne[0]!=null)
{
//recuperation de l'objet absence precedente
$absence=&Absence::recupererAbsenceDateFin($this->_utilisateur,$this->_motif,$ligne[0]);
return $absence;
} else return -1;
}
/**
*fonction recuperant une absence a partir de
*@param id : identifiant utiliateur
*@param : motif
*@param : datedebut de l'absence
*@return absence
*-1 si erreur ou rien
*/
function recupererAbsenceDateDeb($id,$motif,$dateDeb)
{
$requete=" SELECT * FROM ".GEST_ABSENCE.
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." =$id ".
" AND ".GEST_CHAMPS_ID_MOTIF." = $motif ".
" AND ".GEST_CHAMPS_DATE_DEBUT." =\"$dateDeb\"";
$resultat=$GLOBALS['db']->query($requete);
$ligne=$resultat->fetchRow(DB_FETCHMODE_ASSOC);
$k=$resultat->numRows();
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
if($k==1)
{
$absence=new Absence($ligne[GEST_CHAMPS_ID_UTILISATEUR],$ligne[GEST_CHAMPS_ID_MOTIF],$ligne[GEST_CHAMPS_DATE_DEBUT_ABSENCE]);
$absence->setDateFin($ligne[GEST_CHAMPS_DATE_FIN_ABSENCE]);
$absence->setDateEnvoi($ligne[GEST_CHAMPS_DATE_ENVOI_LETTRE]);
return $absence;
}else return -1;
}
/**fonction qui recupere une absence de la base de donnees
*@param : $id : identifiant de l'utilisateur
*@param: $motif : identifiant du motif d'absence
*@param : $date: date de fin de l'absence
*@return -1 si erreur
*@return objet absence
*/
function recupererAbsenceDateFin($id,$motif,$dateFin)
{
$requete=" SELECT * FROM ".GEST_ABSENCE.
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." =$id ".
" AND ".GEST_CHAMPS_ID_MOTIF." = $motif ".
" AND ".GEST_CHAMPS_DATE_FIN_ABSENCE." =\"$dateFin\"";
$resultat=$GLOBALS['db']->query($requete);
$ligne=$resultat->fetchRow(DB_FETCHMODE_ASSOC);
$k=$resultat->numRows();
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
if($k==1)
{
$absence=new Absence($ligne[GEST_CHAMPS_ID_UTILISATEUR],$ligne[GEST_CHAMPS_ID_MOTIF],$ligne[GEST_CHAMPS_DATE_DEBUT_ABSENCE]);
$absence->setDateFin($ligne[GEST_CHAMPS_DATE_FIN_ABSENCE]);
$absence->setDateEnvoi($ligne[GEST_CHAMPS_DATE_ENVOI_LETTRE]);
return $absence;
}else return -1;
}
/**
*met a jour la det de debut
*
*/
function setDateDeb( $dateDeb )
{
$this->_date_debut_absence =$dateDeb;
}
/**
*met a jour la date de fin
* verification si date de fin superieur ou egale a date debut
*renvoi 1 si modification effectuee
*-1 si erreur
*/
function setDateFin($dateFin )
{
$deb=$this->_date_debut_absence;
if ($deb<=$dateFin )
{
$this->_date_fin_absence=$dateFin;
return 1;
}else{
return -1;
}
}
/**
*met a jour la date d'envoi
*
*/
function setDateEnvoi( $dateEnvoi )
{
$this->_date_envoi_lettre=$dateEnvoi;
}
/*
*supprime une absence
*@param : $user : identifiant de l'utilisateur
*@date : date de l'absence : debut d'absence au format Y-m-d
*/
function supprimerAbsence($user,$dateDeb)
{
$requete="DELETE FROM ".GEST_ABSENCE.
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $user "
." AND ".GEST_CHAMPS_DATE_DEBUT_ABSENCE." = \"$dateDeb\" ";
$resultat=$GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$j=$GLOBALS['db']->affectedRows();
return $j;
}
/**
*recuperer absence pour un utilisateur
*@param id : identifiant utilisateur
*/
function recupererTableauAbsence($id)
{
$table =array();
$requete=" SELECT ".GEST_CHAMPS_DATE_DEBUT_ABSENCE." , ".GEST_CHAMPS_DATE_FIN_ABSENCE.
" , ".GEST_CHAMPS_DATE_ENVOI_LETTRE." , ".GEST_CHAMPS_LIBELLE_MOTIF.
" FROM ".GEST_ABSENCE." a, ".GEST_MOTIF_ABSENCE." m WHERE "
.GEST_CHAMPS_ID_UTILISATEUR." =$id AND "
."a.".GEST_CHAMPS_ID_MOTIF." = m.".GEST_CHAMPS_ID_MOTIF." ";
$resultat =$GLOBALS['db']->query($requete) ;
(DB::isError($resultat)) ? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
while($ligne=$resultat->fetchRow(DB_FETCHMODE_ASSOC))
{
$case =array(
GEST_CHAMPS_DATE_DEBUT_ABSENCE =>$ligne[GEST_CHAMPS_DATE_DEBUT_ABSENCE],
GEST_CHAMPS_DATE_FIN_ABSENCE =>$ligne[GEST_CHAMPS_DATE_FIN_ABSENCE],
GEST_CHAMPS_DATE_ENVOI_LETTRE =>$ligne[GEST_CHAMPS_DATE_ENVOI_LETTRE],
GEST_CHAMPS_LIBELLE_MOTIF =>$ligne[GEST_CHAMPS_LIBELLE_MOTIF]);
array_push($table,$case);
}
return $table;
}
/*
*affichage des absences
*/
function afficherAbsence()
{
echo "absence : ";
$t=array(
$this->_utilisateur,$this->_motif,$this->_date_debut_absence,
$this->_date_fin_absence,$this->_date_envoi_lettre);
foreach ($t as $p)
{
if (isset($p)){
echo "$p <br />";}
}
}
}
?>
Property changes:
Added: svn:executable
/trunk/classes_metier/gtt_categorie.class.php
New file
0,0 → 1,274
<?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 |
 
 
include_once 'gtt_projet.class.php';
 
/**
* class Categorie
*une categorie regroupe une liste de projets
*/
 
class Categorie
{
 
/**Aggregations: */
 
var $_liste_projets = array();//liste de projets de la categorie
 
/**Attributes: */
var $_id_categorie=null;
var $_libelle_categorie=null;
/*
*construit une categorie a partir d'un identifiant
*/
function Categorie($id)
{
$this->_id_categorie=$id;
}
/**
*ajouter le libelle
*/
function setLibelleCategorie($l)
{
$this->_libelle_categorie= $l;
}
/*
*construit une categorie a partir d'un tableau
*/
function construireCategorie($tableau)
{
$this->_id_categorie=$tableau[GEST_CHAMPS_ID_CATEGORIE];
$this->_libelle_categorie=$tableau[GEST_CHAMPS_LIBELLE_CATEGORIE];
}
/*
*verifie si la categorie contient des projets ou non
*renvoie 1 si contient des projets
*-1 sinon
*/
function contientProjet($id)
{
$requete="SELECT ".GEST_CHAMPS_ID_PROJET.
" FROM ".GEST_PROJET.
" WHERE ".GEST_CHAMPS_ID_CATEGORIE." = $id";
$ligne= $GLOBALS['db']->query($requete);
(DB::isError($ligne)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $ligne->getMessage(), $requete)) : '' ;
$j= $ligne->numRows();
if ($j==0){
return -1;
}else {
return 1;
}
}
/*recuperer un tableau contenant la liste des categories*/
function recupererTableauCategorie()
{
$tableau = array();
$i=0;
$requete ="SELECT * FROM ".GEST_CATEGORIE." ";
$resultat =$GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
while ($ligne= $resultat->fetchRow(DB_FETCHMODE_ASSOC))
{
$case = array(GEST_CHAMPS_ID_CATEGORIE => $ligne[GEST_CHAMPS_ID_CATEGORIE],
GEST_CHAMPS_LIBELLE_CATEGORIE =>$ligne[GEST_CHAMPS_LIBELLE_CATEGORIE]);
$tableau[$i]=$case;
$i=$i+1;
}
return $tableau;
}
/**
*recupere l'identifiant de la prochaine categorie
*de la base de donnees
*/
function nextId()
{
$requete = 'SELECT MAX('.GEST_CHAMPS_ID_CATEGORIE.') AS maxi FROM '.GEST_CATEGORIE;
$resultat = $GLOBALS['db']->query($requete);
if (DB::isError($resultat) || $resultat->numRows() > 1) {
return false;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
return $ligne->maxi + 1;
}
/*
*enregistre une nouvelle categorie dans la base de donnees
*ne fait qu'inserer une nouvelle identifiant
*et libelle de categorie
*ne traite pas les projets inclus dans une categorie
*renvoie 1 si enregistrement effectue
*0 si aucun enregistrement
*-1 si erreur
*/
function enregistrerNewCategorie()
{
$table =GEST_CATEGORIE;
//Verification si identifiant deja attribue
$b=&Categorie::nextId();
$this->_id_categorie=$b;
$champs = array(
GEST_CHAMPS_ID_CATEGORIE => $this->_id_categorie,
GEST_CHAMPS_LIBELLE_CATEGORIE => "$this->_libelle_categorie");
$resultat = $GLOBALS['db']->autoExecute($table, $champs, DB_AUTOQUERY_INSERT);
if (DB::isError($resultat)) {
die($resultat->getMessage());
}
$j=$GLOBALS['db']->affectedRows();
switch ($j)
{
case 1 : return 1;
case 0 :return 0;
default :return -1;
}
}
 
 
/**
* construit une instance de categorie en recuperant les donnees
*stockees dans la base de donnees
*/
function recupererCategorie($id)
{
$requete="SELECT * FROM ".GEST_CATEGORIE.
" WHERE ".GEST_CHAMPS_ID_CATEGORIE." =$id ";
$ligne =$GLOBALS['db']->query($requete) ;
$resultat = $ligne->fetchRow(DB_FETCHMODE_ASSOC);
 
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$nb_ligne_selectionne = $ligne->numRows();
if($nb_ligne_selectionne==1)
{
//construction d'une nouvelle categorie
$cat = new Categorie($resultat[GEST_CHAMPS_ID_CATEGORIE]) ;
$cat->setLibelleCategorie($resultat[GEST_CHAMPS_LIBELLE_CATEGORIE]);
$cat->_liste_projets=$this->recupererListeProjets($id);
return $cat;
}elseif($nb_ligne_selectionne==0){
return 0;
}else {
return -1;
}
}
/*
*fonction recuperant la liste de projets
*d'une categorie de la base de donnes
*/
function recupererListeProjets($id)
{
$tableau=array();
$requete="SELECT ".GEST_CHAMPS_ID_PROJET.
" FROM ".GEST_PROJET.
" WHERE ".GEST_CHAMPS_ID_CATEGORIE." = $id";
$ligne= $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$j = $ligne->numRows();
if($j!=0){
//remplit le tableau avec la liste de projets
while($resultat=$ligne->fetchRow(DB_FETCHMODE_ORDERED))
{
array_push($tableau,$resultat[0]);
}
}
return $tableau;
}
 
 
/**
* supprime une categorie de la base de donnees
*cette methode n'est appelé que quand on est sure qu'il n'y a
*aucun projet dans la categorie
*/
function supprimerCategorie($id)
{
$requete="DELETE FROM ".GEST_CATEGORIE.
" WHERE ".GEST_CHAMPS_ID_CATEGORIE. " = $id";
$resultat = $GLOBALS['db']->query($requete);
 
$j= $GLOBALS['db']->affectedRows();
return $j;
}
 
function afficherCategorie()
{
echo "<BR> Categorie : ";
echo "id categorie : \n";
echo "$this->_id_categorie <BR>";
echo "libelle : \n $this->_libelle_categorie <BR>";
echo "liste de projets : ";
foreach($this->_liste_projets as $h)
{
echo "$h \t";
}
}
}
?>
Property changes:
Added: svn:executable
/trunk/classes_metier/gtt_prevision_tache.class.php
New file
0,0 → 1,218
<?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
 
/**
* class Prevision
*/
 
class Prevision
{
/**Attributes: */
var $_date_prevue;
var $_duree_prevue;
var $_utilisateur;
var $_tache;
 
/**
*fonction creant une prevision
*@param u : identifiant d'un utilisateur
*@param t : identifiant de la tache
*/
function Prevision($u,$t)
{
$this->_utilisateur=$u;
$this->_tache=$t;
}
/**
*fonction creant une nouvelle prevision
*/
function construirePrevision($tableau)
{
$this->_utilisateur=$tableau[GEST_CHAMPS_ID_UTILISATEUR];
$this->_tache=$tableau[GEST_CHAMPS_ID_TACHE];
$this->_date_prevue=$tableau[GEST_CHAMPS_DATE_PREVISION];
$this->_duree_prevue=$tableau[GEST_CHAMPS_DUREE_PREVISION];
}
/**
*fonction enregistrant une nouvelle prevision
*/
function enregistrerNewPrevision()
{
$table=GEST_PREVISION;
$champs=array(
GEST_CHAMPS_ID_UTILISATEUR =>$this->_utilisateur,
GEST_CHAMPS_ID_TACHE =>$this->_tache,
GEST_CHAMPS_DATE_PREVISION =>$this->_date_prevue,
GEST_CHAMPS_DUREE_PREVISION =>$this->_duree_prevue);
$resultat =$GLOBALS['db']->autoExecute($table,$champs,DB_AUTOQUERY_INSERT);
if (DB::isError($resultat)) {
die($resultat->getMessage());
}
$j=$GLOBALS['db']->affectedRows();
if ($j==1)
{
return 1;
}elseif($j==0){
return 0;
}else{
return -1;
}
}
 
/**
*fonction qui met a jour une prevision dans la base de donnees
*renvoie 1 si mise a jour effectuee
*renvoie -1 sinon
*/
function mettreAJourPrevision()
{
$requete="UPDATE ".GEST_PREVISION.
" SET ".GEST_CHAMPS_DUREE_PREVISION." = $this->_duree_prevue".
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $this->_utilisateur".
" AND ".GEST_CHAMPS_ID_TACHE." = $this->_tache".
" AND ".GEST_CHAMPS_DATE_PREVISION." =\" $this->_date_prevue\"";
 
$resultat =$GLOBALS['db']->query($requete) ;
 
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
 
$nb_ligne_modifie = $GLOBALS['db']->affectedRows();
 
if ($nb_ligne_modifie==1)
{
return 1;
}
else return -1;
 
 
}
 
 
/**
*fonction renvoyant la somme des previsions faites pour une journee
*par un utilisateur
*@param $id : identifiant de l'utilisateur
*@param $date : date pour laquelle on veut la somme
@return somme des heures prevues pour ce jour par cet utilisateur
*/
function sommeHeurePrevision($id, $date)
{
$requete= "SELECT SUM(".GEST_CHAMPS_DUREE_PREVISION." ) ".
" FROM ".GEST_PREVISION.
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $id ".
" AND ".GEST_CHAMPS_DATE_PREVISION." =\" $date\" ";
$resultat = $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$ligne=$resultat->fetchRow(DB_FETCHMODE_ORDERED);
return $ligne[0];
}
/**
*fonction verifiant si une prevision a deja etet faite pour cette tache
*si une duree a ete rentree pour une date, utilisateur et tache donnees
*@return la duree prevue si elle xiste deja
*@return 0 si aucune prevision
*@return -1 si erreur
*/
function existePrevision()
{
$requete= "SELECT * ".
" FROM ".GEST_PREVISION.
" WHERE ".GEST_CHAMPS_ID_TACHE." = $this->_tache ".
" AND ".GEST_CHAMPS_ID_UTILISATEUR." =$this->_utilisateur ".
" AND ".GEST_CHAMPS_DATE_PREVISION."= \"$this->_date_prevue \"";
 
 
$resultat = $GLOBALS['db']->query($requete);
 
$ligne=$resultat->fetchRow(DB_FETCHMODE_ASSOC);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$j=$resultat->numRows();
if ($j==1)
{
return $ligne[GEST_CHAMPS_DUREE_PREVISION];
 
}elseif($j==0){
return 0;
 
}else{
return -1;
}
}
 
/**
* fonction renvoyant la duree d'une tache prevue
*/
function getDureePrevision()
{
return $this->_duree_prevue;
}
/**
*fonction renvoyant la det d'une prevision
*/
function getDatePrevision()
{
return $this->_date_prevue;
}
/**
*fonction renvoyant l'identifiant de l'utilisateur
*/
function getIdUserPrevision()
{
return $this->_utilisateur;
}
 
/**
*fonction creant la date de prevision
* @param Date
*/
function setDate( $date )
{
$this->_date_prevue=$date;
}
 
 
/**
*fonction creant la duree
*@param $Duree
*/
function setDuree( $duree )
{
$this->_duree_prevue=$duree;
}
}
?>
Property changes:
Added: svn:executable
/trunk/classes_metier/gtt_travail.class.php
New file
0,0 → 1,311
<?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 |
/**
* class Travail
*
*/
 
class Travail
{
/**Attributes: */
var $_utilisateur=null;
var $_tache=null;
var $_date_travail =null;
var $_duree_travail=null;
/**
*constructeur travail
*@param user : identifiant utilisateur
*@param tache : identifiant tache
*/
function Travail($user, $tache)
{
$this->_utilisateur= $user;
$this->_tache=$tache;
}
/*
*enregistre un travail dans la bse de donnees
*renvoie 1 si effectue
*0 si aucun enregistrement effectue
*-1 si erreur
*/
function enregistrerNewTravail()
{
$table =GEST_TRAVAIL;
$champs =array(
GEST_CHAMPS_ID_UTILISATEUR =>$this->_utilisateur,
GEST_CHAMPS_ID_TACHE =>$this->_tache,
GEST_CHAMPS_DATE_TRAVAIL =>$this->_date_travail,
GEST_CHAMPS_DUREE_TRAVAIL =>$this->_duree_travail);
$resultat =$GLOBALS['db']->autoExecute($table,$champs,DB_AUTOQUERY_INSERT);
if (DB::isError($resultat)) {
die($resultat->getMessage());
}
$j=$GLOBALS['db']->affectedRows();
if ($j==1)
{
return 1;
}elseif($j==0){
return 0;
}else{
return -1;
}
}
/**
*fonction mettant a jour l'objet travail dans la base de donnees
*mise a jour de la duree
*renvoie 1 si une modification bien effectuee
*-1 sinon
*/
function mettreAjourTravail()
{
$table=GEST_TRAVAIL;
$requete=" UPDATE $table SET ".
GEST_CHAMPS_DUREE_TRAVAIL." = $this->_duree_travail ".
" WHERE ".GEST_CHAMPS_ID_TACHE." = $this->_tache ".
" AND ".GEST_CHAMPS_ID_UTILISATEUR." = $this->_utilisateur".
" AND ".GEST_CHAMPS_DATE_TRAVAIL." =\"$this->_date_travail\"";
$resultat =$GLOBALS['db']->query($requete) ;
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$nb_ligne_modifie = $GLOBALS['db']->affectedRows();
if ($nb_ligne_modifie==1)
{
return 1;
}
else return -1;
}
/**
*fonction faisiant la somme des heures travaillees
*pour une journee donnee pour un utilisateur
*@param $id : identifiant de la personne a chercher
*@param $date: date pour laquelle on doit faire la somme
*date est sous forme Y-m-d(format mysql)
*@return une somme temps de travail de l'utilisateur a la date donnee
*/
function sommeHeureTravail($id,$date)
{
$requete="SELECT SUM(".GEST_CHAMPS_DUREE_TRAVAIL.")".
" FROM ".GEST_TRAVAIL.
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $id".
" AND ".GEST_CHAMPS_DATE_TRAVAIL." =\"$date\" ";
$resultat = $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$ligne = $resultat->fetchRow(DB_FETCHMODE_ORDERED);
return $ligne[0];
}
/**
*fonction pour determiner la date de travail
*/
function setDateTravail( $dateTravail )
{
$this->_date_travail =$dateTravail;
}
/**
*fonction renvoyant la date de travail
*/
function getDateTravail()
{
return $this->_date_travail;
}
/**
*fonction renvoyant la duree du temps de travail
*/
function getDureeTravail()
{
return $this->_duree_travail;
}
/**
*fonction qui renvoie l'identifiant de l'utilisateur
*/
function getIdUserTravail()
{
return $this->_utilisateur;
}
/**
* fonction mettant a jour la duree de travail
*
*/
function setDureeTravail( $duree )
{
$this->_duree_travail =$duree;
}
/**
* supprime un travail de la bse de donnees
*/
function supprimerTravail()
{
$requete="DELETE FROM ".GEST_TRAVAIL.
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $this->_utilisateur AND "
.GEST_CHAMPS_ID_TACHE." =$this->_tache AND "
.GEST_CHAMPS_DATE_TRAVAIL." = '$this->_date_travail'";
$resultat = $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$j=$GLOBALS['db']->affectedRows();
return $j;
}
/**
*recuperer un tableau de travail
*pour un utilisateur donne
*/
function recupererTableauTravail($id)
{
$table=array();
$requete="SELECT * FROM ".GEST_TRAVAIL.
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $id ";
$resultat = $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
while($ligne=$resultat->fetchRow(DB_FETCHMODE_ASSOC))
{
$case =array(GEST_CHAMPS_ID_TACHE => $ligne[GEST_CHAMPS_ID_TACHE],
GEST_CHAMPS_ID_UTILISATEUR =>$ligne[GEST_CHAMPS_ID_UTILISATEUR],
GEST_CHAMPS_DATE_TRAVAIL => $ligne[GEST_CHAMPS_DATE_TRAVAIL],
GEST_CHAMPS_DUREE_TRAVAIL =>$ligne[GEST_CHAMPS_DUREE_TRAVAIL]);
array_push($table,$case);
}
return $table;
}
/**
*construire un travail
*/
function construireTravail($tableau)
{
$this->_utilisateur=$tableau[GEST_CHAMPS_ID_UTILISATEUR];
$this->_tache=$tableau[GEST_CHAMPS_ID_TACHE];
$this->_date_travail=$tableau[GEST_CHAMPS_DATE_TRAVAIL];
$this->_duree_travail=$tableau[GEST_CHAMPS_DUREE_TRAVAIL];
}
/**
*fonction verifiant si un travail existe pour une date donnee
*tache et utilisateurs donnes
*renvoie la duree du travail si existe
*O si aucun travail trouve et
*-1 sinon
*/
function existeTravail()
{
$requete="SELECT * ".
" FROM ".GEST_TRAVAIL.
" WHERE ".GEST_CHAMPS_ID_TACHE." = $this->_tache AND ".
GEST_CHAMPS_ID_UTILISATEUR." = $this->_utilisateur AND ".
GEST_CHAMPS_DATE_TRAVAIL." ='$this->_date_travail'";
$resultat = $GLOBALS['db']->query($requete);
$ligne=$resultat->fetchRow(DB_FETCHMODE_ASSOC);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$j=$resultat->numRows();
if ($j==1)
{
return $ligne[GEST_CHAMPS_DUREE_TRAVAIL];
}elseif($j==0){
return 0;
}else{
return -1;
}
}
/**
*supression de tous les taches d'un utilisateur pour une
*date donnee
*@param $id : identifiant de l'utilisateur
*@param : $date : date de travail format mysql Y-m-d
*@return 1 si ok
*-1 si erreur
*/
function supprimerTachesUserDate($id,$date)
{
$requete="DELETE FROM ".GEST_TRAVAIL.
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $id".
" AND ".GEST_CHAMPS_DATE_TRAVAIL. "= \"$date\" ";
$resultat=$GLOBALS['db']->query($requete);
$j=$GLOBALS['db']->affectedRows();
if ($j>=0){
return 1;
}else return -1;
}
/*
*affichage du travail
*/
function afficherTravail()
{
echo "<br /> travail ";
$t =array(
$this->_utilisateur, $this->_tache,$this->_date_travail,$this->_duree_travail);
foreach ($t as $p)
{
if (isset($p)){
echo "$p <br />";}
}
}
}
?>
Property changes:
Added: svn:executable
/trunk/classes_metier/CVS/Root
New file
0,0 → 1,0
:extssh:jp_milcent@adullact.net:/cvsroot/eflore
/trunk/classes_metier/CVS/Entries
New file
0,0 → 1,11
/gtt_absence.class.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_categorie.class.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_frais.class.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_motif.class.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_preference.class.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_prevision_tache.class.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_projet.class.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_statut.class.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_taches.class.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_travail.class.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_utilisateur.class.php/1.1/Tue Feb 22 12:07:13 2005//
/trunk/classes_metier/CVS/Repository
New file
0,0 → 1,0
gestion/version_3/classes_metier
/trunk/classes_metier/gtt_projet.class.php
New file
0,0 → 1,370
<?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 |
 
include_once 'gtt_taches.class.php';
/**
* class Projet
*
*/
 
class Projet
{
 
/**Aggregations: */
 
var $liste_taches = array();
/**Attributes: */
var $_id_projet=null;
var $_nom_projet=null;
var $_description_projet=null;
var $_date_debut_projet = null;
var $_duree_prevue_projet=null;
var $_avancement_projet=null;
var $_categorie=null;
/**
*constructeur
*/
function Projet($id)
{
$this->_id_projet= $id;
}
/**
*construit un projet a partir d'un tableau associatif
*le tableau ne contient toutefois pas la liste de taches
*/
function construireProjet($tableau)
{
$this->_nom_projet=$tableau[GEST_CHAMPS_NOM_PROJET];
$this->_description_projet=$tableau[GEST_CHAMPS_DESCRIPTION_PROJET];
$this->_date_debut_projet=$tableau[GEST_CHAMPS_DATE_DEBUT_PROJET];
$this->_duree_prevue_projet= $tableau[GEST_CHAMPS_DUREE_PREVUE_PROJET];
$this->_avancement_projet=$tableau[GEST_CHAMPS_AVANCEMENT_PROJET];
$this->_categorie=$tableau[GEST_CHAMPS_ID_CATEGORIE];
}
/**
*recupere l'identifiant de la base de donnees
*/
function nextId()
{
$requete = 'SELECT MAX('.GEST_CHAMPS_ID_PROJET.') AS maxi FROM '.GEST_PROJET;
$resultat = $GLOBALS['db']->query($requete);
if (DB::isError($resultat) || $resultat->numRows() > 1) {
return false;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
return $ligne->maxi + 1;
}
/**
* enregistre un nouveau projet
*renvoie 0 si aucun enregistrement effectue,
*1 si enregistrement ok
*-1 si erreur
*on suppose qu'on aura pas d'erreur car
*on controle les projets a enregistrer : pas de duplicata
*/
function enregistrerNewProjet()
{
$table=GEST_PROJET;
$p=&Projet::nextId();
$this->_id_projet=$p;
$champs=array(
GEST_CHAMPS_ID_PROJET =>$this->_id_projet,
GEST_CHAMPS_NOM_PROJET => "$this->_nom_projet",
GEST_CHAMPS_DESCRIPTION_PROJET =>"$this->_description_projet",
GEST_CHAMPS_DATE_DEBUT_PROJET =>$this->_date_debut_projet,
GEST_CHAMPS_DUREE_PREVUE_PROJET =>$this->_duree_prevue_projet,
GEST_CHAMPS_AVANCEMENT_PROJET =>$this->_avancement_projet,
GEST_CHAMPS_ID_CATEGORIE => $this->_categorie);
$resultat = $GLOBALS['db']->autoExecute($table, $champs,DB_AUTOQUERY_INSERT);
if (DB::isError($resultat)) {
die($resultat->getMessage());
}
$j =$GLOBALS['db']->affectedRows($resultat);
return $j;
}
/*
*recupere une liste de taches
*/
function recupererListeTaches()
{
}
/*
* modifie la liste de taches
*@param $t : tableau de taches
*/
function setListeTaches($t)
{
$this->_liste_taches= $t;
}
/**
*recupere un projet pour instancier l'objet
*renvoie -1 si erreur
*renvoie utilisateur sinon
*/
function recupererProjet($id)
{
$requete="SELECT ".GEST_CHAMPS_NOM_PROJET.", ".GEST_CHAMPS_DESCRIPTION_PROJET.", ".GEST_CHAMPS_DATE_DEBUT_PROJET.", "
.GEST_CHAMPS_DUREE_PREVUE_PROJET.", ".GEST_CHAMPS_AVANCEMENT_PROJET." , ".GEST_CHAMPS_ID_CATEGORIE.
" FROM ".GEST_PROJET.
" WHERE ".GEST_CHAMPS_ID_PROJET." = $id";
$resultat = $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$tab = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
$j=$resultat->numRows();
if ($j==1)
{
$project = new Projet($id);
$project->construireProjet($tab);
return $project;
//recuperation de la liste de taches
}else {
return -1;
}
}
/**
*fonction verifiant si le projet contient des taches
*renvoie 1 si le projet contient des taches
*et 0 sinon
*/
function contientTache($id)
{
$requete="SELECT ".GEST_CHAMPS_ID_TACHE.
" FROM ".GEST_TACHES.
" WHERE ".GEST_CHAMPS_ID_PROJET." = $id ";
$ligne= $GLOBALS['db']->query($requete);
(DB::isError($ligne)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $ligne->getMessage(), $requete)) : '' ;
$j= $ligne->numRows();
if ($j==0){
return -1;
}else {
return 1;
}
}
 
/**
*supprime un projet de la base de donnees
*ne prend pas en compte les taches
*/
function supprimerProjet($id)
{
$requete="DELETE FROM ".GEST_PROJET.
" WHERE ".GEST_CHAMPS_ID_PROJET." =$id";
$ligne=$GLOBALS['db']->query($requete);
(DB::isError($ligne)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $ligne->getMessage(), $requete)) : '' ;
$j=$GLOBALS['db']->affectedRows();
return $j;
}
 
/**
*fonction recuperant la date de debut d'un projet
*/
function getDateDeb()
{
return $this->_date_debut_projet;
}
/**
*fonction recuperant la duree prevue
*/
function getDureePrevue()
{
return $this->_duree_prevue_projet;
}
/**
*etablit le pourcentage d'avancement du projet
*/
function setAvancement($pourcentage)
{
$this->_avancement_projet=$pourcentage;
}
/*
*modofie la duree prevue
*/
function setDureePrevue($d)
{
$this->_duree_prevue_projet = $d;
}
/*
*modifie la description
*/
function setDescription($desc)
{
$this->_description_projet = $desc;
}
function mettreAJourProjet()
{
$table=GEST_PROJET;
$requete="UPDATE $table SET "
.GEST_CHAMPS_NOM_PROJET." = \"$this->_nom_projet\","
.GEST_CHAMPS_DESCRIPTION_PROJET." =\"$this->_description_projet\","
.GEST_CHAMPS_DATE_DEBUT_PROJET." =\"$this->_date_debut_projet\","
.GEST_CHAMPS_DUREE_PREVUE_PROJET." =$this->_duree_prevue_projet,"
.GEST_CHAMPS_AVANCEMENT_PROJET." =$this->_avancement_projet,"
.GEST_CHAMPS_ID_CATEGORIE." = $this->_categorie"
." WHERE ".GEST_CHAMPS_ID_PROJET." =$this->_id_projet";
$resultat= $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$j= $GLOBALS['db']->affectedRows();
echo "$j";
switch ($j)
{
case 0: return 0;
case 1: return 1;
default: return -1;
}
}
/**fonction recuperant la liste de projets
*/
function recupererTableauProjet()
{
$requete="SELECT ".GEST_CHAMPS_ID_PROJET." , ".GEST_CHAMPS_NOM_PROJET.",C.".GEST_CHAMPS_ID_CATEGORIE.",C.".GEST_CHAMPS_LIBELLE_CATEGORIE.
" FROM ".GEST_PROJET." P ,".GEST_CATEGORIE." C ".
" WHERE P.".GEST_CHAMPS_ID_CATEGORIE." = C.".GEST_CHAMPS_ID_CATEGORIE.
" ORDER BY C.".GEST_CHAMPS_ID_CATEGORIE;
$tab= array();
$resultat=$GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$j=$resultat->numRows();
if ($j!=0)
{
while($ligne=$resultat->fetchRow(DB_FETCHMODE_ASSOC))
{
$case=array(GEST_CHAMPS_ID_PROJET =>$ligne[GEST_CHAMPS_ID_PROJET],
GEST_CHAMPS_NOM_PROJET =>$ligne[GEST_CHAMPS_NOM_PROJET],
GEST_CHAMPS_LIBELLE_CATEGORIE =>$ligne[GEST_CHAMPS_LIBELLE_CATEGORIE]);
array_push($tab,$case);
}
}
return $tab;
}
/**
*fonction recuperant la tache par defaut d'un projet
*tache par defaut : tache s'appelant general
*@id : identifiant du projet
*@param : $nom : nom de la atche par default
*@return identifiant de la tache
*/
 
function getDefaultTache($id, $nom)
{
$requete="SELECT ".GEST_CHAMPS_ID_TACHE.
" FROM ".GEST_TACHES.
" WHERE ".GEST_CHAMPS_ID_PROJET." = $id ".
" AND ".GEST_CHAMPS_NOM_TACHE."=\" $nom\"";
$ligne= $GLOBALS['db']->query($requete);
(DB::isError($ligne)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $ligne->getMessage(), $requete)) : '' ;
$j= $ligne->numRows();
if ($j==1)
{
$resultat=$ligne->fetchRow(DB_FETCHMODE_ORDERED);
return $resultat[0];
}else return -1;
}
function afficherProjet()
{
echo "<br /> projet: ";
echo "id projet: \n";
echo"$this->_id_projet <br /> ";
echo "nom projet: \n";
echo"$this->_nom_projet <br /> ";
echo "description projet: \n";
echo"$this->_description_projet <br /> ";
echo "avancement : \n";
echo"$this->_avancement_projet <br /> ";
echo "date debut projet: \n";
echo"$this->_date_debut_projet <br /> ";
echo "duree prevue du projet: \n";
echo"$this->_duree_prevue_projet <br /> ";
echo "categorie : ";
echo "$this->_categorie <br />";
echo "liste de taches : ";
$liste=$this->_liste_taches;
if (isset($liste))
{
foreach ($liste as $t)
{
echo "$t \t , ";
}
}
echo "<br />";
}
 
}
?>
Property changes:
Added: svn:executable
/trunk/classes_metier/gtt_frais.class.php
New file
0,0 → 1,153
<?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 |
 
 
class Frais
{
 
/**Attributes: */
 
var $_id_frais; /*identifiant du frais equivalent au numero du plan comptable*/
var $_libelle_frais;/*libelle du plan comptable */
var $_date_frais;/*date des frais */
var $_utilisateur;/*utilisateur ayant occasioné la note de frais */
 
/*constructeur */
function Frais($id)
{
$this->_id_frais=$id;
}
/*
*construit un frais a partir d'un tableau
*/
function ConstruireFrais($tableau)
{
$this->_id_frais =$tableau[GEST_CHAMPS_ID_FRAIS];
$this->_libelle_frais = $tableau[ GEST_CHAMPS_LIBELLE_FRAIS];
$this->_date_frais = $tableau[GEST_CHAMPS_DATE_FRAIS];
$this->_utilisateur = $tableau[GEST_CHAMPS_ID_UTILISATEUR];
}
/*accesseur */
function getIdFrais()
{
return $this->_id_frais;
}
function getUtilisateur()
{
return $this->_utilisateur;
}
function getDateFrais()
{
return $this->_date_frais;
}
/**enregistrer les frais dans la base de donnees
*enreigistre que l'identifiant et le libelle dans la table gestion_note_frais
*/
 
function enregistrerFrais()
{
$table = GEST_FRAIS;
$champs = array(
GEST_CHAMPS_ID_FRAIS => $this_id_frais,
GEST_CHAMPS_LIBELLE_FRAIS => "$this->_libelle_frais"
);
$resultat = $GLOBALS['db']->autoExecute($table, $champs, DB_AUTOQUERY_INSERT);
if (DB::isError($resultat)) {
die($resultat->getMessage());
}
}
 
/**recuperer un frais de la base de donnees
*pour pouvoir instancier l'objet frais
*ne recupere que l'identifiant et le libelle*/
 
function recupererFrais()
{
$requete = "SELECT * FROM ".GEST_FRAIS.
" WHERE ".GEST_CHAMPS_ID_FRAIS." = $this->_id_frais";
$ligne = $GLOBALS['db']->query($requete);
$resultat = $ligne->fetchRow(DB_FETCHMODE_ASSOC);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
/*construction d'un nouvel entité frais */
$nb_ligne_recupere= $resultat->numRows();
if ($nb_ligne_recupere==1)
{
$nouveau_frais = new Frais ($resultat);
return $nouveau_frais;
}
else
{
echo "frais inexistant ";
return -1;
}
}
 
/*supprimer un frais de la base de donnees */
function supprimerFrais()
{
$requete= "DELETE FROM ".GEST_FRAIS." WHERE ".GEST_CHAMPS_ID_FRAIS." = $this->_id_frais";
$resultat = $GLOBALS['db'] ->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
/*destruction de l'instance de l'objet */
}
 
/*afficher un frais */
function afficheFrais()
{
echo "frais : \n";
echo " $this->_id_frais \n ";
echo " $this->_libelle_frais \n";
echo " $this->_date_frais \n";
echo " $this->_utilisateur \n ";
}
 
}
?>
Property changes:
Added: svn:executable
/trunk/classes_metier/gtt_statut.class.php
New file
0,0 → 1,199
<?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 |
 
 
/**
*classe servant d'interface
*avec la base de données pour éditer les statut
entant qu'administrateur*/
 
 
 
class Statut
{
 
/**Attributes: */
 
var $_id_statut= null;
var $_libelle_statut = null;
 
/*
*constructeur : @param no identifiant du statut
*/
function Statut($id)
{
$this->_id_statut =$id;
}
/*met à jour le libelle */
function setLibelleStatut($lib)
{
$this->_libelle_statut= $lib;
}
/*enregistre un nouveau statut dans la base de donnees*/
function enregistrerStatut( )
{
$table=GEST_STATUT;
$d=$this->nextId();
$this->_id_statut=$d;
$champs =array (
GEST_CHAMPS_ID_STATUT => $this->_id_statut,
GEST_CHAMPS_LIBELLE_STATUT=> "$this->_libelle_statut");
$resultat = $GLOBALS['db']->autoExecute($table, $champs,DB_AUTOQUERY_INSERT);
if (DB::isError($resultat)) {
die($resultat->getMessage());
}
}
/**
*recupere l'identifiant de la base de donnees
*/
function nextId()
{
$requete = 'SELECT MAX('.GEST_CHAMPS_ID_STATUT.') AS maxi FROM '.GEST_STATUT;
$resultat = $GLOBALS['db']->query($requete);
if (DB::isError($resultat) || $resultat->numRows() > 1) {
return false;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
return $ligne->maxi + 1;
}
/*
*retourne un tableau contenant tous les statuts et leurs identifiants
*/
function recupererTableauStatut( )
{
$tableau= array();
$i=0;
$requete="SELECT ".GEST_CHAMPS_ID_STATUT." , ".GEST_CHAMPS_LIBELLE_STATUT.
" FROM ".GEST_STATUT."";
$resultat = $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
while ($ligne= $resultat->fetchRow(DB_FETCHMODE_ASSOC))
{
$case = array(GEST_CHAMPS_ID_STATUT => $ligne[GEST_CHAMPS_ID_STATUT],
GEST_CHAMPS_LIBELLE_STATUT =>$ligne[GEST_CHAMPS_LIBELLE_STATUT]);
$tableau[$i]=$case;
$i=$i+1;
}
return $tableau;
}
 
/**
*recuperer tableau libelle
*/
function recupererTableauLibelleStatut()
{
$tableau= array();
$requete="SELECT ".GEST_CHAMPS_LIBELLE_STATUT.
" FROM ".GEST_STATUT."";
$resultat = $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
while ($ligne= $resultat->fetchRow(DB_FETCHMODE_ASSOC))
{
array_push($tableau,$ligne[GEST_CHAMPS_LIBELLE_STATUT]);
}
return $tableau;
}
/*supprime une categorie
*renvoie 1 si suppression effectuee
*0 si rien
*-1 si erreur
*/
function supprimerStatut($id)
{
$requete= "DELETE FROM ".GEST_STATUT.
" WHERE ".GEST_CHAMPS_ID_STATUT." =$id ";
 
$resultat = $GLOBALS['db'] ->query($requete);
(DB::isError($resultat)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$int=$GLOBALS['db']->affectedRows();
if($int==1)
{
return 1;
}elseif($int==0){
return 0;
}else return -1;
}
/**
*fonction verifiant si le statut est utilise
*renvoie 1 si statut utilise
*-1 sinon
*/
function statutUtilise($id)
{
$requete="SELECT ".GEST_CHAMPS_ID_UTILISATEUR.
" FROM ".GEST_UTILISATEUR.
" WHERE ". GEST_CHAMPS_ID_STATUT."=$id";
$ligne= $GLOBALS['db']->query($requete);
(DB::isError($ligne)) ?
die (BOG_afficherErreurSql(__FILE__, __LINE__, $ligne->getMessage(), $requete)) : '' ;
$j= $ligne->numRows();
if ($j==0){
return -1;
}else {
return 1;
}
}
function afficherStatut()
{
echo "Statut : \n";
echo "id : ";
echo "$this->_id_statut <BR>";
echo "libelle_statut : ";
echo "$this->_libelle_statut <BR>";
}
 
 
}
?>
Property changes:
Added: svn:executable
/trunk/menu/CVS/Entries
New file
0,0 → 1,8
/gtt_menu_absence.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_menu_admin_categorie.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_menu_admin_motif_absence.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_menu_admin_projet.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_menu_admin_statut.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_menu_admin_utilisateur.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_menu_editer_preferences.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_menu_travail.php/1.1/Tue Feb 22 12:07:13 2005//
/trunk/menu/CVS/Repository
New file
0,0 → 1,0
gestion/version_3/menu
/trunk/menu/CVS/Root
New file
0,0 → 1,0
:extssh:jp_milcent@adullact.net:/cvsroot/eflore
/trunk/menu/gtt_menu_admin_motif_absence.php
New file
0,0 → 1,155
<?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 |
/*@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
@version $Date: 2004/07/06
*/
// +------------------------------------------------------------------------------------------------------+
// +------------------------------------------------------------------------------------------------------+
// | INCLUSION DE FICHIERS |
// +------------------------------------------------------------------------------------------------------+
 
include_once CHEMIN_CLASSES_METIER.'gtt_motif.class.php';
//fichier langues
include_once CHEMIN_LANGUES.'gtt_langue_fr.inc.php';
//inclusion des paquets de la librairie pear
include_once 'HTML/QuickForm.php';
 
/**
*fonction affichant le menu administration des motifs d'absence
*/
 
function afficherMenuAjouterMotif()
{
$id="AJOUTER_MOTIF";
$size=30;
$assoc1 =array('class'=>$id);
$form=new HTML_QuickForm('gestion_utilisateur', 'post',$GLOBALS['urlBase'].GESTION_ADMIN_MOTIF_ABSENCE,'', $assoc1);
//creation des templates
$squelette =&$form->defaultRenderer();
$squelette->setFormTemplate("\n<form{attributes}>\n<ul>{content}\n</ul></form>");
$squelette->setElementTemplate('<li>'."\n".'{label}'."\n".'{element}'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</li>'."\n");
$squelette->setGroupElementTemplate('{label}{element}','groupe');
$squelette->setRequiredNoteTemplate("\n".'<li>'.'<p>'."\n".'<span class="symbole_obligatoire">*</span> {requiredNote}'."\n".'</p>'.'</li>'."\n");
$squelette->setHeaderTemplate("\n".'<li><h2>'."\n".'{header}'."\n".'</h2></li>'."\n");
//entete du formulaire
$form->addElement('header', 'entete', GESTION_ADMIN_MOTIF_L);
//creation des Messages d'erreur
$form->setRequiredNote('='.GTT_CHAMPS_OBLIGATOIRE);
$form->setJsWarnings(GTT_DONNEES_INCORRECTES, GTT_DONNEES_A_CORRIGER);
//creation et ajouts des elements
//ligne libelle motif
$size=25;
$assoc=array('class' =>$id, 'size'=>$size);
$ligneLibMotif= &HTML_QuickForm::createElement('text', 'champ_nom_motif',GESTION_LIBELLE_L.': ',$assoc);
$form->addElement($ligneLibMotif);
//ligne bouton validation
$size=5;
$assoc=array('class' =>$id, 'size'=>$size);
$boutonM = &HTML_QuickForm::createElement('submit', 'champ_valider_motif',GTT_L_G_VALIDER,$assoc);
$form->addElement($boutonM);
//ligne ajouter type RTT
$size=1;
$assoc=array('class' =>$id,'size'=>$size);
$ligneRtt = &HTML_QuickForm::createElement('checkbox', 'champ_rtt',GESTION_QUESTION_RTT_L.': ','',$assoc);
$ligneRtt->setChecked(true);
$form->addElement($ligneRtt);
//ajout de regles
$form->applyFilter('champ_nom_motif', 'trim');
$form->addRule('champ_nom_motif',GTT_ERREUR_NOM, 'required','','client');
$form->addRule('champ_nom_motif',GTT_ERREUR_NOM, 'alphanumeric','','client');
return $form;
}
/**
*fonction affichant le menu de supression d'un motif d'absence
*/
function afficherMenuSupressionMotif()
{
$id="SUPPRIMER_MOTIF";
$assoc1=array ('class' =>$id);
$form=new HTML_QuickForm('gestion_motif', 'post',$GLOBALS['urlBase'].GESTION_ADMIN_MOTIF_ABSENCE,'',$assoc1);
$squelette =&$form->defaultRenderer();
$squelette->setFormTemplate("\n<form{attributes}>\n<ul>{content}\n</ul></form>");
$squelette->setElementTemplate('<li>'."\n".'{label}'."\n".'{element}'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</li>'."\n");
$squelette->setGroupElementTemplate('{label}{element}','groupe');
$squelette->setRequiredNoteTemplate("\n".'<li>'.'<p>'."\n".'<span class="symbole_obligatoire">*</span> {requiredNote}'."\n".'</p>'.'</li>'."\n");
$squelette->setHeaderTemplate("\n".'<li><h2>'."\n".'{header}'."\n".'</h2></li>'."\n");
//cration et ajout des elements
$form->addElement('header', 'entete', GESTION_SUPPRIMER_CONDITION_L);
$form->setJsWarnings(GTT_DONNEES_INCORRECTES, GTT_DONNEES_A_CORRIGER);
 
//creation des elements
$assoc=array('class' =>$id);
$ligne[0]=&HTML_QuickForm::createElement('select', 'champ_motif_supprimer',GESTION_MOTIF_L." : ",'',$assoc);
$ligne[0]->load($result) ;
$c="SELECT * FROM ".GEST_MOTIF_ABSENCE."";
 
$ligne[0]->loadQuery($GLOBALS['dsn'],$c,GEST_CHAMPS_LIBELLE_MOTIF,GEST_CHAMPS_ID_MOTIF);
$ligne[1]=&HTML_QuickForm::createElement('submit', 'btn_supprimer_motif',GTT_L_G_SUPPRIMER,$assoc);
//ajout
$form->addGroup($ligne,'groupe',"",'&nbsp',false);
//ajout des regles de groupe
$form->registerRule('verifMotifUtilise','function','verifMotifUtilise');
$regle['champ_motif_supprimer'][]=array(GTT_IMPOSSIBLE_SUPPR_MOTIF,'verifMotifUtilise','','client');
$form->addGroupRule('groupe', $regle);
return $form;
}
?>
/trunk/menu/gtt_menu_admin_categorie.php
New file
0,0 → 1,140
<?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 |
/*@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
@version $Date: 2004/07/06
*/
// +------------------------------------------------------------------------------------------------------+
// +------------------------------------------------------------------------------------------------------+
// | INCLUSION DE FICHIERS |
// +------------------------------------------------------------------------------------------------------+
 
include_once CHEMIN_CLASSES_METIER.'gtt_categorie.class.php';
//fichier langues
include_once CHEMIN_LANGUES.'gtt_langue_fr.inc.php';
include_once CHEMIN_CONTROLEUR.'gtt_controleur_admin_categorie.php';
 
//inclusion des paquets de la librairie pear
include_once 'HTML/QuickForm.php';
 
 
/**
*fonction affichant le menu administration des categorie
*option ajout de categorie
*/
 
function afficherMenuAjouterCategorie()
{
 
$id="AJOUTER_CATEGORIE";
$assoc1=array ('class' =>$id);
$form=new HTML_QuickForm('gestion_categorie', 'post',$GLOBALS['urlBase'].GESTION_ADMIN_CATEGORIE,'',$assoc1);
$squelette =& $form->defaultRenderer();
$squelette->setFormTemplate("\n<form{attributes}>\n<ul>{content}\n</ul></form>");
$squelette->setElementTemplate('<li>'."\n".'{label}'."\n".'{element}'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</li>'."\n");
$squelette->setGroupElementTemplate('{label}{element}','groupe');
$squelette->setRequiredNoteTemplate("\n".'<li>'.'<p>'."\n".'<span class="symbole_obligatoire">*</span> {requiredNote}'."\n".'</p>'.'</li>'."\n");
$squelette->setHeaderTemplate("\n".'<li><h2>'."\n".'{header}'."\n".'</h2></li>'."\n");
//creation et ajout des elements
$form->addElement('html','<fieldset>');
$form->addElement('header', 'entete', GESTION_AJOUTER_CATEGORIE_L);
//creation des Messages d'erreur
$form->setRequiredNote('='.GTT_CHAMPS_OBLIGATOIRE);
$form->setJsWarnings(GTT_DONNEES_INCORRECTES, GTT_DONNEES_A_CORRIGER);
//ligne nom categorie
$size=30;
$assoc=array('class' =>$id, 'size'=>$size);
$ligneNomCat= &HTML_QuickForm::createElement('text', 'champ_nom_cat',GESTION_LIBELLE_L.': ',$assoc);
$form->addElement($ligneNomCat);
//ligne bouton validation
$size=5;
$assoc=array('class' =>$id, 'size'=>$size);
$boutonC= &HTML_QuickForm::createElement('submit', 'champ_valider_cat',GTT_L_G_VALIDER,$assoc);
$form->addElement($boutonC);
//ajout de regles
$form->applyFilter('champ_nom_cat', 'trim');
 
$form->addRule('champ_nom_cat',GTT_ERREUR_NOM, 'required','','client');
$form->addRule('champ_nom_cat',GTT_ERREUR_NOM, 'alphanumeric','','client');
$form->addElement('html','</fieldset>');
return $form;
}
 
 
/**fonction affichant le menu
*supression d'une categorie
*/
 
function afficherMenuSupressionCategorie()
{
$id="SUPPRIMER_CATEGORIE";
$assoc1=array ('class' =>$id);
$form=new HTML_QuickForm('gestion_categorie2', 'post',$GLOBALS['urlBase'].GESTION_ADMIN_CATEGORIE,'',$assoc1);
//creation et ajout des elements
$form->addElement('header', 'entete', GESTION_SUPPRIMER_CATEGORIE_L);
$form->setJsWarnings(GTT_DONNEES_INCORRECTES, GTT_DONNEES_A_CORRIGER);
//creation des elements
$assoc=array('class' =>$id);
$ligne[0]=&HTML_QuickForm::createElement('select', 'champ_cat_supprimer',GESTION_CATEGORIE_L." : ",'',$assoc);
$ligne[0]->load($result) ;
$c="SELECT * FROM ".GEST_CATEGORIE."";
$ligne[0]->loadQuery($GLOBALS['dsn'],$c,GEST_CHAMPS_LIBELLE_CATEGORIE,GEST_CHAMPS_ID_CATEGORIE);
$ligne[1]=&HTML_QuickForm::createElement('submit', 'btn_supprimer_cat',GTT_L_G_SUPPRIMER,$assoc);
//ajout
$form->addGroup($ligne,'groupe',"",'&nbsp',false);
//ajout des regles de groupe
$form->registerRule('verifContientProjet','function','verifContientProjet');
$regle['champ_cat_supprimer'][]=array(GTT_IMPOSSIBLE_SUPPR_CAT,'verifContientProjet','','client');
$form->addGroupRule('groupe', $regle);
return $form;
}
?>
/trunk/menu/gtt_menu_admin_projet.php
New file
0,0 → 1,189
<?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 |
/*@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
@version $Date: 2004/07/06
*/
// +------------------------------------------------------------------------------------------------------+
// +------------------------------------------------------------------------------------------------------+
// | INCLUSION DE FICHIERS |
// +------------------------------------------------------------------------------------------------------+
 
 
include_once CHEMIN_CLASSES_METIER.'gtt_projet.class.php';
include_once CHEMIN_CLASSES_METIER.'gtt_categorie.class.php';
//fichier langues
include_once CHEMIN_LANGUES.'gtt_langue_fr.inc.php';
//inclusion des paquets de la librairie pear
include_once 'HTML/QuickForm.php';
 
/**
*fonction affichant le menu d'ajout d'un projet
*/
 
function afficherMenuAjouterProjet()
{
$id="AJOUTER_PROJET";
$assoc1=array ('class' =>$id);
$form=new HTML_QuickForm('gestion_projet', 'post',$GLOBALS['urlBase'].GESTION_ADMIN_PROJET,'',$assoc1);
$squelette =& $form->defaultRenderer();
$squelette->setFormTemplate("\n<form{attributes}>\n<ul>{content}\n</ul></form>");
$squelette->setElementTemplate('<li>'."\n".'{label}'."\n".'{element}'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</li>'."\n");
$squelette->setGroupElementTemplate('{label}{element}','groupe');
$squelette->setRequiredNoteTemplate("\n".'<li>'.'<p>'."\n".'<span class="symbole_obligatoire">*</span> {requiredNote}'."\n".'</p>'.'</li>'."\n");
$squelette->setHeaderTemplate("\n".'<li><h2>'."\n".'{header}'."\n".'</h2></li>'."\n");
//creation et ajout des elements
$form->addElement('header', 'entete', GESTION_AJOUTER_PROJET_L);
//creation des Messages d'erreur
$form->setRequiredNote('='.GTT_CHAMPS_OBLIGATOIRE);
$form->setJsWarnings(GTT_DONNEES_INCORRECTES, GTT_DONNEES_A_CORRIGER);
//ligne nom du projet
$size=30;
$assoc=array('class' =>$id, 'size'=>$size);
$ligneNomProjet= &HTML_QuickForm::createElement('text', 'champ_nom_projet',GESTION_NOM_L." : ",$assoc);
$form->addElement($ligneNomProjet);
//ligne categorie du projet
$assoc=array('class' =>$id);
$cat=&HTML_QuickForm::createElement('select', 'champ_categorie_projet',GESTION_CATEGORIE_L." : ",'',$assoc);
$cat->load($result) ;
$c="SELECT * FROM ".GEST_CATEGORIE."";
$cat->loadQuery($GLOBALS['dsn'],$c,GEST_CHAMPS_LIBELLE_CATEGORIE,GEST_CHAMPS_ID_CATEGORIE);
$form->addElement($cat);
//ligne date debut prevue
$assoc=array('class'=>$id);
//definition des date sde debut et de fin
$min=date('Y')-5;
$max=date('Y')+5;
$option=array('language'=>'fr','minYear'=>$min, 'maxYear'=>$max);
$dateDeb=&HTML_QuickForm::createElement('date','champ_date_deb_projet',GESTION_DATE_DEB_PROJET_L.' : ',$option,$assoc);
$valDef=date("d,M,Y");
$dateDeb->setValue($valDef);
$form->addElement($dateDeb);
//champ duree prevue du projet compte en jours
$size=3;
$assoc=array('class'=>$id,'size'=>$size);
$dureePrev=&HTML_QuickForm::createElement('text','champ_duree_prev_projet',GESTION_DUREE_PROJET_L.':',$assoc);
$form->addElement($dureePrev);
//etat d'avancement du projet
$size=1;
$assoc=array('class'=>$id,'size'=>$size);
$valeur=array();
for ($i = 0; $i <= 100; $i++) {
array_push($valeur,$i);
}
 
$avancement=&HTML_QuickForm::createElement('select','champ_avancement_projet',GESTION_AVANCEMENT_PROJET_L.':',$valeur,$assoc);
$form->addElement($avancement);
//champ description du projet
$row=4;
$col=30;
$id="CHAMP_DESC_AJOUTER_PROJET";
$assoc=array('class '=>$id ,'rows'=>$row , 'cols'=>$col, 'wrap'=>"physical");
$description=&HTML_QuickForm::createElement('textarea','champ_description',GESTION_DESCRIPTION_L.' : ',$assoc);
$form->addElement($description);
//champ valider
$size=5;
$assoc=array('class' =>$id, 'size'=>$size);
$boutonP= &HTML_QuickForm::createElement('submit', 'champ_valider_projet',GTT_L_G_VALIDER,$assoc);
$form->addElement($boutonP);
//ajout de regles
$form->applyFilter('champ_nom_projet', 'trim');
 
$form->addRule('champ_nom_projet',GTT_ERREUR_NOM, 'required','','client');
$form->addRule('champ_nom_projet',GTT_ERREUR_NOM, 'alphanumeric','','client');
 
return $form;
}
 
 
/**supression d'un projet
*on ne peut supprimer que les projets n'ayant pas de taches
*/
function afficherMenuSupprimerProjet()
{
$id="SUPPRIMER_PROJET";
$assoc1=array ('class' =>$id);
$form=new HTML_QuickForm('gestion_projet2', 'post',$GLOBALS['urlBase'].GESTION_ADMIN_PROJET,'',$assoc1);
//creation et ajout des elements
$form->addElement('header', 'entete', GESTION_SUPPRIMER_PROJET_L);
$form->setJsWarnings(GTT_DONNEES_INCORRECTES, GTT_DONNEES_A_CORRIGER);
//creation des elements
$assoc=array('class' =>$id);
$ligne[0]=&HTML_QuickForm::createElement('select', 'champ_proj_supprimer',GESTION_PROJET_L." : ",'',$assoc);
$ligne[0]->load($result) ;
$p="SELECT * FROM ".GEST_PROJET."";
$ligne[0]->loadQuery($GLOBALS['dsn'],$p,GEST_CHAMPS_NOM_PROJET,GEST_CHAMPS_ID_PROJET);
$ligne[1]=&HTML_QuickForm::createElement('submit', 'btn_supprimer_projet',GTT_L_G_SUPPRIMER,$assoc);
//ajout
$form->addGroup($ligne,'groupe',"",'&nbsp',false);
//ajout des regles de groupe interdisant la supression
//au cas ou le projet contient des taches
$form->registerRule('verifContientTache','function','verifContientTache');
$regle['champ_proj_supprimer'][]=array(GTT_IMPOSSIBLE_SUPPR_PROJ,'verifContientTache','','client');
$form->addGroupRule('groupe', $regle);
return $form;
}
?>
/trunk/menu/gtt_menu_admin_statut.php
New file
0,0 → 1,131
<?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 |
/*@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
@version $Date: 2004/07/06
*/
// +------------------------------------------------------------------------------------------------------+
// +------------------------------------------------------------------------------------------------------+
// | INCLUSION DE FICHIERS |
// +------------------------------------------------------------------------------------------------------+
 
include_once CHEMIN_CLASSES_METIER.'gtt_statut.class.php';
//fichier langues
include_once CHEMIN_LANGUES.'gtt_langue_fr.inc.php';
//inclusion des paquets de la librairie pear
include_once 'HTML/QuickForm.php';
 
/**
*fonction affichant le menu afficher menu ajout statut
*/
 
function afficherMenuAjouterStatut()
{
$id="AJOUTER_STATUT";
$assoc1=array ('class' =>$id);
$form=new HTML_QuickForm('statut', 'post',$GLOBALS['urlBase'].GESTION_ADMIN_STATUT,'',$assoc1);
//creation des templates pour la mise en forme
$squelette =& $form->defaultRenderer();
$squelette->setFormTemplate("\n<form{attributes}>\n<ul>{content}\n</ul></form>");
$squelette->setElementTemplate('<li>'."\n".'{label}'."\n".'{element}'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</li>'."\n");
$squelette->setGroupElementTemplate('{label}{element}','groupe');
$squelette->setRequiredNoteTemplate("\n".'<li>'.'<p>'."\n".'<span class="symbole_obligatoire">*</span> {requiredNote}'."\n".'</p>'.'</li>'."\n");
//creation et ajout des elements
$form->addElement('header', 'entete', GESTION_AJOUTER_STATUT_L);
//creation des Messages d'erreur
$form->setRequiredNote('='.GTT_CHAMPS_OBLIGATOIRE);
$form->setJsWarnings(GTT_DONNEES_INCORRECTES, GTT_DONNEES_A_CORRIGER);
//ligne libelle statut
$size=30;
$assoc=array('class' =>$id, 'size'=>$size);
$ligneNomStatut = &HTML_QuickForm::createElement('text', 'champ_nom_statut',GESTION_LIBELLE_L.': ',$assoc);
$form->addElement($ligneNomStatut);
//ligne bouton validation
$size=5;
$assoc=array('class' =>$id, 'size'=>$size);
$boutonS= &HTML_QuickForm::createElement('submit', 'champ_valider_statut',GTT_L_G_VALIDER,$assoc);
$form->addElement($boutonS);
//ajout de regles
$form->applyFilter('champ_nom_statut', 'trim');
$form->addRule('champ_nom_statut',GTT_ERREUR_NOM, 'required','','client');
$form->addRule('champ_nom_statut',GTT_ERREUR_NOM, 'alphanumeric','','client');
return $form;
}
/**
*fonction affichant le menu supression d'un statut
*/
function afficherMenuSupressionstatut()
{
$id="SUPPRIMER_STATUT";
$assoc1=array ('class' =>$id);
$form=new HTML_QuickForm('gestion_categorie2', 'post',$GLOBALS['urlBase'].GESTION_ADMIN_STATUT,'',$assoc1);
//creation et ajout des elements
$form->addElement('header', 'entete', GESTION_SUPPRIMER_STATUT_L);
//creation des elements
$assoc=array('class' =>$id);
$ligne[0]=&HTML_QuickForm::createElement('select', 'champ_statut_supprimer',GTT_L_FU_STATUT." : ",'',$assoc);
$ligne[0]->load($result) ;
$c="SELECT * FROM ".GEST_STATUT."";
$ligne[0]->loadQuery($GLOBALS['dsn'],$c,GEST_CHAMPS_LIBELLE_STATUT,GEST_CHAMPS_ID_STATUT);
$ligne[1]=&HTML_QuickForm::createElement('submit', 'btn_supprimer_statut',GTT_L_G_SUPPRIMER,$assoc);
//ajout
$form->addGroup($ligne,'groupe',"",'&nbsp',false);
//ajout des regles de groupe
$form->registerRule('verifStatutUtilise','function','verifStatutUtilise');
$regle['champ_statut_supprimer'][]=array(GTT_IMPOSSIBLE_SUPPR_STATUT,'verifStatutUtilise','','client');
$form->addGroupRule('groupe', $regle);
return $form;
}
?>
/trunk/menu/gtt_menu_editer_preferences.php
New file
0,0 → 1,111
<?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 |
/*@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
@version $Date: 2004/07/06
*/
// +------------------------------------------------------------------------------------------------------+
// +------------------------------------------------------------------------------------------------------+
// | INCLUSION DE FICHIERS |
// +------------------------------------------------------------------------------------------------------+
//inclusion des paquets de la librairie pear
include_once 'HTML/QuickForm.php';
//fichier langues
include_once CHEMIN_LANGUES.'gtt_langue_fr.inc.php';
//classes metier
include_once CHEMIN_CLASSES_METIER.'gtt_projet.class.php';
include_once CHEMIN_CLASSES_METIER.'gtt_preference.class.php';
include_once CHEMIN_CLASSES_METIER.'gtt_utilisateur.class.php';
 
 
/**
*fonction affichant le menu editer preferences
*/
 
function afficherMenuEditerPref($user)
{
$id="MANIPULER_PREFERENCES";
$size=100;
$assoc1 =array('class'=>$id);
$form=new HTML_QuickForm('gestion_admin_pref', 'post',$GLOBALS['urlBase'].GESTION_EDITER_PREFERENCES,'', $assoc1);
//entete du formulaire
$form->addElement('header', 'entete', GESTION_EDITER_PREFERENCES_L);
//creation des Messages d'erreur
$form->setRequiredNote('='.GTT_CHAMPS_OBLIGATOIRE);
$form->setJsWarnings(GTT_DONNEES_INCORRECTES, GTT_DONNEES_A_CORRIGER);
$TabProjet=&Projet::recupererTableauProjet();
$pref=new Preference($user,5000);
$tabPref=$pref->recupererTableauPreferences();
//conseils
$z=& $form->addElement('html','<tr><td>'.GESTION_CONSEILS_PREFERENCES.'</tr></td>');
//nombre de projets
$z=&$form->addElement('hidden','champ_nb_total_proj',count($TabProjet));
$cat='';
//parcourt du tableau de projets
for($y=0;$y<count($TabProjet);$y++)
{
$tab=$TabProjet[$y];
//ligne categorie
if ($cat!=$tab[GEST_CHAMPS_LIBELLE_CATEGORIE])
{
$size1=25;
$id1="nom_categorie";
$assoc1=array('class' =>$id1, 'size'=>$size1);
$ligneNomCateg=&HTML_QuickForm::createElement('html', '<tr><td>'.$tab[GEST_CHAMPS_LIBELLE_CATEGORIE].' : '.'</td></tr>');
$form->addElement($ligneNomCateg);
$cat =$tab[GEST_CHAMPS_LIBELLE_CATEGORIE];
}
//champ cache
$z=&$form->addElement('hidden','champ_id_pr'.$y,$tab[GEST_CHAMPS_ID_PROJET]);
$ligne[0]=&HTML_QuickForm::createElement('checkbox','champ_check'.$y);
$estDansPref=$pref->isInPreferences($tab[GEST_CHAMPS_ID_PROJET]);
$ligne[0]->setChecked($estDansPref);
$form->addGroup($ligne,'groupe',$tab[GEST_CHAMPS_NOM_PROJET].'&nbsp&nbsp&nbsp','&nbsp&nbsp&nbsp',false);
}
//champ_valider
$size4=5;
$id4='btn_editer_pref';
$assoc4=array('class' =>$id4, 'size'=>$size4);
$btnValiderEditer= &HTML_QuickForm::createElement('submit', 'btn_valider_editer',GTT_L_G_VALIDER,$assoc4);
$form->addElement($btnValiderEditer);
return $form;
}
?>
/trunk/menu/gtt_menu_absence.php
New file
0,0 → 1,0
/trunk/menu/gtt_menu_admin_utilisateur.php
New file
0,0 → 1,354
<?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 |
/*@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
@version $Date: 2004/07/06
*/
// +------------------------------------------------------------------------------------------------------+
// +------------------------------------------------------------------------------------------------------+
// | INCLUSION DE FICHIERS |
// +------------------------------------------------------------------------------------------------------+
 
include_once CHEMIN_CLASSES_METIER.'gtt_statut.class.php';
include_once CHEMIN_CONTROLEUR.'gtt_controleur_admin_utilisateur.php';
 
//inclusion des paquets de la librairie pear
include_once 'HTML/QuickForm.php';
 
 
/**
*focntion affichant le menu aministration utilisateur
*@$tabDef =tableau contenant les parametres par defaut
*@$test =test si on est en insertion ou modification
*@ $mode = 1 =>modification
*@ $mode =0 =>insertion
*/
 
function afficherMenuAjouterUser($tabDef,$mode)
{
$id="MANIPULER_USER";
$size=30;
$assoc1 =array('class'=>$id);
$form=new HTML_QuickForm('gestion_utilisateur', 'post',$GLOBALS['urlBase'].GESTION_ADMIN_UTILISATEUR,'', $assoc1);
//creation des templates pour la mise en forme
$squelette =& $form->defaultRenderer();
$squelette->setFormTemplate("\n<form{attributes}>\n<ul>{content}\n</ul></form>");
$squelette->setElementTemplate('<li>'."\n".'{label}'."\n".'{element}'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</li>'."\n");
$squelette->setGroupElementTemplate('{label}{element}','groupe');
$squelette->setRequiredNoteTemplate("\n".'<li>'.'<p>'."\n".'<span class="symbole_obligatoire">*</span> {requiredNote}'."\n".'</p>'.'</li>'."\n");
$squelette->setHeaderTemplate("\n".'<li><h2>'."\n".'{header}'."\n".'</h2></li>'."\n");
//entete du formulaire
$form->addElement('header', 'entete', GESTION_AJOUTER_UTILISATEUR_L);
//creation des Messages d'erreur
$form->setRequiredNote('='.GTT_CHAMPS_OBLIGATOIRE);
$form->setJsWarnings(GTT_DONNEES_INCORRECTES, GTT_DONNEES_A_CORRIGER);
//creation et ajouts des elements
//element cache pour verifier si formulaire est en mode insertion ou modification
$form->addElement('hidden', 'champ_verif', $mode);
//definition du champ d'activation
//premier ligne: nom
$size=20;
$assoc=array('class' =>$id, 'size'=>$size);
//desactivation des champs si mode modification
if ($mode==1)
{
$temp_assoc=array('disabled');
$assoc=array_merge($assoc,$temp_assoc);
}
$ligneNom = &HTML_QuickForm::createElement('text', 'champ_nom',GESTION_NOM_L.': ',$assoc);
$form->addElement($ligneNom);
//ligne : prenom
$assoc=array('class' =>$id, 'size'=>$size);
//desactivation des champs si mode modification
if ($mode==1)
{
$temp_assoc=array('disabled');
$assoc=array_merge($assoc,$temp_assoc);
}
$lignePrenom = &HTML_QuickForm::createElement('text', 'champ_prenom',GESTION_PRENOM_L.': ',$assoc);
$form->addElement($lignePrenom);
// ligne : adresse
$assoc=array('class' =>$id, 'size'=>$size);
$ligneAdresse= &HTML_QuickForm::createElement('text', 'champ_adresse',GTT_L_FU_ADRESSE.': ',$assoc);
$form->addElement($ligneAdresse);
//ligne :ville
$assoc=array('class' =>$id, 'size'=>$size);
$ligneVille = &HTML_QuickForm::createElement('text', 'champ_ville',GTT_L_FU_VILLE.': ',$assoc);
$form->addElement($ligneVille);
// ligne : code postal
$size=5;
$assoc=array('class' =>$id, 'size'=>$size);
$ligneCode = &HTML_QuickForm::createElement('text', 'champ_code_postal',GTT_L_FU_CODE_POSTAL.': ',$assoc);
$form->addElement($ligneCode);
// ligne :telephone
$size=10;
$assoc=array('class' =>$id, 'size'=>$size);
$ligneTel=&HTML_QuickForm::createElement('text', 'champ_telephone',GTT_L_FU_TEL.': ',$assoc);
$form->addElement($ligneTel);
// ligne :email
$size=25;
$assoc=array('class' =>$id, 'size'=>$size);
$ligneMail=&HTML_QuickForm::createElement('text', 'champ_email',GTT_L_FU_EMAIL.': ',$assoc);
$form->addElement($ligneMail);
// ligne : explication
$cl="EXPLICATION";
$assoc=array('class' =>$cl, 'size'=>$size);
if ($mode==1)
{
$ligneExplication=&HTML_QuickForm::createElement('HTML',GTT_L_FU_MAJ_MDP);
$form->addElement($ligneExplication);
}
// ligne : mot de passe
$size=20;
$assoc=array('class' =>$id, 'size'=>$size);
$ligneMDP=&HTML_QuickForm::createElement('password', 'champ_password',GTT_L_FU_MDP.': ', $assoc);
$form->addElement($ligneMDP);
//ligne : confirmer mot de passe
$assoc=array('class' =>$id, 'size'=>$size);
$ligneConfirmMDP=&HTML_QuickForm::createElement('password', 'champ_confirm_password',GTT_L_FU_CONFIRMATION_MDP.': ',$assoc);
$form->addElement( $ligneConfirmMDP);
//recuperation de la liste de statut
$assoc=array('class' =>$id);
$ligneStatut = &HTML_QuickForm::createElement('select', 'champ_statut',GESTION_STATUT_L.': ','',$assoc);
$ligneStatut->load($result) ;
$c="SELECT * FROM ".GEST_STATUT."";
$ligneStatut->loadQuery($GLOBALS['dsn'],$c,GEST_CHAMPS_LIBELLE_STATUT,GEST_CHAMPS_ID_STATUT);
$form->addElement($ligneStatut);
//conges payes initiaux
$size=3;
$assoc=array('class' =>$id, 'size'=>$size);
//desactivation des champs si mode modification
if ($mode==1)
{
$temp_assoc=array('disabled');
$assoc=array_merge($assoc,$temp_assoc);
}
$ligneConges = &HTML_QuickForm::createElement('text', 'champ_nb_conge',GESTION_CONGES_INIT_L.': ',$assoc);
$form->addElement($ligneConges);
 
//temps journalier de travail
$size=3;
$assoc=array('class' =>$id, 'size'=>$size);
$ligneTT = &HTML_QuickForm::createElement('text', 'champ_temps_travail',GTT_L_FU_TEMPS_TRAVAIL.': ',$assoc);
$form->addElement($ligneTT);
//heures supp
//desactivation des champs si mode modification
$size=3;
$assoc=array('class' =>$id, 'size'=>$size);
if ($mode==1)
{
$temp_assoc=array('disabled');
$assoc=array_merge($assoc,$temp_assoc);
}
$ligneHeuresSup = &HTML_QuickForm::createElement('text', 'champ_heure_supp_init',GESTION_HEURESINIT_L.': ',$assoc);
$form->addElement($ligneHeuresSup);
//administrateur
$size=1;
$assoc=array('class' =>$id,'size'=>$size);
$ligneAdmin = &HTML_QuickForm::createElement('checkbox', 'champ_administrateur',GTT_L_FU_ADMIN.': ','',$assoc);
if ($mode==1 and $tabDef['champ_administrateur']==true)
{
$ligneAdmin->setChecked(true);
}else{
$ligneAdmin->setChecked(false);
}
$form->addElement($ligneAdmin);
//ligne : admin2
$ligneAdmin2= &HTML_QuickForm::createElement('checkbox', 'champ_admin2',GTT_L_FU_ADMIN_2.': ','',$assoc);
if ($mode==1 and $tabDef['champ_admin2']==true)
{
$ligneAdmin2->setChecked(true);
}else{
$ligneAdmin2->setChecked(false);
}
$form->addElement($ligneAdmin2);
//element ok : valider le formulaire
$bouton=&HTML_QuickForm::createElement('submit', 'champ_valider',GTT_L_G_VALIDER,$assoc);
$form->addElement($bouton);
//ajout des regles de saisie
$form->applyFilter('champ_nom', 'trim');
$form->applyFilter('champ_prenom','trim');
$form->applyFilter('champ_email', 'trim');
//regles individuelles
//regles applicables si on est en mode insertion
if($mode==0)
{
$form->addRule('champ_nom',GTT_ERREUR_NOM, 'required','','client');
$form->addRule('champ_nom',GTT_ERREUR_NOM, 'lettersonly','','client');
$form->addRule('champ_prenom',GTT_ERREUR_PRENOM, 'required','','client');
$form->addRule('champ_prenom',GTT_ERREUR_PRENOM, 'lettersonly','','client');
$form->addRule('champ_password',GTT_ERREUR_PASSWD, 'required','','client');
$form->addRule('champ_confirm_password','', 'required','','client');
$form->addRule('champ_nb_conge',GTT_ERREUR_NOMBRE, 'numeric','','client');
$form->addRule('champ_heure_supp_init',GTT_ERREUR_NOMBRE, 'numeric','','client');
}
$form->addRule(array('champ_password','champ_confirm_password'),GESTION_ERREUR_PASSWORD_L, 'compare','','client');
$form->addRule('champ_temps_travail',GTT_ERREUR_NOMBRE, 'numeric','','client');
//nouvelles regles
$form->registerRule('verifValeurTemps','function','verifValeurTemps');
$form->addRule('champ_temps_travail',GTT_ERREUR_NOMBRE, 'verifValeurTemps','','client');
$form->addRule('champ_code_postal',GTT_ERREUR_NOMBRE, 'numeric','','client');
$form->addRule('champ_telephone',GTT_ERREUR_TEL, 'numeric','','client');
$form->addRule('champ_email',GTT_ERREUR_MAIL, 'required','','client');
$form->addRule('champ_email',GTT_ERREUR_MAIL, 'email','','client');
//creation de valeurs par defaut
$default=array("champ_nom"=> null,
"champ_prenom"=>null,
"champ_adresse" =>null,
"champ_ville" =>null,
"champ_code_postal" =>0,
"champ_telephone" => 0,
"champ_email" =>null,
"champ_administrateur" =>false,
"champ_statut"=>0,
"champ_admin2"=> false,
"champ_nb_conge"=>0,
"champ_temps_travail"=>7,
"champ_heure_supp_init"=>0);
if ($mode==1)
{
$form->setDefaults($tabDef);
$form->addElement('hidden', 'nom_utilisateur',$tabDef["champ_nom"]);
$form->addElement('hidden', 'prenom_utilisateur',$tabDef["champ_prenom"]);
$form->addElement('hidden', 'conges_utilisateur',$tabDef["champ_nb_conge"]);
$form->addElement('hidden', 'heure_supp_utilisateur',$tabDef["champ_heure_supp_init"]);
}else {
$form->setDefaults($default);
}
//ajout des regles de saisie
$form->applyFilter('champ_nom', 'trim');
$form->applyFilter('champ_prenom','trim');
$form->applyFilter('champ_email', 'trim');
$form->applyFilter('champ_adresse','trim');
return $form;
}
/**
*fonction creant le formulaire de suppression d'utilisateur
*affiche la liste des utilisateurs
*la supression se fera en fonction du choix de l'utilisateur
*/
 
function afficherMenuEditerUser()
{
$id="EDITER_USER";
$size=30;
$assoc1 =array('class'=>$id);
$form= new HTML_QuickForm('editer_utilisateur', 'post',$GLOBALS['urlBase'].GESTION_EDITER_UTILISATEUR,'',$assoc1);
$form->addElement('header', 'entete', GESTION_EDITER_UTILISATEUR_L);
//creation des elements
$id="EDITER_USER";
$assoc=array('class' =>$id);
$ligne[0]=&HTML_QuickForm::createElement('select', 'champ_utilisateur_supprimer',GESTION_UTILISATEUR_L." : ",'',$assoc);
$ligne[0]->load($result) ;
$c="SELECT * FROM ".GEST_UTILISATEUR."";
$ligne[0]->loadQuery($GLOBALS['dsn'],$c,GEST_CHAMPS_NOM,GEST_CHAMPS_ID_UTILISATEUR);
// $ligne[1]=&HTML_QuickForm::createElement('html','<a href ="'.$GLOBALS['urlBase'].GESTION_EDITER_UTILISATEUR.'">');
$ligne[2]=&HTML_QuickForm::createElement('submit', 'btn_modifier',GTT_L_G_MODIFIER, $assoc);
// $ligne[3]=&HTML_QuickForm::createElement('html','</a>');
//$ligne[4]=&HTML_QuickForm::createElement('html','<a href ="'.$GLOBALS['urlBase'].GESTION_ADMIN_UTILISATEUR.'">');
$ligne[5]=&HTML_QuickForm::createElement('submit', 'btn_supprimer',GTT_L_G_SUPPRIMER,$assoc);
// $ligne[6]=&HTML_QuickForm::createElement('html','</a>');
$form->addElement('hidden','action',GESTION_EDITER_UTILISATEUR);
//ajout
$form->addGroup($ligne,'groupe',"",'&nbsp',false);
//validation des donnees
return $form;
}
?>
/trunk/menu/gtt_menu_travail.php
New file
0,0 → 1,321
<?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 |
/*@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
@version $Date: 2004/07/06
*/
// +------------------------------------------------------------------------------------------------------+
// +------------------------------------------------------------------------------------------------------+
// | INCLUSION DE FICHIERS |
// +------------------------------------------------------------------------------------------------------+
include_once CHEMIN_CLASSES_METIER.'gtt_travail.class.php';
include_once CHEMIN_CLASSES_METIER.'gtt_projet.class.php';
include_once CHEMIN_CLASSES_METIER.'gtt_absence.class.php';
include_once CHEMIN_CALENDRIER.'gtt_calendrier.class.php';
include_once CHEMIN_CONTROLEUR.'gtt_controleur_travail.php';
//fichier langues
include_once CHEMIN_LANGUES.'gtt_langue_fr.inc.php';
//inclusion des paquets de la librairie pear
include_once 'HTML/QuickForm.php';
 
/**
*fonction affichant le tableau des jours
*et le menu travail
*@param : $utilisateur : identifiant de l'utilisateur
*@param : semaine : numero de semaine
*/
function afficherTableauJour($url,$utilisateur,$semaine,$annee)
{
$id10="TABLEAU_JOUR_TRAVAIL";
$assoc10=array('class'=>$id10);
$form=new HTML_QuickForm('tableau_travail','post',$GLOBALS['urlBase'].GESTION_TRAVAIL,'',$assoc10);
//templates
$squelette =& $form->defaultRenderer();
$squelette->setGroupElementTemplate('<td>{label}{element}</td>','groupe');
//construction d'une preference
$pref=new Preference($utilisateur,0);
//recuperation du tableau de preferences regroupes par categorie
$tabPref=$pref->recupererTableauPreferences();
 
//creation des Messages d'erreur
$form->setRequiredNote('='.GTT_CHAMPS_OBLIGATOIRE);
$form->setJsWarnings(GTT_DONNEES_INCORRECTES, GTT_DONNEES_A_CORRIGER);
//affichage du nom, conges et heure supp de la personn
$user=&Utilisateur::recupererUtilisateur($utilisateur);
if($user!=-1)
{
$z=$form->addElement('html','<tr><td>'.GTT_L_TR_BIENVENUE."\t".$user->getPrenom()."\t".
$user->getNom().'</td></tr>');
$z=$form->addElement('html','<tr><td>'.'</td></tr>');
if($user->getConges()==1 or $user->getConges()==0 or $user->getConges()==-1)
{
$jour=GESTION_RTTJOUR_L;
}else $jour =GESTION_RTTJOURS_L;
$z=$form->addElement('html','<tr><td>'.GTT_L_TR_JOURS_CONGES." : ".$user->getConges().$jour.'</td></tr>');
$z=$form->addElement('html','<tr><td>'.'</td></tr>');
$quota=$user->getQuota();
$jour1=intval($quota / 24);
$heure= ($quota %24);
if($heure==0 or $heure==1 or $heure==-1)
{
$h=GTT_L_TR_HEURE_L;
}else $h=GTT_L_TR_HEURES_L;
if($jour1==0 or $jour1==1 or $jour1==-1)
{
$jour2=GESTION_RTTJOUR_L;
}else $jour2=GESTION_RTTJOURS_L;
$temps =$jour1.'&nbsp'.$jour2.'&nbsp'.$heure.'&nbsp'.$h;
$z=$form->addElement('html','<tr><td>'.GTT_L_TR_JOURS_RECUPERATION." : ".'</td></tr>');
$z=$form->addElement('html','<tr><td>'." ".$jour1.$jour2."\t".$heure.$h.'</td></tr>');
$z=$form->addElement('html','<tr><td>'.'</td></tr>');
}
//insertion du calendrier
$calendrier=new Calendrier($url,$semaine,$annee);
//affichage de la ligne mois
$z=$form->addElement('html','<tr><td>'.GTT_L_TR_MOIS." : ".
$calendrier->nom_mois[$calendrier->mois]."\t".$calendrier->annee.'</td></tr>');
$aff=$calendrier->afficherCalendrier($annee);
$form->addElement('html','<tr><td>'.$aff.'</td></tr>');
$z=$form->addElement('html','<tr><td>'.'</td></tr>');
//memoriser le nombre de projets inclus dans les preferences
$form->addElement('hidden','champ_nb_projet',count($tabPref));
//creation du tableau
$cat='';
$ok=0;
$form->addElement('html','<tr><td>'.GESTION_PROJETS_L.'</td><td></td><td>'.GESTION_LUN_L.'</td><td>'.
GESTION_MAR_L.'</td><td>'.GESTION_MER_L.'</td><td>'.GESTION_JEU_L.
'</td><td>'.GESTION_VEN_L.'</td><td>'.GESTION_SAM_L.'</td><td>'.GESTION_DIM_L.
'</td><td>'.GESTION_TACHES_L.'</td></tr>');
for ($i=0; $i<count($tabPref) ;$i++)
{
//ligne categorie si categorie pas deja inseree
$tabLigne=$tabPref[$i];
if ($cat!=$tabLigne['libelle_cat'])
{
$size1=25;
$id1="nom_categorie";
$assoc1=array('class' =>$id1, 'size'=>$size1);
$ligneNomCat=&HTML_QuickForm::createElement('html', '<tr><td>'.$tabLigne['libelle_cat'].' : '.'</td></tr>');
$form->addElement($ligneNomCat);
$cat =$tabLigne['libelle_cat'];
}
//creation de l'element hidden pour memoriser l'identifiant du projet
$ligneIdProjet=&HTML_QuickForm::createElement('hidden', 'champ_id_projet'.$i,$tabLigne['id_proj']);
$form->addElement($ligneIdProjet);
//nom des jours
$id2="nom_jours";
$size2=5;
$assoc2=array('class' =>$id2, 'size'=>$size2);
$ligne2[0]=&HTML_QuickForm::createElement('text','champ_lundi'.$i,'',$assoc2);
$ligne2[1]=&HTML_QuickForm::createElement('text','champ_mardi'.$i,'',$assoc2);
$ligne2[2]=&HTML_QuickForm::createElement('text','champ_mercredi'.$i,'',$assoc2);
$ligne2[3]=&HTML_QuickForm::createElement('text','champ_jeudi'.$i,'',$assoc2);
$ligne2[4]=&HTML_QuickForm::createElement('text','champ_vendredi'.$i,'',$assoc2);
$ligne2[5]=&HTML_QuickForm::createElement('text','champ_samedi'.$i,'',$assoc2);
$ligne2[6]=&HTML_QuickForm::createElement('text','champ_dimanche'.$i,'',$assoc2);
//creation des taches
$id3="nom_taches";
$assoc3=array('class' =>$id3);
$ligne2[7]=&HTML_QuickForm::createElement('select','champ_tache'.$i,'','',$assoc3);
//verification si le projet contient une tache
$verification=&Projet::contientTache($tabLigne['id_proj']);
//enregistrement de la tache par defaut
if ($verification!=1)
{
$tache=new Tache(0);
$tache->construireDefaultTache($tabLigne['id_proj'],GESTION_NOM_TACHE_DEFAUT_L);
$tache->enregistrerNewDefaultTache();
}
$ligne2[7]->load($result) ;
$c="SELECT * FROM ".GEST_TACHES." WHERE ".GEST_CHAMPS_ID_PROJET." = $tabLigne[id_proj]";
$ligne2[7]->loadQuery($GLOBALS['dsn'],$c,GEST_CHAMPS_NOM_TACHE,GEST_CHAMPS_ID_TACHE);
//recuperation de l'identifiant de la tache par defaut
$idDefTache=&Tache::recupererIdentifiantDefaultTache();
$ligne2[7]->setSelected(GESTION_NOM_TACHE_DEFAUT_L,$idDefTache);
$form->addGroup($ligne2,'groupe',$tabLigne['nom_proj'].' : ','&nbsp',false);
//filtres
$form->applyFilter('champ_lundi'.$i,'trim');
$form->applyFilter('champ_mardi'.$i,'trim');
$form->applyFilter('champ_mercredi'.$i,'trim');
$form->applyFilter('champ_jeudi'.$i,'trim');
$form->applyFilter('champ_vendredi'.$i,'trim');
$form->applyFilter('champ_samedi'.$i,'trim');
$form->applyFilter('champ_dimanche'.$i,'trim');
//creation de regles
$regle['champ_lundi'.$i][]=array(GTT_ERREUR_NOMBRE,'numeric','','client');
$regle['champ_mardi'.$i][]=array(GTT_ERREUR_NOMBRE,'numeric','','client');
$regle['champ_mercredi'.$i][]=array(GTT_ERREUR_NOMBRE,'numeric','','client');
$regle['champ_jeudi'.$i][]=array(GTT_ERREUR_NOMBRE,'numeric','','client');
$regle['champ_vendredi'.$i][]=array(GTT_ERREUR_NOMBRE,'numeric','','client');
$regle['champ_samedi'.$i][]=array(GTT_ERREUR_NOMBRE,'numeric','','client');
$regle['champ_dimanche'.$i][]=array(GTT_ERREUR_NOMBRE,'numeric','','client');
$form->addGroupRule('groupe', $regle);
}
//enregistrement de regles
$form->registerRule('verifTempsTravail','function','verifTempsTravail');
$regle2['champ_tache0'][]=array(GESTION_ERREUR_L,'verifTempsTravail','','client');
$form->addGroupRule('groupe', $regle2);
//ligne type de jour
$id4="type_jour";
$size4=3;
$assoc4=array('classe'=>$id4,'cols'=>10);
$tabMotif=&Motif::recupererTableauMotif();
$tabTypeJour1=array();
for ($h=0;$h<count($tabMotif);$h++)
{
array_push($tabTypeJour1,trim($tabMotif[$h][GEST_CHAMPS_LIBELLE_MOTIF]));
//champ cache pour recuperer le type de jour si des modifications
//sont faites eventuellement dans la base de donnees
//et le rang des motifs d'absence se b=voit altéré
$y=& $form->addElement('hidden',"champ_libelle_type_jour".$h,trim($tabMotif[$h][GEST_CHAMPS_LIBELLE_MOTIF]) );
$z=& $form->addElement('hidden',"champ_rtt_type_jour".$h,($tabMotif[$h][GEST_CHAMPS_TYPE_RTT]) );
}
$y=& $form->addElement('hidden',"champ_libelle_type_jour".count($tabMotif),GTT_NOM_TRAVAIL);
$z=& $form->addElement('hidden',"champ_rtt_type_jour".count($tabMotif),1);
array_push($tabTypeJour1,GTT_NOM_TRAVAIL);
$z=& $form->addElement('hidden',"champ_rtt_type_jour".(count($tabMotif)+1),1);
$y=& $form->addElement('hidden',"champ_libelle_type_jour".(count($tabMotif)+1),GTT_NOM_WEEK_END);
//CHAMP POUR AVOIR LE NOMBRE DE TYPE DE JOUR
$y=& $form->addElement('hidden',"champ_nb_type_jour",(count($tabMotif)+1+1));
//determination des indices des valeurs dans la table
$ferie=array_search('Ferié',$tabTypeJour1);
$trav=array_search('travail',$tabTypeJour1);
//calcul de la date du premier jour de la semaine choisie
$tabJour=$calendrier->lundiEtDimancheSemaine($calendrier->semaine,$calendrier->annee);
$d=date('d',mktime(0,0,0,1,$tabJour[0],$calendrier->annee));
$m=date('m',mktime(0,0,0,1,$tabJour[0],$calendrier->annee));
$Y=date('Y',mktime(0,0,0,1,$tabJour[0],$calendrier->annee));
//recuperation de la liste des absences de l'utilisateur
$listeAbsence=&Absence::recupAbsence( $GLOBALS['idCurrentUser'],date('Y-m-d',mktime(0,0,0,1,$tabJour[0],$calendrier->annee)),
date('Y-m-d',mktime(0,0,0,1,$tabJour[1],$calendrier->annee)));
//creation du tableau pour les week ends
$tabTypeJour2=array(array_search(GTT_NOM_TRAVAIL,$tabTypeJour1) => GTT_NOM_TRAVAIL,
(array_search(GTT_NOM_TRAVAIL,$tabTypeJour1)+1) =>GTT_NOM_WEEK_END);
//parcours de la liste de jours
for ($g=0;$g<7;$g++)
{
//creation des dates de la semaine
$date=mktime(0,0,0,$m,$d+(1*$g),$Y);
//ajout d'un element cache pour recuperer les dates
$form->addElement('hidden','champ_date_j'.$g,$date);
//proposition de l'option week end que si on est en we
if($g==5 or $g==6)
{
$tabTypeJour=$tabTypeJour2;
}else
{
$tabTypeJour=$tabTypeJour1;
}
$ligneType[$g]=&HTML_QuickForm::createElement('select','champ_type_jour'.$g,'',$tabTypeJour,$assoc4);
//determination du type de jour
//weekend
if (($g==5)or ($g==6))
{
$ligneType[$g]->setSelected(array_search(GTT_NOM_WEEK_END,$tabTypeJour));
}
//jours feries
elseif (in_array($date,$calendrier->liste_feries)==1 and ($g!=5 and $g!=6))
{
$ligneType[$g]->setSelected(array_search(GTT_NOM_FERIE,$tabTypeJour));
}else
{
$ligneType[$g]->setSelected(array_search(GTT_NOM_TRAVAIL,$tabTypeJour));
}
//parcours de liste des absences
if(count($listeAbsence)!=0)
{
for($t=0;$t<count($listeAbsence);$t++)
{
$h=$listeAbsence[$t];
$debAbs=explode('-',$h[GEST_CHAMPS_DATE_DEBUT_ABSENCE]);
$dateDebAbs=mktime(0,0,0,$debAbs[1],$debAbs[2],$debAbs[0]);
//date fin absence
if($h[GEST_CHAMPS_DATE_FIN_ABSENCE]!='0000-00-00')
{
$finAbs=explode('-',$h[GEST_CHAMPS_DATE_FIN_ABSENCE]);
$dateFinAbs=mktime(0,0,0,$finAbs[1],$finAbs[2],$finAbs[0]);
if (($dateDebAbs<=$date)and ($date<=$dateFinAbs))
{
$ligneType[$g]->setSelected($h[GEST_CHAMPS_ID_MOTIF]);
}
}else{
//cas ou la date de fin n'est pas rentre
if($dateDebAbs==$date)
{
$ligneType[$g]->setSelected($h[GEST_CHAMPS_ID_MOTIF]);
}
}
}
}
}
$form->addGroup($ligneType,'groupe','Type de Jour : ','&nbsp',false);
//ligne bouton validation
$size4=5;
$id4='bouton_valider_travail';
$assoc4=array('class' =>$id4, 'size'=>$size4);
$boutonSubmit= &HTML_QuickForm::createElement('submit', 'champ_valider_travail',GTT_L_G_VALIDER,$assoc4);
$form->addElement($boutonSubmit);
$form->addElement('html',afficherOptionAplication($utilisateur));
return $form;
}
 
?>
Property changes:
Added: svn:executable
/trunk/test.php
New file
0,0 → 1,96
<?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
*/
// +------------------------------------------------------------------------------------------------------+
// | INCLUSION DE FICHIERS |
// +------------------------------------------------------------------------------------------------------+
 
//fichiers de la bibliotheque PEAR
include_once "Auth/Auth.php";
include_once "DB.php";
 
//fichiers de configuration
/*include_once '/home/shaheen/Documents/projet_tela_timesheet/specification_detaillee/classes_metier/gtt_config.inc.php';
include_once CHEMIN_LANGUES.'gtt_langue_fr.inc.php';
 
//classes metier
include_once CHEMIN_CLASSES_METIER.'gtt_utilisateur.class.php';
 
 
//classes
include_once CHEMIN_CLASSES.'gtt_authentification.php';
include_once CHEMIN_MENU.'gtt_menu_admin_utilisateur.php';
include_once CHEMIN_MENU.'gtt_menu_admin_categorie.php';
include_once CHEMIN_MENU.'gtt_menu_admin_motif_absence.php';
include_once CHEMIN_MENU.'gtt_menu_admin_statut.php';
include_once CHEMIN_MENU.'gtt_menu_admin_projet.php';
include_once CHEMIN_PRESENTATION.'gtt_calendrier.class.php';
 
 
//fonctions generiques
include_once '/home/shaheen/Documents/projet_tela_timesheet/specification_detaillee/presentation/gtt_fonctions_generique_affichage.php';
//creation du dsn
//$dsn="mysql://root:@localhost/gestion_test_v3";
$dsn="mysql://shaheen:shaheen@162.38.234.6/gestion_test_v3";
//connexion a la base de donnees
$GLOBALS['db']=DB::connect($dsn);
*/
include_once 'gtt_calendrier.class.php';
include_once 'gtt_config.inc.php';
 
$c=new Calendrier($PHP_SELF,31,2004);
//echo " mois :$c->mois";
echo "<br />";
 
//echo "no de semaine";
//echo date("W",mktime(0,0,0,7,29,2004));
 
$d=mktime(0,0,0,7,16,2004);
echo "<br />";
$l=$c->afficherCalendrier(2004);
 
echo $l;
$f=$c->isFerie($d);
echo "ferie : ".intval($f);
 
//$t=&Calendrier::lundiEtDimancheSemaine(33,2004);
//$b=date('d-M-Y',mktime(0,0,0,1,$t[0],2004));
//$d=date('d-M-Y',mktime(0,0,0,1,$t[1],2004));
//echo "lundi : $b";
//echo "dimanche : $d";
echo "timestamp: ".date('d-m-Y',$d)." <br />";
$dplus=$d+(3600*24*18);
echo "timestamp: ".date('d-m-Y',$dplus)." <br />";
 
?>
Property changes:
Added: svn:executable
/trunk/documentation/CVS/Repository
New file
0,0 → 1,0
gestion/version_3/documentation
/trunk/documentation/CVS/Root
New file
0,0 → 1,0
:extssh:jp_milcent@adullact.net:/cvsroot/eflore
/trunk/documentation/CVS/Entries
New file
0,0 → 1,4
/IMAGE TABLE.png/1.1/Wed Jun 30 13:15:31 2004//
/diagramme_classe .xmi/1.1/Fri Jun 25 12:55:55 2004//
/image classe.png/1.1/Wed Jun 30 13:15:31 2004//
/model_reverse_engineered.xml/1.1/Fri Jun 25 12:55:58 2004//
/trunk/documentation/diagramme_classe .xmi
New file
0,0 → 1,610
<?xml version="1.0" encoding="UTF-8"?>
<XMI xmlns:UML="org.omg/standards/UML" verified="false" timestamp="" xmi.version="1.2" >
<XMI.header>
<XMI.documentation>
<XMI.exporter>umbrello uml modeller http://uml.sf.net</XMI.exporter>
<XMI.exporterVersion>1.1</XMI.exporterVersion>
</XMI.documentation>
<XMI.model xmi.name="diagramme_classe " href="/home/mamzel/Documents/projet_tela_timesheet/specification_detaillee/orientation_des_solutions/diagramme_classe .xmi" />
<XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.3" />
</XMI.header>
<XMI.content>
<docsettings viewid="2" documentation="" uniqueid="173" />
<umlobjects>
<UML:Class stereotype="" package="" xmi.id="9" abstract="0" documentation="" name="Utilisateur" static="0" scope="200" >
<UML:Operation stereotype="" package="" xmi.id="66" type="Utilisateur" abstract="0" documentation="Cree un nouvel utilisateur" name="Utilisateur" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="int" abstract="0" documentation="identifiant de l'utilisateur
" name="id" static="0" scope="200" />
<UML:Parameter stereotype="" package="" xmi.id="2" value="" type="string" abstract="0" documentation="nom de la personne" name="nom" static="0" scope="200" />
<UML:Parameter stereotype="" package="" xmi.id="3" value="" type="int" abstract="0" documentation="prenom de la personne" name="prenom" static="0" scope="200" />
<UML:Parameter stereotype="" package="" xmi.id="4" value="" type="string" abstract="0" documentation="mot de passe utilisateur
" name="pass" static="0" scope="200" />
<UML:Parameter stereotype="" package="" xmi.id="5" value="" type="string" abstract="0" documentation="email de l'utilisateur" name="email" static="0" scope="200" />
<UML:Parameter stereotype="" package="" xmi.id="6" value="" type="string" abstract="0" documentation="ville de l'adresse" name="ville" static="0" scope="200" />
<UML:Parameter stereotype="" package="" xmi.id="7" value="" type="string" abstract="0" documentation="indique si l'utilisateur est salarié, stagiaire..." name="statut" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="67" type="void" abstract="0" documentation="peret d'enregistrer un utilisateur dans une base de donnees a partir du nom de la base de donnes, du nom de la table et des attributs à ajouter" name="enregistrerUtilisateur" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="nom de la basede donnees " name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="68" type="Utilisateur" abstract="0" documentation="permet de recuperer un utilisateur de la base de donnees" name="recupererUtilisateur" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="2" value="" type="string" abstract="0" documentation="nom de la base de donnees ou rcuperer les donnees" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="70" type="string" abstract="0" documentation="" name="getNom" static="0" scope="200" />
<UML:Operation stereotype="" package="" xmi.id="75" type="string" abstract="0" documentation="" name="getPrenom" static="0" scope="200" />
<UML:Operation stereotype="" package="" xmi.id="76" type="int" abstract="0" documentation="" name="getTelephone" static="0" scope="200" />
<UML:Operation stereotype="" package="" xmi.id="77" type="string" abstract="0" documentation="" name="getAdresse" static="0" scope="200" />
<UML:Operation stereotype="" package="" xmi.id="78" type="int" abstract="0" documentation="" name="getCode" static="0" scope="200" />
<UML:Operation stereotype="" package="" xmi.id="79" type="string" abstract="0" documentation="" name="getVille" static="0" scope="200" />
<UML:Operation stereotype="" package="" xmi.id="80" type="double" abstract="0" documentation="" name="getQuota" static="0" scope="200" />
<UML:Operation stereotype="" package="" xmi.id="81" type="double" abstract="0" documentation="" name="getConges" static="0" scope="200" />
<UML:Operation stereotype="" package="" xmi.id="82" type="int" abstract="0" documentation="" name="getAdmin" static="0" scope="200" />
<UML:Operation stereotype="" package="" xmi.id="83" type="int" abstract="0" documentation="" name="getAdmin2" static="0" scope="200" />
<UML:Operation stereotype="" package="" xmi.id="84" type="double" abstract="0" documentation="" name="getNotes" static="0" scope="200" />
<UML:Operation stereotype="" package="" xmi.id="85" type="string" abstract="0" documentation="" name="getStatut" static="0" scope="200" />
<UML:Operation stereotype="" package="" xmi.id="106" type="void" abstract="0" documentation="" name="supprimerUtilisateur" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Attribute stereotype="" package="" xmi.id="11" value="" type="int" abstract="0" documentation="" name="id_utilisateur" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="12" value="" type="string" abstract="0" documentation="" name="nom" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="14" value="" type="string" abstract="0" documentation="" name="prenom" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="15" value="" type="string" abstract="0" documentation="" name="password" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="16" value="" type="string" abstract="0" documentation="" name="email" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="17" value="" type="int" abstract="0" documentation="" name="telephone" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="18" value="" type="int" abstract="0" documentation="" name="adresse" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="19" value="" type="int" abstract="0" documentation="" name="code_postal" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="20" value="" type="int" abstract="0" documentation="" name="ville" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="21" value="" type="double" abstract="0" documentation="" name="quota_heures_sup" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="22" value="" type="double" abstract="0" documentation="" name="conges_payes" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="155" value="" type="float" abstract="0" documentation="" name="temps_de_travail" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="23" value="" type="int" abstract="0" documentation="" name="admin" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="24" value="" type="int" abstract="0" documentation="" name="admin2" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="25" value="" type="int" abstract="0" documentation="" name="Notes" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="62" value="" type="string" abstract="0" documentation="" name="statut" static="0" scope="201" />
</UML:Class>
<UML:Class stereotype="" package="" xmi.id="26" abstract="0" documentation="" name="Motif" static="0" scope="200" >
<UML:Operation stereotype="" package="" xmi.id="74" type="void" abstract="0" documentation="enregistre les motifs d'absence" name="enregistrerMotif" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="nom de la bse de donnees" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="87" type="Motif" abstract="0" documentation="" name="recupererMotif" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="nom de la base de donnees" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="104" type="void" abstract="0" documentation="" name="supprimerMotif" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="113" type="void" abstract="0" documentation="" name="setRtt" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="int" abstract="0" documentation="" name="typeRtt" static="0" scope="200" />
</UML:Operation>
<UML:Attribute stereotype="" package="" xmi.id="27" value="" type="int" abstract="0" documentation="" name="id_motif" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="29" value="" type="string" abstract="0" documentation="" name="libelle_motif" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="30" value="" type="int" abstract="0" documentation="" name="type_rtt" static="0" scope="201" />
</UML:Class>
<UML:Class stereotype="" package="" xmi.id="31" abstract="0" documentation="" name="Absence" static="0" scope="200" >
<UML:Operation stereotype="" package="" xmi.id="71" type="void" abstract="0" documentation="" name="enregistrerAbsence" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="nom de la base de donnees" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="72" type="void" abstract="0" documentation="" name="enregistrerDateEnvoi" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="2" value="" type="string" abstract="0" documentation="nom de la base de donnees" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="73" type="bool" abstract="0" documentation="renvoie un booleen
true si la lettre a ete envoyee et faux sinon" name="isEnvoi" static="0" scope="200" />
<UML:Operation stereotype="" package="" xmi.id="97" type="void" abstract="0" documentation="" name="setDateDeb" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="date" abstract="0" documentation="" name="dateDeb" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="98" type="void" abstract="0" documentation="" name="setDateFin" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="date" abstract="0" documentation="" name="dateFin" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="99" type="void" abstract="0" documentation="" name="setDateEnvoi" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="dateEnvoi" static="0" scope="200" />
</UML:Operation>
<UML:Attribute stereotype="" package="" xmi.id="32" value="" type="date" abstract="0" documentation="" name="date_debut_absence" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="33" value="" type="date" abstract="0" documentation="" name="date_fin_absence" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="34" value="" type="date" abstract="0" documentation="" name="date_envoi_lettre" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="124" value="" type="int" abstract="0" documentation="" name="utilisateur" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="125" value="" type="int" abstract="0" documentation="" name="motif" static="0" scope="201" />
</UML:Class>
<UML:Class stereotype="" package="" xmi.id="35" abstract="0" documentation="" name="Projet" static="0" scope="200" >
<UML:Operation stereotype="" package="" xmi.id="88" type="void" abstract="0" documentation="" name="enregistrerProjet" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="nom de la base de donnees" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="89" type="Projet" abstract="0" documentation="" name="recupererprojet" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="103" type="void" abstract="0" documentation="" name="supprimerProjet" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="132" type="void" abstract="0" documentation="" name="setAvancement" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="float" abstract="0" documentation="" name="pourcentage" static="0" scope="200" />
</UML:Operation>
<UML:Attribute stereotype="" package="" xmi.id="36" value="" type="int" abstract="0" documentation="" name="id_projet" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="37" value="" type="string" abstract="0" documentation="" name="Nom_projet" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="38" value="" type="string" abstract="0" documentation="" name="Description" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="131" value="" type="float" abstract="0" documentation="" name="avancement" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="157" value="" type="int" abstract="0" documentation="identifiant de la categorie a laquelle elle appartient" name="categorie" static="0" scope="200" />
</UML:Class>
<UML:Class stereotype="" package="" xmi.id="39" abstract="0" documentation="" name="Prevision" static="0" scope="200" >
<UML:Operation stereotype="" package="" xmi.id="92" type="void" abstract="0" documentation="" name="enregistrerPrevision" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="nom de la bse de donnees" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="93" type="Prevision" abstract="0" documentation="" name="recupererPrevision" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="nom de la bse de donnees" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="94" type="double" abstract="0" documentation="" name="getDuree" static="0" scope="200" />
<UML:Operation stereotype="" package="" xmi.id="95" type="void" abstract="0" documentation="" name="setDate" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="date" abstract="0" documentation="" name="Date" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="96" type="void" abstract="0" documentation="" name="setDuree" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="double" abstract="0" documentation="" name="Duree" static="0" scope="200" />
</UML:Operation>
<UML:Attribute stereotype="" package="" xmi.id="40" value="" type="date" abstract="0" documentation="" name="date_prevue" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="41" value="" type="int" abstract="0" documentation="" name="duree_prevue" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="126" value="" type="int" abstract="0" documentation="" name="utilisateur" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="127" value="" type="int" abstract="0" documentation="" name="projet" static="0" scope="201" />
</UML:Class>
<UML:Class stereotype="" package="" xmi.id="42" abstract="0" documentation="" name="Travail" static="0" scope="200" >
<UML:Operation stereotype="" package="" xmi.id="100" type="void" abstract="0" documentation="" name="enregistrerTravail" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="nomde la bse de donnees" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="114" type="void" abstract="0" documentation="" name="setDateTravail" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="date" abstract="0" documentation="" name="dateTravail" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="115" type="void" abstract="0" documentation="" name="setDuree" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="double" abstract="0" documentation="" name="duree" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="123" type="Travail" abstract="0" documentation="" name="recupererTravail" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Attribute stereotype="" package="" xmi.id="43" value="" type="date" abstract="0" documentation="" name="date_travail" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="44" value="" type="float" abstract="0" documentation="" name="duree_travail" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="128" value="" type="int" abstract="0" documentation="" name="utilisateur" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="129" value="" type="int" abstract="0" documentation="" name="projet" static="0" scope="201" />
</UML:Class>
<UML:Class stereotype="" package="" xmi.id="45" abstract="0" documentation="" name="Categorie" static="0" scope="200" >
<UML:Operation stereotype="" package="" xmi.id="90" type="void" abstract="0" documentation="" name="enregistrerCategorie" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="nom de la bse de donnees" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="91" type="Categorie" abstract="0" documentation="" name="recupererCategorie" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="105" type="void" abstract="0" documentation="" name="supprimerCategorie" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Attribute stereotype="" package="" xmi.id="46" value="" type="int" abstract="0" documentation="" name="id_categorie" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="47" value="" type="string" abstract="0" documentation="" name="libelle_categorie" static="0" scope="201" />
</UML:Class>
<UML:Class stereotype="" package="" xmi.id="48" abstract="0" documentation="" name="Frais" static="0" scope="200" >
<UML:Operation stereotype="" package="" xmi.id="102" type="void" abstract="0" documentation="" name="enregistrerFrais" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="107" type="Frais" abstract="0" documentation="" name="recupererFrais" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="108" type="void" abstract="0" documentation="" name="supprimerFrais" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Attribute stereotype="" package="" xmi.id="49" value="" type="int" abstract="0" documentation="" name="id_frais" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="50" value="" type="string" abstract="0" documentation="" name="libelle_frais" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="172" value="" type="date" abstract="0" documentation="" name="date_frais" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="173" value="" type="int" abstract="0" documentation="" name="utilisateur" static="0" scope="201" />
</UML:Class>
<UML:Class stereotype="" package="" xmi.id="53" abstract="0" documentation="" name="Note_De_Frais" static="0" scope="200" >
<UML:Operation stereotype="" package="" xmi.id="111" type="void" abstract="0" documentation="" name="enregistrerNotesFrais" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="nom de la base de donnees" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="112" type="Note_De_Frais" abstract="0" documentation="" name="recupererNotesFrais" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Attribute stereotype="" package="" xmi.id="54" value="" type="float" abstract="0" documentation="" name="montant_ht" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="63" value="" type="float" abstract="0" documentation="" name="montant_ttc" static="0" scope="201" />
</UML:Class>
<UML:Class stereotype="" package="" xmi.id="55" abstract="0" documentation="" name="Frais_kilometrique" static="0" scope="200" >
<UML:Operation stereotype="" package="" xmi.id="109" type="void" abstract="0" documentation="enregistre le sfrais kilometriques" name="enregistrerFraisKilo" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="110" type="Frais_kilometrique" abstract="0" documentation="" name="recupererFraisKilo" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="118" type="void" abstract="0" documentation="" name="setNombreKilo" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="float" abstract="0" documentation="" name="nb" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="119" type="void" abstract="0" documentation="" name="setObjet" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="Objet" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="120" type="void" abstract="0" documentation="" name="setTrajet" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="Trajet" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="122" type="void" abstract="0" documentation="" name="CalculMontant" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="float" abstract="0" documentation="" name="taux" static="0" scope="200" />
<UML:Parameter stereotype="" package="" xmi.id="2" value="" type="float" abstract="0" documentation="" name="nb" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="117" type="void" abstract="0" documentation="" name="setTaux" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="float" abstract="0" documentation="" name="taux" static="0" scope="200" />
</UML:Operation>
<UML:Attribute stereotype="" package="" xmi.id="56" value="" type="float" abstract="0" documentation="" name="taux_kilometre" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="57" value="" type="float" abstract="0" documentation="" name="nombre_kilometre" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="58" value="" type="string" abstract="0" documentation="" name="Objet" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="59" value="" type="string" abstract="0" documentation="" name="Trajet" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="64" value="" type="float" abstract="0" documentation="" name="montant_total" static="0" scope="201" />
</UML:Class>
<UML:Class stereotype="" package="" xmi.id="133" abstract="0" documentation="" name="Taches" static="0" scope="200" >
<UML:Operation stereotype="" package="" xmi.id="140" type="void" abstract="0" documentation="" name="enregistrerTache" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="nom de la base de donnees" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="142" type="Taches" abstract="0" documentation="" name="recupererTache" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="143" type="void" abstract="0" documentation="" name="supprimerTache" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="nom de la abse de donnees" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="144" type="void" abstract="0" documentation="" name="setAvancement" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="float" abstract="0" documentation="" name="avanc" static="0" scope="200" />
</UML:Operation>
<UML:Attribute stereotype="" package="" xmi.id="134" value="" type="int" abstract="0" documentation="" name="id_tache" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="135" value="" type="string" abstract="0" documentation="" name="nom_tache" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="136" value="" type="string" abstract="0" documentation="" name="description_tache" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="137" value="" type="date" abstract="0" documentation="" name="date_debut_tache" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="138" value="" type="float" abstract="0" documentation="" name="duree_prevue_tache" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="139" value="" type="float" abstract="0" documentation="" name="avancement_tache" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="156" value="" type="int" abstract="0" documentation="identifiant du projet auquel il appartient" name="projet" static="0" scope="201" />
</UML:Class>
<UML:Class stereotype="" package="" xmi.id="145" abstract="0" documentation="" name="prevision" static="0" scope="200" >
<UML:Operation stereotype="" package="" xmi.id="150" type="void" abstract="0" documentation="" name="enregistrerPrevision" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="151" type="prevision" abstract="0" documentation="" name="recupererPrevision" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="152" type="Float" abstract="0" documentation="" name="getDuree" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="153" type="void" abstract="0" documentation="" name="setDuree" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="float" abstract="0" documentation="" name="duree" static="0" scope="200" />
<UML:Parameter stereotype="" package="" xmi.id="2" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="154" type="void" abstract="0" documentation="" name="setDate" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="date" abstract="0" documentation="" name="date_prev" static="0" scope="200" />
<UML:Parameter stereotype="" package="" xmi.id="2" value="" type="string" abstract="0" documentation="" name="db" static="0" scope="200" />
</UML:Operation>
<UML:Attribute stereotype="" package="" xmi.id="146" value="" type="date" abstract="0" documentation="" name="date_prevue" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="147" value="" type="float" abstract="0" documentation="" name="duree_prevue" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="148" value="" type="int" abstract="0" documentation="" name="utilisateur" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="149" value="" type="int" abstract="0" documentation="" name="tache" static="0" scope="201" />
</UML:Class>
<UML:Class stereotype="" package="" xmi.id="158" abstract="0" documentation="" name="Depense" static="0" scope="200" >
<UML:Operation stereotype="" package="" xmi.id="162" type="void" abstract="0" documentation="" name="enregistrerDepense" static="0" scope="201" />
<UML:Operation stereotype="" package="" xmi.id="163" type="Depense" abstract="0" documentation="" name="recupererDepense" static="0" scope="201" />
<UML:Operation stereotype="" package="" xmi.id="164" type="void" abstract="0" documentation="" name="supprimerDepense" static="0" scope="200" />
<UML:Attribute stereotype="" package="" xmi.id="159" value="" type="int" abstract="0" documentation="" name="id_frais" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="160" value="" type="date" abstract="0" documentation="" name="date_frais" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="161" value="" type="int" abstract="0" documentation="" name="utilisateur" static="0" scope="201" />
</UML:Class>
<UML:Class stereotype="" package="" xmi.id="165" abstract="0" documentation="" name="Statut" static="0" scope="200" >
<UML:Operation stereotype="" package="" xmi.id="168" type="void" abstract="0" documentation="" name="enregistrerStatut" static="0" scope="200" />
<UML:Operation stereotype="" package="" xmi.id="169" type="Statut" abstract="0" documentation="" name="recupererStatut" static="0" scope="200" />
<UML:Operation stereotype="" package="" xmi.id="170" type="Statut" abstract="0" documentation="" name="Statut" static="0" scope="200" >
<UML:Parameter stereotype="" package="" xmi.id="1" value="" type="Tableau" abstract="0" documentation="" name="tableau" static="0" scope="200" />
</UML:Operation>
<UML:Operation stereotype="" package="" xmi.id="171" type="void" abstract="0" documentation="" name="supprimerStatut" static="0" scope="200" />
<UML:Attribute stereotype="" package="" xmi.id="166" value="" type="int" abstract="0" documentation="" name="id_statut" static="0" scope="201" />
<UML:Attribute stereotype="" package="" xmi.id="167" value="" type="string" abstract="0" documentation="" name="libelle_statut" static="0" scope="201" />
</UML:Class>
</umlobjects>
<diagrams>
<diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" showgrid="0" showopsig="0" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="2" documentation="" type="402" showops="0" showpackage="0" name="diagramme de classes" localid="30000" showstereotype="0" showscope="1" font="Sans,10,-1,5,0,0,0,0,0,0" linecolor="#ff0000" >
<widgets>
<UML:ConceptWidget usesdiagramfillcolour="0" width="173" showattsigs="601" usesdiagramusefillcolour="0" x="25" linecolour="#ff0000" y="13" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="238" usefillcolor="1" showattributes="1" xmi.id="9" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:ConceptWidget usesdiagramfillcolour="0" width="131" showattsigs="601" usesdiagramusefillcolour="0" x="625" linecolour="#ff0000" y="31" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="112" usefillcolor="1" showattributes="1" xmi.id="26" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:ConceptWidget usesdiagramfillcolour="0" width="171" showattsigs="601" usesdiagramusefillcolour="0" x="344" linecolour="#ff0000" y="7" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="168" usefillcolor="1" showattributes="1" xmi.id="31" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:ConceptWidget usesdiagramfillcolour="0" width="130" showattsigs="601" usesdiagramusefillcolour="0" x="689" linecolour="#ff0000" y="177" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="140" usefillcolor="1" showattributes="1" xmi.id="35" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:ConceptWidget usesdiagramfillcolour="0" width="137" showattsigs="601" usesdiagramusefillcolour="0" x="318" linecolour="#ff0000" y="178" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="126" usefillcolor="1" showattributes="1" xmi.id="42" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:ConceptWidget usesdiagramfillcolour="0" width="153" showattsigs="601" usesdiagramusefillcolour="0" x="371" linecolour="#ff0000" y="322" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="84" usefillcolor="1" showattributes="1" xmi.id="45" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:ConceptWidget usesdiagramfillcolour="0" width="128" showattsigs="601" usesdiagramusefillcolour="0" x="23" linecolour="#ff0000" y="338" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="112" usefillcolor="1" showattributes="1" xmi.id="48" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:ConceptWidget usesdiagramfillcolour="0" width="158" showattsigs="601" usesdiagramusefillcolour="0" x="12" linecolour="#ff0000" y="493" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="70" usefillcolor="1" showattributes="1" xmi.id="53" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:ConceptWidget usesdiagramfillcolour="0" width="156" showattsigs="601" usesdiagramusefillcolour="0" x="205" linecolour="#ff0000" y="390" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="182" usefillcolor="1" showattributes="1" xmi.id="55" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:ConceptWidget usesdiagramfillcolour="0" width="169" showattsigs="601" usesdiagramusefillcolour="0" x="637" linecolour="#ff0000" y="410" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="168" usefillcolor="1" showattributes="1" xmi.id="133" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:ConceptWidget usesdiagramfillcolour="0" width="150" showattsigs="601" usesdiagramusefillcolour="0" x="388" linecolour="#ff0000" y="416" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="140" usefillcolor="1" showattributes="1" xmi.id="145" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:ConceptWidget usesdiagramfillcolour="0" width="139" showattsigs="601" usesdiagramusefillcolour="0" x="170" linecolour="#ff0000" y="273" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="98" usefillcolor="1" showattributes="1" xmi.id="165" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Sans,10,-1,5,0,0,0,0,0,0" />
</widgets>
<messages/>
<associations>
<UML:AssocWidget totalcounta="3" indexa="1" totalcountb="2" indexb="1" widgetbid="31" widgetaid="9" documentation="" type="503" >
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="200" linecolour="none" y="72" operation="" usesdiagramlinecolour="1" role="701" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="1" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="329" linecolour="none" y="93" operation="" usesdiagramlinecolour="1" role="702" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="*" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="271" linecolour="none" y="91" operation="" usesdiagramlinecolour="1" role="703" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="fait" font="Sans,10,-1,5,0,0,0,0,0,0" />
<linepath>
<startpoint startx="198" starty="92" />
<endpoint endx="344" endy="91" />
</linepath>
</UML:AssocWidget>
<UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="26" widgetaid="31" documentation="" type="503" >
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="517" linecolour="none" y="71" operation="" usesdiagramlinecolour="1" role="701" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="*" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="609" linecolour="none" y="89" operation="" usesdiagramlinecolour="1" role="702" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="1" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="570" linecolour="none" y="89" operation="" usesdiagramlinecolour="1" role="703" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="explique" font="Sans,10,-1,5,0,0,0,0,0,0" />
<linepath>
<startpoint startx="515" starty="91" />
<endpoint endx="625" endy="87" />
</linepath>
</UML:AssocWidget>
<UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="48" widgetaid="53" documentation="" type="500" >
<linepath>
<startpoint startx="91" starty="493" />
<endpoint endx="87" endy="450" />
</linepath>
</UML:AssocWidget>
<UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="48" widgetaid="55" documentation="" type="500" >
<linepath>
<startpoint startx="205" starty="481" />
<endpoint endx="151" endy="394" />
</linepath>
</UML:AssocWidget>
<UML:AssocWidget totalcounta="3" indexa="2" totalcountb="2" indexb="1" widgetbid="42" widgetaid="9" documentation="" type="503" >
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="200" linecolour="none" y="173" operation="" usesdiagramlinecolour="1" role="701" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="1" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="303" linecolour="none" y="221" operation="" usesdiagramlinecolour="1" role="702" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="*" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="258" linecolour="none" y="206" operation="" usesdiagramlinecolour="1" role="703" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="effectue" font="Sans,10,-1,5,0,0,0,0,0,0" />
<linepath>
<startpoint startx="198" starty="171" />
<endpoint endx="318" endy="241" />
</linepath>
</UML:AssocWidget>
<UML:AssocWidget totalcounta="4" indexa="1" totalcountb="2" indexb="1" widgetbid="42" widgetaid="35" documentation="" type="503" >
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="673" linecolour="none" y="214" operation="" usesdiagramlinecolour="1" role="701" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="1" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="457" linecolour="none" y="221" operation="" usesdiagramlinecolour="1" role="702" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="*" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="572" linecolour="none" y="226" operation="" usesdiagramlinecolour="1" role="703" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="" font="Sans,10,-1,5,0,0,0,0,0,0" />
<linepath>
<startpoint startx="689" starty="212" />
<endpoint endx="455" endy="241" />
</linepath>
</UML:AssocWidget>
<UML:AssocWidget totalcounta="4" indexa="2" totalcountb="2" indexb="1" widgetbid="45" widgetaid="35" documentation="" type="501" >
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="662" linecolour="none" y="249" operation="" usesdiagramlinecolour="1" role="701" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="1..*" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="449" linecolour="none" y="302" operation="" usesdiagramlinecolour="1" role="702" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="1" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="568" linecolour="none" y="284" operation="" usesdiagramlinecolour="1" role="703" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="" font="Sans,10,-1,5,0,0,0,0,0,0" />
<linepath>
<startpoint startx="689" starty="247" />
<endpoint endx="447" endy="322" />
</linepath>
</UML:AssocWidget>
<UML:AssocWidget totalcounta="4" indexa="3" totalcountb="2" indexb="1" widgetbid="145" widgetaid="35" documentation="" type="503" >
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="673" linecolour="none" y="284" operation="" usesdiagramlinecolour="1" role="701" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="1" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="465" linecolour="none" y="396" operation="" usesdiagramlinecolour="1" role="702" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="*" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="576" linecolour="none" y="349" operation="" usesdiagramlinecolour="1" role="703" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="concerne" font="Sans,10,-1,5,0,0,0,0,0,0" />
<linepath>
<startpoint startx="689" starty="282" />
<endpoint endx="463" endy="416" />
</linepath>
</UML:AssocWidget>
<UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="133" widgetaid="133" documentation="" type="503" >
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="664" linecolour="none" y="390" operation="" usesdiagramlinecolour="1" role="701" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="*" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="770" linecolour="none" y="393" operation="" usesdiagramlinecolour="1" role="702" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="*" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="649" linecolour="none" y="350" operation="" usesdiagramlinecolour="1" role="703" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="a pour predecesseur" font="Sans,10,-1,5,0,0,0,0,0,0" />
<linepath>
<startpoint startx="679" starty="410" />
<endpoint endx="763" endy="410" />
<point x="679" y="360" />
<point x="763" y="360" />
</linepath>
</UML:AssocWidget>
<UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="133" widgetaid="145" documentation="" type="503" >
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="540" linecolour="none" y="488" operation="" usesdiagramlinecolour="1" role="701" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="*" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="621" linecolour="none" y="474" operation="" usesdiagramlinecolour="1" role="702" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="1" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="587" linecolour="none" y="490" operation="" usesdiagramlinecolour="1" role="703" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="prevoit" font="Sans,10,-1,5,0,0,0,0,0,0" />
<linepath>
<startpoint startx="538" starty="486" />
<endpoint endx="637" endy="494" />
</linepath>
</UML:AssocWidget>
<UML:AssocWidget totalcounta="3" indexa="2" totalcountb="2" indexb="1" widgetbid="35" widgetaid="133" documentation="" type="501" >
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="751" linecolour="none" y="390" operation="" usesdiagramlinecolour="1" role="701" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="*" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="738" linecolour="none" y="319" operation="" usesdiagramlinecolour="1" role="702" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="1" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="751" linecolour="none" y="363" operation="" usesdiagramlinecolour="1" role="703" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="" font="Sans,10,-1,5,0,0,0,0,0,0" />
<linepath>
<startpoint startx="749" starty="410" />
<endpoint endx="754" endy="317" />
</linepath>
</UML:AssocWidget>
<UML:AssocWidget totalcounta="3" indexa="1" totalcountb="2" indexb="1" widgetbid="48" widgetaid="9" documentation="" type="503" >
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="84" linecolour="none" y="253" operation="" usesdiagramlinecolour="1" role="701" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="1" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="72" linecolour="none" y="318" operation="" usesdiagramlinecolour="1" role="702" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="*" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="84" linecolour="none" y="294" operation="" usesdiagramlinecolour="1" role="703" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="depense" font="Sans,10,-1,5,0,0,0,0,0,0" />
<linepath>
<startpoint startx="82" starty="251" />
<endpoint endx="87" endy="338" />
</linepath>
</UML:AssocWidget>
<UML:AssocWidget totalcounta="3" indexa="2" totalcountb="2" indexb="1" widgetbid="165" widgetaid="9" documentation="" type="503" >
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="142" linecolour="none" y="253" operation="" usesdiagramlinecolour="1" role="701" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="*" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="223" linecolour="none" y="253" operation="" usesdiagramlinecolour="1" role="702" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="1" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="165" linecolour="none" y="251" operation="" usesdiagramlinecolour="1" role="703" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="possede" font="Sans,10,-1,5,0,0,0,0,0,0" />
<linepath>
<startpoint startx="140" starty="251" />
<endpoint endx="239" endy="273" />
</linepath>
</UML:AssocWidget>
</associations>
</diagram>
<diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" showgrid="0" showopsig="1" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="3" documentation="" type="405" showops="1" showpackage="0" name="diagramme d'activités" localid="30000" showstereotype="0" showscope="1" font="Sans,10,-1,5,0,0,0,0,0,0" linecolor="#ff0000" >
<widgets>
<UML:ActivityWidget usesdiagramfillcolour="1" width="10" activityname="Activity" usesdiagramusefillcolour="1" x="328" linecolour="none" y="623" usesdiagramlinecolour="1" fillcolour="none" height="10" usefillcolor="1" xmi.id="4" documentation="" activitytype="0" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:ActivityWidget usesdiagramfillcolour="1" width="132" activityname="présenter fenêtre login" usesdiagramusefillcolour="1" x="275" linecolour="none" y="663" usesdiagramlinecolour="1" fillcolour="none" height="24" usefillcolor="1" xmi.id="5" documentation="" activitytype="1" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:ActivityWidget usesdiagramfillcolour="1" width="20" activityname="Activity" usesdiagramusefillcolour="1" x="337" linecolour="none" y="717" usesdiagramlinecolour="1" fillcolour="none" height="20" usefillcolor="1" xmi.id="6" documentation="" activitytype="3" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:ActivityWidget usesdiagramfillcolour="1" width="95" activityname="page principale" usesdiagramusefillcolour="1" x="196" linecolour="none" y="749" usesdiagramlinecolour="1" fillcolour="none" height="24" usefillcolor="1" xmi.id="7" documentation="" activitytype="1" font="Sans,10,-1,5,0,0,0,0,0,0" />
<UML:ActivityWidget usesdiagramfillcolour="1" width="95" activityname="message erreur" usesdiagramusefillcolour="1" x="399" linecolour="none" y="744" usesdiagramlinecolour="1" fillcolour="none" height="24" usefillcolor="1" xmi.id="8" documentation="" activitytype="1" font="Sans,10,-1,5,0,0,0,0,0,0" />
</widgets>
<messages/>
<associations/>
</diagram>
</diagrams>
<listview>
<listitem open="1" type="800" id="-1" label="Vues" >
<listitem open="1" type="802" id="-1" label="Cas d'utilisations" />
<listitem open="1" type="801" id="-1" label="Vue logique" >
<listitem open="1" type="813" id="31" label="Absence" >
<listitem open="0" type="814" id="32" label="date_debut_absence" />
<listitem open="0" type="814" id="34" label="date_envoi_lettre" />
<listitem open="0" type="814" id="33" label="date_fin_absence" />
<listitem open="0" type="815" id="71" label="enregistrerAbsence" />
<listitem open="0" type="815" id="72" label="enregistrerDateEnvoi" />
<listitem open="0" type="815" id="73" label="isEnvoi" />
<listitem open="0" type="814" id="125" label="motif" />
<listitem open="0" type="815" id="97" label="setDateDeb" />
<listitem open="0" type="815" id="99" label="setDateEnvoi" />
<listitem open="0" type="815" id="98" label="setDateFin" />
<listitem open="0" type="814" id="124" label="utilisateur" />
</listitem>
<listitem open="1" type="813" id="45" label="Categorie" >
<listitem open="0" type="815" id="90" label="enregistrerCategorie" />
<listitem open="0" type="814" id="46" label="id_categorie" />
<listitem open="0" type="814" id="47" label="libelle_categorie" />
<listitem open="0" type="815" id="91" label="recupererCategorie" />
<listitem open="0" type="815" id="105" label="supprimerCategorie" />
</listitem>
<listitem open="1" type="813" id="158" label="Depense" >
<listitem open="0" type="814" id="160" label="date_frais" />
<listitem open="0" type="815" id="162" label="enregistrerDepense" />
<listitem open="0" type="814" id="159" label="id_frais" />
<listitem open="0" type="815" id="163" label="recupererDepense" />
<listitem open="0" type="815" id="164" label="supprimerDepense" />
<listitem open="0" type="814" id="161" label="utilisateur" />
</listitem>
<listitem open="0" type="809" id="3" label="diagramme d'activités" />
<listitem open="0" type="807" id="2" label="diagramme de classes" />
<listitem open="1" type="813" id="48" label="Frais" >
<listitem open="0" type="814" id="172" label="date_frais" />
<listitem open="0" type="815" id="102" label="enregistrerFrais" />
<listitem open="0" type="814" id="49" label="id_frais" />
<listitem open="0" type="814" id="50" label="libelle_frais" />
<listitem open="0" type="815" id="107" label="recupererFrais" />
<listitem open="0" type="815" id="108" label="supprimerFrais" />
<listitem open="0" type="814" id="173" label="utilisateur" />
</listitem>
<listitem open="1" type="813" id="55" label="Frais_kilometrique" >
<listitem open="0" type="815" id="122" label="CalculMontant" />
<listitem open="0" type="815" id="109" label="enregistrerFraisKilo" />
<listitem open="0" type="814" id="64" label="montant_total" />
<listitem open="0" type="814" id="57" label="nombre_kilometre" />
<listitem open="0" type="814" id="58" label="Objet" />
<listitem open="0" type="815" id="110" label="recupererFraisKilo" />
<listitem open="0" type="815" id="118" label="setNombreKilo" />
<listitem open="0" type="815" id="119" label="setObjet" />
<listitem open="0" type="815" id="117" label="setTaux" />
<listitem open="0" type="815" id="120" label="setTrajet" />
<listitem open="0" type="814" id="56" label="taux_kilometre" />
<listitem open="0" type="814" id="59" label="Trajet" />
</listitem>
<listitem open="1" type="813" id="26" label="Motif" >
<listitem open="0" type="815" id="74" label="enregistrerMotif" />
<listitem open="0" type="814" id="27" label="id_motif" />
<listitem open="0" type="814" id="29" label="libelle_motif" />
<listitem open="0" type="815" id="87" label="recupererMotif" />
<listitem open="0" type="815" id="113" label="setRtt" />
<listitem open="0" type="815" id="104" label="supprimerMotif" />
<listitem open="0" type="814" id="30" label="type_rtt" />
</listitem>
<listitem open="1" type="813" id="53" label="Note_De_Frais" >
<listitem open="0" type="815" id="111" label="enregistrerNotesFrais" />
<listitem open="0" type="814" id="54" label="montant_ht" />
<listitem open="0" type="814" id="63" label="montant_ttc" />
<listitem open="0" type="815" id="112" label="recupererNotesFrais" />
</listitem>
<listitem open="1" type="813" id="145" label="prevision" >
<listitem open="0" type="814" id="146" label="date_prevue" />
<listitem open="0" type="814" id="147" label="duree_prevue" />
<listitem open="0" type="815" id="150" label="enregistrerPrevision" />
<listitem open="0" type="815" id="152" label="getDuree" />
<listitem open="0" type="815" id="151" label="recupererPrevision" />
<listitem open="0" type="815" id="154" label="setDate" />
<listitem open="0" type="815" id="153" label="setDuree" />
<listitem open="0" type="814" id="149" label="tache" />
<listitem open="0" type="814" id="148" label="utilisateur" />
</listitem>
<listitem open="1" type="813" id="39" label="Prevision" >
<listitem open="0" type="814" id="40" label="date_prevue" />
<listitem open="0" type="814" id="41" label="duree_prevue" />
<listitem open="0" type="815" id="92" label="enregistrerPrevision" />
<listitem open="0" type="815" id="94" label="getDuree" />
<listitem open="0" type="814" id="127" label="projet" />
<listitem open="0" type="815" id="93" label="recupererPrevision" />
<listitem open="0" type="815" id="95" label="setDate" />
<listitem open="0" type="815" id="96" label="setDuree" />
<listitem open="0" type="814" id="126" label="utilisateur" />
</listitem>
<listitem open="1" type="813" id="35" label="Projet" >
<listitem open="0" type="814" id="131" label="avancement" />
<listitem open="0" type="814" id="157" label="categorie" />
<listitem open="0" type="814" id="38" label="Description" />
<listitem open="0" type="815" id="88" label="enregistrerProjet" />
<listitem open="0" type="814" id="36" label="id_projet" />
<listitem open="0" type="814" id="37" label="Nom_projet" />
<listitem open="0" type="815" id="89" label="recupererprojet" />
<listitem open="0" type="815" id="132" label="setAvancement" />
<listitem open="0" type="815" id="103" label="supprimerProjet" />
</listitem>
<listitem open="1" type="813" id="165" label="Statut" >
<listitem open="0" type="815" id="168" label="enregistrerStatut" />
<listitem open="0" type="814" id="166" label="id_statut" />
<listitem open="0" type="814" id="167" label="libelle_statut" />
<listitem open="0" type="815" id="169" label="recupererStatut" />
<listitem open="0" type="815" id="170" label="Statut" />
<listitem open="0" type="815" id="171" label="supprimerStatut" />
</listitem>
<listitem open="1" type="813" id="133" label="Taches" >
<listitem open="0" type="814" id="139" label="avancement_tache" />
<listitem open="0" type="814" id="137" label="date_debut_tache" />
<listitem open="0" type="814" id="136" label="description_tache" />
<listitem open="0" type="814" id="138" label="duree_prevue_tache" />
<listitem open="0" type="815" id="140" label="enregistrerTache" />
<listitem open="0" type="814" id="134" label="id_tache" />
<listitem open="0" type="814" id="135" label="nom_tache" />
<listitem open="0" type="814" id="156" label="projet" />
<listitem open="0" type="815" id="142" label="recupererTache" />
<listitem open="0" type="815" id="144" label="setAvancement" />
<listitem open="0" type="815" id="143" label="supprimerTache" />
</listitem>
<listitem open="1" type="813" id="42" label="Travail" >
<listitem open="0" type="814" id="43" label="date_travail" />
<listitem open="0" type="814" id="44" label="duree_travail" />
<listitem open="0" type="815" id="100" label="enregistrerTravail" />
<listitem open="0" type="814" id="129" label="projet" />
<listitem open="0" type="815" id="123" label="recupererTravail" />
<listitem open="0" type="815" id="114" label="setDateTravail" />
<listitem open="0" type="815" id="115" label="setDuree" />
<listitem open="0" type="814" id="128" label="utilisateur" />
</listitem>
<listitem open="1" type="813" id="9" label="Utilisateur" >
<listitem open="0" type="814" id="23" label="admin" />
<listitem open="0" type="814" id="24" label="admin2" />
<listitem open="0" type="814" id="18" label="adresse" />
<listitem open="0" type="814" id="19" label="code_postal" />
<listitem open="0" type="814" id="22" label="conges_payes" />
<listitem open="0" type="814" id="16" label="email" />
<listitem open="0" type="815" id="67" label="enregistrerUtilisateur" />
<listitem open="0" type="815" id="82" label="getAdmin" />
<listitem open="0" type="815" id="83" label="getAdmin2" />
<listitem open="0" type="815" id="77" label="getAdresse" />
<listitem open="0" type="815" id="78" label="getCode" />
<listitem open="0" type="815" id="81" label="getConges" />
<listitem open="0" type="815" id="70" label="getNom" />
<listitem open="0" type="815" id="84" label="getNotes" />
<listitem open="0" type="815" id="75" label="getPrenom" />
<listitem open="0" type="815" id="80" label="getQuota" />
<listitem open="0" type="815" id="85" label="getStatut" />
<listitem open="0" type="815" id="76" label="getTelephone" />
<listitem open="0" type="815" id="79" label="getVille" />
<listitem open="0" type="814" id="11" label="id_utilisateur" />
<listitem open="0" type="814" id="12" label="nom" />
<listitem open="0" type="814" id="25" label="Notes" />
<listitem open="0" type="814" id="15" label="password" />
<listitem open="0" type="814" id="14" label="prenom" />
<listitem open="0" type="814" id="21" label="quota_heures_sup" />
<listitem open="0" type="815" id="68" label="recupererUtilisateur" />
<listitem open="0" type="814" id="62" label="statut" />
<listitem open="0" type="815" id="106" label="supprimerUtilisateur" />
<listitem open="0" type="814" id="17" label="telephone" />
<listitem open="0" type="814" id="155" label="temps_de_travail" />
<listitem open="0" type="815" id="66" label="Utilisateur" />
<listitem open="0" type="814" id="20" label="ville" />
</listitem>
</listitem>
</listitem>
</listview>
</XMI.content>
</XMI>
/trunk/documentation/IMAGE TABLE.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/documentation/IMAGE TABLE.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/documentation/model_reverse_engineered.xml
New file
0,0 → 1,902
<?xml version="1.0" standalone="yes" ?>
<DBMODEL Version="4.0">
<SETTINGS>
<GLOBALSETTINGS ModelName="model_reverse_engineered" IDModel="0" IDVersion="0" VersionStr="1.0.0.0" Comments="" UseVersionHistroy="1" AutoIncVersion="1" DatabaseType="MySQL" ZoomFac="100.00" XPos="262" YPos="264" DefaultDataType="5" DefaultTablePrefix="0" DefSaveDBConn="" DefSyncDBConn="" DefQueryDBConn="" Printer="" HPageCount="4.0" PageAspectRatio="1.440892512336408" PageOrientation="1" PageFormat="A4 (210x297 mm, 8.26x11.7 inches)" SelectedPages="" UsePositionGrid="0" PositionGridX="20" PositionGridY="20" TableNameInRefs="0" DefaultTableType="0" ActivateRefDefForNewRelations="1" FKPrefix="" FKPostfix="" CreateFKRefDefIndex="0" DBQuoteCharacter="`" CreateSQLforLinkedObjects="0" DefModelFont="Nimbus Sans L" CanvasWidth="4096" CanvasHeight="2842" />
<DATATYPEGROUPS>
<DATATYPEGROUP Name="Numeric Types" Icon="1" />
<DATATYPEGROUP Name="Date and Time Types" Icon="2" />
<DATATYPEGROUP Name="String Types" Icon="3" />
<DATATYPEGROUP Name="Blob and Text Types" Icon="4" />
<DATATYPEGROUP Name="User defined Types" Icon="5" />
<DATATYPEGROUP Name="Geographic Types" Icon="6" />
</DATATYPEGROUPS>
<DATATYPES>
<DATATYPE ID="1" IDGroup="0" TypeName="TINYINT" Description="A very small integer. The signed range is -128 to 127. The unsigned range is 0 to 255." ParamCount="1" OptionCount="2" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="length" />
</PARAMS>
<OPTIONS>
<OPTION Name="UNSIGNED" Default="1" />
<OPTION Name="ZEROFILL" Default="0" />
</OPTIONS>
</DATATYPE>
<DATATYPE ID="2" IDGroup="0" TypeName="SMALLINT" Description="A small integer. The signed range is -32768 to 32767. The unsigned range is 0 to 65535." ParamCount="1" OptionCount="2" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="length" />
</PARAMS>
<OPTIONS>
<OPTION Name="UNSIGNED" Default="1" />
<OPTION Name="ZEROFILL" Default="0" />
</OPTIONS>
</DATATYPE>
<DATATYPE ID="3" IDGroup="0" TypeName="MEDIUMINT" Description="A medium-size integer. The signed range is -8388608 to 8388607. The unsigned range is 0 to 16777215." ParamCount="1" OptionCount="2" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="length" />
</PARAMS>
<OPTIONS>
<OPTION Name="UNSIGNED" Default="1" />
<OPTION Name="ZEROFILL" Default="0" />
</OPTIONS>
</DATATYPE>
<DATATYPE ID="4" IDGroup="0" TypeName="INT" Description="A normal-size integer. The signed range is -2147483648 to 2147483647. The unsigned range is 0 to 4294967295." ParamCount="1" OptionCount="2" ParamRequired="0" EditParamsAsString="0" SynonymGroup="1" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="length" />
</PARAMS>
<OPTIONS>
<OPTION Name="UNSIGNED" Default="0" />
<OPTION Name="ZEROFILL" Default="0" />
</OPTIONS>
</DATATYPE>
<DATATYPE ID="5" IDGroup="0" TypeName="INTEGER" Description="A normal-size integer. The signed range is -2147483648 to 2147483647. The unsigned range is 0 to 4294967295." ParamCount="1" OptionCount="2" ParamRequired="0" EditParamsAsString="0" SynonymGroup="1" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="length" />
</PARAMS>
<OPTIONS>
<OPTION Name="UNSIGNED" Default="1" />
<OPTION Name="ZEROFILL" Default="0" />
</OPTIONS>
</DATATYPE>
<DATATYPE ID="6" IDGroup="0" TypeName="BIGINT" Description="A large integer. The signed range is -9223372036854775808 to 9223372036854775807. The unsigned range is 0 to 18446744073709551615." ParamCount="1" OptionCount="2" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="length" />
</PARAMS>
<OPTIONS>
<OPTION Name="UNSIGNED" Default="0" />
<OPTION Name="ZEROFILL" Default="0" />
</OPTIONS>
</DATATYPE>
<DATATYPE ID="7" IDGroup="0" TypeName="FLOAT" Description="A small (single-precision) floating-point number. Cannot be unsigned. Allowable values are -3.402823466E+38 to -1.175494351E-38, 0, and 1.175494351E-38 to 3.402823466E+38." ParamCount="1" OptionCount="1" ParamRequired="1" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="precision" />
</PARAMS>
<OPTIONS>
<OPTION Name="ZEROFILL" Default="0" />
</OPTIONS>
</DATATYPE>
<DATATYPE ID="8" IDGroup="0" TypeName="FLOAT" Description="A small (single-precision) floating-point number. Cannot be unsigned. Allowable values are -3.402823466E+38 to -1.175494351E-38, 0, and 1.175494351E-38 to 3.402823466E+38." ParamCount="2" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="length" />
<PARAM Name="decimals" />
</PARAMS>
<OPTIONS>
<OPTION Name="ZEROFILL" Default="0" />
</OPTIONS>
</DATATYPE>
<DATATYPE ID="9" IDGroup="0" TypeName="DOUBLE" Description="A normal-size (double-precision) floating-point number. Cannot be unsigned. Allowable values are -1.7976931348623157E+308 to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to 1.7976931348623157E+308." ParamCount="2" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="2" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="length" />
<PARAM Name="decimals" />
</PARAMS>
<OPTIONS>
<OPTION Name="ZEROFILL" Default="0" />
</OPTIONS>
</DATATYPE>
<DATATYPE ID="10" IDGroup="0" TypeName="DOUBLE PRECISION" Description="This is a synonym for DOUBLE." ParamCount="2" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="2" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="length" />
<PARAM Name="decimals" />
</PARAMS>
<OPTIONS>
<OPTION Name="ZEROFILL" Default="0" />
</OPTIONS>
</DATATYPE>
<DATATYPE ID="11" IDGroup="0" TypeName="REAL" Description="This is a synonym for DOUBLE." ParamCount="2" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="2" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="length" />
<PARAM Name="decimals" />
</PARAMS>
<OPTIONS>
<OPTION Name="ZEROFILL" Default="0" />
</OPTIONS>
</DATATYPE>
<DATATYPE ID="12" IDGroup="0" TypeName="DECIMAL" Description="An unpacked floating-point number. Cannot be unsigned. Behaves like a CHAR column." ParamCount="2" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="3" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="length" />
<PARAM Name="decimals" />
</PARAMS>
<OPTIONS>
<OPTION Name="ZEROFILL" Default="0" />
</OPTIONS>
</DATATYPE>
<DATATYPE ID="13" IDGroup="0" TypeName="NUMERIC" Description="This is a synonym for DECIMAL." ParamCount="2" OptionCount="1" ParamRequired="1" EditParamsAsString="0" SynonymGroup="3" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="length" />
<PARAM Name="decimals" />
</PARAMS>
<OPTIONS>
<OPTION Name="ZEROFILL" Default="0" />
</OPTIONS>
</DATATYPE>
<DATATYPE ID="14" IDGroup="1" TypeName="DATE" Description="A date. The supported range is \a1000-01-01\a to \a9999-12-31\a." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="15" IDGroup="1" TypeName="DATETIME" Description="A date and time combination. The supported range is \a1000-01-01 00:00:00\a to \a9999-12-31 23:59:59\a." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="16" IDGroup="1" TypeName="TIMESTAMP" Description="A timestamp. The range is \a1970-01-01 00:00:00\a to sometime in the year 2037. The length can be 14 (or missing), 12, 10, 8, 6, 4, or 2 representing YYYYMMDDHHMMSS, ... , YYYYMMDD, ... , YY formats." ParamCount="1" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="length" />
</PARAMS>
</DATATYPE>
<DATATYPE ID="17" IDGroup="1" TypeName="TIME" Description="A time. The range is \a-838:59:59\a to \a838:59:59\a." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="18" IDGroup="1" TypeName="YEAR" Description="A year in 2- or 4-digit format (default is 4-digit)." ParamCount="1" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="length" />
</PARAMS>
</DATATYPE>
<DATATYPE ID="19" IDGroup="2" TypeName="CHAR" Description="A fixed-length string (1 to 255 characters) that is always right-padded with spaces to the specified length when stored. values are sorted and compared in case-insensitive fashion according to the default character set unless the BINARY keyword is given." ParamCount="1" OptionCount="1" ParamRequired="1" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="length" />
</PARAMS>
<OPTIONS>
<OPTION Name="BINARY" Default="0" />
</OPTIONS>
</DATATYPE>
<DATATYPE ID="20" IDGroup="2" TypeName="VARCHAR" Description="A variable-length string (1 to 255 characters). Values are sorted and compared in case-sensitive fashion unless the BINARY keyword is given." ParamCount="1" OptionCount="1" ParamRequired="1" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="length" />
</PARAMS>
<OPTIONS>
<OPTION Name="BINARY" Default="0" />
</OPTIONS>
</DATATYPE>
<DATATYPE ID="21" IDGroup="2" TypeName="BIT" Description="This is a synonym for CHAR(1)." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="22" IDGroup="2" TypeName="BOOL" Description="This is a synonym for CHAR(1)." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="23" IDGroup="3" TypeName="TINYBLOB" Description="A column maximum length of 255 (2^8 - 1) characters. Values are sorted and compared in case-sensitive fashion." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="24" IDGroup="3" TypeName="BLOB" Description="A column maximum length of 65535 (2^16 - 1) characters. Values are sorted and compared in case-sensitive fashion." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="25" IDGroup="3" TypeName="MEDIUMBLOB" Description="A column maximum length of 16777215 (2^24 - 1) characters. Values are sorted and compared in case-sensitive fashion." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="26" IDGroup="3" TypeName="LONGBLOB" Description="A column maximum length of 4294967295 (2^32 - 1) characters. Values are sorted and compared in case-sensitive fashion." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="27" IDGroup="3" TypeName="TINYTEXT" Description="A column maximum length of 255 (2^8 - 1) characters." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="28" IDGroup="3" TypeName="TEXT" Description="A column maximum length of 65535 (2^16 - 1) characters." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="29" IDGroup="3" TypeName="MEDIUMTEXT" Description="A column maximum length of 16777215 (2^24 - 1) characters." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="30" IDGroup="3" TypeName="LONGTEXT" Description="A column maximum length of 4294967295 (2^32 - 1) characters." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="31" IDGroup="3" TypeName="ENUM" Description="An enumeration. A string object that can have only one value, chosen from the list of values." ParamCount="1" OptionCount="0" ParamRequired="1" EditParamsAsString="1" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="values" />
</PARAMS>
</DATATYPE>
<DATATYPE ID="32" IDGroup="3" TypeName="SET" Description="A set. A string object that can have zero or more values, each of which must be chosen from the list of values." ParamCount="1" OptionCount="0" ParamRequired="1" EditParamsAsString="1" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
<PARAMS>
<PARAM Name="values" />
</PARAMS>
</DATATYPE>
<DATATYPE ID="33" IDGroup="4" TypeName="Varchar(20)" Description="" ParamCount="0" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
<OPTIONS>
<OPTION Name="BINARY" Default="0" />
</OPTIONS>
</DATATYPE>
<DATATYPE ID="34" IDGroup="4" TypeName="Varchar(45)" Description="" ParamCount="0" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
<OPTIONS>
<OPTION Name="BINARY" Default="0" />
</OPTIONS>
</DATATYPE>
<DATATYPE ID="35" IDGroup="4" TypeName="Varchar(255)" Description="" ParamCount="0" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
<OPTIONS>
<OPTION Name="BINARY" Default="0" />
</OPTIONS>
</DATATYPE>
<DATATYPE ID="36" IDGroup="5" TypeName="GEOMETRY" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="38" IDGroup="5" TypeName="LINESTRING" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="39" IDGroup="5" TypeName="POLYGON" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="40" IDGroup="5" TypeName="MULTIPOINT" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="41" IDGroup="5" TypeName="MULTILINESTRING" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="42" IDGroup="5" TypeName="MULTIPOLYGON" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
<DATATYPE ID="43" IDGroup="5" TypeName="GEOMETRYCOLLECTION" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" >
</DATATYPE>
</DATATYPES>
<COMMON_DATATYPES>
<COMMON_DATATYPE ID="5" />
<COMMON_DATATYPE ID="8" />
<COMMON_DATATYPE ID="20" />
<COMMON_DATATYPE ID="15" />
<COMMON_DATATYPE ID="22" />
<COMMON_DATATYPE ID="28" />
<COMMON_DATATYPE ID="26" />
<COMMON_DATATYPE ID="33" />
<COMMON_DATATYPE ID="34" />
<COMMON_DATATYPE ID="35" />
</COMMON_DATATYPES>
<TABLEPREFIXES>
<TABLEPREFIX Name="Default (no prefix)" />
</TABLEPREFIXES>
<REGIONCOLORS>
<REGIONCOLOR Color="Red=#FFEEEC" />
<REGIONCOLOR Color="Yellow=#FEFDED" />
<REGIONCOLOR Color="Green=#EAFFE5" />
<REGIONCOLOR Color="Cyan=#ECFDFF" />
<REGIONCOLOR Color="Blue=#F0F1FE" />
<REGIONCOLOR Color="Magenta=#FFEBFA" />
</REGIONCOLORS>
<POSITIONMARKERS>
<POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" />
<POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" />
<POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" />
<POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" />
<POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" />
<POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" />
<POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" />
<POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" />
<POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" />
<POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" />
<POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" />
</POSITIONMARKERS>
</SETTINGS>
<METADATA>
<REGIONS>
</REGIONS>
<TABLES>
<TABLE ID="1394" Tablename="gestion_absence" PrevTableName="" XPos="591" YPos="702" TableType="0" TablePrefix="0" nmTable="0" Temporary="0" UseStandardInserts="0" StandardInserts="" TableOptions="" Comments="" Collapsed="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="2" >
<COLUMNS>
<COLUMN ID="1409" ColName="gu_id_utilisateur" PrevColName="" Pos="1" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="1" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1411" ColName="ga_date_debut" PrevColName="" Pos="3" idDatatype="14" DatatypeParams="" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="0000-00-00" Comments="">
<OPTIONSELECTED>
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1584" ColName="gma_id_motif" PrevColName="" Pos="1" idDatatype="1" DatatypeParams="(3)" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="1" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1412" ColName="ga_date_fin" PrevColName="" Pos="4" idDatatype="14" DatatypeParams="" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="0000-00-00" Comments="">
<OPTIONSELECTED>
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1413" ColName="ga_date_envoi_lettre" PrevColName="" Pos="5" idDatatype="14" DatatypeParams="" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="0000-00-00" Comments="">
<OPTIONSELECTED>
</OPTIONSELECTED>
</COLUMN>
</COLUMNS>
<RELATIONS_END>
<RELATION_END ID="1583" />
<RELATION_END ID="1585" />
</RELATIONS_END>
<INDICES>
<INDEX ID="1414" IndexName="PRIMARY" IndexKind="0" FKRefDef_Obj_id="-1">
<INDEXCOLUMNS>
<INDEXCOLUMN idColumn="1409" LengthParam="0" />
<INDEXCOLUMN idColumn="1411" LengthParam="0" />
</INDEXCOLUMNS>
</INDEX>
</INDICES>
</TABLE>
<TABLE ID="1395" Tablename="gestion_categorie" PrevTableName="" XPos="85" YPos="1" TableType="0" TablePrefix="0" nmTable="0" Temporary="0" UseStandardInserts="0" StandardInserts="" TableOptions="" Comments="" Collapsed="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="3" >
<COLUMNS>
<COLUMN ID="1415" ColName="gc_id_categorie" PrevColName="" Pos="1" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1416" ColName="gc_libelle_categorie" PrevColName="" Pos="2" idDatatype="20" DatatypeParams="(255)" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
</COLUMNS>
<RELATIONS_START>
<RELATION_START ID="1564" />
</RELATIONS_START>
<INDICES>
<INDEX ID="1417" IndexName="PRIMARY" IndexKind="0" FKRefDef_Obj_id="-1">
<INDEXCOLUMNS>
<INDEXCOLUMN idColumn="1415" LengthParam="0" />
</INDEXCOLUMNS>
</INDEX>
</INDICES>
</TABLE>
<TABLE ID="1396" Tablename="gestion_composer_utilisateur_frais_kilometrique" PrevTableName="" XPos="887" YPos="503" TableType="0" TablePrefix="0" nmTable="0" Temporary="0" UseStandardInserts="0" StandardInserts="" TableOptions="" Comments="" Collapsed="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="4" >
<COLUMNS>
<COLUMN ID="1418" ColName="gcufk_id_frais_kilometrique" PrevColName="" Pos="1" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1419" ColName="gcufk_id_utilisateur" PrevColName="" Pos="2" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1420" ColName="gcufk_date_frais" PrevColName="" Pos="3" idDatatype="14" DatatypeParams="" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="0000-00-00" Comments="">
<OPTIONSELECTED>
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1506" ColName="gfk_id_frais_kilometrique" PrevColName="" Pos="1" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="1" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1504" ColName="gu_id_utilisateur" PrevColName="" Pos="1" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="1" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1421" ColName="gcufk_nb_kilometre" PrevColName="" Pos="4" idDatatype="7" DatatypeParams="" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1422" ColName="gcufk_objet" PrevColName="" Pos="5" idDatatype="20" DatatypeParams="(255)" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1423" ColName="gcufk_trajet" PrevColName="" Pos="6" idDatatype="20" DatatypeParams="(255)" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1424" ColName="gcufk_montant_total" PrevColName="" Pos="7" idDatatype="7" DatatypeParams="" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
</COLUMNS>
<RELATIONS_END>
<RELATION_END ID="1503" />
<RELATION_END ID="1505" />
</RELATIONS_END>
<INDICES>
<INDEX ID="1425" IndexName="PRIMARY" IndexKind="0" FKRefDef_Obj_id="-1">
<INDEXCOLUMNS>
<INDEXCOLUMN idColumn="1418" LengthParam="0" />
<INDEXCOLUMN idColumn="1419" LengthParam="0" />
<INDEXCOLUMN idColumn="1420" LengthParam="0" />
</INDEXCOLUMNS>
</INDEX>
</INDICES>
</TABLE>
<TABLE ID="1397" Tablename="gestion_depense" PrevTableName="" XPos="330" YPos="105" TableType="0" TablePrefix="0" nmTable="0" Temporary="0" UseStandardInserts="0" StandardInserts="" TableOptions="" Comments="" Collapsed="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="5" >
<COLUMNS>
<COLUMN ID="1426" ColName="gu_id_utilisateur" PrevColName="" Pos="1" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="1" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1427" ColName="gnf_id_frais" PrevColName="" Pos="2" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="1" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1428" ColName="gd_date_depense" PrevColName="" Pos="3" idDatatype="14" DatatypeParams="" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="0000-00-00" Comments="">
<OPTIONSELECTED>
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1429" ColName="gd_montant_ht" PrevColName="" Pos="4" idDatatype="7" DatatypeParams="" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1430" ColName="gd_montant_ttc" PrevColName="" Pos="5" idDatatype="7" DatatypeParams="" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
</COLUMNS>
<RELATIONS_END>
<RELATION_END ID="1499" />
<RELATION_END ID="1500" />
</RELATIONS_END>
<INDICES>
<INDEX ID="1431" IndexName="PRIMARY" IndexKind="0" FKRefDef_Obj_id="-1">
<INDEXCOLUMNS>
<INDEXCOLUMN idColumn="1426" LengthParam="0" />
<INDEXCOLUMN idColumn="1427" LengthParam="0" />
<INDEXCOLUMN idColumn="1428" LengthParam="0" />
</INDEXCOLUMNS>
</INDEX>
</INDICES>
</TABLE>
<TABLE ID="1398" Tablename="gestion_frais_kilometrique" PrevTableName="" XPos="849" YPos="264" TableType="0" TablePrefix="0" nmTable="0" Temporary="0" UseStandardInserts="0" StandardInserts="" TableOptions="" Comments="" Collapsed="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="6" >
<COLUMNS>
<COLUMN ID="1432" ColName="gfk_id_frais_kilometrique" PrevColName="" Pos="1" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1433" ColName="gfk_taux_kilometre" PrevColName="" Pos="2" idDatatype="7" DatatypeParams="" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
</COLUMNS>
<RELATIONS_START>
<RELATION_START ID="1505" />
</RELATIONS_START>
<INDICES>
<INDEX ID="1434" IndexName="PRIMARY" IndexKind="0" FKRefDef_Obj_id="-1">
<INDEXCOLUMNS>
<INDEXCOLUMN idColumn="1432" LengthParam="0" />
</INDEXCOLUMNS>
</INDEX>
</INDICES>
</TABLE>
<TABLE ID="1399" Tablename="gestion_motif_absence" PrevTableName="" XPos="272" YPos="709" TableType="0" TablePrefix="0" nmTable="0" Temporary="0" UseStandardInserts="0" StandardInserts="" TableOptions="" Comments="" Collapsed="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="7" >
<COLUMNS>
<COLUMN ID="1435" ColName="gma_id_motif" PrevColName="" Pos="1" idDatatype="1" DatatypeParams="(3)" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1436" ColName="gma_libelle_motif" PrevColName="" Pos="2" idDatatype="20" DatatypeParams="(255)" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1437" ColName="gma_type_rtt" PrevColName="" Pos="3" idDatatype="19" DatatypeParams="(1)" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
</COLUMNS>
<RELATIONS_START>
<RELATION_START ID="1583" />
</RELATIONS_START>
<INDICES>
<INDEX ID="1438" IndexName="PRIMARY" IndexKind="0" FKRefDef_Obj_id="-1">
<INDEXCOLUMNS>
<INDEXCOLUMN idColumn="1435" LengthParam="0" />
</INDEXCOLUMNS>
</INDEX>
</INDICES>
</TABLE>
<TABLE ID="1400" Tablename="gestion_note_frais" PrevTableName="" XPos="356" YPos="15" TableType="0" TablePrefix="0" nmTable="0" Temporary="0" UseStandardInserts="0" StandardInserts="" TableOptions="" Comments="" Collapsed="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="8" >
<COLUMNS>
<COLUMN ID="1439" ColName="gnf_id_frais" PrevColName="" Pos="1" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1440" ColName="gnf_libelle_frais" PrevColName="" Pos="2" idDatatype="20" DatatypeParams="(255)" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
</COLUMNS>
<RELATIONS_START>
<RELATION_START ID="1500" />
</RELATIONS_START>
<INDICES>
<INDEX ID="1441" IndexName="PRIMARY" IndexKind="0" FKRefDef_Obj_id="-1">
<INDEXCOLUMNS>
<INDEXCOLUMN idColumn="1439" LengthParam="0" />
</INDEXCOLUMNS>
</INDEX>
</INDICES>
</TABLE>
<TABLE ID="1401" Tablename="gestion_predecesseurs" PrevTableName="" XPos="14" YPos="734" TableType="0" TablePrefix="0" nmTable="0" Temporary="0" UseStandardInserts="0" StandardInserts="" TableOptions="" Comments="" Collapsed="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="9" >
<COLUMNS>
<COLUMN ID="1443" ColName="gpred_id_pred" PrevColName="" Pos="2" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
</COLUMNS>
<RELATIONS_END>
<RELATION_END ID="1515" />
</RELATIONS_END>
<INDICES>
<INDEX ID="1444" IndexName="PRIMARY" IndexKind="0" FKRefDef_Obj_id="-1">
<INDEXCOLUMNS>
<INDEXCOLUMN idColumn="1443" LengthParam="0" />
</INDEXCOLUMNS>
</INDEX>
</INDICES>
</TABLE>
<TABLE ID="1402" Tablename="gestion_preferences" PrevTableName="" XPos="348" YPos="290" TableType="0" TablePrefix="0" nmTable="0" Temporary="0" UseStandardInserts="0" StandardInserts="" TableOptions="" Comments="" Collapsed="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="10" >
<COLUMNS>
<COLUMN ID="1445" ColName="gu_id_utilisateur" PrevColName="" Pos="1" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="1" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1446" ColName="gp_id_projet" PrevColName="" Pos="2" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
</COLUMNS>
<RELATIONS_END>
<RELATION_END ID="1494" />
<RELATION_END ID="1498" />
</RELATIONS_END>
<INDICES>
<INDEX ID="1447" IndexName="PRIMARY" IndexKind="0" FKRefDef_Obj_id="-1">
<INDEXCOLUMNS>
<INDEXCOLUMN idColumn="1445" LengthParam="0" />
<INDEXCOLUMN idColumn="1446" LengthParam="0" />
</INDEXCOLUMNS>
</INDEX>
</INDICES>
</TABLE>
<TABLE ID="1403" Tablename="gestion_prevision_tache" PrevTableName="" XPos="310" YPos="587" TableType="0" TablePrefix="0" nmTable="0" Temporary="0" UseStandardInserts="0" StandardInserts="\n" TableOptions="DelayKeyTblUpdates=0\nPackKeys=0\nRowChecksum=0\nRowFormat=0\nUseRaid=0\nRaidType=0\n" Comments="" Collapsed="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="11" >
<COLUMNS>
<COLUMN ID="1448" ColName="gu_id_utilisateur" PrevColName="" Pos="1" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="1" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1450" ColName="gpt_date_prevision" PrevColName="" Pos="3" idDatatype="14" DatatypeParams="" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="0000-00-00" Comments="">
<OPTIONSELECTED>
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1451" ColName="gpt_duree_prevision" PrevColName="" Pos="4" idDatatype="7" DatatypeParams="" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
</COLUMNS>
<RELATIONS_END>
<RELATION_END ID="1512" />
<RELATION_END ID="1513" />
</RELATIONS_END>
<INDICES>
<INDEX ID="1452" IndexName="PRIMARY" IndexKind="0" FKRefDef_Obj_id="-1">
<INDEXCOLUMNS>
<INDEXCOLUMN idColumn="1448" LengthParam="0" />
<INDEXCOLUMN idColumn="1450" LengthParam="0" />
</INDEXCOLUMNS>
</INDEX>
</INDICES>
</TABLE>
<TABLE ID="1404" Tablename="gestion_projet" PrevTableName="" XPos="10" YPos="114" TableType="0" TablePrefix="0" nmTable="0" Temporary="0" UseStandardInserts="0" StandardInserts="\n" TableOptions="DelayKeyTblUpdates=0\nPackKeys=0\nRowChecksum=0\nRowFormat=0\nUseRaid=0\nRaidType=0\n" Comments="" Collapsed="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="12" >
<COLUMNS>
<COLUMN ID="1565" ColName="gc_id_categorie" PrevColName="" Pos="1" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="1" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1522" ColName="gp_id_projet" PrevColName="" Pos="6" idDatatype="5" DatatypeParams="" Width="-1" Prec="-1" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1455" ColName="gp_nom_projet" PrevColName="" Pos="3" idDatatype="20" DatatypeParams="(255)" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1456" ColName="gp_description" PrevColName="" Pos="4" idDatatype="20" DatatypeParams="(255)" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1457" ColName="gp_date_debut" PrevColName="" Pos="5" idDatatype="14" DatatypeParams="" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1458" ColName="gp_duree_prevue" PrevColName="" Pos="6" idDatatype="7" DatatypeParams="" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1459" ColName="gp_avancement" PrevColName="" Pos="7" idDatatype="5" DatatypeParams="(11)" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
</COLUMNS>
<RELATIONS_START>
<RELATION_START ID="1498" />
<RELATION_START ID="1511" />
<RELATION_START ID="1514" />
</RELATIONS_START>
<RELATIONS_END>
<RELATION_END ID="1564" />
</RELATIONS_END>
</TABLE>
<TABLE ID="1405" Tablename="gestion_statut" PrevTableName="" XPos="580" YPos="64" TableType="0" TablePrefix="0" nmTable="0" Temporary="0" UseStandardInserts="0" StandardInserts="" TableOptions="" Comments="" Collapsed="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="13" >
<COLUMNS>
<COLUMN ID="1461" ColName="gs_id_statut" PrevColName="" Pos="1" idDatatype="1" DatatypeParams="(3)" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1502" ColName="gu_id_utilisateur" PrevColName="" Pos="1" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="1" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1462" ColName="gs_libelle_statut" PrevColName="" Pos="2" idDatatype="20" DatatypeParams="(255)" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
</COLUMNS>
<RELATIONS_END>
<RELATION_END ID="1501" />
</RELATIONS_END>
<INDICES>
<INDEX ID="1463" IndexName="PRIMARY" IndexKind="0" FKRefDef_Obj_id="-1">
<INDEXCOLUMNS>
<INDEXCOLUMN idColumn="1461" LengthParam="0" />
</INDEXCOLUMNS>
</INDEX>
</INDICES>
</TABLE>
<TABLE ID="1406" Tablename="gestion_taches" PrevTableName="" XPos="-2" YPos="482" TableType="0" TablePrefix="0" nmTable="0" Temporary="0" UseStandardInserts="0" StandardInserts="\n" TableOptions="DelayKeyTblUpdates=0\nPackKeys=0\nRowChecksum=0\nRowFormat=0\nUseRaid=0\nRaidType=0\n" Comments="" Collapsed="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="14" >
<COLUMNS>
<COLUMN ID="1464" ColName="gt_id_tache" PrevColName="" Pos="1" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1465" ColName="gp_id_projet" PrevColName="" Pos="2" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1466" ColName="gt_nom_tache" PrevColName="" Pos="3" idDatatype="20" DatatypeParams="(255)" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1467" ColName="gt_description_tache" PrevColName="" Pos="4" idDatatype="20" DatatypeParams="(255)" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1468" ColName="gt_date_debut_tache" PrevColName="" Pos="5" idDatatype="14" DatatypeParams="" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1469" ColName="gt_duree_prevue" PrevColName="" Pos="6" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1470" ColName="gt_avancement" PrevColName="" Pos="7" idDatatype="5" DatatypeParams="(11)" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
</COLUMNS>
<RELATIONS_START>
<RELATION_START ID="1513" />
<RELATION_START ID="1515" />
</RELATIONS_START>
<RELATIONS_END>
<RELATION_END ID="1514" />
</RELATIONS_END>
</TABLE>
<TABLE ID="1407" Tablename="gestion_travail" PrevTableName="" XPos="194" YPos="390" TableType="0" TablePrefix="0" nmTable="0" Temporary="0" UseStandardInserts="0" StandardInserts="" TableOptions="" Comments="" Collapsed="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="15" >
<COLUMNS>
<COLUMN ID="1472" ColName="gp_id_projet" PrevColName="" Pos="1" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1473" ColName="gu_id_utilisateur" PrevColName="" Pos="2" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="1" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1474" ColName="gt_date_travail" PrevColName="" Pos="3" idDatatype="14" DatatypeParams="" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="0000-00-00" Comments="">
<OPTIONSELECTED>
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1475" ColName="gt_duree_travail" PrevColName="" Pos="4" idDatatype="7" DatatypeParams="" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
</COLUMNS>
<RELATIONS_END>
<RELATION_END ID="1510" />
<RELATION_END ID="1511" />
</RELATIONS_END>
<INDICES>
<INDEX ID="1476" IndexName="PRIMARY" IndexKind="0" FKRefDef_Obj_id="-1">
<INDEXCOLUMNS>
<INDEXCOLUMN idColumn="1472" LengthParam="0" />
<INDEXCOLUMN idColumn="1473" LengthParam="0" />
<INDEXCOLUMN idColumn="1474" LengthParam="0" />
</INDEXCOLUMNS>
</INDEX>
</INDICES>
</TABLE>
<TABLE ID="1408" Tablename="gestion_utilisateur" PrevTableName="" XPos="627" YPos="288" TableType="0" TablePrefix="0" nmTable="0" Temporary="0" UseStandardInserts="0" StandardInserts="" TableOptions="" Comments="" Collapsed="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="16" >
<COLUMNS>
<COLUMN ID="1477" ColName="gu_id_utilisateur" PrevColName="" Pos="1" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="1" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1478" ColName="gs_id_statut" PrevColName="" Pos="2" idDatatype="1" DatatypeParams="(3)" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1479" ColName="gu_nom" PrevColName="" Pos="3" idDatatype="20" DatatypeParams="(255)" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1480" ColName="gu_prenom" PrevColName="" Pos="4" idDatatype="20" DatatypeParams="(255)" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1481" ColName="gu_password" PrevColName="" Pos="5" idDatatype="20" DatatypeParams="(255)" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1482" ColName="gu_email" PrevColName="" Pos="6" idDatatype="20" DatatypeParams="(255)" Width="0" Prec="0" PrimaryKey="0" NotNull="1" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1483" ColName="gu_telephone" PrevColName="" Pos="7" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1484" ColName="gu_adresse" PrevColName="" Pos="8" idDatatype="20" DatatypeParams="(255)" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1485" ColName="gu_code_postal" PrevColName="" Pos="9" idDatatype="5" DatatypeParams="(10)" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1486" ColName="gu_ville" PrevColName="" Pos="10" idDatatype="20" DatatypeParams="(255)" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1487" ColName="gu_quota_heures_supp" PrevColName="" Pos="11" idDatatype="7" DatatypeParams="" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1488" ColName="gu_conges_payes" PrevColName="" Pos="12" idDatatype="7" DatatypeParams="" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1489" ColName="gu_temps_de_travail" PrevColName="" Pos="13" idDatatype="7" DatatypeParams="" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1490" ColName="gu_admin" PrevColName="" Pos="14" idDatatype="1" DatatypeParams="(3)" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1491" ColName="gu_admin2" PrevColName="" Pos="15" idDatatype="1" DatatypeParams="(3)" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="1" />
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
<COLUMN ID="1492" ColName="gu_notes" PrevColName="" Pos="16" idDatatype="20" DatatypeParams="(255)" Width="0" Prec="0" PrimaryKey="0" NotNull="0" AutoInc="0" IsForeignKey="0" DefaultValue="" Comments="">
<OPTIONSELECTED>
<OPTIONSELECT Value="0" />
</OPTIONSELECTED>
</COLUMN>
</COLUMNS>
<RELATIONS_START>
<RELATION_START ID="1494" />
<RELATION_START ID="1499" />
<RELATION_START ID="1501" />
<RELATION_START ID="1503" />
<RELATION_START ID="1510" />
<RELATION_START ID="1512" />
<RELATION_START ID="1585" />
</RELATIONS_START>
<INDICES>
<INDEX ID="1493" IndexName="PRIMARY" IndexKind="0" FKRefDef_Obj_id="-1">
<INDEXCOLUMNS>
<INDEXCOLUMN idColumn="1477" LengthParam="0" />
</INDEXCOLUMNS>
</INDEX>
</INDICES>
</TABLE>
</TABLES>
<RELATIONS>
<RELATION ID="1494" RelationName="avoir_preferences" Kind="2" SrcTable="1408" DestTable="1402" FKFields="gu_id_utilisateur=gu_id_utilisateur\n" FKFieldsComments="\n" relDirection="4" MidOffset="-23" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="-3" CaptionOffsetY="-61" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="1" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="17" />
<RELATION ID="1498" RelationName="fk_gp_gpreferences" Kind="5" SrcTable="1404" DestTable="1402" FKFields="" FKFieldsComments="" relDirection="2" MidOffset="19" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="10" CaptionOffsetY="-33" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="1" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="18" />
<RELATION ID="1499" RelationName="fk_gu_gd" Kind="5" SrcTable="1408" DestTable="1397" FKFields="gu_id_utilisateur=gu_id_utilisateur\n" FKFieldsComments="\n" relDirection="4" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="0" CaptionOffsetY="0" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="1" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="19" />
<RELATION ID="1500" RelationName="fk_gnf_gd" Kind="5" SrcTable="1400" DestTable="1397" FKFields="gnf_id_frais=gnf_id_frais\n" FKFieldsComments="\n" relDirection="3" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="-5" CaptionOffsetY="-23" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="1" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="20" />
<RELATION ID="1501" RelationName="fk_gu_gs" Kind="5" SrcTable="1408" DestTable="1405" FKFields="gu_id_utilisateur=gu_id_utilisateur\n" FKFieldsComments="\n" relDirection="1" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="30" CaptionOffsetY="11" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="1" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="21" />
<RELATION ID="1503" RelationName="fk_gu_gcufk" Kind="5" SrcTable="1408" DestTable="1396" FKFields="gu_id_utilisateur=gu_id_utilisateur\n" FKFieldsComments="\n" relDirection="2" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="0" CaptionOffsetY="0" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="1" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="22" />
<RELATION ID="1505" RelationName="fk_gfk_gcufk" Kind="5" SrcTable="1398" DestTable="1396" FKFields="gfk_id_frais_kilometrique=gfk_id_frais_kilometrique\n" FKFieldsComments="\n" relDirection="3" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="0" CaptionOffsetY="0" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="1" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="23" />
<RELATION ID="1510" RelationName="effectuer_travail" Kind="5" SrcTable="1408" DestTable="1407" FKFields="gu_id_utilisateur=gu_id_utilisateur\n" FKFieldsComments="\n" relDirection="4" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="-1" CaptionOffsetY="-46" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="1" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="26" />
<RELATION ID="1511" RelationName="fk_gp_gt" Kind="5" SrcTable="1404" DestTable="1407" FKFields="" FKFieldsComments="" relDirection="3" MidOffset="29" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="83" CaptionOffsetY="14" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="1" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="27" />
<RELATION ID="1512" RelationName="faire_prevision" Kind="0" SrcTable="1408" DestTable="1403" FKFields="gu_id_utilisateur=gu_id_utilisateur\n" FKFieldsComments="\n" relDirection="4" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="0" CaptionOffsetY="0" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="1" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="28" />
<RELATION ID="1513" RelationName="concerner_tache" Kind="5" SrcTable="1406" DestTable="1403" FKFields="" FKFieldsComments="" relDirection="2" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="-28" CaptionOffsetY="32" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="1" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="29" />
<RELATION ID="1514" RelationName="etre_compose" Kind="5" SrcTable="1404" DestTable="1406" FKFields="" FKFieldsComments="" relDirection="3" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="0" CaptionOffsetY="0" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="1" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="30" />
<RELATION ID="1515" RelationName="avoir_predecesseur" Kind="5" SrcTable="1406" DestTable="1401" FKFields="" FKFieldsComments="" relDirection="3" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="0" CaptionOffsetY="0" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="1" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="31" />
<RELATION ID="1564" RelationName="Rel_21" Kind="5" SrcTable="1395" DestTable="1404" FKFields="gc_id_categorie=gc_id_categorie\n" FKFieldsComments="\n" relDirection="3" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="0" CaptionOffsetY="0" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="1" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="32" />
<RELATION ID="1583" RelationName="fk_gma_ga" Kind="2" SrcTable="1399" DestTable="1394" FKFields="gma_id_motif=gma_id_motif\n" FKFieldsComments="\n" relDirection="2" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="0" CaptionOffsetY="0" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="1" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="31" />
<RELATION ID="1585" RelationName="fk_gu_ga" Kind="5" SrcTable="1408" DestTable="1394" FKFields="gu_id_utilisateur=gu_id_utilisateur\n" FKFieldsComments="\n" relDirection="3" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="0" CaptionOffsetY="0" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="1" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="32" />
</RELATIONS>
<NOTES>
</NOTES>
<IMAGES>
</IMAGES>
</METADATA>
<PLUGINDATA>
<PLUGINDATARECORDS>
</PLUGINDATARECORDS>
</PLUGINDATA>
<QUERYDATA>
<QUERYRECORDS>
</QUERYRECORDS>
</QUERYDATA>
<LINKEDMODELS>
</LINKEDMODELS>
</DBMODEL>
/trunk/documentation/image classe.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/documentation/image classe.png
New file
Property changes:
Added: svn:executable
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/CVS/Entries
New file
0,0 → 1,14
D/bibliotheque////
D/classes////
D/classes_metier////
D/configuration////
D/controleur////
D/documentation////
/gtt_calendrier.class.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_config.inc.php/1.1/Tue Feb 22 12:07:13 2005//
/index.php/1.1/Tue Feb 22 12:07:13 2005//
D/installation////
D/langues////
D/menu////
D/presentation////
/test.php/1.1/Tue Feb 22 12:07:13 2005//
/trunk/CVS/Repository
New file
0,0 → 1,0
gestion/version_3
/trunk/CVS/Root
New file
0,0 → 1,0
:extssh:jp_milcent@adullact.net:/cvsroot/eflore
/trunk/presentation/gtt_fonctions_generique_affichage.php
New file
0,0 → 1,255
<?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 |
/*@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
@version $Date: 2004/07/06
*/
// +------------------------------------------------------------------------------------------------------+
// +------------------------------------------------------------------------------------------------------+
// | INCLUSION DE FICHIERS |
// +------------------------------------------------------------------------------------------------------+
 
//include_once 'gtt_config.inc.php';
include_once CHEMIN_CLASSES_METIER.'gtt_utilisateur.class.php';
include_once CHEMIN_LANGUES.'gtt_langue_fr.inc.php';
 
 
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
/**
*permet d'afficher une page
*/
function afficherPage($page)
{
print($page);
}
 
 
/**
*permet l'affichage du titre
*/
 
function creerZoneTitre($nom)
{
$titreHTML.=' <!--Titre-->'."\n";
$titreHTML.=' <div class="zone titre">'."\n";
$titreHTML.=' '.$nom."\n";
$titreHTML.=' </div'."\n";
$titreHTML.=' <!-- Fin titre -->'."\n\n";
return $titreHTML;
}
/*
*fonction creant l'entete de tout page web
*/
function creerEntetePage($nom)
{
$entete ='<?xml version="1.0" encoding="ISO-8859-1" ?>'."\n";
$entete .='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />'."\n";
$entete .='<html xmlns="http://www.w3.org/1999/xhtml/" >'."\n";
$entete .=' <head>'."\n";
$entete .=' <meta http-equiv="Content-Style-Type" content="text/css" />'."\n";
$entete .=' <link rel="stylesheet" type="text/css" href="'.CHEMIN_CSS.'gtt_vert.css" media="screen" title="Vert" />'."\n";
$entete .=' <title>'.$nom.'</title>'."\n";
$entete .=' </head>'."\n";
$entete .=' <body>'."\n\n";
return $entete;
}
 
/**
*fonction creant la partie au pied de la page
*/
function creerZonePiedPage()
{
$piedPage.=' <!--Debut pied de page -->'."\n";
$piedPage.=' <div class="zone_pieds_page">'." \n";
$piedPage.= ' Copyright Tela Botanica 2004 - <a href="mailto:accueil@tela-botanica.org" > Webmaster </a> '."\n";
$piedPage.= ' </div>'."\n";
$piedPage.= ' <!-- Fin pied de page -->'."\n\n";
return $piedPage;
}
/**
*fonction permettant de fermer les balises html
*/
function fermerBalisesFin()
{
$ret =' </body>'."\n";
$ret.='</html>'."\n";
return $ret;
}
 
/**
*fonction permettant d'afficher la zone de menu de gauche
*fournit un lien vers le menu a afficher selon le choix de l'utilisateur
*/
 
function creerZoneMenuOption($utilisateur)
{
$zoneOption.= '<!-- Début zone menu -->'."\n";
$zoneOption.=' <div class="zone_menu">'."\n";
$zoneOption .= ' <ul>'."\n";
$zoneOption .= ' <li>'."\n";
$zoneOption .= ' <a href="index.php?action='.GESTION_TRAVAIL.'&semaine='.$semaine.'&annee='.$annee.'&user='.$utilisateur.'" >'."\n";
$zoneOption .= ' '.GTT_L_ME_TRAVAIL.' </a>'."\n";
$zoneOption .= ' </li>'."\n";
$zoneOption .= ' <li>'."\n";
$zoneOption .= ' <a href="index.php?menu='.GTT_MENU_ABSCENCES.'&action='.GTT_ACTION_NON_TRAVAIL.'&mois='.$mois.'&annee='.$annee.'" >'."\n";
$zoneOption .= ' '.GTT_L_ME_NON_TRAVAIL.' </a>'."\n";
$zoneOption .= ' </li>'."\n";
$zoneOption .= ' <li>'."\n";
$zoneOption .= ' <a href="index.php?menu='.GTT_MENU_GRAPHIQUES.'&action='.GTT_ACTION_GRAPHIQUE.'&date='.$date.'&user='.$utilisateur.'" >'."\n";
$zoneOption .= ' '.GTT_L_ME_GRAPH.' </a>'."\n";
$zoneOption .= ' </li>'."\n";
$zoneOption .= ' <li>'."\n";
$zoneOption .= ' <a href="index.php?menu='.GTT_MENU_INFO_ORGANISME.'&action='.GTT_ACTION_RECAPITULATIF_GENERAL.'&annee='.$annee.'&user='.$utilisateur.'" >'."\n";
$zoneOption .= ' '.GTT_L_ME_RECAPITULATIF_GENERAL.' </a>'."\n";
$zoneOption .= ' </li>'."\n";
$zoneOption .= ' <li>'."\n";
$zoneOption .= ' <a href="index.php?menu='.GTT_MENU_INFO_PERSO_PROJET.'&action='.GTT_ACTION_RECAPITULATIF.'&date='.$date.'&user='.$utilisateur.'" >'."\n";
$zoneOption .= ' '.GTT_L_ME_RECAPITULATIF_UTILISATEUR.' </a>'."\n";
$zoneOption .= ' </li>'."\n";
$zoneOption .= ' <li>'."\n";
$zoneOption .= ' <a href="index.php?menu='.GTT_MENU_INFO_PERSO_MENSUEL.'&action='.GTT_ACTION_FEUILLE_MOIS.'&date='.$date.'&user='.$utilisateur.'" >'."\n";
$zoneOption .= ' '.GTT_L_ME_FEUILLE_MOIS.' </a>'."\n";
$zoneOption .= ' </li>'."\n";
$zoneOption .= ' <li>'."\n";
$zoneOption .= ' <a href="index.php?menu='.GTT_MENU_UTILISATEURS.'&action='.GTT_ACTION_DONNEE_UTILISATEUR.'" >'."\n";
$zoneOption .= ' '.GTT_L_ME_UTILISATEURS.' </a>'."\n";
if ($utilisateur->isAdmin()==1)
{
$zoneOption .= ' <li>'."\n";
//$zoneOption .= ' <a href="index.php?menu='.GTT_MENU_ADMINISTRATION.'&action='.GTT_ACTION_ADMIN_UTILISATEUR.'" >'."\n";
$zoneOption .= ' '.GTT_L_ME_ADMINISTRATION.' </a>'."\n";
$zoneOption .= ' </li>'."\n";
 
}
$zoneOption .= ' <li>'."\n";
//$zoneOption .= ' <a href="index.php?menu='.GTT_MENU_DECONNECTION.'&date='.$date.'&user='.$utilisateur.'" >'."\n";
$zoneOption .= ' '.GTT_L_ME_DECONNECTION.' </a>'."\n";
$zoneOption .= ' </li>'."\n";
$zoneOption .= ' </ul>'."\n";
$zoneOption .= ' </div>'."\n";
$zoneOption .= ' <!-- Fin zone menu -->'."\n\n";
return $zoneOption;
}
/**
* fonction affichant les options
*@param identifiant d'un utilisateur
*renvoie un formulaire sous forme html
*/
function afficherOptionAplication($user)
{
$id="MENU_OPTION";
$size=15;
$assoc1=array('class'=>$id);
$form=new HTML_QuickForm('gestion_option', 'post','','', $assoc1);
//ajout d'element
//projets de l'utilisateur
$ligneEditerPref = &HTML_QuickForm::createElement('link', 'btn_editer_pref','',$GLOBALS['urlBase'].GESTION_EDITER_PREFERENCES,GESTION_MES_PROJETS_L,$assoc1);
$form->addElement($ligneEditerPref);
//travail
$ligneTravail=&HTML_QuickForm::createElement('link', 'btn_editer_travail','',$GLOBALS['urlBase'].GESTION_TRAVAIL,GTT_L_ME_TRAVAIL,$assoc1);
$form->addElement($ligneTravail);
//administration
$user1=&Utilisateur::recupererUtilisateur($user);
if ($user1->isAdmin()==1)
{
$ligneAdmin=&HTML_QuickForm::createElement('link', 'btn_admin','',$GLOBALS['urlBase'].GESTION_ADMIN_UTILISATEUR,GTT_L_ME_ADMINISTRATION,$assoc1);
$form->addElement($ligneAdmin);
}
 
$ligneDeconnexion=&HTML_QuickForm::createElement('link', 'btn_deconnexion','',$GLOBALS['urlBase'].GESTION_DECONNEXION,GTT_L_ME_DECONNECTION,$assoc1);
$form->addElement($ligneDeconnexion);
 
return $form->toHtml();
}
/**
*fonctions creant la liste des options disponibles
*nouveau formulaire avec la liste des optiosn disponibles
*/
function creerFormulaireOptionAdmin()
{
$id="LISTE_OPTION_ADMIN";
$size=7;
$assoc =array ('class'=>$id, 'size'=>$size);
$form=new HTML_QuickForm('liste_options_admin', 'post','','',$assoc);
//liste des elements : categorie
$bouton=&HTML_QuickForm::createElement('link', 'champ_categorie','',$GLOBALS['urlBase'].GESTION_ADMIN_CATEGORIE,GESTION_CATEGORIE_L,$assoc);
$form->addElement($bouton);
 
 
//frais
$bouton1=&HTML_QuickForm::createElement('link', 'champ_frais','',$GLOBALS['urlBase'].GESTION_ADMIN_FRAIS,GESTION_FRAIS_L,$assoc);
$form->addElement($bouton1);
 
//motifs absence
$bouton2=&HTML_QuickForm::createElement('link', 'champ_motif_absence','',$GLOBALS['urlBase'].GESTION_ADMIN_MOTIF_ABSENCE,GESTION_MOTIF_L,$assoc);
$form->addElement($bouton2);
 
 
//projets
$bouton3=&HTML_QuickForm::createElement('link', 'champ_projet','',$GLOBALS['urlBase'].GESTION_ADMIN_PROJET,GESTION_PROJET_L,$assoc);
$form->addElement($bouton3);
 
//statut
$bouton4=&HTML_QuickForm::createElement('link', 'champ_statut','',$GLOBALS['urlBase'].GESTION_ADMIN_STATUT,GESTION_STATUT_L,$assoc);
$form->addElement($bouton4);
 
 
//taches
$bouton5=&HTML_QuickForm::createElement('link', 'champs_tache','',$GLOBALS['urlBase'].GESTION_ADMIN_TACHE,GESTION_TACHES_L,$assoc);
$form->addElement($bouton5);
 
 
//utilisateur
$bouton6=&HTML_QuickForm::createElement('link', 'champ_utilisateur','',$GLOBALS['urlBase'].GESTION_ADMIN_UTILISATEUR,GESTION_UTILISATEUR_L,$assoc);
$form->addElement($bouton6);
return $form;
}
 
?>
/trunk/presentation/CVS/Repository
New file
0,0 → 1,0
gestion/version_3/presentation
/trunk/presentation/CVS/Root
New file
0,0 → 1,0
:extssh:jp_milcent@adullact.net:/cvsroot/eflore
/trunk/presentation/CVS/Entries
New file
0,0 → 1,2
/gtt_calendrier.class.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_fonctions_generique_affichage.php/1.1/Tue Feb 22 12:07:13 2005//
/trunk/presentation/gtt_calendrier.class.php
New file
0,0 → 1,461
<?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 |
// +------------------------------------------------------------------------------------------------------+
// | Auteur : Dorian Bannier (dbannier@aol.com) |
 
// |@author ABDOOL RAHEEM shaheen <shaheenar50@hotmail.com> |
// |@version 3 |
 
include_once("HTML/Table.php");
include_once 'gtt_config.inc.php';
include_once CHEMIN_LANGUES.'gtt_langue_fr.inc.php';
include_once "HTML/QuickForm.php";
 
/**
*classe calendrier pour gerer le calendrier pour un mois et une annee
*donne
*@param annee
*@param mois
*@param premier jour du mois
*@param semaine
*@param l'url du resultat affiche
*@param liste de noms des jours
*@param liste de noms des mois
*@param liste des jours feries du mois
*/
 
 
class Calendrier
{
 
var $annee=null;
var $mois=null;
var $jour=null;
var $semaine=null;
var $url =null;
var $nom_jours=array();
var $nom_mois=array();
var $liste_feries=array();
/** contient le nom des variables que recevra l'url spécifié
* @var string
*/
var $var_jour = "jour";
var $var_mois = "mois";
var $var_annee = "annee";
 
/**
*constructeur de la classe calendrier
*toutes les variables sont initialises avec les donnees
*de la date du jour si on ne passe aucune date en parametre
*sinon on initialise le calendrier avec
*@param semaine
*@param annee
*/
function Calendrier($url,$semaine,$annee)
{
$tableau=&Calendrier::LundiEtDimancheSemaine($semaine,$annee);
$this->semaine=$semaine;
$this->mois=date('n',mktime(0,0,0,1,$tableau[0],$annee));
$this->jour=date('d',mktime(0,0,0,1,$tableau[0],$annee));
$this->annee=date('Y',mktime(0,0,0,1,$tableau[0],$annee));
//$this->annee=$annee;
$this->url=$url;
$this->nom_jours=array (GESTION_LUN_L, GESTION_MAR_L, GESTION_MER_L, GESTION_JEU_L, GESTION_VEN_L, GESTION_SAM_L ,GESTION_DIM_L);
$this->nom_mois=array(1 => "Janvier","F&eacute;vrier","Mars","Avril","Mai","Juin","Juillet",
"Ao&ucirc;t","Septembre","Octobre","Novembre","D&eacute;cembre");
$this->liste_feries =&Calendrier::calculJoursFeries($this->annee);
//echo $this->nom_mois[$this->mois];//date('M',mktime(0,0,0,1,$tableau[0],$annee));
//echo " $this->annee";
}
 
/**
*fonction calculant les dates des jours feries en france
*renvoie un tableau contenant la liste de dates par mois
*les dates sont de la forme timestamp unix
*
*@param $annee
*@return tableaude dates
*/
 
function calculJoursFeries($annee)
{
$paques=&Calendrier::paques($annee);
$ascension=&Calendrier::ascension($annee);
$pentecote=&Calendrier::pentecote($annee);
$tab=array(mktime(0,0,0,1,1,$annee),
$paques,
mktime(0,0,0,5,1,$annee),
mktime(0,0,0,5,8,$annee),
$ascension,
$pentecote,
mktime(0,0,0,7,14,$annee),
mktime(0,0,0,8,15,$annee),
mktime(0,0,0,11,1,$annee),
mktime(0,0,0,11,11,$annee),
mktime(0,0,0,12,25,$annee));
return $tab;
 
}
 
/**
*fonction calculant le premier jour du mois
*@param: annee, mois
*/
 
function premierJourMois($argMois,$argAnnee)
{
$intPremierJour = date("w",mktime(0,0,0,$argMois,1,$argAnnee));
if($intPremierJour == 0) $intPremierJour = 7; // si c'est un dimanche
return $intPremierJour;
}
 
/**
*fonction calculat le dernier jour du mois
*@param : annee, mois
*renvoie un entier
*/
function dernierJourMois($argMois,$argAnnee)
{
$h=&Calendrier::nbJourMois($argMois,$argAnnee);
$intDernierJour=date("w",mktime(0,0,0,$argMois,$h,$argAnnee));
if($intDernierJour == 0) $intDernierJour = 7; // si c'est un dimanche
return $intDernierJour;
}
/**
*fonction calculant le nombre de jours dans un mois
*@param annee, mois
*/
function nbJourMois($argMois,$argAnnee)
{
return date("t", mktime(0,0,0,$argMois,1,$argAnnee));
}
 
 
/*
**fonction calculant la date du lundi de paques pour une annee
*renvoie un timestamp
*/
function paques($annee)
{
$date_paques=easter_date($annee);
$lundi_paques=mktime(date("H", $date_paques),
date("i", $date_paques),
date("s", $date_paques),
date("m", $date_paques),
date("d", $date_paques) + 1,
date("Y", $date_paques)
);
return $lundi_paques;
}
/*
*fonction calculant la date du lundi de l'ascension
*renvoie un timestamp
*renvoie la date
*/
function ascension($annee)
{
$date_paques=easter_date($annee);
$date_ascension = mktime(date("H", $date_paques),
date("i", $date_paques),
date("s", $date_paques),
date("m", $date_paques),
date("d", $date_paques) + 39,
date("Y", $date_paques)
);
return $date_ascension;
}
 
/*
*fonction calculant la date du lundi de la pentecote
*renvoie un timestamp
*renvoie cette derniere
*/
function pentecote($annee)
{
$date_paques=easter_date($annee);
$date_ascension=&Calendrier::ascension($annee);
$date_pentecote = mktime(date("H", $date_ascension),
date("i", $date_ascension),
date("s", $date_ascension),
date("m", $date_ascension),
date("d", $date_ascension) + 11,
date("Y", $date_ascension)
);
return $date_pentecote;
}
 
/**
*fonction affichant un calendrier naviguable par semaine
*option pour cliquer sur une semaine donnee
*utilisation de la bibliotheque HTML/TABLE de PEAR
*@param numero de semaine et annee
*/
 
function afficherCalendrier($annee)
{
$id="CALENDRIER";
$text=/*"</tr></td>".*/"<div id=\"calendrier\">";
//initialisation des donnees
$intPremierJour = &Calendrier::premierJourMois($this->mois,$this->annee);
$intNbJoursMois = &Calendrier::nbJourMois($this->mois,$this->annee);
$prevMonth=&Calendrier::prevMonth($this->mois,$this->annee);
$intNbJourPrec=&Calendrier::nbJourMois($prevMonth[0],$prevMonth[1]);
$intDernierJour=&Calendrier::dernierJourMois($this->mois,$this->annee);
//calcul du lundi et dimanche de la semaine courante
//calcul de l'annee
$tabLundiDimanche=&Calendrier::lundiEtDimancheSemaine($this->semaine,$annee);
 
//creation de la table HTML representant le calendrier
$tableAttrs = array("class" =>$id,"width" => "300");
//creation de la barre de navigation
//semaine precedente
$tabPrevWeek=&Calendrier::prevWeek();
$text.="<a href=".$GLOBALS['urlBase'].GESTION_TRAVAIL."&semaine=";
$text.=$tabPrevWeek[0]."&annee=".$tabPrevWeek[1].">";
$text.="<<"."</a>";
//semaine courante
$text.='<button>';
$text.=date('d/m/y',mktime(0,0,0,1,$tabLundiDimanche[0],$annee));
$text.=' -- ';
$text.=date('d/m/y',mktime(0,0,0,1,$tabLundiDimanche[1],$annee));
$text.='</button>';
//semaine suivante
$tabNextWeek= &Calendrier::nextWeek();
$text.="<a href=".$GLOBALS['urlBase'].GESTION_TRAVAIL."&semaine=";
$text.=$tabNextWeek[0]."&annee=".$tabNextWeek[1].">";
$text.=">>"."</a>";
 
$table = new HTML_Table($tableAttrs);
$table -> setAutoGrow(true);
 
$table->addRow($this->nom_jours);
 
//remplissage de la premiere ligne
//test si on est dans la semaine courante
//si dimanche egale a la fin de la semaine
$semCourante=(date('d',mktime(0,0,0,1,$tabLundiDimanche[1],$annee))==(7-$intPremierJour+1));
$p=1;
for($i=1; $i<=7;$i++)
{
if ($i<$intPremierJour and $semCourante)//mois prec et semaine courante
{
$elem[$i-1]="<div id=\"moisprecedent\">".($intNbJourPrec-$intPremierJour+$i+1);
}elseif ($i<$intPremierJour and !$semCourante)//mois prec et pas semaien courante
{
$semaineL=date('W',mktime(0,0,0,$prevMonth[0],($intNbJourPrec-$intPremierJour+$i+1),$prevMonth[1]));
$elem[$i-1]= "<a href=".$this->url."?action=".GESTION_TRAVAIL."&semaine=$semaineL"."&annee=$prevMonth[1]".">".($intNbJourPrec-$intPremierJour+$i+1)."</a>";
}elseif($i>=$intPremierJour and $semCourante)//mois courant et semaine courante
{
$elem[$i-1] = "<div id=\"jourcourant\">".$p."</div>";
$p++;
}else {//mois courant et pas semaine courante
$semaineL=date('W',mktime(0,0,0,$this->mois,$p,$this->annee));
$elem[$i-1] = "<a href=".$this->url."?action=".GESTION_TRAVAIL."&semaine=$semaineL";
$elem[$i-1] .="&annee=".$this->annee.">".$p."</a>";
$p++;
}
}
$table->addRow($elem);
//remplissage du reste des lignes
$i=0; //indice du tableau
//lundi de la semaien courante
// $t=&Calendrier::lundiEtDimancheSemaine($this->semaine,$this->annee);
$lundiCourant=date('d',mktime(0,0,0,1,$tabLundiDimanche[0],$annee));
$semCourante2=0;
for ($f=$p; $f<=$intNbJoursMois ; $f++)
{
if ($f==$lundiCourant and $i==0)
{
$semCourante2=1;//booleen
}
//calcul de la semaine courante
$semaineL2=date('W',mktime(0,0,0,$this->mois,$f,$this->annee));
if ($semCourante2==1)
{
$elem[$i]= "<div id=\"jourcourant\">".$f."</div>";
}else{
$elem[$i]="<a href=".$this->url."?action=".GESTION_TRAVAIL."&semaine=$semaineL2";
$elem[$i].="&annee=".$this->annee.">".$f."</a>";
}
if ($i==6)
{
$i=0;
if ($semCourante2==1)
{
$semCourante2=0;
}
$table->addRow($elem);
}else $i++;
}
//remplissage de la derniere ligne
$semaineL3=date('W',mktime(0,0,0,$this->mois,$intNbJoursMois,$this->annee));
if ($semCourante2==0)
{
for ($d=$i; $d<=6;$d++)
{
$s=$d-$i+1;
$elem[$d]="<a href=".$this->url."?action=".GESTION_TRAVAIL."&semaine=$semaineL2";
$elem[$d].="&annee=".$this->annee.">".$s."</a>";
}
}else {
for ($d=$i; $d<=6;$d++)
{
$elem[$d]= ($d-$i+1);
}
}
$table->addRow($elem);
$text.=$table->toHtml();
$text .= "</div>";
return $text;
}
 
/**
*fonction calculant la semaine suivante
*/
function nextWeek()
{
if ($this->semaine==date('W',mktime(0,0,0,12,31,$this->annee)))
{
$tab[0]=$nextWeek=1;
$tab[1]=$nextAnnee=$this->annee+1;
}else {
$tab[0]=$nextWeek=$this->semaine+1;
$tab[1]=$nextAnnee=$this->annee;
}
return $tab;
}
/**
*fonction calulant lasemaine precedeente
*/
function prevWeek()
{
if ($this->semaine==1)
{
$tab[0]=$prevWeek=date('W',mktime(0,0,0,12,31,($this->annee-1)));
$tab[1]=$prevAnnee=$this->annee-1;
} else{
$tab[0]=$prevWeek=$this->semaine -1 ;
$tab[1]=$prevAnnee=$this->annee;
}
return $tab;
}
/**
*fonction caluculant le mois suivant
*renvoie l'annee et le mois suivant sous forme de chiffre
*dans un tableau
*/
function nextMonth()
{
if ($this->mois==12)
{
$tab[0]=$nextMois=1;
$tab[1]=$nextAnnee=$this->annee+1;
}else
{
$tab[0]=$nextMois=$this->mois+1;
$tab[1]=$nextAnnee=$this->annee;
}
return $tab;
}
/**
*fonction calculant le mois precedent
*renvoie l'annee et le mois precedent sous forme de chiffre
*/
function prevMonth()
{
if ($this->mois==1)
{
$tab[0]=$prevMois=12;
$tab[1]=$prevAnnee=$this->annee-1;
}else
{
$tab[0]=$prevMois=$this->mois-1;
$tab[1]=$prevAnnee=$this->annee;
}
return $tab;
}
/**
*fonction renvoyant la date du lundi d'une semaine
*a partir du numero de semaine
*@param numero de semaine
*@praam annee
*@return un tableau contenat le timestamp unix de lenudi et dimanche
*de la semaine en question
*/
function lundiEtDimancheSemaine($semaine,$annee) {
 
if ((date("w", mktime(0,0,0,1,1,$annee)) <= 4) && (date("w", mktime(0,0,0,1,1,$annee)) != 0))
{
$nbre_jour = ($semaine-1)*7;
}else{
$nbre_jour = ($semaine)*7;
}
 
if (date("w", mktime(0,0,0,1,1,$annee)) == 0)
{
$nbre_jour +=7;
}else{
$nbre_jour +=7-((date("w", mktime(0,0,0,1,1,$annee))-1)%7);
}
 
$nbre_jour_7 = $nbre_jour-6;
 
//$lundi = date("d-m-Y", mktime(0,0,0,1,$nbre_jour_7,$annee) );
//$dimanche = date("d-m-Y", mktime(0,0,0,1,$nbre_jour,$annee));
 
return array($nbre_jour_7,$nbre_jour);
}
/**
*fonction indiquant si une date est feriee ou non
*renvoie 1 si ferie
*0 sinon
*/
function isFerie($date)
{
if (in_array($date,$this->liste_feries))
{
return 1;
}else return 0;
}
 
}
?>
Property changes:
Added: svn:executable
/trunk/controleur/gtt_controleur_admin_motif_absence.php
New file
0,0 → 1,143
<?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 CHEMIN_MENU.'gtt_menu_admin_motif_absence.php';
 
/**
*fonction traitantg l'ajout des motifs dans la base de donnees
*/
function traiterAjoutermotif()
{
if (isset($_POST["champ_valider_motif"]))
{
$i=&Motif::nextId();
$tableau=array(GEST_CHAMPS_ID_MOTIF =>$i,
GEST_CHAMPS_LIBELLE_MOTIF=>$_POST["champ_nom_motif"],
GEST_CHAMPS_TYPE_RTT=>0);
if (isset($_POST["champ_rtt"]))
{
$tableau[GEST_CHAMPS_TYPE_RTT]=1;
}
$mot=new Motif($i);
$mot->ConstruireMotif($tableau);
$j =$mot->enregistrerMotif();
}
$_POST["champ_valider_motif"]='dejaValider';
$_POST["champ_nom_motif"]='';
}
 
/**
*fonction traitant la supression des motifs d'absence
*/
function traiterSupprimerMotif()
{
if (isset($_POST["btn_supprimer_motif"]))
{
$identifiant=$_POST["champ_motif_supprimer"];
$g=&Motif::motifUtilise($identifiant);
if ($g!=1)
{
$j=&Motif::supprimerMotif($identifiant);
}else $j=0;
if ($j==0)
{
echo "echec supression";
}
}
$_POST["btn_supprimer_motif"]='dejaValider';
$_POST["champ_motif_supprimer"]='';
}
/**
*fonction verifiant si le motif d'absence est en cours d'utilisation
*la suppression sera interdite dans ce cas afin de maintenir la cohérence de
*de la base de donnees
*/
function verifMotifUtilise()
{
$identifiant=$_POST["champ_motif_supprimer"];
$verif=&Motif::motifUtilise($identifiant);
if ($verif==1)return false;
else return true;
}
/**
*fonction traitant le menu admin motif absence
*/
 
function traiterAdminMotif()
{
$text=creerEntetePage(GESTION_ADMIN_MOTIF_L);
//cas de l'ajout
$form=afficherMenuAjouterMotif();
if (isset($_POST["champ_valider_motif"]) and $_POST["champ_valider_motif"]!='dejaValider' and $form->validate())
{
$form->process('traiterAjouterMotif');
$m=afficherMenuAjouterMotif();
$text.=$m->ToHTml();
}else
{
$text.=$form->ToHtml();
}
//cas supression
$forms=afficherMenuSupressionMotif();
if (isset($_POST["btn_supprimer_motif"]) and $_POST["btn_supprimer_motif"]!='dejaValider' and $forms->validate())
{
$forms->process('traiterSupprimerMotif');
$m=afficherMenuSupressionMotif();
$text.=$m->ToHTml();
}else{
$text.=$forms->ToHtml();
}
//affichage des options d'administration
$formp=creerFormulaireOptionAdmin();
$text.=$formp->ToHtml();
//affichage des options disponibles pour l'utilisateur courant
$text.=afficherOptionAplication($GLOBALS['idCurrentUser']);
return $text;
}
?>
/trunk/controleur/gtt_controleur_admin_categorie.php
New file
0,0 → 1,133
<?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 CHEMIN_MENU.'gtt_menu_admin_categorie.php';
/**
*fonction traitant l'ajout d'une categorie
*/
function ajouterCategorie()
{
if (isset($_POST["champ_valider_cat"]))
{
$i=&Categorie::nextId();
$c=new Categorie($i);
$c->setLibelleCategorie($_POST["champ_nom_cat"]);
$j= $c->enregistrerNewCategorie();
if ($j!=1) echo "echec";
}
$_POST["champ_valider_cat"]='dejaValider';
$_POST["champ_nom_cat"]='';
}
/**
*fonction effectuant la suppression d'une categorie
*/
function traiterSupprimerCategorie()
{
if (isset($_POST["btn_supprimer_cat"]))
{
$identifiant=$_POST["champ_cat_supprimer"];
//verification si la categorie ne contient pas de projets
$verif=&Categorie::contientProjet($identifiant);
if($verif!=1)
{
$b=&Categorie::supprimerCategorie($identifiant);
}else $b=0;
if ($b==0)
{
echo "echec supression";
}
}
$_POST["champ_cat_supprimer"]='';
$_POST["btn_supprimer_cat"]='essai';
}
/**fonction traitant toutesles actions du menu admin categorie
*/
function traiterAdminCategorie()
{
$text=creerEntetePage(GESTION_ADMIN_CATEGORIE_L);
//cas de l'ajout
$form=afficherMenuAjouterCategorie();
if (isset($_POST["champ_valider_cat"]) and $_POST["champ_valider_cat"]!='dejaValider' and $form->validate())
{
$form->process('ajouterCategorie');
$t=afficherMenuAjouterCategorie();
$text.=$t->ToHTml();
}else
{
$text.=$form->ToHtml();
}
//cas supression
$forms=afficherMenuSupressionCategorie();
if (isset($_POST["btn_supprimer_cat"]) and $_POST["btn_supprimer_cat"]!='essai' and $forms->validate())
{
$forms->process('traiterSupprimerCategorie');
$j=afficherMenuSupressionCategorie();
$text.=$j->ToHtml();
}else
{
$text.=$forms->ToHtml();
}
//affichage des options d'administration
$formp=creerFormulaireOptionAdmin();
$text.=$formp->ToHtml();
//affichage des options disponibles pour l'utilisateur courant
$text.=afficherOptionAplication($GLOBALS['idCurrentUser']);
return $text;
}
/**
*fonction verifiant si la categorie ne contient pas de
projets
*/
function verifContientProjet()
{
$identifiant=$_POST["champ_cat_supprimer"];
$verif=&Categorie::contientProjet($identifiant);
if ($verif==1)return false;
else return true;
}
 
?>
/trunk/controleur/CVS/Repository
New file
0,0 → 1,0
gestion/version_3/controleur
/trunk/controleur/CVS/Root
New file
0,0 → 1,0
:extssh:jp_milcent@adullact.net:/cvsroot/eflore
/trunk/controleur/CVS/Entries
New file
0,0 → 1,7
/gtt_controleur_admin_categorie.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_controleur_admin_motif_absence.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_controleur_admin_projet.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_controleur_admin_statut.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_controleur_admin_utilisateur.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_controleur_editer_preferences.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_controleur_travail.php/1.1/Tue Feb 22 12:07:13 2005//
/trunk/controleur/gtt_controleur_admin_projet.php
New file
0,0 → 1,155
<?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 CHEMIN_MENU.'gtt_menu_admin_projet.php';
 
/**
*fonction traitant l'ajout de projet
*/
function traiterAjoutProjet()
{
if (isset($_POST["champ_valider_projet"]))
{
if(isset( $_POST["champ_date_deb_projet"]))
{
$tabDate=$_POST["champ_date_deb_projet"];
$t='-';
$dateNonFormate=$tabDate['Y'];
$dateNonFormate.=$t;
$dateNonFormate.=$tabDate['M'];
$dateNonFormate.=$t;
$dateNonFormate.=$tabDate['d'];
}else $dateNonFormate=null;
$tab=array(
GEST_CHAMPS_NOM_PROJET=>$_POST["champ_nom_projet"],
GEST_CHAMPS_DESCRIPTION_PROJET=>$_POST["champ_description"],
GEST_CHAMPS_DATE_DEBUT_PROJET=>$dateNonFormate,
GEST_CHAMPS_DUREE_PREVUE_PROJET=>$_POST["champ_duree_prev_projet"],
GEST_CHAMPS_AVANCEMENT_PROJET=>$_POST["champ_avancement_projet"],
GEST_CHAMPS_ID_CATEGORIE=>$_POST["champ_categorie_projet"]);
$i=&Projet::nextId();
$proj=new Projet($i);
$proj->construireProjet($tab);
$k=$proj->enregistrerNewProjet();
}
$_POST["champ_valider_projet"]='dejaValider';
$_POST["champ_nom_projet"]='';
}
/**
*fonction traitant la supression de projets
*la supression de projets entraine la suppression d'eventuelles
*taches faisant partie du projet
*/
 
function traiterSupprimerProjet()
{
if(isset($_POST["btn_supprimer_projet"]))
{
$i=$_POST["champ_proj_supprimer"];
$verif=&Projet::contientTache($i);
if($verif!=1)
{
$b=&Projet::supprimerProjet($i);
}else $b=0;
if ($b==0)
{
echo "echec supression";
}
}
$_POST["btn_supprimer_projet"]='dejaValider';
$_POST["champ_proj_supprimer"]='';
}
/**
*fonction verifiant si le projet contient des taches
*/
 
function verifContientTache()
{
$i=$_POST["champ_proj_supprimer"];
$verif=&Projet::contientTache($i);
if ($verif==1)return false;
else return true;
}
 
/**
*fonction traitant toutes les actions du menu admin projet
*/
function traiterAdminProjet()
{
$text=creerEntetePage(GESTION_ADMIN_PROJET_L);
//cas de l'ajout
$form=afficherMenuAjouterProjet();
if (isset($_POST["champ_valider_projet"])and $_POST["champ_valider_projet"]!='dejaValider'and $form->validate())
{
$form->process('traiterAjoutProjet');
$t=afficherMenuAjouterProjet();
$text.=$t->ToHTml();
}else{
$text.=$form->ToHtml();
}
//cas de la suppression
$forms=afficherMenuSupprimerProjet();
if (isset($_POST["btn_supprimer_projet"]) and $_POST["btn_supprimer_projet"]!='dejaValider' and $forms->validate())
{
$forms->process('traiterSupprimerProjet');
$m=afficherMenuSupprimerProjet();
$text.=$m->ToHtml();
}else{
$text.=$forms->ToHtml();
}
//affichage des options d'administration
$formp=creerFormulaireOptionAdmin();
$text.=$formp->ToHtml();
//affichage des options disponibles pour l'utilisateur courant
$text.=afficherOptionAplication($GLOBALS['idCurrentUser']);
return $text;
}
?>
/trunk/controleur/gtt_controleur_admin_statut.php
New file
0,0 → 1,130
<?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 CHEMIN_MENU.'gtt_menu_admin_statut.php';
/**
*fonction traitant l'enregistrement des statuts
*/
 
function traiterAjouterStatut()
{
if (isset($_POST["champ_valider_statut"]))
{
$i=&Statut::nextId();
$s=new Statut($i);
$s->setLibelleStatut($_POST["champ_nom_statut"]);
$s->enregistrerStatut();
}
$_POST["champ_valider_statut"]='dejaValider';
$_POST["champ_nom_statut"]='';
}
 
 
/**
*fonction traitant la supression de statut
*/
 
function traiterSupprimerStatut()
{
if (isset($_POST["btn_supprimer_statut"]))
{
$identifiant=$_POST["champ_statut_supprimer"];
$verif=&Statut::statutUtilise($identifiant);
if($verif!=1)
{
$j=&Statut::supprimerStatut($identifiant);
}else $j=0;
if ($j==0)
{
echo "echec supression";
}
}
$_POST["btn_supprimer_statut"]='dejaValider';
$_POST["champ_statut_supprimer"]='';
}
 
 
/**
*fonction verifiant si statut peut etre supprime
*/
function verifStatutUtilise()
{
$identifiant=$_POST["champ_statut_supprimer"];
$verif=&Statut::statutUtilise($identifiant);
if ($verif==1)return false;
else return true;
}
/**
*fonction traitant toutes les actions du menu admin statut
*/
function traiterAdminStatut()
{
$text=creerEntetePage(GESTION_ADMIN_STATUT_L);
//cas ajout utilisateur
$form=afficherMenuAjouterStatut();
if (isset($_POST["champ_valider_statut"]) and $_POST["champ_valider_statut"]!='dejaValider' and $form->validate())
{
$form->process('traiterAjouterStatut');
$m=afficherMenuAjouterStatut();
$text.=$m->ToHTml();
}else
{
$text.=$form->ToHtml();
}
//cas supression
$forms=afficherMenuSupressionstatut();
if (isset($_POST["btn_supprimer_statut"]) and $_POST["btn_supprimer_statut"]!='dejaValider' and $forms->validate())
{
$forms->process('traiterSupprimerStatut');
$m=afficherMenuSupressionStatut();
$text.=$m->ToHtml();
}else{
$text.=$forms->ToHtml();
}
//affichage des options d'administration
$formp=creerFormulaireOptionAdmin();
$text.=$formp->ToHtml();
//affichage des options disponibles pour l'utilisateur courant
$text.=afficherOptionAplication($GLOBALS['idCurrentUser']);
return $text;
}
?>
/trunk/controleur/gtt_controleur_editer_preferences.php
New file
0,0 → 1,77
<?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 |
/*@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
@version $Date: 2004/07/06
*/
// +------------------------------------------------------------------------------------------------------+
// +------------------------------------------------------------------------------------------------------+
// | INCLUSION DE FICHIERS |
// +------------------------------------------------------------------------------------------------------+
//inclusion des paquets de la librairie pear
include_once CHEMIN_FN_GENERIQUE_AFFICHAGE;
include_once CHEMIN_MENU.'gtt_menu_editer_preferences.php';
include_once CHEMIN_CLASSES_METIER.'gtt_preference.class.php';
/**
*fonction traitant les fonctions du menu editer prefernces
*/
function traiterEditerPreferences($user)
{
$text=creerEntetePage(GESTION_EDITER_PREFERENCES_L);
$form= afficherMenuEditerPref($user);
if (isset($_POST["btn_valider_editer"])and $_POST["btn_valider_editer"]!='dejaValider'and $form->validate())
{
$form->process(editerPref($user));
$t=afficherMenuEditerPref($user);
$text.=$t->ToHTml();
}else{
$text.=$form->ToHtml();
}
//affichage des options disponibles pour l'utilisateur courant
$text.=afficherOptionAplication($user);
return $text;
}
 
/**
*fonction realisant l'ajout et la supression de preferences
*/
function editerPref($user)
{
$r=&Preference::supprimerPreferences($user);
$nb=$_POST["champ_nb_total_proj"]; //NB TOTAL DE PROJET
for($u=0;$u<$nb;$u++)
{
if(isset($_POST["champ_check".$u]))
{
$preference1=new Preference($user,$_POST["champ_id_pr".$u]);
$ret= $preference1->enregistrerPreference();
if($ret!=1)echo "erreur preferences";
}
}
}
?>
/trunk/controleur/gtt_controleur_admin_utilisateur.php
New file
0,0 → 1,268
<?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 CHEMIN_MENU.'gtt_menu_admin_utilisateur.php';
include_once CHEMIN_CLASSES_METIER.'gtt_utilisateur.class.php';
/**
*creation de regles de validation relatives aux valeurs saisies
*/
 
function verifValeurTemps()
{
if (($_POST["champ_temps_travail"]<12)and ($_POST["champ_temps_travail"]>=0))
{
return true;
}
}
 
/**
*traitement des donnees recuperees par l'utilisateur
*
*/
 
function traiterDonneeAdminAjoutUser($values)
{
//test des champs administrateur
if (isset($values["champ_administrateur"]))
{
$admin=1;
}else $admin=0;
if (isset($values["champ_admin2"]))
{
$admin2=1;
}else $admin2=0;
if (!isset($values["champ_nom"]))
{
$values["champ_nom"]=$_POST['nom_utilisateur'];
}
if (isset ($_POST["champ_valider"]))
{
if ($values["champ_verif"]==0)
{
$tab=array(
GEST_CHAMPS_NOM =>$values["champ_nom"],
GEST_CHAMPS_PRENOM =>$values["champ_prenom"],
GEST_CHAMPS_PASSWORD =>$values["champ_password"],
GEST_CHAMPS_EMAIL =>$values["champ_email"],
GEST_CHAMPS_TELEPHONE =>$values["champ_telephone"],
GEST_CHAMPS_ADRESSE =>$values["champ_adresse"],
GEST_CHAMPS_CODE_POSTAL =>$values["champ_code_postal"],
GEST_CHAMPS_VILLE =>$values["champ_ville"] ,
GEST_CHAMPS_QUOTA_HEURES_SUPP => $values["champ_heure_supp_init"],
GEST_CHAMPS_CONGES_PAYES =>$values["champ_nb_conge"] ,
GEST_CHAMPS_TEMPS_DE_TRAVAIL => $values["champ_temps_travail"],
GEST_CHAMPS_ADMIN => $admin,
GEST_CHAMPS_ADMIN2 => $admin2,
GEST_CHAMPS_STATUT => $values["champ_statut"],
GEST_CHAMPS_NOTES =>null);
}else {
$tab=array(
GEST_CHAMPS_NOM =>$values["nom_utilisateur"],
GEST_CHAMPS_PRENOM =>$values["prenom_utilisateur"],
GEST_CHAMPS_PASSWORD =>$values["champ_password"],
GEST_CHAMPS_EMAIL =>$values["champ_email"],
GEST_CHAMPS_TELEPHONE =>$values["champ_telephone"],
GEST_CHAMPS_ADRESSE =>$values["champ_adresse"],
GEST_CHAMPS_CODE_POSTAL =>$values["champ_code_postal"],
GEST_CHAMPS_VILLE =>$values["champ_ville"] ,
GEST_CHAMPS_QUOTA_HEURES_SUPP => $values["heure_supp_utilisateur"],
GEST_CHAMPS_CONGES_PAYES =>$values["conges_utilisateur"] ,
GEST_CHAMPS_TEMPS_DE_TRAVAIL => $values["champ_temps_travail"],
GEST_CHAMPS_ADMIN => $admin,
GEST_CHAMPS_ADMIN2 => $admin2,
GEST_CHAMPS_STATUT => $values["champ_statut"],
GEST_CHAMPS_NOTES =>null);
}
//verification si mode insertion ou modification
if ($values["champ_verif"]!=1)
{
$id=&Utilisateur::nextId();
$l=new Utilisateur($id);
$l->construireUtilisateur($tab);
$res=$l->enregistrerNewUtilisateur();
}
else
{
$i=&Utilisateur::recupIDUtilisateurMail($values["champ_email"]);
$user= new Utilisateur($i);
$user->construireUtilisateur($tab);
$user->MettreAJourUtilisateur();
if (isset($_POST["champ_password"])and isset($_POST["champ_confirm_password"]))
{
$user->mettreAJourPassword($_POST["champ_password"]);
}
}
}
$_POST["champ_valider"]='dejaValider';
}
/*fonction traitant la supression d'utilisateur
*a verifier les valeurs d'erreur
*/
 
function traiterAdminEditerUser($values)
{
//cas supression
if (isset($_POST["btn_supprimer"]))
{
$rang =$values['champ_utilisateur_supprimer'];
$k = &Utilisateur::supprimerUtilisateur($rang);
}
$_POST["btn_supprimer"]='dejaValider';
//$_POST["champ_utilisateur_supprimer"]='';
}
 
/**
*fonction renvoyant un tableau avec les donnees
*de l'utilisateur a modifier
*@return tab
*/
function renvoyerDonneesUser()
{
if (isset($_POST["btn_modifier"])and isset($_POST["champ_utilisateur_supprimer"]))
{
$ident= $_POST["champ_utilisateur_supprimer"];
$u= &Utilisateur::recupererUtilisateur($ident);
//champ admin
if ($u->isAdmin()==1)
{
$ad1=true;
}else $ad1=false;
if ($u->isAdmin2()==1)
{
$ad2=true;
}else $ad2=false;
$defaults=array ('champ_nom' =>$u->getNom(),
'champ_prenom'=>$u->getPrenom(),
'champ_adresse' =>$u->getAdresse(),
'champ_ville' =>$u->getVille(),
'champ_code_postal' =>$u->getCode(),
'champ_telephone' =>$u->getTelephone(),
'champ_email' =>$u->getEmail(),
//champ_password =>$u->getPassword(),
'champ_statut' =>$u->getStatut(),
'champ_administrateur' =>$ad1,
'champ_admin2' => $ad2,
'champ_nb_conge' =>$u->getConges( ),
'champ_temps_travail' =>$u->getTempsTravail(),
'champ_heure_supp_init' =>$u->getQuota( ));
return $defaults;
 
}
}
 
/**
*fonction traitant toutes les fonctions liees a l'administration d'un utilisateur
*/
 
function traiterAdminUtilisateur($tab,$mode)
{
$text=creerEntetePage(GESTION_ADMIN_UTILISATEUR_L);
//cas de l'ajout d'un utilisateur
$form=afficherMenuAjouterUser($tab,$mode);
if (isset($_POST["champ_valider"])and $_POST["champ_valider"]!='dejaValider')
{
if ($form->validate())
{
$form->process('traiterDonneeAdminAjoutUser');
$m=afficherMenuAjouterUser('',0);
$text.=$m->ToHtml();
}
elseif($_POST["champ_verif"]==1)
{
if (verifValeurTemps())
{
$form->process('traiterDonneeAdminAjoutUser');
$m=afficherMenuAjouterUser('',0);
$text.=$m->ToHtml();
}else echo "heure de travail erronée";
}
}else{
$text.=$form->ToHtml();
}
//cas supprimer utilisateur
$forms=afficherMenuEditerUser();
if (isset($_POST["btn_supprimer"])and $_POST["btn_supprimer"]!='dejaValider'and $forms->validate())
{
$forms->process('traiterAdminEditerUser');
$m=afficherMenuEditerUser();
$text.=$m->ToHtml();
}else
{
$text.=$forms->ToHtml();
}
//affichage des options d'administration
$formp=creerFormulaireOptionAdmin();
$text.=$formp->ToHtml();
//affichage des options disponibles pour l'utilisateur courant
$text.=afficherOptionAplication($GLOBALS['idCurrentUser']);
return $text;
}
?>
/trunk/controleur/gtt_controleur_travail.php
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
/trunk/classes/BOG_debogage.inc.php
New file
0,0 → 1,59
<?php
 
// +----------------------------------------------------------------------------+
// | $RCSfile: BOG_debogage.inc.php,v $
// +----------------------------------------------------------------------------+
// | Copyright (c) 2003 Tela Botanica |
// +----------------------------------------------------------------------------+
// +----------------------------------------------------------------------------+
//
// IDENTITE : $Id: BOG_debogage.inc.php,v 1.1 2005/02/22 12:07:13 jpm Exp $
// FICHIER : $RCSfile: BOG_debogage.inc.php,v $
// AUTEUR : $Author: jpm $
// VERSION : $Revision: 1.1 $
// DATE : $Date: 2005/02/22 12:07:13 $
//
// +----------------------------------------------------------------------------+
 
/**
* $RCSfile: BOG_debogage.inc.php,v $ - Fichier contenant des fonctions de d?bogage.
*
*Ce fichier contient toutes les fonctions de d?bogage.
*
*@package bibliotheque
//Auteur original :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author
*@copyright Copyright (C) 2003 Tela-Botanica
*@version $Date: 2005/02/22 12:07:13 $
*/
// +----------------------------------------------------------------------------+
 
//Fonction pour le d?bogage
function BOG_afficherErreurSql ($nom_fichier_courant, $numero_ligne_courante, $message_erreur, $requete = '', $autre = '')
{
$retour_erreur = "\n";
$retour_erreur .= '<H3 style="text-align: center; color: red; font-weight: 600;" > ERREUR SQL </H3><br />'."\n";
$retour_erreur .= '<span style="color: red; font-weight: 600" > Fichier : </span> ';
$retour_erreur .= '<span style="color: black; font-weight: normal;" > '.$nom_fichier_courant.'</span><br />'."\n";
$retour_erreur .= '<span style="color: red; font-weight: 600" > Ligne n? : </span> ';
$retour_erreur .= '<span style="color: black; font-weight: normal;" > '.$numero_ligne_courante.'</span><br />'."\n";
$retour_erreur .= '<span style="color: red; font-weight: 600" > Message erreur : </span> ';
$retour_erreur .= '<span style="color: black; font-weight: normal;" > '.$message_erreur.'</span><br />'."\n";
if ($requete != '') {
$retour_erreur .= '<span style="color: red; font-weight: 600" > Requete : </span> ';
$retour_erreur .= '<span style="color: black; font-weight: normal;" > '.$requete.' </span><br />'."\n";
}
if ($autre != '') {
$retour_erreur .= '<span style="color: red; font-weight: 600" > Autres infos : </span> ';
$retour_erreur .= '<span style="color: black; font-weight: normal;" > '.$autre.' </span><br />'."\n";
}
return $retour_erreur;
}
?>
Property changes:
Added: svn:executable
/trunk/classes/gtt_authentification.php
New file
0,0 → 1,55
<?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
/*@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
@version $Date: 2004/07/06
*/
// +------------------------------------------------------------------------------------------------------+
// +------------------------------------------------------------------------------------------------------+
// | INCLUSION DE FICHIERS |
// +------------------------------------------------------------------------------------------------------+
 
include_once 'HTML/QuickForm.php';
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
/**
*fonction affichant le menu de connexion
*/
function afficherMenuConnexion()
{
$res=new HTML_QuickForm('login','post');
$res->addElement('text','username',GTT_L_AU_LOGIN);
$res->addElement('password','password',GTT_L_AU_MDP);
$res->addElement('submit','btn_submit',GTT_L_G_OK);
 
return $res->toHtml();
}
?>
/trunk/classes/CVS/Repository
New file
0,0 → 1,0
gestion/version_3/classes
/trunk/classes/CVS/Root
New file
0,0 → 1,0
:extssh:jp_milcent@adullact.net:/cvsroot/eflore
/trunk/classes/CVS/Entries
New file
0,0 → 1,2
/BOG_debogage.inc.php/1.1/Tue Feb 22 12:07:13 2005//
/gtt_authentification.php/1.1/Tue Feb 22 12:07:13 2005//
/trunk/index.php
New file
0,0 → 1,189
<?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
*/
// +------------------------------------------------------------------------------------------------------+
// | INCLUSION DE FICHIERS |
// +------------------------------------------------------------------------------------------------------+
error_reporting(E_ALL);
//fichiers de la bibliotheque PEAR
include_once "Auth/Auth.php";
include_once "DB.php";
include_once 'gtt_config.inc.php';
include_once CHEMIN_LANGUES.'gtt_langue_fr.inc.php';
include_once CHEMIN_CLASSES.'gtt_authentification.php';
include_once CHEMIN_FN_GENERIQUE_AFFICHAGE;
include_once CHEMIN_MENU.'gtt_menu_admin_utilisateur.php';
include_once CHEMIN_MENU.'gtt_menu_travail.php';
include_once CHEMIN_CONTROLEUR.'gtt_controleur_admin_categorie.php';
include_once CHEMIN_CONTROLEUR.'gtt_controleur_admin_motif_absence.php';
include_once CHEMIN_CONTROLEUR.'gtt_controleur_admin_projet.php';
include_once CHEMIN_CONTROLEUR.'gtt_controleur_admin_statut.php';
include_once CHEMIN_CONTROLEUR.'gtt_controleur_admin_utilisateur.php';
include_once CHEMIN_CONTROLEUR.'gtt_controleur_travail.php';
include_once CHEMIN_CONTROLEUR.'gtt_controleur_editer_preferences.php';
include_once CHEMIN_MENU.'gtt_menu_editer_preferences.php';
 
 
//definition des constantes
define ("GESTION_TRAVAIL",1);
define ("GESTION_ADMIN_UTILISATEUR", 13);
define ("GESTION_EDITER_UTILISATEUR",14);
define ("GESTION_ADMIN_PROJET",15);
define ("GESTION_ADMIN_CATEGORIE",16);
define ("GESTION_ADMIN_MOTIF_ABSENCE",17);
define ("GESTION_ADMIN_STATUT",18);
define ("GESTION_ADMIN_FRAIS",19);
define ("GESTION_ADMIN_TACHE",20);
define ("GESTION_EDITER_PREFERENCES",21);
define ("GESTION_DECONNEXION",22);
 
//creation du dsn
//connexion a la base de donnees
$GLOBALS['db']=DB::connect($GLOBALS['dsn']);
 
if (DB::isError($GLOBALS['db']))
{
$GLOBALS['db']->getMessage();
echo "echec connexion a la base de donnees";
}
 
 
 
$params=array(
"dsn"=>$GLOBALS['dsn'],
"table"=>GEST_UTILISATEUR,
"usernamecol"=>GEST_CHAMPS_EMAIL,
"passwordcol"=>GEST_CHAMPS_PASSWORD,
"cryptype"=>"md5",
"db_fields"=>"*");
//creation de l'objet auth
 
$a = new Auth("DB",$params,"afficherMenuConnexion",true);
 
$a->setSessionname('temps_travail');
$a->setExpire(3600*24*30);
 
$a->start();
echo $a->getStatus();
 
if ($a->getAuth())
{
$mail=$a->getUserName();
$utilisateur=&Utilisateur::recupIDUtilisateurMail($mail);
$GLOBALS['idCurrentUser']=$utilisateur;
//recuperation de l'identifiant de la personne
//test des choix de menu a afficher
if (empty($action)){ $action = 1 ;}
switch ($action)
{
//cas affichage menu travail 1
case GESTION_TRAVAIL :
if (!isset($semaine))
{
$semaine=date('W',mktime(0,0,0,date('m'),date('d'),date('Y')));
}
if (!isset($annee))
{
$annee=date('Y');
}
$text=traiterAdminTravail($_SERVER["PHP_SELF"],$semaine,$annee,$utilisateur);
break;
//cas affichage du menu ajout autilisateurss 13
case GESTION_ADMIN_UTILISATEUR :
$text=traiterAdminUtilisateur('',0);
break;
//cas editer des utilisateurs 14
case GESTION_EDITER_UTILISATEUR :
$text=traiterAdminUtilisateur(renvoyerDonneesUser(),1);
break;
//cas afficher menu administration projet 15
case GESTION_ADMIN_PROJET :
$text=traiterAdminProjet();
break;
//cas afficher menu administration categorie 16
case GESTION_ADMIN_CATEGORIE :
$text=traiterAdminCategorie();
break;
//cas afficher menu admin motif absence 17
case GESTION_ADMIN_MOTIF_ABSENCE :
$text=traiterAdminMotif();
break;
//cas afficher menu admin statut 18
case GESTION_ADMIN_STATUT :
$text=traiterAdminStatut();
break;
//cas afficher admin editer frais 19
case GESTION_ADMIN_FRAIS :
$text='';
break;
//cas afficher admin editer taches 20
case GESTION_ADMIN_TACHE :
$text='';
break;
//cas editer preferences d'un utilisateur 21
case GESTION_EDITER_PREFERENCES :
$text=traiterEditerPreferences($GLOBALS['idCurrentUser']);
break;
//cas deconnexion 22
case GESTION_DECONNEXION :
$a->logout();
$text=afficherMenuConnexion();
//$GLOBALS['db']->disconnect();
break;
}
$text.=fermerBalisesFin();
echo $text;
}else
{
echo afficherMenuConnexion();
}
 
//tester le choix de l'utilisateur
 
 
?>
Property changes:
Added: svn:executable
/trunk/langues/CVS/Repository
New file
0,0 → 1,0
gestion/version_3/langues
/trunk/langues/CVS/Root
New file
0,0 → 1,0
:extssh:jp_milcent@adullact.net:/cvsroot/eflore
/trunk/langues/CVS/Entries
New file
0,0 → 1,0
/gtt_langue_fr.inc.php/1.1/Tue Feb 22 12:07:13 2005//
/trunk/langues/gtt_langue_fr.inc.php
New file
0,0 → 1,355
<?php
// +----------------------------------------------------------------------------+
// | gestion_lang_fr.php |
// +----------------------------------------------------------------------------+
// | Copyright (c) 2002 Tela Botanica |
// +----------------------------------------------------------------------------+
// | Gestion est une application permettant de gerer les heures de travail des |
// | employés sur chaque projet (taches), ainsi que leurs congés, et permet de |
// | générer des recapitulatif et graphiques. |
// | Chacun doit quotidiennement donner le temps passé sur chaque projet. |
// | |
// | Gestion demande l'identification des utilisateurs, et fait les traitements |
// | en fonction de ce parametre, de la date, et d'autres définie à chaque fois.|
// | Ce fichier contient toutes les expressions en francais du programme |
// | |
// +----------------------------------------------------------------------------+
// | Auteur : Dorian Bannier (dbannier@aol.com) |
// +----------------------------------------------------------------------------+
/**
* gestion_lang_fr.php - Fichier contenant les constantes des textes de Gestion.
*
*Ce fichier contient toutes les constantes servant à l'affichage des textes de l'application Gestion.
*
*@package gestion
//Auteur original :
*@author Dorian Bannier <dbannier@aol.com>
//Autres auteurs :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Copyright (C) 2003 Tela-Botanica
*@version $Date: 2005/02/22 12:07:13 $
*@author Shaheen ABDOOL RAHEEM <shaheenar50@hotmail.com>
*/
// +----------------------------------------------------------------------------+
//
// IDENTITE : $Id: gtt_langue_fr.inc.php,v 1.1 2005/02/22 12:07:13 jpm Exp $
// FICHIER : $RCSfile: gtt_langue_fr.inc.php,v $
// AUTEUR : $Author: jpm $
// VERSION : $Revision: 1.1 $
// DATE : $Date: 2005/02/22 12:07:13 $
//
// +----------------------------------------------------------------------------+
 
//Constante comprenant du texte de l'application Gestion Temps de Travail.
//Abréviation application : GTT
//Abréviation constantes de langue : L
//Les constantes de langues doivent donc commencer par l'abréviation : GTT_L_
 
// +----------------------------------------------------------------------------+
// GENERAL
//Abréviation : G
define ( 'GTT_L_G_NOM_APPLICATION' , 'Gestion du Temps de Travail' );
define ( 'GTT_L_G_OUI' , 'Oui' );//GESTION_OUI_L
define ( 'GTT_L_G_NON' , 'Non' );//GESTION_NON_L
define ( 'GTT_L_G_OK' , 'OK' );
define ( 'GTT_L_G_VALIDER', 'Valider');
define ( 'GTT_L_G_MODIFIER', 'Modifier');
define ( 'GTT_L_G_SUPPRIMER', 'Supprimer');
define ( 'GTT_L_G_AUJOURDHUI' , 'Aujourd\'hui' );
define ( 'GTT_L_G_MAJ' , 'Mettre à jour' );//GESTION_MAJ_L
define ( 'GTT_L_G_RECOMMENCER' , 'Recommencer' );
define ( 'GTT_L_G_JOUR_SINGULIER' , 'jour' );
define ( 'GTT_L_G_JOURS_PLURIEL' , 'jours' );
 
 
// +----------------------------------------------------------------------------+
 
// +----------------------------------------------------------------------------+
// PAGE AUTHENTIFICATION
//Abréviation : AU
define ( 'GTT_L_AU_LOGIN' , 'Login' );//GESTION_LOGIN_L
define ( 'GTT_L_AU_MDP' , 'Mot de passe' );//GESTION_PASSWORD_L
// +----------------------------------------------------------------------------+
 
// +----------------------------------------------------------------------------+
// MENU
//Abréviation : ME
define ( 'GTT_L_ME_TRAVAIL', 'Gestion du travail' );//GESTION_TRAVAIL_L
define ( 'GTT_L_ME_NON_TRAVAIL', 'Gestion des absences' );//GESTION_NONTRAVAIL_L
define ( 'GTT_L_ME_GRAPH' , 'Graphiques récapitulatifs' );//GESTION_GRAPHIQUE_L
define ( 'GTT_L_ME_RECAPITULATIF_GENERAL' , 'Informations générales' );//GESTION_RECAPGENE_L
define ( 'GTT_L_ME_RECAPITULATIF_UTILISATEUR', 'Votre travail par projet' );//GESTION_RECAPITULATIF_L
define ( 'GTT_L_ME_FEUILLE_MOIS' , 'Votre travail par mois' );//GESTION_FEUILLEMOIS_L
define ( 'GTT_L_ME_UTILISATEURS' , 'Gestion des utilisateurs' );//GESTION_DONNEE_UTILISATEUR_L
define ( 'GTT_L_ME_ADMINISTRATION' , 'Administration' );//GESTION_ADMINISTRATEUR_L
define ( 'GTT_L_ME_DECONNECTION' , 'Déconnexion' );//GESTION_DECONNECTION_L
// +----------------------------------------------------------------------------+
 
// +----------------------------------------------------------------------------+
// FICHE UTILISATEUR
//Abréviation : FU
define ( 'GTT_L_FU_TITRE_INFOS', 'Informations personnelles' );
define ( 'GTT_L_FU_TITRE_NOTE', 'Note' );
define ( 'GTT_L_FU_ID' , 'Utilisateur n°' );//GESTION_ID_L
define ( 'GTT_L_FU_STATUT' , 'Statut' );//GESTION_STATUS_L
define ( 'GTT_L_FU_EMAIL' , 'Courriel' );//GESTION_EMAIL_L
define ( 'GTT_L_FU_TEL' , 'Téléphone' );//GESTION_TEL_L
define ( 'GTT_L_FU_HEURE_SUP' , 'Heures supplémentaires restantes' );//GESTION_HEURESUPP_L
define ( 'GTT_L_FU_CONGES_RESTE' , 'Congés payés restant' );//GESTION_CONGES_RESTANT_L
define ( 'GTT_L_FU_TEMPS_TRAVAIL' , 'Temps journalier de travail' );//GESTION_TEMPSTRAVAIL_L
define ( 'GTT_L_FU_ADRESSE' , 'Adresse' );//GESTION_ADDRESSE_L
define ( 'GTT_L_FU_VILLE' , 'Ville' );//GESTION_VILLE_L
define ( 'GTT_L_FU_CODE_POSTAL' , 'Code postal' );//GESTION_CODEPOSTAL_L
define ( 'GTT_L_FU_ADMIN' , 'Adminitrateur' );//GESTION_ADMINISTRATEUR_L
define ( 'GTT_L_FU_ADMIN_2' , 'Cet utilisateur ne doit pas apparaître dans les divers récapitulatif' );//GESTION_ADMINISTRATEUR2_L
define ( 'GTT_L_FU_TITRE_MODIF_UTILISATEUR' , 'Modification des données de' );//GESTION_MAJ_USER_L
define ( 'GTT_L_FU_TITRE_MODIF_UTILISATEUR_INFOS' , 'Modification des informations générales' );
define ( 'GTT_L_FU_TITRE_MODIF_UTILISATEUR_MDP' , 'Modification du mot de passe' );
define ( 'GTT_L_FU_MAJ_MDP' , 'Ne remplissez les deux champs ci-dessous que si vous voulez changer de mot de passe, sinon, laissez-les vides' );//GESTION_MAJ_PASS_L
define ( 'GTT_L_FU_MDP' , 'Mot de passe' );//GESTION_PASSWORD_L
define ( 'GTT_L_FU_CONFIRMATION_MDP' , 'Confirmer mot de passe' );//GESTION_CONFIRM_PASSWORD_L
define ( 'GTT_L_FU_NOTE', 'Note' );
define ( 'GTT_L_FU_MODIFIER_FICHE' , 'Modifier mes données' );//GESTION_MODIFIER_DONNEES_L
define ( 'GTT_L_FU_VOIR_FEUILLE_MOIS' , 'Voir la fiche mensuelle de cette utilisateur' );//GESTION_VOIR_FICHE_L
// +----------------------------------------------------------------------------+
 
// +----------------------------------------------------------------------------+
// MENU TRAVAIL
//Abréviation : TR
define ( 'GTT_L_TR_BIENVENUE', 'Bienvenue');
define ( 'GTT_L_TR_JOURS_RECUPERATION', 'Heures supp restantes');
define ( 'GTT_L_TR_JOURS_CONGES', 'Congés payés restants');
define ( 'GTT_L_TR_MOIS', 'Mois');
define ( 'GTT_L_TR_PROJET', 'Projets');
define ( 'GTT_L_TR_DUREE', 'Durées');
define ( 'GTT_L_TR_HEURES_L', 'heures ');
define ( 'GTT_L_TR_HEURE_L', 'heure ');
 
 
// +----------------------------------------------------------------------------+
// MESSAGES d'ERREUR
//Abréviation : ERREUR
define ( 'GTT_L_ERREUR_CONNECTION_BD', 'L\erreur sql provient de la demande de connection à la base de données.' );
define ( "GTT_ERREUR_NOM", "Vous devez rentrer un nom valide");
define ( "GTT_ERREUR_PRENOM", "Vous devez rentrer un prénom valide ");
define ( "GTT_ERREUR_NOMBRE","Vous devez rentrer un nombre valide");
define ( "GTT_ERREUR_VALEUR_NOMBRE", "Valeur incorrecte ");
define ( "GTT_ERREUR_TEL", "Vous devez rentrer un numéro valide");
define ( "GTT_ERREUR_MAIL", "Vous devez rentrer un email valide ");
define ( "GTT_ERREUR_PASSWD", "Vous devez rentrer un mot de passe");
define ( "GTT_DONNEES_INCORRECTES", "Erreur : champs non conformes ");
define ( "GTT_DONNEES_A_CORRIGER", "Veuillez corriger les champs nécessaires");
define ( "GTT_SUPPR_IMPOSSIBLE","Supression Interdite");
define ( "GTT_IMPOSSIBLE_SUPPR_CAT",GTT_SUPPR_IMPOSSIBLE." : "."Supprimez d'abord la liste des projets inclus");
define ( "GTT_IMPOSSIBLE_SUPPR_PROJ",GTT_SUPPR_IMPOSSIBLE." : "."Supprimez d'abord la liste de taches");
define ( "GTT_IMPOSSIBLE_SUPPR_MOTIF", GTT_SUPPR_IMPOSSIBLE." : "."Motif d'absence utilisé");
define ( "GTT_IMPOSSIBLE_SUPPR_STATUT",GTT_SUPPR_IMPOSSIBLE." : "."Statut utilisé");
define ( "GTT_ERREUR_CHANGEMENT_CONGES", "Impossible de changer le type de congé pour la date du : ");
// +----------------------------------------------------------------------------+
 
// +----------------------------------------------------------------------------+
// Mise en forme formulaire
 
define ( 'GTT_CHAMPS_OBLIGATOIRE', "champs obligatoires");
 
 
define ( "GESTION_GESTIONDEPOSTE_L", "Gestion de Poste" );
define ( "GESTION_DATE_L", "Date" );
define ( "GESTION_BIENVENU_L", "Bienvenu" );
 
define ( "GESTION_DUREE_L", "Durée" );
define ( "GESTION_FAIT_TRAVAIL_L", ", vous avez entré comme donnée pour le" );
define ( "GESTION_PROJET_L", "Projet" );
define ( "GESTION_PROJETS_L", "Projets" );
define ( "GESTION_UTILISATEUR_L" , "Utilisateur" );
define ( "GESTION_STATUT_L" , "Statut" );
define ( "GESTION_CATEGORIE_L" , "Categorie" );
define ( "GESTION_MOTIF_L" , "Motif Absence" );
define ( "GESTION_FRAIS_L", "Frais" );
define ( "GESTION_TACHES_L","Tâches");
define ( "GESTION_RECOMMENCER_L", "Recommencer" );
define ( "GESTION_ACCEPTER_L", "Accepter");
 
 
define ( "GESTION_ERREUR_L", "ERREUR DE SAISI" );
define ( "GESTION_ERREUR2_L" , "ERREUR DANS LE CHOIX DES JOURS. UNE DES DATES CHOISIT N'EXISTE PAS!" );
define ( "GESTION_ABSCENCE_L", "Entrez votre période d'absence et son motif &nbsp :" );
//define ( "GESTION_MOTIF_L", "motif :");
define ( "GESTION_DU_L", "Du" );
define ( "GESTION_AU_L", "au" );
define ( "GESTION_RETOUR_L", "Retour" );
define ( "GESTION_AUJOURDHUI_L", "Aujourd'hui" );
define ( "GESTION_MOISDU_L", "Mois du" );
define ( "GESTION_DIM_L", "Dim" );
define ( "GESTION_LUN_L", "Lun" );
define ( "GESTION_MAR_L", "Mar" );
define ( "GESTION_MER_L", "Mer" );
define ( "GESTION_JEU_L", "Jeu" );
define ( "GESTION_VEN_L", "Ven" );
define ( "GESTION_SAM_L", "Sam" );
 
define ( "GESTION_JOUR_L", "Jour" );
define ( "GESTION_MOIS_L", "Mois" );
define ( "GESTION_ANNEE_L", "Annee" );
define ( "GESTION_RECAPITULATIF_TEXTE_L", ", voici les données concernant le temps passé par projet pour la date indiqué.
\n<br />Date : " );
 
 
define ( "GESTION_GRAPH_MOIS_L" , "Temps par projet pour le mois du " );
define ( "GESTION_GRAPH_JOUR_L" , "Temps par projet pour le " );
define ( "GESTION_GRAPH_ANNEE_L" , "Temps par projet pour l'annee " );
define ( "GESTION_FEUILLEMOIS_TEXTE_L" , "Feuille recapitulative pour le mois du " );
 
define ( "GESTION_ACTIVITE_L" , "Activité" );
define ( "GESTION_NOM_L" , "Nom" );
define ( "GESTION_LIBELLE_L", "Libelle");
define ( "GESTION_PRENOM_L" , "Prenom" );
 
define ( "GESTION_ERREUR_PASSWORD_L" , "ERREUR : vous n'avez pas entré deux fois le même mot de passe" );
define ( "GESTION_CONGES_INIT_L" , "Congés payés initiaux" );
define ( "GESTION_HEURESINIT_L" , "Heures supplémentaires initiales" );
 
 
 
define ( "GESTION_ADMIN_UTILISATEUR_L" , "Administration des utilisateurs" );
define ( "GESTION_ADMIN_STATUT_L" , "Administration des statuts" );
define ( "GESTION_ADMIN_PROJET_L" , "Administration des projets" );
define ( "GESTION_ADMIN_CATEGORIE_L" , "Administration des catégorie" );
define ( "GESTION_ADMIN_MOTIF_L" , "Administration des motifs d'absence" );
define ( "GESTION_SUPPRIMER_STATUT_L" , "Supprimer un statut" );
define ( "GESTION_SUPPRIMER_UTILISATEUR_L" , "Supprimer un utilisateur" );
define ( "GESTION_AJOUTER_UTILISATEUR_L" , "Ajouter un utilisateur" );
define ( "GESTION_EDITER_UTILISATEUR_L", "Editer Utilisateur");
define ( "GESTION_MODIFIER_UTILISATEUR_L", "Modifier données utilisateur ");
define ( "GESTION_AJOUTER_STATUT_L" , "Ajouter un statut" );
define ( "GESTION_SUPPRIMER_PROJET_L" , "Supprimer un projet" );
define ( "GESTION_AJOUTER_PROJET_L" , "Ajouter un projet" );
define ( "GESTION_DESCRIPTION_L" , "Description" );
define ( "GESTION_DATE_DEB_PROJET_L", "Date de début prévue");
define ( "GESTION_DUREE_PROJET_L", "Nombre de jours prévus");
define ( "GESTION_AVANCEMENT_PROJET_L","Pourcentage d'avancement");
define ( "GESTION_SUPPRIMER_CATEGORIE_L" , "Supprimer une catégorie" );
define ( "GESTION_AJOUTER_CATEGORIE_L" , "Ajouter une catégorie" );
define ( "GESTION_SUPPRIMER_CONDITION_L" , "Supprimer un motif d'absence" );
define ( "GESTION_AJOUTER_CONDITION_L" , "Ajouter un motif d'absence" );
define ( "GESTION_QUESTION_RTT_L" , "Ce motif d'absence supprime des heures de travail?" );
define ( "GESTION_EDITER_PREFERENCES_L","Editer Preferences");
define ( "GESTION_MES_PROJETS_L","Mes Projets");
define ( "GESTION_HEURES_RESTANTES_L" , "Heures restantes" );
define ( "GESTION_CONSEILS_PREFERENCES", "Cochez/Decochez les projets que vous souhaitez appara&icirc;tre/enlever de votre liste de projets");
 
 
 
define ( "GESTION_HEURES_TRAVAIL_L" , " heures de travail" );
define ( "GESTION_HEURE_TRAVAIL_L" , " heure de travail" );
define ( "GESTION_MOISPRECEDENT_L" , "Mois précédent" );
define ( "GESTION_MOISSUIVANT_L" , "Mois suivant" );
define ( "GESTION_LEGENDE_L" , "Legende des graphiques" );
define ( "GESTION_SEMAINE_DU", " Semaine du ");
define ( "A ", " :&agrave;");
 
 
 
 
 
 
 
 
define ( "GESTION_TRAVAIL_L" , "Travail" );
define ( "GESTION_NON_REMPLI_L" , "Jour non rempli" );
define ( "GESTION_RTTJOUR_L" , " jour" );
define ( "GESTION_RTTJOURS_L" , " jours" );
define ( "GESTION_DESTINATAIRE_L" , "<table><tr><td valign=top>Dest.</td><td><div align=left>Daniel MATHIEU, Président\n<br />
Tela Botanica\n<br />Institut de Botanique\n<br />163, rue Auguste Broussonnet\n<br />34090 Montpellier</div></td></tr></table>");
define ( "GESTION_EXP_L" , "Exp." );
define ( "GESTION_FICHE_ABSCENCE_L" , "Fiche d'Absence" );
define ( "GESTION_TEXTE_ABS1_L" , "Monsieur le Président," );
define ( "GESTION_TEXTE_ABS2_L" , "Je vous informe par la présente lettre de mon abscence du " );
define ( "GESTION_TEXTE_ABS3_L" , " (inclus) au " );
define ( "GESTION_TEXTE_ABS4_L" , " (inclus), soit " );
define ( "GESTION_TEXTE_ABS5_L" , " jours" );
define ( "GESTION_TEXTE_ABS6_L" , " pris pour cause de " );
define ( "GESTION_TEXTE_ABS_CP_L" , " pris sur mes congés payés." );
define ( "GESTION_TEXTE_ABS_JR_L" , " pris sur mes jours à récupérer" );
define ( "GESTION_TEXTE_FAIT_L" , "Fait à Montpellier le" );
define ( "GESTION_VISA_L" , "Visa Tela Botanica\n <br> &nbsp \n <br> &nbsp \n <br> &nbsp \n <br> &nbsp \n <br> &nbsp \n" );
define ( "GESTION_LUNDI_L" , "lundi" );
define ( "GESTION_MARDI_L" , "mardi" );
define ( "GESTION_MERCREDI_L" , "mercredi" );
define ( "GESTION_JEUDI_L" , "jeudi" );
define ( "GESTION_VENDREDI_L" , "vendredi" );
define ( "GESTION_SAMEDI_L" , "samedi" );
define ( "GESTION_DIMANCHE_L" , "dimanche" );
 
 
define ( "GESTION_TOTAL_HEURE_L" , "Total d'heures de travail sur l'année" );
 
//nom de la taceh par defaut
define ("GESTION_NOM_TACHE_DEFAUT_L","g&eacute;n&eacute;ral");
define ("GTT_NOM_WEEK_END","week-end");
define ("GTT_NOM_TRAVAIL","travail");
define ("GTT_NOM_RECUP_PART","Récup part:1/2j");
define ("GTT_NOM_CONGES_PAYES","Congés Payés");
define ("GTT_NOM_RECUPERATION","Récupération");
define ("GTT_NOM_MALADIE","Maladie");
define ("GTT_NOM_GREVE","Grêve");
define ("GTT_NOM_FERIE","Ferié");
 
// +----------------------------------------------------------------------------+
/*
* $Log: gtt_langue_fr.inc.php,v $
* Revision 1.1 2005/02/22 12:07:13 jpm
* Ajout des fichiers les plus aboutis.
*
* Revision 2.3 2004/07/07 15:10:43 shaheen
* modif 1
*
* Revision 2.2 2003/10/15 08:03:04 jpm
* Changement d'un intitulé de menu.
*
* Revision 2.1 2003/10/14 08:14:05 jpm
* Modification des noms des menus.
*
* Revision 2.0 2003/09/16 12:58:27 jpm
* *** empty log message ***
*
* Revision 1.15 2003/09/16 12:03:50 jpm
* Ajout de la constante GTT_L_G_RECOMMENCER.
*
* Revision 1.14 2003/09/15 07:55:06 jpm
* Ajout de nouvelles constantes générales.
*
* Revision 1.13 2003/09/08 07:37:12 jpm
* Modification des noms de constantes de langue pour respecter le format Tela-Botanica.
*
* Revision 1.12 2003/09/03 12:34:21 jpm
* Ajout de $Log: gtt_langue_fr.inc.php,v $
* Ajout de Revision 1.1 2005/02/22 12:07:13 jpm
* Ajout de Ajout des fichiers les plus aboutis.
* Ajout de
* Ajout de Revision 2.3 2004/07/07 15:10:43 shaheen
* Ajout de modif 1
* Ajout de
* Ajout de Revision 2.2 2003/10/15 08:03:04 jpm
* Ajout de Changement d'un intitulé de menu.
* Ajout de
* Ajout de Revision 2.1 2003/10/14 08:14:05 jpm
* Ajout de Modification des noms des menus.
* Ajout de
* Ajout de Revision 2.0 2003/09/16 12:58:27 jpm
* Ajout de *** empty log message ***
* Ajout de
* Ajout de Revision 1.15 2003/09/16 12:03:50 jpm
* Ajout de Ajout de la constante GTT_L_G_RECOMMENCER.
* Ajout de
* Ajout de Revision 1.14 2003/09/15 07:55:06 jpm
* Ajout de Ajout de nouvelles constantes générales.
* Ajout de
* Ajout de Revision 1.13 2003/09/08 07:37:12 jpm
* Ajout de Modification des noms de constantes de langue pour respecter le format Tela-Botanica.
* Ajout de.
*
*/
// +----------------------------------------------------------------------------+
?>
Property changes:
Added: svn:executable
/trunk/gtt_calendrier.class.php
New file
0,0 → 1,435
<?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 |
// +------------------------------------------------------------------------------------------------------+
// | Auteur : Dorian Bannier (dbannier@aol.com) |
 
// |@author ABDOOL RAHEEM shaheen <shaheenar50@hotmail.com> |
// |@version 3 |
 
include_once("HTML/Table.php");
include_once 'gtt_config.inc.php';
include_once CHEMIN_LANGUES.'gtt_langue_fr.inc.php';
 
/**
*classe calendrier pour gerer le calendrier pour un mois et une annee
*donne
*@param annee
*@param mois
*@param premier jour du mois
*@param semaine
*@param l'url du resultat affiche
*@param liste de noms des jours
*@param liste de noms des mois
*@param liste des jours feries du mois
*/
 
 
class Calendrier
{
 
var $annee=null;
var $mois=null;
var $jour=null;
var $semaine=null;
var $url =null;
var $nom_jours=array();
var $nom_mois=array();
var $liste_feries=array();
/** contient le nom des variables que recevra l'url spécifié
* @var string
*/
var $var_jour = "jour";
var $var_mois = "mois";
var $var_annee = "annee";
 
/**
*constructeur de la classe calendrier
*toutes les variables sont initialises avec les donnees
*de la date du jour si on ne passe aucune date en parametre
*sinon on initialise le calendrier avec
*@param semaine
*@param annee
*/
function Calendrier($url,$semaine,$annee)
{
$tableau=&Calendrier::LundiEtDimancheSemaine($semaine,$annee);
$this->semaine=$semaine;
$this->mois=date('m',mktime(0,0,0,1,$tableau[0],$annee));
$this->jour=date('d',mktime(0,0,0,1,$tableau[0],$annee));
$this->annee=date('Y',mktime(0,0,0,1,$tableau[0],$annee));
//$this->annee=$annee;
$this->url=$url;
$this->nom_jours=array (GESTION_LUN_L, GESTION_MAR_L, GESTION_MER_L, GESTION_JEU_L, GESTION_VEN_L, GESTION_SAM_L ,GESTION_DIM_L);
$this->nom_mois=array(1 => "Janvier","F&eacute;vrier","Mars","Avril","Mai","Juin","Juillet",
"Ao&ucirc;t","Septembre","Octobre","Novembre","D&eacute;cembre");
$this->liste_feries =&Calendrier::calculJoursFeries($this->annee);
echo date('M',mktime(0,0,0,1,$tableau[0],$annee));
echo " $this->annee";
}
 
/**
*fonction calculant les dates des jours feries en france
*renvoie un tableau contenant la liste de dates par mois
*les dates sont de la forme timestamp unix
*
*@param $annee
*@return tableaude dates
*/
 
function calculJoursFeries($annee)
{
$paques=&Calendrier::paques($annee);
$ascension=&Calendrier::ascension($annee);
$pentecote=&Calendrier::pentecote($annee);
$tab=array(mktime(0,0,0,1,1,$annee),
$paques,
mktime(0,0,0,5,1,$annee),
mktime(0,0,0,5,8,$annee),
$ascension,
$pentecote,
mktime(0,0,0,7,14,$annee),
mktime(0,0,0,8,15,$annee),
mktime(0,0,0,11,1,$annee),
mktime(0,0,0,11,11,$annee),
mktime(0,0,0,12,25,$annee));
return $tab;
 
}
 
/**
*fonction calculant le premier jour du mois
*@param: annee, mois
*/
 
function premierJourMois($argMois,$argAnnee)
{
$intPremierJour = date("w",mktime(0,0,0,$argMois,1,$argAnnee));
if($intPremierJour == 0) $intPremierJour = 7; // si c'est un dimanche
return $intPremierJour;
}
 
/**
*fonction calculat le dernier jour du mois
*@param : annee, mois
*renvoie un entier
*/
function dernierJourMois($argMois,$argAnnee)
{
$h=&Calendrier::nbJourMois($argMois,$argAnnee);
$intDernierJour=date("w",mktime(0,0,0,$argMois,$h,$argAnnee));
if($intDernierJour == 0) $intDernierJour = 7; // si c'est un dimanche
return $intDernierJour;
}
/**
*fonction calculant le nombre de jours dans un mois
*@param annee, mois
*/
function nbJourMois($argMois,$argAnnee)
{
return date("t", mktime(0,0,0,$argMois,1,$argAnnee));
}
 
 
/*
**fonction calculant la date du lundi de paques pour une annee
*renvoie un timestamp
*/
function paques($annee)
{
$date_paques=easter_date($annee);
$lundi_paques=mktime(date("H", $date_paques),
date("i", $date_paques),
date("s", $date_paques),
date("m", $date_paques),
date("d", $date_paques) + 1,
date("Y", $date_paques)
);
return $lundi_paques;
}
/*
*fonction calculant la date du lundi de l'ascension
*renvoie un timestamp
*renvoie la date
*/
function ascension($annee)
{
$date_paques=easter_date($annee);
$date_ascension = mktime(date("H", $date_paques),
date("i", $date_paques),
date("s", $date_paques),
date("m", $date_paques),
date("d", $date_paques) + 39,
date("Y", $date_paques)
);
return $date_ascension;
}
 
/*
*fonction calculant la date du lundi de la pentecote
*renvoie un timestamp
*renvoie cette derniere
*/
function pentecote($annee)
{
$date_paques=easter_date($annee);
$date_ascension=&Calendrier::ascension($annee);
$date_pentecote = mktime(date("H", $date_ascension),
date("i", $date_ascension),
date("s", $date_ascension),
date("m", $date_ascension),
date("d", $date_ascension) + 11,
date("Y", $date_ascension)
);
return $date_pentecote;
}
 
/**
*fonction affichant un calendrier naviguable par semaine
*option pour cliquer sur une semaine donnee
*utilisation de la bibliotheque HTML/TABLE de PEAR
*@param numero de semaine et annee
*/
 
function afficherCalendrier($annee)
{
$id="CALENDRIER";
$text="<div id=\"calendrier\">";
//initialisation des donnees
$intPremierJour = &Calendrier::premierJourMois($this->mois,$this->annee);
$intNbJoursMois = &Calendrier::nbJourMois($this->mois,$this->annee);
$prevMonth=&Calendrier::prevMonth($this->mois,$this->annee);
$intNbJourPrec=&Calendrier::nbJourMois($prevMonth[0],$prevMonth[1]);
$intDernierJour=&Calendrier::dernierJourMois($this->mois,$this->annee);
//calcul du lundi et dimanche de la semaine courante
//calcul de l'annee
$tabLundiDimanche=&Calendrier::lundiEtDimancheSemaine($this->semaine,$annee);
//creation de la table HTML representant le calendrier
$tableAttrs = array("class" =>$id,"width" => "200");
$table = new HTML_Table($tableAttrs);
$table -> setAutoGrow(true);
$table->addRow($this->nom_jours);
//remplissage de la premiere ligne
//test si on est dans la semaine courante
//si dimanche egale a la fin de la semaine
$semCourante=(date('d',mktime(0,0,0,1,$tabLundiDimanche[1],$annee))==(7-$intPremierJour+1));
$p=1;
for($i=1; $i<=7;$i++)
{
if ($i<$intPremierJour and $semCourante)//mois prec et semaine courante
{
$elem[$i-1]="<div id=\"moisprecedent\">".($intNbJourPrec-$intPremierJour+$i+1);
}elseif ($i<$intPremierJour and !$semCourante)//mois prec et pas semaien courante
{
$semaineL=date('W',mktime(0,0,0,$prevMonth[0],($intNbJourPrec-$intPremierJour+$i+1),$prevMonth[1]));
$elem[$i-1]= "<a href=".$this->url."?action=".GESTION_TRAVAIL."&semaine=$semaineL"."&annee=$prevMonth[1]".">".($intNbJourPrec-$intPremierJour+$i+1)."</a>";
}elseif($i>=$intPremierJour and $semCourante)//mois courant et semaine courante
{
$elem[$i-1] = "<div id=\"jourcourant\">".$p."</div>";
$p++;
}else {//mois courant et pas semaine courante
$semaineL=date('W',mktime(0,0,0,$this->mois,$p,$this->annee));
$elem[$i-1] = "<a href=".$this->url."?action=".GESTION_TRAVAIL."&semaine=$semaineL";
$elem[$i-1] .="&annee=".$this->annee.">".$p."</a>";
$p++;
}
}
$table->addRow($elem);
//remplissage du reste des lignes
$i=0; //indice du tableau
//lundi de la semaien courante
// $t=&Calendrier::lundiEtDimancheSemaine($this->semaine,$this->annee);
$lundiCourant=date('d',mktime(0,0,0,1,$tabLundiDimanche[0],$annee));
$semCourante2=0;
for ($f=$p; $f<=$intNbJoursMois ; $f++)
{
if ($f==$lundiCourant and $i==0)
{
$semCourante2=1;//booleen
}
//calcul de la semaine courante
$semaineL2=date('W',mktime(0,0,0,$this->mois,$f,$this->annee));
if ($semCourante2==1)
{
$elem[$i]= "<div id=\"jourcourant\">".$f."</div>";
}else{
$elem[$i]="<a href=".$this->url."?action=".GESTION_TRAVAIL."&semaine=$semaineL2";
$elem[$i].="&annee=".$this->annee.">".$f."</a>";
}
if ($i==6)
{
$i=0;
if ($semCourante2==1)
{
$semCourante2=0;
}
$table->addRow($elem);
}else $i++;
}
//remplissage de la derniere ligne
$semaineL3=date('W',mktime(0,0,0,$this->mois,$intNbJoursMois,$this->annee));
if ($semCourante2==0)
{
for ($d=$i; $d<=6;$d++)
{
$s=$d-$i+1;
$elem[$d]="<a href=".$this->url."?action=".GESTION_TRAVAIL."&semaine=$semaineL2";
$elem[$d].="&annee=".$this->annee.">".$s."</a>";
}
}else {
for ($d=$i; $d<=6;$d++)
{
$elem[$d]= ($d-$i+1);
}
}
$table->addRow($elem);
$text.=$table->toHtml();
$text .= "</div>";
return $text;
}
 
/**
*fonction calculant la semaine suivante
*/
function nextWeek($semaine, $annee)
{
if ($this->semaine==53)
{
$tab[0]=$nextWeek=1;
$tab[1]=$nextAnnee=$this->annee+1;
}else {
$tab[0]=$nextWeek=$this->semaine+1;
$tab[1]=$nextAnnee=$this->annee;
}
return $tab;
}
/**
*fonction caluculant le mois suivant
*renvoie l'annee et le mois suivant sous forme de chiffre
*dans un tableau
*/
function nextMonth($mois,$annee)
{
if ($mois==12)
{
$tab[0]=$nextMois=1;
$tab[1]=$nextAnnee=$annee+1;
}else
{
$tab[0]=$nextMois=$mois+1;
$tab[1]=$nextAnnee=$annee;
}
return $tab;
}
/**
*fonction calculant le mois precedent
*renvoie l'annee et le mois precedent sous forme de chiffre
*/
function prevMonth($mois,$annee)
{
if ($mois==1)
{
$tab[0]=$prevMois=12;
$tab[1]=$prevAnnee=$annee-1;
}else
{
$tab[0]=$prevMois=$mois-1;
$tab[1]=$prevAnnee=$annee;
}
return $tab;
}
/**
*fonction renvoyant la date du lundi d'une semaine
*a partir du numero de semaine
*@param numero de semaine
*@praam annee
*@return un tableau contenat le timestamp unix de lenudi et dimanche
*de la semaine en question
*/
function lundiEtDimancheSemaine($semaine,$annee) {
 
if ((date("w", mktime(0,0,0,1,1,$annee)) <= 4) && (date("w", mktime(0,0,0,1,1,$annee)) != 0))
{
$nbre_jour = ($semaine-1)*7;
}else{
$nbre_jour = ($semaine)*7;
}
 
if (date("w", mktime(0,0,0,1,1,$annee)) == 0)
{
$nbre_jour +=7;
}else{
$nbre_jour +=7-((date("w", mktime(0,0,0,1,1,$annee))-1)%7);
}
 
$nbre_jour_7 = $nbre_jour-6;
 
//$lundi = date("d-m-Y", mktime(0,0,0,1,$nbre_jour_7,$annee) );
//$dimanche = date("d-m-Y", mktime(0,0,0,1,$nbre_jour,$annee));
 
return array($nbre_jour_7,$nbre_jour);
}
/**
*fonction indiquant si une date est feriee ou non
*renvoie 1 si ferie
*0 sinon
*/
function isFerie($date)
{
if (in_array($date,$this->liste_feries))
{
return 1;
}else return 0;
/* for($h==0;$h<count($this->liste_feries);$h++)
{
if ($date==$this->liste_feries[$h])
{
$res= 1;
}
}
return $res;*/
}
 
}
?>
Property changes:
Added: svn:executable
/trunk/gtt_config.inc.php
New file
0,0 → 1,132
<?php
 
/*fichier de definition */
 
//==================================== CHEMINS ==================================
/* definition des chemins d'acces
//==================================================================================
*/
define ("CHEMIN",'');
define("CHEMIN_CALENDRIER",CHEMIN.'presentation/');
define("CHEMIN_FN_GENERIQUE_AFFICHAGE",CHEMIN.'presentation/gtt_fonctions_generique_affichage.php');
define("CHEMIN_CSS",CHEMIN.'presentation/');
define("CHEMIN_CLASSES_METIER",CHEMIN.'classes_metier/');
define("CHEMIN_CLASSES",CHEMIN.'classes/');
define("CHEMIN_LANGUES",CHEMIN.'langues/');
define("CHEMIN_MENU",CHEMIN.'menu/');
define("CHEMIN_CONTROLEUR",CHEMIN.'controleur/');
 
 
/**
//==================================== CONSTANTES ==================================
/* definition des constantes de plusieurs tests et divers
//==================================================================================
*/
//$GLOBALS['dsn']="mysql://shaheen:shaheen@162.38.234.6/gestion_test_v3";
$GLOBALS['dsn']="mysql://shaheen:shaheen@localhost/gestion_test_v3";
$GLOBALS['urlBase']="http://test.tela-botanica.org/gestion/index.php?action=";
//on suppose que le nombre d'heure maximum par jour de travail est 23
$GLOBALS['limiteJourTravail']=24;
//on suppose que le nombre d'heure maximumde par jour de recuperation partielle est 11
$GLOBALS['limiteJourRecupPart']=12;
/**
//==================================== CONSTANTES ==================================
/* definition des constantes de nom de table et de leurs champs
//==================================================================================
*/
 
//******************utilisateur***********************//
define ("GEST_UTILISATEUR", "gestion_utilisateur");
define ("GEST_CHAMPS_ID_UTILISATEUR","gu_id_utilisateur");
define("GEST_CHAMPS_NOM","gu_nom");
define("GEST_CHAMPS_PRENOM", "gu_prenom");
define("GEST_CHAMPS_PASSWORD","gu_password");
define("GEST_CHAMPS_EMAIL","gu_email");
define("GEST_CHAMPS_TELEPHONE","gu_telephone");
define("GEST_CHAMPS_ADRESSE","gu_adresse");
define("GEST_CHAMPS_CODE_POSTAL","gu_code_postal");
define("GEST_CHAMPS_VILLE","gu_ville");
define("GEST_CHAMPS_QUOTA_HEURES_SUPP","gu_quota_heures_supp");
define("GEST_CHAMPS_CONGES_PAYES","gu_conges_payes");
define("GEST_CHAMPS_TEMPS_DE_TRAVAIL","gu_temps_de_travail");
define("GEST_CHAMPS_ADMIN","gu_admin");
define("GEST_CHAMPS_ADMIN2","gu_admin2");
define("GEST_CHAMPS_STATUT","gs_id_statut");
define("GEST_CHAMPS_NOTES", "gu_notes");
 
//******************motif absence***********************//
 
define("GEST_MOTIF_ABSENCE","gestion_motif_absence");
define("GEST_CHAMPS_ID_MOTIF","gma_id_motif");
define("GEST_CHAMPS_LIBELLE_MOTIF","gma_libelle_motif");
define("GEST_CHAMPS_TYPE_RTT","gma_type_rtt");
 
//******************note frais***********************//
 
define("GEST_FRAIS","gestion_note_frais");
define("GEST_CHAMPS_ID_FRAIS","gnf_if_frais");
define("GEST_CHAMPS_LIBELLE_FRAIS","gnf_libelle_frais");
 
//******************depenses***********************//
 
define("GEST_DEPENSE","gestion_depense");
define("GEST_CHAMPS_DATE_FRAIS","gd_date_depense");
define("GEST_CHAMPS_MONTANT_HT","gd_montant_ht");
define("GEST_CHAMPS_MONTANT_TTC","gd_montant_ttc");
 
//******************statut***********************//
 
define("GEST_STATUT","gestion_statut");
define("GEST_CHAMPS_ID_STATUT","gs_id_statut");
define("GEST_CHAMPS_LIBELLE_STATUT","gs_libelle_statut");
 
//******************categorie***********************//
 
define("GEST_CATEGORIE","gestion_categorie");
define("GEST_CHAMPS_ID_CATEGORIE","gc_id_categorie");
define("GEST_CHAMPS_LIBELLE_CATEGORIE","gc_libelle_categorie");
 
//******************projet***********************//
 
define("GEST_PROJET","gestion_projet");
define("GEST_CHAMPS_ID_PROJET","gp_id_projet");
define("GEST_CHAMPS_NOM_PROJET","gp_nom_projet");
define("GEST_CHAMPS_DESCRIPTION_PROJET","gp_description");
define("GEST_CHAMPS_DATE_DEBUT_PROJET","gp_date_debut");
define("GEST_CHAMPS_DUREE_PREVUE_PROJET","gp_duree_prevue");
define("GEST_CHAMPS_AVANCEMENT_PROJET","gp_avancement");
 
//******************absence***********************//
 
define("GEST_ABSENCE","gestion_absence");
define("GEST_CHAMPS_DATE_DEBUT_ABSENCE","ga_date_debut");
define("GEST_CHAMPS_DATE_FIN_ABSENCE","ga_date_fin");
define("GEST_CHAMPS_DATE_ENVOI_LETTRE","ga_date_envoi_lettre");
 
//******************travail***********************//
 
define("GEST_TRAVAIL","gestion_travail");
define("GEST_CHAMPS_DATE_TRAVAIL","gt_date_travail");
define("GEST_CHAMPS_DUREE_TRAVAIL","gt_duree_travail");
 
//******************preferences***********************//
 
define("GEST_PREFERENCES","gestion_preferences");
 
//******************taches***********************//
 
define("GEST_TACHES","gestion_taches");
define("GEST_CHAMPS_ID_TACHE","gt_id_tache");
define("GEST_CHAMPS_NOM_TACHE","gt_nom_tache");
define("GEST_CHAMPS_DESCRIPTION_TACHE","gt_description_tache");
define("GEST_CHAMPS_DATE_DEB_TACHE","gt_date_debut_tache");
define("GEST_CHAMPS_DUREE_PREVUE_TACHE","gt_duree_prevue");
define("GEST_CHAMPS_AVANCEMENT_TACHE","gt_avancement_tache");
define("GEST_CHAMPS_TEMPS_REEL_TACHE","gt_duree_reelle_tache");
 
//******************prevision***********************//
define ("GEST_PREVISION","gestion_prevision_tache");
define ("GEST_CHAMPS_DATE_PREVISION","gpt_date_prevision");
define ("GEST_CHAMPS_DUREE_PREVISION","gpt_duree_prevision");
 
?>
Property changes:
Added: svn:executable
/trunk/installation/gestion_test_v3.sql.zip
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/installation/gestion_test_v3.sql.zip
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/installation/gestion.sql
New file
0,0 → 1,279
#tables de la base de donnees
 
 
 
 
#table contenant les motifs d'absence
 
DROP TABLE IF EXISTS gestion_motif_absence;
 
CREATE TABLE gestion_motif_absence (
gma_id_motif TINYINT(3) UNSIGNED NOT NULL,
gma_libelle_motif VARCHAR(255) NOT NULL,
gma_type_rtt CHAR(1) NOT NULL,
PRIMARY KEY(gma_id_motif)
);
 
# table contenant le montant des deplacements, date du deplacement, les objets du trajet et la description du trajet
DROP TABLE IF EXISTS gestion_frais_kilometrique;
 
 
CREATE TABLE gestion_frais_kilometrique (
gfk_id_frais_kilometrique INTEGER(10) UNSIGNED NOT NULL,
gfk_taux_kilometre FLOAT NOT NULL,
PRIMARY KEY(gfk_id_frais_kilometrique)
);
 
#contient le statut des utilisateurs
 
DROP TABLE IF EXISTS gestion_statut;
 
CREATE TABLE gestion_statut (
gs_id_statut TINYINT(3) UNSIGNED NOT NULL,
gs_libelle_statut VARCHAR(255) NOT NULL,
PRIMARY KEY(gs_id_statut)
);
 
# contient le sidentifiant sdes notes de frais qui correspondent au numero du plan comptable, ainsi que le libelle du plan comptable
 
DROP TABLE IF EXISTS gestion_note_frais;
 
CREATE TABLE gestion_note_frais (
gnf_id_frais INTEGER(10) UNSIGNED NOT NULL,
gnf_libelle_frais VARCHAR(255) NOT NULL,
PRIMARY KEY(gnf_id_frais)
);
 
#stocke les differentes categorie sde projet existantes
DROP TABLE IF EXISTS gestion_categorie;
 
CREATE TABLE gestion_categorie (
gc_id_categorie INTEGER(10) UNSIGNED NOT NULL,
gc_libelle_categorie VARCHAR(255) NULL,
PRIMARY KEY(gc_id_categorie)
);
#contient les informations relatives a un projet
DROP TABLE IF EXISTS gestion_projet;
 
CREATE TABLE gestion_projet (
gp_id_projet INTEGER(10) UNSIGNED NOT NULL,
gc_id_categorie INTEGER(10) UNSIGNED NOT NULL,
gp_nom_projet VARCHAR(255) NOT NULL,
gp_description VARCHAR(255) NULL,
gp_date_debut DATE NULL,
gp_duree_prevue FLOAT NULL,
gp_avancement INTEGER(11) NULL,
PRIMARY KEY(gp_id_projet),
FOREIGN KEY(gc_id_categorie)
REFERENCES gestion_categorie(gc_id_categorie)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
 
#contient les informations relatives aux utilisateurs
 
DROP TABLE IF EXISTS gestion_utilisateur;
 
CREATE TABLE gestion_utilisateur (
gu_id_utilisateur INTEGER(10) UNSIGNED NOT NULL,
gs_id_statut TINYINT(3) UNSIGNED NOT NULL,
gu_nom VARCHAR(255) NOT NULL,
gu_prenom VARCHAR(255) NOT NULL,
gu_password VARCHAR(255) NOT NULL,
gu_email VARCHAR(255) NOT NULL,
gu_telephone INTEGER(10) UNSIGNED NULL,
gu_adresse VARCHAR(255) NULL,
gu_code_postal INTEGER(10) UNSIGNED NULL,
gu_ville VARCHAR(255) NULL,
gu_quota_heures_supp FLOAT NULL,
gu_conges_payes FLOAT NULL,
gu_temps_de_travail FLOAT NULL,
gu_admin TINYINT(3) UNSIGNED NULL,
gu_admin2 TINYINT(3) UNSIGNED NULL,/*indique si l'utilisateur doit figurer dans l'affichage des recapitulatifs*/
gu_notes VARCHAR(255) NULL,
PRIMARY KEY(gu_id_utilisateur),
FOREIGN KEY(gs_id_statut)
REFERENCES gestion_statut(gs_id_statut)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
 
#stocke les dates de trvail et leurs durees, ainsi que l'utilisateur et le projet concernes
 
DROP TABLE IF EXISTS gestion_travail;
CREATE TABLE gestion_travail (
gp_id_projet INTEGER(10) UNSIGNED NOT NULL,
gu_id_utilisateur INTEGER(10) UNSIGNED NOT NULL,
gt_date_travail DATE NOT NULL,
gt_duree_travail FLOAT NOT NULL,
PRIMARY KEY(gp_id_projet, gu_id_utilisateur,gt_date_travail),
FOREIGN KEY(gp_id_projet)
REFERENCES gestion_projet(gp_id_projet)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(gu_id_utilisateur)
REFERENCES gestion_utilisateur(gu_id_utilisateur)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
 
#contient les dates de debut et de fin d'absence, ainsi que la date d'envoi de la lettre d'absence
DROP TABLE IF EXISTS gestion_absence;
 
 
CREATE TABLE gestion_absence (
gu_id_utilisateur INTEGER(10) UNSIGNED NOT NULL,
gma_id_motif TINYINT(3) UNSIGNED NOT NULL,
ga_date_debut DATE NOT NULL,
ga_date_fin DATE NOT NULL,
ga_date_envoi_lettre DATE NOT NULL,
PRIMARY KEY(gu_id_utilisateur, gma_id_motif, ga_date_debut),
FOREIGN KEY(gu_id_utilisateur)
REFERENCES gestion_utilisateur(gu_id_utilisateur)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(gma_id_condition)
REFERENCES gestion_motif_absence(gma_id_motif)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
 
#fait le lien entre l'utilisateur et les frais kilometriques qu'il occasionne
DROP TABLE IF EXISTS gestion_composer_utilisateur_frais_kilometrique;
 
CREATE TABLE gestion_composer_utilisateur_frais_kilometrique (
gcufk_id_frais_kilometrique INTEGER(10) UNSIGNED NOT NULL,
gcufk_id_utilisateur INTEGER(10) UNSIGNED NOT NULL,
gcufk_date_frais DATE NOT NULL,
gcufk_nb_kilometre FLOAT NULL,
gcufk_objet VARCHAR(255) NULL,
gcufk_trajet VARCHAR(255) NULL,
gcufk_montant_total FLOAT NOT NULL,
PRIMARY KEY(gcufk_id_frais_kilometrique, gcufk_id_utilisateur, gcufk_date_frais),
FOREIGN KEY(gcufk_id_frais_kilometrique)
REFERENCES gestion_frais_kilometrique(gfk_id_frais_kilometrique)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(gcufk_id_utilisateur)
REFERENCES gestion_utilisateur(gu_id_utilisateur)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
 
#stocke la date de depense et le montant de chaque depense
DROP TABLE IF EXISTS gestion_depense;
 
CREATE TABLE gestion_depense (
gu_id_utilisateur INTEGER(10) UNSIGNED NOT NULL,
gnf_id_frais INTEGER(10) UNSIGNED NOT NULL,
gd_date_depense DATE NOT NULL,
gd_montant_ht FLOAT NULL,
gd_montant_ttc FLOAT NOT NULL,
PRIMARY KEY(gu_id_utilisateur, gnf_id_frais, gd_date_depense),
FOREIGN KEY(gu_id_utilisateur)
REFERENCES gestion_utilisateur(gu_id_utilisateur)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(gnf_id_frais)
REFERENCES gestion_note_frais(gnf_id_frais)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
 
# stocke la date de debut et la duree du temps prevu par l'utilisateur sur le projet
 
# DROP TABLE IF EXISTS gestion_prevision_projet;
 
# CREATE TABLE gestion_prevision_projet (
# gu_id_utilisateur INTEGER(10) UNSIGNED NOT NULL,
# gp_id_projet INTEGER(10) UNSIGNED NOT NULL,
# gpp_date_prevision DATE NOT NULL,
# gpp_duree_prevu FLOAT NOT NULL,
# PRIMARY KEY(gu_id_utilisateur, gp_id_projet, gpp_date_prevision),
# FOREIGN KEY(gu_id_utilisateur)
# REFERENCES gestion_utilisateur(gu_id_utilisateur)
# ON DELETE NO ACTION
# ON UPDATE NO ACTION,
# FOREIGN KEY(gp_id_projet)
# REFERENCES gestion_projet(gp_id_projet)
# ON DELETE NO ACTION
# ON UPDATE NO ACTION
# );
 
#stocke les preferences d'un utilisateur : utilisee pour l'affichage
DROP TABLE IF EXISTS gestion_preferences;
 
CREATE TABLE gestion_preferences (
gu_id_utilisateur INTEGER(10) UNSIGNED NOT NULL,
gp_id_projet INTEGER(10) UNSIGNED NOT NULL,
PRIMARY KEY(gu_id_utilisateur, gp_id_projet),
FOREIGN KEY(gu_id_utilisateur)
REFERENCES gestion_utilisateur(gu_id_utilisateur)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(gp_id_projet)
REFERENCES gestion_projet(gp_id_projet)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
 
#stocke les differentes taches qui composent un projet
DROP TABLE IF EXISTS gestion_taches;
 
 
CREATE TABLE gestion_taches (
gt_id_tache INTEGER UNSIGNED NOT NULL,
gp_id_projet INTEGER(10) UNSIGNED NOT NULL,
gt_nom_tache VARCHAR(255) NOT NULL,
gt_description_tache VARCHAR(255) NULL,
gt_date_debut_tache DATE NULL,
gt_duree_prevue INTEGER UNSIGNED NULL,
gt_avancement INT NULL,
PRIMARY KEY(gt_id_tache),
FOREIGN KEY(gp_id_projet)
REFERENCES gestion_projet(gp_id_projet)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
 
#gestion des predecessers d'une tache afin de faire des diagrammes de gantt
 
Drop TABLE IF EXISTS gestion_predecesseurs;
 
CREATE TABLE gestion_predecesseurs (
gt_id_tache INTEGER UNSIGNED NOT NULL,
gpred_id_pred INTEGER UNSIGNED NOT NULL,
PRIMARY KEY(gt_id_tache, gpred_id_pred),
FOREIGN KEY(gt_id_tache)
REFERENCES gestion_taches(gt_id_tache)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(gpred_id_pred)
REFERENCES gestion_taches(gt_id_tache)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
 
#stocke les previsions faites sur une tache
 
DROP TABLE IF EXISTS gestion_prevision_tache;
 
CREATE TABLE gestion_prevision_tache (
gu_id_utilisateur INTEGER(10) UNSIGNED NOT NULL,
gt_id_tache INTEGER UNSIGNED NOT NULL,
gpt_date_prevision DATE NOT NULL,
gpt_duree_prevision FLOAT NOT NULL,
PRIMARY KEY(gu_id_utilisateur, gt_id_tache, gpt_date_prevision),
FOREIGN KEY(gu_id_utilisateur)
REFERENCES gestion_utilisateur(gu_id_utilisateur)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(gt_id_tache)
REFERENCES gestion_taches(gt_id_tache)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
 
 
 
/trunk/installation/CVS/Repository
New file
0,0 → 1,0
gestion/version_3/installation
/trunk/installation/CVS/Root
New file
0,0 → 1,0
:extssh:jp_milcent@adullact.net:/cvsroot/eflore
/trunk/installation/CVS/Entries
New file
0,0 → 1,2
/gestion.sql/1.1/Thu Jun 24 14:20:25 2004//
/gestion_test_v3.sql.zip/1.1/Tue Feb 22 12:06:20 2005//