// GET: specifiedTimeTreasury /// <summary> /// 畫面初始 /// </summary> /// <returns></returns> public ActionResult Index() { SpecifiedTimeTreasurySearchViewModel searchModel = new SpecifiedTimeTreasurySearchViewModel(); var dt = DateTime.Today; searchModel.vAPLY_DT_S = dt.ToString("yyyy/MM/dd"); searchModel.vAPLY_DT_E = dt.ToString("yyyy/MM/dd"); Cache.Invalidate(CacheList.SpecifiedTimeTreasurySearchData); Cache.Set(CacheList.SpecifiedTimeTreasurySearchData, searchModel); ViewBag.opScope = GetopScope("~/SpecifiedTimeTrea/"); var data = SpecifiedTimeTreasury.GetTreaItem(); Dictionary <string, object> attr = new Dictionary <string, object>(); attr.Add("class", "forclick"); //作業類型1 ViewBag.workType1 = Extension.CheckBoxString("WorkType1", data.Item1, attr, 1).Replace('\'', '\"'); //作業類型2 ViewBag.workType2 = Extension.CheckBoxString("WorkType2", data.Item2, null, 1).Replace('\'', '\"'); //作業類型3 ViewBag.workType3 = Extension.CheckBoxString("WorkType3", data.Item3, null, 1).Replace('\'', '\"'); //作業類型4 ViewBag.workType4 = Extension.CheckBoxString("WorkType4", data.Item4, null, 1).Replace('\'', '\"'); //內文編號(EmailId) ViewBag.emailId = data.Item5; //目前使用者 ViewBag.cUserId = AccountController.CurrentUserId; return(View()); }
/// <summary> /// 查詢 /// </summary> /// <param name="data"></param> /// <returns></returns> public List <SpecifiedTimeTreasurySearchDetailViewModel> GetSearchDetail(SpecifiedTimeTreasurySearchViewModel data) { List <SpecifiedTimeTreasurySearchDetailViewModel> result = new List <SpecifiedTimeTreasurySearchDetailViewModel>(); if (!data.vAPLY_DT_S.Any() || !data.vAPLY_DT_E.Any()) // 無查詢日期 { return(result); } using (TreasuryDBEntities db = new TreasuryDBEntities()) { DateTime?_vAPLY_DT_S = TypeTransfer.stringToDateTimeN(data.vAPLY_DT_S); DateTime?_vAPLY_DT_E = TypeTransfer.stringToDateTimeN(data.vAPLY_DT_E).DateToLatestTime(); List <string> notShowList = new List <string>(); notShowList.Add("D1001"); notShowList.Add("D1002"); notShowList.Add("D1003"); var _data = db.TREA_OPEN_REC.AsNoTracking() .Where(x => x.OPEN_TREA_TYPE == "2") //開庫類型: 2.指定時間開庫 .Where(x => x.CREATE_DT >= _vAPLY_DT_S, _vAPLY_DT_S != null) //申請日期(起) .Where(x => x.CREATE_DT <= _vAPLY_DT_E, _vAPLY_DT_E != null) //申請日期(迄) .Where(x => x.TREA_REGISTER_ID == data.vTREA_REGISTER_ID, !data.vTREA_REGISTER_ID.IsNullOrWhiteSpace()) //工作單號 .OrderBy(x => x.CREATE_DT); var _item = db.TREA_ITEM.AsNoTracking() .Select(x => new { x.ITEM_ID, x.ITEM_DESC }).ToList(); var _query = _data.Join(db.SYS_CODE.AsNoTracking().Where(x => x.CODE_TYPE == "APPR_STATUS"), x => x.APPR_STATUS, z => z.CODE, (x, z) => new { open = x, sysCode = z }) .AsEnumerable() .Select((x, index) => new SpecifiedTimeTreasurySearchDetailViewModel() { vINDEX = (index + 1).ToString(), vCREATE_DT = x.open.CREATE_DT?.ToString("yyyy/MM/dd"), vTREA_REGISTER_ID = x.open.TREA_REGISTER_ID, vAPLY_STATUS = x.sysCode.CODE_VALUE, vOPEN_TREA_REASON = "取" + string.Join("及", x.open.OPEN_TREA_REASON.Split(';').ToList() .Where(z => !notShowList.Contains(z)) .Select(z => _item.FirstOrDefault(y => y.ITEM_ID == z)?.ITEM_DESC) .Where(z => z != null) ), vOPEN_TREA_TIME = x.open.OPEN_TREA_TIME, vMEMO = x.open.MEMO, vOPEN_TREA_DATE = x.open.OPEN_TREA_DATE.ToString("yyyy/MM/dd"), vOPEN_TREA_REASON_ID = x.open.OPEN_TREA_REASON, vEXEC_TIME_B = x.open.EXEC_TIME_B, vEXEC_TIME_E = x.open.EXEC_TIME_E, vCREATE_UID = x.open.CREATE_UID, vAPLY_STATUS_ID = x.open.APPR_STATUS, vAPPR_UID = x.open.APPR_UID }); result.AddRange(_query); } return(result); }
public JsonResult Search(SpecifiedTimeTreasurySearchViewModel searchModel) { MSGReturnModel <string> result = new MSGReturnModel <string>(); result.RETURN_FLAG = false; result.DESCRIPTION = Ref.MessageType.not_Find_Any.GetDescription(); Cache.Invalidate(CacheList.SpecifiedTimeTreasurySearchData); Cache.Set(CacheList.SpecifiedTimeTreasurySearchData, searchModel); var datas = SpecifiedTimeTreasury.GetSearchDetail(searchModel); if (datas.Any()) { Cache.Invalidate(CacheList.SpecifiedTimeTreasurySearchDetailViewData); Cache.Set(CacheList.SpecifiedTimeTreasurySearchDetailViewData, datas); result.RETURN_FLAG = true; } return(Json(result)); }
public MSGReturnModel <List <SpecifiedTimeTreasurySearchDetailViewModel> > CancelApplyData(SpecifiedTimeTreasuryCancelViewModel data, string currentUserId, SpecifiedTimeTreasurySearchViewModel searchData) { var result = new MSGReturnModel <List <SpecifiedTimeTreasurySearchDetailViewModel> >(); result.RETURN_FLAG = false; result.DESCRIPTION = Ref.MessageType.update_Fail.GetDescription(); string logStr = string.Empty; //log //bool 登入者與申請者為同一人 if (data.vCREATE_UID == currentUserId) { if (data.vAPLY_STATUS_ID == ((int)Ref.ApplyStatus._1).ToString() || data.vAPLY_STATUS_ID == ((int)Ref.ApplyStatus._3).ToString()) { using (TreasuryDBEntities db = new TreasuryDBEntities()) { var _data = db.TREA_OPEN_REC.FirstOrDefault(x => x.TREA_REGISTER_ID == data.vTREA_REGISTER_ID); //統一取系統時間 DateTime dt = DateTime.Now; if (_data != null) { if (_data.APPR_UID == null) { db.TREA_OPEN_REC.Remove(_data); } else { _data.APPR_STATUS = "4"; _data.LAST_UPDATE_UID = currentUserId; _data.LAST_UPDATE_DT = dt; } logStr += _data.modelToString(logStr); var validateMessage = db.GetValidationErrors().getValidateString(); if (validateMessage.Any()) { result.DESCRIPTION = validateMessage; } else { try { db.SaveChanges(); if (data.vAPPR_UID == null) { result.DESCRIPTION = Ref.MessageType.delete_Success.GetDescription(); #region LOG //新增LOG Log log = new Log(); log.CFUNCTION = "取消覆核(作廢)"; log.CACTION = "D"; log.CCONTENT = logStr; LogDao.Insert(log, currentUserId); #endregion } else { result.DESCRIPTION = Ref.MessageType.update_Success.GetDescription();; #region LOG //新增LOG Log log = new Log(); log.CFUNCTION = "取消覆核"; log.CACTION = "U"; log.CCONTENT = logStr; LogDao.Insert(log, currentUserId); #endregion } result.RETURN_FLAG = true; } catch (DbUpdateException ex) { result.DESCRIPTION = ex.exceptionMessage(); } } } else { result.DESCRIPTION = Ref.MessageType.not_Find_Audit_Data.GetDescription(); } } } else { result.DESCRIPTION = Ref.MessageType.parameter_Error.GetDescription(); } } if (result.RETURN_FLAG) { result.Datas = GetSearchDetail(searchData); } return(result); }
/// <summary> /// 修改申請覆核 /// </summary> /// <param name="data"></param> /// <param name="currntUserId">目前使用者ID</param> /// <param name="searchData"></param> /// <returns></returns> public MSGReturnModel <List <SpecifiedTimeTreasurySearchDetailViewModel> > UpdateApplyData(SpecifiedTimeTreasuryUpdateViewModel data, string currentUserId, SpecifiedTimeTreasurySearchViewModel searchData) { var result = new MSGReturnModel <List <SpecifiedTimeTreasurySearchDetailViewModel> >(); result.RETURN_FLAG = false; result.DESCRIPTION = Ref.MessageType.update_Fail.GetDescription(); string logStr = string.Empty; //log //bool 登入者與申請者為同一人 if (data.vCREATE_UID == currentUserId) { using (TreasuryDBEntities db = new TreasuryDBEntities()) { var _data = db.TREA_OPEN_REC.FirstOrDefault(x => x.TREA_REGISTER_ID == data.vTREA_REGISTER_ID); //統一取系統時間 DateTime dt = DateTime.Now; if (_data != null) { _data.EXEC_TIME_B = data.vEXEC_TIME_B; _data.EXEC_TIME_E = data.vEXEC_TIME_E; _data.OPEN_TREA_TIME = data.vOPEN_TREA_TIME; _data.MEMO = data.vMEMO; _data.OPEN_TREA_REASON = string.Join(";", data.vOPEN_TREA_REASON_ID.ToArray()); _data.APPR_STATUS = "1"; _data.LAST_UPDATE_UID = currentUserId; _data.LAST_UPDATE_DT = dt; logStr += _data.modelToString(logStr); 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, currentUserId); #endregion result.RETURN_FLAG = true; result.DESCRIPTION = Ref.MessageType.update_Success.GetDescription(); } catch (DbUpdateException ex) { result.DESCRIPTION = ex.exceptionMessage(); } } } else { result.DESCRIPTION = Ref.MessageType.not_Find_Audit_Data.GetDescription(); } } } if (result.RETURN_FLAG) { result.Datas = GetSearchDetail(searchData); } return(result); }
/// <summary> /// 新增申請覆核 /// </summary> /// <param name="data"></param> /// <param name="currentUserId">目前使用者ID</param> /// <returns></returns> public MSGReturnModel <List <SpecifiedTimeTreasurySearchDetailViewModel> > InsertApplyData(SpecifiedTimeTreasuryApplyViewModel data, string currentUserId, SpecifiedTimeTreasurySearchViewModel searchData) { var result = new MSGReturnModel <List <SpecifiedTimeTreasurySearchDetailViewModel> >(); result.RETURN_FLAG = false; result.DESCRIPTION = Ref.MessageType.Apply_Audit_Fail.GetDescription(); string logStr = string.Empty; //log using (TreasuryDBEntities db = new TreasuryDBEntities()) { var _data = db.TREA_OPEN_REC .Add(MappingTableForInsert(data, currentUserId)); logStr += _data.modelToString(logStr); 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 = "C"; log.CCONTENT = logStr; LogDao.Insert(log, currentUserId); #endregion result.RETURN_FLAG = true; result.DESCRIPTION = Ref.MessageType.Apply_Audit_Success.GetDescription();; } catch (DbUpdateException ex) { result.DESCRIPTION = ex.exceptionMessage(); } } if (result.RETURN_FLAG) { result.Datas = GetSearchDetail(searchData); } } return(result); }