public ActionResult UnArchive(int Id) { if (Request["Submit"] == "Save") { var rePayPoints = RePayPointsService.Get(Id); //Kiểm tra cho phép sửa chứng từ này hay không if (Helpers.Common.KiemTraNgaySuaChungTu(rePayPoints.CreatedDate.Value) == false) { TempData[Globals.FailedMessageKey] = "Quá hạn sửa chứng từ!"; } else { //cập nhật trạng thái rePayPoints.ModifiedUserId = WebSecurity.CurrentUserId; rePayPoints.ModifiedDate = DateTime.Now; rePayPoints.IsArchive = false; rePayPoints.Status = RePayPointsStatus.Inprogress; RePayPointsService.Update(rePayPoints); // xoá lịch sử điểm và cập nhật lại điểm cho khách hàng DeletePoint(rePayPoints); // bỏ ghi sổ phiếu xuất kho var ProductOutbound = ProductOutboundRepository.GetAllProductOutbound().Where(item => item.IsArchive == true && item.Type == ProductOutboundType.Gift && item.PayPointId == rePayPoints.Id).FirstOrDefault(); if (ProductOutbound != null) { ProductOutboundController.unArchiveFromInvoice(ProductOutboundRepository, ProductOutbound, TempData); // xoá phiếu xuất kho ProductOutbound.ModifiedUserId = WebSecurity.CurrentUserId; ProductOutbound.ModifiedDate = DateTime.Now; ProductOutbound.IsDeleted = true; ProductOutbound.CancelReason = "Bỏ ghi số đơn quà tặng - " + rePayPoints.Code; ProductOutboundRepository.UpdateProductOutbound(ProductOutbound); } PostController.SavePost(rePayPoints.Id, "RePayPoints", "Bỏ ghi sổ (" + rePayPoints.Code + ")"); TempData[Globals.SuccessMessageKey] = "Đã bỏ ghi sổ"; } } return(RedirectToAction("Detail", new { Id = Id })); }
public ActionResult Exchange(int Id) { var PhysicalInventory = PhysicalInventoryRepository.GetPhysicalInventoryById(Id); if (PhysicalInventory == null) { TempData[Globals.FailedMessageKey] = App_GlobalResources.Wording.NotfoundObject; if (PhysicalInventory.Type == PhysicalInventoryType.Product) { return(RedirectToAction("Index")); } else { return(RedirectToAction("ListForCard")); } } List <ProductOutboundDetail> outboundDetails = new List <ProductOutboundDetail>(); List <ProductInboundDetail> inboundDetails = new List <ProductInboundDetail>(); var listDetail = PhysicalInventoryRepository.GetAllPhysicalInventoryDetail(Id).Where(x => x.QuantityInInventory != x.QuantityRemaining).ToList(); foreach (var item in listDetail) { var product = ProductRepository.GetProductById(item.ProductId); if (item.QuantityDiff < 0) //Chênh lệch dương thì thuộc về xuất { outboundDetails.Add( new ProductOutboundDetail { IsDeleted = false, CreatedDate = DateTime.Now, CreatedUserId = Helpers.Common.CurrentUser.Id, ModifiedDate = DateTime.Now, ModifiedUserId = Helpers.Common.CurrentUser.Id, Price = product.PriceOutbound, ProductId = product.Id, Quantity = Math.Abs(item.QuantityDiff), } ); } else if (item.QuantityDiff > 0) //Chênh lệch âm thì thuộc về nhập { inboundDetails.Add( new ProductInboundDetail { IsDeleted = false, CreatedDate = DateTime.Now, CreatedUserId = Helpers.Common.CurrentUser.Id, ModifiedDate = DateTime.Now, ModifiedUserId = Helpers.Common.CurrentUser.Id, Price = product.PriceInbound.Value, ProductId = product.Id, Quantity = Math.Abs(item.QuantityDiff), } ); } } if (outboundDetails.Count != 0) { var outbound = new ProductOutbound { IsDeleted = false, CreatedDate = DateTime.Now, CreatedUserId = Helpers.Common.CurrentUser.Id, ModifiedDate = DateTime.Now, ModifiedUserId = Helpers.Common.CurrentUser.Id, BranchId = Helpers.Common.CurrentUser.BranchId, IsDone = true, Type = PhysicalInventory.Type == PhysicalInventoryType.Product ? ProductOutboundType.Physical : ProductOutboundType.PhysicalCard, TotalAmount = outboundDetails.Sum(x => x.Quantity * x.Price), WarehouseSourceId = PhysicalInventory.WarehouseId, PhysicalInventoryId = PhysicalInventory.Id, Note = "Xuất kho kiểm kê" }; productOutboundRepository.InsertProductOutbound(outbound); foreach (var item in outboundDetails) { item.ProductOutboundId = outbound.Id; item.IsDeleted = false; item.CreatedUserId = WebSecurity.CurrentUserId; item.ModifiedUserId = WebSecurity.CurrentUserId; item.CreatedDate = DateTime.Now; item.ModifiedDate = DateTime.Now; productOutboundRepository.InsertProductOutboundDetail(item); } //cập nhật lại mã xuất kho outbound.Code = Erp.BackOffice.Helpers.Common.GetOrderNo("ProductOutbound"); productOutboundRepository.UpdateProductOutbound(outbound); Erp.BackOffice.Helpers.Common.SetOrderNo("ProductOutbound"); foreach (var item in listDetail.Where(x => x.QuantityDiff < 0)) { item.ModifiedDate = DateTime.Now; item.ModifiedUserId = Helpers.Common.CurrentUser.Id; item.ReferenceVoucher = outbound.Code; PhysicalInventoryRepository.UpdatePhysicalInventoryDetail(item); } ProductOutboundController.Archive(productOutboundRepository, outbound, TempData); } if (inboundDetails.Count != 0) { var inbound = new ProductInbound { IsDeleted = false, CreatedDate = DateTime.Now, CreatedUserId = Helpers.Common.CurrentUser.Id, ModifiedDate = DateTime.Now, ModifiedUserId = Helpers.Common.CurrentUser.Id, BranchId = Helpers.Common.CurrentUser.BranchId, IsDone = true, Type = PhysicalInventory.Type == PhysicalInventoryType.Product ? ProductInboundType.Physical : ProductInboundType.PhysicalCard, TotalAmount = inboundDetails.Sum(x => x.Quantity * x.Price), WarehouseDestinationId = PhysicalInventory.WarehouseId, PhysicalInventoryId = PhysicalInventory.Id, Note = "Nhập kho kiểm kê" }; productInboundRepository.InsertProductInbound(inbound); //Thêm chi tiết phiếu nhập foreach (var item in inboundDetails) { item.ProductInboundId = inbound.Id; item.IsDeleted = false; item.CreatedUserId = WebSecurity.CurrentUserId; item.ModifiedUserId = WebSecurity.CurrentUserId; item.CreatedDate = DateTime.Now; item.ModifiedDate = DateTime.Now; productInboundRepository.InsertProductInboundDetail(item); } //cập nhật lại mã xuất kho inbound.Code = Erp.BackOffice.Helpers.Common.GetOrderNo("ProductInbound"); productInboundRepository.UpdateProductInbound(inbound); Erp.BackOffice.Helpers.Common.SetOrderNo("ProductInbound"); foreach (var item in listDetail.Where(x => x.QuantityDiff > 0)) { item.ModifiedDate = DateTime.Now; item.ModifiedUserId = Helpers.Common.CurrentUser.Id; item.ReferenceVoucher = inbound.Code; PhysicalInventoryRepository.UpdatePhysicalInventoryDetail(item); } ProductInboundController.Archive(productInboundRepository, inbound, TempData); } PhysicalInventory.IsExchange = true; PhysicalInventory.ModifiedDate = DateTime.Now; PhysicalInventory.ModifiedUserId = Helpers.Common.CurrentUser.Id; PhysicalInventoryRepository.UpdatePhysicalInventory(PhysicalInventory); TempData[Globals.SuccessMessageKey] += App_GlobalResources.Wording.Success; return(RedirectToAction("Detail", new { Id = PhysicalInventory.Id })); }
public ActionResult Create(MemberCardViewModel model, bool?IsInvoice) { if (ModelState.IsValid) { var MemberCard = MemberCardService.GetMemberCardByCode(model.Code); if (MemberCard != null) { TempData[Globals.FailedMessageKey] = "Mã thẻ đã được cấp"; return(RedirectToAction("Create", new { CustomerId = model.CustomerId, IsPopup = true, IsInvoice = IsInvoice })); } var customer = CustomerRepository.GetCustomerById(model.CustomerId.Value); var MemberCardType = MemberCardTypeService.MemberCardTypeGetById(model.MemberCardTypeId.Value); ProductOutboundController.CreateForMemberCard(TempData, MemberCardType.CardId, Helpers.Common.CurrentUser.BranchId, customer.Name, customer.Code); if (TempData[Globals.FailedMessageKey] != null) { return(RedirectToAction("Create", new { CustomerId = model.CustomerId, IsPopup = true, IsInvoice = IsInvoice })); } if (customer.MemberCardId != null) { var memberCard_Before = MemberCardService.GetMemberCardById(customer.MemberCardId.Value); if (memberCard_Before != null) { memberCard_Before.Status = MemberCardViewModel.Inactive; MemberCardService.Update(memberCard_Before); } } MemberCard = new MemberCard(); AutoMapper.Mapper.Map(model, MemberCard); SetModifier(MemberCard); MemberCard.DateOfIssue = DateTime.Now; MemberCard.Status = MemberCardViewModel.Active; MemberCardService.Create(MemberCard); //Thay đổi thẻ cho khách hàng customer.MemberCardId = MemberCard.Id; CustomerRepository.UpdateCustomer(customer); TempData[Globals.SuccessMessageKey] += App_GlobalResources.Wording.InsertSuccess; if (IsInvoice == true) { ViewBag.closePopup = "close Popup"; model.ListMemberCardType = MemberCardTypeService.Get() .Select(item => new MemberCardTypeViewModel { Id = item.Id, Name = item.Name, Image = item.Image }) .OrderBy(item => item.Name) .ToList(); return(View(model)); } if (Request["IsPopup"] != null && Request["IsPopup"].ToString().ToLower().Equals("true")) { return(RedirectToAction("_ClosePopup", "Home", new { area = "", FunctionCallback = "ClosePopupAndReloadPage" })); } return(RedirectToAction("Index")); } return(View(model)); }
public ActionResult Create(RePayPointsViewModel model) { if (ModelState.IsValid && model.DetailList.Count != 0) { RePayPoints rePayPoints = null; if (model.Id > 0) { rePayPoints = RePayPointsService.Get(model.Id); } if (rePayPoints != null) { #region Cập nhật //Nếu đã ghi sổ rồi thì không được sửa if (rePayPoints.IsArchive == true) { TempData[Globals.FailedMessageKey] = "Đã ghi sổ. không được chỉnh sửa"; return(RedirectToAction("Detail", new { Id = rePayPoints.Id })); } //Kiểm tra xem nếu có xuất kho rồi thì return var checkProductOutbound = ProductOutboundRepository.GetAllProductOutbound() .Where(item => item.Type == ProductOutboundType.Gift && item.PayPointId == rePayPoints.Id).FirstOrDefault(); if (checkProductOutbound != null) { TempData[Globals.FailedMessageKey] = "Phiếu xuất kho đã có!"; return(RedirectToAction("Detail", new { Id = rePayPoints.Id })); } AutoMapper.Mapper.Map(model, rePayPoints); rePayPoints.ModifiedUserId = WebSecurity.CurrentUserId; rePayPoints.ModifiedDate = DateTime.Now; rePayPoints.Status = RePayPointsStatus.Pending; rePayPoints.BranchId = Helpers.Common.CurrentUser.BranchId; rePayPoints.IsArchive = false; RePayPointsService.Update(rePayPoints); //Xóa chi tiết cũ và thêm chi tiết mới var listDetail_old = RePayPointsDetailService.GetRePayPointsDetailByPayPointId(rePayPoints.Id).ToList(); foreach (var item in listDetail_old) { RePayPointsDetailService.Delete(item); } foreach (var item in model.DetailList) { RePayPointsDetail rePayPointsDetail = new RePayPointsDetail(); AutoMapper.Mapper.Map(item, rePayPointsDetail); rePayPointsDetail.RePayPointId = rePayPoints.Id; rePayPointsDetail.IsDeleted = false; rePayPointsDetail.CreatedUserId = WebSecurity.CurrentUserId; rePayPointsDetail.ModifiedUserId = WebSecurity.CurrentUserId; rePayPointsDetail.CreatedDate = DateTime.Now; rePayPointsDetail.ModifiedDate = DateTime.Now; RePayPointsDetailService.Create(rePayPointsDetail); } #endregion } else// Thêm mới { #region MyRegion rePayPoints = new RePayPoints(); AutoMapper.Mapper.Map(model, rePayPoints); rePayPoints.IsDeleted = false; rePayPoints.CreatedUserId = WebSecurity.CurrentUserId; rePayPoints.ModifiedUserId = WebSecurity.CurrentUserId; rePayPoints.CreatedDate = DateTime.Now; rePayPoints.ModifiedDate = DateTime.Now; rePayPoints.Status = RePayPointsStatus.Pending; rePayPoints.BranchId = Helpers.Common.CurrentUser.BranchId; rePayPoints.IsArchive = false; RePayPointsService.Create(rePayPoints); //Cập nhật lại mã xuất kho rePayPoints.Code = Erp.BackOffice.Helpers.Common.GetOrderNo("RepayPoints", model.Code); RePayPointsService.Update(rePayPoints); Erp.BackOffice.Helpers.Common.SetOrderNo("RepayPoints"); foreach (var item in model.DetailList) { RePayPointsDetail rePayPointsDetail = new RePayPointsDetail(); AutoMapper.Mapper.Map(item, rePayPointsDetail); rePayPointsDetail.IsDeleted = false; rePayPointsDetail.CreatedUserId = WebSecurity.CurrentUserId; rePayPointsDetail.ModifiedUserId = WebSecurity.CurrentUserId; rePayPointsDetail.CreatedDate = DateTime.Now; rePayPointsDetail.ModifiedDate = DateTime.Now; rePayPointsDetail.RePayPointId = rePayPoints.Id; RePayPointsDetailService.Create(rePayPointsDetail); } //Thêm vào quản lý chứng từ TransactionController.Create(new TransactionViewModel { TransactionModule = "RePayPoints", TransactionCode = rePayPoints.Code, TransactionName = "Trả điểm" }); #endregion } //Tạo phiếu nhập, nếu là tự động string sale_tu_dong_tao_chung_tu = Erp.BackOffice.Helpers.Common.GetSetting("sale_auto_outbound"); if (sale_tu_dong_tao_chung_tu == "true") { ProductOutboundViewModel productOutboundViewModel = new ProductOutboundViewModel(); // var warehouseDefault = WarehouseRepository.GetAllWarehouse().Where(x => x.BranchId == Helpers.Common.CurrentUser.BranchId && x.IsSale == true).FirstOrDefault(); //Nếu trong đơn hàng có sản phẩm thì xuất kho if (model.WarehouseSourceId != null) { productOutboundViewModel.PayPointId = rePayPoints.Id; productOutboundViewModel.PayPointCode = rePayPoints.Code; productOutboundViewModel.WarehouseSourceId = model.WarehouseSourceId; productOutboundViewModel.Note = "Xuất kho cho đơn trả điểm " + rePayPoints.Code; // lấy các danh sách không Xuất kho var productNoInbound = ProductRepository.GetAllProduct().Where(x => x.Type == ProductType.Gift && x.NoInbound == true).ToList(); //Lấy dữ liệu cho chi tiết productOutboundViewModel.DetailList = model.DetailList.Where(x => !productNoInbound.Any(y => y.Id == x.GiftId)).Select(x => new ProductOutboundDetailViewModel { ProductId = x.GiftId, Quantity = x.Quantity, Price = 0, Unit = x.Unit, }).ToList(); var productOutbound = ProductOutboundController.CreateFromPayPoint(ProductOutboundRepository, productOutboundViewModel, rePayPoints.Code, TempData); PostController.SavePost(rePayPoints.Id, "RePayPoints", "Xuất kho trả điểm (" + productOutbound.Code + ")"); } //Ghi sổ chứng từ bán hàng model.Id = rePayPoints.Id; Archive(model); } return(RedirectToAction("Detail", new { Id = rePayPoints.Id })); } return(View(model)); }
public ActionResult Create(CustomerViewModel model, bool?IsAppend) { if (ModelState.IsValid) { //Tạo thẻ cho khách hàng if (model.IsCreateCard == true) { if (model.MemberCardTypeId == null) { TempData[Globals.FailedMessageKey] = "Vui lòng chọn loại thẻ"; ViewBag.FailedMessage = TempData["FailedMessage"]; return(View(model)); } var MemberCard = MemberCardService.GetMemberCardByCode(model.MemberCardCode); if (MemberCard != null) { TempData[Globals.FailedMessageKey] = "Mã thẻ đã đã tồn tại, Vui lòng kiểm tra lại"; ViewBag.FailedMessage = TempData["FailedMessage"]; return(View(model)); } } var Customer = new Domain.Account.Entities.Customer(); AutoMapper.Mapper.Map(model, Customer); Customer.IsDeleted = false; Customer.CreatedUserId = WebSecurity.CurrentUserId; Customer.ModifiedUserId = WebSecurity.CurrentUserId; Customer.CreatedDate = DateTime.Now; Customer.ModifiedDate = DateTime.Now; Customer.BranchId = Helpers.Common.CurrentUser.BranchId; Customer.NameSearch = Helpers.Common.ChuyenThanhKhongDau(Customer.Name); Customer.Point = 0; Customer.PaidPoint = 0; Customer.RemainingPoint = 0; Customer.Frequency = 0; CustomerRepository.InsertCustomer(Customer); Customer.Code = Erp.BackOffice.Helpers.Common.GetOrderNo("Customer"); CustomerRepository.UpdateCustomer(Customer); Erp.BackOffice.Helpers.Common.SetOrderNo("Customer"); ////tạo liên hệ cho khách hàng //if (string.IsNullOrEmpty(model.FirstName) == false && string.IsNullOrEmpty(model.LastName) == false) //{ // var contact = new Domain.Account.Entities.Contact(); // AutoMapper.Mapper.Map(model, contact); // contact.IsDeleted = false; // contact.CreatedUserId = WebSecurity.CurrentUserId; // contact.ModifiedUserId = WebSecurity.CurrentUserId; // contact.CreatedDate = DateTime.Now; // contact.ModifiedDate = DateTime.Now; // contact.CustomerId = Customer.Id; // ContactRepository.InsertContact(contact); //} ////tạo đặc tính động cho sản phẩm nếu có danh sách đặc tính động truyền vào và đặc tính đó phải có giá trị //ObjectAttributeController.CreateOrUpdateForObject(Customer.Id, model.AttributeValueList); if (model.IsCreateCard == true) { var MemberCardType = MemberCardTypeService.MemberCardTypeGetById(model.MemberCardTypeId.Value); if (MemberCardType != null) { ProductOutboundController.CreateForMemberCard(TempData, MemberCardType.CardId, Helpers.Common.CurrentUser.BranchId, Customer.Name, Customer.Code); if (TempData[Globals.FailedMessageKey] != null) { TempData[Globals.FailedMessageKey] += "Chưa cấp được thẻ cho khách hàng! </br>"; } else { var memberCard = new MemberCard(); memberCard.IsDeleted = false; memberCard.CreatedUserId = WebSecurity.CurrentUserId; memberCard.CreatedDate = DateTime.Now; memberCard.DateOfIssue = DateTime.Now; memberCard.Status = MemberCardViewModel.Active; memberCard.Code = model.MemberCardCode; memberCard.CustomerId = Customer.Id; memberCard.MemberCardTypeId = MemberCardType.Id; MemberCardService.Create(memberCard); //Thay đổi thẻ cho khách hàng Customer.MemberCardId = memberCard.Id; CustomerRepository.UpdateCustomer(Customer); TempData[Globals.SuccessMessageKey] = App_GlobalResources.Wording.InsertSuccess; } } } if (IsAppend == true) { ViewBag.closePopup = "close and append to page parent"; model.Name = model.Name; model.Id = Customer.Id; return(View(model)); } if (Request["IsPopup"] != null && Request["IsPopup"].ToString().ToLower().Equals("true")) { return(RedirectToAction("_ClosePopup", "Home", new { area = "", FunctionCallback = "ClosePopupAndReloadPage" })); } return(RedirectToAction("Index")); } return(View(model)); }