Example #1
0
        public void Analyser()
        {
            if (!EstCharge)
            {
                return;
            }

            if (_ListeAnalyseDevis == null)
            {
                _ListeAnalyseDevis = new ListeAvecTitre <ListeAvecTitre <Object> >("Devis");
            }
            else
            {
                _ListeAnalyseDevis.Clear();
            }

            if (_ListeAnalyseFacture == null)
            {
                _ListeAnalyseFacture = new ListeAvecTitre <ListeAvecTitre <Object> >("Facture");
            }
            else
            {
                _ListeAnalyseFacture.Clear();
            }

            GenererAnalyse.Client(ref _ListeAnalyseDevis, ref _ListeAnalyseFacture, Id);
        }
Example #2
0
        public void Analyser()
        {
            if (!EstCharge)
            {
                return;
            }

            string AffNb(Object Obj)
            {
                return(Math.Round(((Double)Convert.ChangeType(Obj, typeof(Double)))).ToString());
            }

            Func <Object, String, String> AffNbU = delegate(Object Obj, String Unite)
            {
                return((Math.Round(((Double)Convert.ChangeType(Obj, typeof(Double)))).ToString() + " " + Unite).Trim());
            };

            if (_ListeAnalyseCode == null)
            {
                _ListeAnalyseCode = new ListeAvecTitre <Object>("Code");
            }
            else
            {
                _ListeAnalyseCode.Clear();
            }

            if (_ListeAnalyseFamille == null)
            {
                _ListeAnalyseFamille = new ListeAvecTitre <Object>("Famille");
            }
            else
            {
                _ListeAnalyseFamille.Clear();
            }

            Dictionary <CodeFamille_e, Pair <Double> > pDicCode = new Dictionary <CodeFamille_e, Pair <Double> >();

            foreach (CodeFamille_e Code in Enum.GetValues(typeof(CodeFamille_e)))
            {
                if (!String.IsNullOrWhiteSpace(Code.GetEnumDescription()))
                {
                    pDicCode.Add(Code, new Pair <Double>(0, 0));
                }
            }

            Dictionary <Famille, Pair <Double> > pDicFamille = new Dictionary <Famille, Pair <Double> >();

            foreach (Famille Famille in Client.Societe.ListeFamille)
            {
                if (pDicCode.ContainsKey(Famille.Code))
                {
                    pDicFamille.Add(Famille, new Pair <Double>(0, 0));
                }
            }

            foreach (Poste P in ListePoste)
            {
                foreach (Ligne_Poste L in P.ListeLignePoste)
                {
                    Double Qte = L.Qte * P.Qte;
                    if (L.Prix_Forfaitaire)
                    {
                        Qte = L.Qte;
                    }

                    Double Tt = L.Debours_Unitaire * P.Qte;

                    if (pDicCode.ContainsKey(L.Famille.Code))
                    {
                        Pair <Double> T = pDicCode[L.Famille.Code];
                        T.Qte += Qte; T.Tt += Tt;
                    }

                    if (pDicFamille.ContainsKey(L.Famille))
                    {
                        Pair <Double> T = pDicFamille[L.Famille];
                        T.Qte += Qte; T.Tt += Tt;
                    }
                }
            }

            foreach (KeyValuePair <CodeFamille_e, Pair <Double> > Kv in pDicCode)
            {
                if (Kv.Value.Qte != 0)
                {
                    _ListeAnalyseCode.Add(new
                    {
                        Intitule = Kv.Key.GetEnumDescription(),
                        Qte      = AffNbU(Kv.Value.Qte, Kv.Key.GetEnumUnite()),
                        Tt       = AffNbU(Kv.Value.Tt, "€")
                    });
                }
            }

            foreach (KeyValuePair <Famille, Pair <Double> > Kv in pDicFamille)
            {
                if (Kv.Value.Qte != 0)
                {
                    _ListeAnalyseFamille.Add(new
                    {
                        Intitule = Kv.Key.Description,
                        Qte      = AffNbU(Kv.Value.Qte, Kv.Key.Unite),
                        Tt       = AffNbU(Kv.Value.Tt, "€")
                    });
                }
            }
        }