Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Db PHP Discussion :

Zend: Calcul du solde Congé


Sujet :

Zend_Db PHP

  1. #1
    Membre à l'essai
    Zend: Calcul du solde Congé
    Bonjour tous le monde

    Je suis entrain de développer une application de congé. Je suis au stade de calcul des congé pris. J'ai pensé que chaque fois l'application est loader elle doit calculer le solde des congés pris pour chaque utilisateurs

    J'utilise Zend Framework , j'ai créer dans mon Model une fonction de calcul de congé mais elle a l'air de ne pas fonctionner :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    public function CongesSetSolde_Encours()
    {
     
    $aujourdhui = date("d-m-Y");
     
    $req="select DISTINCT cong.num_conge,util.num_util, solde_encours, date_debut, date_fin
     
      from conge as cong, utilisateur as util where  etatconge='Valide' and cong.num_util=util.num_util
      and cong.date_debut ='".$aujourdhui."'";
     
     $res= $this->db->fetchAll($req);
     foreach($res as $resultat):
     
     $dureeSejour = (strtotime($resultat['date_debut']) - strtotime($resultat['date_fin']));
     
     $soldeencours=$resultat['solde_encours']-$dureeSejour;
     $data=array('solde_encours'=>$soldeencours);
     
    $where="num_util='".$resultat['num_util']."'";  
    $rows_affected = $this->db->update('utilisateur',$data, $where);  
       endforeach;  
    }


    Chaque congé dont la date de début = aujourd'hui le système doit calculé le solde de ce congé par la suite le déduisant de solde en cours.

    Mais lorsque j'exécute ce code ça marche pas , pouvez vous m'aider s'il y a quelque chose à rectifié dans mon code ou y a t'il un autre moyen pour calculer le solde et le mettre à jour??
    Merci d'avance

  2. #2
    Modératrice

    "ça ne marche pas" ne nous aide pas à t'aider : que fait ton code exactement ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre à l'essai
    Salut ,

    Je m'excuse pour le retard, je te remercie de ton poste mais je viens de trouver la solution , en fait mon code sert à vérifier si le jour actuel égale au jour demadé pour sortir en congé si le congé n'est pas annulé. Par conséquence le système vas déduire le nbr de jour demandé du solde courant. La rectification est la suivante:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    public function CongesSetSolde_Encours()
    {
     
    $aujourdhui = date("Y-m-d");
     
    $req="select DISTINCT cong.num_conge,util.num_util, solde_encours, date_debut, date_fin
     
      from conge as cong, utilisateur as util where  etatconge='Valide' and cong.num_util=util.num_util
      and cong.date_debut ='".$aujourdhui."' and type_conge <>'Congé Récupération'";
     
     $res= $this->db->fetchAll($req);
     
     foreach($res as $resultat):
     $datedeb=$resultat['date_debut'];
     $datefin=$resultat['date_fin'];
     $dureeSejour = (strtotime($datefin)- strtotime($datedeb));
     $dureeSejour=$dureeSejour/86400;
     $soldeencours=$resultat['solde_encours']-$dureeSejour;
     $data=array('solde_encours'=>$soldeencours);
     
    $where="num_util='".$resultat['num_util']."'";  
    $rows_affected = $this->db->update('utilisateur',$data, $where);  
       endforeach;  
    }


    il faut calculer le bnr de jour demandé et le divisé par 86400 par la suite le déduire du solde en cours.
    Merci encore c'est résolu