Subversion Repositories Applications.gtt

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

<?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 />";}
        }
        
        
    } 
    
}
?>