Ejemplo n.º 1
0
        public ObservableCollection<Ligne_Fiche_Frais> PasteDataLigneFraisWindow(bool admin, bool etranger)
        {
            if (Clipboard.ContainsText(TextDataFormat.Text))
            {
                int lignesuivantAffichage = 8;

                if (admin)
                {
                    if (etranger)
                    {
                        lignesuivantAffichage = 14;
                    }
                    else
                    {
                        lignesuivantAffichage = 12;
                    }
                }
                else
                {
                    if (etranger)
                    {
                        lignesuivantAffichage = 10;
                    }
                }

                ObservableCollection<Ligne_Fiche_Frais> toReturn = new ObservableCollection<Ligne_Fiche_Frais>();
                String data = Clipboard.GetText();
                ObservableCollection<String> listLignes = new ObservableCollection<string>(data.Split('\n'));
                int nbLignes = 1;
                int ligneToIgnore = listLignes.Count();
                foreach (String ligne in listLignes)
                {
                    if (nbLignes != ligneToIgnore)
                    {

                        if (this.verifNombreColonnes(ligne, lignesuivantAffichage))
                        {
                            ObservableCollection<String> listColonnes = new ObservableCollection<string>(ligne.Split('\t'));
                            int i = 1;
                            Ligne_Fiche_Frais toAdd = new Ligne_Fiche_Frais();

                            foreach (String colonne in listColonnes)
                            {

                                switch (lignesuivantAffichage)
                                {
                                    case 8://pas administrateur, etranger non coché; caché : TTC Euro, Taux de change, Taux de change réel, Commentaire, Plan Comptable Imputation, Plan Comptable Tva
                                        if (i == 1)
                                        {
                                            //on ne colle pas Client
                                        }
                                        if (i == 2)
                                        {
                                            //on le colle pas Affaire
                                        }
                                        if (i == 3)
                                        {
                                            bool val;
                                            if (bool.TryParse(colonne, out val))
                                            {
                                                toAdd.Imputer_Affaire = val;
                                            }
                                        }
                                        if (i == 4)
                                        {
                                            if (!String.IsNullOrEmpty(colonne))
                                            {
                                                toAdd.Libelle = colonne;
                                            }
                                        }
                                        if (i == 5)
                                        {
                                            //on ne colle pas Type de Frais
                                        }
                                        if (i == 6)
                                        {
                                            //on colle le TTC sur Ticket
                                            bool val;
                                            double res;
                                            val = Double.TryParse(colonne, out res);
                                            if (val == true)
                                            {
                                                toAdd.TTC_Sur_Ticket = res;
                                            }
                                        }
                                        if (i == 7)
                                        {
                                            //on ne colle pas la checkbox Etranger
                                        }
                                        if (i == 8)
                                        {
                                            //on ne colle pas Tva récupérable
                                        }
                                        break;

                                    case 10://pas administrateur, etranger coché; caché : Taux de change réel, Plan Comptable Imputation, Plan Comptable Tva, Commentaire
                                        if (i == 1)
                                        {
                                            //on ne colle pas Client
                                        }
                                        if (i == 2)
                                        {
                                            //on ne colle pas le N° d'affaire
                                        }
                                        if (i == 3)
                                        {
                                            bool res;
                                            if (bool.TryParse(colonne, out res) == true)
                                            {
                                                toAdd.Imputer_Affaire = res;
                                            }
                                        }
                                        if (i == 4)
                                        {
                                            if (!String.IsNullOrEmpty(colonne))
                                            {
                                                toAdd.Libelle = colonne;
                                            }
                                        }
                                        if (i == 5)
                                        {
                                            //on ne colle pas Type de Frais
                                        }
                                        if (i == 6)
                                        {
                                            //on colle le TTC sur Ticket
                                            bool val;
                                            double res;
                                            val = Double.TryParse(colonne, out res);
                                            if (val == true)
                                            {
                                                toAdd.TTC_Sur_Ticket = res;
                                            }
                                        }

                                        if (i == 7)
                                        {
                                            //on colle la checkbox Etranger
                                            bool res;
                                            if (bool.TryParse(colonne, out res) == true)
                                            {
                                                toAdd.Etranger = res;
                                            }
                                        }
                                        if (i == 8)
                                        {
                                            //on ne colle pas la TTC en Euro
                                        }
                                        if (i == 9)
                                        {
                                            //on colle le Taux de change
                                            bool val;
                                            double res;
                                            val = Double.TryParse(colonne, out res);
                                            if (val == true)
                                            {
                                                toAdd.Taux_Change = res;
                                            }
                                        }
                                        if (i == 10)
                                        {
                                            //on ne colle pas Tva récupérable
                                        }
                                        break;

                                    case 12://administrateur, etranger non coché; caché : TTC en Euro, Taux de change réel, Taux de change
                                        if (i == 1)
                                        {
                                            //on ne colle pas Client
                                        }
                                        if (i == 2)
                                        {
                                            //on ne colle pas le N° d'affaire
                                        }
                                        if (i == 3)
                                        {
                                            bool val;
                                            if (bool.TryParse(colonne, out val))
                                            {
                                                toAdd.Imputer_Affaire = val;
                                            }
                                        }
                                        if (i == 4)
                                        {
                                            if (!String.IsNullOrEmpty(colonne))
                                            {
                                                toAdd.Libelle = colonne;
                                            }
                                        }
                                        if (i == 5)
                                        {
                                            //on ne colle pas Type de Frais
                                        }
                                        if (i == 6)
                                        {
                                            //on colle le TTC sur Ticket
                                            bool val;
                                            double res;
                                            val = Double.TryParse(colonne, out res);
                                            if (val == true)
                                            {
                                                toAdd.TTC_Sur_Ticket = res;
                                            }
                                        }
                                        if (i == 7)
                                        {
                                            //on colle la checkbox Etranger
                                            bool res;
                                            if (bool.TryParse(colonne, out res) == true)
                                            {
                                                toAdd.Etranger = res;
                                            }

                                        }
                                        if (i == 8)
                                        {
                                            //on colle le Taux de change reel
                                            bool val;
                                            double res;
                                            val = Double.TryParse(colonne, out res);
                                            if (val == true)
                                            {
                                                toAdd.Taux_Change_Reel = res;
                                            }
                                        }
                                        if (i == 9)
                                        {
                                            //on ne colle pas la TVA Recuperable
                                        }
                                        if (i == 10)
                                        {
                                            //on ne colle pas le Plan Comptable Tva
                                        }
                                        if (i == 11)
                                        {
                                            //on ne colle pas le Plan Comptable Imputation
                                        }
                                        if (i == 12)
                                        {
                                            if (colonne != null && !String.IsNullOrEmpty(colonne))
                                            {
                                                toAdd.Commentaire = colonne;
                                            }
                                        }
                                        break;

                                    case 14:
                                        if (i == 1)
                                        {
                                            //on ne colle pas Client

                                        }
                                        if (i == 2)
                                        {
                                            //on le colle pas Affaire
                                        }
                                        if (i == 3)
                                        {
                                            bool val;
                                            if (bool.TryParse(colonne, out val))
                                            {
                                                toAdd.Imputer_Affaire = val;
                                            }
                                        }
                                        if (i == 4)
                                        {
                                            if (!String.IsNullOrEmpty(colonne))
                                            {
                                                toAdd.Libelle = colonne;
                                            }
                                        }
                                        if (i == 5)
                                        {
                                            //on ne colle pas Type de Frais
                                        }

                                        if (i == 6)
                                        {
                                            //on colle le TTC sur Ticket
                                            bool val;
                                            double res;
                                            val = Double.TryParse(colonne, out res);
                                            if (val == true)
                                            {
                                                toAdd.TTC_Sur_Ticket = res;
                                            }
                                        }
                                        if (i == 7)
                                        {
                                            //on colle la checkbox Etranger
                                            bool res;
                                            if (bool.TryParse(colonne, out res) == true)
                                            {
                                                toAdd.Etranger = res;
                                            }

                                        }
                                        if (i == 8)
                                        {
                                            //on ne colle pas le TTC en Euro

                                        }
                                        if (i == 9)
                                        {
                                            //on colle le Taux de change
                                            bool val;
                                            double res;
                                            val = Double.TryParse(colonne, out res);
                                            if (val == true)
                                            {
                                                toAdd.Taux_Change = res;
                                            }
                                        }
                                        if (i == 10)
                                        {
                                            //on colle le Taux de change reel
                                            bool val;
                                            double res;
                                            val = Double.TryParse(colonne, out res);
                                            if (val == true)
                                            {
                                                toAdd.Taux_Change_Reel = res;
                                            }
                                        }
                                        if (i == 11)
                                        {
                                            //on ne colle pas la TVA Recuperable
                                        }
                                        if (i == 12)
                                        {
                                            //on ne colle pas le Plan Comptable Tva
                                        }
                                        if (i == 13)
                                        {
                                            //on ne colle pas le Plan Comptable Imputation
                                        }
                                        if (i == 14)
                                        {
                                            if (colonne != null && !String.IsNullOrEmpty(colonne))
                                            {
                                                toAdd.Commentaire = colonne;
                                            }
                                        }
                                        break;

                                    default: toAdd = new Ligne_Fiche_Frais();
                                        break;
                                }

                                toReturn.Add(toAdd);
                                i = i + 1;
                            }
                            nbLignes = nbLignes + 1;
                        }
                        else
                        {
                            MessageBox.Show("Le collage s'arrete car à la ligne n°" + nbLignes + ", le nombre de colonne n'est pas bon.", "Coller : erreur !", MessageBoxButton.OK, MessageBoxImage.Error);
                            return null;
                        }
                    }
                }
                return toReturn;
            }
            else
            {
                return null;
            }
        }
        //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();
        }