public JsonResult ApplyDbData() { MSGReturnModel <IEnumerable <ICDCItem> > result = new MSGReturnModel <IEnumerable <ICDCItem> >(); result.RETURN_FLAG = false; var _detail = (List <CDCEstateViewModel>)Cache.Get(CacheList.CDCEstateData); if (!_detail.Any(x => x.vAftFlag)) { result.DESCRIPTION = "無申請任何資料"; } else if (Cache.IsSet(CacheList.CDCSearchViewModel)) { CDCSearchViewModel data = (CDCSearchViewModel)Cache.Get(CacheList.CDCSearchViewModel); result = Estate.CDCApplyAudit(_detail.Where(x => x.vAftFlag).ToList(), data); if (result.RETURN_FLAG) { Cache.Invalidate(CacheList.CDCEstateData); Cache.Set(CacheList.CDCEstateData, result.Datas); } } else { result.DESCRIPTION = Ref.MessageType.login_Time_Out.GetDescription(); } return(Json(result)); }
public ActionResult CDCView(string AplyNo, CDCSearchViewModel data, Ref.OpenPartialViewType type) { var _data = ((List <CDCSealViewModel>)Seal.GetCDCSearchData(data, AplyNo)); ViewBag.Sataus = new Service.Actual.Common().GetSysCode("INVENTORY_TYPE"); ViewBag.type = type; ViewBag.IO = data.vTreasuryIO; data.vCreate_Uid = AccountController.CurrentUserId; Cache.Invalidate(CacheList.CDCSearchViewModel); Cache.Set(CacheList.CDCSearchViewModel, data); Cache.Invalidate(CacheList.CDCSEALData); Cache.Set(CacheList.CDCSEALData, _data); return(PartialView()); }
public JsonResult GetCDCStockDetailDate(int Group_No, int Trea_Batch_No, string Aply_No) { MSGReturnModel <StockDetailViewModel> result = new MSGReturnModel <StockDetailViewModel>(); result.RETURN_FLAG = false; result.DESCRIPTION = Ref.MessageType.login_Time_Out.GetDescription(); CDCSearchViewModel data = (CDCSearchViewModel)Cache.Get(CacheList.CDCSearchViewModel); var _data = Stock.GetCDCDetailData(data, Group_No, Trea_Batch_No, Aply_No); Cache.Invalidate(CacheList.CDCStockDataD); Cache.Set(CacheList.CDCStockDataD, _data); return(Json(result)); }
public ActionResult CDCView(string AplyNo, CDCSearchViewModel data, Ref.OpenPartialViewType type) { var _data = ((List <CDCEstateViewModel>)Estate.GetCDCSearchData(data, AplyNo)); ViewBag.Sataus = new Service.Actual.Common().GetSysCode("INVENTORY_TYPE"); ViewBag.type = type; ViewBag.IO = data.vTreasuryIO; ViewBag.dEstate_Building_Name = new SelectList(Estate.GetBuildName(), "Value", "Text"); ViewBag.dEstate_From_No = new SelectList(Estate.GetEstateFromNo(), "Value", "Text"); data.vCreate_Uid = AccountController.CurrentUserId; Cache.Invalidate(CacheList.CDCSearchViewModel); Cache.Set(CacheList.CDCSearchViewModel, data); Cache.Invalidate(CacheList.CDCEstateData); Cache.Set(CacheList.CDCEstateData, _data); return(PartialView()); }
public ActionResult CDCView(string AplyNo, CDCSearchViewModel data, Ref.OpenPartialViewType type) { var _data = ((List <CDCMarginpViewModel>)Marginp.GetCDCSearchData(data, AplyNo)); ViewBag.Sataus = new Service.Actual.Common().GetSysCode("INVENTORY_TYPE"); ViewBag.type = type; ViewBag.IO = data.vTreasuryIO; ViewBag.dMargin_Take_Of_Type = new SelectList(Marginp.GetMarginp_Take_Of_Type(), "Value", "Text"); ViewBag.dMargin_Item = new SelectList(Marginp.GetMarginpItem(), "Value", "Text"); data.vCreate_Uid = AccountController.CurrentUserId; Cache.Invalidate(CacheList.CDCSearchViewModel); Cache.Set(CacheList.CDCSearchViewModel, data); Cache.Invalidate(CacheList.CDCMarginpData); Cache.Set(CacheList.CDCMarginpData, _data); return(PartialView()); }
public ActionResult CDCView(string AplyNo, CDCSearchViewModel data, Ref.OpenPartialViewType type) { var _data = ((List <CDCBillViewModel>)Bill.GetCDCSearchData(data, AplyNo)); ViewBag.Sataus = new Service.Actual.Common().GetSysCode("INVENTORY_TYPE"); ViewBag.type = type; ViewBag.IO = data.vTreasuryIO; ViewBag.dBILL_Check_Type = new SelectList(Bill.GetCheckType(), "Value", "Text"); ViewBag.dBILL_Issuing_Bank = new SelectList(Bill.GetIssuing_Bank(), "Value", "Text"); data.vCreate_Uid = AccountController.CurrentUserId; Cache.Invalidate(CacheList.CDCSearchViewModel); Cache.Set(CacheList.CDCSearchViewModel, data); Cache.Invalidate(CacheList.CDCBILLData); Cache.Set(CacheList.CDCBILLData, _data); Cache.Invalidate(CacheList.CDCBILLAllData); Cache.Set(CacheList.CDCBILLAllData, ((List <CDCBillViewModel>)Bill.GetCDCSearchData(new CDCSearchViewModel() { vTreasuryIO = "Y" }, null))); return(PartialView()); }
/// <summary> /// 共用存檔 資料庫異動申請單紀錄檔 回傳參數1 (APLY_NO) 回傳參數2 (log訊息) /// </summary> /// <param name="db">Entity</param> /// <param name="data">viewModel</param> /// <param name="logStr">紀錄訊息</param> /// <param name="dt">時間</param> /// <param name="CHG_AUTH_UNIT">權責單位異動</param> /// <returns></returns> protected Tuple <string, string> SaveINVENTORY_CHG_APLY(TreasuryDBEntities db, CDCSearchViewModel data, string logStr, DateTime dt, string CHG_AUTH_UNIT = "N") { //取得流水號 SysSeqDao sysSeqDao = new SysSeqDao(); String qPreCode = DateUtil.getCurChtDateTime().Split(' ')[0]; var cId = sysSeqDao.qrySeqNo("G8", qPreCode).ToString().PadLeft(3, '0'); #region 資料庫異動申請單紀錄檔 var ICA = new INVENTORY_CHG_APLY() { APLY_NO = $@"G8{qPreCode}{cId}", //申請單號 G8+系統日期YYYMMDD(民國年)+3碼流水號 ITEM_ID = data.vJobProject, APPR_STATUS = "1", //表單申請 CHG_AUTH_UNIT = CHG_AUTH_UNIT, //權責單位異動 CREATE_UID = data.vCreate_Uid, CREATE_Date = dt.Date, CREATE_Time = dt.TimeOfDay }; db.INVENTORY_CHG_APLY.Add(ICA); logStr += ICA.modelToString(logStr); #endregion return(new Tuple <string, string>(ICA.APLY_NO, logStr)); }
/// <summary> /// 庫存異動資料-申請覆核 /// </summary> /// <param name="saveData"></param> /// <param name="searchModel"></param> /// <returns></returns> public MSGReturnModel <IEnumerable <ICDCItem> > CDCApplyAudit(IEnumerable <ICDCItem> saveData, CDCSearchViewModel searchModel) { MSGReturnModel <IEnumerable <ICDCItem> > result = new MSGReturnModel <IEnumerable <ICDCItem> >(); result.RETURN_FLAG = false; string logStr = string.Empty; DateTime dt = DateTime.Now; using (TreasuryDBEntities db = new TreasuryDBEntities()) { bool changFlag = false; var _data = SaveINVENTORY_CHG_APLY(db, searchModel, logStr, dt); logStr = _data.Item2; foreach (CDCCAViewModel model in saveData) { var _CA = db.ITEM_CA.FirstOrDefault(x => x.ITEM_ID == model.vItemId); if (_CA != null && !changFlag) { if (_CA.LAST_UPDATE_DT > model.vLast_Update_Time || _CA.INVENTORY_STATUS != "1") { changFlag = true; } if (!changFlag) { _CA.INVENTORY_STATUS = "8"; //庫存狀態改為「8」資料庫異動中。 _CA.CA_USE_AFT = model.vCA_Use_AFT; _CA.CA_DESC_AFT = model.vCA_Desc_AFT; _CA.BANK_AFT = model.vCA_Bank_AFT; _CA.CA_NUMBER_AFT = model.vCA_Number_AFT; _CA.MEMO_AFT = model.vCA_Memo_AFT; _CA.LAST_UPDATE_DT = dt; logStr = _CA.modelToString(logStr); var _OIA = new OTHER_ITEM_APLY() { APLY_NO = _data.Item1, ITEM_ID = _CA.ITEM_ID }; db.OTHER_ITEM_APLY.Add(_OIA); logStr = _OIA.modelToString(logStr); } } else { changFlag = true; } } if (changFlag) { result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription(); } else { db.SaveChanges(); #region LOG //新增LOG Log log = new Log(); log.CFUNCTION = "申請覆核-資料庫異動:電子憑證"; log.CACTION = "A"; log.CCONTENT = logStr; LogDao.Insert(log, searchModel.vCreate_Uid); #endregion result.RETURN_FLAG = true; result.DESCRIPTION = Ref.MessageType.Apply_Audit_Success.GetDescription(null, $@"申請單號:{_data.Item1}"); result.Datas = GetCDCSearchData(searchModel); } } return(result); }
/// <summary> /// 查詢CDC資料 /// </summary> /// <param name="searchModel">CDC 查詢畫面條件</param> /// <param name="aply_No">資料庫異動申請單紀錄檔 INVENTORY_CHG_APLY 單號</param> /// <returns></returns> public IEnumerable <ICDCItem> GetCDCSearchData(CDCSearchViewModel searchModel, string aply_No = null, string charge_Dept = null, string charge_Sect = null) { List <CDCCAViewModel> result = new List <CDCCAViewModel>(); using (TreasuryDBEntities db = new TreasuryDBEntities()) { var emps = GetEmps(); var depts = GetDepts(); if (aply_No.IsNullOrWhiteSpace()) { var PUT_DATE_From = TypeTransfer.stringToDateTimeN(searchModel.vAPLY_DT_From); var PUT_DATE_To = TypeTransfer.stringToDateTimeN(searchModel.vAPLY_DT_To).DateToLatestTime(); var GET_DATE_From = TypeTransfer.stringToDateTimeN(searchModel.vAPLY_ODT_From); var GET_DATE_To = TypeTransfer.stringToDateTimeN(searchModel.vAPLY_ODT_To).DateToLatestTime(); result.AddRange(db.ITEM_CA.AsNoTracking() .Where(x => TreasuryIn.Contains(x.INVENTORY_STATUS), searchModel.vTreasuryIO == "Y") .Where(x => x.INVENTORY_STATUS == TreasuryOut, searchModel.vTreasuryIO == "N") .Where(x => x.PUT_DATE != null && x.PUT_DATE.Value >= PUT_DATE_From.Value, PUT_DATE_From != null) .Where(x => x.PUT_DATE != null && x.PUT_DATE.Value <= PUT_DATE_To.Value, PUT_DATE_To != null) .Where(x => x.GET_DATE != null && x.GET_DATE.Value >= GET_DATE_From.Value, GET_DATE_From != null) .Where(x => x.GET_DATE != null && x.GET_DATE.Value <= GET_DATE_To.Value, GET_DATE_To != null) .Where(x => x.CHARGE_DEPT == charge_Dept, !charge_Dept.IsNullOrWhiteSpace()) .Where(x => x.CHARGE_SECT == charge_Sect, !charge_Sect.IsNullOrWhiteSpace()) .AsEnumerable() .Select((x) => new CDCCAViewModel() { vItemId = x.ITEM_ID, vStatus = x.INVENTORY_STATUS, vPUT_Date = x.PUT_DATE?.dateTimeToStr(), vGet_Date = x.GET_DATE?.dateTimeToStr(), vAPLY_UID = x.APLY_UID, vAPLY_UID_Name = emps.FirstOrDefault(y => y.USR_ID == x.APLY_UID)?.EMP_NAME?.Trim(), vCharge_Dept = x.CHARGE_DEPT, vCharge_Dept_AFT = x.CHARGE_DEPT_AFT, vCharge_Dept_Name = depts.FirstOrDefault(y => y.DPT_CD.Trim() == x.CHARGE_DEPT)?.DPT_NAME?.Trim(), vCharge_Dept_Name_AFT = depts.FirstOrDefault(y => y.DPT_CD.Trim() == x.CHARGE_DEPT_AFT)?.DPT_NAME?.Trim(), vCharge_Sect = x.CHARGE_SECT, vCharge_Sect_AFT = x.CHARGE_SECT_AFT, vCharge_Sect_Name = depts.FirstOrDefault(y => y.DPT_CD.Trim() == x.CHARGE_SECT)?.DPT_NAME?.Trim(), vCharge_Sect_Name_AFT = depts.FirstOrDefault(y => y.DPT_CD.Trim() == x.CHARGE_SECT_AFT)?.DPT_NAME?.Trim(), vCA_Use = x.CA_USE, vCA_Use_AFT = x.CA_USE_AFT, vCA_Desc = x.CA_DESC, vCA_Desc_AFT = x.CA_DESC_AFT, vCA_Bank = x.BANK, vCA_Bank_AFT = x.BANK_AFT, vCA_Number = x.CA_NUMBER, vCA_Number_AFT = x.CA_NUMBER_AFT, vCA_Memo = x.MEMO, vCA_Memo_AFT = x.MEMO_AFT, vLast_Update_Time = x.LAST_UPDATE_DT }).ToList()); if (searchModel.vTreasuryIO == "N") //取出 { if (result.Any()) { var itemIds = result.Select(x => x.vItemId).ToList(); var uids = GetAplyUidName(itemIds); result.ForEach(x => { x.vGet_Uid_Name = uids.FirstOrDefault(y => y.itemId == x.vItemId)?.getAplyUidName; }); } } } else { var itemIds = db.OTHER_ITEM_APLY.AsNoTracking() .Where(x => x.APLY_NO == aply_No).Select(x => x.ITEM_ID).ToList(); result.AddRange(db.ITEM_CA.AsNoTracking() .Where(x => itemIds.Contains(x.ITEM_ID)) .AsEnumerable() .Select((x) => new CDCCAViewModel() { vItemId = x.ITEM_ID, vStatus = x.INVENTORY_STATUS, vPUT_Date = x.PUT_DATE?.dateTimeToStr(), vGet_Date = x.GET_DATE?.dateTimeToStr(), vAPLY_UID = x.APLY_UID, vAPLY_UID_Name = emps.FirstOrDefault(y => y.USR_ID == x.APLY_UID)?.EMP_NAME?.Trim(), vCharge_Dept = x.CHARGE_DEPT, vCharge_Dept_AFT = x.CHARGE_DEPT_AFT, vCharge_Dept_Name = depts.FirstOrDefault(y => y.DPT_CD.Trim() == x.CHARGE_DEPT)?.DPT_NAME?.Trim(), vCharge_Dept_Name_AFT = depts.FirstOrDefault(y => y.DPT_CD.Trim() == x.CHARGE_DEPT_AFT)?.DPT_NAME?.Trim(), vCharge_Sect = x.CHARGE_SECT, vCharge_Sect_AFT = x.CHARGE_SECT_AFT, vCharge_Sect_Name = depts.FirstOrDefault(y => y.DPT_CD.Trim() == x.CHARGE_SECT)?.DPT_NAME?.Trim(), vCharge_Sect_Name_AFT = depts.FirstOrDefault(y => y.DPT_CD.Trim() == x.CHARGE_SECT_AFT)?.DPT_NAME?.Trim(), vCA_Use = x.CA_USE, vCA_Use_AFT = x.CA_USE_AFT, vCA_Desc = x.CA_DESC, vCA_Desc_AFT = x.CA_DESC_AFT, vCA_Bank = x.BANK, vCA_Bank_AFT = x.BANK_AFT, vCA_Number = x.CA_NUMBER, vCA_Number_AFT = x.CA_NUMBER_AFT, vCA_Memo = x.MEMO, vCA_Memo_AFT = x.MEMO_AFT, vLast_Update_Time = x.LAST_UPDATE_DT }).ToList()); } result.ForEach(x => { x.vCharge_Name = !x.vCharge_Sect_Name.IsNullOrWhiteSpace() ? x.vCharge_Sect_Name : x.vCharge_Dept_Name; x.vCharge_Name_AFT = !x.vCharge_Sect_Name_AFT.IsNullOrWhiteSpace() ? x.vCharge_Sect_Name_AFT : (!x.vCharge_Dept_Name_AFT.IsNullOrWhiteSpace() ? x.vCharge_Dept_Name_AFT : null); }); } return(result); }
/// <summary> /// 庫存異動資料-申請覆核 /// </summary> /// <param name="saveData"></param> /// <param name="searchModel"></param> /// <returns></returns> public MSGReturnModel <IEnumerable <ICDCItem> > CDCApplyAudit(IEnumerable <ICDCItem> saveData, CDCSearchViewModel searchModel) { MSGReturnModel <IEnumerable <ICDCItem> > result = new MSGReturnModel <IEnumerable <ICDCItem> >(); result.RETURN_FLAG = false; string logStr = string.Empty; DateTime dt = DateTime.Now; using (TreasuryDBEntities db = new TreasuryDBEntities()) { bool changFlag = false; var _data = SaveINVENTORY_CHG_APLY(db, searchModel, logStr, dt); logStr = _data.Item2; foreach (CDCBillViewModel model in saveData) { var _Bill = db.ITEM_BLANK_NOTE.FirstOrDefault(x => x.ITEM_ID == model.vItemId); if (_Bill != null && !changFlag) { if (_Bill.LAST_UPDATE_DT > model.vLast_Update_Time || _Bill.INVENTORY_STATUS != "1") { changFlag = true; } if (!changFlag) { _Bill.INVENTORY_STATUS = "8"; //庫存狀態改為「8」資料庫異動中。 _Bill.ISSUING_BANK_AFT = model.vBill_Issuing_Bank_AFT; _Bill.CHECK_TYPE_AFT = model.vBill_Check_Type_AFT; _Bill.CHECK_NO_TRACK_AFT = model.vBill_Check_No_Track_AFT; _Bill.CHECK_NO_B_AFT = model.vBill_Check_No_B_AFT; _Bill.CHECK_NO_E_AFT = model.vBill_Check_No_E_AFT; _Bill.LAST_UPDATE_DT = dt; logStr += _Bill.modelToString(logStr); var _BNA = new BLANK_NOTE_APLY() { APLY_NO = _data.Item1, ITEM_ID = _Bill.ITEM_ID, ISSUING_BANK = model.vBill_Issuing_Bank_AFT, CHECK_TYPE = model.vBill_Check_Type_AFT.IsNullOrEmpty() ? string.Empty : model.vBill_Check_Type_AFT, CHECK_NO_TRACK = model.vBill_Check_No_Track_AFT.IsNullOrEmpty() ? string.Empty : model.vBill_Check_No_Track_AFT, CHECK_NO_B = model.vBill_Check_No_B_AFT.IsNullOrEmpty() ? string.Empty : model.vBill_Check_No_B_AFT, CHECK_NO_E = model.vBill_Check_No_E_AFT.IsNullOrEmpty() ? string.Empty : model.vBill_Check_No_E_AFT }; db.BLANK_NOTE_APLY.Add(_BNA); logStr += _BNA.modelToString(logStr); } } else { changFlag = true; } } if (changFlag) { result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription(); } else { db.SaveChanges(); #region LOG //新增LOG Log log = new Log(); log.CFUNCTION = "申請覆核-資料庫異動:空白票據"; log.CACTION = "A"; log.CCONTENT = logStr; LogDao.Insert(log, searchModel.vCreate_Uid); #endregion result.RETURN_FLAG = true; result.DESCRIPTION = Ref.MessageType.Apply_Audit_Success.GetDescription(null, $@"申請單號:{_data.Item1}"); result.Datas = GetCDCSearchData(searchModel); } } return(result); }