Exemple #1
0
        public Facture(Devis D)
        {
            Bdd2.Ajouter(this);

            Devis = D;

            int pNo = No;

            int pIndice = 0;

            // On recherche le numero et l'indice de la facture
            if (D.ListeFacture.Count > 0)
            {
                pNo     = D.ListeFacture[0].No;
                pIndice = Math.Max(D.ListeFacture.Max(x => x.Indice) + 1, D.ListeFacture.Count);
            }

            // Si on rajoute une facture, c'est que le devis est au moins validé
            if ((int)Devis.Statut < (int)StatutDevis_e.cValide)
            {
                Devis.Statut = StatutDevis_e.cValide;
            }

            // On rajoute le prefix après pour être sûr qu'il ne sera pas ecrasé par une valeur par defaut
            Prefix_Utilisateur = Devis.Client.Societe.PrefixUtilisateurCourant;

            // On met à jour le no et l'indice après l'ajout de l'objet dans la base

            No = pNo; Indice = pIndice;

            MajLigne_Facture();
        }
Exemple #2
0
        public void Calculer(Boolean Dependance = true)
        {
            if (!EstCharge)
            {
                return;
            }

            Double pPrix_Ht = 0;

            foreach (Ligne_Facture Ligne in ListeLigneFacture)
            {
                if (!Ligne.Statut)
                {
                    continue;
                }

                pPrix_Ht += Ligne.Ht;
            }

            Prix_Ht = pPrix_Ht;

            Prix_Ttc = Math.Round(Prix_Ht * ((Devis.Tva_Pct + 100) / 100), DEFAULT_ARRONDI_EURO, MidpointRounding.ToEven);

            Tva = Math.Round(Prix_Ttc - Prix_Ht, DEFAULT_ARRONDI_EURO);

            if (Dependance)
            {
                Devis.CalculerFacture();
            }
        }
Exemple #3
0
        private void Apercu_Devis_Click(object sender, RoutedEventArgs e)
        {
            Devis D = null;

            MenuItem M    = sender as MenuItem;
            Grid     Grid = ((sender as MenuItem).Parent as ContextMenu).PlacementTarget as Grid;

            if (Grid != null)
            {
                D = Grid.DataContext as Devis;
            }
            else
            {
                ListBox V; ListeObservable <Devis> Liste; List <Devis> Ls; Devis L;
                if (Info(sender as MenuItem, out V, out Liste, out Ls, out L))
                {
                    D = L;
                }
            }

            DirectoryInfo pDossier = D.Dossier;

            if (pDossier == null)
            {
                pDossier = D.CreerDossier(true);
            }

            ApercuAvantImpression Fenetre = new ApercuAvantImpression(D.Impression(),
                                                                      D.Ref + " " + D.Description,
                                                                      pDossier,
                                                                      D.Client.Societe.UtilisateurCourant);

            Fenetre.Show();
        }
Exemple #4
0
        private void Ouvrir_Devis_Click(object sender, RoutedEventArgs e)
        {
            Devis D = null;

            MenuItem M    = sender as MenuItem;
            Grid     Grid = ((sender as MenuItem).Parent as ContextMenu).PlacementTarget as Grid;

            if (Grid != null)
            {
                D = Grid.DataContext as Devis;
            }
            else
            {
                ListBox V; ListeObservable <Devis> Liste; List <Devis> Ls; Devis L;
                if (Info(sender as MenuItem, out V, out Liste, out Ls, out L))
                {
                    D = L;
                }
            }

            DirectoryInfo pDossier = D.Dossier;

            if (pDossier == null)
            {
                return;
            }

            new SelectionnerFichier(pDossier.GetFiles(D.Ref + " *.pdf"));
        }
Exemple #5
0
        private void Editer_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            if (e.ClickCount >= 2)
            {
                Client C = ((FrameworkElement)sender).DataContext as Client;
                if (C != null)
                {
                    EditerOnglet <Client>(C);
                }

                Devis D = ((FrameworkElement)sender).DataContext as Devis;
                if (D != null)
                {
                    EditerOnglet <Devis>(D);
                }

                Facture F = ((FrameworkElement)sender).DataContext as Facture;
                if (F != null)
                {
                    EditerOnglet <Facture>(F);
                }

                Fournisseur Fr = ((FrameworkElement)sender).DataContext as Fournisseur;
                if (Fr != null)
                {
                    EditerOnglet <Fournisseur>(Fr);
                }

                Utilisateur U = ((FrameworkElement)sender).DataContext as Utilisateur;
                if (U != null)
                {
                    EditerOnglet <Utilisateur>(U);
                }
            }
        }
