private DBResult EditStartOfTerm(StartOfTerm entity) { if (entity == null) { return(DBResult.WrongParameter); } string foreID = BuilderDictionary.ForeIDDictionary.FirstOrDefault(p => p.Key == typeof(StartOfTermViewResult)).Value; entity.ID = foreID + entity.Date.ToString("yyyyMMddHHmmss"); using (var db = new ReportEntities()) { var startOfTerm = db.StartOfTerm.FirstOrDefault(t => t.ID == entity.ID); if (startOfTerm == null) { db.StartOfTerm.Add(entity); } EntityHelper.CopyEntity(entity, startOfTerm); db.SaveChanges(); return(DBResult.Succeed); } }
public List <MonthlyReportViewResult> ReCalculate(DateTime date) { int lastReportsCount = 0; DateTime monthStart = new DateTime(date.Year, date.Month, 1); DateTime lastMonthStart = date.Month == 1 ? new DateTime(date.Year - 1, 12, 1) : new DateTime(date.Year, date.Month - 1, 1); var lastReports = Query <MonthlyReport>(new MonthlyReportQueryConditions { Date = lastMonthStart }, out lastReportsCount); if (lastReportsCount != 0) { foreach (var lastReport in lastReports) { int detailsCount = 0; var details = Query <MReportDetails>(new MReportDetailsQueryConditions { OrderID = lastReport.ID }, out detailsCount); if (detailsCount != 0) { foreach (var detail in details) { var newStartOfTerm = new StartOfTerm { Date = lastReport.Date, WarehouseName = lastReport.WarehouseName, ProductName = detail.ProductName, Price = detail.SListPrice, Amount = detail.SListAmount, TotalPrice = detail.SListTotalPrice }; var termDBResult = EditStartOfTerm(newStartOfTerm); if (termDBResult != DBResult.Succeed) { return(new List <MonthlyReportViewResult>()); } } } } } var viewResults = CalculateMonthlyReport(monthStart); var dBResult = Edit(viewResults); if (dBResult != DBResult.Succeed) { return(new List <MonthlyReportViewResult>()); } return(viewResults); }
private DBResult AddStartOfTerm(StartOfTerm entity) { if (entity == null) { return(DBResult.WrongParameter); } string foreID = BuilderDictionary.ForeIDDictionary.FirstOrDefault(p => p.Key == typeof(StartOfTermViewResult)).Value; entity.ID = foreID + entity.Date.ToString("yyyyMMddHHmmss"); return(Add <StartOfTerm>(entity, null, new string[] { "ID", "Date" })); }
public List <MonthlyReportViewResult> Get(DateTime date) { int totalCount = 0; int startOfTermsCount; DateTime monthStart = new DateTime(date.Year, date.Month, 1); var startOfTerms = Query <StartOfTerm>(new StartOfTermQueryConditions { Date = monthStart }, out startOfTermsCount); var results = Query <MonthlyReport>(new MonthlyReportQueryConditions { Date = monthStart }, out totalCount); if (results != null && totalCount != 0) { var viewResults = EntityHelper.CopyEntities(results, new List <MonthlyReportViewResult>()); foreach (var viewResult in viewResults) { int detailsCount = 0; viewResult.Details = new List <MReportDetailsViewResult>(); var details = Query <MReportDetails>(new MReportDetailsQueryConditions { OrderID = viewResult.ID }, out detailsCount); if (details != null && detailsCount != 0) { viewResult.Details.AddRange(EntityHelper.CopyEntities(details, new List <MReportDetailsViewResult>())); foreach (var detailsViewResult in viewResult.Details) { detailsViewResult.StartOfTerm = new StartOfTermViewResult(); var startOfTerm = startOfTerms .FirstOrDefault(s => s.ProductName == detailsViewResult.ProductName && s.WarehouseName == viewResult.WarehouseName); if (startOfTerms != null) { detailsViewResult.StartOfTerm = EntityHelper.CopyEntity(startOfTerm, new StartOfTermViewResult()); } } } } return(viewResults); } if (startOfTermsCount == 0) { int lastReportsCount = 0; DateTime lastMonthStart = date.Month == 1 ? new DateTime(date.Year - 1, 12, 1) : new DateTime(date.Year, date.Month - 1, 1); var lastReports = Query <MonthlyReport>(new MonthlyReportQueryConditions { Date = lastMonthStart }, out lastReportsCount); if (lastReportsCount != 0) { foreach (var lastReport in lastReports) { int detailsCount = 0; var details = Query <MReportDetails>(new MReportDetailsQueryConditions { OrderID = lastReport.ID }, out detailsCount); if (detailsCount != 0) { foreach (var detail in details) { var newStartOfTerm = new StartOfTerm { Date = lastReport.Date, WarehouseName = lastReport.WarehouseName, ProductName = detail.ProductName, Price = detail.SListPrice, Amount = detail.SListAmount, TotalPrice = detail.SListTotalPrice }; var termDBResult = AddStartOfTerm(newStartOfTerm); if (termDBResult != DBResult.Succeed) { return(new List <MonthlyReportViewResult>()); } } } } } } var calViewResults = CalculateMonthlyReport(monthStart); var dBResult = Add(calViewResults); if (dBResult != DBResult.Succeed) { return(new List <MonthlyReportViewResult>()); } return(calViewResults); }