//Ouvre la fenêtre 'FicheFraisWindow' pour modifier une fiche de frais
        private void _buttonModifierFraisGeneraux_Click(object sender, RoutedEventArgs e)
        {
            if (this._dataGridFraisGeneraux.SelectedItems.Count <= 0)
            {
                MessageBox.Show("Vous devez sélectionner une note de frais à modifier.", "Erreur", MessageBoxButton.OK, MessageBoxImage.Stop);
            }
            else if (this._dataGridFraisGeneraux.SelectedItems.Count > 1)
            {
                MessageBox.Show("Vous ne devez sélectionner qu'une note de frais à modifier.", "Erreur", MessageBoxButton.OK, MessageBoxImage.Stop);
            }
            else if (this._dataGridFraisGeneraux.SelectedItem != null)
            {
                try
                {
                    //lance une FicheFraisWindow avec les données du FraisWindow
                    FicheFraisWindow fraisModifierWindow = new FicheFraisWindow();

                    if (((Fiche_Frais)this._dataGridFraisGeneraux.SelectedItem) != null)
                    {
                        int index = (this._dataGridFraisGeneraux).SelectedIndex;
                        Fiche_Frais ff = new Fiche_Frais();

                        ff.Date_Fiche = ((Fiche_Frais)this._dataGridFraisGeneraux.Items[index]).Date_Fiche;
                        ff.Numero = ((Fiche_Frais)this._dataGridFraisGeneraux.Items[index]).Numero;
                        ff.Total_HT = ((Fiche_Frais)this._dataGridFraisGeneraux.Items[index]).Total_HT;
                        ff.Total_TTC = ((Fiche_Frais)this._dataGridFraisGeneraux.Items[index]).Total_TTC;
                        ff.Total_TVA = ((Fiche_Frais)this._dataGridFraisGeneraux.Items[index]).Total_TVA;

                        foreach (Ligne_Fiche_Frais lff in ((Fiche_Frais)this._dataGridFraisGeneraux.Items[index]).Ligne_Fiche_Frais.OfType<Ligne_Fiche_Frais>())
                        {
                            Ligne_Fiche_Frais templff = new Ligne_Fiche_Frais();
                            templff.Affaire1 = lff.Affaire1;
                            templff.Commentaire = lff.Commentaire;
                            templff.Entreprise1 = lff.Entreprise1;
                            templff.Etranger = lff.Etranger;
                            templff.Imputer_Affaire = lff.Imputer_Affaire;
                            templff.Libelle = lff.Libelle;
                            templff.Plan_Comptable_Imputation1 = lff.Plan_Comptable_Imputation1;
                            templff.Plan_Comptable_Tva1 = lff.Plan_Comptable_Tva1;
                            templff.Taux_Change = lff.Taux_Change;
                            templff.Taux_Change_Reel = lff.Taux_Change_Reel;
                            templff.TTC_En_Euro = lff.TTC_En_Euro;
                            templff.TTC_Sur_Ticket = lff.TTC_Sur_Ticket;
                            templff.TVA_Recuperable = lff.TVA_Recuperable;
                            templff.Type_Frais1 = lff.Type_Frais1;
                            ff.Ligne_Fiche_Frais.Add(templff);
                        }
                        ff.Frais1 = ((Fiche_Frais)this._dataGridFraisGeneraux.Items[index]).Frais1;

                        fraisModifierWindow.DataContext = ff;
                        bool? dialogResult = fraisModifierWindow.ShowDialog();

                        if (dialogResult.Value)
                        {

                            ((Fiche_Frais)this._dataGridFraisGeneraux.Items[index]).Date_Fiche = ff.Date_Fiche;
                            ((Fiche_Frais)this._dataGridFraisGeneraux.Items[index]).Numero = ff.Numero;
                            ((Fiche_Frais)this._dataGridFraisGeneraux.Items[index]).Total_HT = ff.Total_HT;
                            ((Fiche_Frais)this._dataGridFraisGeneraux.Items[index]).Total_TTC = ff.Total_TTC;
                            ((Fiche_Frais)this._dataGridFraisGeneraux.Items[index]).Total_TVA = ff.Total_TVA;
                            ((Fiche_Frais)this._dataGridFraisGeneraux.Items[index]).Frais1 = ff.Frais1;
                            ((Fiche_Frais)this._dataGridFraisGeneraux.Items[index]).Ligne_Fiche_Frais.Clear();
                            while (ff.Ligne_Fiche_Frais.OfType<Ligne_Fiche_Frais>().Count() != 0)
                            {
                                ((Fiche_Frais)this._dataGridFraisGeneraux.Items[index]).Ligne_Fiche_Frais.Add(ff.Ligne_Fiche_Frais.ElementAt(0));
                            }
                        }
                        try
                        {
                            int compt = 0;
                            while (compt < ff.Ligne_Fiche_Frais.OfType<Ligne_Fiche_Frais>().Count())
                            {
                                try
                                {
                                    ((App)App.Current).mySitaffEntities.Detach(ff.Ligne_Fiche_Frais.ElementAt(compt));
                                }
                                catch (Exception)
                                {
                                    try
                                    {
                                        ((App)App.Current).mySitaffEntities.Ligne_Fiche_Frais.DeleteObject(ff.Ligne_Fiche_Frais.ElementAt(compt));
                                    }
                                    catch (Exception)
                                    {

                                    }
                                }
                                compt++;
                            }
                            ((App)App.Current).mySitaffEntities.Detach(ff);
                        }
                        catch (Exception)
                        {
                            try
                            {
                                ((App)App.Current).mySitaffEntities.Fiche_Frais.DeleteObject(ff);
                            }
                            catch (Exception)
                            {

                            }
                        }
                        this._dataGridFraisGeneraux.Items.Refresh();
                    }
                }
                catch (Exception) { }
            }
            RefreshAllTotaux();
        }
        //Ouvre la fenêtre 'FicheFraisWindow' pour ajouter une fiche de frais
        private void _buttonAjouterFraisGeneraux_Click(object sender, RoutedEventArgs e)
        {
            FicheFraisWindow fraisAjoutWindow = new FicheFraisWindow();
            Fiche_Frais tempff = new Fiche_Frais();

            tempff.Date_Fiche = DateTime.Now.Date;
            if (this._dataGridFraisGeneraux.Items.Count >= 1 && this._dataGridFraisGeneraux.DataContext != null)
            {
                if (this._dataGridFraisGeneraux.Items.GetItemAt(0) != null && ((Fiche_Frais)this._dataGridFraisGeneraux.Items.GetItemAt(this._dataGridFraisGeneraux.Items.Count - 1)).Numero != null)
                {
                    tempff.Numero = ((Fiche_Frais)this._dataGridFraisGeneraux.Items.GetItemAt(this._dataGridFraisGeneraux.Items.Count - 1)).Numero + 1;
                }
                else
                {
                    tempff.Numero = 1;
                }
            }
            else
            {
                tempff.Numero = 1;
            }

            tempff.Ligne_Fiche_Frais.Add(new Ligne_Fiche_Frais());
            tempff.Total_HT = 0;
            tempff.Total_TTC = 0;
            tempff.Total_TVA = 0;
            if (datemoiscourant > ((Frais)this.DataContext).Date_Fin)
            {
                tempff.Date_Fiche = ((Frais)this.DataContext).Date_Debut;
            }
            else
            {
                tempff.Date_Fiche = DateTime.Today.Date;
            }

            tempff.Frais1 = ((Frais)this.DataContext);
            fraisAjoutWindow.DataContext = tempff;

            bool? dialogResult = fraisAjoutWindow.ShowDialog();
            Fiche_Frais ff = (Fiche_Frais)fraisAjoutWindow.DataContext;

            if (dialogResult.HasValue == true && dialogResult.Value == false)
            {
                try
                {
                    ((App)App.Current).mySitaffEntities.Detach(ff);
                }
                catch (Exception)
                {
                    try
                    {
                        ((App)App.Current).mySitaffEntities.Fiche_Frais.DeleteObject(ff);
                    }
                    catch (Exception)
                    {

                    }
                }
            }
            RefreshAllTotaux();
        }