Subversion Repositories Applications.gtt

Rev

Rev 170 | 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 Utilisateur
*
* 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 Utilisateur : est à la fois le DAO et le conteneur de la table gestion_utilisateur.
* classe métier
*/
class Utilisateur extends aGttSql {
        /*** Constantes : */
        const GU_TOUS = 'UTILISATEUR_TOUS';
        const GU_ID = 'UTILISATEUR_ID';
        const GU_ID_MAX = 'UTILISATEUR_ID_MAX';
        const GU_CE_STATUT = 'UTILISATEUR_CE_STATUT';
        const GU_MAIL = 'UTILISATEUR_MAIL';
        const GU_TOUS_AFFICHABLE = 'UTILISATEUR_TOUS_AFFICHABLE';
        const GU_ADMIN = 'UTILISATEUR_ADMIN';

        /*** Attributs : */
        private $id_utilisateur;
        private $ce_statut = 0;
        private $nom;
        private $prenom;
        private $password;
        private $email;
        private $telephone;
        private $adresse;
        private $code_postal;
        private $ville;
        private $quota_heures_supp = 0;
        private $conges_payes = 0;
        private $temps_de_travail_jour = 7;
        private $temps_de_travail_mois = 0;
        private $tdt_lundi = 0;
        private $tdt_mardi = 0;
        private $tdt_mercredi = 0;
        private $tdt_jeudi = 0;
        private $tdt_vendredi = 0;
        private $tdt_samedi = 0;
        private $tdt_dimanche = 0;
        private $mark_admin = 0;
        private $mark_recapitulatif = 1;
        private $notes;

        /*** Aggregations : */

        /*** Constructeur : */
        public function __construct($cmd = null, $parametres = null)
        {
                $this->dao_table_nom = GTT_BDD_PREFIXE . 'gestion_utilisateur';
                $this->dao_correspondance = array(
                        'gu_id_utilisateur'     => 'id_utilisateur',
                        'gu_ce_statut'  => 'ce_statut',
                        'gu_nom'        => 'nom',
                        'gu_prenom'     => 'prenom',
                        'gu_password'   => 'password',
                        'gu_email'      => 'email',
                        'gu_telephone'  => 'telephone',
                        'gu_adresse'    => 'adresse',
                        'gu_code_postal'        => 'code_postal',
                        'gu_ville'      => 'ville',
                        'gu_quota_heures_supp'  => 'quota_heures_supp',
                        'gu_conges_payes'       => 'conges_payes',
                        'gu_temps_de_travail_jour'      => 'temps_de_travail_jour',
                        'gu_temps_de_travail_mois'      => 'temps_de_travail_mois',
                        'gu_tdt_lundi'  => 'tdt_lundi',
                        'gu_tdt_mardi'  => 'tdt_mardi',
                        'gu_tdt_mercredi'       => 'tdt_mercredi',
                        'gu_tdt_jeudi'  => 'tdt_jeudi',
                        'gu_tdt_vendredi'       => 'tdt_vendredi',
                        'gu_tdt_samedi' => 'tdt_samedi',
                        'gu_tdt_dimanche'       => 'tdt_dimanche',
                        'gu_mark_admin' => 'mark_admin',
                        'gu_mark_recapitulatif' => 'mark_recapitulatif',
                        'gu_notes'      => 'notes');

                // Si l'on veut remplir l'objet à la création on lance la requete correspondante
                if (!is_null($cmd)) {
                        $this->consulter($cmd, $parametres, true);
                }
        }

        /*** Accesseurs : */
        // Id Utilisateur
        public function getIdUtilisateur()
        {
                return $this->id_utilisateur;
        }
        public function setIdUtilisateur( $iu )
        {
                $this->id_utilisateur = $iu;
        }

        // Gus Id Utilisateur Statut
        public function getCeStatut()
        {
                return $this->ce_statut;
        }
        public function setCeStatut( $cs )
        {
                $this->ce_statut = $cs;
        }

        // Nom
        public function getNom()
        {
                return $this->nom;
        }
        public function setNom( $n )
        {
                if (!is_null($n)) {
                        $this->nom = strtoupper($n);
                } else {
                        $this->nom = $n;
                }
        }

        // Prenom
        public function getPrenom()
        {
                return $this->prenom;
        }
        public function setPrenom( $p )
        {
                $this->prenom = $p;
        }

