public ActionResult Shipping(int?Id) { var q = RequestInboundRepository.GetvwRequestInboundById(Id.Value); if (q != null && q.IsDeleted != true) { var model = new RequestInboundViewModel(); AutoMapper.Mapper.Map(q, model); return(View(model)); } return(RedirectToAction("Edit", new { Id = q.Id })); }
public ActionResult Refure(RequestInboundViewModel model) { if (ModelState.IsValid) { if (Request["Submit"] == "Save") { var q = RequestInboundRepository.GetRequestInboundById(model.Id); q.Status = "refure"; q.CancelReason = model.CancelReason; q.ModifiedUserId = WebSecurity.CurrentUserId; RequestInboundRepository.UpdateRequestInbound(q); //gửi notifications cho người được phân quyền. Crm.Controllers.ProcessController.Run("RequestInbound", "Refure", q.Id, q.CreatedUserId, null, q); return(View("_ClosePopup")); } return(RedirectToAction("Edit", new { Id = model.Id })); } TempData[Globals.SuccessMessageKey] = "Yêu cầu: " + model.Code + " bị từ chối không thành công."; return(RedirectToAction("Index")); }
public ActionResult Shipping(RequestInboundViewModel model) { if (ModelState.IsValid) { if (Request["Submit"] == "Save") { var q = RequestInboundRepository.GetRequestInboundById(model.Id); q.Status = "shipping"; q.ShipName = model.ShipName; q.ShipPhone = model.ShipPhone; q.ModifiedUserId = WebSecurity.CurrentUserId; RequestInboundRepository.UpdateRequestInbound(q); //gửi notifications cho người được phân quyền. Crm.Controllers.ProcessController.Run("RequestInbound", "Shipping", q.Id, q.CreatedUserId, null, q); return(View("_ClosePopup")); } return(RedirectToAction("Edit", new { Id = model.Id })); } TempData[Globals.SuccessMessageKey] = "Yêu cầu: " + model.Code + " giao hàng không thành công. Vui lòng kiểm tra lại thông tin bên giao hàng"; return(RedirectToAction("Index")); }
public ActionResult Create(RequestInboundViewModel model) { if (ModelState.IsValid && model.DetailList.Count != 0) { var requestInbound = new Domain.Sale.Entities.RequestInbound(); using (var scope = new TransactionScope(TransactionScopeOption.Required)) { try { AutoMapper.Mapper.Map(model, requestInbound); if (model.Id > 0) { } else { requestInbound.IsDeleted = false; requestInbound.CreatedUserId = WebSecurity.CurrentUserId; requestInbound.ModifiedUserId = WebSecurity.CurrentUserId; requestInbound.CreatedDate = DateTime.Now; requestInbound.ModifiedDate = DateTime.Now; var branch = WarehouseRepository.GetWarehouseById(requestInbound.WarehouseDestinationId.Value); requestInbound.BranchId = branch.BranchId; requestInbound.Status = "new"; } //duyệt qua danh sách sản phẩm mới xử lý tình huống user chọn 2 sản phầm cùng id List <Domain.Sale.Entities.RequestInboundDetail> listNewCheckSameId = new List <Domain.Sale.Entities.RequestInboundDetail>(); foreach (var group in model.DetailList.GroupBy(x => x.ProductId)) { var product = ProductRepository.GetProductById(group.Key.Value); listNewCheckSameId.Add(new Domain.Sale.Entities.RequestInboundDetail { ProductId = group.Key, Quantity = group.Sum(x => x.Quantity), Unit = product.Unit, Price = product.PriceOutbound, IsDeleted = false, CreatedUserId = WebSecurity.CurrentUserId, ModifiedUserId = WebSecurity.CurrentUserId, CreatedDate = DateTime.Now, ModifiedDate = DateTime.Now, }); } requestInbound.TotalAmount = listNewCheckSameId.Sum(x => x.Price * x.Quantity); if (model.Id > 0) { requestInbound.Status = "new"; RequestInboundRepository.UpdateRequestInbound(requestInbound); var listDetail = RequestInboundRepository.GetAllRequestInboundDetailsByInvoiceId(requestInbound.Id).ToList(); //xóa danh sách dữ liệu cũ dưới database RequestInboundRepository.DeleteRequestInboundDetail(listDetail); //thêm mới toàn bộ database foreach (var item in listNewCheckSameId) { item.RequestInboundId = requestInbound.Id; RequestInboundRepository.InsertRequestInboundDetail(item); } //lấy thông tin chi nhánh gửi yêu cầu hiện vào notification var branchName = branchRepository.GetBranchById(model.BranchId.Value); //Apply business process flow Crm.Controllers.ProcessController.Run("RequestInbound", "Create", requestInbound.Id, requestInbound.ModifiedUserId, null, requestInbound); } else { RequestInboundRepository.InsertRequestInbound(requestInbound, listNewCheckSameId); //cập nhật lại mã hóa đơn string prefix = Erp.BackOffice.Helpers.Common.GetSetting("prefixOrderNo_RequestInbound"); requestInbound.Code = Erp.BackOffice.Helpers.Common.GetCode(prefix, requestInbound.Id); RequestInboundRepository.UpdateRequestInbound(requestInbound); var branchName = branchRepository.GetBranchById(requestInbound.BranchId.Value); //run process task Crm.Controllers.ProcessController.Run("RequestInbound", "Create", requestInbound.Id, requestInbound.ModifiedUserId, null, requestInbound, requestInbound.BranchId.Value.ToString()); } scope.Complete(); } catch (DbUpdateException) { TempData[Globals.FailedMessageKey] = App_GlobalResources.Wording.Error; return(View(model)); } } return(RedirectToAction("Detail", new { Id = requestInbound.Id })); } return(View(model)); }
public ActionResult Create(int?Id) { RequestInboundViewModel model = new RequestInboundViewModel(); model.DetailList = new List <RequestInboundDetailViewModel>(); if (Id.HasValue && Id > 0) { var requestInbound = RequestInboundRepository.GetvwRequestInboundById(Id.Value); AutoMapper.Mapper.Map(requestInbound, model); var detailList = RequestInboundRepository.GetAllvwRequestInboundDetailsByInvoiceId(requestInbound.Id).ToList(); AutoMapper.Mapper.Map(detailList, model.DetailList); } var warehouseList = WarehouseRepository.GetvwAllWarehouse().AsEnumerable(); var user = userRepository.GetByvwUserName(Helpers.Common.CurrentUser.UserName); if (!Erp.BackOffice.Filters.SecurityFilter.IsAdmin() && !Erp.BackOffice.Filters.SecurityFilter.IsKeToan()) { warehouseList = warehouseList.Where(x => ("," + user.WarehouseId + ",").Contains("," + x.Id + ",") == true); } var _warehouseList = warehouseList.Select(item => new SelectListItem { Text = item.Name + " (" + item.BranchName + ")", Value = item.Id.ToString() }); ViewBag.warehouseList = _warehouseList; //string image_folder_product = Helpers.Common.GetSetting("product-image-folder"); var productList = ProductRepository.GetAllProduct().AsEnumerable() .Select(item => new ProductViewModel { Code = item.Code, Barcode = item.Barcode, Name = item.Name, Id = item.Id, CategoryCode = string.IsNullOrEmpty(item.CategoryCode) ? "Sản phẩm khác" : item.CategoryCode, PriceOutbound = item.PriceOutbound, Unit = item.Unit, Image_Name = Erp.BackOffice.Helpers.Common.KiemTraTonTaiHinhAnh(item.Image_Name, "product-image-folder", "product") }).ToList(); ViewBag.productList = productList; model.CreatedDate = DateTime.Now; model.CreatedUserName = Helpers.Common.CurrentUser.FullName; ViewBag.isAdmin = Erp.BackOffice.Helpers.Common.CurrentUser.UserTypeId == 1 ? true : false; if (model.DetailList != null && model.DetailList.Count > 0) { foreach (var item in model.DetailList) { var product = productList.Where(i => i.Id == item.ProductId).FirstOrDefault(); if (product == null) { item.Id = 0; } } model.DetailList.RemoveAll(x => x.Id == 0); int n = 0; foreach (var item in model.DetailList) { item.OrderNo = n; n++; } } return(View(model)); }
public ActionResult Detail(int?Id) { var model = new RequestInboundViewModel(); var modelproductInbound = new ProductInboundViewModel(); var modelproductOutbound = new ProductOutboundViewModel(); var requestInbound = new vwRequestInbound(); var productInbound = new vwProductInbound(); var productOutbound = new vwProductOutbound(); if (Id != null && Id.Value > 0) { requestInbound = RequestInboundRepository.GetvwRequestInboundById(Id.Value); if (requestInbound.InboundId != null && requestInbound.InboundId.Value > 0) { productInbound = productInboundRepository.GetvwProductInboundFullById(requestInbound.InboundId.Value); AutoMapper.Mapper.Map(productInbound, modelproductInbound); modelproductInbound.CreatedUserName = userRepository.GetUserById(modelproductInbound.CreatedUserId.Value).FullName; } if (requestInbound.OutboundId != null && requestInbound.OutboundId.Value > 0) { productOutbound = productOutboundRepository.GetvwProductOutboundFullById(requestInbound.OutboundId.Value); AutoMapper.Mapper.Map(productOutbound, modelproductOutbound); modelproductOutbound.CreatedUserName = userRepository.GetUserById(modelproductOutbound.CreatedUserId.Value).FullName; } } ViewBag.productInbound = modelproductInbound; ViewBag.productOutbound = modelproductOutbound; AutoMapper.Mapper.Map(requestInbound, model); model.CreatedUserName = userRepository.GetUserById(requestInbound.CreatedUserId.Value).FullName; model.DetailList = RequestInboundRepository.GetAllvwRequestInboundDetailsByInvoiceId(requestInbound.Id).AsEnumerable().Select(x => new RequestInboundDetailViewModel { Id = x.Id, Price = x.Price, ProductId = x.ProductId, Quantity = x.Quantity, Unit = x.Unit, CategoryCode = x.CategoryCode, ProductName = x.ProductName, ProductCode = x.ProductCode, ProductGroup = x.ProductGroup, Manufacturer = x.Manufacturer, ProductBarCode = x.ProductBarCode, RequestInboundId = x.RequestInboundId, QuantityRemaining = x.QuantityRemaining, ProductGroupName = x.ProductGroupName, Image_Name = x.Image_Name }).OrderBy(x => x.Id).ToList(); var warehouse = WarehouseRepository.GetAllWarehouse().Where(x => x.IsSale == true && x.BranchId == null).ToList(); if (warehouse.Count() > 0) { // var wh = warehouse.FirstOrDefault().Id; var productList = Domain.Helper.SqlHelper.QuerySP <InventoryViewModel>("spSale_Get_Inventory", new { WarehouseId = "", HasQuantity = "1", ProductCode = "", ProductName = "", CategoryCode = "", ProductGroup = "", BranchId = "", LoCode = "", ProductId = "", ExpiryDate = "" }); productList = productList.Where(id1 => warehouse.Any(id2 => id2.Id == id1.WarehouseId)).ToList(); foreach (var item in model.DetailList) { var quantity = productList.Where(x => x.ProductId == item.ProductId).Sum(x => x.Quantity); item.QuantityInventoryKT = quantity == null ? 0 : quantity; item.QuantityNotCondition = item.QuantityInventoryKT <= 0 ? 1 : 0; } } var ProductInvoiceList = SqlHelper.QuerySP <ProductInvoiceViewModel>("spSale_LiabilitiesDrugStore", new { StartDate = "", EndDate = "", branchId = model.BranchId, CityId = "", DistrictId = "" }).ToList(); //var inbound = productInboundRepository.GetAllProductInbound().Where(x => x.BranchId == model.BranchId&&x.IsArchive==true).Sum(x => x.TotalAmount); model.Liabilities = 0; var invoice = ProductInvoiceList.Where(x => x.AccountancyUserId == null).Sum(x => x.TotalAmount); model.Liabilities = invoice; model.MaxDebitAmount = branchRepository.GetBranchById(model.BranchId.Value).MaxDebitAmount; var tonkho = Domain.Helper.SqlHelper.QuerySP <InventoryViewModel>("spSale_Get_Inventory", new { WarehouseId = model.WarehouseDestinationId, HasQuantity = "1", ProductCode = "", ProductName = "", CategoryCode = "", ProductGroup = "", BranchId = "", LoCode = "", ProductId = "", ExpiryDate = "" }).ToList(); model.DinhMucKho = tonkho.Sum(x => x.Quantity * x.ProductPriceOutbound) + invoice; //var user = userRepository.GetUserById(WebSecurity.CurrentUserId); //ViewBag.User = user; return(View(model)); }
public ActionResult Detail(int?Id) { var model = new RequestInboundViewModel(); var modelproductInbound = new ProductInboundViewModel(); var modelproductOutbound = new ProductOutboundViewModel(); var requestInbound = new vwRequestInbound(); var productInbound = new vwProductInbound(); var productOutbound = new vwProductOutbound(); if (Id != null && Id.Value > 0) { requestInbound = RequestInboundRepository.GetvwRequestInboundById(Id.Value); if (requestInbound.InboundId != null && requestInbound.InboundId.Value > 0) { productInbound = productInboundRepository.GetvwProductInboundById(requestInbound.InboundId.Value); AutoMapper.Mapper.Map(productInbound, modelproductInbound); modelproductInbound.CreatedUserName = userRepository.GetUserById(modelproductInbound.CreatedUserId.Value).FullName; } if (requestInbound.OutboundId != null && requestInbound.OutboundId.Value > 0) { productOutbound = productOutboundRepository.GetvwProductOutboundById(requestInbound.OutboundId.Value); AutoMapper.Mapper.Map(productOutbound, modelproductOutbound); modelproductOutbound.CreatedUserName = userRepository.GetUserById(modelproductOutbound.CreatedUserId.Value).FullName; } } ViewBag.productInbound = modelproductInbound; ViewBag.productOutbound = modelproductOutbound; AutoMapper.Mapper.Map(requestInbound, model); model.CreatedUserName = userRepository.GetUserById(requestInbound.CreatedUserId.Value).FullName; model.DetailList = RequestInboundRepository.GetAllvwRequestInboundDetailsByInvoiceId(requestInbound.Id).AsEnumerable().Select(x => new RequestInboundDetailViewModel { Id = x.Id, Price = x.Price, ProductId = x.ProductId, Quantity = x.Quantity, Unit = x.Unit, CategoryCode = x.CategoryCode, ProductName = x.ProductName, ProductCode = x.ProductCode, ProductGroup = x.ProductGroup, Manufacturer = x.Manufacturer, ProductBarCode = x.ProductBarCode, RequestInboundId = x.RequestInboundId, QuantityRemaining = x.QuantityRemaining, Image_Name = Erp.BackOffice.Helpers.Common.KiemTraTonTaiHinhAnh(x.Image_Name, "product-image-folder", "product") }).ToList(); model.GroupProduct = model.DetailList.GroupBy(x => new { x.ProductGroup }, (key, group) => new RequestInboundDetailViewModel { ProductGroup = key.ProductGroup, ProductId = group.FirstOrDefault().ProductId, Id = group.FirstOrDefault().Id }).ToList(); foreach (var item in model.GroupProduct) { if (!string.IsNullOrEmpty(item.ProductGroup)) { var ProductGroupName = categoryRepository.GetCategoryByCode("Categories_product").Where(x => x.Value == item.ProductGroup).FirstOrDefault(); item.ProductGroupName = ProductGroupName.Name; } } var user = userRepository.GetUserById(WebSecurity.CurrentUserId); ViewBag.User = user; return(View(model)); }