コード例 #1
0
        private ListeObservable <T> Inserer_Coller_List <T>(object sender, RoutedEventArgs e)
            where T : ObjetGestion, new()
        {
            ListeObservable <T> pListe = new ListeObservable <T>();

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

            if (Info(sender as MenuItem, out V, out Liste, out Ls, out L) && (_Copie_Liste != null))
            {
                List <T> pListeCopie = new List <T>();

                pListeCopie = _Copie_Liste as List <T>;

                foreach (T iL in pListeCopie)
                {
                    T Obj = Ajouter <T>();
                    pListe.Add(Obj);
                    Obj.Copier(iL);

                    // Si la liste contient des lignes, on la déplace
                    if (L != null)
                    {
                        Liste.Move(Liste.IndexOf(Obj), Liste.IndexOf(L));
                    }
                }
                Liste.Numeroter();
            }
            return(pListe);
        }
コード例 #2
0
 public ListeObservable(ListeObservable <T> Liste)
 {
     foreach (T item in Liste)
     {
         base.Add(item);
     }
 }
コード例 #3
0
        private ListeObservable <T> Ajouter_List <T, U>(object sender, RoutedEventArgs e, Boolean UnSeul = false)
            where T : ObjetGestion, new()
            where U : ObjetGestion
        {
            ListeObservable <T> pListe = new ListeObservable <T>();

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

            if (Info(sender as MenuItem, out V, out Liste, out Ls, out L))
            {
                U Parent = (U)V.DataContext;
                // On force à faire au minimum un tour de boucle dans le cas ou la liste est vide.

                int Nb = Math.Max(Ls.Count, 1);
                if (UnSeul)
                {
                    Nb = 1;
                }

                for (int i = 0; i < Nb; i++)
                {
                    pListe.Add(Ajouter <T, U>(Parent));
                }
            }

            return(pListe);
        }
コード例 #4
0
        private void Ajouter_Utilisateur_Click(object sender, RoutedEventArgs e)
        {
            ListeObservable <Utilisateur> Liste = Ajouter_List <Utilisateur, Societe>(sender, e);

            foreach (Utilisateur U in Liste)
            {
                EditerOnglet <Utilisateur>(U);
            }
        }
コード例 #5
0
        private void Ajouter_Facture_Click(object sender, RoutedEventArgs e)
        {
            ListeObservable <Facture> Liste = Ajouter_List <Facture, Devis>(sender, e);

            foreach (Facture F in Liste)
            {
                EditerOnglet <Facture>(F);
            }
        }
コード例 #6
0
        private void Ajouter_Client_Click(object sender, RoutedEventArgs e)
        {
            ListeObservable <Client> Liste = Ajouter_List <Client, Societe>(sender, e);

            foreach (Client C in Liste)
            {
                Adresse_Client A = new Adresse_Client(C);
                EditerOnglet <Client>(C);
            }
        }
コード例 #7
0
 protected void SupprimerListe <T>(ListeObservable <T> Liste)
     where T : ObjetGestion
 {
     if (Liste != null)
     {
         while (Liste.Count > 0)
         {
             Liste[0].Supprimer();
         }
     }
 }
コード例 #8
0
        private void Ajouter_Devis_Click(object sender, RoutedEventArgs e)
        {
            ListeObservable <Devis> Liste = Ajouter_List <Devis, Client>(sender, e);

            foreach (Devis D in Liste)
            {
                Poste       P = new Poste(D);
                Ligne_Poste L = new Ligne_Poste(P);
                EditerOnglet <Devis>(D);
            }
        }
コード例 #9
0
        private Boolean Info <T>(MenuItem I, out ListBox V, out ListeObservable <T> Liste, out List <T> Ls, out T L)
            where T : INotifyPropertyChanged
        {
            V = null; Liste = null; Ls = null; L = default(T);
            if (I != null)
            {
                V     = (I.Parent as ContextMenu).PlacementTarget as ListBox;
                Liste = V.ItemsSource as ListeObservable <T>;
                Ls    = V.SelectedItems.Cast <T>().ToList();
                L     = (T)V.SelectedItem;

                if ((V != null) && (Liste != null) && (Ls != null) && ((L != null) || (Liste.Count == 0)))
                {
                    return(true);
                }
            }
            return(false);
        }
コード例 #10
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;
        }
コード例 #11
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;
        }
コード例 #12
0
        private ListeObservable <T> Inserer_List <T>(object sender, RoutedEventArgs e)
            where T : ObjetGestion, new()
        {
            ListeObservable <T> pListe = new ListeObservable <T>();

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

            if (Info(sender as MenuItem, out V, out Liste, out Ls, out L))
            {
                foreach (T iL in Ls)
                {
                    T Obj = Ajouter <T>();
                    pListe.Add(Obj);
                    Liste.Move(Liste.IndexOf(Obj), Liste.IndexOf(L));
                }
                Liste.Numeroter();
            }
            return(pListe);
        }
コード例 #13
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);
            }
        }