        // Password
        public function getPassword()
        {
                return $this->password;
        }
        public function setPassword( $p )
        {
                if (!is_null($p)) {
                        $this->password = md5($p);
                } else {
                        $this->password = $p;
                }
        }

        // Email
        public function getEmail()
        {
                return $this->email;
        }
        public function setEmail( $e )
        {
                $this->email = $e;
        }

        // Telephone
        public function getTelephone()
        {
                return $this->telephone;
        }
        public function setTelephone( $t )
        {
                $this->telephone = (string) $t;
        }

        // Adresse
        public function getAdresse()
        {
                return $this->adresse;
        }
        public function setAdresse( $a )
        {
                $this->adresse = $a;
        }

        // Code Postal
        public function getCodePostal()
        {
                return $this->code_postal;
        }
        public function setCodePostal( $cp )
        {
                $this->code_postal = $cp;
        }

        // Ville
        public function getVille()
        {
                return $this->ville;
        }
        public function setVille( $v )
        {
                $this->ville = $v;
        }

        // Quota Heures Supp
        public function getQuotaHeuresSupp()
        {
                return $this->quota_heures_supp;
        }
        public function setQuotaHeuresSupp( $qhs )
        {
                $this->quota_heures_supp = $qhs;
        }

        // Conges Payes
        public function getCongesPayes()
        {
                return $this->conges_payes;
        }
        public function setCongesPayes( $cp )
        {
                $this->conges_payes = $cp;
        }

        // Temps De Travail Jour
        public function getTempsDeTravailJour()
        {
                return $this->temps_de_travail_jour;
        }
        public function setTempsDeTravailJour( $tdt )
        {
                $this->temps_de_travail_jour = $tdt;
        }

        // Temps De Travail Mois
        public function getTempsDeTravailMois()
        {
                return $this->temps_de_travail_mois;
        }
        public function setTempsDeTravailMois( $tdt )
        {
                $this->temps_de_travail_mois = $tdt;
        }

        // Tdt Lundi
        public function getTdtLundi()
        {
                return $this->tdt_lundi;
        }
        public function setTdtLundi( $tdt )
        {
                $this->tdt_lundi = $tdt;
        }

        // Tdt Mardi
        public function getTdtMardi()
        {
                return $this->tdt_mardi;
        }
        public function setTdtMardi( $tdt )
        {
                $this->tdt_mardi = $tdt;
        }

        // Tdt Mercredi
        public function getTdtMercredi()
        {
                return $this->tdt_mercredi;
        }
        public function setTdtMercredi( $tdt )
        {
                $this->tdt_mercredi = $tdt;
        }

        // Tdt Jeudi
        public function getTdtJeudi()
        {
                return $this->tdt_jeudi;
        }
        public function setTdtJeudi( $tdt )
        {
                $this->tdt_jeudi = $tdt;
        }

        // Tdt Vendredi
        public function getTdtVendredi()
        {
                return $this->tdt_vendredi;
        }
        public function setTdtVendredi( $tdt )
        {
                $this->tdt_vendredi = $tdt;
        }

        // Tdt Samedi
        public function getTdtSamedi()
        {
                return $this->tdt_samedi;
        }
        public function setTdtSamedi( $tdt )
        {
                $this->tdt_samedi = $tdt;
        }

        // Tdt Dimanche
        public function getTdtDimanche()
        {
                return $this->tdt_dimanche;
        }
        public function setTdtDimanche( $tdt )
        {
                $this->tdt_dimanche = $tdt;
        }

        // Tdt Par Numéro du jour
        public function getTdtParNumJour($num)
        {
                $tdt = 0;
                if ($num == 1) {
                        $tdt = $this->getTdtLundi();
                } else if ($num == 2) {
                        $tdt = $this->getTdtMardi();
                } else if ($num == 3) {
                        $tdt = $this->getTdtMercredi();
                } else if ($num == 4) {
                        $tdt = $this->getTdtJeudi();
                } else if ($num == 5) {
                        $tdt = $this->getTdtVendredi();
                } else if ($num == 6) {
                        $tdt = $this->getTdtSamedi();
                } else if ($num == 7) {
                        $tdt = $this->getTdtDimanche();
                }

                return $tdt;
        }

        // Mark Admin
        public function getMarkAdmin()
        {
                return $this->mark_admin;
        }
        public function setMarkAdmin( $ma )
        {
                $this->mark_admin = $ma;
        }

