/// <summary>
        /// Function for add a new fiche in BDD
        /// </summary>
        /// <param name="ctx"> dbDataContext </param>
        /// <param name="idUser"> String </param>
        /// <param name="date"> String </param>
        /// <param name="submit"> Boolean </param>
        public static void insertNewFiche(dbDataContext ctx, string idUser, string date, bool submit)
        {
            var fiche = new fichefrais
            {
                idVisiteur = idUser,
                mois = date,
                nbJustificatifs = 0,
                montantValide = 0,
                dateModif = DateTime.Now,
                idEtat = "CR"
            };
            ctx.fichefrais.InsertOnSubmit(fiche);

            var req = from f in ctx.fraisforfait
                      select f;

            foreach (var element in req)
            {
                var ligneFrais = new lignefraisforfait
                {
                    idVisiteur = idUser,
                    mois = date,
                    idFraisForfait = element.id,
                    quantite = 0
                };
                ctx.lignefraisforfait.InsertOnSubmit(ligneFrais);
            }

            if (submit)
            {
                ctx.SubmitChanges();
            }
        }
 partial void Updatefichefrais(fichefrais instance);
 partial void Deletefichefrais(fichefrais instance);
 partial void Insertfichefrais(fichefrais instance);
		private void detach_fichefrais(fichefrais entity)
		{
			this.SendPropertyChanging();
			entity.etat = null;
		}
		private void attach_fichefrais(fichefrais entity)
		{
			this.SendPropertyChanging();
			entity.visiteur = this;
		}
        /// <summary>
        /// Function for init datas in inputs
        /// </summary>
        private void initDatas()
        {
            var fiche = from f in this.ctx.fichefrais
                        where f.idVisiteur == viewUser.Value && f.mois == viewDate && f.idEtat == "CL"
                        select f;

            if (!fiche.Any())
            {
                MessageBox.Show("Pas de fiche de frais pour ce visiteur ce mois-ci");
            }
            else
            {
                this.ficheValider = fiche.First();

                setInfosValidate(this.ficheValider.dateModif, this.ficheValider.etat.libelle);
                getLignesForfaits();
                getLignesHorsForfaits();

                this.labelDate.Visible = true;
                this.labelEtat.Visible = true;
                this.textBoxEtat.Visible = true;
                this.textBoxDate.Visible = true;
                this.labelForfaitiseViewComptable.Visible = true;
                this.labelNonForfaitiseViewComptable.Visible = true;
                this.dataGridViewComptableForfaitise.Visible = true;
                this.dataGridViewComptableNonForfaitise.Visible = true;
                this.buttonValidateComptableView.Visible = true;
                this.buttonResetComptableView.Visible = true;

                dataGridViewComptableForfaitise.CellMouseDown += dataGridViewComptableForfaitise_CellMouseDown;
            }
        }
        /// <summary>
        /// Function to start on click in buttonValiderSuivi button
        /// </summary>
        /// <param name="sender"> Object </param>
        /// <param name="e"> Events </param>
        private void buttonValiderSuivi_Click(object sender, EventArgs e)
        {
            if (this.comboBoxSelectUserSuivi.SelectedIndex == -1)
            {
                MessageBox.Show("Veuillez sélectionner un utilisateur");
            }
            else
            {
                viewUser = (Functions.Item)this.comboBoxSelectUserSuivi.SelectedItem;
                viewDate = this.dateTimePickerSelectDateSuivi.Value.ToString("MMyyyy");

                var listFiche = from f in this.ctx.fichefrais
                                join E in this.ctx.etat
                                on f.idEtat equals E.id
                            where f.idVisiteur == viewUser.Value && f.mois == viewDate && (f.idEtat == "VA" || f.idEtat == "MP" || f.idEtat == "RB")
                            select f;

                if (!listFiche.Any())
                {
                    MessageBox.Show("Pas de fiche de frais pour ce visiteur ce mois");
                }
                else
                {
                    this.ficheSuivi = listFiche.First();
                    this.textBoxEtatSuivi.Text = this.ficheSuivi.etat.libelle;
                    this.textBoxDateSuivi.Text = string.Format(format, this.ficheSuivi.dateModif);

                    //Init datagridview's
                    this.dataGridViewFraisSuivi.DataSource = null;
                    var lignesForfaits = Functions.getLignesForfaits(this.ctx, viewUser, viewDate);
                    this.dataGridViewFraisSuivi.DataSource = lignesForfaits;
                    this.dataGridViewFraisSuivi.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;

                    this.dataGridViewNonFraisSuivi.DataSource = null;
                    var lignesHorsForfaits = Functions.getLignesHorsForfaits(this.ctx, viewUser, viewDate);
                    this.dataGridViewNonFraisSuivi.DataSource = lignesHorsForfaits;
                    this.dataGridViewNonFraisSuivi.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;

                    this.labelComboDateSuivi.Visible = true;
                    this.labelComboEtatSuivi.Visible = true;
                    this.textBoxEtatSuivi.Visible = true;
                    this.textBoxDateSuivi.Visible = true;

                    this.dataGridViewFraisSuivi.Visible = true;
                    this.dataGridViewNonFraisSuivi.Visible = true;

                    if (this.ficheSuivi.idEtat == "VA")
                    {
                        this.buttonSuiviPaiement.Visible = true;
                        this.buttonSuiviRembourse.Visible = true;
                    }
                    else if (this.ficheSuivi.idEtat == "MP")
                    {
                        this.buttonSuiviRembourse.Visible = true;
                    }
                }
            }
        }