Example #1
0
        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);
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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" }));
        }
Example #4
0
        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);
        }