public static System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.SupplierStatistic> GetSupplierTurnover() { using (new zAppDev.DotNet.Framework.Profiling.Profiler("SupplierStatistic", zAppDev.DotNet.Framework.Profiling.AppDevSymbolType.ClassOperation, "GetSupplierTurnover")) { System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.SupplierStatistic> stats = new System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.SupplierStatistic>(); System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.Supplier> suppliers = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Get <DSS5_SupplyChainFinancialsOptimisation.BO.Supplier>((s) => s.SupplierStatus == "ActiveSupplier"); int?i = 0; foreach (var sup in suppliers ?? Enumerable.Empty <DSS5_SupplyChainFinancialsOptimisation.BO.Supplier>()) { DSS5_SupplyChainFinancialsOptimisation.BO.SupplierStatistic stat = new DSS5_SupplyChainFinancialsOptimisation.BO.SupplierStatistic(); stat.Supplier = sup; stat.TotalCommercialAgreements = (sup?.CommercialAgreements?.Count() ?? 0); stat.CurrentTurnover = (sup?.SupplierTurnover?.PlannedCurrentYear ?? 0); stat.NextTurnover = (sup?.SupplierTurnover?.PlannedNextYear ?? 0); stat.PreviousTurnover = (sup?.SupplierTurnover?.ActualPreviousYear ?? 0); i = i.GetValueOrDefault(0) + 1; stats?.Add(stat); } return(stats); } }
public static System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.SupplierStatistic> GetSupplierStatistics() { using (new zAppDev.DotNet.Framework.Profiling.Profiler("SupplierStatistic", zAppDev.DotNet.Framework.Profiling.AppDevSymbolType.ClassOperation, "GetSupplierStatistics")) { System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.SupplierStatistic> stats = new System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.SupplierStatistic>(); System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.Supplier> suppliers = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Get <DSS5_SupplyChainFinancialsOptimisation.BO.Supplier>((s) => s.SupplierStatus == "ActiveSupplier"); int?i = 0; foreach (var sup in suppliers ?? Enumerable.Empty <DSS5_SupplyChainFinancialsOptimisation.BO.Supplier>()) { DSS5_SupplyChainFinancialsOptimisation.BO.SupplierStatistic stat = new DSS5_SupplyChainFinancialsOptimisation.BO.SupplierStatistic(); stat.Supplier = sup; stat.TotalCommercialAgreements = (sup?.CommercialAgreements?.Count() ?? 0); stat.OnTimeDeliveries = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().GetCount <DSS5_SupplyChainFinancialsOptimisation.BO.ProofOfDelivery>((a) => a.Transaction.Supplier.UserName == sup.UserName && a.DeliveryStatus == "OnTime"); stat.AsOrderedDeliveries = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().GetCount <DSS5_SupplyChainFinancialsOptimisation.BO.ProofOfDelivery>((a) => a.Transaction.Supplier.UserName == sup.UserName && a.QualityStatus == "Asordered"); stat.InFullDeliveries = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().GetCount <DSS5_SupplyChainFinancialsOptimisation.BO.ProofOfDelivery>((a) => a.Transaction.Supplier.UserName == sup.UserName && a.QuantityStatus == "Infull"); stat.TotalImpeachments = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().GetCount <DSS5_SupplyChainFinancialsOptimisation.BO.ProofOfDelivery>((a) => a.Transaction.Supplier.UserName == sup.UserName && (a.DeliveryStatus != "OnTime" || a.QualityStatus != "Asordered" || a.QuantityStatus != "Infull")); stat.TotalTransactions = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().GetCount <DSS5_SupplyChainFinancialsOptimisation.BO.Transaction>((t) => t.Supplier.UserName == sup.UserName); stat.CurrentTurnover = (sup?.SupplierTurnover?.PlannedCurrentYear ?? 0); i = i.GetValueOrDefault(0) + 1; stats?.Add(stat); } return(stats); } }
public static System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.SupplierStatistic> GetSupplierDataStatistics2() { using (new zAppDev.DotNet.Framework.Profiling.Profiler("SupplierStatistic", zAppDev.DotNet.Framework.Profiling.AppDevSymbolType.ClassOperation, "GetSupplierDataStatistics2")) { System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.SupplierStatistic> stats2 = new System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.SupplierStatistic>(); System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.Supplier> suppliers = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().GetAll <DSS5_SupplyChainFinancialsOptimisation.BO.Supplier>(); string test = ""; decimal?test2 = new decimal?(); foreach (var s in suppliers ?? Enumerable.Empty <DSS5_SupplyChainFinancialsOptimisation.BO.Supplier>()) { DSS5_SupplyChainFinancialsOptimisation.BO.SupplierStatistic stat = new DSS5_SupplyChainFinancialsOptimisation.BO.SupplierStatistic(); stat.Supplier = s; decimal?count = 0; int?countAvailability = 0; if ((s?.DataQuality?.Orders ?? false)) { count = count.GetValueOrDefault(0) + 1; } if ((s?.DataQuality?.DeliveryNotes ?? false)) { count = count.GetValueOrDefault(0) + 1; } if ((s?.DataQuality?.CustomsDocuments ?? false)) { count = count.GetValueOrDefault(0) + 1; } if ((s?.DataQuality?.IntermediaryLogistics ?? false)) { count = count.GetValueOrDefault(0) + 1; } if ((s?.DataQuality?.Invoices ?? false)) { count = count.GetValueOrDefault(0) + 1; } if ((s?.DataQuality?.PoDs ?? false)) { count = count.GetValueOrDefault(0) + 1; } if ((s?.DataQuality?.PaymentData ?? false)) { count = count.GetValueOrDefault(0) + 1; } test2 = (count.GetValueOrDefault(0) / 7.0m) * 100; stat.DataQuality = Math.Round((test2).GetValueOrDefault(0), 2); zAppDev.DotNet.Framework.Utilities.DebugHelper.Log(zAppDev.DotNet.Framework.Utilities.DebugMessageType.Info, "SupplierStatistic", DSS5_SupplyChainFinancialsOptimisation.Hubs.EventsHub.RaiseDebugMessage, "Rounded data quality: " + (stat?.DataQuality ?? 0) + " for supplier " + (s?.UserName ?? "") + " with status: " + (s?.SupplierStatus ?? "")); if (s?.DataAvailability == null) { DSS5_SupplyChainFinancialsOptimisation.BO.DataAvailability supDataAvailability = new DSS5_SupplyChainFinancialsOptimisation.BO.DataAvailability(); supDataAvailability.Supplier = s; } if ((s?.Transactions?.Any((a) => a.Orders.Count() > 0) ?? false)) { s.DataAvailability.Orders = true; } else { s.DataAvailability.Orders = false; } if ((s?.Transactions?.Any((b) => b.DeliveryNotes.Count() > 0) ?? false)) { s.DataAvailability.DeliveryNotes = true; } else { } if ((s?.Transactions?.Any((c) => c.Invoices.Count() > 0) ?? false)) { s.DataAvailability.Invoices = true; } else { } if ((s?.Transactions?.Any((a) => a.ProofOfDeliveries.Count() > 0) ?? false)) { s.DataAvailability.PoDs = true; } else { } if ((s?.Transactions?.Any((a) => a.Intermediaries.Count() > 0) ?? false)) { s.DataAvailability.IntermediaryLogistics = true; } else { } if ((s?.Transactions?.Where((a) => a.PaymentStatus != null).Count() ?? 0) > 0) { s.DataAvailability.PaymentData = true; } else { } if ((s?.DataAvailability?.Orders ?? false)) { countAvailability = countAvailability.GetValueOrDefault(0) + 1; } if ((s?.DataAvailability?.DeliveryNotes ?? false)) { countAvailability = countAvailability.GetValueOrDefault(0) + 1; } if ((s?.DataAvailability?.CustomsDocuments ?? false)) { countAvailability = countAvailability.GetValueOrDefault(0) + 1; } if ((s?.DataAvailability?.IntermediaryLogistics ?? false)) { countAvailability = countAvailability.GetValueOrDefault(0) + 1; } if ((s?.DataAvailability?.Invoices ?? false)) { countAvailability = countAvailability.GetValueOrDefault(0) + 1; } if ((s?.DataAvailability?.PoDs ?? false)) { countAvailability = countAvailability.GetValueOrDefault(0) + 1; } if ((s?.DataAvailability?.PaymentData ?? false)) { countAvailability = countAvailability.GetValueOrDefault(0) + 1; } stat.DataAvailability = countAvailability; new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Save <DSS5_SupplyChainFinancialsOptimisation.BO.Supplier>(s); stats2?.Add(stat); } return(stats2); } }