Beispiel #1
0
        public ActionResult FindDownload(int warehouseID, int?tagID, FindItem[] items)
        {
            var result = false;

            try
            {
                var filter = new ProductFilter()
                {
                    WarehouseID = warehouseID,
                    TagID       = tagID
                };
                var products = ProductInfo.FindAll(UserID, Employee.ID, Employee.BussinessID, "", filter, true, null);
                var model    = new FindList(filter);
                model.Warehouses = WarehouseInfo.FindAuthorized(UserID, Employee.ID, Employee.BussinessID, UserID, DbAction.Product.View);
                var warehouse = model.Warehouses.FirstOrDefault(i => i.ID == warehouseID);
                if (products.Data.Count > 0 && warehouse != null)
                {
                    if (items != null)
                    {
                        foreach (var item in items)
                        {
                            var product = products.Data.FirstOrDefault(i => i.Code == item.Code);
                            if (product == null)
                            {
                                product = ProductInfo.FindList(UserID, Employee.BussinessID, Employee.BussinessID, new ProductFilter()
                                {
                                    Code = item.Code
                                }, false, 100, DbAction.Product.View).FirstOrDefault();
                                model.Data.Add(new FindItem(item.Code, warehouse.Name, item.Quantity, product));
                            }
                            else
                            {
                                model.Data.Add(new FindItem(product, item.Quantity));
                            }
                        }
                    }
                    model.Data.AddRange(products.Data.Where(i => model.Data.FirstOrDefault(d => d.Code == i.Code) == null).Select(i => new FindItem(i)));
                }
                var fileName = String.Format("Products_{0}.xls", DateTime.Now.ToString("ddMMyyyyHHmmss"));
                var file     = String.Format("{0}/Content/Download/{1}", SiteConfiguration.ApplicationPath, fileName);
                Functions.CheckDirectory(String.Format("{0}/Content/Download/", SiteConfiguration.ApplicationPath));
                SaveFind(file, model);
                Session[SessionKey.Download] = fileName;
                result = true;
            }
            catch { }
            return(Json(new
            {
                result = result
            }, JsonRequestBehavior.DenyGet));
        }
Beispiel #2
0
        public ActionResult Find()
        {
            var data = new FindList();

            data.Warehouses = WarehouseInfo.FindAuthorized(UserID, Employee.ID, Employee.BussinessID, UserID, DbAction.Product.View);
            if (Request.IsAjaxRequest())
            {
                return(Json(new
                {
                    html = RenderPartialViewToString(Views.FindPartial, data)
                }, JsonRequestBehavior.AllowGet));
            }
            return(View(Views.Find, data));
        }
Beispiel #3
0
        public ActionResult FindFinish(int warehouseID, int?tagID, FindItem[] items)
        {
            var filter = new ProductFilter()
            {
                WarehouseID = warehouseID,
                TagID       = tagID
            };
            var products = ProductInfo.FindAll(UserID, Employee.ID, Employee.BussinessID, "", filter, true, null);
            var model    = new FindList(filter);

            model.Warehouses = WarehouseInfo.FindAuthorized(UserID, Employee.ID, Employee.BussinessID, UserID, DbAction.Product.View);
            var warehouse = model.Warehouses.FirstOrDefault(i => i.ID == warehouseID);

            if (products.Data.Count > 0 && warehouse != null)
            {
                if (items != null)
                {
                    foreach (var item in items)
                    {
                        var product = products.Data.FirstOrDefault(i => i.Code == item.Code);
                        if (product == null)
                        {
                            product = ProductInfo.FindList(UserID, Employee.BussinessID, Employee.BussinessID, new ProductFilter()
                            {
                                Code = item.Code
                            }, false, 100, DbAction.Product.View).FirstOrDefault();
                            model.Data.Add(new FindItem(item.Code, warehouse.Name, item.Quantity, product));
                        }
                        else
                        {
                            model.Data.Add(new FindItem(product, item.Quantity));
                        }
                    }
                }
                model.Data.AddRange(products.Data.Where(i => model.Data.FirstOrDefault(d => d.Code == i.Code) == null).Select(i => new FindItem(i)));
            }
            if (Request.IsAjaxRequest())
            {
                return(Json(new
                {
                    html = RenderPartialViewToString(Views.FindPartial, model)
                }, JsonRequestBehavior.AllowGet));
            }
            return(View(Views.Find, model));
        }