        // Mark Recapitulatif
        public function getMarkRecapitulatif()
        {
                return $this->mark_recapitulatif;
        }
        public function setMarkRecapitulatif( $mr )
        {
                $this->mark_recapitulatif = $mr;
        }

        // Notes
        public function getNotes()
        {
                return $this->notes;
        }
        public function setNotes( $n )
        {
                $this->notes = $n;
        }

        /*** Méthodes : */

        /**
        * Consulter la table gestion_utilisateur.
        * @return mixed un tableau d'objets Utilisateur s'il y en a plusieurs, l'objet Utilisateur s'il y en a 1 seul sinon false.
        */
        public function consulter($cmd = '', $parametres = array(), $instancier = false)
        {
                switch ($cmd) {
                        case Utilisateur::GU_TOUS:
                                $requete =      'SELECT * '.
                                                        'FROM ' . GTT_BDD_PREFIXE . 'gestion_utilisateur '.
                                                        'ORDER BY gu_nom, gu_prenom ASC';
                                break;
                        case Utilisateur::GU_ID:
                                $requete =      'SELECT * '.
                                                        'FROM ' . GTT_BDD_PREFIXE . 'gestion_utilisateur '.
                                                        'WHERE gu_id_utilisateur = #0 ';
                                break;
                        case Utilisateur::GU_ID_MAX:
                                $requete =      'SELECT MAX(gu_id_utilisateur) AS gu_id_utilisateur '.
                                                        'FROM ' . GTT_BDD_PREFIXE . 'gestion_utilisateur ';
                                break;
                        case Utilisateur::GU_CE_STATUT:
                                $requete =      'SELECT * '.
                                                        'FROM ' . GTT_BDD_PREFIXE . 'gestion_utilisateur '.
                                                        'WHERE gu_ce_statut = "#0" ';
                                break;
                        case Utilisateur::GU_MAIL:
                                $requete =      'SELECT * '.
                                                        'FROM ' . GTT_BDD_PREFIXE . 'gestion_utilisateur '.
                                                        'WHERE gu_email = "#0" ';
                                break;
                        case Utilisateur::GU_TOUS_AFFICHABLE:
                                $requete =      'SELECT * '.
                                                        'FROM ' . GTT_BDD_PREFIXE . 'gestion_utilisateur '.
                                                        'WHERE gu_mark_recapitulatif = 0 '.
                                                        'ORDER BY gu_nom, gu_prenom ASC';
                                break;
                        case Utilisateur::GU_ADMIN:
                                $requete =      'SELECT * '.
                                                        'FROM ' . GTT_BDD_PREFIXE . 'gestion_utilisateur '.
                                                        'WHERE gu_mark_admin = 1 ';
                                break;

                        default :
                                $message = 'Commande '.$cmd.'inconnue!';
                                $e = GestionnaireErreur::formaterMessageErreur(__FILE__, __LINE__, $message);
                        trigger_error($e, E_USER_ERROR);
                }
                return parent::consulter($requete, $parametres, $instancier);
        }

        public function supprimer()
        {
                $requete =      'DELETE FROM ' . GTT_BDD_PREFIXE . 'gestion_utilisateur '.
                                        'WHERE gu_id_utilisateur = '.$this->getIdUtilisateur();
                $resultat = $GLOBALS['db']->query($requete);
                (DB::isError($resultat)) ? die (GestionnaireErreur::retournerErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;

                if ($GLOBALS['db']->affectedRows() == 1) {
                        return true;
                } elseif ($GLOBALS['db']->affectedRows() == 0) {
                        return false;
                }
        }

        /**augmenter le nombre d'heure sup
        *un acces est fait a la bse de donnees pour enregistrer les changements en temps reel
        */
        public function augmenterQuotaHeuresSup($nb)
        {
                $this->quota_heures_supp =  $this->quota_heures_supp + abs($nb);
        }

        /**diminuer le nb d'heures sup*/
        public function diminuerQuotaHeuresSup($nb)
        {
                $this->quota_heures_supp =  $this->quota_heures_supp -  abs($nb);
                /*un quota heure supp negatif implique qu'il y a des heures a rattraper*/
        }

        /**augmenter le nombre de jours de conges */
        public function augmenterCongesPayes($nb)
        {
                $this->conges_payes = $this->conges_payes +  abs($nb);
        }

        /**diminuer le nombre de jour de conges */
        public function diminuerCongesPayes($nb)
        {
                $this->conges_payes = $this->conges_payes -  abs($nb);
        }
}

/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log$
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>