//私有方法
        private IList <FCReceivingReport> GetFCReceivingReportList(int preid, string container)
        {
            var resultList = new List <FCReceivingReport>();

            var fcRegualrCartonDetailsInDb = _context.RegularCartonDetails
                                             .Include(c => c.POSummary.PreReceiveOrder)
                                             .Where(c => c.POSummary.PreReceiveOrder.Id == preid &&
                                                    c.POSummary.Container == container)
                                             .OrderBy(x => x.PurchaseOrder)
                                             .ToList();

            var index = 1;

            foreach (var cartonDetail in fcRegualrCartonDetailsInDb)
            {
                var report = new FCReceivingReport
                {
                    Index          = index,
                    CartonRange    = cartonDetail.CartonRange,
                    PurchaseOrder  = cartonDetail.PurchaseOrder,
                    Style          = cartonDetail.Style,
                    Line           = cartonDetail.POSummary.PoLine,
                    Customer       = cartonDetail.Customer,
                    SizeBundle     = cartonDetail.SizeBundle,
                    PcsBundle      = cartonDetail.PcsBundle,
                    ReceivableQty  = cartonDetail.Quantity,
                    ReceivedQty    = cartonDetail.ActualPcs,
                    ReceivableCtns = cartonDetail.Cartons,
                    ReceivedCtns   = cartonDetail.ActualCtns,
                    Color          = cartonDetail.Color,
                    SKU            = cartonDetail.Batch,
                    Memo           = "",
                    Comment        = cartonDetail.Comment
                };

                index++;

                if (report.ReceivedCtns - report.ReceivableCtns < 0)
                {
                    var diff = report.ReceivableCtns - report.ReceivedCtns;
                    report.Memo = "Shortage: " + diff.ToString() + "ctns";
                }

                if (report.ReceivedCtns - report.ReceivableCtns > 0)
                {
                    var diff = report.ReceivedCtns - report.ReceivableCtns;
                    report.Memo = "Overage: " + diff.ToString() + "ctns";
                }

                resultList.Add(report);
            }

            return(resultList);
        }
Example #2
0
        public IHttpActionResult DownloadExcel([FromUri] int preid, [FromUri] string container)
        {
            var resultList = new List <FCReceivingReport>();

            var fcRegualrCartonDetailsInDb = _context.RegularCartonDetails
                                             .Include(c => c.POSummary.PreReceiveOrder)
                                             .Where(c => c.POSummary.PreReceiveOrder.Id == preid &&
                                                    c.POSummary.Container == container)
                                             .OrderBy(x => x.PurchaseOrder)
                                             .ToList();

            var index = 1;

            foreach (var cartonDetail in fcRegualrCartonDetailsInDb)
            {
                var report = new FCReceivingReport
                {
                    Index          = index,
                    CartonRange    = cartonDetail.CartonRange,
                    PurchaseOrder  = cartonDetail.PurchaseOrder,
                    Style          = cartonDetail.Style,
                    Line           = cartonDetail.POSummary.PoLine,
                    Customer       = cartonDetail.Customer,
                    SizeBundle     = cartonDetail.SizeBundle,
                    PcsBundle      = cartonDetail.PcsBundle,
                    ReceivableQty  = cartonDetail.Quantity,
                    ReceivedQty    = cartonDetail.ActualPcs,
                    ReceivableCtns = cartonDetail.Cartons,
                    ReceivedCtns   = cartonDetail.ActualCtns,
                    Color          = cartonDetail.Color,
                    SKU            = cartonDetail.Batch,
                    Memo           = "",
                    Comment        = cartonDetail.Comment,
                    PreLocation    = cartonDetail.PreLocation
                };

                index++;

                if (report.ReceivedCtns - report.ReceivableCtns < 0)
                {
                    var diff = report.ReceivableCtns - report.ReceivedCtns;
                    report.Memo = "Shortage: " + diff.ToString() + "ctns";
                }

                if (report.ReceivedCtns - report.ReceivableCtns > 0)
                {
                    var diff = report.ReceivedCtns - report.ReceivableCtns;
                    report.Memo = "Overage: " + diff.ToString() + "ctns";
                }

                resultList.Add(report);
            }

            var containerInDb = _context.Containers.SingleOrDefault(x => x.ContainerNumber == container);

            var generator = new ExcelGenerator();

            generator.GenerateRecevingReportExcel(containerInDb, resultList);

            return(Ok(resultList));
        }