示例#1
0
 public static System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.TurnoverStatistic> GetTurnoverStatisticsPerMonth(DSS5_SupplyChainFinancialsOptimisation.BO.Supplier supplier, int?year)
 {
     using (new zAppDev.DotNet.Framework.Profiling.Profiler("TurnoverStatistic", zAppDev.DotNet.Framework.Profiling.AppDevSymbolType.ClassOperation, "GetTurnoverStatisticsPerMonth")) {
         System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.TurnoverStatistic> stats        = new System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.TurnoverStatistic>();
         System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.Transaction>       transactions = new System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.Transaction>();
         System.Collections.Generic.List <int?> months = new System.Collections.Generic.List <int?>();
         try {
             transactions = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Get <DSS5_SupplyChainFinancialsOptimisation.BO.Transaction>((a) => a.Supplier.UserName == supplier.UserName && a.TransactionDateOccured.GetValueOrDefault(System.Data.SqlTypes.SqlDateTime.MinValue.Value).Year == year).ToList(); months = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().GetAsQueryable <DSS5_SupplyChainFinancialsOptimisation.BO.Transaction>((a) => a.Supplier.UserName == supplier.UserName)?.Select((a) => a.TransactionDateOccured.GetValueOrDefault(System.Data.SqlTypes.SqlDateTime.MinValue.Value).Month).Select(_n => _n as int?).ToList().Distinct().ToList().ToList(); months = months.OrderBy((a) => a).ToList().ToList(); foreach (var month in months ?? Enumerable.Empty <int?>())
             {
                 DSS5_SupplyChainFinancialsOptimisation.BO.TurnoverStatistic stat = new DSS5_SupplyChainFinancialsOptimisation.BO.TurnoverStatistic();
                 stat.Supplier = supplier; stat.TotalAmount = (transactions?.Where((a) => a.TransactionDateOccured.GetValueOrDefault(System.Data.SqlTypes.SqlDateTime.MinValue.Value).Month == month).Sum((a) => a.TransactionValue) ?? 0); stat.TotalAmountFunded = (transactions?.Where((a) => a.TransactionDateOccured.GetValueOrDefault(System.Data.SqlTypes.SqlDateTime.MinValue.Value).Month == month).Sum((a) => a.FundedAmount) ?? 0); stat.Month = month; stats?.Add(stat);
             }
         }
         catch (System.Exception e) {
             zAppDev.DotNet.Framework.Utilities.DebugHelper.Log(zAppDev.DotNet.Framework.Utilities.DebugMessageType.Error, "TurnoverStatistic", DSS5_SupplyChainFinancialsOptimisation.Hubs.EventsHub.RaiseDebugMessage, "Error" + e.Message);
             zAppDev.DotNet.Framework.Utilities.DebugHelper.Log(zAppDev.DotNet.Framework.Utilities.DebugMessageType.Error, "TurnoverStatistic", DSS5_SupplyChainFinancialsOptimisation.Hubs.EventsHub.RaiseDebugMessage, "OH-OH!!!!" + transactions?.Count((a) => a != null) + "--------------" + months.Count((a) => a != null));
         }
         return(stats);
     }
 }
示例#2
0
 public static System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.TurnoverStatistic> GetTurnoverStatisticsForSupplier(DSS5_SupplyChainFinancialsOptimisation.BO.Supplier supplier)
 {
     using (new zAppDev.DotNet.Framework.Profiling.Profiler("TurnoverStatistic", zAppDev.DotNet.Framework.Profiling.AppDevSymbolType.ClassOperation, "GetTurnoverStatisticsForSupplier")) {
         System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.TurnoverStatistic> stats        = new System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.TurnoverStatistic>();
         System.Collections.Generic.List <DSS5_SupplyChainFinancialsOptimisation.BO.Transaction>       transactions = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Get <DSS5_SupplyChainFinancialsOptimisation.BO.Transaction>((a) => a.Supplier.UserName == supplier.UserName);
         System.Collections.Generic.List <int?> years = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().GetAsQueryable <DSS5_SupplyChainFinancialsOptimisation.BO.Transaction>((a) => a.Supplier.UserName == supplier.UserName)?.Select((a) => a.TransactionDateOccured.GetValueOrDefault(System.Data.SqlTypes.SqlDateTime.MinValue.Value).Year).Select(_n => _n as int?).ToList().Distinct().ToList().OrderBy((a) => a.GetValueOrDefault(0).ToString()).ToList();
         foreach (var year in years ?? Enumerable.Empty <int?>())
         {
             DSS5_SupplyChainFinancialsOptimisation.BO.TurnoverStatistic stat = new DSS5_SupplyChainFinancialsOptimisation.BO.TurnoverStatistic();
             stat.Supplier = supplier; stat.TotalAmount = (transactions?.Where((a) => a.TransactionDateOccured.GetValueOrDefault(System.Data.SqlTypes.SqlDateTime.MinValue.Value).Year == year).Sum((a) => a.TransactionValue) ?? 0); stat.Year = year; stat.TotalAmountFunded = (transactions?.Where((a) => a.TransactionDateOccured.GetValueOrDefault(System.Data.SqlTypes.SqlDateTime.MinValue.Value).Year == year).Sum((a) => a.FundedAmount) ?? 0); stats?.Add(stat);
         }
         return(stats);
     }
 }