private void cboMois_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                var LQuery = Modele.MaConnexion.fichefrais.ToList()
                             .Where(x => x.idVisiteur == cboMois.SelectedValue.ToString());
                BindingSource bs = new BindingSource();
                bs.DataSource = LQuery;
                bs.MoveFirst();
                fichefrais            ffrais = (fichefrais)bs.Current;
                LigneFraisHorsForfait lhf    = (LigneFraisHorsForfait)bs.Current;
                cboMois.DataSource = ffrais.mois;


                // affiche dans la dgv les éléments forfaitisés
                bsMois.DataSource                     = LQuery;
                txtNbJustif.Text                      = ffrais.nbJustificatifs.ToString();
                dgvFraisForfait.DataSource            = bsMois;
                dgvFraisForfait.Columns[0].HeaderText = "libelle";
                dgvFraisForfait.Columns[1].HeaderText = "montant";
                dgvFraisForfait.Columns[2].Visible    = false;
                //afiche dans la dgv les éléments hors forfaits
                dgvFraisHorsForfait.DataSource            = bsMois;
                dgvFraisHorsForfait.Columns[0].HeaderText = lhf.libelle;
                dgvFraisHorsForfait.Columns[1].HeaderText = lhf.date.ToString();
                dgvFraisHorsForfait.Columns[2].HeaderText = lhf.montant.ToString();
            }
            catch
            {
            }
        }
        public void Cloture(int moisEnCours)
        {
            string moisAvant;

            if (moisEnCours == 0)
            {
                moisAvant = "11/16 ";
            }
            else
            {
                moisAvant = cbMois.Items[moisEnCours - 1].ToString().Substring(0, 6);
            }
            var filtreddata = Modele.MaConnexion.fichefrais.ToList().Where(x => x.idVisiteur == Modele.MonVisiteur.idVisiteur && x.mois == moisAvant);

            if (filtreddata.Count() > 0)
            {
                fichefrais lig = (fichefrais)filtreddata.ElementAt(0);
                lig.idEtat    = "CL";
                lig.dateModif = DateTime.Today;
                Modele.MaConnexion.SaveChanges();
            }
            else
            {
                fichefrais maFiche = new fichefrais();
                maFiche.idVisiteur = Modele.MonVisiteur.idVisiteur;
                maFiche.mois       = moisAvant.Substring(0, 6);
                maFiche.idEtat     = "CL";
                maFiche.dateModif  = DateTime.Today;
                Modele.MaConnexion.fichefrais.Add(maFiche);
                Modele.MaConnexion.SaveChanges();
            }
            MessageBox.Show("Fiche du mois de " + moisAvant + " cloturé.", "Action");
        }
        private void cboChoixV_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (bLoad)
            {
                return;
            }
            var LQuery = Modele.MaConnexion.fichefrais.ToList()
                         .Where(x => x.idVisiteur == cboChoixV.SelectedValue.ToString());
            BindingSource bs = new BindingSource();

            bs.DataSource = LQuery;
            bs.MoveFirst();
            fichefrais ffrais = (fichefrais)bs.Current;

            cboMois.DataSource = ffrais.mois;
        }
        //ajout des renseignements
        private void btnAjouter1_Click(object sender, EventArgs e)
        {
            string moisEnCour = DateTime.Now.ToString("MM") + "/" + DateTime.Now.ToString("yy") + " ";

            // Fiche Frais
            fichefrais uneFiche = new fichefrais();

            uneFiche.idVisiteur      = Modele.VisiteurConnect.idVisiteur.ToString();
            uneFiche.mois            = moisEnCour;
            uneFiche.nbJustificatifs = 0;
            uneFiche.montantValide   = 0;
            uneFiche.dateModif       = DateTime.Now;
            uneFiche.idEtat          = "CR";
            var ficheFrais = Modele.MaConnexion.fichefrais.ToList()
                             .Where(x => x.idVisiteur == Modele.VisiteurConnect.idVisiteur.ToString() && x.mois == moisEnCour);



            // Nuitée
            if (nupQuantiteNuitee != null)
            {
                LigneFraisForfait unFrais = new LigneFraisForfait();
                unFrais.idVisiteur     = Modele.VisiteurConnect.idVisiteur.ToString();
                unFrais.mois           = moisEnCour;
                unFrais.idFraisForfait = "NUI";
                unFrais.quantite       = int.Parse(nupQuantiteNuitee.Value.ToString());
                var ligneNuitee = Modele.MaConnexion.LigneFraisForfait.ToList()
                                  .Where(x => x.idVisiteur == Modele.VisiteurConnect.idVisiteur.ToString() && x.mois == moisEnCour && x.idFraisForfait == "NUI");
                MessageBox.Show(ficheFrais.Count().ToString());
                if (ligneNuitee.Count() == 0)
                {
                    Modele.MaConnexion.LigneFraisForfait.Add(unFrais);
                }
                else
                {
                    ligneNuitee.First().quantite = int.Parse(nupQuantiteNuitee.Value.ToString());
                }
            }
            Modele.MaConnexion.SaveChanges();
        }
        public void ajoutBDDHF()
        {
            var        filtreddata2 = Modele.MaConnexion.fichefrais.ToList().Where(x => x.idVisiteur == "a17" && x.mois == cbMois.Text.Substring(0, 6));
            fichefrais Fiche        = new fichefrais();

            Fiche = (fichefrais)filtreddata2.ElementAt(0);
            if (Fiche.idEtat == "CL")
            {
                MessageBox.Show("ERREUR : Fiche du mois de " + cbMois.Text + " cloturé.", "Action");
            }
            else
            {
                nbFH = 0;
                LigneFraisHorsForfait maLigne = new LigneFraisHorsForfait();
                maLigne.idVisiteur = Modele.MonVisiteur.idVisiteur;
                maLigne.mois       = cbMois.Text.Substring(0, 6);
                if (dgvFrais.RowCount > 0)
                {
                    foreach (DataGridViewRow row in dgvFrais.Rows)
                    {
                        DateTime now = DateTime.Today;
                        if (DateTime.Parse(row.Cells["Date"].Value.ToString()) > now.AddYears(-1) && DateTime.Parse(row.Cells["Date"].Value.ToString()) <= now)
                        {
                            maLigne.date    = DateTime.Parse(row.Cells["Date"].Value.ToString());
                            maLigne.libelle = row.Cells["Libelle"].Value.ToString();
                            maLigne.montant = int.Parse(row.Cells["Montant"].Value.ToString());
                            Modele.MaConnexion.LigneFraisHorsForfait.Add(maLigne);
                            Modele.MaConnexion.SaveChanges();
                            nbFH++;
                        }
                        else
                        {
                            MessageBox.Show("ERREUR, la " + (nbFH + 1) + "eme ligne n'entre pas dans l'interval de date attendu !", "Action");
                        }
                    }
                    MessageBox.Show("Enregistrement de " + nbFH + " frais hors forfait", "Action");
                }
            }
        }
        public void ajoutBDD()
        {
            bool ajout       = false;
            var  LQueryExist = Modele.MaConnexion.fichefrais.ToList()
                               .Where(x => x.idVisiteur == Modele.MonVisiteur.idVisiteur && x.mois == cbMois.Text);

            if (LQueryExist.Count() == 0)
            {
                ajout = true;
                fichefrais maFiche = new fichefrais();
                maFiche.idVisiteur = Modele.MonVisiteur.idVisiteur;
                maFiche.mois       = cbMois.Text.Substring(0, 6);
                maFiche.idEtat     = "CR";
                maFiche.dateModif  = DateTime.Today;
                Modele.MaConnexion.fichefrais.Add(maFiche);
                Modele.MaConnexion.SaveChanges();
            }

            if (ajout)
            {
                Cloture(cbMois.SelectedIndex); // MODIF
            }

            LigneFraisForfait maLigne = new LigneFraisForfait();

            maLigne.idVisiteur = Modele.MonVisiteur.idVisiteur;
            maLigne.mois       = cbMois.Text.Substring(0, 6);
            var        filtreddata2 = Modele.MaConnexion.fichefrais.ToList().Where(x => x.idVisiteur == "a17" && x.mois == cbMois.Text.Substring(0, 6));
            fichefrais Fiche        = new fichefrais();

            Fiche = (fichefrais)filtreddata2.ElementAt(0);
            if (Fiche.idEtat == "CL")
            {
                MessageBox.Show("ERREUR : Fiche du mois de " + cbMois.Text + " cloturé.", "Action");
            }
            else
            {
                if (double.Parse(tbQuantitéNuitée.Text) > 0)
                {
                    maLigne.idFraisForfait = "NUI";
                    maLigne.quantite       = int.Parse(tbQuantitéNuitée.Text);
                    var filtreddata = Modele.MaConnexion.LigneFraisForfait.ToList().Where(x => x.idVisiteur == "a17" && x.idFraisForfait == "NUI" && x.mois == cbMois.Text.Substring(0, 6));

                    if (filtreddata.Count() > 0)
                    {
                        LigneFraisForfait lig = (LigneFraisForfait)filtreddata.ElementAt(0);
                        lig.quantite += maLigne.quantite;
                        Modele.MaConnexion.SaveChanges();
                        MessageBox.Show("Enregistrement de " + tbQuantitéNuitée.Text + " nuitée(s)", "Action");
                    }
                    else
                    {
                        Modele.MaConnexion.LigneFraisForfait.Add(maLigne);
                        Modele.MaConnexion.SaveChanges();
                        MessageBox.Show("Enregistrement de " + tbQuantitéNuitée.Text + " nuitée(s)", "Action");
                    }
                }
                if (double.Parse(tbQuantitéRepasMidi.Text) > 0)
                {
                    LigneFraisForfait maLigne2 = new LigneFraisForfait();
                    maLigne2.idVisiteur     = Modele.MonVisiteur.idVisiteur;
                    maLigne2.mois           = cbMois.Text.Substring(0, 6);
                    maLigne2.idFraisForfait = "REP";
                    maLigne2.quantite       = int.Parse(tbQuantitéRepasMidi.Text);
                    var filtreddata = Modele.MaConnexion.LigneFraisForfait.ToList().Where(x => x.idVisiteur == "a17" && x.idFraisForfait == "REP" && x.mois == cbMois.Text.Substring(0, 6));

                    if (filtreddata.Count() > 0)
                    {
                        LigneFraisForfait lig = (LigneFraisForfait)filtreddata.ElementAt(0);
                        lig.quantite += maLigne2.quantite;
                        Modele.MaConnexion.SaveChanges();
                        MessageBox.Show("Enregistrement de " + tbQuantitéRepasMidi.Text + " repas", "Action");
                    }
                    else
                    {
                        Modele.MaConnexion.LigneFraisForfait.Add(maLigne2);
                        Modele.MaConnexion.SaveChanges();
                        MessageBox.Show("Enregistrement de " + tbQuantitéRepasMidi.Text + " repas", "Action");
                    }
                }
                if (double.Parse(tbQuantitéKilométrage.Text) > 0 && double.Parse(tbMontantKilométrage.Text) > 0)
                {
                    LigneFraisForfait maLigne3 = new LigneFraisForfait();
                    maLigne3.idVisiteur = Modele.MonVisiteur.idVisiteur;
                    maLigne3.mois       = cbMois.Text.Substring(0, 6);
                    if (cbTypeVehicule.Text == "4CV DIESEL")
                    {
                        maLigne3.idFraisForfait = "4cD";
                    }
                    else if (cbTypeVehicule.Text == "5/6CV DIESEL")
                    {
                        maLigne3.idFraisForfait = "5cD";
                    }
                    else if (cbTypeVehicule.Text == "4CV ESSENCE")
                    {
                        maLigne3.idFraisForfait = "4cE";
                    }
                    else if (cbTypeVehicule.Text == "5/6CV ESSENCE")
                    {
                        maLigne3.idFraisForfait = "5cE";
                    }

                    maLigne3.quantite = int.Parse(tbQuantitéKilométrage.Text);
                    var filtreddata = Modele.MaConnexion.LigneFraisForfait.ToList().Where(x => x.idVisiteur == "a17" && x.idFraisForfait == maLigne3.idFraisForfait && x.mois == cbMois.Text.Substring(0, 6));

                    if (filtreddata.Count() > 0)
                    {
                        LigneFraisForfait lig = (LigneFraisForfait)filtreddata.ElementAt(0);
                        lig.quantite += maLigne3.quantite;
                        Modele.MaConnexion.SaveChanges();
                        MessageBox.Show("Enregistrement de " + tbQuantitéKilométrage.Text + " kilometres", "Action");
                    }
                    else
                    {
                        Modele.MaConnexion.LigneFraisForfait.Add(maLigne3);
                        Modele.MaConnexion.SaveChanges();
                        MessageBox.Show("Enregistrement de " + tbQuantitéKilométrage.Text + " kilometres", "Action");
                    }
                }
            }
        }