private void textBox1_TextChanged(object sender, EventArgs e)
        {
            Ctrl_EncodageRepas controle = new Ctrl_EncodageRepas();

            // appelle la méthode liée à la procédure stockée
            controle.filtreEleve(ref dGdVw_DetailEleve, txtBx_RechNom.Text);
        }
        private void verification_Periode()
        {
            DateTime dtDebutFactureActuelle = new DateTime();
            DateTime dtFinFactureActuelle   = new DateTime();
            DateTime dtFinSemaine           = new DateTime();
            DateTime dtFactureSuivanteDebut = new DateTime();
            DateTime dtFactureSuivanteFin   = new DateTime();
            Boolean  factureMoisSuivant;

            dtFinSemaine = startDate.AddDays(4);
            Ctrl_EncodageRepas controle  = new Ctrl_EncodageRepas();
            Ctrl_EncodageRepas controle2 = new Ctrl_EncodageRepas();

            //Récupération de la date de facture de début et de fin en fonction de la semaine
            //Si aucune période n'est comprise dans cette date, alors on prend la date max selon l'id tuteur
            dtDebutFactureActuelle = Convert.ToDateTime(controle.PeriodeDebut(id_eleve, startDate.ToString("yyyyMMdd"), false));
            dtFinFactureActuelle   = Convert.ToDateTime(controle.PeriodeFin(id_eleve, startDate.ToString("yyyyMMdd"), false));

            //Test pour voir si la période est à cheval sur 2 factures, si oui, dtFactureSuivanteDebut et dtFactureSuivanteFin auront une valeur correspondant aux dates de début et de cloture de facutre du mois suivant, autrement elles vaudront 2000-01-01 (valeur arbitraire à tester)
            dtFactureSuivanteDebut = Convert.ToDateTime(controle2.PeriodeDebut(id_eleve, dtFinSemaine.ToString("yyyyMMdd"), true));
            dtFactureSuivanteFin   = Convert.ToDateTime(controle2.PeriodeFin(id_eleve, dtFinSemaine.ToString("yyyyMMdd"), true));
            //test de la valeur retournée pour créer un flag faactureMoisSuivant
            if (dtFactureSuivanteDebut == Convert.ToDateTime("2000-01-01"))
            {
                factureMoisSuivant = false;
            }
            else
            {
                factureMoisSuivant = true;
            }

            //On regarde si la date de début de repas est comprise dans une période de facturation
            int debut = DateTime.Compare(startDate, dtDebutFactureActuelle); //si le resultat vaut 0 ou 1, la date est = ou supérieure à la periode de début de facture
            int fin   = DateTime.Compare(startDate, dtFinFactureActuelle);   //si le résultat vaut 1, on est au delà de la dernière facture, sinon on est dans la période

            if (fin == 1)
            {
                groupBoxLundi.Enabled    = true;
                groupBoxMardi.Enabled    = true;
                groupBoxMercredi.Enabled = true;
                groupBoxJeudi.Enabled    = true;
                groupBoxVendredi.Enabled = true;
            }
            else if (fin <= 0)
            {
                //Procédure pour récupérer la différence de jour entre la fin de période facturée et la fin de semaine
                if (factureMoisSuivant == false) //si il n'y a pas de facture le mois suivant
                {
                    TimeSpan ts = dtFinSemaine - dtFinFactureActuelle;
                    int      differenceInDays = ts.Days;
                    affichageDifferenceJour(differenceInDays);
                }
                else  //Si il y a une facture le mois suivant
                {
                    TimeSpan ts = dtFinSemaine - dtFactureSuivanteFin;
                    int      differenceInDays = ts.Days;
                    affichageDifferenceJour(differenceInDays);
                }
            }
        }
        private void btConfirmation_Click(object sender, EventArgs e)
        {
            int      resultat  = 0;
            int      modif     = 0;
            DateTime startDate = Convert.ToDateTime(labelDebut.Text);

            for (int i = 0; i < 5; i++)
            {
                // On vérifie si la période a déjà été introduite dans la DB, si oui, on fait un update, sinon un insert
                if (labelEtat.Visible)
                {
                    Ctrl_EncodageRepas controle  = new Ctrl_EncodageRepas();
                    String             valInsert = controle.ReqInsertRepas(startDate.AddDays(i).ToString("yyyyMMdd"), id_eleve.ToString(), tab_id_repas[i].ToString());
                    resultat = controle.insertData("tbl_relation_repas", valInsert);
                }
                else
                {
                    String donnees;
                    int    id = 0;
                    //recuperer l'id repas
                    Ctrl_EncodageRepas controle = new Ctrl_EncodageRepas();
                    id      = controle.recupIdERepas(startDate.AddDays(i).ToString("yyyyMMdd"), id_eleve.ToString());
                    donnees = controle.ReqUpdateRepas(startDate.AddDays(i).ToString("yyyyMMdd"), id_eleve.ToString(), tab_id_repas[i].ToString());
                    Ctrl_EncodageRepas controle1 = new Ctrl_EncodageRepas();
                    modif = controle1.update(donnees, "tbl_relation_repas", id);
                }
            }
            if (resultat > 0)
            {
                MessageBox.Show("Les repas de l'élève " + txtBx_Nom.Text + " " + txtBx_Prenom.Text + " ont bien été ajouté pour la semaine du " + labelDebut.Text + " au " + labelFin.Text);
            }
            if (modif > 0)
            {
                MessageBox.Show("Les repas de l'élève " + txtBx_Nom.Text + " " + txtBx_Prenom.Text + " ont bien été modifié pour la semaine du " + labelDebut.Text + " au " + labelFin.Text);
            }
            chargement_Repas(startDate);
        }