public ActionResult Check(ProductFilter filter) { var data = ProductInfo.Check(UserID, Employee.ID, Employee.BussinessID, filter, null); data.Warehouses = WarehouseInfo.FindAuthorized(UserID, Employee.ID, Employee.BussinessID, UserID, DbAction.Product.View); if (Request.IsAjaxRequest()) { return(Json(new { html = RenderPartialViewToString(Views.CheckPartial, data) }, JsonRequestBehavior.AllowGet)); } return(View(Views.Check, data)); }
public ActionResult List(WarehouseFilter filter) { var data = WarehouseInfo.Find(UserID, Employee.ID, Employee.BussinessID, "", filter, true); if (Request.IsAjaxRequest()) { return(Json(new { result = true, html = RenderPartialViewToString(Views.ListPartial, data) }, JsonRequestBehavior.AllowGet)); } return(View(Views.List, data)); }
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 Remove(int id) { WarehouseInfo.Remove(UserID, Employee.ID, id); var model = WarehouseInfo.Find(UserID, Employee.ID, Employee.BussinessID, "Xóa thông tin thành công"); if (Request.IsAjaxRequest()) { return(Json(new { html = RenderPartialViewToString(Views.ListPartial, model) }, JsonRequestBehavior.AllowGet)); } return(View(Views.List, model)); }
public ActionResult CreateFromExport(int id) { var record = Export.GetExport(UserID, Employee.ID, id); var model = new Import(Employee.Name, WarehouseInfo.FindAuthorized(UserID, Employee.ID, Employee.BussinessID, UserID, DbAction.Import.View), selected: record.Products.Select(i => new ImexItem(i, record.WarehouseID, record.WarehouseName)).ToArray()); if (Request.IsAjaxRequest()) { return(Json(new { html = RenderPartialViewToString(Views.ImportPartial, model) }, JsonRequestBehavior.AllowGet)); } return(View(Views.Import, model)); }
public ActionResult Create() { var login = Login.Get(UserID); var model = new Export(Employee.Name, WarehouseInfo.FindAuthorized(UserID, Employee.ID, Employee.BussinessID, UserID, DbAction.Export.View)); model.Editable = login.Username == "admin"; if (Request.IsAjaxRequest()) { return(Json(new { html = RenderPartialViewToString(Views.ExportPartial, model) }, JsonRequestBehavior.AllowGet)); } return(View(Views.Export, model)); }
public ActionResult Update(int id) { var login = Login.Get(UserID); var model = new Export( WarehouseInfo.FindAuthorized(UserID, Employee.ID, Employee.BussinessID, UserID, DbAction.Order.View), new OrderRecord(Export.GetOrder(UserID, Employee.ID, id)), login.Username == "admin"); if (Request.IsAjaxRequest()) { return(Json(new { html = RenderPartialViewToString(Views.ExportPartial, model) }, JsonRequestBehavior.AllowGet)); } return(View(Views.Export, model)); }
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)); }
public ActionResult Update(int id) { var record = Export.GetExport(UserID, Employee.ID, id); var login = Login.Get(UserID); var model = new Export(record.EmployeeName, WarehouseInfo.FindAuthorized(UserID, Employee.ID, Employee.BussinessID, UserID, DbAction.Export.View), record.ToWarehouseID, record.Status, record.WarehouseID, record.Products.Select(p => new ImexItem(p)).ToArray(), record.Note, "", record.Result); model.ID = record.ID; model.Code = record.Code; model.Editable = login.Username == "admin"; if (Request.IsAjaxRequest()) { return(Json(new { html = RenderPartialViewToString(Views.ExportPartial, model) }, JsonRequestBehavior.AllowGet)); } return(View(Views.Export, model)); }
private void UpdateTemplate(string fileName) { var warehouses = WarehouseInfo.FindAuthorized(UserID, Employee.ID, Employee.BussinessID, UserID, DbAction.Import.View); if (warehouses.Count > 0) { HSSFWorkbook hssfwb; using (FileStream file = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { hssfwb = new HSSFWorkbook(file); } var sheet = hssfwb.GetSheetAt(0); var rowCount = sheet.LastRowNum; for (var i = 1; i <= rowCount; i++) { var row = sheet.GetRow(i); if (row.Cells.FirstOrDefault(c => c.ColumnIndex == 10) != null) { row.Cells.FirstOrDefault(c => c.ColumnIndex == 10).SetCellValue(""); } } for (var i = 0; i < warehouses.Count; i++) { if (i + 1 > rowCount) { sheet.CreateRow(i + 1); } var row = sheet.GetRow(i + 1); if (row.Cells.FirstOrDefault(c => c.ColumnIndex == 10) == null) { row.CreateCell(10); } row.Cells.FirstOrDefault(c => c.ColumnIndex == 10).SetCellValue(warehouses[i].Name); } using (var fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write)) { hssfwb.Write(fs); } } }
public ActionResult Update(int id) { var record = Import.Get(UserID, Employee.ID, id); var model = new Import(record.EmployeeName, WarehouseInfo.FindAuthorized(UserID, Employee.ID, Employee.BussinessID, UserID, DbAction.Import.View), record.WarehouseID, record.Products.ToArray(), record.Note) { Receipt = record.Receipt }; model.ID = record.ID; model.Code = record.Code; if (Request.IsAjaxRequest()) { return(Json(new { html = RenderPartialViewToString(Views.ImportPartial, model) }, JsonRequestBehavior.AllowGet)); } return(View(Views.Import, model)); }
public static List <ImexItem> Read(int userID, int employeeID, FileInfo fileInfo, int bussinessID) { var result = new List <ImexItem>(); HSSFWorkbook hssfwb; using (FileStream file = new FileStream(fileInfo.FullName, FileMode.Open, FileAccess.Read)) { hssfwb = new HSSFWorkbook(file); } var sheet = hssfwb.GetSheetAt(0); if (sheet.LastRowNum > 0) { var whs = new List <string>(); for (var i = 1; i <= sheet.LastRowNum; i++) { var row = sheet.GetRow(i); try { var wh = row.GetCellValue <string>(2); if (!String.IsNullOrEmpty(wh) && !whs.Contains(wh)) { whs.Add(wh); } var item = new ImexItem(); item.Code = row.GetCellValue <string>(0); //item.WarehouseID = warehouseID; item.WarehouseName = wh; item.Price = row.GetCellValue <decimal>(3); item.Quantity = row.GetCellValue <int>(4); result.Add(item); } catch { } } var warehouses = WarehouseInfo.Find(userID, employeeID, whs); foreach (var item in result) { if (warehouses.FirstOrDefault(i => i.Name == item.WarehouseName) != null) { item.WarehouseID = warehouses.FirstOrDefault(i => i.Name == item.WarehouseName).ID; } } if (result.Count > 0) { var dbItems = ImexItem.Get(userID, employeeID, result); foreach (var dbItem in dbItems) { foreach (var item in result.Where(i => i.Code == dbItem.Code)) { item.ID = dbItem.ID; item.Code = dbItem.Code; item.Name = dbItem.Name; item.Price = dbItem.Price; //item.Quantity = 1; } } } result = result.Where(i => i.ID > 0 && i.WarehouseID > 0).ToList(); } return(result); }
public ActionResult Submit(int id, ImexItem[] items, string note, string receipt) { var action = id > 0 ? DbAction.Import.Modify : DbAction.Import.Create; var message = ""; int?recordID = null; int warehouseID = 0; if (id > 0 && !EmployeeInfo.IsAdmin(UserID, Employee.ID, Employee.ID, action)) { message = "Bạn không có quyền sử dụng chức năng này"; } else { message = "Lưu thông tin không thành công"; if (items != null && items.Length > 0) { var warehouses = items.GroupBy(i => i.WarehouseID); foreach (var warehouse in warehouses) { recordID = SKtimeManagement.Import.Submit(id, UserID, Employee.ID, Employee.BussinessID, warehouse.Key, warehouse.ToArray(), note, receipt); warehouseID = warehouse.Key; } if (recordID.HasValue) { message = "Lưu thông tin thành công"; } } else { message = "Không có sản phẩm được chọn"; } } if (!recordID.HasValue) { var model = new Import(Employee.Name, WarehouseInfo.FindAuthorized(UserID, Employee.ID, Employee.BussinessID, UserID, DbAction.Import.View), warehouseID, items, note, message) { Receipt = receipt }; model.ID = id; if (Request.IsAjaxRequest()) { return(Json(new { html = RenderPartialViewToString(Views.ImportPartial, model) }, JsonRequestBehavior.DenyGet)); } return(View(Views.Import, model)); } else { if (Request.IsAjaxRequest()) { return(Json(new { result = true, redirect = Url.Action("Detail", "Import", new { id = recordID.Value }) }, JsonRequestBehavior.DenyGet)); } return(RedirectToAction(Views.Detail, new { id = recordID.Value })); } }
public ActionResult Submit(OrderRecord record, FormCollection collection) { record.EmployeeName = Employee.Name; var action = record.ID > 0 ? DbAction.Order.Modify : DbAction.Order.Create; var unavailable = ImexItem.Unavailable(UserID, Employee.ID, record.WarehouseID, action, record.Items, record.ID); var orderID = 0; var message = ""; var result = false; var login = Login.Get(UserID); //if (record.ID > 0 && login.Username != "admin" && login.Type != LoginType.Office) // message = "Bạn không có quyền cập nhật hóa đơn"; if (unavailable.Count > 0) { message = String.Format("Số lượng vượt mức tồn kho:<br/>{0}", String.Join("<br/>", unavailable.Select(i => i.Name))); } else if (record.ClientID == 0 && (String.IsNullOrEmpty(record.ClientName) || String.IsNullOrEmpty(record.ClientPhone))) { message = "Thiếu thông tin khách hàng (tên, số điện thoại)"; } else if (record.Items.Sum(i => i.Quantity * i.Price) - record.Discount - record.Paid != 0) { message = "Tổng tiền khuyến mãi và đã trả không bằng tổng tiền hóa đơn"; } else { message = "Lưu thông tin không thành công"; if (record.Items != null && record.Items.Length > 0) { if (login.Username != "admin" && record.ID == 0) { record.SubmitDate = DateTime.Now; } if (login.Username != "admin") { record.NewEmployeeID = null; } if ((orderID = SKtimeManagement.Export.SaveOrder(UserID, Employee.ID, Employee.BussinessID, record)) > 0) { message = "Lưu thông tin thành công"; result = true; } } else { message = "Không có sản phẩm được chọn"; } } if (result) { // trigger creating income when do exchange product on order if (collection["Action"] == "Exchange") { using (var data = new DataClassesDataContext()) { data.TriggerInsertIncome(record.ID, Employee.ID, Employee.BussinessID, record.WarehouseID, record.Code, BaseModel.NewUniqueCode(UserID, Employee.ID, Employee.BussinessID, "Income"), DateTime.Now, Convert.ToDecimal(collection["TotalTransactionPaid"])); } } var model = new ExportList(); model.List = Export.OrderHistory(UserID, Employee.ID, Employee.BussinessID); model.Current = Export.GetOrder(UserID, Employee.ID, orderID); foreach (var product in model.Current.Products) { product.ProductUrl = RenderPartialViewToString("ProductUrl", product); } foreach (var product in model.Current.ReturnProducts) { product.ProductUrl = RenderPartialViewToString("ProductUrl", product); } if (Request.IsAjaxRequest()) { return(Json(new { html = RenderPartialViewToString(Views.HistoryPartial, model) }, JsonRequestBehavior.DenyGet)); } return(RedirectToAction(Views.History)); } else { var data = ImexItem.Find(UserID, Employee.ID, action, Employee.BussinessID); var model = new Export( WarehouseInfo.FindAuthorized(UserID, Employee.ID, Employee.BussinessID, UserID, DbAction.Order.View), record, login.Username == "admin", message, result); if (record.Return) { var returnRecord = new OrderRecord(Export.GetOrder(UserID, Employee.ID, record.ID), true); var items = model.Selected.ToList(); items.AddRange(returnRecord.Items); model.Selected = items.ToArray(); } if (Request.IsAjaxRequest()) { return(Json(new { html = RenderPartialViewToString(Views.ExportPartial, model) }, JsonRequestBehavior.DenyGet)); } return(RedirectToAction(Views.Export)); } }
public ActionResult Submit(int id, int warehouseID, int?toWarehouseID, ImexItem[] items, string note, string status) { var action = id > 0 ? DbAction.Export.Modify : DbAction.Export.Create; var unavailable = ImexItem.Unavailable(UserID, Employee.ID, warehouseID, action, items, 0, id); var exportID = 0; var message = ""; var result = false; var login = Login.Get(UserID); if (id > 0 && login.Username != "admin" && login.Type != LoginType.Office) { message = "Bạn không có quyền cập nhật phiếu xuất"; } else if (unavailable.Count > 0) { message = String.Format("Số lượng vượt mức tồn kho:<br/>{0}", String.Join("<br/>", unavailable.Select(i => i.Name))); } else if (toWarehouseID.HasValue && toWarehouseID.Value == warehouseID) { message = "Kho nhận trùng kho xuất"; } else { message = "Lưu thông tin không thành công"; if (items != null && items.Length > 0) { if ((exportID = SKtimeManagement.Export.Submit(id, UserID, Employee.ID, Employee.BussinessID, warehouseID, toWarehouseID, status, items, note)) > 0) { message = "Lưu thông tin thành công"; result = true; } } else { message = "Không có sản phẩm được chọn"; } } if (result) { var model = new ExportList(); model.List = Export.History(UserID, Employee.ID, Employee.BussinessID); model.Current = Export.GetExport(UserID, Employee.ID, exportID); foreach (var product in model.Current.Products) { product.ProductUrl = RenderPartialViewToString("ProductUrl", product); } if (Request.IsAjaxRequest()) { return(Json(new { html = RenderPartialViewToString(Views.HistoryPartial, model) }, JsonRequestBehavior.DenyGet)); } return(RedirectToAction(Views.History)); } else { var model = new Export(Employee.Name, WarehouseInfo.FindAuthorized(UserID, Employee.ID, Employee.BussinessID, UserID, DbAction.Export.View), toWarehouseID, status, warehouseID, items, note, message, result); model.ID = id; model.Editable = login.Username == "admin"; if (Request.IsAjaxRequest()) { return(Json(new { html = RenderPartialViewToString(Views.ExportPartial, model) }, JsonRequestBehavior.DenyGet)); } return(RedirectToAction(Views.Export)); } }
private void SaveProductWarehouse(HSSFWorkbook workbook, IEnumerable <ProductSaleReport> products, WarehouseInfo warehouse = null) { var name = warehouse != null ? warehouse.Name : "Toàn bộ"; var worksheet = workbook.CreateSheet(name); ExcelWorker.CellStyles = new List <ICellStyle>(); ExcelWorker.CreateRow(worksheet, 0, new ExcelCell[] { ExcelWorker.CreateCell(workbook, "Kho"), ExcelWorker.CreateCell(workbook, name) }); ExcelWorker.CreateRow(worksheet, 0, new ExcelCell[] { ExcelWorker.CreateCell(workbook, "Mã", HSSFColor.RoyalBlue.Index, HSSFColor.White.Index), ExcelWorker.CreateCell(workbook, "Tên", HSSFColor.RoyalBlue.Index, HSSFColor.White.Index), ExcelWorker.CreateCell(workbook, "Tỷ lệ (số lượng)", HSSFColor.RoyalBlue.Index, HSSFColor.White.Index), ExcelWorker.CreateCell(workbook, "Tỷ lệ (tổng tiền)", HSSFColor.RoyalBlue.Index, HSSFColor.White.Index), ExcelWorker.CreateCell(workbook, "Số lượng bán", HSSFColor.RoyalBlue.Index, HSSFColor.White.Index), ExcelWorker.CreateCell(workbook, "Tổng tiền bán", HSSFColor.RoyalBlue.Index, HSSFColor.White.Index), ExcelWorker.CreateCell(workbook, "Số lượng nhập", HSSFColor.RoyalBlue.Index, HSSFColor.White.Index), ExcelWorker.CreateCell(workbook, "Tổng tiền nhập", HSSFColor.RoyalBlue.Index, HSSFColor.White.Index) }); var index = 1; foreach (var product in products) { ExcelWorker.CreateRow(worksheet, index, new ExcelCell[] { ExcelWorker.CreateCell(workbook, product.Code), ExcelWorker.CreateCell(workbook, product.Name), ExcelWorker.CreateCell(workbook, Math.Round(product.QuantityPercentage, 2).ToString()), ExcelWorker.CreateCell(workbook, Math.Round(product.RevenuePercentage, 2).ToString()), ExcelWorker.CreateCell(workbook, product.OrderQuantityString), ExcelWorker.CreateCell(workbook, product.OrderTotalString), ExcelWorker.CreateCell(workbook, product.ImportQuantityString), ExcelWorker.CreateCell(workbook, product.ImportTotalString) }); index++; } ExcelWorker.CreateRow(worksheet, index, new ExcelCell[] { ExcelWorker.CreateCell(workbook, ""), ExcelWorker.CreateCell(workbook, ""), ExcelWorker.CreateCell(workbook, ""), ExcelWorker.CreateCell(workbook, "Tổng cộng"), ExcelWorker.CreateCell(workbook, products.Sum(i => i.OrderQuantity).GetCurrencyString()), ExcelWorker.CreateCell(workbook, products.Sum(i => i.OrderTotal).GetCurrencyString()), ExcelWorker.CreateCell(workbook, products.Sum(i => i.ImportQuantity).GetCurrencyString()), ExcelWorker.CreateCell(workbook, products.Sum(i => i.ImportTotal).GetCurrencyString()) }); }