Exemple #6
0
        public override Boolean Supprimer()
        {
            if (!EstCharge)
            {
                return(false);
            }

            SupprimerListe(_ListeLigneFacture);

            if (Devis != null)
            {
                Devis.ListeFacture.Remove(this);
            }

            if (Devis.Client != null)
            {
                Devis.Client.ListeFacture.Remove(this);
            }

            Bdd2.Supprimer(this);

            if (Devis != null)
            {
                Devis.CalculerFacture();
            }

            return(true);
        }
Exemple #7
0
        public Heure(Devis D)
        {
            Bdd2.Ajouter(this);

            Devis = D;

            // On rajoute le prefix après pour être sûr qu'il ne sera pas ecrasé par une valeur par defaut
            Prefix_Utilisateur = Devis.Client.Societe.PrefixUtilisateurCourant;
        }
Exemple #8
0
        public void Calculer()
        {
            if (!EstCharge)
            {
                return;
            }

            Devis.CalculerAchat();
        }
Exemple #9
0
        private void Copier_Devis_Vers_Client(Client C, Devis DevisBase, ListBox Box)
        {
            Devis D = new Devis(C);

            D.Copier(DevisBase);

            Box.SelectedItem = C;

            EditerOnglet <Devis>(D);
        }
Exemple #10
0
        public void Importer(Devis DevisBase)
        {
            if ((!EstCharge) || (DevisBase == null) || (!DevisBase.EstCharge))
            {
                return;
            }

            foreach (Poste Poste in DevisBase.ListePoste)
            {
                Poste pNewPoste = new Poste(this);
                pNewPoste.Copier(Poste);
            }
        }
Exemple #11
0
        public void CopierAvecIndice(Devis ObjetBase)
        {
            if (!EstCharge)
            {
                return;
            }

            Copier(ObjetBase);

            // D'abord copier l'indice
            Indice = ObjetBase.Client.ListeDevis.Where(x => x.No == ObjetBase.No).Max(y => y.Indice) + 1;
            // Puis le numero pour eviter le cas ou l'indice de this serait déjà supérieur
            No = ObjetBase.No;
        }
Exemple #12
0
        public override Boolean Supprimer()
        {
            if (!EstCharge)
            {
                return(false);
            }

            Devis.ListeAchat.Remove(this);
            Devis.CalculerAchat();

            Bdd2.Supprimer <Achat>(this);

            return(true);
        }
Exemple #13
0
        private void Ouvrir_Dossier_Click(object sender, RoutedEventArgs e)
        {
            MenuItem I = sender as MenuItem;

            if (I != null)
            {
                DirectoryInfo Dir = null;
                ListBox       B   = ((ContextMenu)I.Parent).PlacementTarget as ListBox;
                if (B != null)
                {
                    Client C = B.SelectedItem as Client;
                    if (C != null)
                    {
                        Dir = C.Dossier;
                    }

                    Devis D = B.SelectedItem as Devis;
                    if (D != null)
                    {
                        Dir = D.Dossier;
                    }

                    Facture F = B.SelectedItem as Facture;
                    if (F != null)
                    {
                        Dir = F.Devis.Dossier;
                    }
                }
                else
                {
                    Grid Onglet = (I.Parent as ContextMenu).PlacementTarget as Grid;

                    if (Onglet != null)
                    {
                        Devis D = Onglet.DataContext as Devis;

                        if (D != null)
                        {
                            Dir = D.Dossier;
                        }
                    }
                }

                if (Dir != null)
                {
                    System.Diagnostics.Process.Start(Dir.FullName);
                }
            }
        }
Exemple #14
0
        public void Calculer(Boolean Dependance = true)
        {
            if (!EstCharge)
            {
                return;
            }

            Double pPrix_Unitaire    = 0;
            Double pDebours_Unitaire = 0;

            foreach (Ligne_Poste Ligne in ListeLignePoste)
            {
                if (!Ligne.Statut)
                {
                    continue;
                }

                if (Ligne.Prix_Forfaitaire)
                {
                    Ligne.Calculer(false);
                }

                pPrix_Unitaire    += Ligne.Prix_Ht;
                pDebours_Unitaire += Ligne.Debours_Unitaire;
            }

            Prix_Unitaire  = ArrondiEuro(Outils.Plafond(pPrix_Unitaire, Arrondi));
            Marge_Unitaire = ArrondiEuro(Prix_Unitaire - pDebours_Unitaire);

            Prix_Ht = Prix_Unitaire * Qte;
            Marge   = Marge_Unitaire * Qte;
            //Marge_Pct = ArrondiPct((Marge / Prix_Ht) * 100);
            if (Marge == Prix_Ht)
            {
                Marge_Pct = 100;
            }
            else
            {
                Marge_Pct = ArrondiPct(((Prix_Ht / (Prix_Ht - Marge)) - 1) * 100);
            }

            CalculerFacture(false);

            if (Dependance && (Devis != null))
            {
                Devis.Calculer();
            }
        }
