Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
        /// <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);
        }
Exemplo n.º 7
0
        /// <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);
        }
Exemplo n.º 8
0
        //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();
                }
            }
Exemplo n.º 9
0
        /// <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);
        }
Exemplo n.º 10
0
        /// <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);
        }
Exemplo n.º 11
0
        /// <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);
        }
Exemplo n.º 12
0
        /// <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);
        }
Exemplo n.º 13
0
        /// <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);
        }
Exemplo n.º 14
0
        /// <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);
        }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 16
0
        /// <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);
        }
Exemplo n.º 17
0
        /// <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();
                }
            }
Exemplo n.º 18
0
        /// <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);
        }
Exemplo n.º 19
0
        /// <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);
        }