public ActionResult Update(PreOrderMasterModel model, List <OrderDetailViewModel> detail) { try { if (ModelState.IsValid) { using (TransactionScope ts = new TransactionScope()) { //_context.Entry(model).State = System.Data.Entity.EntityState.Modified; Chỉ Modified những filed cần thiết var PreOrderDetail = _context.PreOrderDetailModel .Where(p => p.PreOrderId == model.PreOrderId).ToList(); // Xoá những Detail cũ if (PreOrderDetail != null && PreOrderDetail.Count > 0) { foreach (var item in PreOrderDetail) { _context.Entry(item).State = System.Data.Entity.EntityState.Deleted; } } #region // Update lại những filed cần Modified cho Model Master //PreOrderMastermodel.PreOrderId = model.PreOrderId; //PreOrderMastermodel.WarehouseId = model.WarehouseId; //PreOrderMastermodel.BillDiscountTypeId = model.BillDiscountTypeId; //PreOrderMastermodel.BillDiscount = model.BillDiscount; //PreOrderMastermodel.BillVAT = model.BillVAT; //PreOrderMastermodel.SaleName = model.SaleName; //PreOrderMastermodel.DebtDueDate = model.DebtDueDate; //PreOrderMastermodel.PaymentMethodId = model.PaymentMethodId; //PreOrderMastermodel.Paid = model.Paid; //PreOrderMastermodel.MoneyTransfer = model.MoneyTransfer; //PreOrderMastermodel.CompanyName = model.CompanyName; //PreOrderMastermodel.TaxBillCode = model.TaxBillCode; //PreOrderMastermodel.ContractNumber = model.ContractNumber; //PreOrderMastermodel.TaxBillDate = model.TaxBillDate; //PreOrderMastermodel.CustomerId = model.CustomerId; //PreOrderMastermodel.FullName = model.FullName; //PreOrderMastermodel.IdentityCard = model.IdentityCard; //PreOrderMastermodel.FullName = model.FullName; //PreOrderMastermodel.Phone = model.Phone; //PreOrderMastermodel.FullName = model.FullName; //PreOrderMastermodel.Gender = model.Gender; //PreOrderMastermodel.ProvinceId = model.ProvinceId; //PreOrderMastermodel.DistrictId = model.DistrictId; //PreOrderMastermodel.Address = model.Address; //PreOrderMastermodel.Email = model.Email; //PreOrderMastermodel.Note = model.Note; //PreOrderMastermodel.TotalPrice = model.TotalPrice; //PreOrderMastermodel.LastModifiedDate = DateTime.Now; //PreOrderMastermodel.LastModifiedAccount = currentAccount.UserName; //PreOrderMastermodel.OrderStatusId = EnumOrderStatus.KhoiTao; #endregion // đánh dấu sửa OrderMastermodel _context.Entry(model).State = System.Data.Entity.EntityState.Modified; _context.SaveChanges(); if (detail != null) { foreach (var item in detail) { PreOrderDetailModel detailmodel = new PreOrderDetailModel() { PreOrderDetailId = item.OrderDetailId, PreOrderId = model.PreOrderId, ProductId = item.ProductId, Quantity = item.Quantity, Price = item.Price, DiscountTypeId = item.DiscountTypeId, Discount = item.Discount, UnitDiscount = item.UnitDiscount, UnitPrice = item.UnitPrice, }; _context.Entry(detailmodel).State = System.Data.Entity.EntityState.Added; } } _context.SaveChanges(); ts.Complete(); return(Content("success")); } } else { return(Content("Vui lòng kiểm tra lại thông tin không hợp lệ")); } } catch (Exception ex) { return(Content("Lỗi hệ thống" + ex.Message)); } }
public ActionResult Save(PreOrderMasterModel model, List <OrderDetailViewModel> detail, decimal?GuestAmountPaid, decimal?TotalBillDiscount, decimal?TotalVAT, int CreateReceipt = 1) { try { if (ModelState.IsValid) { using (TransactionScope ts = new TransactionScope()) { model.CreatedDate = DateTime.Now; model.CreatedAccount = currentAccount.UserName; model.OrderStatusId = EnumOrderStatus.KhoiTao; AccountModel Account = _context.AccountModel.Where(p => p.UserName == model.CreatedAccount).FirstOrDefault(); model.CreatedEmployeeId = Account.EmployeeId; model.SaleName = Account.EmployeeModel.FullName; model.StatusCode = "TAOMOI"; //// Tìm giá trị STT order code model.PreOrderCode = GetOrderCode(); if (model.PaymentMethodId == EnumPamentMethod.TienMat) { model.Paid = GuestAmountPaid; model.MoneyTransfer = 0; } else if (model.PaymentMethodId == EnumPamentMethod.ChuyenKhoan) { model.Paid = 0; model.MoneyTransfer = GuestAmountPaid; } else if (model.PaymentMethodId == EnumPamentMethod.CongNo) { model.Paid = 0; model.MoneyTransfer = 0; } else { return(Content("Phương thức thanh toán không hợp lệ !")); } _context.Entry(model).State = System.Data.Entity.EntityState.Added; _context.SaveChanges(); //_context.SaveChanges(); if (detail != null) { if (detail.GroupBy(p => p.ProductId).ToList().Count < detail.Count) { //khong duoc trung san pham return(Content("Vui lòng không chọn thông tin sản phẩm trùng nhau")); } foreach (var item in detail) { #region Thêm giá vốn decimal?COGS = _context.ProductModel.Where(p => p.ProductId == item.ProductId).Select(p => p.COGS).FirstOrDefault(); item.COGS = COGS ?? 0; #endregion EndInventoryRepository EndInventoryRepo = new EndInventoryRepository(_context); decimal TonCuoiTrongHeThong = EndInventoryRepo.GetQty(item.ProductId.Value); if (item.Quantity > TonCuoiTrongHeThong) { return(Content(string.Format("Vui lòng chọn số lượng sản phẩm ' {0} ' nhỏ hơn hoặc bằng trong kho", item.ProductName))); } PreOrderDetailModel detailmodel = new PreOrderDetailModel() { PreOrderId = model.PreOrderId, ProductId = item.ProductId, Quantity = item.Quantity, Price = item.Price, DiscountTypeId = item.DiscountTypeId, Discount = item.Discount, UnitDiscount = item.UnitDiscount, UnitPrice = item.UnitPrice, Note = item.Note, COGS = item.COGS }; _context.Entry(detailmodel).State = System.Data.Entity.EntityState.Added; } // Cập nhật lại Tổng giá vốn model.SumCOGSOfOrderDetail = detail.Sum(p => p.COGS); model.TotalDiscount = TotalBillDiscount; model.TotalVAT = TotalVAT; _context.Entry(model).State = System.Data.Entity.EntityState.Modified; _context.SaveChanges(); ts.Complete(); return(Content("success")); } else { //chua nhap tt san pham return(Content("Vui lòng chọn thông tin sản phẩm")); } } } else { return(Content("Vui lòng kiểm tra lại thông tin không hợp lệ")); } } catch { return(Content("Xảy ra lỗi trong quá trình thêm mới đơn hàng")); } }