/// <summary> /// 查詢資料 /// </summary> /// <param name="searchModel">查詢ViwModel</param> /// <returns></returns> public IEnumerable <ITinItem> GetSearchData(ITinItem searchModel) { var searchData = (ItemChargeUnitSearchViewModel)searchModel; List <ItemChargeUnitSearchDetailViewModel> result = new List <ItemChargeUnitSearchDetailViewModel>(); using (TreasuryDBEntities db = new TreasuryDBEntities()) { var emps = GetEmps(); var depts = GetDepts(); var _ITEM_CHARGE_UNIT = db.ITEM_CHARGE_UNIT.AsNoTracking(); var _ITEM_CHARGE_UNIT_HIS = db.ITEM_CHARGE_UNIT_HIS.AsNoTracking().Where(x => x.APPR_DATE == null).ToList(); var _TREA_ITEM = db.TREA_ITEM.AsNoTracking(); var _SYS_CODE = db.SYS_CODE.AsNoTracking(); result = _ITEM_CHARGE_UNIT .Where(x => x.CHARGE_DEPT == searchData.vCHARGE_DEPT, searchData.vCHARGE_DEPT != "All") .Where(x => x.CHARGE_SECT == searchData.vCHARGE_SECT, searchData.vCHARGE_SECT != "All") .Where(x => x.CHARGE_UID == searchData.vCHARGE_UID, searchData.vCHARGE_UID != "All") .AsEnumerable() .Join(_TREA_ITEM .Where(x => x.ITEM_ID == searchData.vTREA_ITEM_NAME, searchData.vTREA_ITEM_NAME != "All") //.Where(x => x.DAILY_FLAG == "N") //每日進出 = N .AsEnumerable(), ICU => ICU.ITEM_ID, TI => TI.ITEM_ID, (ICU, TI) => new ItemChargeUnitSearchDetailViewModel { vEXEC_ACTION = _ITEM_CHARGE_UNIT_HIS.FirstOrDefault(y => y.CHARGE_UNIT_ID == ICU.CHARGE_UNIT_ID)?.EXEC_ACTION?.Trim(), vEXEC_ACTION_VALUE = _SYS_CODE.Where(y => y.CODE_TYPE == "EXEC_ACTION").ToList().FirstOrDefault(y => y.CODE == _ITEM_CHARGE_UNIT_HIS.FirstOrDefault(z => z.CHARGE_UNIT_ID == ICU.CHARGE_UNIT_ID)?.EXEC_ACTION?.Trim())?.CODE_VALUE?.Trim(), vTREA_ITEM_NAME = TI.ITEM_ID, vTREA_ITEM_NAME_VALUE = TI.ITEM_DESC, vCHARGE_DEPT = ICU.CHARGE_DEPT, vCHARGE_DEPT_VALUE = !ICU.CHARGE_DEPT.IsNullOrWhiteSpace()? depts.FirstOrDefault(y => y.DPT_CD != null && y.DPT_CD.Trim() == ICU.CHARGE_DEPT)?.DPT_NAME?.Trim() : null, vCHARGE_SECT = ICU.CHARGE_SECT, vCHARGE_SECT_VALUE = !ICU.CHARGE_SECT.IsNullOrWhiteSpace()? emps.FirstOrDefault(y => y.DPT_CD != null && y.DPT_CD.Trim() == ICU.CHARGE_SECT)?.DPT_NAME?.Trim() : null, vIS_MAIL_DEPT_MGR = ICU.IS_MAIL_DEPT_MGR, vIS_MAIL_SECT_MGR = ICU.IS_MAIL_SECT_MGR, vCHARGE_UID = ICU.CHARGE_UID, vCHARGE_NAME = !ICU.CHARGE_UID.IsNullOrWhiteSpace()? emps.FirstOrDefault(y => y.USR_ID == ICU.CHARGE_UID)?.EMP_NAME?.Trim() : null, vDATA_STATUS = ICU.DATA_STATUS, vDATA_STATUS_VALUE = !ICU.DATA_STATUS.IsNullOrWhiteSpace()? _SYS_CODE.FirstOrDefault(y => y.CODE_TYPE == "DATA_STATUS" && y.CODE == ICU.DATA_STATUS)?.CODE_VALUE?.Trim() : null, vFREEZE_UID = ICU.FREEZE_UID, vFREEZE_NAME = !ICU.FREEZE_UID.IsNullOrWhiteSpace()? emps.FirstOrDefault(y => y.USR_ID == ICU.FREEZE_UID)?.EMP_NAME?.Trim() : null, vIS_DISABLED = ICU.IS_DISABLED, vCHARGE_UNIT_ID = ICU.CHARGE_UNIT_ID, vLAST_UPDATE_DT = ICU.LAST_UPDATE_DT, vAPLY_NO = ICU.DATA_STATUS != "1" ? _ITEM_CHARGE_UNIT_HIS.FirstOrDefault(y => y.CHARGE_UNIT_ID == ICU.CHARGE_UNIT_ID)?.APLY_NO?.Trim() : "", }).ToList(); } return(result); }
/// <summary> /// 異動紀錄查詢資料 /// </summary> /// <param name="searchModel">查詢ViwModel</param> /// <param name="aply_No">申請單號</param> /// <returns></returns> public IEnumerable <ITinItem> GetChangeRecordSearchData(ITinItem searchModel, string aply_No = null) { var searchData = (DepChkItemChangeRecordSearchViewModel)searchModel; List <DepChkItemChangeRecordViewModel> result = new List <DepChkItemChangeRecordViewModel>(); using (TreasuryDBEntities db = new TreasuryDBEntities()) { var emps = GetEmps(); var _Exec_Action = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "EXEC_ACTION").ToList(); var _Is_Disabled = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "IS_DISABLED").ToList(); var _Appr_Status = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "APPR_STATUS").ToList(); if (aply_No.IsNullOrWhiteSpace()) { } else { result = db.DEP_CHK_ITEM_HIS.AsNoTracking() .Where(x => x.APLY_NO == aply_No) .Where(x => x.ACCESS_TYPE == searchData.vAccess_Type, searchData.vAccess_Type != null) .Where(x => x.ISORTBY == searchData.vIsortby, searchData.vIsortby != 0) .AsEnumerable() .Select((x) => new DepChkItemChangeRecordViewModel() { vAply_Date = x.APLY_DATE.ToString("yyyy/MM/dd"), vAply_No = x.APLY_NO, vAply_Uid_Name = !x.APLY_UID.IsNullOrWhiteSpace() ? emps.FirstOrDefault(y => y.USR_ID == x.APLY_UID)?.EMP_NAME.Trim() : null, vExec_Action_Name = _Exec_Action.FirstOrDefault(y => y.CODE == x.EXEC_ACTION)?.CODE_VALUE.Trim(), vDep_Chk_Item_Desc = x.DEP_CHK_ITEM_DESC, vDep_Chk_Item_Desc_B = x.DEP_CHK_ITEM_DESC_B, vIs_Disabled_Name = _Is_Disabled.FirstOrDefault(y => y.CODE == x.IS_DISABLED)?.CODE_VALUE.Trim(), vIs_Disabled_B_Name = _Is_Disabled.FirstOrDefault(y => y.CODE == x.IS_DISABLED_B)?.CODE_VALUE.Trim(), vItem_Order = x.ITEM_ORDER, vItem_Order_B = x.ITEM_ORDER_B, vReplace = x.REPLACE, vReplace_B = x.REPLACE_B, vAppr_Status_Name = _Appr_Status.FirstOrDefault(y => y.CODE == x.APPR_STATUS)?.CODE_VALUE.Trim(), vAppr_Desc = x.APPR_DESC }).ToList(); } } return(result); }
/// <summary> /// 查詢資料 /// </summary> /// <param name="searchModel">查詢ViwModel</param> /// <returns></returns> public IEnumerable <ITinItem> GetSearchData(ITinItem searchModel) { var searchData = (TreasuryMailContentSearchViewModel)searchModel; List <TreasuryMailContentViewModel> result = new List <TreasuryMailContentViewModel>(); if (searchData == null) { return(result); } using (TreasuryDBEntities db = new TreasuryDBEntities()) { var emps = GetEmps(); var _Is_Disabled = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "IS_DISABLED").ToList(); var _DATA_STATUS = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "DATA_STATUS").ToList(); var his = db.MAIL_CONTENT_HIS.AsNoTracking() .Where(x => x.APPR_DATE == null).ToList(); result.AddRange(db.MAIL_CONTENT.AsNoTracking() .Where(x => x.MAIL_CONTENT_ID == searchData.vMAIL_CONTENT_ID, searchData.vMAIL_CONTENT_ID != "All") .Where(x => x.IS_DISABLED == searchData.vIS_DISABLED, searchData.vIS_DISABLED != "All") .AsEnumerable() .Select((x) => new TreasuryMailContentViewModel() { vMAIL_CONTENT_ID = x.MAIL_CONTENT_ID, vMAIL_SUBJECT = x.MAIL_SUBJECT, vMAIL_CONTENT = x.MAIL_CONTENT1, vIS_DISABLED = x.IS_DISABLED, vIS_DISABLED_D = _Is_Disabled.FirstOrDefault(y => y.CODE == x.IS_DISABLED)?.CODE_VALUE, vStatus = x.DATA_STATUS, vStatus_D = _DATA_STATUS.FirstOrDefault(y => y.CODE == x.DATA_STATUS)?.CODE_VALUE, vAPLY_NO = x.DATA_STATUS != "1" ? his.FirstOrDefault(y => y.MAIL_CONTENT_ID == x.MAIL_CONTENT_ID)?.APLY_NO : "", vFREEZE_UID = x.FREEZE_UID, vFREEZE_UID_Name = emps.FirstOrDefault(y => y.USR_ID == x.FREEZE_UID)?.EMP_NAME?.Trim(), vLAST_UPDATE_UID = x.LAST_UPDATE_UID, vLAST_UPDATE_UID_Name = emps.FirstOrDefault(y => y.USR_ID == x.LAST_UPDATE_UID)?.EMP_NAME?.Trim(), vLAST_UPDATE_DATE = x.LAST_UPDATE_DT.dateTimeToStr(), vLAST_UPDATE_DT = x.LAST_UPDATE_DT }).OrderBy(x => x.vMAIL_CONTENT_ID).ToList()); } return(result); }
/// <summary> /// 查詢資料 /// </summary> /// <param name="searchModel">查詢ViwModel</param> /// <returns></returns> public IEnumerable <ITinItem> GetSearchData(ITinItem searchModel) { var searchData = (TreasuryMailTimeSearchViewModel)searchModel; List <TreasuryMailTimeViewModel> result = new List <TreasuryMailTimeViewModel>(); using (TreasuryDBEntities db = new TreasuryDBEntities()) { var emps = GetEmps(); var _Is_Disabled = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "IS_DISABLED").ToList(); var _DATA_STATUS = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "DATA_STATUS").ToList(); var his = db.MAIL_TIME_HIS.AsNoTracking() .Where(x => x.APPR_DATE == null).ToList(); result.AddRange(db.MAIL_TIME.AsNoTracking() .AsEnumerable() .Select((x) => new TreasuryMailTimeViewModel() { vSEND_TIME = x.SEND_TIME, vFUNC_ID = x.FUNC_ID, vINTERVAL_MIN = x.INTERVAL_MIN?.ToString(), vMAIL_CONTENT_ID = x.MAIL_CONTENT_ID, vEXEC_TIME_B = x.EXEC_TIME_B, vEXEC_TIME_E = x.EXEC_TIME_E, vDATA_STATUS = x.DATA_STATUS, vDATA_STATUS_NAME = _DATA_STATUS.FirstOrDefault(y => y.CODE == x.DATA_STATUS)?.CODE_VALUE, vAplyNo = x.DATA_STATUS != "1" ? his.FirstOrDefault(y => y.MAIL_TIME_ID == x.MAIL_TIME_ID)?.APLY_NO : "", vMEMO = x.MEMO, vIS_DISABLED = x.IS_DISABLED, vIS_DISABLED_NAME = _Is_Disabled.FirstOrDefault(y => y.CODE == x.IS_DISABLED)?.CODE_VALUE, vTREA_OPEN_TIME = x.TREA_OPEN_TIME, vFREEZE_UID_Name = emps.FirstOrDefault(y => y.USR_ID != null && y.USR_ID == x.FREEZE_UID)?.EMP_NAME?.Trim(), vLAST_UPDATE_UID_Name = emps.FirstOrDefault(y => y.USR_ID == x.LAST_UPDATE_UID)?.EMP_NAME?.Trim(), vLAST_UPDATE_DT_Show = TypeTransfer.dateTimeNToString(x.LAST_UPDATE_DT), vMAIL_TIME_ID = x.MAIL_TIME_ID, vLAST_UPDATE_DT = x.LAST_UPDATE_DT, }).OrderBy(x => x.vMAIL_CONTENT_ID).ToList()); } return(result); }
/// <summary> /// 查詢資料 /// </summary> /// <param name="searchData">查詢ViwModel</param> /// <returns></returns> public IEnumerable <ITinItem> GetSearchData(ITinItem searchModel) { var searchData = (ItemMaintainSearchViewModel)searchModel; List <ItemMaintainSearchDetailViewModel> result = new List <ItemMaintainSearchDetailViewModel>(); using (TreasuryDBEntities db = new TreasuryDBEntities()) { var emps = GetEmps(); var _SYS_CODE = db.SYS_CODE.AsNoTracking(); var _TREA_ITEM_HIS = db.TREA_ITEM_HIS.AsNoTracking().Where(x => x.APPR_DATE == null).ToList(); result.AddRange(db.TREA_ITEM.AsNoTracking() .Where(x => x.ITEM_OP_TYPE == searchData.vITEM_OP_TYPE, searchData.vITEM_OP_TYPE != "All") .Where(x => x.DAILY_FLAG == searchData.vISDO_PERDAY, searchData.vISDO_PERDAY != "All") .Where(x => x.IS_DISABLED == searchData.vIS_DISABLED, searchData.vIS_DISABLED != "All") .AsEnumerable() .Select(x => new ItemMaintainSearchDetailViewModel() { vITEM_OP_TYPE = x.ITEM_OP_TYPE, vITEM_DESC = x.ITEM_DESC, vITEM_ID = x.ITEM_ID, vIS_TREA_ITEM = x.IS_TREA_ITEM, vTREA_ITEM_TYPE = x.TREA_ITEM_TYPE, vTREA_ITEM_TYPE_VALUE = !x.TREA_ITEM_TYPE.IsNullOrWhiteSpace() ? _SYS_CODE.FirstOrDefault(y => y.CODE_TYPE == "TREA_ITEM_TYPE" && y.CODE == x.TREA_ITEM_TYPE)?.CODE_VALUE : null, vTREA_ITEM_NAME = x.TREA_ITEM_NAME, vTREA_ITEM_NAME_VALUE = !x.TREA_ITEM_NAME.IsNullOrWhiteSpace() ? _SYS_CODE.FirstOrDefault(y => y.CODE_TYPE == "TREA_ITEM_NAME" && y.CODE == x.TREA_ITEM_NAME)?.CODE_VALUE : null, vISDO_PERDAY = x.DAILY_FLAG, vIS_DISABLED = x.IS_DISABLED, vMEMO = x.MEMO, vDATA_STATUS = x.DATA_STATUS, vDATA_STATUS_VALUE = !x.DATA_STATUS.IsNullOrWhiteSpace() ? _SYS_CODE.FirstOrDefault(y => y.CODE_TYPE == "DATA_STATUS" && y.CODE == x.DATA_STATUS)?.CODE_VALUE : null, vFREEZE_UID = x.FREEZE_UID, vFREEZE_NAME = !x.FREEZE_UID.IsNullOrWhiteSpace() ? emps.FirstOrDefault(y => y.USR_ID == x.FREEZE_UID)?.EMP_NAME?.Trim() : null, vEXEC_ACTION = _TREA_ITEM_HIS.FirstOrDefault(y => y.ITEM_ID == x.ITEM_ID)?.EXEC_ACTION?.Trim(), vEXEC_ACTION_VALUE = _SYS_CODE.Where(y => y.CODE_TYPE == "EXEC_ACTION").ToList().FirstOrDefault(y => y.CODE == _TREA_ITEM_HIS.FirstOrDefault(z => z.ITEM_ID == x.ITEM_ID)?.EXEC_ACTION?.Trim())?.CODE_VALUE?.Trim(), vAply_No = _TREA_ITEM_HIS.FirstOrDefault(y => y.ITEM_ID == x.ITEM_ID)?.APLY_NO?.Trim(), vLAST_UPDATE_DT = x.LAST_UPDATE_DT }).ToList()); } return(result); }
/// <summary> /// 查詢資料 /// </summary> /// <param name="searchModel">查詢ViwModel</param> /// <returns></returns> public IEnumerable <ITinItem> GetSearchData(ITinItem searchModel) { var searchData = (TreasuryMaintainSearchViewModel)searchModel; List <TreasuryMaintainViewModel> result = new List <TreasuryMaintainViewModel>(); using (TreasuryDBEntities db = new TreasuryDBEntities()) { var emps = GetEmps(); var _Trea_Equip_HisList = db.TREA_EQUIP_HIS.AsNoTracking() .Where(x => x.APPR_STATUS == "1").Where(x => x.APPR_DATE == null).ToList(); var _Exec_Action = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "EXEC_ACTION").ToList(); var _Data_Status_Name = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "DATA_STATUS").ToList(); result.AddRange(db.TREA_EQUIP.AsNoTracking() .Where(x => x.CONTROL_MODE == searchData.vControl_Mode, searchData.vControl_Mode != "All") .Where(x => x.IS_DISABLED == searchData.vIs_Disabled, searchData.vIs_Disabled != "All") .AsEnumerable() .Select((x) => new TreasuryMaintainViewModel() { vTrea_Equip_Id = x.TREA_EQUIP_ID, vExec_Action = _Trea_Equip_HisList.FirstOrDefault(y => y.TREA_EQUIP_ID == x.TREA_EQUIP_ID)?.EXEC_ACTION?.Trim(), vExec_Action_Name = _Exec_Action.FirstOrDefault(y => y.CODE == _Trea_Equip_HisList.FirstOrDefault(z => z.TREA_EQUIP_ID == x.TREA_EQUIP_ID)?.EXEC_ACTION?.Trim())?.CODE_VALUE?.Trim(), vEquip_Name = x.EQUIP_NAME, vControl_Mode = x.CONTROL_MODE, vNormal_Cnt = x.NORMAL_CNT, vReserve_Cnt = x.RESERVE_CNT, vSum_Cnt = x.NORMAL_CNT + x.RESERVE_CNT, vMemo = x.MEMO, vIs_Disabled = x.IS_DISABLED, vData_Status = x.DATA_STATUS, vData_Status_Name = _Data_Status_Name.FirstOrDefault(y => y.CODE == x.DATA_STATUS)?.CODE_VALUE?.Trim(), vLast_Update_Dt = x.LAST_UPDATE_DT, vFreeze_Uid_Name = emps.FirstOrDefault(y => y.USR_ID != null && y.USR_ID == x.FREEZE_UID)?.EMP_NAME?.Trim(), vAply_No = _Trea_Equip_HisList.FirstOrDefault(y => y.TREA_EQUIP_ID == x.TREA_EQUIP_ID)?.APLY_NO?.Trim() }).ToList()); } return(result); }
/// <summary> /// 查詢資料 /// </summary> /// <param name="searchModel">查詢ViwModel</param> /// <returns></returns> public IEnumerable <ITinItem> GetSearchData(ITinItem searchModel) { var searchData = (DepChkItemSearchViewModel)searchModel; List <DepChkItemViewModel> result = new List <DepChkItemViewModel>(); using (TreasuryDBEntities db = new TreasuryDBEntities()) { var emps = GetEmps(); var _Dep_Chk_Item_HisList = db.DEP_CHK_ITEM_HIS.AsNoTracking() .Where(x => x.APPR_STATUS == "1") .Where(x => x.APPR_DATE == null) .Where(x => x.ACCESS_TYPE != "O").ToList(); var _Exec_Action = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "EXEC_ACTION").ToList(); var _Data_Status_Name = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "DATA_STATUS").ToList(); result.AddRange(db.DEP_CHK_ITEM.AsNoTracking() .Where(x => x.IS_DISABLED == searchData.vIs_Disabled, searchData.vIs_Disabled != "All") .AsEnumerable() .Select((x) => new DepChkItemViewModel() { vAccess_Type = x.ACCESS_TYPE, vIsortby = x.ISORTBY, vExec_Action = _Dep_Chk_Item_HisList.FirstOrDefault(y => y.ACCESS_TYPE == x.ACCESS_TYPE && y.ISORTBY == x.ISORTBY)?.EXEC_ACTION?.Trim(), vExec_Action_Name = _Exec_Action.FirstOrDefault(y => y.CODE == _Dep_Chk_Item_HisList.FirstOrDefault(z => z.ACCESS_TYPE == x.ACCESS_TYPE && z.ISORTBY == x.ISORTBY)?.EXEC_ACTION?.Trim())?.CODE_VALUE?.Trim(), vDep_Chk_Item_Desc = x.DEP_CHK_ITEM_DESC, vIs_Disabled = x.IS_DISABLED, vItem_Order = x.ITEM_ORDER, vReplace = x.REPLACE, vData_Status = x.DATA_STATUS, vData_Status_Name = _Data_Status_Name.FirstOrDefault(y => y.CODE == x.DATA_STATUS)?.CODE_VALUE?.Trim(), vLast_Update_Dt = x.LAST_UPDATE_DT, vFreeze_Uid_Name = emps.FirstOrDefault(y => y.USR_ID == x.FREEZE_UID)?.EMP_NAME?.Trim(), vAply_No = _Dep_Chk_Item_HisList.FirstOrDefault(y => y.ACCESS_TYPE == x.ACCESS_TYPE && y.ISORTBY == x.ISORTBY)?.APLY_NO?.Trim() }).ToList()); } return(result); }
//public List<SelectOption> GetTreaItem() //{ // List<SelectOption> treaItem = new List<SelectOption>(); // using (TreasuryDBEntities db = new TreasuryDBEntities()) // { // treaItem = db.TREA_ITEM.AsNoTracking() // } //} /// <summary> /// 金庫進出管理作業-申請覆核 /// </summary> /// <param name="saveData">申請覆核的資料</param> /// <param name="searchModel">查詢ViwModel</param> /// <returns></returns> public MSGReturnModel <IEnumerable <ITinItem> > TinApplyAudit(IEnumerable <ITinItem> saveData, ITinItem searchModel) { var searchData = (ItemMaintainSearchViewModel)searchModel; var result = new MSGReturnModel <IEnumerable <ITinItem> >(); result.RETURN_FLAG = false; DateTime dt = DateTime.Now; try { if (saveData != null) { var datas = (List <ItemMaintainSearchDetailViewModel>)saveData; if (datas.Any()) { using (TreasuryDBEntities db = new TreasuryDBEntities()) { //取得流水號 SysSeqDao sysSeqDao = new SysSeqDao(); String qPreCode = DateUtil.getCurChtDateTime().Split(' ')[0]; var cId = sysSeqDao.qrySeqNo("G1", qPreCode).ToString().PadLeft(3, '0'); string _Aply_No = string.Empty; _Aply_No = $@"G1{qPreCode}{cId}"; //申請單號 G1+系統日期YYYMMDD(民國年)+3碼流水號 string logStr = string.Empty; //log foreach (var item in datas) { var _Trea_Item_Id = string.Empty; var _TI = new TREA_ITEM(); # region 金庫存取作業設定檔 //判斷執行功能 switch (item.vEXEC_ACTION) { case "A": //新增 _Trea_Item_Id = ""; //_Trea_Item_Id = sysSeqDao.qrySeqNo("D1", string.Empty).ToString().PadLeft(3, '0'); //_Trea_Item_Id = $@"D1{_Trea_Item_Id}"; //_TI = new TREA_ITEM() //{ // ITEM_ID = _Trea_Item_Id, // ITEM_DESC = item.vITEM_DESC, // IS_TREA_ITEM = item.vIS_TREA_ITEM, // TREA_ITEM_NAME = item.vTREA_ITEM_NAME, // TREA_ITEM_TYPE = item.vTREA_ITEM_TYPE, // ITEM_OP_TYPE = item.vITEM_OP_TYPE, // DAILY_FLAG = item.vISDO_PERDAY, // IS_DISABLED = item.vIS_DISABLED, // MEMO = item.vMEMO, // DATA_STATUS = "2",//凍結中 // CREATE_DT = dt, // CREATE_UID = searchData.vCUSER_ID, // LAST_UPDATE_DT =dt, // LAST_UPDATE_UID = searchData.vCUSER_ID, // FREEZE_UID = searchData.vCUSER_ID, // FREEZE_DT = dt //}; //db.TREA_ITEM.Add(_TI); //logStr += "|"; //logStr += _TI.modelToString(); break; case "U": //修改 _TI = db.TREA_ITEM.FirstOrDefault(x => x.ITEM_ID == item.vITEM_ID); if (_TI.LAST_UPDATE_DT != null && _TI.LAST_UPDATE_DT > item.vLAST_UPDATE_DT) { result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription(); return(result); } _Trea_Item_Id = item.vITEM_ID; _TI.DATA_STATUS = "2";//凍結中 _TI.LAST_UPDATE_UID = searchData.vCUSER_ID; _TI.LAST_UPDATE_DT = dt; _TI.FREEZE_UID = searchData.vCUSER_ID; _TI.FREEZE_DT = dt; logStr += "|"; logStr += _TI.modelToString(); break; case "D": //刪除 _TI = db.TREA_ITEM.FirstOrDefault(x => x.ITEM_ID == item.vITEM_ID); if (_TI.LAST_UPDATE_DT != null && _TI.LAST_UPDATE_DT > item.vLAST_UPDATE_DT) { result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription(); return(result); } _Trea_Item_Id = item.vITEM_ID; _TI.DATA_STATUS = "2";//凍結中 _TI.LAST_UPDATE_UID = searchData.vCUSER_ID; _TI.LAST_UPDATE_DT = dt; _TI.FREEZE_UID = searchData.vCUSER_ID; _TI.FREEZE_DT = dt; logStr += "|"; logStr += _TI.modelToString(); break; default: break; } #endregion #region 金庫存取作業異動檔 var _TI_Data = db.TREA_ITEM.FirstOrDefault(x => x.ITEM_ID == item.vITEM_ID); if (_TI_Data == null) { var _TIH = new TREA_ITEM_HIS() { APLY_NO = _Aply_No, ITEM_ID = _Trea_Item_Id, EXEC_ACTION = item.vEXEC_ACTION, ITEM_DESC = item.vITEM_DESC, IS_TREA_ITEM = item.vIS_TREA_ITEM, TREA_ITEM_NAME = item.vTREA_ITEM_NAME, TREA_ITEM_TYPE = item.vTREA_ITEM_TYPE, ITEM_OP_TYPE = item.vITEM_OP_TYPE, DAILY_FLAG = item.vISDO_PERDAY, IS_DISABLED = item.vIS_DISABLED, MEMO = item.vMEMO, APLY_DATE = dt, APLY_UID = searchData.vCUSER_ID, APPR_STATUS = "1" //表單申請 }; db.TREA_ITEM_HIS.Add(_TIH); logStr += "|"; logStr += _TIH.modelToString(); } else { var _TIH = new TREA_ITEM_HIS() { APLY_NO = _Aply_No, ITEM_ID = _Trea_Item_Id, EXEC_ACTION = item.vEXEC_ACTION, ITEM_DESC = item.vITEM_DESC, IS_TREA_ITEM = item.vIS_TREA_ITEM, TREA_ITEM_NAME = item.vTREA_ITEM_NAME, TREA_ITEM_TYPE = item.vTREA_ITEM_TYPE, ITEM_OP_TYPE = item.vITEM_OP_TYPE, DAILY_FLAG = item.vISDO_PERDAY, IS_DISABLED = item.vIS_DISABLED, MEMO = item.vMEMO, APLY_DATE = dt, APLY_UID = searchData.vCUSER_ID, APPR_STATUS = "1", //表單申請 DAILY_FLAG_B = _TI_Data.DAILY_FLAG, IS_DISABLED_B = _TI_Data.IS_DISABLED, IS_TREA_ITEM_B = _TI_Data.IS_TREA_ITEM, TREA_ITEM_TYPE_B = _TI_Data.TREA_ITEM_TYPE, TREA_ITEM_NAME_B = _TI_Data.TREA_ITEM_NAME, MEMO_B = _TI_Data.MEMO }; db.TREA_ITEM_HIS.Add(_TIH); logStr += "|"; logStr += _TIH.modelToString(); } #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 = "A"; log.CCONTENT = logStr; LogDao.Insert(log, searchData.vCUSER_ID); #endregion result.RETURN_FLAG = true; result.DESCRIPTION = Ref.MessageType.Apply_Audit_Success.GetDescription(null, $@"單號為{_Aply_No}"); } catch (DbUpdateException ex) { result.DESCRIPTION = ex.exceptionMessage(); } } } } else { result.DESCRIPTION = Ref.MessageType.not_Find_Audit_Data.GetDescription(); } } else { result.DESCRIPTION = Ref.MessageType.not_Find_Audit_Data.GetDescription(); } }
/// <summary> /// 金庫進出管理作業-申請覆核 /// </summary> /// <param name="saveData">申請覆核的資料</param> /// <param name="searchModel">查詢ViwModel</param> /// <returns></returns> public MSGReturnModel <IEnumerable <ITinItem> > TinApplyAudit(IEnumerable <ITinItem> saveData, ITinItem searchModel) { var searchData = (TreasuryMailContentSearchViewModel)searchModel; var result = new MSGReturnModel <IEnumerable <ITinItem> >(); result.RETURN_FLAG = false; DateTime dt = DateTime.Now; try { if (saveData != null) { var data = ((List <TreasuryMailContentUpdateViewModel>)saveData).FirstOrDefault(); if (data != null) { using (TreasuryDBEntities db = new TreasuryDBEntities()) { //取得流水號 SysSeqDao sysSeqDao = new SysSeqDao(); String qPreCode = DateUtil.getCurChtDateTime().Split(' ')[0]; string logStr = string.Empty; //log var _MAIL_CONTENT_ID = string.Empty; MAIL_CONTENT _MC = null; if (!data.vMAIL_CONTENT_ID.IsNullOrWhiteSpace()) //現有資料修改 { _MAIL_CONTENT_ID = data.vMAIL_CONTENT_ID; _MC = db.MAIL_CONTENT.First(x => x.MAIL_CONTENT_ID == _MAIL_CONTENT_ID); if (_MC.DATA_STATUS != "1") { result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription(); return(result); } _MC.DATA_STATUS = "2"; //凍結中 _MC.LAST_UPDATE_UID = data.UserID; _MC.LAST_UPDATE_DT = dt; _MC.FREEZE_DT = dt; _MC.FREEZE_UID = data.UserID; } else { //目前只加入異動檔 } string _Aply_No = $@"G4{qPreCode}{sysSeqDao.qrySeqNo("G4", qPreCode).ToString().PadLeft(3, '0')}"; //申請單號 G4+系統日期YYYMMDD(民國年)+3碼流水號 var MCH = new MAIL_CONTENT_HIS() { APLY_NO = _Aply_No, MAIL_CONTENT_ID = _MAIL_CONTENT_ID, IS_DISABLED = data.vIS_DISABLED, IS_DISABLED_B = _MC?.IS_DISABLED, MAIL_SUBJECT = data.vMAIL_SUBJECT, MAIL_SUBJECT_B = _MC?.MAIL_SUBJECT, MAIL_CONTENT = data.vMAIL_CONTENT, MAIL_CONTENT_B = _MC?.MAIL_CONTENT1, APLY_UID = data.UserID, APLY_DATE = dt, APPR_STATUS = "1", //表單申請 EXEC_ACTION = (data.vMAIL_CONTENT_ID != null) ? "U" : "A" }; logStr += MCH.modelToString(logStr); db.MAIL_CONTENT_HIS.Add(MCH); foreach (var item in data.subData) { var _MRH = new MAIL_RECEIVE_HIS() { APLY_NO = _Aply_No, MAIL_CONTENT_ID = _MAIL_CONTENT_ID, FUNC_ID = item.FUNC_ID, EXEC_ACTION = item.vStatus }; logStr += _MRH.modelToString(logStr); db.MAIL_RECEIVE_HIS.Add(_MRH); } #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 = "申請覆核-mail發送內文設定檔"; log.CACTION = "A"; log.CCONTENT = logStr; LogDao.Insert(log, data.UserID); #endregion result.Datas = GetSearchData(searchModel); result.RETURN_FLAG = true; result.DESCRIPTION = Ref.MessageType.Apply_Audit_Success.GetDescription(null, $@"單號為{_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); }
/// <summary> /// 異動紀錄查詢資料 /// </summary> /// <param name="searchModel">查詢ViwModel</param> /// <param name="aply_No">申請單號</param> /// <returns></returns> public IEnumerable <ITinItem> GetChangeRecordSearchData(ITinItem searchModel, string aply_No = null) { var searchData = (TreasuryMailContentHistorySearchViewModel)searchModel; List <TreasuryMailContentHistoryViewModel> result = new List <TreasuryMailContentHistoryViewModel>(); //if (searchData == null) // return result; using (TreasuryDBEntities db = new TreasuryDBEntities()) { var emps = GetEmps(); var _CODE_FUNC = db.CODE_FUNC.AsNoTracking().ToList(); var _sysCodes = db.SYS_CODE.AsNoTracking().ToList(); var _EXEC_ACTION = _sysCodes .Where(x => x.CODE_TYPE == "EXEC_ACTION").ToList(); var _Is_Disabled = _sysCodes .Where(x => x.CODE_TYPE == "IS_DISABLED").ToList(); var _Appr_Status = _sysCodes .Where(x => x.CODE_TYPE == "APPR_STATUS").ToList(); DateTime?_AplyDate = null; if (searchData != null) { _AplyDate = TypeTransfer.stringToDateTimeN(searchData.vAply_Date); } var his = db.MAIL_RECEIVE_HIS.AsNoTracking() .Where(x => x.MAIL_CONTENT_ID == searchData.vMAIL_CONTENT_ID, searchData != null && !searchData.vMAIL_CONTENT_ID.IsNullOrWhiteSpace() && searchData.vMAIL_CONTENT_ID != "All") .Where(x => x.APLY_NO == aply_No, !aply_No.IsNullOrWhiteSpace()) .ToList(); result = db.MAIL_CONTENT_HIS.AsNoTracking() .Where(x => x.MAIL_CONTENT_ID == searchData.vMAIL_CONTENT_ID, searchData != null && !searchData.vMAIL_CONTENT_ID.IsNullOrWhiteSpace() && searchData.vMAIL_CONTENT_ID != "All") .Where(x => x.APPR_STATUS == searchData.vAPPR_STATUS, searchData != null && !searchData.vAPPR_STATUS.IsNullOrWhiteSpace() && searchData.vAPPR_STATUS != "All") .Where(x => DbFunctions.TruncateTime(x.APLY_DATE) == _AplyDate, _AplyDate != null) .Where(x => x.APLY_NO == aply_No, !aply_No.IsNullOrWhiteSpace()) .AsEnumerable() .Select(x => new TreasuryMailContentHistoryViewModel() { APLY_NO = x.APLY_NO, APLY_DT = TypeTransfer.dateTimeToString(x.APLY_DATE, false), APLY_UID = emps.FirstOrDefault(y => y.USR_ID == x.APLY_UID)?.EMP_NAME?.Trim(), vIS_DISABLED_B = _Is_Disabled.FirstOrDefault(y => y.CODE == x.IS_DISABLED_B)?.CODE_VALUE, vIS_DISABLED = _Is_Disabled.FirstOrDefault(y => y.CODE == x.IS_DISABLED)?.CODE_VALUE, vMAIL_CONTENT_B = x.MAIL_CONTENT_B, vMAIL_CONTENT = x.MAIL_CONTENT, vMAIL_SUBJECT_B = x.MAIL_SUBJECT_B, vMAIL_SUBJECT = x.MAIL_SUBJECT, vAPPR_DESC = x.APPR_DESC, vAPPR_STATUS = _Appr_Status.FirstOrDefault(y => y.CODE == x.APPR_STATUS)?.CODE_VALUE, FunFlag = his.Any(y => y.APLY_NO == x.APLY_NO && x.MAIL_CONTENT_ID == y.MAIL_CONTENT_ID) ? "Y" : "N", subData = his.Where(y => y.APLY_NO == x.APLY_NO && x.MAIL_CONTENT_ID == y.MAIL_CONTENT_ID) .AsEnumerable() .Select(z => new TreasuryMailReceivelViewModel() { FUNC_ID = z.FUNC_ID, FUNC_ID_Name = _CODE_FUNC.FirstOrDefault(y => y.FUNC_ID == z.FUNC_ID)?.FUNC_NAME, vStatus = z.EXEC_ACTION, vStatus_D = _EXEC_ACTION.FirstOrDefault(y => y.CODE == z.EXEC_ACTION)?.CODE_VALUE, }).ToList() }).OrderBy(x => x.APLY_NO).ToList(); } return(result); }
/// <summary> /// 異動紀錄查詢資料 /// </summary> /// <param name="searchModel">查詢ViwModel</param> /// <param name="aply_No">申請單號</param> /// <returns></returns> public IEnumerable <ITinItem> GetChangeRecordSearchData(ITinItem searchModel, string aply_No = null) { var searchData = (ItemChargeUnitChangeRecordSearchViewModel)searchModel; List <ItemChargeUnitChangeRecordSearchDetailViewModel> result = new List <ItemChargeUnitChangeRecordSearchDetailViewModel>(); using (TreasuryDBEntities db = new TreasuryDBEntities()) { var emps = GetEmps(); var depts = GetDepts(); var _Exec_Action = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "EXEC_ACTION").ToList(); var _Appr_Status = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "APPR_STATUS").ToList(); var _TREA_ITEM = db.TREA_ITEM.AsNoTracking() .Where(x => x.ITEM_OP_TYPE == "3"); if (aply_No.IsNullOrWhiteSpace()) { var _ITEM_CHARGE_UNIT = db.ITEM_CHARGE_UNIT.AsNoTracking() .Where(x => x.FREEZE_UID == searchData.vLast_Update_Uid, searchData.vLast_Update_Uid != null).ToList(); result = db.ITEM_CHARGE_UNIT_HIS.AsNoTracking() .Where(x => x.ITEM_ID == searchData.vTREA_ITEM_NAME, searchData.vTREA_ITEM_NAME != "All") .Where(x => x.CHARGE_DEPT == searchData.vCHARGE_DEPT, searchData.vCHARGE_DEPT != "All") .Where(x => x.CHARGE_SECT == searchData.vCHARGE_SECT, searchData.vCHARGE_SECT != "All") .Where(x => x.CHARGE_UID == searchData.vCHARGE_UID, searchData.vCHARGE_UID != "All") .Where(x => x.APLY_NO == searchData.vAply_No, searchData.vAply_No != null) .Where(x => x.APPR_STATUS == searchData.vAppr_Status, searchData.vAppr_Status != "All") .Where(x => x.APLY_UID == searchData.vLast_Update_Uid, !searchData.vLast_Update_Uid.IsNullOrWhiteSpace()) .AsEnumerable() .Select(x => new ItemChargeUnitChangeRecordSearchDetailViewModel { //vFreeze_Dt = x.EXEC_ACTION != "A" ? _ITEM_CHARGE_UNIT.FirstOrDefault(y => y.CHARGE_UNIT_ID == x.CHARGE_UNIT_ID)?.FREEZE_DT?.ToString("yyyy/MM/dd") : null, vFreeze_Dt = x.APLY_DATE != null ? x.APLY_DATE.ToString("yyyy/MM/dd") : null, vAply_No = x.APLY_NO, //vFreeze_Uid_Name = emps.FirstOrDefault(y => y.USR_ID == _ITEM_CHARGE_UNIT.FirstOrDefault(z => z.CHARGE_UNIT_ID == x.CHARGE_UNIT_ID)?.FREEZE_UID)?.EMP_NAME?.Trim(), vFreeze_Uid_Name = !x.APLY_UID.IsNullOrWhiteSpace() ? emps.FirstOrDefault(y => y.USR_ID == x.APLY_UID)?.EMP_NAME?.Trim() : null, vExec_Action_Name = _Exec_Action.FirstOrDefault(y => y.CODE == x.EXEC_ACTION)?.CODE_VALUE.Trim(), vCHARGE_UID = emps.FirstOrDefault(y => y.USR_ID == x.CHARGE_UID)?.EMP_NAME?.Trim(), vCHARGE_UID_B = !x.CHARGE_UID_B.IsNullOrWhiteSpace() ? emps.FirstOrDefault(y => y.USR_ID == x.CHARGE_UID_B)?.EMP_NAME?.Trim() : null, vIS_MAIL_DEPT_MGR = x.IS_MAIL_DEPT_MGR, vIS_MAIL_DEPT_MGR_B = x.IS_MAIL_DEPT_MGR_B, vIS_MAIL_SECT_MGR = x.IS_MAIL_SECT_MGR, vIS_MAIL_SECT_MGR_B = x.IS_MAIL_SECT_MGR_B, vIS_DISABLED = x.IS_DISABLED, vIS_DISABLED_B = x.IS_DISABLED_B, vAPPR_STATUS = _Appr_Status.FirstOrDefault(y => y.CODE == x.APPR_STATUS)?.CODE_VALUE.Trim(), vAPPR_DESC = x.APPR_DESC, // vCHARGE_DEPT_VALUE = !x.CHARGE_DEPT.IsNullOrWhiteSpace() ? depts.FirstOrDefault(y => y.DPT_CD != null && y.DPT_CD.Trim() == x.CHARGE_DEPT)?.DPT_NAME?.Trim() : null, vCHARGE_DEPT_VALUE = !x.CHARGE_DEPT.IsNullOrWhiteSpace() ? getEmpName(depts, x.CHARGE_DEPT) : null, vCHARGE_SECT_VALUE = !x.CHARGE_SECT.IsNullOrWhiteSpace() ? emps.FirstOrDefault(y => y.DPT_CD != null && y.DPT_CD.Trim() == x.CHARGE_SECT)?.DPT_NAME?.Trim().Replace(getEmpName(depts, x.CHARGE_DEPT), "")?.Trim() : null, vTREA_ITEM_NAME_VALUE = _TREA_ITEM.FirstOrDefault(y => y.ITEM_ID == x.ITEM_ID)?.ITEM_DESC }).ToList(); //result = db.ITEM_CHARGE_UNIT_HIS.AsNoTracking() // .Where(x => x.ITEM_ID == searchData.vTREA_ITEM_NAME, searchData.vTREA_ITEM_NAME != "All") // .Where(x => x.CHARGE_DEPT == searchData.vCHARGE_DEPT, searchData.vCHARGE_DEPT != "All") // .Where(x => x.CHARGE_SECT == searchData.vCHARGE_SECT, searchData.vCHARGE_SECT != "All") // .Where(x => x.APLY_NO == searchData.vAply_No, searchData.vAply_No != null) // .Where(x => x.APPR_STATUS == searchData.vAppr_Status, searchData.vAppr_Status != "All") // .AsEnumerable() // .Join(db.ITEM_CHARGE_UNIT.AsNoTracking() // .Where(x => x.FREEZE_UID == searchData.vLast_Update_Uid, searchData.vLast_Update_Uid != null) // .AsEnumerable(), // ICUH => ICUH.ITEM_ID, // ICU => ICU.ITEM_ID, // (ICUH, ICU) => new ItemChargeUnitChangeRecordSearchDetailViewModel // { // vFreeze_Dt = ICU.FREEZE_DT?.ToString("yyyy/MM/dd"), // vAply_No = ICUH.APLY_NO, // vFreeze_Uid_Name = emps.FirstOrDefault(x => x.USR_ID == ICU.FREEZE_UID)?.EMP_NAME?.Trim(), // vExec_Action_Name = _Exec_Action.FirstOrDefault(x => x.CODE == ICUH.EXEC_ACTION)?.CODE_VALUE.Trim(), // vCHARGE_UID = emps.FirstOrDefault(x => x.USR_ID == ICUH.CHARGE_UID)?.EMP_NAME?.Trim(), // vCHARGE_UID_B = ICUH.CHARGE_UID_B, // vIS_MAIL_DEPT_MGR = ICUH.IS_MAIL_DEPT_MGR, // vIS_MAIL_DEPT_MGR_B = ICUH.IS_MAIL_DEPT_MGR_B, // vIS_MAIL_SECT_MGR = ICUH.IS_MAIL_SECT_MGR, // vIS_MAIL_SECT_MGR_B = ICUH.IS_MAIL_SECT_MGR_B, // vIS_DISABLED = ICUH.IS_DISABLED, // vIS_DISABLED_B = ICUH.IS_DISABLED_B, // vAPPR_STATUS = _Appr_Status.FirstOrDefault(x => x.CODE == ICUH.APPR_STATUS)?.CODE_VALUE.Trim(), // vAPPR_DESC = ICUH.APPR_DESC // } // ).ToList(); } else { var _ITEM_CHARGE_UNIT = db.ITEM_CHARGE_UNIT.AsNoTracking().ToList(); result = db.ITEM_CHARGE_UNIT_HIS.AsNoTracking() .Where(x => x.APLY_NO == aply_No) .Where(x => x.CHARGE_UNIT_ID == searchData.vCHARGE_UNIT_ID, searchData.vCHARGE_UNIT_ID != null) .AsEnumerable() .Select(x => new ItemChargeUnitChangeRecordSearchDetailViewModel { //vFreeze_Dt = x.EXEC_ACTION != "A" ? _ITEM_CHARGE_UNIT.FirstOrDefault(y => y.CHARGE_UNIT_ID == x.CHARGE_UNIT_ID)?.FREEZE_DT?.ToString("yyyy/MM/dd") : null, vFreeze_Dt = x.APLY_DATE != null ? x.APLY_DATE.ToString("yyyy/MM/dd") : null, vAply_No = x.APLY_NO, //vFreeze_Uid_Name = emps.FirstOrDefault(y => y.USR_ID == _ITEM_CHARGE_UNIT.FirstOrDefault(z => z.CHARGE_UNIT_ID == x.CHARGE_UNIT_ID)?.FREEZE_UID)?.EMP_NAME?.Trim(), vFreeze_Uid_Name = !x.APLY_UID.IsNullOrWhiteSpace() ? emps.FirstOrDefault(y => y.USR_ID == x.APLY_UID)?.EMP_NAME?.Trim() : null, vExec_Action_Name = _Exec_Action.FirstOrDefault(y => y.CODE == x.EXEC_ACTION)?.CODE_VALUE.Trim(), vCHARGE_UID = emps.FirstOrDefault(y => y.USR_ID == x.CHARGE_UID)?.EMP_NAME?.Trim(), vCHARGE_UID_B = !x.CHARGE_UID_B.IsNullOrWhiteSpace() ? emps.FirstOrDefault(y => y.USR_ID == x.CHARGE_UID_B)?.EMP_NAME?.Trim() : null, vIS_MAIL_DEPT_MGR = x.IS_MAIL_DEPT_MGR, vIS_MAIL_DEPT_MGR_B = x.IS_MAIL_DEPT_MGR_B, vIS_MAIL_SECT_MGR = x.IS_MAIL_SECT_MGR, vIS_MAIL_SECT_MGR_B = x.IS_MAIL_SECT_MGR_B, vIS_DISABLED = x.IS_DISABLED, vIS_DISABLED_B = x.IS_DISABLED_B, vAPPR_STATUS = _Appr_Status.FirstOrDefault(y => y.CODE == x.APPR_STATUS)?.CODE_VALUE.Trim(), vAPPR_DESC = x.APPR_DESC, vCHARGE_UNIT_ID = x.CHARGE_UNIT_ID, vCHARGE_DEPT_VALUE = !x.CHARGE_DEPT.IsNullOrWhiteSpace() ? getEmpName(depts, x.CHARGE_DEPT) : null, vCHARGE_SECT_VALUE = !x.CHARGE_SECT.IsNullOrWhiteSpace() ? emps.FirstOrDefault(y => y.DPT_CD != null && y.DPT_CD.Trim() == x.CHARGE_SECT)?.DPT_NAME?.Trim().Replace(getEmpName(depts, x.CHARGE_DEPT), "")?.Trim() : null, vTREA_ITEM_NAME_VALUE = _TREA_ITEM.FirstOrDefault(y => y.ITEM_ID == x.ITEM_ID)?.ITEM_DESC }).ToList(); //result = db.ITEM_CHARGE_UNIT_HIS.AsNoTracking() // .Where(x => x.APLY_NO == aply_No) // .Where(x => x.CHARGE_UNIT_ID == searchData.vCHARGE_UNIT_ID, searchData.vCHARGE_UNIT_ID != null) // .AsEnumerable() // .Join(db.ITEM_CHARGE_UNIT.AsNoTracking() // .AsEnumerable(), // ICUH => ICUH.ITEM_ID, // ICU => ICU.ITEM_ID, // (ICUH, ICU) => new ItemChargeUnitChangeRecordSearchDetailViewModel // { // vFreeze_Dt = ICU.FREEZE_DT?.ToString("yyyy/MM/dd"), // vAply_No = ICUH.APLY_NO, // vFreeze_Uid_Name = emps.FirstOrDefault(x => x.USR_ID == ICU.FREEZE_UID)?.EMP_NAME?.Trim(), // vExec_Action_Name = _Exec_Action.FirstOrDefault(x => x.CODE == ICUH.EXEC_ACTION)?.CODE_VALUE.Trim(), // vCHARGE_UID = emps.FirstOrDefault(x => x.USR_ID == ICUH.CHARGE_UID)?.EMP_NAME?.Trim(), // vCHARGE_UID_B = ICUH.CHARGE_UID_B, // vIS_MAIL_DEPT_MGR = ICUH.IS_MAIL_DEPT_MGR, // vIS_MAIL_DEPT_MGR_B = ICUH.IS_MAIL_DEPT_MGR_B, // vIS_MAIL_SECT_MGR = ICUH.IS_MAIL_SECT_MGR, // vIS_MAIL_SECT_MGR_B = ICUH.IS_MAIL_SECT_MGR_B, // vIS_DISABLED = ICUH.IS_DISABLED, // vIS_DISABLED_B = ICUH.IS_DISABLED_B, // vAPPR_STATUS = _Appr_Status.FirstOrDefault(x => x.CODE == ICUH.APPR_STATUS)?.CODE_VALUE.Trim(), // vAPPR_DESC = ICUH.APPR_DESC, // vCHARGE_UNIT_ID = ICUH.CHARGE_UNIT_ID // } // ).ToList(); } } return(result); }
/// <summary> /// 金庫進出管理作業-申請覆核 /// </summary> /// <param name="saveData">申請覆核的資料</param> /// <param name="searchModel">查詢ViwModel</param> /// <returns></returns> public MSGReturnModel <IEnumerable <ITinItem> > TinApplyAudit(IEnumerable <ITinItem> saveData, ITinItem searchModel) { var searchData = (TreasuryMaintainSearchViewModel)searchModel; var result = new MSGReturnModel <IEnumerable <ITinItem> >(); result.RETURN_FLAG = false; DateTime dt = DateTime.Now; try { if (saveData != null) { var datas = (List <TreasuryMaintainViewModel>)saveData; if (datas.Any()) { using (TreasuryDBEntities db = new TreasuryDBEntities()) { //取得流水號 SysSeqDao sysSeqDao = new SysSeqDao(); String qPreCode = DateUtil.getCurChtDateTime().Split(' ')[0]; string _Aply_No = string.Empty; var cId = sysSeqDao.qrySeqNo("G2", qPreCode).ToString().PadLeft(3, '0'); _Aply_No = $@"G2{qPreCode}{cId}"; //申請單號 G2+系統日期YYYMMDD(民國年)+3碼流水號 string logStr = string.Empty; //log foreach (var item in datas) { var _Trea_Equip_Id = string.Empty; var _TE = new TREA_EQUIP(); #region 金庫設備設定檔 //判斷執行功能 switch (item.vExec_Action) { case "A": //新增 _Trea_Equip_Id = ""; //_Trea_Equip_Id = sysSeqDao.qrySeqNo("D2", string.Empty).ToString().PadLeft(3, '0'); //_Trea_Equip_Id = $@"D2{_Trea_Equip_Id}"; //_TE = new TREA_EQUIP() //{ // TREA_EQUIP_ID = _Trea_Equip_Id, // EQUIP_NAME = item.vEquip_Name, // CONTROL_MODE = item.vControl_Mode, // NORMAL_CNT = item.vNormal_Cnt, // RESERVE_CNT = item.vReserve_Cnt, // MEMO = item.vMemo, // IS_DISABLED = "N", // DATA_STATUS = "2",//凍結中 // CREATE_UID = searchData.vLast_Update_Uid, // CREATE_DT = dt, // LAST_UPDATE_UID = searchData.vLast_Update_Uid, // LAST_UPDATE_DT = dt, // FREEZE_UID = searchData.vLast_Update_Uid, // FREEZE_DT = dt //}; //db.TREA_EQUIP.Add(_TE); //logStr += "|"; //logStr += _TE.modelToString(); break; case "U": //修改 _TE = db.TREA_EQUIP.FirstOrDefault(x => x.TREA_EQUIP_ID == item.vTrea_Equip_Id); if (_TE.LAST_UPDATE_DT != null && _TE.LAST_UPDATE_DT > item.vLast_Update_Dt) { result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription(); return(result); } _Trea_Equip_Id = item.vTrea_Equip_Id; _TE.DATA_STATUS = "2";//凍結中 _TE.LAST_UPDATE_UID = searchData.vLast_Update_Uid; _TE.LAST_UPDATE_DT = dt; _TE.FREEZE_UID = searchData.vLast_Update_Uid; _TE.FREEZE_DT = dt; logStr += "|"; logStr += _TE.modelToString(); break; case "D": //刪除 _TE = db.TREA_EQUIP.FirstOrDefault(x => x.TREA_EQUIP_ID == item.vTrea_Equip_Id); if (_TE.LAST_UPDATE_DT != null && _TE.LAST_UPDATE_DT > item.vLast_Update_Dt) { result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription(); return(result); } _Trea_Equip_Id = item.vTrea_Equip_Id; _TE.DATA_STATUS = "2";//凍結中 _TE.LAST_UPDATE_UID = searchData.vLast_Update_Uid; _TE.LAST_UPDATE_DT = dt; _TE.FREEZE_UID = searchData.vLast_Update_Uid; _TE.FREEZE_DT = dt; logStr += "|"; logStr += _TE.modelToString(); break; default: break; } #endregion 金庫設備設定檔 #region 金庫設備異動檔 var _TE_Data = db.TREA_EQUIP.FirstOrDefault(x => x.TREA_EQUIP_ID == item.vTrea_Equip_Id); if (_TE_Data == null) { var _TEH = new TREA_EQUIP_HIS() { APLY_NO = _Aply_No, TREA_EQUIP_ID = _Trea_Equip_Id, EXEC_ACTION = item.vExec_Action, EQUIP_NAME = item.vEquip_Name, CONTROL_MODE = item.vControl_Mode, NORMAL_CNT = item.vNormal_Cnt, RESERVE_CNT = item.vReserve_Cnt, MEMO = item.vMemo, IS_DISABLED = item.vIs_Disabled, APPR_STATUS = "1",//表單申請 APLY_UID = searchData.vLast_Update_Uid, APLY_DATE = dt }; db.TREA_EQUIP_HIS.Add(_TEH); logStr += "|"; logStr += _TEH.modelToString(); } else { var _TEH = new TREA_EQUIP_HIS() { APLY_NO = _Aply_No, TREA_EQUIP_ID = _Trea_Equip_Id, EXEC_ACTION = item.vExec_Action, EQUIP_NAME = item.vEquip_Name, CONTROL_MODE = item.vControl_Mode, NORMAL_CNT = item.vNormal_Cnt, RESERVE_CNT = item.vReserve_Cnt, MEMO = item.vMemo, IS_DISABLED = item.vIs_Disabled, APPR_STATUS = "1",//表單申請 EQUIP_NAME_B = _TE_Data.EQUIP_NAME, CONTROL_MODE_B = _TE_Data.CONTROL_MODE, NORMAL_CNT_B = _TE_Data.NORMAL_CNT, RESERVE_CNT_B = _TE_Data.RESERVE_CNT, MEMO_B = _TE_Data.MEMO, IS_DISABLED_B = _TE_Data.IS_DISABLED, APLY_UID = searchData.vLast_Update_Uid, APLY_DATE = dt }; db.TREA_EQUIP_HIS.Add(_TEH); logStr += "|"; logStr += _TEH.modelToString(); } #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, searchData.vLast_Update_Uid); #endregion LOG result.RETURN_FLAG = true; result.DESCRIPTION = Ref.MessageType.Apply_Audit_Success.GetDescription(null, $@"單號為{_Aply_No}"); } catch (DbUpdateException ex) { result.DESCRIPTION = ex.exceptionMessage(); } } #endregion Save Db } } 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="searchModel">查詢ViwModel</param> /// <param name="aply_No">申請單號</param> /// <returns></returns> public IEnumerable <ITinItem> GetChangeRecordSearchData(ITinItem searchModel, string aply_No = null) { var searchData = (TreasuryMaintainChangeRecordSearchViewModel)searchModel; List <TreasuryMaintainChangeRecordViewModel> result = new List <TreasuryMaintainChangeRecordViewModel>(); using (TreasuryDBEntities db = new TreasuryDBEntities()) { var emps = GetEmps(); var _Exec_Action = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "EXEC_ACTION").ToList(); var _Is_Disabled = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "YN_FLAG").ToList(); var _Control_Mode = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "CONTROL_MODE").ToList(); var _Appr_Status = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "APPR_STATUS").ToList(); if (aply_No.IsNullOrWhiteSpace()) { result = db.TREA_EQUIP_HIS.AsNoTracking() .Where(x => x.CONTROL_MODE == searchData.vControl_Mode, searchData.vControl_Mode != "All") .Where(x => x.APLY_NO == searchData.vAply_No, searchData.vAply_No != null) .Where(x => x.APPR_STATUS == searchData.vAppr_Status, searchData.vAppr_Status != "All") .Where(x => x.APLY_UID == searchData.vLast_Update_Uid, searchData.vLast_Update_Uid != null) .Where(x => x.IS_DISABLED == searchData.vIs_Disabled, searchData.vIs_Disabled != "All") .AsEnumerable() .Select((x) => new TreasuryMaintainChangeRecordViewModel { vAply_Date = x.APLY_DATE.ToString("yyyy/MM/dd"), vAply_No = x.APLY_NO, vAply_Uid_Name = !x.APLY_UID.IsNullOrWhiteSpace() ? emps.FirstOrDefault(y => y.USR_ID == x.APLY_UID)?.EMP_NAME.Trim() : null, vExec_Action_Name = _Exec_Action.FirstOrDefault(y => y.CODE == x.EXEC_ACTION)?.CODE_VALUE.Trim(), vEquip_Name = x.EQUIP_NAME, vEquip_Name_B = x.EQUIP_NAME_B, vControl_Mode_Name = _Control_Mode.FirstOrDefault(y => y.CODE == x.CONTROL_MODE)?.CODE_VALUE.Trim(), vControl_Mode_B_Name = _Control_Mode.FirstOrDefault(y => y.CODE == x.CONTROL_MODE_B)?.CODE_VALUE.Trim(), vNormal_Cnt = x.NORMAL_CNT, vNormal_Cnt_B = x.NORMAL_CNT_B, vReserve_Cnt = x.RESERVE_CNT, vReserve_Cnt_B = x.RESERVE_CNT_B, vMemo = x.MEMO, vMemo_B = x.MEMO_B, vIs_Disabled = _Is_Disabled.FirstOrDefault(y => y.CODE == x.IS_DISABLED)?.CODE_VALUE.Trim(), vIs_Disabled_B = _Is_Disabled.FirstOrDefault(y => y.CODE == x.IS_DISABLED_B)?.CODE_VALUE.Trim(), vAppr_Status_Name = _Appr_Status.FirstOrDefault(y => y.CODE == x.APPR_STATUS)?.CODE_VALUE.Trim() }).ToList(); } else { result = db.TREA_EQUIP_HIS.AsNoTracking() .Where(x => x.APLY_NO == aply_No) .Where(x => x.TREA_EQUIP_ID == searchData.vTrea_Equip_Id, searchData.vTrea_Equip_Id != null) .AsEnumerable() .Select((x) => new TreasuryMaintainChangeRecordViewModel { vAply_Date = x.APLY_DATE.ToString("yyyy/MM/dd"), vAply_No = x.APLY_NO, vAply_Uid_Name = !x.APLY_UID.IsNullOrWhiteSpace() ? emps.FirstOrDefault(y => y.USR_ID == x.APLY_UID)?.EMP_NAME.Trim() : null, vExec_Action_Name = _Exec_Action.FirstOrDefault(y => y.CODE == x.EXEC_ACTION)?.CODE_VALUE.Trim(), vEquip_Name = x.EQUIP_NAME, vEquip_Name_B = x.EQUIP_NAME_B, vControl_Mode_Name = _Control_Mode.FirstOrDefault(y => y.CODE == x.CONTROL_MODE)?.CODE_VALUE.Trim(), vControl_Mode_B_Name = _Control_Mode.FirstOrDefault(y => y.CODE == x.CONTROL_MODE_B)?.CODE_VALUE.Trim(), vNormal_Cnt = x.NORMAL_CNT, vNormal_Cnt_B = x.NORMAL_CNT_B, vReserve_Cnt = x.RESERVE_CNT, vReserve_Cnt_B = x.RESERVE_CNT_B, vMemo = x.MEMO, vMemo_B = x.MEMO_B, vIs_Disabled = _Is_Disabled.FirstOrDefault(y => y.CODE == x.IS_DISABLED)?.CODE_VALUE.Trim(), vIs_Disabled_B = _Is_Disabled.FirstOrDefault(y => y.CODE == x.IS_DISABLED_B)?.CODE_VALUE.Trim(), vAppr_Status_Name = _Appr_Status.FirstOrDefault(y => y.CODE == x.APPR_STATUS)?.CODE_VALUE.Trim() }).ToList(); } } return(result); }
/// <summary> /// 金庫進出管理作業-順序調整申請覆核 /// </summary> /// <param name="saveData">申請覆核的資料</param> /// <param name="searchModel">查詢ViwModel</param> /// <returns></returns> public MSGReturnModel <IEnumerable <ITinItem> > TinOrderApplyAudit(IEnumerable <ITinItem> saveData, ITinItem searchModel) { var searchData = (DepChkItemSearchViewModel)searchModel; var result = new MSGReturnModel <IEnumerable <ITinItem> >(); result.RETURN_FLAG = false; DateTime dt = DateTime.Now; try { if (saveData != null) { var datas = (List <DepChkItemViewModel>)saveData; if (datas.Any()) { using (TreasuryDBEntities db = new TreasuryDBEntities()) { //取得流水號 SysSeqDao sysSeqDao = new SysSeqDao(); String qPreCode = DateUtil.getCurChtDateTime().Split(' ')[0]; string _Aply_No = string.Empty; var cId = sysSeqDao.qrySeqNo("G9", qPreCode).ToString().PadLeft(3, '0'); _Aply_No = $@"G9{qPreCode}{cId}"; //申請單號 G9+系統日期YYYMMDD(民國年)+3碼流水號 string logStr = string.Empty; //log foreach (var item in datas) { #region 定存檢核表項目設定異動檔 var _DCI_Data = db.DEP_CHK_ITEM.FirstOrDefault(x => x.ACCESS_TYPE == item.vAccess_Type && x.ISORTBY == item.vIsortby); var _DCIH = new DEP_CHK_ITEM_HIS() { APLY_NO = _Aply_No, ACCESS_TYPE = item.vAccess_Type, ISORTBY = item.vIsortby, EXEC_ACTION = "O", DEP_CHK_ITEM_DESC = _DCI_Data.DEP_CHK_ITEM_DESC, IS_DISABLED = _DCI_Data.IS_DISABLED, ITEM_ORDER = item.vItem_Order, REPLACE = _DCI_Data.REPLACE, APPR_STATUS = "1",//表單申請 DEP_CHK_ITEM_DESC_B = _DCI_Data.DEP_CHK_ITEM_DESC, IS_DISABLED_B = _DCI_Data.IS_DISABLED, ITEM_ORDER_B = _DCI_Data.ITEM_ORDER, REPLACE_B = _DCI_Data.REPLACE, APLY_UID = searchData.vLast_Update_Uid, APLY_DATE = dt }; db.DEP_CHK_ITEM_HIS.Add(_DCIH); logStr += "|"; logStr += _DCIH.modelToString(); #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, searchData.vLast_Update_Uid); #endregion result.RETURN_FLAG = true; result.DESCRIPTION = Ref.MessageType.Apply_Audit_Success.GetDescription(null, $@"單號為{_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); }
public IEnumerable <ITinItem> GetChangeRecordSearchData(ITinItem searchModel, string aply_No = null) { var searchData = (ItemMaintainChangeRecordSearchViewModel)searchModel; List <ItemMaintainChangeRecordSearchDetailViewModel> result = new List <ItemMaintainChangeRecordSearchDetailViewModel>(); using (TreasuryDBEntities db = new TreasuryDBEntities()) { var emps = GetEmps(); var _Exec_Action = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "EXEC_ACTION").ToList(); var _Appr_Status = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "APPR_STATUS").ToList(); if (aply_No.IsNullOrWhiteSpace()) { //var _TREA_ITEM = db.TREA_ITEM.AsNoTracking() // .Where(x => x.FREEZE_UID == searchData.vLast_Update_Uid, searchData.vLast_Update_Uid != null).ToList(); var _TREA_ITEM = db.TREA_ITEM.AsNoTracking().ToList(); result = db.TREA_ITEM_HIS.AsNoTracking() .Where(x => x.ITEM_OP_TYPE == searchData.vItem_Op_Type, searchData.vItem_Op_Type != "All") .Where(x => x.ITEM_ID == searchData.vTrea_IItem, searchData.vTrea_IItem != "All") .Where(x => x.APLY_NO == searchData.vAply_No, searchData.vAply_No != null) .Where(x => x.APPR_STATUS == searchData.vAppr_Status, searchData.vAppr_Status != "All") .Where(x => x.APLY_UID == searchData.vLast_Update_Uid, !searchData.vLast_Update_Uid.IsNullOrWhiteSpace()) .AsEnumerable() .Select(x => new ItemMaintainChangeRecordSearchDetailViewModel { //vFreeze_Dt = x.EXEC_ACTION != "A" ? _TREA_ITEM.FirstOrDefault(y => y.ITEM_ID == x.ITEM_ID)?.FREEZE_DT?.ToString("yyyy/MM/dd"): null, vFreeze_Dt = x.APLY_DATE.ToString("yyyy/MM/dd"), vAply_No = x.APLY_NO, //vFreeze_Uid_Name = x.EXEC_ACTION != "A" ? emps.FirstOrDefault(y => y.USR_ID == _TREA_ITEM.FirstOrDefault(z => z.ITEM_ID == x.ITEM_ID)?.FREEZE_UID)?.EMP_NAME.Trim(): null, vFreeze_Uid_Name = !x.APLY_UID.IsNullOrWhiteSpace() ? emps.FirstOrDefault(y => y.USR_ID == x.APLY_UID)?.EMP_NAME.Trim() : null, vExec_Action_Name = _Exec_Action.FirstOrDefault(y => y.CODE == x.EXEC_ACTION)?.CODE_VALUE.Trim(), vIS_TREA_ITEM = x.IS_TREA_ITEM, vIS_TREA_ITEM_B = x.IS_TREA_ITEM_B, vDAILY_FLAG = x.DAILY_FLAG, vDAILY_FLAG_B = x.DAILY_FLAG_B, vTREA_ITEM_NAME = x.TREA_ITEM_NAME, vTREA_ITEM_NAME_B = x.TREA_ITEM_NAME_B, vIS_DISABLED = x.IS_DISABLED, vIS_DISABLED_B = x.IS_DISABLED_B, vMEMO = x.MEMO, vMEMO_B = x.MEMO_B, vAPPR_STATUS = _Appr_Status.FirstOrDefault(y => y.CODE == x.APPR_STATUS)?.CODE_VALUE.Trim(), vAPPR_DESC = x.APPR_DESC, vITEM_DESC = x.ITEM_DESC //vITEM_DESC = _TREA_ITEM.FirstOrDefault(y => y.ITEM_ID == x.ITEM_ID)?.ITEM_DESC }).ToList(); //result = db.TREA_ITEM_HIS.AsNoTracking() // .Where(x => x.ITEM_OP_TYPE == searchData.vItem_Op_Type, searchData.vItem_Op_Type != "All") // .Where(x => x.ITEM_ID == searchData.vTrea_IItem, searchData.vTrea_IItem != "All") // .Where(x => x.APLY_NO == searchData.vAply_No, searchData.vAply_No != null) // .Where(x => x.APPR_STATUS == searchData.vAppr_Status, searchData.vAppr_Status != "All") // .AsEnumerable() // .Join(db.TREA_ITEM.AsNoTracking() // .Where(x => x.FREEZE_UID == searchData.vLast_Update_Uid, searchData.vLast_Update_Uid != null) // .AsEnumerable(), // TIH => TIH.ITEM_ID, // TI => TI.ITEM_ID, // (TIH, TI) => new ItemMaintainChangeRecordSearchDetailViewModel // { // vFreeze_Dt = TI.FREEZE_DT?.ToString("yyyy/MM/dd"), // vAply_No = TIH.APLY_NO, // vFreeze_Uid_Name = emps.FirstOrDefault(x => x.USR_ID == TI.FREEZE_UID)?.EMP_NAME.Trim(), // vExec_Action_Name = _Exec_Action.FirstOrDefault(x => x.CODE == TIH.EXEC_ACTION)?.CODE_VALUE.Trim(), // vIS_TREA_ITEM = TIH.IS_TREA_ITEM, // vIS_TREA_ITEM_B = TIH.IS_TREA_ITEM_B, // vDAILY_FLAG = TIH.DAILY_FLAG, // vDAILY_FLAG_B = TIH.DAILY_FLAG_B, // vTREA_ITEM_NAME = TIH.TREA_ITEM_NAME, // vTREA_ITEM_NAME_B = TIH.TREA_ITEM_NAME_B, // vIS_DISABLED = TIH.IS_DISABLED, // vIS_DISABLED_B = TIH.IS_DISABLED_B, // vMEMO = TIH.MEMO, // vMEMO_B = TIH.MEMO_B, // vAPPR_STATUS = _Appr_Status.FirstOrDefault(x => x.CODE == TIH.APPR_STATUS)?.CODE_VALUE.Trim(), // vAPPR_DESC = TIH.APPR_DESC, // }).ToList(); } else { var _TREA_ITEM = db.TREA_ITEM.AsNoTracking().ToList(); result = db.TREA_ITEM_HIS.AsNoTracking() .Where(x => x.APLY_NO == aply_No) .Where(x => x.ITEM_ID == searchData.vTrea_IItem, searchData.vTrea_IItem != null) .AsEnumerable() .Select(x => new ItemMaintainChangeRecordSearchDetailViewModel { //vFreeze_Dt = x.EXEC_ACTION != "A" ? _TREA_ITEM.FirstOrDefault(y => y.ITEM_ID == x.ITEM_ID)?.FREEZE_DT?.ToString("yyyy/MM/dd") : null, vFreeze_Dt = x.APLY_DATE.ToString("yyyy/MM/dd"), vAply_No = x.APLY_NO, //vFreeze_Uid_Name = x.EXEC_ACTION != "A" ? emps.FirstOrDefault(y => y.USR_ID == _TREA_ITEM.FirstOrDefault(z => z.ITEM_ID == x.ITEM_ID)?.FREEZE_UID)?.EMP_NAME.Trim() : null, vFreeze_Uid_Name = !x.APLY_UID.IsNullOrWhiteSpace() ? emps.FirstOrDefault(y => y.USR_ID == x.APLY_UID)?.EMP_NAME.Trim() : null, vExec_Action_Name = _Exec_Action.FirstOrDefault(y => y.CODE == x.EXEC_ACTION)?.CODE_VALUE.Trim(), vIS_TREA_ITEM = x.IS_TREA_ITEM, vIS_TREA_ITEM_B = x.IS_TREA_ITEM_B, vDAILY_FLAG = x.DAILY_FLAG, vDAILY_FLAG_B = x.DAILY_FLAG_B, vTREA_ITEM_NAME = x.TREA_ITEM_NAME, vTREA_ITEM_NAME_B = x.TREA_ITEM_NAME_B, vIS_DISABLED = x.IS_DISABLED, vIS_DISABLED_B = x.IS_DISABLED_B, vMEMO = x.MEMO, vMEMO_B = x.MEMO_B, vAPPR_STATUS = _Appr_Status.FirstOrDefault(y => y.CODE == x.APPR_STATUS)?.CODE_VALUE.Trim(), vAPPR_DESC = x.APPR_DESC, vITEM_DESC = x.ITEM_DESC //vITEM_DESC = _TREA_ITEM.FirstOrDefault(y => y.ITEM_ID == x.ITEM_ID)?.ITEM_DESC }).ToList(); //result = db.TREA_ITEM_HIS.AsNoTracking() // .Where(x => x.APLY_NO == aply_No) // .Where(x => x.ITEM_ID == searchData.vTrea_IItem, searchData.vTrea_IItem != null) // .AsEnumerable() // .Join(db.TREA_ITEM.AsNoTracking() // .AsEnumerable(), // TIH => TIH.ITEM_ID, // TI => TI.ITEM_ID, // (TIH, TI) => new ItemMaintainChangeRecordSearchDetailViewModel // { // vFreeze_Dt = TI.FREEZE_DT?.ToString("yyyy/MM/dd"), // vAply_No = TIH.APLY_NO, // vFreeze_Uid_Name = emps.FirstOrDefault(x => x.USR_ID == TI.FREEZE_UID)?.EMP_NAME.Trim(), // vExec_Action_Name = _Exec_Action.FirstOrDefault(x => x.CODE == TIH.EXEC_ACTION)?.CODE_VALUE.Trim(), // vIS_TREA_ITEM = TIH.IS_TREA_ITEM, // vIS_TREA_ITEM_B = TIH.IS_TREA_ITEM_B, // vDAILY_FLAG = TIH.DAILY_FLAG, // vDAILY_FLAG_B = TIH.DAILY_FLAG_B, // vTREA_ITEM_NAME = TIH.TREA_ITEM_NAME, // vTREA_ITEM_NAME_B = TIH.TREA_ITEM_NAME_B, // vIS_DISABLED = TIH.IS_DISABLED, // vIS_DISABLED_B = TIH.IS_DISABLED_B, // vMEMO = TIH.MEMO, // vMEMO_B = TIH.MEMO_B, // vAPPR_STATUS = _Appr_Status.FirstOrDefault(x => x.CODE == TIH.APPR_STATUS)?.CODE_VALUE.Trim(), // vAPPR_DESC = TIH.APPR_DESC, // vITEM_ID = TIH.ITEM_ID // }).ToList(); } } return(result); }
/// <summary> /// 金庫進出管理作業-申請覆核 /// </summary> /// <param name="saveData">申請覆核的資料</param> /// <param name="searchModel">查詢ViwModel</param> /// <returns></returns> public MSGReturnModel <IEnumerable <ITinItem> > TinApplyAudit(IEnumerable <ITinItem> saveData, ITinItem searchModel) { var searchData = (TreasuryMailTimeSearchViewModel)searchModel; var result = new MSGReturnModel <IEnumerable <ITinItem> >(); result.RETURN_FLAG = false; DateTime dt = DateTime.Now; try { if (saveData != null) { var datas = (List <TreasuryMailTimeViewModel>)saveData; if (datas.Any(x => x.updateFlag)) { using (TreasuryDBEntities db = new TreasuryDBEntities()) { string logStr = string.Empty; //log //取得流水號 SysSeqDao sysSeqDao = new SysSeqDao(); String qPreCode = DateUtil.getCurChtDateTime().Split(' ')[0]; string _Aply_No = $@"G3{qPreCode}{sysSeqDao.qrySeqNo("G3", qPreCode).ToString().PadLeft(3, '0')}"; //申請單號 G3+系統日期YYYMMDD(民國年)+3碼流水號 foreach (var data in datas.Where(x => x.updateFlag)) { var _MT = db.MAIL_TIME.First(x => x.MAIL_TIME_ID == data.vMAIL_TIME_ID); if (_MT.DATA_STATUS != "1") { result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription(); return(result); } _MT.DATA_STATUS = "2"; //凍結中 _MT.LAST_UPDATE_UID = searchData.userId; _MT.LAST_UPDATE_DT = dt; _MT.FREEZE_DT = dt; _MT.FREEZE_UID = searchData.userId; var MTH = new MAIL_TIME_HIS() { APLY_NO = _Aply_No, MAIL_TIME_ID = _MT.MAIL_TIME_ID, EXEC_ACTION = "U", //只有修改 FUNC_ID = data.vFUNC_ID, FUNC_ID_B = _MT.FUNC_ID, SEND_TIME = data.vSEND_TIME, SEND_TIME_B = _MT.SEND_TIME, INTERVAL_MIN = TypeTransfer.stringToIntN(data.vINTERVAL_MIN), INTERVAL_MIN_B = _MT.INTERVAL_MIN, TREA_OPEN_TIME = data.vTREA_OPEN_TIME, TREA_OPEN_TIME_B = _MT.TREA_OPEN_TIME, EXEC_TIME_B = data.vEXEC_TIME_B, EXEC_TIME_B_B = _MT.EXEC_TIME_B, EXEC_TIME_E = data.vEXEC_TIME_E, EXEC_TIME_E_B = _MT.EXEC_TIME_E, MAIL_CONTENT_ID = data.vMAIL_CONTENT_ID, MAIL_CONTENT_ID_B = _MT.MAIL_CONTENT_ID, MEMO = data.vMEMO, MEMO_B = _MT.MEMO, IS_DISABLED = data.vIS_DISABLED, IS_DISABLED_B = _MT.IS_DISABLED, APLY_UID = searchData.userId, APLY_DATE = dt, APPR_STATUS = "1", //表單申請 }; logStr += MTH.modelToString(logStr); db.MAIL_TIME_HIS.Add(MTH); } #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 = "申請覆核-mail發送內文設定檔"; log.CACTION = "A"; log.CCONTENT = logStr; LogDao.Insert(log, searchData.userId); #endregion result.RETURN_FLAG = true; result.DESCRIPTION = Ref.MessageType.Apply_Audit_Success.GetDescription(null, $@"單號為{_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); }
/// <summary> /// 保管資料發送維護作業-申請覆核 /// </summary> /// <param name="saveData"></param> /// <param name="searchModel"></param> /// <returns></returns> public MSGReturnModel <IEnumerable <ITinItem> > TinApplyAudit(IEnumerable <ITinItem> saveData, ITinItem searchModel) { var searchData = (ItemChargeUnitSearchViewModel)searchModel; var result = new MSGReturnModel <IEnumerable <ITinItem> >(); result.RETURN_FLAG = false; DateTime dt = DateTime.Now; //return result; try { if (saveData != null) { var datas = (List <ItemChargeUnitSearchDetailViewModel>)saveData; if (datas.Any()) { using (TreasuryDBEntities db = new TreasuryDBEntities()) { //取得流水號 SysSeqDao sysSeqDao = new SysSeqDao(); String qPreCode = DateUtil.getCurChtDateTime().Split(' ')[0]; string _Aply_No = string.Empty; var cId = sysSeqDao.qrySeqNo("G8", qPreCode).ToString().PadLeft(3, '0'); _Aply_No = $@"G8{qPreCode}{cId}"; //G8 + 系統日期YYYMMDD(民國年) + 3碼流水號 string logStr = string.Empty; //log foreach (var item in datas) { var _CHARGE_UNIT_ID = string.Empty; var _ICU = new ITEM_CHARGE_UNIT(); # region 保管單位設定檔 //判斷執行功能 switch (item.vEXEC_ACTION) { case "A": //新增 _CHARGE_UNIT_ID = ""; //_CHARGE_UNIT_ID = sysSeqDao.qrySeqNo("D5", string.Empty).ToString().PadLeft(3, '0'); //_CHARGE_UNIT_ID = $@"D5{_CHARGE_UNIT_ID}"; //_ICU = new ITEM_CHARGE_UNIT() //{ // CHARGE_UNIT_ID = _CHARGE_UNIT_ID, // ITEM_ID = item.vTREA_ITEM_NAME, // CHARGE_DEPT = item.vCHARGE_DEPT, // CHARGE_SECT = item.vCHARGE_SECT, // CHARGE_UID = item.vCHARGE_UID, // IS_MAIL_DEPT_MGR = item.vIS_MAIL_DEPT_MGR, // IS_MAIL_SECT_MGR = item.vIS_MAIL_SECT_MGR, // IS_DISABLED = "N", // DATA_STATUS = "2",//凍結中 // CREATE_DT = dt, // CREATE_UID = searchData.vCUSER_ID, // LAST_UPDATE_DT = dt, // LAST_UPDATE_UID = searchData.vCUSER_ID, // FREEZE_UID = searchData.vCUSER_ID, // FREEZE_DT = dt //}; //db.ITEM_CHARGE_UNIT.Add(_ICU); //logStr += "|"; //logStr += _ICU.modelToString(); break; case "U": //修改 _ICU = db.ITEM_CHARGE_UNIT.FirstOrDefault(x => x.CHARGE_UNIT_ID == item.vCHARGE_UNIT_ID); if (_ICU.LAST_UPDATE_DT != null && _ICU.LAST_UPDATE_DT > item.vLAST_UPDATE_DT) { result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription(); return(result); } _CHARGE_UNIT_ID = item.vCHARGE_UNIT_ID; _ICU.DATA_STATUS = "2"; //凍結中 _ICU.LAST_UPDATE_UID = searchData.vCUSER_ID; _ICU.LAST_UPDATE_DT = dt; _ICU.FREEZE_UID = searchData.vCUSER_ID; _ICU.FREEZE_DT = dt; logStr += "|"; logStr += _ICU.modelToString(); break; case "D": //刪除 _ICU = db.ITEM_CHARGE_UNIT.FirstOrDefault(x => x.CHARGE_UNIT_ID == item.vCHARGE_UNIT_ID); if (_ICU.LAST_UPDATE_DT != null && _ICU.LAST_UPDATE_DT > item.vLAST_UPDATE_DT) { result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription(); return(result); } _CHARGE_UNIT_ID = item.vCHARGE_UNIT_ID; _ICU.DATA_STATUS = "2";//凍結中 _ICU.LAST_UPDATE_UID = searchData.vCUSER_ID; _ICU.LAST_UPDATE_DT = dt; _ICU.FREEZE_UID = searchData.vCUSER_ID; _ICU.FREEZE_DT = dt; logStr += "|"; logStr += _ICU.modelToString(); break; default: break; } #endregion #region 保管單位設定異動檔 var _ICU_Data = db.ITEM_CHARGE_UNIT.FirstOrDefault(x => x.CHARGE_UNIT_ID == item.vCHARGE_UNIT_ID); if (_ICU_Data == null) { var _ICUH = new ITEM_CHARGE_UNIT_HIS() { APLY_NO = _Aply_No, CHARGE_UNIT_ID = _CHARGE_UNIT_ID, EXEC_ACTION = item.vEXEC_ACTION, ITEM_ID = item.vTREA_ITEM_NAME, CHARGE_DEPT = item.vCHARGE_DEPT, CHARGE_SECT = item.vCHARGE_SECT, CHARGE_UID = item.vCHARGE_UID, IS_MAIL_DEPT_MGR = item.vIS_MAIL_DEPT_MGR, IS_MAIL_SECT_MGR = item.vIS_MAIL_SECT_MGR, IS_DISABLED = item.vIS_DISABLED, APLY_DATE = dt, APLY_UID = searchData.vCUSER_ID, APPR_STATUS = "1" //表單申請 }; db.ITEM_CHARGE_UNIT_HIS.Add(_ICUH); logStr += "|"; logStr += _ICUH.modelToString(); } else { var _ICUH = new ITEM_CHARGE_UNIT_HIS() { APLY_NO = _Aply_No, CHARGE_UNIT_ID = _CHARGE_UNIT_ID, EXEC_ACTION = item.vEXEC_ACTION, ITEM_ID = item.vTREA_ITEM_NAME, CHARGE_DEPT = item.vCHARGE_DEPT, CHARGE_SECT = item.vCHARGE_SECT, CHARGE_UID = item.vCHARGE_UID, IS_MAIL_DEPT_MGR = item.vIS_MAIL_DEPT_MGR, IS_MAIL_SECT_MGR = item.vIS_MAIL_SECT_MGR, IS_DISABLED = item.vIS_DISABLED, CHARGE_UID_B = _ICU_Data.CHARGE_UID, IS_MAIL_DEPT_MGR_B = _ICU_Data.IS_MAIL_DEPT_MGR, IS_MAIL_SECT_MGR_B = _ICU_Data.IS_MAIL_SECT_MGR, IS_DISABLED_B = _ICU_Data.IS_DISABLED, APLY_DATE = dt, APLY_UID = searchData.vCUSER_ID, APPR_STATUS = "1" //表單申請 }; db.ITEM_CHARGE_UNIT_HIS.Add(_ICUH); logStr += "|"; logStr += _ICUH.modelToString(); } #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 = "A"; log.CCONTENT = logStr; LogDao.Insert(log, searchData.vCUSER_ID); #endregion result.RETURN_FLAG = true; result.DESCRIPTION = Ref.MessageType.Apply_Audit_Success.GetDescription(null, $@"單號為{_Aply_No}"); } catch (DbUpdateException ex) { result.DESCRIPTION = ex.exceptionMessage(); } } } } else { result.DESCRIPTION = Ref.MessageType.not_Find_Audit_Data.GetDescription(); } } else { result.DESCRIPTION = Ref.MessageType.not_Find_Audit_Data.GetDescription(); } }
/// <summary> /// 異動紀錄查詢資料 /// </summary> /// <param name="searchModel">查詢ViwModel</param> /// <param name="aply_No">申請單號</param> /// <returns></returns> public IEnumerable <ITinItem> GetChangeRecordSearchData(ITinItem searchModel, string aply_No = null) { var searchData = (TreasuryMailTimeSearchViewModel)searchModel; List <TreasuryMailTimeHistoryViewModel> result = new List <TreasuryMailTimeHistoryViewModel>(); //if (searchData == null) // return result; using (TreasuryDBEntities db = new TreasuryDBEntities()) { var emps = GetEmps(); var _CODE_FUNC = db.CODE_FUNC.AsNoTracking().ToList(); var _sysCodes = db.SYS_CODE.AsNoTracking().ToList(); var _EXEC_ACTION = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "EXEC_ACTION").ToList(); var _Appr_Status = _sysCodes .Where(x => x.CODE_TYPE == "APPR_STATUS").ToList(); var _Is_Disabled = db.SYS_CODE.AsNoTracking() .Where(x => x.CODE_TYPE == "IS_DISABLED").ToList(); result = db.MAIL_TIME_HIS.AsNoTracking() .Where(x => x.FUNC_ID == searchData.vFunc_ID || x.FUNC_ID_B == searchData.vFunc_ID, searchData != null && !searchData.vFunc_ID.IsNullOrWhiteSpace()) .Where(x => x.MAIL_TIME_ID == searchData.vMAIL_TIME_ID, searchData != null && !searchData.vMAIL_TIME_ID.IsNullOrWhiteSpace()) .Where(x => x.APPR_STATUS == searchData.vAPPR_STATUS, searchData != null && !searchData.vAPPR_STATUS.IsNullOrWhiteSpace() && searchData.vAPPR_STATUS != "All") .Where(x => x.APLY_NO == aply_No, !aply_No.IsNullOrWhiteSpace()) .AsEnumerable() .Select(x => new TreasuryMailTimeHistoryViewModel() { vAPLY_DATE = TypeTransfer.dateTimeNToString(x.APLY_DATE), vAPLY_NO = x.APLY_NO, vAPLY_UID_Name = emps.FirstOrDefault(y => y.USR_ID == x.APLY_UID)?.EMP_NAME?.Trim(), Act = _EXEC_ACTION.FirstOrDefault(y => y.CODE == x.EXEC_ACTION)?.CODE_VALUE, vSEND_TIME = x.SEND_TIME, vSEND_TIME_B = x.SEND_TIME_B, vFUNC_ID = x.FUNC_ID, vFUNC_ID_B = x.FUNC_ID_B, vINTERVAL_MIN = x.INTERVAL_MIN?.ToString(), vINTERVAL_MIN_B = x.INTERVAL_MIN_B?.ToString(), vEXEC_TIME_B = x.EXEC_TIME_B, vEXEC_TIME_B_B = x.EXEC_TIME_B_B, vEXEC_TIME_E = x.EXEC_TIME_E, vEXEC_TIME_E_B = x.EXEC_TIME_E_B, vTREA_OPEN_TIME = x.TREA_OPEN_TIME, vTREA_OPEN_TIME_B = x.TREA_OPEN_TIME_B, vMAIL_CONTENT_ID = x.MAIL_CONTENT_ID, vMAIL_CONTENT_ID_B = x.MAIL_CONTENT_ID_B, vMEMO = x.MEMO, vMEMO_B = x.MEMO_B, vIS_DISABLED = _Is_Disabled.FirstOrDefault(y => y.CODE == x.IS_DISABLED)?.CODE_VALUE, vIS_DISABLED_B = _Is_Disabled.FirstOrDefault(y => y.CODE == x.IS_DISABLED_B)?.CODE_VALUE, vAPPR_STATUS = _Appr_Status.FirstOrDefault(y => y.CODE == x.APPR_STATUS)?.CODE_VALUE, vAPPR_DESC = x.APPR_DESC }).ToList(); } return(result); }
/// <summary> /// 金庫進出管理作業-申請覆核 /// </summary> /// <param name="saveData">申請覆核的資料</param> /// <param name="searchModel">查詢ViwModel</param> /// <returns></returns> public MSGReturnModel <IEnumerable <ITinItem> > TinApplyAudit(IEnumerable <ITinItem> saveData, ITinItem searchModel) { var searchData = (DepChkItemSearchViewModel)searchModel; var result = new MSGReturnModel <IEnumerable <ITinItem> >(); result.RETURN_FLAG = false; DateTime dt = DateTime.Now; try { if (saveData != null) { var datas = (List <DepChkItemViewModel>)saveData; if (datas.Any()) { using (TreasuryDBEntities db = new TreasuryDBEntities()) { //取得流水號 SysSeqDao sysSeqDao = new SysSeqDao(); String qPreCode = DateUtil.getCurChtDateTime().Split(' ')[0]; string _Aply_No = string.Empty; var cId = sysSeqDao.qrySeqNo("G9", qPreCode).ToString().PadLeft(3, '0'); _Aply_No = $@"G9{qPreCode}{cId}"; //申請單號 G9+系統日期YYYMMDD(民國年)+3碼流水號 string logStr = string.Empty; //log foreach (var item in datas) { int _Isortby = 0, _Item_Order = 0; var _DCI = new DEP_CHK_ITEM(); #region 定存檢核表項目設定檔 //判斷執行功能 switch (item.vExec_Action) { case "A": //新增 //判斷交易別 if (item.vAccess_Type == "P") { _Isortby = sysSeqDao.qrySeqNo("DCI_P", string.Empty); //_Item_Order = GetItem_Order("P"); } else if (item.vAccess_Type == "G") { _Isortby = sysSeqDao.qrySeqNo("DCI_G", string.Empty); //_Item_Order = GetItem_Order("G"); } //_DCI = new DEP_CHK_ITEM() //{ // ACCESS_TYPE=item.vAccess_Type, // ISORTBY= _Isortby, // DEP_CHK_ITEM_DESC=item.vDep_Chk_Item_Desc, // IS_DISABLED=item.vIs_Disabled, // ITEM_ORDER= _Item_Order, // REPLACE=item.vReplace, // DATA_STATUS = "2",//凍結中 // CREATE_UID = searchData.vLast_Update_Uid, // CREATE_DT = dt, // LAST_UPDATE_UID = searchData.vLast_Update_Uid, // LAST_UPDATE_DT = dt, // FREEZE_UID = searchData.vLast_Update_Uid, // FREEZE_DT = dt //}; //db.DEP_CHK_ITEM.Add(_DCI); //logStr += "|"; //logStr += _DCI.modelToString(); break; case "U": //修改 _DCI = db.DEP_CHK_ITEM.FirstOrDefault(x => x.ACCESS_TYPE == item.vAccess_Type && x.ISORTBY == item.vIsortby); if (_DCI.LAST_UPDATE_DT != null && _DCI.LAST_UPDATE_DT > item.vLast_Update_Dt) { result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription(); return(result); } _Isortby = item.vIsortby; _Item_Order = _DCI.ITEM_ORDER; _DCI.DATA_STATUS = "2";//凍結中 _DCI.LAST_UPDATE_UID = searchData.vLast_Update_Uid; _DCI.LAST_UPDATE_DT = dt; _DCI.FREEZE_UID = searchData.vLast_Update_Uid; _DCI.FREEZE_DT = dt; logStr += "|"; logStr += _DCI.modelToString(); break; default: break; } #endregion #region 定存檢核表項目設定異動檔 var _DCI_Data = db.DEP_CHK_ITEM.FirstOrDefault(x => x.ACCESS_TYPE == item.vAccess_Type && x.ISORTBY == item.vIsortby); if (_DCI_Data == null) { var _DCIH = new DEP_CHK_ITEM_HIS() { APLY_NO = _Aply_No, ACCESS_TYPE = item.vAccess_Type, ISORTBY = _Isortby, EXEC_ACTION = item.vExec_Action, DEP_CHK_ITEM_DESC = item.vDep_Chk_Item_Desc, IS_DISABLED = item.vIs_Disabled, ITEM_ORDER = _Item_Order, REPLACE = item.vReplace, APPR_STATUS = "1",//表單申請 APLY_UID = searchData.vLast_Update_Uid, APLY_DATE = dt }; db.DEP_CHK_ITEM_HIS.Add(_DCIH); logStr += "|"; logStr += _DCIH.modelToString(); } else { var _DCIH = new DEP_CHK_ITEM_HIS() { APLY_NO = _Aply_No, ACCESS_TYPE = item.vAccess_Type, ISORTBY = _Isortby, EXEC_ACTION = item.vExec_Action, DEP_CHK_ITEM_DESC = item.vDep_Chk_Item_Desc, IS_DISABLED = item.vIs_Disabled, ITEM_ORDER = _Item_Order, REPLACE = item.vReplace, APPR_STATUS = "1",//表單申請 DEP_CHK_ITEM_DESC_B = _DCI_Data.DEP_CHK_ITEM_DESC, IS_DISABLED_B = _DCI_Data.IS_DISABLED, ITEM_ORDER_B = _DCI_Data.ITEM_ORDER, REPLACE_B = _DCI_Data.REPLACE, APLY_UID = searchData.vLast_Update_Uid, APLY_DATE = dt }; db.DEP_CHK_ITEM_HIS.Add(_DCIH); logStr += "|"; logStr += _DCIH.modelToString(); } #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, searchData.vLast_Update_Uid); #endregion result.RETURN_FLAG = true; result.DESCRIPTION = Ref.MessageType.Apply_Audit_Success.GetDescription(null, $@"單號為{_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); }