public ActionResult Edit(int id) { if (id < 0) { return(RedirectToAction("Index", "HoaDon", new { @message = "Không tìm thấy hóa đơn này." })); } var ctx = new SmsContext(); var Infor = ctx.SP_GET_BILL_INFOR(id).FirstOrDefault(); if (Infor == null) { return(RedirectToAction("Index", "HoaDon", new { @message = "Không tìm thấy hóa đơn này." })); } var details = ctx.SP_GET_BILL_DETAIL_BY_ID(id).ToList <SP_GET_BILL_DETAIL_BY_ID_Result>(); var stores = ctx.KHOes.Where(u => u.ACTIVE == "A").ToList(); var units = ctx.DON_VI_TINH.Where(u => u.ACTIVE == "A").ToList(); EditHoaDonBanHang model = new EditHoaDonBanHang(); model.Store = stores; model.Units = units; model.Infor = Infor; model.Details = details; ctx.Dispose(); return(View(model)); }
public ActionResult Edit(EditHoaDonBanHang model) { var ctx = new SmsContext(); var infor = ctx.HOA_DON.Find(model.Infor.MA_HOA_DON); if (infor == null || infor.ACTIVE != "A") { return(RedirectToAction("Index", "HoaDon", new { @message = "Không tìm thấy hóa đơn này." })); } if (infor.STATUS > 1) { return(RedirectToAction("Index", "HoaDon", new { @message = "Hóa đơn đã được thu tiền. Bạn không được phép sửa hóa đơn này." })); } TransactionOptions transOptions = new TransactionOptions(); transOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; transOptions.Timeout = TransactionManager.MaximumTimeout; using (var transaction = new System.Transactions.TransactionScope(TransactionScopeOption.Required, transOptions)) { try { infor.MA_KHACH_HANG = model.Infor.MA_KHACH_HANG; if (infor.MA_KHACH_HANG == null || infor.MA_KHACH_HANG <= 0) { infor.TEN_KHACH_HANG = model.Infor.TEN_KHACH_HANG; } infor.NGAY_BAN = model.Infor.NGAY_BAN; infor.NGAY_GIAO = model.Infor.NGAY_GIAO; infor.SO_DIEN_THOAI = model.Infor.SO_DIEN_THOAI; infor.DIA_CHI_GIAO_HANG = model.Infor.DIA_CHI_GIAO_HANG; infor.UPDATE_AT = DateTime.Now; infor.UPDATE_BY = Convert.ToInt32(Session["UserId"]); ctx.SaveChanges(); ctx.CHI_TIET_HOA_DON.RemoveRange(ctx.CHI_TIET_HOA_DON.Where(x => x.MA_HOA_DON == model.Infor.MA_HOA_DON)); CHI_TIET_HOA_DON ct; foreach (var detail in model.Details) { if (detail.DEL_FLG != 1 && detail.MA_SAN_PHAM != null && !string.IsNullOrWhiteSpace(detail.MA_SAN_PHAM.ToString())) { ct = ctx.CHI_TIET_HOA_DON.Create(); ct.MA_HOA_DON = infor.MA_HOA_DON; ct.MA_SAN_PHAM = detail.MA_SAN_PHAM; ct.SO_LUONG_TEMP = detail.SO_LUONG; ct.SO_LUONG = detail.SO_LUONG * detail.HE_SO; ct.DON_GIA_TEMP = (double)detail.DON_GIA; ct.DON_GIA = (double)detail.DON_GIA / detail.HE_SO; ct.PHAN_TRAM_CHIEC_KHAU = detail.PHAN_TRAM_CHIEC_KHAU; ct.MA_DON_VI = detail.MA_DON_VI; ct.MA_KHO_XUAT = detail.MA_KHO_XUAT; ct.CREATE_AT = DateTime.Now; ct.CREATE_BY = Convert.ToInt32(Session["UserId"]); ct.UPDATE_AT = DateTime.Now; ct.UPDATE_BY = Convert.ToInt32(Session["UserId"]); ct.ACTIVE = "A"; ctx.CHI_TIET_HOA_DON.Add(ct); ctx.SaveChanges(); } } transaction.Complete(); ctx.Dispose(); return(RedirectToAction("Index", "HoaDon", new { @inforMessage = "Lưu hóa đơn bán hàng thành công." })); } catch (Exception ex) { Console.Write(ex.ToString()); Transaction.Current.Rollback(); ctx.Dispose(); return(RedirectToAction("Index", "HoaDon", new { @message = "Lưu hóa đơn thất bại. Vui lòng liên hệ admin." })); } } }