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); }
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, "€") }); } } }