/// <summary> /// 更新在庫資料為調整後的資料 /// </summary> /// <param name="model"></param> private void setDbAllData(CDCBillViewModel model) { var allData = (List <CDCBillViewModel>)Cache.Get(CacheList.CDCBILLAllData); var remove = allData.First(x => x.vItemId == model.vItemId); allData.Remove(remove); allData.Add(model); Cache.Invalidate(CacheList.CDCBILLAllData); Cache.Set(CacheList.CDCBILLAllData, allData); }
/// <summary> /// 比對資料系統檢視存入空白票據的票據的票號(起),票號(迄)是否與庫存重複 /// </summary> /// <param name="data"></param> /// <param name="model"></param> /// <returns></returns> private string chechSameDataByCDC(List <CDCBillViewModel> data, CDCBillViewModel model) { string msg = string.Empty; List <CDCBillViewModel> result = new List <CDCBillViewModel>(); try { data = data.Where(x => x.vItemId != model.vItemId && x.vItemId != null && x.vBill_Issuing_Bank == model.vBill_Issuing_Bank).ToList(); result.AddRange( data.Where(x => (x.vBill_Check_No_B_AFT == null ? int.Parse(x.vBill_Check_No_B) : int.Parse(x.vBill_Check_No_B_AFT)) <= int.Parse(model.vBill_Check_No_B) && int.Parse(model.vBill_Check_No_B) <= (x.vBill_Check_No_E_AFT == null ? int.Parse(x.vBill_Check_No_E) : int.Parse(x.vBill_Check_No_E_AFT)))); result.AddRange( data.Where(x => (x.vBill_Check_No_B_AFT == null ? int.Parse(x.vBill_Check_No_B) : int.Parse(x.vBill_Check_No_B_AFT)) <= int.Parse(model.vBill_Check_No_E) && int.Parse(model.vBill_Check_No_E) <= (x.vBill_Check_No_E_AFT == null ? int.Parse(x.vBill_Check_No_E) : int.Parse(x.vBill_Check_No_E_AFT)))); result.AddRange( data.Where(x => (x.vBill_Check_No_B_AFT == null ? int.Parse(x.vBill_Check_No_B) : int.Parse(x.vBill_Check_No_B_AFT)) >= int.Parse(model.vBill_Check_No_B) && int.Parse(model.vBill_Check_No_E) >= (x.vBill_Check_No_E_AFT == null ? int.Parse(x.vBill_Check_No_E) : int.Parse(x.vBill_Check_No_E_AFT)))); if (result.Any()) { msg = $"您建置存入票號(起)/票號(迄)和下面當日庫存明細資料重疊敬請確認,謝謝!</br>重複區段</br>發票行:{model.vBill_Issuing_Bank}"; result.Select(x => $"{string.Join(",", $@"支票號碼(起):{(x.vBill_Check_No_B_AFT ==null ? x.vBill_Check_No_B : x.vBill_Check_No_B_AFT)},支票號碼(迄):{(x.vBill_Check_No_E_AFT == null ? x.vBill_Check_No_E : x.vBill_Check_No_E_AFT)}")}") .Distinct().ToList() .ForEach(x => msg += $"</br>{x}"); } } catch { } return(msg); }
public JsonResult UpdateDbData(CDCBillViewModel model) { MSGReturnModel <bool> result = new MSGReturnModel <bool>(); result.RETURN_FLAG = false; result.DESCRIPTION = Ref.MessageType.login_Time_Out.GetDescription(); if (Cache.IsSet(CacheList.CDCBILLData)) { var dbData = (List <CDCBillViewModel>)Cache.Get(CacheList.CDCBILLData); var updateTempData = dbData.FirstOrDefault(x => x.vItemId == model.vItemId); if (updateTempData != null) { var allData = (List <CDCBillViewModel>)Cache.Get(CacheList.CDCBILLAllData); var msg = chechSameDataByCDC(allData, updateTempData); if (!msg.IsNullOrWhiteSpace()) { result.RETURN_FLAG = false; result.DESCRIPTION = msg; return(Json(result)); } var _vBill_Issuing_Banke_AFT = model.vBill_Issuing_Bank.CheckAFT(updateTempData.vBill_Issuing_Bank); if (_vBill_Issuing_Banke_AFT.Item2) { updateTempData.vBill_Issuing_Bank_AFT = _vBill_Issuing_Banke_AFT.Item1; } var _vBill_Check_Type_AFT = model.vBill_Check_Type.CheckAFT(updateTempData.vBill_Check_Type); if (_vBill_Check_Type_AFT.Item2) { updateTempData.vBill_Check_Type_AFT = _vBill_Check_Type_AFT.Item1; } var _vBill_Check_No_Track_AFT = model.vBill_Check_No_Track.CheckAFT(updateTempData.vBill_Check_No_Track); if (_vBill_Check_No_Track_AFT.Item2) { updateTempData.vBill_Check_No_Track_AFT = _vBill_Check_No_Track_AFT.Item1; } var _vBill_Check_No_B_AFT = model.vBill_Check_No_B.CheckAFT(updateTempData.vBill_Check_No_B); if (_vBill_Check_No_B_AFT.Item2) { updateTempData.vBill_Check_No_B_AFT = _vBill_Check_No_B_AFT.Item1; } var _vBill_Check_No_E_AFT = model.vBill_Check_No_E.CheckAFT(updateTempData.vBill_Check_No_E); if (_vBill_Check_No_E_AFT.Item2) { updateTempData.vBill_Check_No_E_AFT = _vBill_Check_No_E_AFT.Item1; } updateTempData.vAFTFlag = _vBill_Issuing_Banke_AFT.Item2 || _vBill_Check_Type_AFT.Item2 || _vBill_Check_No_Track_AFT.Item2 || _vBill_Check_No_B_AFT.Item2 || _vBill_Check_No_E_AFT.Item2; setDbAllData(model); Cache.Invalidate(CacheList.CDCBILLData); Cache.Set(CacheList.CDCBILLData, dbData); result.Datas = dbData.Any(x => x.vAFTFlag); result.RETURN_FLAG = true; result.DESCRIPTION = Ref.MessageType.update_Success.GetDescription(); } else { result.RETURN_FLAG = false; result.DESCRIPTION = Ref.MessageType.update_Fail.GetDescription(); } } return(Json(result)); }