/// <summary> /// 作廢 (保留資料) /// </summary> /// <param name="searchData">金庫物品存取主畫面查詢ViewModel</param> /// <param name="data">申請表單查詢顯示區塊ViewModel</param> /// <returns></returns> public MSGReturnModel <List <TreasuryAccessSearchDetailViewModel> > Invalidate(TreasuryAccessSearchViewModel searchData, TreasuryAccessSearchDetailViewModel data) { var result = new MSGReturnModel <List <TreasuryAccessSearchDetailViewModel> >(); result.RETURN_FLAG = false; result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription(); DateTime dt = DateTime.Now; string logStr = string.Empty; //取得流水號 var _status = Ref.AccessProjectFormStatus.E02.ToString(); using (TreasuryDBEntities db = new TreasuryDBEntities()) { var _TREA_APLY_REC = db.TREA_APLY_REC.FirstOrDefault(x => x.APLY_NO == data.vAPLY_NO); if (_TREA_APLY_REC != null) { if (_TREA_APLY_REC.LAST_UPDATE_DT > data.vLast_Update_Time) { return(result); } _TREA_APLY_REC.LAST_UPDATE_UID = AccountController.CurrentUserId; _TREA_APLY_REC.LAST_UPDATE_DT = dt; _TREA_APLY_REC.APLY_STATUS = _status; logStr += _TREA_APLY_REC.modelToString(logStr); #region 作廢 var sampleFactory = new SampleFactory(); var getAgenct = sampleFactory.GetAgenct(EnumUtil.GetValues <Ref.TreaItemType>().First(x => x.ToString() == _TREA_APLY_REC.ITEM_ID)); if (getAgenct != null) { var _recover = getAgenct.ObSolete(db, _TREA_APLY_REC.APLY_NO, _TREA_APLY_REC.ACCESS_TYPE, logStr, dt); if (!_recover.Item1) //失敗 { return(result); } logStr += _recover.Item2; } else { return(result); } #endregion #region 申請單歷程檔 //「取消申請」:新增「E02」申請人刪除的狀態資料。 var ARH = new APLY_REC_HIS() { APLY_NO = _TREA_APLY_REC.APLY_NO, APLY_STATUS = _status, PROC_UID = searchData.vCreateUid, PROC_DT = dt }; logStr += ARH.modelToString(logStr); db.APLY_REC_HIS.Add(ARH); #endregion 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, searchData.vCreateUid); #endregion result.RETURN_FLAG = true; result.DESCRIPTION = $@"單號{data.vAPLY_NO} 已作廢!"; } catch (DbUpdateException ex) { result.DESCRIPTION = ex.exceptionMessage(); } } } if (result.RETURN_FLAG) { result.Datas = GetSearchDetail(searchData); } } return(result); }
/// <summary> /// 刪除申請 (刪除資料) /// </summary> /// <param name="searchData">金庫物品存取主畫面查詢ViewModel</param> /// <param name="data">申請表單查詢顯示區塊ViewModel</param> /// <returns></returns> public MSGReturnModel <List <TreasuryAccessSearchDetailViewModel> > Cancel(TreasuryAccessSearchViewModel searchData, TreasuryAccessSearchDetailViewModel data) { var result = new MSGReturnModel <List <TreasuryAccessSearchDetailViewModel> >(); result.RETURN_FLAG = false; result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription(); DateTime dt = DateTime.Now; string logStr = string.Empty; //取得流水號 SysSeqDao sysSeqDao = new SysSeqDao(); String qPreCode = DateUtil.getCurChtDateTime().Split(' ')[0]; using (TreasuryDBEntities db = new TreasuryDBEntities()) { var _TREA_APLY_REC = db.TREA_APLY_REC.FirstOrDefault(x => x.APLY_NO == data.vAPLY_NO); if (_TREA_APLY_REC != null) { if (_TREA_APLY_REC.LAST_UPDATE_DT > data.vLast_Update_Time) { return(result); } logStr += _TREA_APLY_REC.modelToString(); #region 刪除申請 var sampleFactory = new SampleFactory(); var getAgenct = sampleFactory.GetAgenct(EnumUtil.GetValues <Ref.TreaItemType>().First(x => x.ToString() == _TREA_APLY_REC.ITEM_ID)); if (getAgenct != null) { var _recover = getAgenct.CancelApply(db, _TREA_APLY_REC.APLY_NO, _TREA_APLY_REC.ACCESS_TYPE, logStr, dt); if (!_recover.Item1) //失敗 { return(result); } logStr = _recover.Item2; } else { return(result); } #endregion #region 刪除 申請單歷程檔 db.APLY_REC_HIS.RemoveRange(db.APLY_REC_HIS.Where(x => x.APLY_NO == _TREA_APLY_REC.APLY_NO)); #endregion #region 刪除 申請單紀錄檔 db.TREA_APLY_REC.Remove(_TREA_APLY_REC); #endregion 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 = "D"; log.CCONTENT = logStr; LogDao.Insert(log, searchData.vCreateUid); #endregion result.RETURN_FLAG = true; result.DESCRIPTION = $@"單號{data.vAPLY_NO} 已刪除!"; } catch (DbUpdateException ex) { result.DESCRIPTION = ex.exceptionMessage(); } } } if (result.RETURN_FLAG) { result.Datas = GetSearchDetail(searchData); } } return(result); }