Exemple #15
0
        public Achat(Devis D)
        {
            Bdd2.Ajouter(this);

            Devis = D;

            // On initialise le fournisseur
            ListeObservable <Fournisseur> F = Devis.Client.Societe.ListeFournisseur;

            if ((F != null) && (F.Count > 0))
            {
                Fournisseur = F[0];
            }


            // On rajoute le prefix après pour être sûr qu'il ne sera pas ecrasé par une valeur par defaut
            Prefix_Utilisateur = Devis.Client.Societe.PrefixUtilisateurCourant;
        }
Exemple #16
0
        public SelectionnerClient(Devis DevisBase, ListBox Box, ModifierDevis Dlgt)
        {
            InitializeComponent();

            _Dlgt      = Dlgt;
            _DevisBase = DevisBase;
            _Box       = Box;

            _Liste = new ListeObservable <Client>(DevisBase.Client.Societe.ListeClient);
            _Objet = _Liste[0];

            xSelectionnerClient.DataContext = this;
            xSelectionnerClient.ItemsSource = _Liste;

            _Filtre = new RechercheTexte <Client>(xSelectionnerClient);

            xFiltrerClient.DataContext = _Filtre;
        }
Exemple #17
0
        private void Editer_Click(object sender, RoutedEventArgs e)
        {
            MenuItem I = sender as MenuItem;

            if (I != null)
            {
                ListBox B = ((ContextMenu)I.Parent).PlacementTarget as ListBox;
                if (B != null)
                {
                    Client C = B.SelectedItem as Client;
                    if (C != null)
                    {
                        EditerOnglet <Client>(C); return;
                    }

                    Devis D = B.SelectedItem as Devis;
                    if (D != null)
                    {
                        EditerOnglet <Devis>(D); return;
                    }

                    Facture F = B.SelectedItem as Facture;
                    if (F != null)
                    {
                        EditerOnglet <Facture>(F); return;
                    }

                    Fournisseur Fr = B.SelectedItem as Fournisseur;
                    if (Fr != null)
                    {
                        EditerOnglet <Fournisseur>(Fr); return;
                    }

                    Utilisateur U = B.SelectedItem as Utilisateur;
                    if (U != null)
                    {
                        EditerOnglet <Utilisateur>(U); return;
                    }
                }
            }
        }
Exemple #18
0
        private void Ajouter_Devis_Indice_Click(object sender, RoutedEventArgs e)
        {
            ListeObservable <Devis> pListe = Ajouter_List <Devis, Client>(sender, e);

            if (pListe.Count == 0)
            {
                return;
            }

            ListBox V; ListeObservable <Devis> Liste; List <Devis> Ls; Devis L;

            if (Info(sender as MenuItem, out V, out Liste, out Ls, out L))
            {
                Devis pD = pListe[0];
                pD.CopierAvecIndice(L);

                L.Statut = StatutDevis_e.cIndice;

                EditerOnglet <Devis>(pD);
            }
        }
Exemple #19
0
        private void Fusionner_Devis_Click(object sender, RoutedEventArgs e)
        {
            ListBox V; ListeObservable <Devis> Liste; List <Devis> Ls; Devis L;

            if (Info(sender as MenuItem, out V, out Liste, out Ls, out L))
            {
                Devis DevisBase = L;

                foreach (Devis D in Ls)
                {
                    if (DevisBase != D)
                    {
                        DevisBase.Importer(D);
                    }
                }

                DevisBase.ListePoste.Numeroter();

                EditerOnglet <Devis>(DevisBase);
            }
        }
Exemple #20
0
        private void Deplacer_Devis_Vers_Client(Client C, Devis DevisBase, ListBox Box)
        {
            DirectoryInfo Dossier = DevisBase.DossierIndice;

            if (Dossier == null)
            {
                Dossier = DevisBase.Dossier;
            }

            DevisBase.Client = C;

            DevisBase.CreerDossier(true);

            try
            {
                if (Dossier != null)
                {
                    String NomDossier = DevisBase.DossierIndice.FullName;

                    foreach (FileInfo F in DevisBase.DossierIndice.GetFiles())
                    {
                        String Chemin = Path.Combine(Dossier.FullName, Path.GetFileName(F.FullName));
                        if (File.Exists(Chemin))
                        {
                            File.Delete(Chemin);
                            F.MoveTo(Chemin);
                        }
                    }

                    DevisBase.DossierIndice.Delete(true);

                    Dossier.MoveTo(NomDossier);
                }
            }
            catch { }

            Box.SelectedItem = C;

            EditerOnglet <Devis>(DevisBase);
        }
