public ActionResult ReturnToProvider(int id) { var ctx = new SmsContext(); var refund = ctx.TRA_HANG.Find(id); if (refund.ACTIVE != "A") { ctx.Dispose(); return(RedirectToAction("ReturnPurchaseList", new { @inforMessage = "Không tìm thấy phiếu trả hàng nào tương ứng." })); } var refundDetail = ctx.SP_GET_REFUND_DETAIL(id).ToList <SP_GET_REFUND_DETAIL_Result>(); ReturnToProviderModel model = new ReturnToProviderModel(); model.Infor = refund; model.Detail = refundDetail; var providers = ctx.NHA_CUNG_CAP.Where(u => u.ACTIVE == "A").ToList <NHA_CUNG_CAP>(); ViewBag.Providers = providers; ctx.Dispose(); return(View(model)); }
public ActionResult ReturnToProvider(ReturnToProviderModel model) { var ctx = new SmsContext(); var refund = ctx.TRA_HANG.Find(model.Infor.MA_TRA_HANG); if (refund.RETURN_FLG != null && (bool)refund.RETURN_FLG) { ctx.Dispose(); return(RedirectToAction("ReturnPurchaseList", new { @message = "Phiếu trả hàng này đã được lập phiếu trả cho nhà cung cấp, vui lòng liên hệ admin." })); } 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 { var returnToProvider = ctx.TRA_HANG_NCC.Create(); returnToProvider.MA_PHIEU_TRA = refund.MA_TRA_HANG; returnToProvider.NGUOI_LAP_PHIEU = Convert.ToInt32(Session["UserId"]); returnToProvider.MA_NHA_CUNG_CAP = Convert.ToInt32(model.ProviderId); returnToProvider.GHI_CHU = model.Note; returnToProvider.NGAY_LAP_PHIEU = model.ReturnDate; returnToProvider.CREATE_AT = DateTime.Now; returnToProvider.UPDATE_AT = DateTime.Now; returnToProvider.CREATE_BY = Convert.ToInt32(Session["UserId"]); returnToProvider.UPDATE_BY = Convert.ToInt32(Session["UserId"]); returnToProvider.ACTIVE = "A"; ctx.TRA_HANG_NCC.Add(returnToProvider); ctx.SaveChanges(); refund.RETURN_FLG = true; TRA_HANG_NCC_CHI_TIET ct; foreach (var detail in model.Detail) { if (detail.DEL_FLG == 1 || detail.SO_LUONG_TRA < detail.SO_LUONG_TON) { refund.RETURN_FLG = true; } if (detail.DEL_FLG != 1) { ct = ctx.TRA_HANG_NCC_CHI_TIET.Create(); ct.MA_PHIEU_TRA_NCC = returnToProvider.ID; ct.MA_SAN_PHAM = detail.MA_SAN_PHAM; ct.SO_LUONG = detail.SO_LUONG_TRA; ct.UPDATE_AT = DateTime.Now; ct.CREATE_AT = DateTime.Now; ct.UPDATE_BY = Convert.ToInt32(Session["UserId"]); ct.CREATE_BY = Convert.ToInt32(Session["UserId"]); ct.ACTIVE = "A"; //ct.DON_GIA = ct.DON_GIA = detail.GIA_VON; ctx.TRA_HANG_NCC_CHI_TIET.Add(ct); ctx.SaveChanges(); } } refund.UPDATE_AT = DateTime.Now; refund.UPDATE_BY = Convert.ToInt32(Session["UserId"]); ctx.SaveChanges(); transaction.Complete(); ctx.Dispose(); return(RedirectToAction("ListOfToProvider", "TraHang", new { @inforMessage = "Lập phiếu trả hàng đến nhà cung cấp thành công." })); } catch (Exception) { Transaction.Current.Rollback(); ctx.Dispose(); return(RedirectToAction("ListOfToProvider", "TraHang", new { @message = "Lập phiếu trả hàng đến nhà cung cấp thất bại, vui lòng liên hệ admin." })); } } }