/// <summary> /// 获取单据 /// </summary> /// <param name="billId"></param> /// <returns></returns> public async Task <ReturnBillModel> GetBillAsync(int billId, bool force = false, CancellationToken calToken = default) { var model = new ReturnBillModel(); try { int storeId = Settings.StoreId; int userId = Settings.UserId; var api = RefitServiceBuilder.Build <IReturnBillApi>(URL); var cacheKey = RefitServiceBuilder.Cacher("ReturnBillService.GetBillAsync", storeId, userId, billId); var results = await _makeRequest.StartUseCache(api.GetBillAsync(storeId, userId, billId, calToken), cacheKey, force, calToken); if (results != null && results?.Code >= 0) { model = results?.Data; } return(model); } catch (Exception e) { e.HandleException(); return(null); } }
public ViewResult EditGetReturn(int id) { var ctx = new SmsContext(); ReturnBillModel model = new ReturnBillModel(); var infor = ctx.SP_GET_RETURN_INFO_BY_ID(id).FirstOrDefault(); var detail = ctx.SP_GET_RETURN_DETAIL_BY_ID(id).ToList <SP_GET_RETURN_DETAIL_BY_ID_Result>(); model.Infor = infor; model.Detail = detail; var units = ctx.DON_VI_TINH.Where(u => u.ACTIVE == "A").ToList <DON_VI_TINH>(); model.Units = units; if (infor != null && infor.MA_KHACH_HANG != null) { var debitHist = ctx.KHACH_HANG_DEBIT_HIST.Where(u => u.ACTIVE == "A" && u.MA_PHIEU_TRA == infor.MA_TRA_HANG).FirstOrDefault(); var customer = ctx.KHACH_HANG.Find(infor.MA_KHACH_HANG); if (debitHist != null) { if (customer.NO_GOI_DAU == 0) { customer.NGAY_PHAT_SINH_NO = null; } customer.NO_GOI_DAU = (decimal)customer.NO_GOI_DAU + (decimal)debitHist.PHAT_SINH; /*using (var transaction = new System.Transactions.TransactionScope()) * { * try * { * if (customer.NO_GOI_DAU == 0) * { * customer.NGAY_PHAT_SINH_NO = null; * } * customer.NO_GOI_DAU = (decimal)customer.NO_GOI_DAU + (decimal)debitHist.PHAT_SINH; * customer.UPDATE_AT = DateTime.Now; * customer.UPDATE_BY = Convert.ToInt32(Session["UserId"]); * debitHist.ACTIVE = "I"; * debitHist.UPDATE_AT = DateTime.Now; * debitHist.UPDATE_BY = Convert.ToInt32(Session["UserId"]); * ctx.SaveChanges(); * transaction.Complete(); * } * catch (Exception ex) * { * Console.WriteLine(ex.ToString()); * Transaction.Current.Rollback(); * } * }*/ model.OldDebitHistID = debitHist.ID; } model.Customer = customer; if (customer != null) { model.OldCustomerID = customer.MA_KHACH_HANG; } } ctx.Dispose(); return(View(model)); }
public ViewResult ShowReturnBill(int id) { var ctx = new SmsContext(); ReturnBillModel model = new ReturnBillModel(); var infor = ctx.SP_GET_RETURN_INFO_BY_ID(id).FirstOrDefault(); var detail = ctx.SP_GET_RETURN_DETAIL_BY_ID(id).ToList <SP_GET_RETURN_DETAIL_BY_ID_Result>(); model.Infor = infor; model.Detail = detail; ctx.Dispose(); return(View(model)); }
public ActionResult EditGetReturn(ReturnBillModel model) { var ctx = new SmsContext(); var oldCustomer = ctx.KHACH_HANG.Find(model.OldCustomerID); var debitHist = ctx.KHACH_HANG_DEBIT_HIST.Find(model.OldDebitHistID); using (var transaction = new System.Transactions.TransactionScope()) { try { if (debitHist != null) { debitHist.ACTIVE = "I"; debitHist.UPDATE_AT = DateTime.Now; debitHist.UPDATE_BY = Convert.ToInt32(Session["UserId"]); if (oldCustomer != null) { if (oldCustomer.NO_GOI_DAU == 0) { oldCustomer.NGAY_PHAT_SINH_NO = null; } oldCustomer.NO_GOI_DAU = (decimal)oldCustomer.NO_GOI_DAU + (decimal)debitHist.PHAT_SINH; oldCustomer.UPDATE_AT = DateTime.Now; oldCustomer.UPDATE_BY = Convert.ToInt32(Session["UserId"]); oldCustomer.ACTIVE = "I"; oldCustomer.UPDATE_AT = DateTime.Now; oldCustomer.UPDATE_BY = Convert.ToInt32(Session["UserId"]); ctx.SaveChanges(); } } var returnInfor = ctx.TRA_HANG.Find(model.Infor.MA_TRA_HANG); returnInfor.GHI_CHU = model.Infor.GHI_CHU; returnInfor.NGAY_TRA = model.Infor.NGAY_TRA; returnInfor.TEN_KHACH_HANG = model.Infor.TEN_KHACH_HANG; returnInfor.MA_KHACH_HANG = model.Infor.MA_KHACH_HANG; returnInfor.UPDATE_AT = DateTime.Now; returnInfor.NHAN_VIEN_NHAN = Convert.ToInt32(Session["UserId"]); returnInfor.UPDATE_BY = Convert.ToInt32(Session["UserId"]); returnInfor.ACTIVE = "A"; ctx.SaveChanges(); ctx.CHI_TIET_TRA_HANG.RemoveRange(ctx.CHI_TIET_TRA_HANG.Where(u => u.MA_TRA_HANG == returnInfor.MA_TRA_HANG)); double total = 0; double percent = 0; foreach (var detail in model.Detail) { if (detail.DEL_FLG != 1 && detail.MA_SAN_PHAM != null && !string.IsNullOrWhiteSpace(detail.MA_SAN_PHAM.ToString())) { CHI_TIET_TRA_HANG ct; //if (detail.DEL_FLG != 1) //{ ct = ctx.CHI_TIET_TRA_HANG.Create(); ct.MA_SAN_PHAM = detail.MA_SAN_PHAM; if (detail.PHAN_TRAM_KHAU_HAO == null) { percent = 0; } else { percent = (double)detail.PHAN_TRAM_KHAU_HAO; } total += (double)detail.DON_GIA * (double)detail.SO_LUONG * (100 - percent) / 100; ct.MA_DON_VI = detail.MA_DON_VI; ct.SO_LUONG_TEMP = detail.SO_LUONG; ct.SO_LUONG_TRA = detail.SO_LUONG * detail.HE_SO; ct.GIA_VON = detail.DON_GIA / detail.HE_SO; ct.DON_GIA_TEMP = detail.DON_GIA; ct.PHAN_TRAM_KHAU_HAO = detail.PHAN_TRAM_KHAU_HAO; ct.ACTIVE = "A"; ct.CREATE_AT = DateTime.Now; ct.UPDATE_AT = DateTime.Now; ct.CREATE_BY = Convert.ToInt32(Session["UserId"]); ct.UPDATE_BY = Convert.ToInt32(Session["UserId"]); ct.MA_TRA_HANG = returnInfor.MA_TRA_HANG; ctx.CHI_TIET_TRA_HANG.Add(ct); ctx.SaveChanges(); } } if (model.Infor.MA_KHACH_HANG != null) { var customer = ctx.KHACH_HANG.Find(model.Infor.MA_KHACH_HANG); if (customer != null && customer.NO_GOI_DAU > 0) { if ((double)customer.NO_GOI_DAU > total) { var cusHist = ctx.KHACH_HANG_DEBIT_HIST.Create(); customer.UPDATE_AT = DateTime.Now; customer.UPDATE_BY = Convert.ToInt32(Session["UserId"]); cusHist.NO_TRUOC = (double)customer.NO_GOI_DAU; cusHist.NO_SAU = cusHist.NO_TRUOC - total; cusHist.MA_NHAN_VIEN_TH = Convert.ToInt32(Session["UserId"]); cusHist.GHI_CHU = "Trả hàng - Trừ vào công nợ của khách hàng"; customer.NO_GOI_DAU = customer.NO_GOI_DAU - (decimal)total; cusHist.PHAT_SINH = total; cusHist.NGAY_PHAT_SINH = DateTime.Now; cusHist.UPDATE_AT = DateTime.Now; cusHist.CREATE_AT = DateTime.Now; cusHist.MA_KHACH_HANG = customer.MA_KHACH_HANG; cusHist.UPDATE_BY = Convert.ToInt32(Session["UserId"]); cusHist.CREATE_BY = Convert.ToInt32(Session["UserId"]); cusHist.ACTIVE = "A"; cusHist.MA_PHIEU_TRA = returnInfor.MA_TRA_HANG; customer.DOANH_SO = customer.DOANH_SO - (decimal)total; ctx.KHACH_HANG_DEBIT_HIST.Add(cusHist); ctx.SaveChanges(); } else { var cusHist = ctx.KHACH_HANG_DEBIT_HIST.Create(); customer.UPDATE_AT = DateTime.Now; customer.UPDATE_BY = Convert.ToInt32(Session["UserId"]); cusHist.NO_SAU = 0; cusHist.NO_TRUOC = (double)customer.NO_GOI_DAU; cusHist.PHAT_SINH = (double)customer.NO_GOI_DAU; cusHist.NGAY_PHAT_SINH = DateTime.Now; cusHist.UPDATE_AT = DateTime.Now; cusHist.CREATE_AT = DateTime.Now; cusHist.MA_KHACH_HANG = customer.MA_KHACH_HANG; cusHist.UPDATE_BY = Convert.ToInt32(Session["UserId"]); cusHist.CREATE_BY = Convert.ToInt32(Session["UserId"]); cusHist.ACTIVE = "A"; cusHist.MA_PHIEU_TRA = returnInfor.MA_TRA_HANG; cusHist.MA_NHAN_VIEN_TH = Convert.ToInt32(Session["UserId"]); cusHist.GHI_CHU = "Trả hàng - Trừ vào công nợ của khách hàng"; customer.NO_GOI_DAU = 0; customer.NGAY_PHAT_SINH_NO = null; customer.DOANH_SO = customer.DOANH_SO - (decimal)total; ctx.KHACH_HANG_DEBIT_HIST.Add(cusHist); ctx.SaveChanges(); } } } transaction.Complete(); ctx.Dispose(); return(RedirectToAction("ReturnPurchaseList", new { @inforMessage = "Nhận trả hàng thành công." })); } catch (Exception) { Transaction.Current.Rollback(); ctx.Dispose(); return(RedirectToAction("ReturnPurchaseList", new { @message = "Nhận trả hàng thất bại, vui lòng liên hệ admin." })); } } }