コード例 #14
0
        public Ligne_Poste(Poste P)
        {
            Bdd2.Ajouter(this);

            Poste = P;

            // On initialise la famille
            ListeObservable <Famille> F = Poste.Devis.Client.Societe.ListeFamille;

            if ((F != null) && (F.Count > 0))
            {
                Famille = 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 = Poste.Devis.Client.Societe.PrefixUtilisateurCourant;

            No = P.ListeLignePoste.Count + 1;

            Init    = true;
            Famille = F[0];

            Init = true;
        }
コード例 #15
0
        private ListeObservable <T> Inserer_Coller_List <T, U>(object sender, RoutedEventArgs e)
            where T : ObjetGestion, new()
            where U : ObjetGestion
        {
            // Liste temporaire renvoyé par la fonction
            ListeObservable <T> pListe = new ListeObservable <T>();

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

            if (Info(sender as MenuItem, out V, out Liste, out Ls, out L) && (_Copie_Liste != null))
            {
                List <T> pListeCopie = new List <T>();

                U Parent = (U)V.DataContext;
                pListeCopie = _Copie_Liste as List <T>;

                foreach (T iL in pListeCopie)
                {
                    // On ajoute une ligne
                    T Obj = Ajouter <T, U>(Parent);
                    pListe.Add(Obj);

                    // On copie la ligne
                    Obj.Copier(iL);

                    // Si la liste contient des lignes, on la déplace
                    if (L != null)
                    {
                        Liste.Move(Liste.IndexOf(Obj), Liste.IndexOf(L));
                    }
                }

                Liste.Numeroter();
            }
            return(pListe);
        }
コード例 #16
0
        private Boolean Start()
        {
            Log.Entete();

            String        BaseSelectionnee = "";
            List <String> ListeBase        = Bdd2.ListeBase();

            if (ListeBase.Count == 1)
            {
                BaseSelectionnee = ListeBase[0];
            }
            else
            {
                SelectionnerBase Fenetre = new SelectionnerBase(ListeBase);
                Fenetre.ShowDialog();
                BaseSelectionnee = Fenetre.BaseSelectionnee;
            }



            if (!Bdd2.Initialiser(BaseSelectionnee))
            {
                return(false);
            }

            xConnexionCourante.Text = BaseSelectionnee + ", connecté à l'adresse : " + Bdd2.ConnexionCourante;

            pSociete = Bdd2.Liste <Societe>()[0];

            var ListeFamille = Bdd2.Liste <Famille>();

            Bdd2.PreCharger(typeof(Famille), new List <ObjetGestion>(ListeFamille));

            pSociete.OnModifyUtilisateur += new Societe.OnModifyUtilisateurEventHandler(id => { Properties.Settings.Default.IdUtilisateur = id; Properties.Settings.Default.Save(); });

            ListeObservable <Utilisateur> pListeUtilisateur = pSociete.ListeUtilisateur;

            Utilisateur U = null;

            if (pListeUtilisateur.Count > 0)
            {
                try
                {
                    U = pListeUtilisateur.First(u => { return(u.Id == Properties.Settings.Default.IdUtilisateur); });
                }
                catch { U = pListeUtilisateur[0]; }
            }
            else
            {
                U = new Utilisateur(pSociete);
                U.Prefix_Utilisateur = "A";
                Bdd2.Ajouter(U);
            }

            pSociete.UtilisateurCourant = U;

            this.DataContext = pSociete;

            TrierListe <Client>(xListeClient);
            TrierListe <Devis>(xListeDevis);
            TrierListe <Facture>(xListeFactureClient);
            TrierListe <Facture>(xListeFactureDevis);

            _RechercherClient             = new RechercheTexte <Client>(xListeClient);
            xRechercherClient.DataContext = _RechercherClient;

            _RechercherDevis             = new RechercheTexte <Devis>(xListeDevis);
            xRechercherDevis.DataContext = _RechercherDevis;

            _RechercherFactureClient             = new RechercheTexte <Facture>(xListeFactureClient);
            xRechercherFactureClient.DataContext = _RechercherFactureClient;

            return(true);
        }
コード例 #17
0
        public Ligne_Facture(Facture F, Poste P)
        {
            Bdd2.Ajouter(this);

            Facture = F;
            Poste   = P;

            No = P.No;

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

            // Pre-remplissage des champs

            ListeObservable <Ligne_Facture> ListeLigneFacture = P.ListeLigneFacture;

            if (ListeLigneFacture.Count > 0)
            {
                CalculLigne_Facture = ListeLigneFacture[0].CalculLigne_Facture;

                Double pQuantite    = P.Qte;
                Double pHt_Unitaire = P.Prix_Unitaire;


                if (CalculLigne_Facture == CalculLigne_Facture_e.cPourcentageUnitaire)
                {
                    pQuantite    = 100;
                    pHt_Unitaire = P.Prix_Ht;
                }

                foreach (Ligne_Facture Lf in ListeLigneFacture)
                {
                    if (Lf == this)
                    {
                        continue;
                    }

                    pQuantite    -= Lf.Qte;
                    pHt_Unitaire -= Lf.Ht_Unitaire;
                }

                if (pQuantite <= 0)
                {
                    pQuantite = P.Qte;
                }

                if (pHt_Unitaire <= 0)
                {
                    pHt_Unitaire = P.Prix_Unitaire;
                }

                Qte = pQuantite;

                if (CalculLigne_Facture == CalculLigne_Facture_e.cPourcentageUnitaire)
                {
                    Ht_Unitaire = P.Prix_Ht;
                }
                else
                {
                    Ht_Unitaire = pHt_Unitaire;
                }
            }
            else
            {
                Ht_Unitaire = P.Prix_Unitaire;
                Qte         = P.Qte;
            }

            Calculer();
        }
コード例 #18
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++;
            }
        }