public ActionResult View(string AplyNo, TreasuryAccessViewModel data, Ref.OpenPartialViewType type) { ViewBag.OPVT = type; ViewBag.dBILL_Check_Type = new SelectList(Bill.GetCheckType(), "Value", "Text"); var ibs = Bill.GetIssuing_Bank(); ViewBag.dBILL_Issuing_Bank = new SelectList(ibs, "Value", "Text"); var _dActType = GetActType(type, AplyNo); //畫面是否可以CRUD if (AplyNo.IsNullOrWhiteSpace()) { ViewBag.dAccess = null; Cache.Invalidate(CacheList.TreasuryAccessViewData); Cache.Set(CacheList.TreasuryAccessViewData, data); ResetBillViewModel(data.vAccessType); } else { var viewModel = TreasuryAccess.GetTreasuryAccessViewModel(AplyNo); ViewBag.dAccess = viewModel.vAccessType; if (viewModel.vAccessType == Ref.AccessProjectTradeType.G.ToString()) { _dActType = false; //空白票據 取出預設只能檢視 } Cache.Invalidate(CacheList.TreasuryAccessViewData); Cache.Set(CacheList.TreasuryAccessViewData, viewModel); ResetBillViewModel(viewModel.vAccessType, AplyNo); } ViewBag.dActType = _dActType; return(PartialView()); }
public ActionResult View(string AplyNo, TreasuryAccessViewModel data, Ref.OpenPartialViewType type) { ViewBag.OPVT = type; var _dActType = GetActType(type, AplyNo); ViewBag.MarginpType = new SelectList(Marginp.GetMarginp_Take_Of_Type(), "Value", "Text"); ViewBag.MarginpItem = new SelectList(Marginp.GetMarginpItem(), "Value", "Text"); ViewBag.CustodianFlag = AccountController.CustodianFlag; if (AplyNo.IsNullOrWhiteSpace()) { Cache.Invalidate(CacheList.TreasuryAccessViewData); Cache.Set(CacheList.TreasuryAccessViewData, data); resetMarginpViewModel(data.vAccessType); } else { ViewBag.dAccess = TreasuryAccess.GetAccessType(AplyNo); var viewModel = TreasuryAccess.GetTreasuryAccessViewModel(AplyNo); Cache.Invalidate(CacheList.TreasuryAccessViewData); Cache.Set(CacheList.TreasuryAccessViewData, viewModel); resetMarginpViewModel(viewModel.vAccessType, AplyNo, _dActType); } ViewBag.dActType = _dActType; return(PartialView()); }
public JsonResult UpdateAplyNo(TreasuryAccessViewModel data) { var cdata = (TreasuryAccessViewModel)Cache.Get(CacheList.TreasuryAccessSearchUpdateViewData); if (AccountController.CustodianFlag) { cdata.vAccessReason = data.vAccessReason; cdata.vExpectedAccessDate = data.vExpectedAccessDate; cdata.vAplyUnit = data.vAplyUnit; cdata.vAplyUid = data.vAplyUid; } else { cdata.vAccessReason = data.vAccessReason; cdata.vExpectedAccessDate = data.vExpectedAccessDate; } var searchData = (TreasuryAccessSearchViewModel)Cache.Get(CacheList.TreasuryAccessSearchData); var result = TreasuryAccess.updateAplyNo(cdata, AccountController.CustodianFlag, searchData); if (result.RETURN_FLAG) { var data1 = TreasuryAccess.GetByAplyNo(cdata.vAplyNo); Cache.Invalidate(CacheList.TreasuryAccessSearchUpdateViewData); Cache.Set(CacheList.TreasuryAccessSearchUpdateViewData, data1); var data2 = TreasuryAccess.GetTreasuryAccessViewModel(cdata.vAplyNo); Cache.Invalidate(CacheList.TreasuryAccessViewData); Cache.Set(CacheList.TreasuryAccessViewData, data2); Cache.Invalidate(CacheList.TreasuryAccessSearchDetailViewData); Cache.Set(CacheList.TreasuryAccessSearchDetailViewData, result.Datas); } return(Json(result)); }
public JsonResult GetItemBook(int groupNo, string aplyNo) { MSGReturnModel <StockDetailViewModel> result = new MSGReturnModel <StockDetailViewModel>(); result.RETURN_FLAG = false; result.DESCRIPTION = Ref.MessageType.login_Time_Out.GetDescription(); if (groupNo == 0 && Cache.IsSet(CacheList.StockMainData)) { var data = (StockDetailViewModel)Cache.Get(CacheList.StockMainData); result.RETURN_FLAG = true; } else if (groupNo == -1) { Cache.Invalidate(CacheList.StockMainData); Cache.Set(CacheList.StockMainData, new List <StockDetailViewModel>()); result.RETURN_FLAG = false; } else { if (Cache.IsSet(CacheList.TreasuryAccessViewData)) { TreasuryAccessViewModel viewdata = (TreasuryAccessViewModel)Cache.Get(CacheList.TreasuryAccessViewData); var _data = Stock.GetDataByGroupNo(groupNo, viewdata.vAplyUnit, aplyNo); Cache.Invalidate(CacheList.StockMainData); Cache.Invalidate(CacheList.StockTempData); Cache.Set(CacheList.StockMainData, _data); Cache.Set(CacheList.StockTempData, new List <StockDetailViewModel>()); result.RETURN_FLAG = true; } } return(Json(result)); }
public JsonResult ApplyTempData(EstateModel model) { MSGReturnModel <IEnumerable <ITreaItem> > result = new MSGReturnModel <IEnumerable <ITreaItem> >(); result.RETURN_FLAG = false; var _detail = (List <SealViewModel>)Cache.Get(CacheList.SEALData); if (!_detail.Any()) { result.DESCRIPTION = "無申請任何資料"; } else if (Cache.IsSet(CacheList.TreasuryAccessViewData)) { TreasuryAccessViewModel data = (TreasuryAccessViewModel)Cache.Get(CacheList.TreasuryAccessViewData); var _data = (List <SealViewModel>)Cache.Get(CacheList.SEALData); if (data.vAccessType == Ref.AccessProjectTradeType.G.ToString() && !_data.Any(x => x.vtakeoutFlag)) { result.DESCRIPTION = "無申請任何資料"; } else { result = Seal.ApplyAudit(_data, data); if (result.RETURN_FLAG && !data.vAplyNo.IsNullOrWhiteSpace()) { new TreasuryAccessController().ResetSearchData(); } } } else { result.DESCRIPTION = Ref.MessageType.login_Time_Out.GetDescription(); } return(Json(result)); }
/// <summary> /// 共用存檔 申請單紀錄檔 回傳參數1 (APLY_NO) 回傳參數2 (log訊息) /// </summary> /// <param name="db">Entity</param> /// <param name="taData">viewModel</param> /// <param name="logStr">紀錄訊息</param> /// <param name="dt">修改時間</param> /// <returns></returns> protected Tuple <string, string> SaveTREA_APLY_REC(TreasuryDBEntities db, TreasuryAccessViewModel taData, string logStr, DateTime dt) { //取得流水號 SysSeqDao sysSeqDao = new SysSeqDao(); String qPreCode = DateUtil.getCurChtDateTime().Split(' ')[0]; var cId = sysSeqDao.qrySeqNo("G6", qPreCode).ToString().PadLeft(3, '0'); if (logStr.IsNullOrWhiteSpace()) { logStr = string.Empty; } #region 申請單紀錄檔 var _TAR = new TREA_APLY_REC() { APLY_NO = $@"G6{qPreCode}{cId}", //申請單號 G6+系統日期YYYMMDD(民國年)+3碼流水號 APLY_FROM = Ref.AccessProjectStartupType.M.ToString(), //人工 ITEM_ID = taData.vItem, //申請項目 ACCESS_TYPE = taData.vAccessType, //存入(P) or 取出(G) ACCESS_REASON = taData.vAccessReason, //申請原因 APLY_STATUS = Ref.AccessProjectFormStatus.A01.ToString(), //表單申請 EXPECTED_ACCESS_DATE = TypeTransfer.stringToDateTimeN(taData.vExpectedAccessDate), //預計存取日期 APLY_UNIT = taData.vAplyUnit, //申請單位 APLY_UID = taData.vAplyUid, //申請人 APLY_DT = dt, CREATE_UNIT = taData.vCreateUnit, //新增單位 CREATE_UID = taData.vCreateUid, //新增人 CREATE_DT = dt, LAST_UPDATE_UID = taData.vCreateUid, LAST_UPDATE_DT = dt }; if (taData.vAplyUid != taData.vCreateUid) //當申請人不是新增人(代表為保管單位代申請) { _TAR.CUSTODY_UID = taData.vCreateUid; //保管單位直接帶 新增人 _TAR.CUSTODY_DT = dt; } logStr += _TAR.modelToString(logStr); db.TREA_APLY_REC.Add(_TAR); #endregion #region 申請單歷程檔 var _ARH = new APLY_REC_HIS() { APLY_NO = _TAR.APLY_NO, APLY_STATUS = _TAR.APLY_STATUS, PROC_DT = dt, PROC_UID = _TAR.CREATE_UID }; logStr += _ARH.modelToString(logStr); db.APLY_REC_HIS.Add(_ARH); #endregion return(new Tuple <string, string>(_TAR.APLY_NO, logStr)); }
public ActionResult View(string AplyNo, TreasuryAccessViewModel data, Ref.OpenPartialViewType type) { ViewBag.OPVT = type; ViewBag.dStock_Area_Type = new SelectList(Stock.GetAreaType(), "Value", "Text"); ViewBag.dStock_Type = new SelectList(Stock.GetStockType(), "Value", "Text"); ViewBag.CustodianFlag = AccountController.CustodianFlag; var _dActType = GetActType(type, AplyNo); if (AplyNo.IsNullOrWhiteSpace()) { if (data.vAccessType == Ref.AccessProjectTradeType.P.ToString()) { ViewBag.dStock_Name = new SelectList(Stock.GetStockName(), "Value", "Text"); } else if (data.vAccessType == Ref.AccessProjectTradeType.G.ToString()) { ViewBag.dStock_Name = new SelectList(Stock.GetStockName(data.vAplyUnit), "Value", "Text"); } Cache.Invalidate(CacheList.TreasuryAccessViewData); Cache.Set(CacheList.TreasuryAccessViewData, data); resetStockViewModel(); } else { ViewBag.dAccess = TreasuryAccess.GetAccessType(AplyNo); var viewModel = TreasuryAccess.GetTreasuryAccessViewModel(AplyNo); if (viewModel.vAccessType == Ref.AccessProjectTradeType.P.ToString()) { ViewBag.dStock_Name = new SelectList(Stock.GetStockName(), "Value", "Text"); } else if (viewModel.vAccessType == Ref.AccessProjectTradeType.G.ToString() && _dActType) { ViewBag.dStock_Name = new SelectList(Stock.GetStockName(viewModel.vAplyUnit, AplyNo), "Value", "Text"); } else if (viewModel.vAccessType == Ref.AccessProjectTradeType.G.ToString() && !_dActType) { ViewBag.dStock_Name = new SelectList(Stock.GetStockName(viewModel.vAplyUnit), "Value", "Text"); } Cache.Invalidate(CacheList.TreasuryAccessViewData); Cache.Set(CacheList.TreasuryAccessViewData, viewModel); resetStockViewModel(AplyNo); var _data = (StockViewModel)Cache.Get(CacheList.StockData); ViewBag.group = _data.vStockDate.GroupNo; } ViewBag.dActType = _dActType; return(PartialView()); }
public ActionResult View(string AplyNo, TreasuryAccessViewModel data, Ref.OpenPartialViewType type) { ViewBag.OPVT = type; ViewBag.ESTATE_From_No = new SelectList(Estate.GetEstateFromNo(), "Value", "Text"); ViewBag.CustodianFlag = AccountController.CustodianFlag; var _dActType = GetActType(type, AplyNo); if (AplyNo.IsNullOrWhiteSpace()) { if (data.vAccessType == Ref.AccessProjectTradeType.P.ToString()) { ViewBag.ESTATE_Book_No = new SelectList(Estate.GetBookNo(), "Value", "Text"); ViewBag.ESTATE_Building_Name = new SelectList(Estate.GetBuildName(), "Value", "Text"); } else if (data.vAccessType == Ref.AccessProjectTradeType.G.ToString()) { ViewBag.ESTATE_Book_No = new SelectList(Estate.GetBookNo(data.vAplyUnit), "Value", "Text"); ViewBag.ESTATE_Building_Name = new SelectList(Estate.GetBuildName(data.vAplyUnit), "Value", "Text"); } Cache.Invalidate(CacheList.TreasuryAccessViewData); Cache.Set(CacheList.TreasuryAccessViewData, data); ResetEstateViewModel(); } else { var viewModel = TreasuryAccess.GetTreasuryAccessViewModel(AplyNo); ViewBag.dAccess = viewModel.vAccessType; if (viewModel.vAccessType == Ref.AccessProjectTradeType.P.ToString()) { ViewBag.ESTATE_Book_No = new SelectList(Estate.GetBookNo(), "Value", "Text"); ViewBag.ESTATE_Building_Name = new SelectList(Estate.GetBuildName(), "Value", "Text"); } else if (viewModel.vAccessType == Ref.AccessProjectTradeType.G.ToString() && _dActType) { ViewBag.ESTATE_Book_No = new SelectList(Estate.GetBookNo(viewModel.vAplyUnit, AplyNo), "Value", "Text"); ViewBag.ESTATE_Building_Name = new SelectList(Estate.GetBuildName(viewModel.vAplyUnit, AplyNo), "Value", "Text"); } else if (viewModel.vAccessType == Ref.AccessProjectTradeType.G.ToString() && !_dActType) { ViewBag.ESTATE_Book_No = new SelectList(Estate.GetBookNo(viewModel.vAplyUnit), "Value", "Text"); ViewBag.ESTATE_Building_Name = new SelectList(Estate.GetBuildName(viewModel.vAplyUnit), "Value", "Text"); } Cache.Invalidate(CacheList.TreasuryAccessViewData); Cache.Set(CacheList.TreasuryAccessViewData, viewModel); ResetEstateViewModel(AplyNo, _dActType); var _data = (EstateViewModel)Cache.Get(CacheList.ESTATEAllData); ViewBag.group = _data.vGroupNo; } ViewBag.dActType = _dActType; return(PartialView()); }
public JsonResult ApplyTempData() { MSGReturnModel <IEnumerable <ITreaItem> > result = new MSGReturnModel <IEnumerable <ITreaItem> >(); if (Cache.IsSet(CacheList.TreasuryAccessViewData) && Cache.IsSet(CacheList.MargingData)) { TreasuryAccessViewModel data = (TreasuryAccessViewModel)Cache.Get(CacheList.TreasuryAccessViewData); data.vCreateUid = AccountController.CurrentUserId; var _data = (List <MargingpViewModel>)Cache.Get(CacheList.MargingData); if (AccountController.CustodianFlag) //保管科 { if (_data.Any(x => x.vBook_No.IsNullOrWhiteSpace())) { result.RETURN_FLAG = false; result.DESCRIPTION = Ref.MessageType.book_No_Error.GetDescription(); return(Json(result)); } } //取出勾選判斷 if (data.vAccessType == Ref.AccessProjectTradeType.G.ToString()) { //判斷至少勾選一筆資料 var vDetail = ((List <MargingpViewModel>)Cache.Get(CacheList.MargingData)).Where(x => x.vTakeoutFlag == true).ToList(); if (!vDetail.Any()) { _data = new List <MargingpViewModel>(); } } result = Marging.ApplyAudit(_data, data); if (result.RETURN_FLAG && !data.vAplyNo.IsNullOrWhiteSpace()) { new TreasuryAccessController().ResetSearchData(); } } else { result.RETURN_FLAG = false; result.DESCRIPTION = Ref.MessageType.login_Time_Out.GetDescription(); } return(Json(result)); }
public JsonResult ApplyTempData(ItemBookStock vStockDate, ItemBookStockModel vStockModel, string AccessType) { MSGReturnModel <IEnumerable <ITreaItem> > result = new MSGReturnModel <IEnumerable <ITreaItem> >(); if (Cache.IsSet(CacheList.TreasuryAccessViewData) && Cache.IsSet(CacheList.StockData)) { TreasuryAccessViewModel data = (TreasuryAccessViewModel)Cache.Get(CacheList.TreasuryAccessViewData); var _data = (StockViewModel)Cache.Get(CacheList.StockData); _data.vStockDate = vStockDate; _data.vStockModel = vStockModel; if (AccessType == Ref.AccessProjectTradeType.P.ToString()) { _data.vDetail = (List <StockDetailViewModel>)Cache.Get(CacheList.StockTempData); } if (AccessType == Ref.AccessProjectTradeType.G.ToString()) { //判斷至少勾選一筆資料 var vDetail = ((List <StockDetailViewModel>)Cache.Get(CacheList.StockMainData)).Where(x => x.vTakeoutFlag == true).ToList(); if (vDetail.Any()) { _data.vDetail = (List <StockDetailViewModel>)Cache.Get(CacheList.StockMainData); } else { _data.vDetail = new List <StockDetailViewModel>(); } } List <StockViewModel> _datas = new List <StockViewModel>(); _datas.Add(_data); result = Stock.ApplyAudit(_datas, data); if (result.RETURN_FLAG && !data.vAplyNo.IsNullOrWhiteSpace()) { new TreasuryAccessController().ResetSearchData(); } } else { result.RETURN_FLAG = false; result.DESCRIPTION = Ref.MessageType.login_Time_Out.GetDescription(); } return(Json(result)); }
public JsonResult ApplyTempData(string AplyNo) { MSGReturnModel <IEnumerable <ITreaItem> > result = new MSGReturnModel <IEnumerable <ITreaItem> >(); if (Cache.IsSet(CacheList.TreasuryAccessViewData) && Cache.IsSet(CacheList.BILLTempData)) { TreasuryAccessViewModel data = (TreasuryAccessViewModel)Cache.Get(CacheList.TreasuryAccessViewData); result = Bill.ApplyAudit((List <BillViewModel>)Cache.Get(CacheList.BILLTempData), data); if (result.RETURN_FLAG && !data.vAplyNo.IsNullOrWhiteSpace()) { new TreasuryAccessController().ResetSearchData(); } } else { result.RETURN_FLAG = false; result.DESCRIPTION = Ref.MessageType.login_Time_Out.GetDescription(); } return(Json(result)); }
public JsonResult GetItemBook(int groupNo, bool accessType, string aplyNo) { MSGReturnModel <EstateModel> result = new MSGReturnModel <EstateModel>(); result.RETURN_FLAG = false; result.DESCRIPTION = Ref.MessageType.login_Time_Out.GetDescription(); if (groupNo == 0 && Cache.IsSet(CacheList.ESTATEAllData)) //單純檢視畫面 { var data = (EstateViewModel)Cache.Get(CacheList.ESTATEAllData); result.RETURN_FLAG = true; result.Datas = data.vItem_Book; } else if (groupNo == -1) //大樓名稱選擇為第一項(空白),需清除明細資料 { Cache.Invalidate(CacheList.ESTATEData); Cache.Set(CacheList.ESTATEData, new List <EstateDetailViewModel>()); result.RETURN_FLAG = false; } else { if (Cache.IsSet(CacheList.TreasuryAccessViewData) && !accessType) //取出狀態 { TreasuryAccessViewModel viewdata = (TreasuryAccessViewModel)Cache.Get(CacheList.TreasuryAccessViewData); var _data = Estate.GetDataByGroupNo(groupNo, viewdata.vAplyUnit, aplyNo); Cache.Invalidate(CacheList.ESTATEData); Cache.Set(CacheList.ESTATEData, _data); } var data = Estate.GetItemBook(groupNo); if (Cache.IsSet(CacheList.ESTATEAllData) && !data.BOOK_NO.IsNullOrWhiteSpace()) { var vdata = (EstateViewModel)Cache.Get(CacheList.ESTATEAllData); vdata.vItem_Book = data; Cache.Invalidate(CacheList.ESTATEAllData); Cache.Set(CacheList.ESTATEAllData, vdata); result.RETURN_FLAG = true; result.Datas = data; } } return(Json(result)); }
/// <summary> /// 查詢申請單紀錄資料by單號 /// </summary> /// <param name="aplyNo"></param> /// <returns></returns> public TreasuryAccessViewModel GetByAplyNo(string aplyNo) { var result = new TreasuryAccessViewModel(); var depts = new List <VW_OA_DEPT>(); var emps = new List <V_EMPLY2>(); using (DB_INTRAEntities dbINTRA = new DB_INTRAEntities()) { depts = dbINTRA.VW_OA_DEPT.AsNoTracking().ToList(); emps = dbINTRA.V_EMPLY2.AsNoTracking().ToList(); } using (TreasuryDBEntities db = new TreasuryDBEntities()) { var formStatus = db.SYS_CODE.AsNoTracking().Where(x => x.CODE_TYPE == "FORM_STATUS").ToList(); var treaItemTypes = db.TREA_ITEM.AsNoTracking().Where(x => x.IS_DISABLED == "N" && x.ITEM_OP_TYPE == "3").ToList(); var data = db.TREA_APLY_REC.AsNoTracking().FirstOrDefault(x => x.APLY_NO == aplyNo); if (data != null) { result.vAplyNo = data.APLY_NO; result.vItem = treaItemTypes.FirstOrDefault(x => x.ITEM_ID == data.ITEM_ID)?.ITEM_DESC; result.vAplyUnitNmae = depts.FirstOrDefault(y => y.DPT_CD.Trim() == data.APLY_UNIT)?.DPT_NAME; //1904112 Bianco 改為顯示名子 result.vAplyUidName = emps.FirstOrDefault(x => x.USR_ID == data.APLY_UID)?.EMP_NAME; //1904112 Bianco 改為顯示名子 result.vAplyUnit = data.APLY_UNIT; result.vAplyUid = data.APLY_UID; result.vChargeUnit = depts.FirstOrDefault(y => y.DPT_CD.Trim() == data.APLY_UNIT)?.DPT_NAME; result.vAccessType = data.ACCESS_TYPE == "P" ? "存入" : data.ACCESS_TYPE == "G" ? "取出" : ""; //存入(P) or 取出(G) result.vExpectedAccessDate = TypeTransfer.dateTimeNToString(data.EXPECTED_ACCESS_DATE); result.vCreateDt = TypeTransfer.dateTimeNToString(data.CREATE_DT); var _createEmp = emps.FirstOrDefault(x => x.USR_ID == data.CREATE_UID); result.vCreateUnit = depts.FirstOrDefault(y => y.DPT_CD.Trim() == _createEmp?.DPT_CD?.Trim())?.DPT_NAME; result.vCreateUid = _createEmp?.EMP_NAME; result.vCreateUnit_Id = data.CREATE_UNIT; result.vCreateUid_Id = data.CREATE_UID; result.vAccessReason = data.ACCESS_REASON; result.vLastUpdateTime = data.LAST_UPDATE_DT; } } return(result); }
public ActionResult View(string AplyNo, TreasuryAccessViewModel data, Ref.OpenPartialViewType type) { ViewBag.OPVT = type; var _dActType = GetActType(type, AplyNo); if (AplyNo.IsNullOrWhiteSpace()) { Cache.Invalidate(CacheList.TreasuryAccessViewData); Cache.Set(CacheList.TreasuryAccessViewData, data); resetSealViewModel(data.vAccessType); } else { ViewBag.dAccess = TreasuryAccess.GetAccessType(AplyNo); var viewModel = TreasuryAccess.GetTreasuryAccessViewModel(AplyNo); Cache.Invalidate(CacheList.TreasuryAccessViewData); Cache.Set(CacheList.TreasuryAccessViewData, viewModel); resetSealViewModel(viewModel.vAccessType, AplyNo, _dActType); } ViewBag.dActType = _dActType; return(PartialView()); }
/// <summary> /// 使用單號抓取 申請表單資料 /// </summary> /// <param name="aplyNo">單號</param> /// <returns></returns> public TreasuryAccessViewModel GetTreasuryAccessViewModel(string aplyNo) { var result = new TreasuryAccessViewModel(); using (TreasuryDBEntities db = new TreasuryDBEntities()) { var TAR = db.TREA_APLY_REC.AsNoTracking() .FirstOrDefault(x => x.APLY_NO == aplyNo); if (TAR != null) { result.vAplyNo = TAR.APLY_NO; result.vAccessReason = TAR.ACCESS_REASON; result.vAccessType = TAR.ACCESS_TYPE; result.vAplyUid = TAR.APLY_UID; result.vAplyUnit = TAR.APLY_UNIT; result.vItem = TAR.ITEM_ID; result.vExpectedAccessDate = TAR.EXPECTED_ACCESS_DATE?.ToString("yyyy/MM/dd"); result.vCreateUid = TAR.CREATE_UID; result.vCreateUnit = TAR.CREATE_UNIT; result.vLastUpdateTime = TAR.LAST_UPDATE_DT; } } return(result); }
/// <summary> /// 修改申請單記錄檔 /// </summary> /// <param name="data">修改資料</param> /// <param name="custodianFlag">是否為保管科</param> /// <param name="searchData">申請表單查詢顯示區塊ViewModel</param> /// <returns></returns> public MSGReturnModel <List <TreasuryAccessSearchDetailViewModel> > updateAplyNo(TreasuryAccessViewModel data, bool custodianFlag, TreasuryAccessSearchViewModel searchData) { MSGReturnModel <List <TreasuryAccessSearchDetailViewModel> > result = new MSGReturnModel <List <TreasuryAccessSearchDetailViewModel> >(); result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription(); using (TreasuryDBEntities db = new TreasuryDBEntities()) { var updateData = db.TREA_APLY_REC.FirstOrDefault(x => x.APLY_NO == data.vAplyNo); if (updateData != null) { if (updateData.LAST_UPDATE_DT > data.vLastUpdateTime) { return(result); } if (custodianFlag) { updateData.APLY_UNIT = data.vAplyUnit; updateData.APLY_UID = data.vAplyUid; } updateData.ACCESS_REASON = data.vAccessReason; updateData.EXPECTED_ACCESS_DATE = TypeTransfer.stringToDateTimeN(data.vExpectedAccessDate); updateData.LAST_UPDATE_UID = AccountController.CurrentUserId; updateData.LAST_UPDATE_DT = DateTime.Now; try { db.SaveChanges(); result.DESCRIPTION = Ref.MessageType.update_Success.GetDescription(); result.RETURN_FLAG = true; result.Datas = GetSearchDetail(searchData); } catch (DbUpdateException ex) { result.DESCRIPTION = ex.exceptionMessage(); } } } return(result); }
/// <summary> /// 申請覆核動作 /// </summary> /// <param name="insertDatas"></param> /// <param name="taData"></param> /// <returns></returns> public MSGReturnModel <IEnumerable <ITreaItem> > ApplyAudit(IEnumerable <ITreaItem> insertDatas, TreasuryAccessViewModel taData) { var result = new MSGReturnModel <IEnumerable <ITreaItem> >(); result.RETURN_FLAG = false; DateTime dt = DateTime.Now; try { if (insertDatas != null) { //取得流水號 SysSeqDao sysSeqDao = new SysSeqDao(); String qPreCode = DateUtil.getCurChtDateTime().Split(' ')[0]; var datas = (List <BillViewModel>)insertDatas; string logStr = string.Empty; //log var item_Seq = "E2"; //空白票卷流水號開頭編碼 if (!taData.vAplyNo.IsNullOrWhiteSpace()) //修改已存在申請單 { if (datas.Any()) { using (TreasuryDBEntities db = new TreasuryDBEntities()) { var _APLY_STATUS = Ref.AccessProjectFormStatus.A01.ToString(); //表單申請 #region 申請單紀錄檔 var _TAR = db.TREA_APLY_REC.First(x => x.APLY_NO == taData.vAplyNo); if (CustodyAppr.Contains(_TAR.APLY_STATUS)) { _APLY_STATUS = CustodyConfirmStatus; _TAR.CUSTODY_UID = AccountController.CurrentUserId; //保管單位直接帶使用者 _TAR.CUSTODY_DT = dt; } else { if (_TAR.APLY_STATUS != _APLY_STATUS) //申請紀錄檔狀態不是在表單申請狀態 { _APLY_STATUS = Ref.AccessProjectFormStatus.A05.ToString(); //為重新申請案例 } } _TAR.APLY_STATUS = _APLY_STATUS; _TAR.LAST_UPDATE_DT = dt; logStr += _TAR.modelToString(logStr); #endregion #region 申請單歷程檔 var _ARH = new APLY_REC_HIS() { APLY_NO = taData.vAplyNo, APLY_STATUS = _APLY_STATUS, PROC_DT = dt, PROC_UID = taData.vCreateUid }; logStr += _ARH.modelToString(logStr); db.APLY_REC_HIS.Add(_ARH); #endregion #region 空白票據申請資料檔 List <BLANK_NOTE_APLY> updates = new List <BLANK_NOTE_APLY>(); List <BLANK_NOTE_APLY> inserts = new List <BLANK_NOTE_APLY>(); foreach (var item in datas) { if (item.vItemId.StartsWith(item_Seq)) // 舊有資料 { var _BNA = db.BLANK_NOTE_APLY.First( x => x.ITEM_ID == item.vItemId && x.APLY_NO == taData.vAplyNo); _BNA.CHECK_TYPE = item.vCheckType; _BNA.ISSUING_BANK = item.vIssuingBank; _BNA.CHECK_NO_TRACK = item.vCheckNoTrack; _BNA.CHECK_NO_B = item.vCheckNoB; _BNA.CHECK_NO_E = item.vCheckNoE; updates.Add(_BNA); logStr += _BNA.modelToString(logStr); } else { var item_id = sysSeqDao.qrySeqNo(item_Seq, string.Empty).ToString().PadLeft(8, '0'); var _BNA = new BLANK_NOTE_APLY() { APLY_NO = _TAR.APLY_NO, ITEM_ID = $@"{item_Seq}{item_id}", CHECK_TYPE = item.vCheckType, ISSUING_BANK = item.vIssuingBank, CHECK_NO_TRACK = item.vCheckNoTrack, CHECK_NO_B = item.vCheckNoB, CHECK_NO_E = item.vCheckNoE }; inserts.Add(_BNA); logStr += _BNA.modelToString(logStr); } } var ups = updates.Select(x => x.ITEM_ID).ToList(); db.BLANK_NOTE_APLY.RemoveRange( db.BLANK_NOTE_APLY.Where(x => x.APLY_NO == taData.vAplyNo && !ups.Contains(x.ITEM_ID)).ToList()); db.BLANK_NOTE_APLY.AddRange(inserts); #endregion #region Save Db var validateMessage = db.GetValidationErrors().getValidateString(); if (validateMessage.Any()) { result.DESCRIPTION = validateMessage; } else { try { db.SaveChanges(); #region LOG //新增LOG Log log = new Log(); log.CFUNCTION = "申請覆核-修改空白票據"; log.CACTION = "U"; log.CCONTENT = logStr; LogDao.Insert(log, _TAR.CREATE_UID); #endregion result.RETURN_FLAG = true; result.DESCRIPTION = Ref.MessageType.Apply_Audit_Success.GetDescription(null, $@"單號為{_TAR.APLY_NO}"); } catch (DbUpdateException ex) { result.DESCRIPTION = ex.exceptionMessage(); } } #endregion } } else { result.DESCRIPTION = Ref.MessageType.not_Find_Audit_Data.GetDescription(); } } else //新增申請單 { //取出只抓狀態為預約取出的資料 if (taData.vAccessType == Ref.AccessProjectTradeType.G.ToString()) { datas = datas.Where(x => x.vStatus == Ref.AccessInventoryType._4.GetDescription()).ToList(); } if (datas.Any()) { using (TreasuryDBEntities db = new TreasuryDBEntities()) { #region 申請單紀錄檔 & 申請單歷程檔 var data = SaveTREA_APLY_REC(db, taData, logStr, dt); logStr = data.Item2; #endregion string _ITEM_BLANK_NOTE_ITEM_ID = null; //紀錄空白票據申請資料檔 對應空白票據庫存資料檔 物品編號 bool _changFlag = false; datas.ForEach(x => { #region 取出時要把空白票據資料 做切段動作 if (taData.vAccessType == Ref.AccessProjectTradeType.G.ToString()) //取出時要把空白票據資料 做切段動作 { var _blank_Note = db.ITEM_BLANK_NOTE.FirstOrDefault(y => y.ITEM_ID == x.vItemId); if (_blank_Note != null) { if (_blank_Note.LAST_UPDATE_DT > x.vLast_Update_Time || _blank_Note.INVENTORY_STATUS != "1") { _changFlag = true; } else { _ITEM_BLANK_NOTE_ITEM_ID = _blank_Note.ITEM_ID; //全部取出 if (x.vTakeOutE == _blank_Note.CHECK_NO_E) { _blank_Note.INVENTORY_STATUS = "4"; //預約取出 } //分段取出 else { _blank_Note.CHECK_NO_B = (TypeTransfer.stringToInt(x.vTakeOutE) + 1).ToString().PadLeft(7, '0'); } _blank_Note.LAST_UPDATE_DT = dt; } } else { _changFlag = true; } } #endregion #region 空白票據申請資料檔 var item_id = sysSeqDao.qrySeqNo(item_Seq, string.Empty).ToString().PadLeft(8, '0'); var _BNA = new BLANK_NOTE_APLY() { APLY_NO = data.Item1, ITEM_ID = $@"{item_Seq}{item_id}", CHECK_TYPE = x.vCheckType, ISSUING_BANK = x.vIssuingBank, CHECK_NO_TRACK = x.vCheckNoTrack, CHECK_NO_B = x.vCheckNoB, CHECK_NO_E = taData.vAccessType == Ref.AccessProjectTradeType.P.ToString() ? x.vCheckNoE : x.vTakeOutE, ITEM_BLANK_NOTE_ITEM_ID = _ITEM_BLANK_NOTE_ITEM_ID }; db.BLANK_NOTE_APLY.Add(_BNA); logStr += _BNA.modelToString(logStr); #endregion }); if (_changFlag) { result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription(); return(result); } #region Save Db var validateMessage = db.GetValidationErrors().getValidateString(); if (validateMessage.Any()) { result.DESCRIPTION = validateMessage; } else { try { db.SaveChanges(); #region LOG //新增LOG Log log = new Log(); log.CFUNCTION = "申請覆核-新增空白票據"; log.CACTION = "A"; log.CCONTENT = logStr; LogDao.Insert(log, taData.vCreateUid); #endregion result.RETURN_FLAG = true; result.DESCRIPTION = Ref.MessageType.Apply_Audit_Success.GetDescription(null, $@"單號為{data.Item1}"); } catch (DbUpdateException ex) { result.DESCRIPTION = ex.exceptionMessage(); } } #endregion } } else { result.DESCRIPTION = Ref.MessageType.not_Find_Audit_Data.GetDescription(); } } } else { result.DESCRIPTION = Ref.MessageType.not_Find_Audit_Data.GetDescription(); } } catch (Exception ex) { result.DESCRIPTION = ex.exceptionMessage(); } return(result); }
/// <summary> /// 申請覆核 電子憑證 /// </summary> /// <param name="insertDatas">資料</param> /// <param name="taData">申請單資料</param> /// <returns></returns> public MSGReturnModel <IEnumerable <ITreaItem> > ApplyAudit(IEnumerable <ITreaItem> insertDatas, TreasuryAccessViewModel taData) { var result = new MSGReturnModel <IEnumerable <ITreaItem> >(); result.RETURN_FLAG = false; DateTime dt = DateTime.Now; try { if (insertDatas != null) { var datas = (List <CAViewModel>)insertDatas; if (datas.Any()) { using (TreasuryDBEntities db = new TreasuryDBEntities()) { //取得流水號 SysSeqDao sysSeqDao = new SysSeqDao(); string logStr = string.Empty; //log var item_Seq = "E5"; //電子憑證流水號開頭編碼 String qPreCode = DateUtil.getCurChtDateTime().Split(' ')[0]; var _TAR = new TREA_APLY_REC(); //申請單號 var _APLY_STATUS = Ref.AccessProjectFormStatus.A01.ToString(); //表單申請 if (!taData.vAplyNo.IsNullOrWhiteSpace()) //修改已存在申請單 { #region 申請單紀錄檔 _TAR = db.TREA_APLY_REC.First(x => x.APLY_NO == taData.vAplyNo); if (CustodyAppr.Contains(_TAR.APLY_STATUS)) { _APLY_STATUS = CustodyConfirmStatus; _TAR.CUSTODY_UID = AccountController.CurrentUserId; //保管單位直接帶使用者 _TAR.CUSTODY_DT = dt; } else { if (_TAR.APLY_STATUS != _APLY_STATUS) //申請紀錄檔狀態不是在表單申請狀態 { _APLY_STATUS = Ref.AccessProjectFormStatus.A05.ToString(); //為重新申請案例 } } _TAR.APLY_STATUS = _APLY_STATUS; _TAR.LAST_UPDATE_DT = dt; logStr += _TAR.modelToString(logStr); #endregion #region 申請單歷程檔 var _ARH = new APLY_REC_HIS() { APLY_NO = taData.vAplyNo, APLY_STATUS = _APLY_STATUS, PROC_DT = dt, PROC_UID = taData.vCreateUid }; logStr += _ARH.modelToString(logStr); db.APLY_REC_HIS.Add(_ARH); #endregion #region 電子憑證庫存資料檔 var _dept = intra.getDept_Sect(taData.vAplyUnit); List <string> oldItemIds = db.OTHER_ITEM_APLY.Where(x => x.APLY_NO == taData.vAplyNo).Select(x => x.ITEM_ID).ToList(); //原有 itemId List <string> updateItemIds = new List <string>(); //更新 itemId List <string> cancelItemIds = new List <string>(); //取消 itemId List <ITEM_CA> inserts = new List <ITEM_CA>(); //新增資料 //抓取有修改註記的 foreach (var item in datas) { var _IC_Item_Id = string.Empty; if (taData.vAccessType == Ref.AccessProjectTradeType.P.ToString()) //存入 { //只抓取預約存入 if (item.vStatus == Ref.AccessInventoryType._3.GetDescription()) { var _IC = new ITEM_CA(); if (item.vItemId.StartsWith(item_Seq)) //舊有資料 { _IC = db.ITEM_CA.FirstOrDefault(x => x.ITEM_ID == item.vItemId); if (_IC.LAST_UPDATE_DT > item.vLast_Update_Time) { result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription(); return(result); } _IC.CA_DESC = item.vCA_Desc; //電子憑證品項 _IC.CA_USE = item.vCA_Use; //電子憑證用途 _IC.BANK = item.vBank; //銀行/廠商 _IC.CA_NUMBER = item.vCA_Number; //電子憑證號碼 _IC.MEMO = item.vMemo; //備註說明 updateItemIds.Add(item.vItemId); logStr += _IC.modelToString(logStr); } else { var item_id = sysSeqDao.qrySeqNo(item_Seq, string.Empty).ToString().PadLeft(8, '0'); _IC = new ITEM_CA() { ITEM_ID = $@"{item_Seq}{item_id}", //物品編號 INVENTORY_STATUS = "3", //預約存入 CA_DESC = item.vCA_Desc, //電子憑證品項 CA_USE = item.vCA_Use, //電子憑證用途 BANK = item.vBank, //銀行/廠商 CA_NUMBER = item.vCA_Number, //電子憑證號碼 MEMO = item.vMemo, //備註說明 APLY_DEPT = _dept.Item1, //申請人部門 APLY_SECT = _dept.Item2, //申請人科別 APLY_UID = taData.vAplyUid, //申請人 CHARGE_DEPT = _dept.Item1, //權責部門 CHARGE_SECT = _dept.Item2, //權責科別 //PUT_DATE = dt, //存入日期時間 LAST_UPDATE_DT = dt, //最後修改時間 }; _IC_Item_Id = _IC.ITEM_ID; inserts.Add(_IC); logStr += _IC.modelToString(logStr); } } } else if (taData.vAccessType == Ref.AccessProjectTradeType.G.ToString() && (_APLY_STATUS != CustodyConfirmStatus))//取出 { var _IC = db.ITEM_CA.FirstOrDefault(x => x.ITEM_ID == item.vItemId); if (_IC.LAST_UPDATE_DT > item.vLast_Update_Time) { result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription(); return(result); } //預約取出 if (item.vtakeoutFlag) { if (_IC.INVENTORY_STATUS == "1") //原先為在庫 { _IC.INVENTORY_STATUS = "4"; //預約取出 _IC.LAST_UPDATE_DT = dt; //最後修改時間 updateItemIds.Add(_IC.ITEM_ID); } else if (_IC.INVENTORY_STATUS == "4") //原先為預約取出 { updateItemIds.Add(_IC.ITEM_ID); } } else { if (_IC.INVENTORY_STATUS == "4") //原先為在庫 { _IC.INVENTORY_STATUS = "1"; //預約取出 _IC.LAST_UPDATE_DT = dt; //最後修改時間 } } } } if (taData.vAccessType == Ref.AccessProjectTradeType.P.ToString()) //存入 { var delItemId = oldItemIds.Where(x => !updateItemIds.Contains(x)).ToList(); db.OTHER_ITEM_APLY.RemoveRange(db.OTHER_ITEM_APLY.Where(x => x.APLY_NO == taData.vAplyNo && delItemId.Contains(x.ITEM_ID)).ToList()); db.ITEM_CA.RemoveRange(db.ITEM_CA.Where(x => delItemId.Contains(x.ITEM_ID)).ToList()); db.OTHER_ITEM_APLY.AddRange(inserts.Select(x => new OTHER_ITEM_APLY() { APLY_NO = taData.vAplyNo, ITEM_ID = x.ITEM_ID })); db.ITEM_CA.AddRange(inserts); } else if (taData.vAccessType == Ref.AccessProjectTradeType.G.ToString() && (_APLY_STATUS != CustodyConfirmStatus))//取出 { db.OTHER_ITEM_APLY.RemoveRange(db.OTHER_ITEM_APLY.Where(x => x.APLY_NO == taData.vAplyNo).ToList()); db.OTHER_ITEM_APLY.AddRange(updateItemIds.Select(x => new OTHER_ITEM_APLY() { APLY_NO = taData.vAplyNo, ITEM_ID = x })); } #endregion } else { #region 申請單紀錄檔 & 申請單歷程檔 var data = SaveTREA_APLY_REC(db, taData, logStr, dt); _TAR.APLY_NO = data.Item1; logStr = data.Item2; #endregion #region 電子憑證庫存資料檔 var _dept = intra.getDept_Sect(taData.vAplyUnit); //抓取有修改註記的 foreach (var item in datas) { var _IC_Item_Id = string.Empty; if (taData.vAccessType == Ref.AccessProjectTradeType.P.ToString()) //存入 { //只抓取預約存入 if (item.vStatus == Ref.AccessInventoryType._3.GetDescription()) { var item_id = sysSeqDao.qrySeqNo(item_Seq, string.Empty).ToString().PadLeft(8, '0'); var _IC = new ITEM_CA() { ITEM_ID = $@"{item_Seq}{item_id}", //物品編號 INVENTORY_STATUS = "3", //預約存入 CA_DESC = item.vCA_Desc, //電子憑證品項 CA_USE = item.vCA_Use, //電子憑證用途 BANK = item.vBank, //銀行/廠商 CA_NUMBER = item.vCA_Number, //電子憑證號碼 MEMO = item.vMemo, //備註說明 APLY_DEPT = _dept.Item1, //申請人部門 APLY_SECT = _dept.Item2, //申請人科別 APLY_UID = taData.vAplyUid, //申請人 CHARGE_DEPT = _dept.Item1, //權責部門 CHARGE_SECT = _dept.Item2, //權責科別 //PUT_DATE = dt, //存入日期時間 LAST_UPDATE_DT = dt, //最後修改時間 }; _IC_Item_Id = _IC.ITEM_ID; db.ITEM_CA.Add(_IC); logStr += _IC.modelToString(logStr); } } else if (taData.vAccessType == Ref.AccessProjectTradeType.G.ToString())//取出 { //只抓取預約取出 if (item.vStatus == Ref.AccessInventoryType._4.GetDescription()) { var _IC = db.ITEM_CA.FirstOrDefault(x => x.ITEM_ID == item.vItemId); _IC_Item_Id = _IC.ITEM_ID; if (_IC.LAST_UPDATE_DT > item.vLast_Update_Time) { result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription(); return(result); } _IC.INVENTORY_STATUS = "4"; //預約取出 //_IRE.GET_DATE = dt; //取出日期時間 _IC.LAST_UPDATE_DT = dt; //最後修改時間 } } #region 其它存取項目申請資料檔 if (!_IC_Item_Id.IsNullOrWhiteSpace()) { db.OTHER_ITEM_APLY.Add( new OTHER_ITEM_APLY() { APLY_NO = _TAR.APLY_NO, ITEM_ID = _IC_Item_Id }); } #endregion } #endregion } #region Save Db var validateMessage = db.GetValidationErrors().getValidateString(); if (validateMessage.Any()) { result.DESCRIPTION = validateMessage; } else { try { db.SaveChanges(); #region LOG //新增LOG Log log = new Log(); log.CFUNCTION = "申請覆核-新增電子憑證"; log.CACTION = "A"; log.CCONTENT = logStr; LogDao.Insert(log, taData.vCreateUid); #endregion result.RETURN_FLAG = true; result.DESCRIPTION = Ref.MessageType.Apply_Audit_Success.GetDescription(null, $@"單號為{_TAR.APLY_NO}"); } catch (DbUpdateException ex) { result.DESCRIPTION = ex.exceptionMessage(); } } #endregion } } else { result.DESCRIPTION = Ref.MessageType.not_Find_Audit_Data.GetDescription(); } } else { result.DESCRIPTION = Ref.MessageType.not_Find_Audit_Data.GetDescription(); } } catch (Exception ex) { result.DESCRIPTION = ex.exceptionMessage(); } return(result); }