Exemple #21
0
        public void CalculerFacture(Boolean Dependance = true)
        {
            Double pDeja_Facture_Ht = 0;

            foreach (Ligne_Facture Ligne in ListeLigneFacture)
            {
                if (!Ligne.Statut)
                {
                    continue;
                }

                pDeja_Facture_Ht += Ligne.Ht;
            }

            Deja_Facture_Ht    = pDeja_Facture_Ht;
            Reste_A_Facture_Ht = Math.Max(Prix_Ht - Deja_Facture_Ht, 0);

            if (Dependance && (Devis != null))
            {
                Devis.CalculerFacture();
            }
        }
Exemple #22
0
        private void Fusionner_Nouveau_Devis_Click(object sender, RoutedEventArgs e)
        {
            ListBox V; ListeObservable <Devis> Liste; List <Devis> Ls; Devis L;

            if (Info(sender as MenuItem, out V, out Liste, out Ls, out L))
            {
                Devis DevisBase = Ajouter_List <Devis, Client>(sender, e, true).First();

                foreach (Devis D in Ls)
                {
                    DevisBase.Importer(D);
                    D.Statut = StatutDevis_e.cIndice;
                    if (!String.IsNullOrWhiteSpace(D.Description))
                    {
                        DevisBase.Description = (DevisBase.Description.Flat() + Environment.NewLine + D.Description.Flat()).Trim();
                    }
                }

                DevisBase.ListePoste.Numeroter();

                EditerOnglet <Devis>(DevisBase);
            }
        }
Exemple #23
0
        private void Nettoyer(Boolean Calculer = true)
        {
            ListeObservable <Devis>       ListeDevis       = Bdd2.Liste <Devis>();
            ListeObservable <Poste>       ListePoste       = Bdd2.Liste <Poste>();
            ListeObservable <Ligne_Poste> ListeLigne_Poste = Bdd2.Liste <Ligne_Poste>();
            ListeObservable <Achat>       ListeAchat       = Bdd2.Liste <Achat>();

            ListeObservable <Facture>       ListeFacture       = Bdd2.Liste <Facture>();
            ListeObservable <Ligne_Facture> ListeLigne_Facture = Bdd2.Liste <Ligne_Facture>();

            String Titre = "Calcul des lignes de factures : ";
            int    i     = 1;
            int    tt    = ListeLigne_Facture.Count();

            foreach (Ligne_Facture Ligne_Facture in ListeLigne_Facture)
            {
                this.Title = Titre + " " + i.ToString() + "/" + tt.ToString();

                if (Ligne_Facture.Facture == null)
                {
                    Ligne_Facture.Supprimer();
                }
                else if (Calculer)
                {
                    Ligne_Facture.Calculer(false);
                }

                i++;
            }

            Titre = "Calcul des factures : ";
            i     = 1;
            tt    = ListeFacture.Count();
            foreach (Facture Facture in ListeFacture)
            {
                this.Title = Titre + " " + i.ToString() + "/" + tt.ToString();

                if ((Facture.Devis == null) || (Facture.ListeLigneFacture.Count == 0))
                {
                    Facture.Supprimer();
                }
                else if (Calculer)
                {
                    Facture.Calculer(false);
                }

                i++;
            }

            Titre = "Calcul des lignes de poste : ";
            i     = 1;
            tt    = ListeLigne_Poste.Count();
            foreach (Ligne_Poste Ligne_Poste in ListeLigne_Poste)
            {
                this.Title = Titre + " " + i.ToString() + "/" + tt.ToString();

                if (Ligne_Poste.Poste == null)
                {
                    Ligne_Poste.Supprimer();
                }
                else if (Calculer)
                {
                    Ligne_Poste.Calculer(false);
                }

                i++;
            }

            Titre = "Calcul des postes : ";
            i     = 1;
            tt    = ListePoste.Count();
            foreach (Poste Poste in ListePoste)
            {
                this.Title = Titre + " " + i.ToString() + "/" + tt.ToString();

                if (Poste.Devis == null)
                {
                    Poste.Supprimer();
                }
                else if (Calculer)
                {
                    Poste.Calculer(false);
                }

                i++;
            }

            Titre = "Calcul des devis : ";
            i     = 1;
            tt    = ListeDevis.Count();
            foreach (Devis Devis in ListeDevis)
            {
                this.Title = Titre + " " + i.ToString() + "/" + tt.ToString();

                if (Devis.Client == null)
                {
                    Devis.Supprimer();
                }
                else if (Calculer)
                {
                    Devis.Calculer();
                }

                i++;
            }

            Titre = "Calcul des achats : ";
            i     = 1;
            tt    = ListeAchat.Count();
            foreach (Achat Achat in ListeAchat)
            {
                this.Title = Titre + " " + i.ToString() + "/" + tt.ToString();

                if (Achat.Devis == null)
                {
                    Achat.Supprimer();
                }
                else if (Calculer)
                {
                    Achat.Calculer();
                }

                i++;
            }
        }