Beispiel #4
0
        private void SaveFind(string fileName, FindList list)
        {
            var products  = list.Data;
            var warehouse = list.Warehouses.FirstOrDefault(i => i.ID == list.Filter.WarehouseID);
            var workbook  = new HSSFWorkbook();
            var worksheet = workbook.CreateSheet("Report");
            var index     = 0;

            ExcelWorker.CreateRow(worksheet, index++, new ExcelCell[] {
                ExcelWorker.CreateCell(workbook, "Kho"),
                ExcelWorker.CreateCell(workbook, warehouse.Name),
                ExcelWorker.CreateCell(workbook, ""),
                ExcelWorker.CreateCell(workbook, "Tổng tồn"),
                ExcelWorker.CreateCell(workbook, list.Data.Where(i => i.Exist).Sum(i => i.Max).GetCurrencyString()),
                ExcelWorker.CreateCell(workbook, ""),
                ExcelWorker.CreateCell(workbook, "Tổng tìm"),
                ExcelWorker.CreateCell(workbook, list.Data.Sum(i => i.Quantity).GetCurrencyString())
            });
            ExcelWorker.CreateRow(worksheet, index++, new ExcelCell[] {
                ExcelWorker.CreateCell(workbook, "Đủ hàng"),
                ExcelWorker.CreateCell(workbook, list.Data.Count(i => i.Exist && i.Quantity == i.Max).GetCurrencyString()),
                ExcelWorker.CreateCell(workbook, ""),
                ExcelWorker.CreateCell(workbook, "Thiếu hàng"),
                ExcelWorker.CreateCell(workbook, list.Data.Count(i => i.Exist && i.Quantity < i.Max).GetCurrencyString()),
                ExcelWorker.CreateCell(workbook, ""),
                ExcelWorker.CreateCell(workbook, "Dư hàng"),
                ExcelWorker.CreateCell(workbook, list.Data.Count(i => i.Exist && i.Quantity > i.Max).GetCurrencyString()),
                ExcelWorker.CreateCell(workbook, ""),
                ExcelWorker.CreateCell(workbook, "Không tồn tại"),
                ExcelWorker.CreateCell(workbook, list.Data.Count(i => !i.Exist).GetCurrencyString())
            });
            index++;
            ExcelWorker.CellStyles = new List <ICellStyle>();
            ExcelWorker.CreateRow(worksheet, index++, new ExcelCell[] {
                ExcelWorker.CreateCell(workbook, "Thông tin", HSSFColor.RoyalBlue.Index, HSSFColor.White.Index),
                ExcelWorker.CreateCell(workbook, "Nhóm", HSSFColor.RoyalBlue.Index, HSSFColor.White.Index),
                ExcelWorker.CreateCell(workbook, "Mã", HSSFColor.RoyalBlue.Index, HSSFColor.White.Index),
                ExcelWorker.CreateCell(workbook, "Tên", HSSFColor.RoyalBlue.Index, HSSFColor.White.Index),
                ExcelWorker.CreateCell(workbook, "Kho", HSSFColor.RoyalBlue.Index, HSSFColor.White.Index),
                ExcelWorker.CreateCell(workbook, "Đơn vị", HSSFColor.RoyalBlue.Index, HSSFColor.White.Index),
                ExcelWorker.CreateCell(workbook, "Tồn kho", HSSFColor.RoyalBlue.Index, HSSFColor.White.Index),
                ExcelWorker.CreateCell(workbook, "Số lượng tìm", HSSFColor.RoyalBlue.Index, HSSFColor.White.Index)
            });
            for (var i = 0; i < products.Count; i++)
            {
                var product = products[i];
                var message = "Đủ hàng";
                if (!product.Exist)
                {
                    message = "Không tồn tại";
                }
                else if (product.Quantity > product.Max)
                {
                    message = String.Format("Dư hàng({0})", product.Max - product.Quantity);
                }
                else if (product.Quantity < product.Max)
                {
                    message = String.Format("Thiếu hàng({0})", product.Quantity - product.Max);
                }
                ExcelWorker.CreateRow(worksheet, index++, new ExcelCell[] {
                    ExcelWorker.CreateCell(workbook, message),
                    ExcelWorker.CreateCell(workbook, product.TagName),
                    ExcelWorker.CreateCell(workbook, product.Code),
                    ExcelWorker.CreateCell(workbook, product.Name),
                    ExcelWorker.CreateCell(workbook, product.WarehouseName),
                    ExcelWorker.CreateCell(workbook, product.Unit),
                    ExcelWorker.CreateCell(workbook, product.Max.GetCurrencyString()),
                    ExcelWorker.CreateCell(workbook, product.Quantity.GetCurrencyString())
                });
            }
            using (var fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write))
            {
                workbook.Write(fs);
            }
        }