Hello,

Ta requête au départ doit récupérer :

Tout les traitements dont (Type = 1) ET (Plage Horaire Souhaitée).

Pour Jour et Matin, cela semble effectivement OK.

Pour la nuit, où tu as besoin de deux plages horaires :

Tout les traitements dont (Type = 1) ET (Plage 1 OU Plage 2).

Or tu as écrits ta requête "Nuit" de la façon suivante :

Tout les traitements dont (Type = 1) ET (Plage 1) OU JOUR2 ET (PLAGE
HORAIRE 2)

Ce qui n'est pas la même chose...

Je te conseille d'abord de créer tes deux requêtes séparées, et
ensuite de factoriser ce qui peut l'être.


On 25 mai, 10:52, symff <charline.leg...@gmail.com> wrote:
>  Bonjour à tous !
>
> Voilà mon pb, j'ai une requête dans laquelle j'ai une condition.
> Mais je ne sais pas comment la gérer .
>
> Voilà mon code
>
> if($poste=='Matin'){
>          $horaire_deb = '04:00';
>          $horaire_fin = '12:00';}
>
> else if($poste=='Journee'){
>          $horaire_deb = '12:00';
>          $horaire_fin = '20:00';}
>
> else if($poste=='Nuit'){
>         $horaire_deb = '20:00';
>         $horaire_fin = '23:59';
>                                                                               
>   // ex: $date = '2010-02-03'
>         $an_mois = substr($date, 0, 7);                                 // 
> ex: 2010-02
>         $jr = substr($date, -2);                                              
>   // ex: 03
>         $jr_lendemain = $jr+'01';                                             
>   // ex: 4
>         $lendemain = $an_mois."0".$jr_lendemain;      // ex: 2010-02-04
>
>         $horaire_deb_2 = '00:00';
>         $horaire_fin_2 = '04:00';
>
> }
>
> $req = $this->createQuery('s')
>                         ->select('NumTraitement')
>                         ->from('TTraitement')
>                         ->where('TType2traitement_NumType = 1')
>                         ->andWhere('DateTraitement = ?', $date)
>                         ->andWhere('HeureTraitement > ?', $horaire_deb)
>                         ->andWhere('HeureTraitement < ?', $horaire_fin);
>
> if($poste == 'Nuit'){
>         $req = $req.->orWhere('DateTraitement = ?', $lendemain)
>                                 ->andWhere('HeureTraitement > ?', 
> $horaire_deb_2)
>                                 ->andWhere('HeureTraitement < ?', 
> $horaire_fin_2);
>
> }
>
> return $req->count();
>
> Je dois compter le nombre de traitement qu'a fait une équipe pour tel
> ou tel jour. Ca marche pour l'équipe de matin et celle de journée.
> Le problème c'est que l'équipe de nuit est à cheval sur deux jours.
> Donc il faut que je rajoute à ma requête le lendemain de 00:00 à 04:00
> pour compter cb elle en a fait au total.
>
> Et je ne vois pas comment ajouter ceci à ma requête...
>
> Qqun peut m'éclairer svp?
> Merci d'avance
>
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google 
> Groupes Symfony-fr.
> Pour envoyer un message à ce groupe, adressez un e-mail 
> à symfony...@googlegroups.com.
> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse 
> symfony-fr+unsubscr...@googlegroups.com.
> Pour plus d'options, consultez la page de ce 
> groupe :http://groups.google.com/group/symfony-fr?hl=fr

-- 
Vous recevez ce message, car vous êtes abonné au groupe Google 
Groupes Symfony-fr.
Pour envoyer un message à ce groupe, adressez un e-mail 
à symfony...@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse 
symfony-fr+unsubscr...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : 
http://groups.google.com/group/symfony-fr?hl=fr

Répondre à