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)); }
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)); }
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)); }
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); } }