Rev 189 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// +------------------------------------------------------------------------------------------------------+// | PHP version 5.1.1 |// +------------------------------------------------------------------------------------------------------+// | Copyright (C) 2006 Tela Botanica (accueil@tela-botanica.org) |// +------------------------------------------------------------------------------------------------------+// | This file is part of eFlore. |// | |// | Foobar is free software; you can redistribute it and/or modify |// | it under the terms of the GNU General Public License as published by |// | the Free Software Foundation; either version 2 of the License, or |// | (at your option) any later version. |// | |// | Foobar 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 General Public License for more details. |// | |// | You should have received a copy of the GNU General Public License |// | along with Foobar; if not, write to the Free Software |// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |// +------------------------------------------------------------------------------------------------------+// CVS : $Id$/*** Classe TravailProjet** Description**@package eFlore*@subpackage modele//Auteur original :*@version 3*@author Shaheen ABDOOL RAHEEM <shaheenar50@hotmail.com>//Autres auteurs :*@version 4*@author Jean-Pascal MILCENT <jpm@clapas.org>*@author aucun*@copyright Tela-Botanica 2000-2006*@version $Revision$ $Date$// +------------------------------------------------------------------------------------------------------+*//*** class TravailProjet : est à la fois le DAO et le conteneur de la table gestion_utilisateur.* classe métier*/class TravailProjet extends aGttSql {/*** Constantes : */const GTP_ID = 'TRAVAILPROJET_ID';const GTP_ID_UTILISATEUR_DATE_DEB_FIN = 'TRAVAILPROJET_ID_UTILISATEUR_DATE';const GTP_ID_MAX_UTILISATEUR = 'TRAVAILPROJET_ID_MAX_UTILISATEUR';const GTP_ID_MAX_PROJET = 'TRAVAILPROJET_ID_MAX_PROJET';const GTP_ID_MAX_DATE_TRAVAIL = 'TRAVAILPROJET_ID_MAX_DATE_TRAVAIL';const GTP_PROJET = 'TRAVAILPROJET_ID_PROJET';const GTP_UTILISATEUR = 'TRAVAILPROJET_ID_UTILISATEUR';const GTP_UTILISATEUR_SOMME_TEMPS_PAR_PROJET = 'TRAVAILPROJET_ID_UTILISATEUR_SOMME_TEMPS_PAR_PROJET';/*** Attributs : */private $id_utilisateur;private $id_projet;private $id_date_travail;private $duree;/*** Aggregations : *//*** Constructeur : */public function __construct($cmd = null, $parametres = null){$this->dao_table_nom = GTT_BDD_PREFIXE . 'gestion_travail_projet';$this->dao_correspondance = array('gtp_id_utilisateur' => 'id_utilisateur','gtp_id_projet' => 'id_projet','gtp_id_date_travail' => 'id_date_travail','gtp_duree' => 'duree');// Si l'on veut remplir l'objet à la création on lance la requete correspondanteif (!is_null($cmd)) {$this->consulter($cmd, $parametres, true);}}/*** Accesseurs : */// Id Utilisateurpublic function getIdUtilisateur(){return $this->id_utilisateur;}public function setIdUtilisateur( $iu ){$this->id_utilisateur = $iu;}// Id Projetpublic function getIdProjet(){return $this->id_projet;}public function setIdProjet( $ip ){$this->id_projet = $ip;}// Id Date Travailpublic function getIdDateTravail(){return $this->id_date_travail;}public function setIdDateTravail( $idt ){$this->id_date_travail = $idt;}// Dureepublic function getDuree(){return $this->duree;}public function setDuree( $d ){$this->duree = $d;}/*** Méthodes : *//*** Consulter la table gestion_travail_projet.* @return mixed un tableau d'objets TravailProjet s'il y en a plusieurs, l'objet TravailProjet s'il y en a 1 seul sinon false.*/public function consulter($cmd = '', $parametres = array(), $instancier = false){switch ($cmd) {case TravailProjet::GTP_ID:$requete = 'SELECT * '.'FROM ' . GTT_BDD_PREFIXE . 'gestion_travail_projet '.'WHERE gtp_id_utilisateur = #0 '.' AND gtp_id_projet = #1 '.' AND gtp_id_date_travail = "#2" ';break;case TravailProjet::GTP_ID_UTILISATEUR_DATE_DEB_FIN:$requete = 'SELECT * '.'FROM ' . GTT_BDD_PREFIXE . 'gestion_travail_projet '.'WHERE gtp_id_utilisateur = #0 '.' AND gtp_id_date_travail >= "#1" '.' AND gtp_id_date_travail <= "#2" ';break;case TravailProjet::GTP_ID_MAX_UTILISATEUR:$requete = 'SELECT MAX(gtp_id_utilisateur) '.'FROM ' . GTT_BDD_PREFIXE . 'gestion_travail_projet ';break;case TravailProjet::GTP_ID_MAX_PROJET:$requete = 'SELECT MAX(gtp_id_projet) '.'FROM ' . GTT_BDD_PREFIXE . 'gestion_travail_projet ';break;case TravailProjet::GTP_ID_MAX_DATE_TRAVAIL:$requete = 'SELECT MAX(gtp_id_date_travail) '.'FROM ' . GTT_BDD_PREFIXE . 'gestion_travail_projet ';break;case TravailProjet::GTP_PROJET:$requete = 'SELECT gtp_id_projet '.'FROM ' . GTT_BDD_PREFIXE . 'gestion_travail_projet '.'WHERE gtp_id_projet = #0 ';break;case TravailProjet::GTP_UTILISATEUR:$requete = 'SELECT gtp_id_utilisateur '.'FROM ' . GTT_BDD_PREFIXE . 'gestion_travail_projet '.'WHERE gtp_id_utilisateur = #0 ';break;default :$message = 'Commande '.$cmd.' inconnue!';$e = GestionnaireErreur::formaterMessageErreur(__FILE__, __LINE__, $message);trigger_error($e, E_USER_ERROR);}return parent::consulter($requete, $parametres, $instancier);}/*** Retourne la somme des heures travaillées pour chaque projet, pour un* utilisateur donné** @WARNING Fonction plus pratique que d'utiliser le DAO (mais c'est MAL !)** @param int $idUtilisateur l'identifiant de l'utilisateur*/public function getTempsTravailUtilisateurParProjet($idUtilisateur) {$requete = 'SELECT gtp_id_utilisateur '.', gtp_id_projet '.', sum(gtp_duree) AS temps_total_heures '.'FROM ' . GTT_BDD_PREFIXE . 'gestion_travail_projet '.'WHERE gtp_id_utilisateur = ' . $idUtilisateur . ' '.'GROUP BY gtp_id_projet ';$resultat = $GLOBALS['db']->getAll($requete);return $resultat;}}/* +--Fin du code ----------------------------------------------------------------------------------------+** $Log$** +-- Fin du code ----------------------------------------------------------------------------------------+*/?>