Exemple #1
0
        /// <summary>
        /// 以AD帳號查詢使用者相關資訊
        /// </summary>
        /// <param name="USR_ID"></param>
        /// <returns></returns>
        public V_EMPLY2 qryByUsrId(String USR_ID, DB_INTRAEntities db)
        {
            V_EMPLY2 oaEmp = db.V_EMPLY2
                             .Where(x => x.USR_ID == USR_ID).FirstOrDefault();

            return(oaEmp);
        }
Exemple #2
0
        public JsonResult qryUserRole(string userId)
        {
            CodeUserRoleDao          CodeUserRoleDao = new CodeUserRoleDao();
            List <CodeUserRoleModel> rows            = CodeUserRoleDao.qryByUserID(userId);

            using (DB_INTRAEntities dbIntra = new DB_INTRAEntities())
            {
                Dictionary <string, string> userNameMap = new Dictionary <string, string>();
                OaEmpDao oaEmpDao  = new OaEmpDao();
                string   createUid = "";

                foreach (CodeUserRoleModel d in rows)
                {
                    createUid = StringUtil.toString(d.createUid);

                    if (!"".Equals(createUid))
                    {
                        if (!userNameMap.ContainsKey(createUid))
                        {
                            userNameMap = oaEmpDao.qryUsrName(userNameMap, createUid, dbIntra);
                        }
                        d.createUid = createUid + " " + userNameMap[createUid];
                    }
                }
            }



            var jsonData = new { success = true, roleList = rows };

            return(Json(jsonData, JsonRequestBehavior.AllowGet));
        }
Exemple #3
0
        /// <summary>
        /// 畫面初始
        /// </summary>
        /// <returns></returns>
        public Tuple <List <SelectOption>, List <SelectOption> > FirstDropDown()
        {
            List <SelectOption> CHARGE_DEPT = new List <SelectOption>();
            List <SelectOption> TREA_ITEM   = new List <SelectOption>();

            using (DB_INTRAEntities dbIntra = new DB_INTRAEntities())
            {
                var _VW_OA_DEPT = dbIntra.VW_OA_DEPT.AsNoTracking();
                var _Dpt_types  = new List <string>()
                {
                    "03", "02"
                };
                CHARGE_DEPT = _VW_OA_DEPT.Where(x => _Dpt_types.Contains(x.Dpt_type))
                              .AsEnumerable()
                              .Select(x => new SelectOption()
                {
                    Value = x.DPT_CD?.Trim(),
                    Text  = x.DPT_NAME?.Trim()
                }).ToList();
            }
            using (TreasuryDBEntities db = new TreasuryDBEntities())
            {
                TREA_ITEM = db.TREA_ITEM.AsNoTracking()
                                                                                       //.Where(x => x.DAILY_FLAG == "N")
                            .Where(x => x.IS_DISABLED == "N" && x.ITEM_OP_TYPE == "3") //「入庫作業類型=3」且啟用中的存取項目
                            .OrderBy(x => x.ITEM_ID)
                            .AsEnumerable()
                            .Select(x => new SelectOption()
                {
                    Value = x.ITEM_ID,
                    Text  = x.ITEM_DESC
                }).ToList();
            }
            return(new Tuple <List <SelectOption>, List <SelectOption> >(CHARGE_DEPT, TREA_ITEM));
        }
Exemple #4
0
        protected void SetDetail(string vTreaRegisterId, string vUser_Id)
        {
            _REC = new REC();

            using (TreasuryDBEntities db = new TreasuryDBEntities())
            {
                //取得開庫紀錄檔
                var _TOR = db.TREA_OPEN_REC.AsNoTracking()
                           .FirstOrDefault(x => x.TREA_REGISTER_ID == vTreaRegisterId);

                //金庫管理者
                var UserData = new V_EMPLY2();
                using (DB_INTRAEntities dbINTRA = new DB_INTRAEntities())
                {
                    UserData = dbINTRA.V_EMPLY2.AsNoTracking().FirstOrDefault(x => x.USR_ID == vUser_Id);
                }

                //開庫類型
                var OpenTreaType = db.SYS_CODE.AsNoTracking()
                                   .Where(x => x.CODE_TYPE == "OPEN_TREA_TYPE").ToList();

                if (_TOR != null)
                {
                    _REC.SYS_DATE         = DateTime.Now.ToString("yyyy/MM/dd");
                    _REC.TREA_REGISTER_ID = _TOR.TREA_REGISTER_ID;
                    _REC.USER_NAME        = UserData.EMP_NAME;
                    _REC.ACTUAL_PUT_TIME  = string.IsNullOrEmpty(_TOR.ACTUAL_PUT_TIME.ToString()) ? null : DateTime.Parse(_TOR.ACTUAL_PUT_TIME.ToString()).ToString("HH:mm");
                    _REC.ACTUAL_GET_TIME  = string.IsNullOrEmpty(_TOR.ACTUAL_GET_TIME.ToString()) ? null : DateTime.Parse(_TOR.ACTUAL_GET_TIME.ToString()).ToString("HH:mm");
                    _REC.OPEN_TREA_TYPE   = OpenTreaType.FirstOrDefault(x => x.CODE == _TOR.OPEN_TREA_TYPE).CODE_VALUE;
                }
            }
        }
Exemple #5
0
        /// <summary>
        /// 輸入單位代碼,查詢相關資訊
        /// </summary>
        /// <param name="DPT_CD"></param>
        /// <returns></returns>
        public VW_OA_DEPT qryByDptCd(String DPT_CD)
        {
            DB_INTRAEntities context = new DB_INTRAEntities();

            VW_OA_DEPT oaDept = context.VW_OA_DEPT
                                .Where(x => x.DPT_CD == DPT_CD).FirstOrDefault();

            return(oaDept);
        }
Exemple #6
0
        /// <summary>
        /// 獲取 部門資料
        /// </summary>
        /// <returns></returns>
        public List <VW_OA_DEPT> GetDepts()
        {
            var depts = new List <VW_OA_DEPT>();

            using (DB_INTRAEntities dbINTRA = new DB_INTRAEntities())
            {
                depts = dbINTRA.VW_OA_DEPT.AsNoTracking().ToList();
            }
            return(depts);
        }
Exemple #7
0
        /// <summary>
        /// 回傳 部門 資料
        /// </summary>
        /// <param name="DPT_CD"></param>
        /// <returns></returns>
        public VW_OA_DEPT getDept(string DPT_CD)
        {
            var result = new VW_OA_DEPT();

            using (DB_INTRAEntities db = new DB_INTRAEntities())
            {
                result = db.VW_OA_DEPT.FirstOrDefault(x => x.DPT_CD == DPT_CD);
            }
            return(result);
        }
Exemple #8
0
        /// <summary>
        /// 獲取 員工資料
        /// </summary>
        /// <returns></returns>
        public List <V_EMPLY2> GetEmps()
        {
            var emps = new List <V_EMPLY2>();

            using (DB_INTRAEntities dbINTRA = new DB_INTRAEntities())
            {
                emps = dbINTRA.V_EMPLY2.AsNoTracking().Where(x => x.USR_ID != null).ToList();
            }

            return(emps);
        }
Exemple #9
0
        public JsonResult LoadData(string codeRole, string roleAuthType, string isDIsabled, string vMemo, string cUpdUserID)
        {
            CodeRoleDao codeRoleDao = new CodeRoleDao();
            OaEmpDao    oaEmpDao    = new OaEmpDao();

            List <RoleMgrModel> rows = new List <RoleMgrModel>();

            rows = codeRoleDao.roleMgrQry(codeRole, roleAuthType, isDIsabled, vMemo, cUpdUserID);

            Dictionary <string, string> userNameMap = new Dictionary <string, string>();
            string userUId = "";
            string userFId = "";

            using (new TransactionScope(
                       TransactionScopeOption.Required,
                       new TransactionOptions
            {
                IsolationLevel = IsolationLevel.ReadUncommitted
            }))
            {
                using (DB_INTRAEntities dbIntra = new DB_INTRAEntities())
                {
                    foreach (RoleMgrModel role in rows)
                    {
                        userUId = StringUtil.toString(role.cUpdUserID);
                        userFId = StringUtil.toString(role.freezeUid);

                        if (!"".Equals(userUId))
                        {
                            if (!userNameMap.ContainsKey(userUId))
                            {
                                userNameMap = oaEmpDao.qryUsrName(userNameMap, userUId, dbIntra);
                            }
                            role.cUpdUserID = userUId + " " + userNameMap[userUId];
                        }

                        if (!"".Equals(userFId))
                        {
                            if (!userNameMap.ContainsKey(userFId))
                            {
                                userNameMap = oaEmpDao.qryUsrName(userNameMap, userFId, dbIntra);
                            }
                            role.freezeUid = userFId + " " + userNameMap[userFId];
                        }
                    }
                }
            }

            var jsonData = new { success = true, rows };

            return(Json(jsonData, JsonRequestBehavior.AllowGet));
        }
Exemple #10
0
        protected void SetDetail(string aply_No)
        {
            var depts = new List <VW_OA_DEPT>();
            var emps  = new List <V_EMPLY2>();

            _REC = new REC();
            //var sys
            using (DB_INTRAEntities dbINTRA = new DB_INTRAEntities())
            {
                depts = dbINTRA.VW_OA_DEPT.AsNoTracking().Where(x => x.DPT_CD != null).ToList();
                emps  = dbINTRA.V_EMPLY2.AsNoTracking().ToList();
            }
        }
Exemple #11
0
        public JsonResult LoadData(String cReviewType)
        {
            AuthApprDao authApprDao = new AuthApprDao();

            List <AuthReviewModel> rows = new List <AuthReviewModel>();

            using (new TransactionScope(
                       TransactionScopeOption.Required,
                       new TransactionOptions
            {
                IsolationLevel = IsolationLevel.ReadUncommitted
            }))
            {
                using (dbTreasuryEntities db = new dbTreasuryEntities())
                {
                    try
                    {
                        //查出待覆核的資料
                        rows = authApprDao.qryAuthReview("R", "1", db);
                    }
                    catch (Exception e)
                    {
                        logger.Error("其它錯誤:" + e.ToString());
                        return(Json(new { success = false, err = "其它錯誤,請洽系統管理員!!" }));
                    }
                }
            }
            using (DB_INTRAEntities dbIntra = new DB_INTRAEntities())
            {
                Dictionary <string, string> userNameMap = new Dictionary <string, string>();
                OaEmpDao oaEmpDao  = new OaEmpDao();
                string   createUid = "";

                foreach (AuthReviewModel d in rows)
                {
                    createUid = StringUtil.toString(d.createUid);

                    if (!"".Equals(createUid))
                    {
                        if (!userNameMap.ContainsKey(createUid))
                        {
                            userNameMap = oaEmpDao.qryUsrName(userNameMap, createUid, dbIntra);
                        }
                        d.createUid = createUid + " " + userNameMap[createUid];
                    }
                }
            }
            var jsonData = new { success = true, rows };

            return(Json(jsonData, JsonRequestBehavior.AllowGet));
        }
Exemple #12
0
        public UserMgrModel getUserOaData(UserMgrModel user, DB_INTRAEntities db)
        {
            V_EMPLY2 oaEmp = db.V_EMPLY2
                             .Where(x => x.USR_ID == user.cUserID).FirstOrDefault();

            if (oaEmp != null)
            {
                if (!"".Equals(oaEmp.EMP_NO))
                {
                    user.cUserName     = StringUtil.toString(oaEmp.EMP_NAME);
                    user.cWorkUnitCode = StringUtil.toString(oaEmp.DPT_CD);
                    user.cWorkUnitDesc = StringUtil.toString(oaEmp.DPT_NAME);
                }
            }

            return(user);
        }
Exemple #13
0
        /// <summary>
        /// 取得 人員基本資料
        /// </summary>
        /// <param name="cUserID"></param>
        /// <returns></returns>
        public BaseUserInfoModel GetUserInfo(string cUserID)
        {
            BaseUserInfoModel user = new BaseUserInfoModel();

            using (DB_INTRAEntities dbINTRA = new DB_INTRAEntities())
            {
                var _emply = dbINTRA.V_EMPLY2.AsNoTracking().FirstOrDefault(x => x.USR_ID == cUserID);
                if (_emply != null)
                {
                    user.EMP_ID   = cUserID;
                    user.EMP_Name = _emply.EMP_NAME?.Trim();
                    user.DPT_ID   = _emply.DPT_CD?.Trim();
                    user.DPT_Name = _emply.DPT_NAME?.Trim();
                }
            }
            return(user);
        }
Exemple #14
0
        /// <summary>
        /// 申請單位 變更時 變更申請人
        /// </summary>
        /// <param name="DPT_CD">單位</param>
        /// <returns></returns>
        public List <SelectOption> ChangeUnit(string DPT_CD)
        {
            List <SelectOption> results = new List <SelectOption>();

            using (DB_INTRAEntities db = new DB_INTRAEntities())
            {
                results = db.V_EMPLY2.AsNoTracking()
                          .Where(x => x.DPT_CD == DPT_CD)
                          .AsEnumerable()
                          .Select(x => new SelectOption()
                {
                    Value = x.USR_ID,
                    Text  = $@"{x.USR_ID}({x.EMP_NAME})"
                }).ToList();
            }
            return(results);
        }
Exemple #15
0
        /// <summary>
        /// 回傳 Emply 資料
        /// </summary>
        /// <param name="USR_ID"></param>
        /// <returns></returns>
        public List <V_EMPLY2> getEmply(string USR_ID = null)
        {
            var result = new List <V_EMPLY2>();

            using (DB_INTRAEntities db = new DB_INTRAEntities())
            {
                if (string.IsNullOrEmpty(USR_ID))
                {
                    result = db.V_EMPLY2.ToList();
                }
                else
                {
                    result = db.V_EMPLY2.Where(x => x.USR_ID == USR_ID).ToList();
                }
            }
            return(result);
        }
Exemple #16
0
        public List <SelectOption> selectCodeUser(string ROLE_ID = null)
        {
            List <SelectOption> results = new List <SelectOption>()
            {
                new SelectOption()
                {
                    Text = "請選擇", Value = " "
                }
            };
            List <string> userIds = new List <string>();

            using (dbTreasuryEntities db = new dbTreasuryEntities())
            {
                if (string.IsNullOrWhiteSpace(ROLE_ID))
                {
                    userIds = db.CODE_USER.AsNoTracking().Where(x => x.IS_DISABLED != "Y").Select(x => x.USER_ID).ToList();
                }
                else
                {
                    userIds = db.CODE_ROLE.AsNoTracking().Where(x => x.ROLE_ID == ROLE_ID)
                              //.Join(db.CODE_USER_ROLE.AsNoTracking(),
                              //x => x.ROLE_ID,
                              //y => y.ROLE_ID,
                              //(x, y) => y)
                              .Join(db.CODE_USER.AsNoTracking().Where(x => x.IS_DISABLED != "Y"),
                                    x => x.LAST_UPDATE_UID,
                                    y => y.USER_ID,
                                    (x, y) => y)
                              .Select(x => x.USER_ID).ToList();
                }
            }
            using (DB_INTRAEntities intra = new DB_INTRAEntities())
            {
                var emps = intra.V_EMPLY2.AsNoTracking().ToList();
                foreach (var userId in userIds)
                {
                    results.Add(new SelectOption()
                    {
                        Value = userId,
                        Text  = $@"{userId} {emps.FirstOrDefault(x => x.USR_ID == userId)?.EMP_NAME}"
                    });
                }
            }
            return(results);
        }
Exemple #17
0
        /**
         * 查詢出所有使用者資料(for畫面下拉選單使用)
         **/
        public SelectList loadSelectList()
        {
            dbTreasuryEntities context = new dbTreasuryEntities();

            List <UserMgrModel> result1 = (from user in context.CODE_USER
                                           select new UserMgrModel
            {
                cUserID = user.USER_ID.Trim()
            }
                                           ).ToList();


            OaEmpDao oaEmpDao = new OaEmpDao();

            using (DB_INTRAEntities dbIntra = new DB_INTRAEntities())
            {
                foreach (UserMgrModel user in result1)
                {
                    try
                    {
                        user.cUserName = user.cUserID + " " + StringUtil.toString(oaEmpDao.qryByUsrId(user.cUserID, dbIntra).EMP_NAME);
                    }
                    catch (Exception e)
                    {
                    }
                }
            }



            var items = new SelectList
                        (
                items: result1,
                dataValueField: "cUserID",
                dataTextField: "cUserName",
                selectedValue: (object)null
                        );


            return(items);
        }
Exemple #18
0
        /// <summary>
        /// 金庫物品存取申請覆核作業 覆核查詢
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public List <TreasuryAccessApprSearchDetailViewModel> GetApprSearchDetail(TreasuryAccessApprSearchViewModel data)
        {
            List <TreasuryAccessApprSearchDetailViewModel> result = new List <TreasuryAccessApprSearchDetailViewModel>();
            List <string> dptList = new List <string>()
            {
                data.vCreateUnit
            };

            using (TreasuryDBEntities db = new TreasuryDBEntities())
            {
                var depts  = GetDepts();
                var emps   = GetEmps();
                var _CUser = emps.FirstOrDefault(x => x.USR_ID == data.vCreateUid);
                if (_CUser != null)
                {
                    using (DB_INTRAEntities dbIntra = new DB_INTRAEntities())
                    {
                        var _V_EMPLY2_DPT_CD = dbIntra.V_EMPLY2.AsNoTracking()
                                               .Where(x => x.DPT_HEAD == _CUser.EMP_NO).Select(x => x.DPT_CD).Distinct();
                        _V_EMPLY2_DPT_CD.ToList().ForEach(x => {
                            dptList.Add(x?.Trim());
                        });
                    }
                }

                var      treaItems   = db.TREA_ITEM.AsNoTracking().Where(x => x.ITEM_OP_TYPE == "3").ToList();
                DateTime?_vAPLY_DT_S = TypeTransfer.stringToDateTimeN(data.vAPLY_DT_S);
                DateTime?_vAPLY_DT_E = TypeTransfer.stringToDateTimeN(data.vAPLY_DT_E).DateToLatestTime();
                result = db.TREA_APLY_REC.AsNoTracking()
                         .Where(x => x.APLY_DT >= _vAPLY_DT_S, _vAPLY_DT_S != null)                                                   //申請日期(起)
                         .Where(x => x.APLY_DT <= _vAPLY_DT_E, _vAPLY_DT_E != null)                                                   //申請日期(迄)
                         .Where(x => x.APLY_NO == data.vAPLY_NO, !data.vAPLY_NO.IsNullOrWhiteSpace())                                 //申請單號
                                                                                                                                      //.Where(x => x.CREATE_UNIT == data.vCreateUnit && apprStatus.Contains(x.APLY_STATUS)) //相同部門 & 符合狀態 的資料
                         .Where(x => dptList.Distinct().Contains(x.CREATE_UNIT) && apprStatus.Contains(x.APLY_STATUS), dptList.Any()) //相同部門含主管 & 符合狀態 的資料
                         .AsEnumerable()
                         .Select(x => TreaAplyRecToTAASDViewModel(data.vCreateUid, x, treaItems, depts, emps)).ToList();
            }
            return(result);
        }
Exemple #19
0
        /// <summary>
        /// 查詢申請單紀錄資料by單號
        /// </summary>
        /// <param name="aplyNo"></param>
        /// <returns></returns>
        public TreasuryAccessViewModel GetByAplyNo(string aplyNo)
        {
            var result = new TreasuryAccessViewModel();
            var depts  = new List <VW_OA_DEPT>();
            var emps   = new List <V_EMPLY2>();

            using (DB_INTRAEntities dbINTRA = new DB_INTRAEntities())
            {
                depts = dbINTRA.VW_OA_DEPT.AsNoTracking().ToList();
                emps  = dbINTRA.V_EMPLY2.AsNoTracking().ToList();
            }
            using (TreasuryDBEntities db = new TreasuryDBEntities())
            {
                var formStatus    = db.SYS_CODE.AsNoTracking().Where(x => x.CODE_TYPE == "FORM_STATUS").ToList();
                var treaItemTypes = db.TREA_ITEM.AsNoTracking().Where(x => x.IS_DISABLED == "N" && x.ITEM_OP_TYPE == "3").ToList();
                var data          = db.TREA_APLY_REC.AsNoTracking().FirstOrDefault(x => x.APLY_NO == aplyNo);
                if (data != null)
                {
                    result.vAplyNo             = data.APLY_NO;
                    result.vItem               = treaItemTypes.FirstOrDefault(x => x.ITEM_ID == data.ITEM_ID)?.ITEM_DESC;
                    result.vAplyUnitNmae       = depts.FirstOrDefault(y => y.DPT_CD.Trim() == data.APLY_UNIT)?.DPT_NAME; //1904112 Bianco 改為顯示名子
                    result.vAplyUidName        = emps.FirstOrDefault(x => x.USR_ID == data.APLY_UID)?.EMP_NAME;          //1904112 Bianco 改為顯示名子
                    result.vAplyUnit           = data.APLY_UNIT;
                    result.vAplyUid            = data.APLY_UID;
                    result.vChargeUnit         = depts.FirstOrDefault(y => y.DPT_CD.Trim() == data.APLY_UNIT)?.DPT_NAME;
                    result.vAccessType         = data.ACCESS_TYPE == "P" ? "存入" : data.ACCESS_TYPE == "G" ? "取出" : ""; //存入(P) or 取出(G)
                    result.vExpectedAccessDate = TypeTransfer.dateTimeNToString(data.EXPECTED_ACCESS_DATE);
                    result.vCreateDt           = TypeTransfer.dateTimeNToString(data.CREATE_DT);
                    var _createEmp = emps.FirstOrDefault(x => x.USR_ID == data.CREATE_UID);
                    result.vCreateUnit     = depts.FirstOrDefault(y => y.DPT_CD.Trim() == _createEmp?.DPT_CD?.Trim())?.DPT_NAME;
                    result.vCreateUid      = _createEmp?.EMP_NAME;
                    result.vCreateUnit_Id  = data.CREATE_UNIT;
                    result.vCreateUid_Id   = data.CREATE_UID;
                    result.vAccessReason   = data.ACCESS_REASON;
                    result.vLastUpdateTime = data.LAST_UPDATE_DT;
                }
            }
            return(result);
        }
Exemple #20
0
        /// <summary>
        /// 取中文姓名
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        public ActionResult getUserName(string userId)
        {
            string   userName = "";
            OaEmpDao oaEmpDao = new OaEmpDao();
            V_EMPLY2 emp      = new V_EMPLY2();

            using (DB_INTRAEntities dbIntra = new DB_INTRAEntities())
            {
                emp = oaEmpDao.qryByUsrId(userId, dbIntra);
                if (emp != null)
                {
                    userName = StringUtil.toString(emp.EMP_NAME);
                }
            }

            if ("".Equals(userName))
            {
                return(Json(new { success = false, err = "無此帳號資料,不可新增!!" }));
            }
            else
            {
                return(Json(new { success = true, userName = userName }));
            }
        }
Exemple #21
0
        public override DataSet GetData(List <reportParm> parms)
        {
            //報表資料
            List <DepositReportCAData> ReportDataList = new List <DepositReportCAData>();
            var    resultsTable  = new DataSet();
            var    ReportData    = new DepositReportCAData();
            string vdept         = parms.Where(x => x.key == "vdept").FirstOrDefault()?.value ?? string.Empty;
            string vsect         = parms.Where(x => x.key == "vsect").FirstOrDefault()?.value ?? string.Empty;
            string JobProject    = parms.Where(x => x.key == "vJobProject").FirstOrDefault()?.value ?? string.Empty;
            string APLY_DT_From  = parms.Where(x => x.key == "APLY_DT_From").FirstOrDefault()?.value ?? string.Empty; //庫存日期
            string APLY_ODT_From = parms.Where(x => x.key == "APLY_ODT_From").FirstOrDefault()?.value ?? string.Empty;
            string APLY_ODT_To   = parms.Where(x => x.key == "APLY_ODT_To").FirstOrDefault()?.value ?? string.Empty;

            using (TreasuryDBEntities db = new TreasuryDBEntities())
            {
                var _APLY_DT       = TypeTransfer.stringToDateTime(APLY_DT_From).DateToLatestTime();
                var _APLY_DT_Date  = _APLY_DT.Date;
                var dtn            = DateTime.Now.Date;
                var _APLY_ODT_From = TypeTransfer.stringToDateTimeN(APLY_ODT_From);
                var _APLY_ODT_To   = TypeTransfer.stringToDateTimeN(APLY_ODT_To).DateToLatestTime();
                int TOTAL          = 0;
                INVENTORY_STATUSs.AddRange(new List <string>()
                {
                    ((int)AccessInventoryType._5).ToString(), //預約取出,計庫存
                    ((int)AccessInventoryType._6).ToString(), //已被取出,計庫存
                    ((int)AccessInventoryType._9).ToString()
                });                                           //預約存入,計庫存
                var _IC = db.ITEM_CA.AsNoTracking()           //判斷是否在庫
                          .Where(x => INVENTORY_STATUSs.Contains(x.INVENTORY_STATUS), _APLY_DT_Date == dtn)
                          .Where(x =>
                                 (INVENTORY_STATUSs.Contains(x.INVENTORY_STATUS) && x.PUT_DATE <= _APLY_DT) // 在庫 且 存入日期 <= 庫存日期
                                 ||
                                 (x.INVENTORY_STATUS == INVENTORY_STATUSg &&
                                  x.PUT_DATE <= _APLY_DT &&
                                  _APLY_DT < x.GET_DATE), //存入日期 <= 庫存日期 且 庫存日期 < 取出日期
                                 _APLY_DT_Date != dtn)
                          .Where(x => x.CHARGE_DEPT == vdept, vdept != "All")
                          .Where(x => x.CHARGE_SECT == vsect, vsect != "All")
                          .Where(x => x.PUT_DATE >= _APLY_ODT_From, _APLY_ODT_From != null)
                          .Where(x => x.PUT_DATE <= _APLY_ODT_To, _APLY_ODT_To != null)
                          .ToList();

                var depts = new List <VW_OA_DEPT>();
                var types = new List <SYS_CODE>();
                using (DB_INTRAEntities dbINTRA = new DB_INTRAEntities())
                {
                    depts = dbINTRA.VW_OA_DEPT.AsNoTracking().Where(x => x.DPT_CD != null).ToList();
                }
                types = db.SYS_CODE.AsNoTracking().Where(x => x.CODE != null).ToList();
                foreach (var CAdata in _IC /*.OrderBy(x => x.PUT_DATE).ThenBy(x=>x.CHARGE_DEPT)*/.OrderBy(x => x.CHARGE_DEPT).ThenBy(x => x.CHARGE_SECT).ThenBy(x => x.CA_USE).ThenBy(x => x.CA_DESC).ThenBy(x => x.BANK).ThenBy(x => x.CA_NUMBER))
                {
                    TOTAL++;
                    var _CHARGE_DEPT = getEmpName(depts, CAdata.CHARGE_DEPT);
                    var _CHARGE_SECT = getEmpName(depts, CAdata.CHARGE_SECT)?.Replace(_CHARGE_DEPT, "")?.Trim();
                    ReportData = new DepositReportCAData()
                    {
                        ROW            = TOTAL,
                        PUT_DATE       = CAdata.PUT_DATE.dateTimeToStr(),
                        CHARGE_DEPT    = _CHARGE_DEPT,
                        CHARGE_SECT    = _CHARGE_SECT,
                        CA_DESC        = getCAdesc(types, CAdata.CA_DESC),
                        CA_USE         = getCAuse(types, CAdata.CA_USE),
                        BANK           = CAdata.BANK,
                        CA_NUMBER      = CAdata.CA_NUMBER,
                        MEMO           = CAdata.MEMO,
                        CHARGE_DEPT_ID = CAdata.CHARGE_DEPT,
                        CHARGE_SECT_ID = CAdata.CHARGE_SECT
                    };
                    ReportDataList.Add(ReportData);
                }
            }
            resultsTable.Tables.Add(ReportDataList.ToDataTable());
            return(resultsTable);
        }
Exemple #22
0
        /**
         * 角色資訊(含功能授權)
         **/
        public ActionResult detailRole(string cRoleId, string execType)
        {
            /*---畫面下拉選單初始值---*/

            //金庫設備
            TreaEquipDao treaEquipDao = new TreaEquipDao();

            ViewBag.equipList = treaEquipDao.jqgridSelect();

            //存取項目
            TreaItemDao treaItemDao = new TreaItemDao();

            ViewBag.itemList = treaItemDao.jqgridSelect("");

            SysCodeDao sysCodeDao = new SysCodeDao();

            //停用註記
            var isDisabledList = sysCodeDao.loadSelectList("IS_DISABLED");

            ViewBag.isDisabledList = isDisabledList;

            //角色群組
            var roleAuthTypeList = sysCodeDao.loadSelectList("ROLE_AUTH_TYPE");

            ViewBag.roleAuthTypeList = roleAuthTypeList;

            //控管模式
            var controlList = sysCodeDao.loadSelectList("CONTROL_MODE");

            ViewBag.controlList = controlList;
            //ViewBag.controlList = sysCodeDao.jqGridList("CONTROL_MODE");


            //控管方式
            var custodyList = sysCodeDao.loadSelectList("CUSTODY_MODE");

            ViewBag.custodyList = custodyList;
            //ViewBag.custodyList = sysCodeDao.jqGridList("CUSTODY_MODE");


            //入庫作業類型
            ViewBag.itemOpTypeList = sysCodeDao.jqGridList("ITEM_OP_TYPE");



            //覆核狀態  add by daiyu 20180214
            Dictionary <string, string> dicReview = sysCodeDao.qryByTypeDic("DATA_STATUS");



            //查詢角色資訊
            CodeRoleDao codeRoleDao = new CodeRoleDao();
            CODE_ROLE   codeRole    = new CODE_ROLE();

            if (cRoleId != null)
            {
                codeRole = codeRoleDao.qryRoleByKey(cRoleId);
            }



            //將值搬給畫面欄位
            RoleMgrModel roleMgrModel = new RoleMgrModel();

            qryUserFunc(cRoleId);  //取得已授權、未授權功能清單

            if (!"".Equals(StringUtil.toString(codeRole.ROLE_ID)))
            {
                roleMgrModel.cRoleID      = StringUtil.toString(codeRole.ROLE_ID);
                roleMgrModel.cRoleName    = StringUtil.toString(codeRole.ROLE_NAME);
                roleMgrModel.roleAuthType = StringUtil.toString(codeRole.ROLE_AUTH_TYPE);
                roleMgrModel.isDisabled   = StringUtil.toString(codeRole.IS_DISABLED);
                roleMgrModel.vMemo        = StringUtil.toString(codeRole.MEMO);
                roleMgrModel.dataStatus   = StringUtil.toString(codeRole.DATA_STATUS) == "" ? "" : codeRole.DATA_STATUS + "." + dicReview[codeRole.DATA_STATUS];

                roleMgrModel.cCrtDateTime = codeRole.CREATE_DT == null ? "" : DateUtil.DatetimeToString(codeRole.CREATE_DT, "");

                roleMgrModel.cUpdDateTime = codeRole.LAST_UPDATE_DT == null ? "" : DateUtil.DatetimeToString(codeRole.LAST_UPDATE_DT, "");

                OaEmpDao oaEmpDao = new OaEmpDao();
                using (DB_INTRAEntities dbIntra = new DB_INTRAEntities())
                {
                    try
                    {
                        roleMgrModel.cCrtUserID = codeRole.CREATE_UID == null ? "" : StringUtil.toString(oaEmpDao.qryByUsrId(codeRole.CREATE_UID, dbIntra).EMP_NAME);
                    }
                    catch (Exception e)
                    {
                    }

                    try
                    {
                        roleMgrModel.cUpdUserID = codeRole.LAST_UPDATE_UID == null ? "" : StringUtil.toString(oaEmpDao.qryByUsrId(codeRole.LAST_UPDATE_UID, dbIntra).EMP_NAME);
                    }
                    catch (Exception e)
                    {
                    }
                }


                roleMgrModel.Categories = ViewBag.funcList;

                ViewBag.bHaveData = "Y";
                //return RedirectToAction("Index", "Home");
                return(View(roleMgrModel));
            }
            else
            {
                if ("A".Equals(execType))
                {
                    qryUserFunc("");  //取得已授權、未授權功能清單

                    roleMgrModel.cRoleID      = "";
                    roleMgrModel.cRoleName    = "";
                    roleMgrModel.isDisabled   = "N";
                    roleMgrModel.vMemo        = "";
                    roleMgrModel.cCrtUserID   = "";
                    roleMgrModel.cCrtDateTime = "";
                    roleMgrModel.cUpdUserID   = "";
                    roleMgrModel.cUpdDateTime = "";
                    roleMgrModel.dataStatus   = "";

                    roleMgrModel.Categories = ViewBag.funcList;
                    ViewBag.bHaveData       = "Y";
                    return(View(roleMgrModel));
                }
                else
                {
                    ViewBag.bHaveData = "N";
                    return(View("detailRole"));
                }
            }
        }
Exemple #23
0
        /// <summary>
        /// 金庫進出管理作業-金庫物品存取申請作業 初始畫面顯示
        /// </summary>
        /// <param name="cUserID">userId</param>
        /// <param name="custodyFlag">管理科Flag</param>
        /// <param name="unit">科別指定</param>
        /// <returns></returns>
        public Tuple <List <SelectOption>, List <SelectOption>, List <SelectOption>, BaseUserInfoModel> TreasuryAccessDetail(string cUserID, bool custodyFlag, string unit = null)
        {
            List <SelectOption> applicationProject = new List <SelectOption>(); //申請項目
            List <SelectOption> applicationUnit    = new List <SelectOption>(); //申請單位
            List <SelectOption> applicant          = new List <SelectOption>(); //申請人
            var empty = new SelectOption()
            {
                Text = string.Empty, Value = string.Empty
            };
            BaseUserInfoModel user = GetUserInfo(cUserID); //填表人 資料

            try
            {
                using (DB_INTRAEntities dbINTRA = new DB_INTRAEntities())
                {
                    var depts = dbINTRA.VW_OA_DEPT.AsNoTracking().ToList();
                    using (TreasuryDBEntities db = new TreasuryDBEntities())
                    {
                        #region 保管科人員
                        if (custodyFlag) //是保管科人員
                        {
                            applicationProject = db.TREA_ITEM.AsNoTracking()
                                                 .Where(x => x.IS_DISABLED == "N" && x.ITEM_OP_TYPE == "3") //「入庫作業類型=3」且啟用中的存取項目
                                                 .OrderBy(x => x.ITEM_ID)
                                                 .AsEnumerable()
                                                 .Select(x => new SelectOption()
                            {
                                Value = x.ITEM_ID,
                                Text  = x.ITEM_DESC
                            }).ToList();

                            var Units = new List <string>();

                            //自【保管單位設定檔】中挑出啟用中的單位
                            db.ITEM_CHARGE_UNIT.AsNoTracking()
                            .Where(x => x.IS_DISABLED == "N").ToList()
                            .ForEach(x => {
                                if (!x.CHARGE_SECT.IsNullOrWhiteSpace())
                                {
                                    Units.Add(x.CHARGE_SECT.Trim());
                                }
                                else
                                {
                                    Units.Add(x.CHARGE_DEPT.Trim());
                                }
                            });

                            applicationUnit = Units.Distinct().OrderBy(x => x)
                                              .AsEnumerable()
                                              .Select(x => new SelectOption()
                            {
                                Value = x,
                                Text  = depts.FirstOrDefault(y => y.DPT_CD.Trim() == x)?.DPT_NAME
                            }).ToList();
                            if (applicationUnit.Any())
                            {
                                if (unit != null)
                                {
                                    var _first = applicationUnit.FirstOrDefault(x => x.Value == unit);
                                    if (_first != null)
                                    {
                                        applicant = dbINTRA.V_EMPLY2.AsNoTracking()
                                                    .Where(x => x.DPT_CD == _first.Value)
                                                    .AsEnumerable()
                                                    .Select(x => new SelectOption()
                                        {
                                            Value = x.USR_ID,
                                            Text  = $@"{x.USR_ID}({x.EMP_NAME})"
                                        }).ToList();
                                    }
                                }
                            }
                            if (!applicant.Any())
                            {
                                applicant.Add(empty);
                            }
                        }
                        #endregion
                        #region 非保管科人員
                        else
                        {
                            applicationProject =
                                db.CODE_USER_ROLE.AsNoTracking()
                                .Where(x => x.USER_ID == cUserID)      //登入者所擁有的角色
                                .Join(db.CODE_ROLE_ITEM.AsNoTracking()
                                      .Where(x => x.AUTH_TYPE == "2"), //表單申請權限=Y
                                      x => x.ROLE_ID,
                                      y => y.ROLE_ID,
                                      (x, y) => y
                                      ).Join(db.TREA_ITEM.AsNoTracking(), //金庫存取作業設定檔
                                             x => x.ITEM_ID,
                                             y => y.ITEM_ID,
                                             (x, y) => y
                                             ).AsEnumerable()
                                .Select(x => new SelectOption()
                            {
                                Value = x.ITEM_ID,
                                Text  = x.ITEM_DESC
                            }).ToList();

                            if (user != null)
                            {
                                applicationUnit.Add(new SelectOption()
                                {
                                    Value = user.DPT_ID,
                                    Text  = user.DPT_Name
                                });
                                applicant.Add(new SelectOption()
                                {
                                    Value = user.EMP_ID,
                                    Text  = $@"{user.EMP_ID}({user.EMP_Name})"
                                });
                            }
                        }
                        #endregion
                    }
                }
            }
            catch (Exception ex)
            {
                var message = ex.exceptionMessage();
                throw ex;
            }

            return(new Tuple <List <SelectOption>, List <SelectOption>, List <SelectOption>, BaseUserInfoModel>(applicationProject, applicationUnit, applicant, user));
        }
Exemple #24
0
        public JsonResult SendReport(
            reportModel data,
            List <reportParm> parms,
            List <reportParm> extensionParms = null
            )
        {
            MSGReturnModel <string> result = new MSGReturnModel <string>();

            result.RETURN_FLAG = false;

            Treasury.WebUtility.FileRelated.createFile(Server.MapPath("~/Temp/"));
            try
            {
                var fileLocation = Server.MapPath("~/Temp/");

                string title = "報表名稱";
                if (data.className.IsNullOrWhiteSpace())
                {
                    result.DESCRIPTION = "寄送報表錯誤請聯絡IT人員";
                    //result.DESCRIPTION = MessageType.parameter_Error.GetDescription(null, "無呼叫的className");
                    return(Json(result));
                }
                if (!data.title.IsNullOrWhiteSpace())
                {
                    title = data.title;
                }
                object       obj     = Activator.CreateInstance(Assembly.Load("Treasury.Web").GetType($"Treasury.Web.Report.Data.{data.className}"));
                MethodInfo[] methods = obj.GetType().GetMethods();
                MethodInfo   mi      = methods.FirstOrDefault(x => x.Name == "GetData");
                if (mi == null)
                {
                    //檢查是否有實作資料獲取
                    result.DESCRIPTION = "寄送報表錯誤請聯絡IT人員";
                    return(Json(result));
                }
                DataSet           ds    = (DataSet)mi.Invoke(obj, new object[] { parms });
                List <reportParm> eparm = (List <reportParm>)(obj.GetType().GetProperty("extensionParms").GetValue(obj));

                var lr = new LocalReport();
                lr.ReportPath = Server.MapPath($"~/Report/Rdlc/{data.className}.rdlc");
                lr.DataSources.Clear();
                List <ReportParameter> _parm = new List <ReportParameter>();
                _parm.Add(new ReportParameter("Title", title));
                if (extensionParms != null)
                {
                    _parm.AddRange(extensionParms.Select(x => new ReportParameter(x.key, x.value)));
                }
                if (eparm.Any())
                {
                    _parm.AddRange(eparm.Select(x => new ReportParameter(x.key, x.value)));
                }
                if (_parm.Any())
                {
                    lr.SetParameters(_parm);
                }

                for (int i = 0; i < ds.Tables.Count; i++)
                {
                    lr.DataSources.Add(new ReportDataSource("DataSet" + (i + 1).ToString(), ds.Tables[i]));
                }

                string _DisplayName = title;
                if (_DisplayName != null)
                {
                    _DisplayName = _DisplayName.Replace("(", "-").Replace(")", "");
                    var _name = _parm.FirstOrDefault(x => x.Name == "vJobProject");
                    if (_name != null)
                    {
                        _DisplayName = $"{_DisplayName}_{_name.Values[0]}";
                    }
                }
                lr.DisplayName = _DisplayName;
                lr.Refresh();

                string mimeType, encoding, extension;

                Warning[] warnings;
                string[]  streams;
                var       renderedBytes = lr.Render
                                          (
                    "PDF",
                    null,
                    out mimeType,
                    out encoding,
                    out extension,
                    out streams,
                    out warnings
                                          );

                var saveAs = string.Format("{0}.pdf", Path.Combine(fileLocation, _DisplayName));

                var idx = 0;
                while (Directory.Exists(saveAs))
                {
                    idx++;
                    saveAs = string.Format("{0}.{1}.pdf", Path.Combine(fileLocation, _DisplayName), idx);
                }

                //using (var stream = new FileStream(saveAs, FileMode.Create, FileAccess.Write))
                //{
                //    stream.Write(renderedBytes, 0, renderedBytes.Length);
                //    stream.Close();
                //}

                lr.Dispose();


                #region 寄信
                //存許項目
                string vitemIdName = extensionParms.FirstOrDefault(x => x.key == "vJobProject")?.value;
                //庫存日期
                string aplyDt = parms.FirstOrDefault(x => x.key == "APLY_DT_From")?.value;

                MAIL_TIME    MT = new MAIL_TIME();
                MAIL_CONTENT MC = new MAIL_CONTENT();

                //List<Tuple<string, string>> _mailTo = new List<Tuple<string, string>>() { new Tuple<string, string>("*****@*****.**", "測試帳號-glsisys") };
                List <Tuple <string, string> > _mailTo = new List <Tuple <string, string> >();
                List <Tuple <string, string> > _ccTo   = new List <Tuple <string, string> >();
                using (TreasuryDBEntities db = new TreasuryDBEntities())
                {
                    //季追蹤庫存表 抓5
                    MT = db.MAIL_TIME.AsNoTracking().FirstOrDefault(x => x.MAIL_TIME_ID == "5" && x.IS_DISABLED != "Y");
                    var _MAIL_CONTENT_ID = MT?.MAIL_CONTENT_ID;
                    MC = db.MAIL_CONTENT.AsNoTracking().FirstOrDefault(x => x.MAIL_CONTENT_ID == _MAIL_CONTENT_ID && x.IS_DISABLED != "Y");
                    var _MAIL_RECEIVE   = db.MAIL_RECEIVE.AsNoTracking();
                    var _CODE_ROLE_FUNC = db.CODE_ROLE_FUNC.AsNoTracking();
                    var _CODE_USER_ROLE = db.CODE_USER_ROLE.AsEnumerable();
                    var _CODE_USER      = db.CODE_USER.AsNoTracking();

                    var emps = comm.GetEmps();
                    using (DB_INTRAEntities dbINTRA = new DB_INTRAEntities())
                    {
                        //存許項目
                        string vitemId = parms.FirstOrDefault(x => x.key == "vJobProject")?.value;             //Bianco 20190326 原參數 vjobProject
                        //權責部門
                        string vdept = parms.FirstOrDefault(x => x.key == "vdept")?.value;                     //Bianco 20190326 原參數 CHARGE_DEPT_ID
                        //權責科別
                        string vsect = parms.FirstOrDefault(x => x.key == "vsect")?.value;                     //Bianco 20190326 原參數 CHARGE_SECT_ID

                        var _VW_OA_DEPT = dbINTRA.VW_OA_DEPT.AsNoTracking();
                        var _V_EMPLY2   = dbINTRA.V_EMPLY2.AsNoTracking();

                        var _ITEM_CHARGE_UNIT = db.ITEM_CHARGE_UNIT.AsNoTracking()
                                                .Where(x => x.ITEM_ID == vitemId, vitemId != null)
                                                .Where(x => x.CHARGE_DEPT == vdept, vdept != "All")
                                                .Where(x => x.CHARGE_SECT == vsect, vsect != "All")
                                                .Where(x => x.IS_DISABLED == "N")
                                                .AsEnumerable()
                                                .Select(x => new ITEM_CHARGE_UNIT()
                        {
                            CHARGE_DEPT      = x.CHARGE_DEPT,
                            CHARGE_SECT      = x.CHARGE_SECT,
                            CHARGE_UID       = x.CHARGE_UID,
                            IS_MAIL_SECT_MGR = x.IS_MAIL_SECT_MGR,
                            IS_MAIL_DEPT_MGR = x.IS_MAIL_DEPT_MGR
                        }).ToList();
                        _ITEM_CHARGE_UNIT.ForEach(x => {
                            //經辦

                            var _CHARGE_NAME = _V_EMPLY2.FirstOrDefault(y => y.USR_ID == x.CHARGE_UID);
                            if (_CHARGE_NAME != null && !_mailTo.Any(y => y.Item1 == _CHARGE_NAME.EMAIL))
                            {
                                _mailTo.Add(new Tuple <string, string>(_CHARGE_NAME.EMAIL, _CHARGE_NAME.EMP_NAME));
                            }

                            if (x.IS_MAIL_SECT_MGR == "Y")
                            {
                                //科主管員編
                                var _VW_OA_DEPT_DPT_HEAD = _VW_OA_DEPT.FirstOrDefault(y => y.DPT_CD == x.CHARGE_SECT)?.DPT_HEAD;

                                //人名 EMAIl
                                var _EMP_NAME = _V_EMPLY2.FirstOrDefault(y => y.EMP_NO == _VW_OA_DEPT_DPT_HEAD);
                                if (_EMP_NAME != null && !_mailTo.Any(y => y.Item1 == _EMP_NAME.EMAIL))
                                {
                                    _mailTo.Add(new Tuple <string, string>(_EMP_NAME.EMAIL, _EMP_NAME.EMP_NAME));
                                }
                            }
                            if (x.IS_MAIL_DEPT_MGR == "Y")
                            {
                                //部主管員編
                                //var _UP_DPT_CD = _VW_OA_DEPT.FirstOrDefault(y => y.DPT_CD == x.CHARGE_SECT)?.UP_DPT_CD;
                                //var _UP_DPT_CD = _VW_OA_DEPT.FirstOrDefault(y => y.DPT_CD == x.CHARGE_SECT)?.UP_DPT_CD;
                                //var _VW_OA_DEPT_DPT_HEAD = _VW_OA_DEPT.FirstOrDefault(y => y.DPT_CD == _UP_DPT_CD)?.DPT_HEAD;
                                var _VW_OA_DEPT_DPT_HEAD = _VW_OA_DEPT.FirstOrDefault(y => y.DPT_CD == x.CHARGE_DEPT)?.DPT_HEAD;
                                //人名 EMAIl
                                var _EMP_NAME = _V_EMPLY2.FirstOrDefault(y => y.EMP_NO == _VW_OA_DEPT_DPT_HEAD);
                                if (_EMP_NAME != null && !_ccTo.Any(y => y.Item1 == _EMP_NAME.EMAIL) && !_mailTo.Any(y => y.Item1 == _EMP_NAME.EMAIL))
                                {
                                    _ccTo.Add(new Tuple <string, string>(_EMP_NAME.EMAIL, _EMP_NAME.EMP_NAME));
                                }
                            }
                        });
                        if (MC != null)
                        {
                            var           _FuncId     = _MAIL_RECEIVE.Where(x => x.MAIL_CONTENT_ID == MC.MAIL_CONTENT_ID).Select(x => x.FUNC_ID);
                            var           _RoleId     = _CODE_ROLE_FUNC.Where(x => _FuncId.Contains(x.FUNC_ID)).Select(x => x.ROLE_ID);
                            var           _UserId     = _CODE_USER_ROLE.Where(x => _RoleId.Contains(x.ROLE_ID)).Select(x => x.USER_ID).Distinct();
                            List <string> _userIdList = new List <string>();

                            _userIdList.AddRange(_CODE_USER.Where(x => _UserId.Contains(x.USER_ID) && x.IS_MAIL == "Y").Select(x => x.USER_ID).ToList());
                            if (_userIdList.Any())
                            {
                                //人名 EMAIl
                                var _EMP = emps.Where(x => _userIdList.Contains(x.USR_ID)).ToList();
                                if (_EMP.Any())
                                {
                                    _EMP.ForEach(x => {
                                        if (!_ccTo.Any(y => y.Item1 == x.EMAIL) && !_mailTo.Any(y => y.Item1 == x.EMAIL))
                                        {
                                            _ccTo.Add(new Tuple <string, string>(x.EMAIL, x.EMP_NAME));
                                        }
                                    });
                                }
                            }
                        }
                    }
                }

                string passwordZip = getPassWord();
                Dictionary <string, Stream> attachment = new Dictionary <string, Stream>();
                //attachment.Add(string.Format("{0}.pdf", _DisplayName), new MemoryStream(renderedBytes));

                using (ZipFile zip = new ZipFile(System.Text.Encoding.Default))
                {
                    var memSteam     = new MemoryStream();
                    var streamWriter = new StreamWriter(memSteam);


                    ZipEntry e = zip.AddEntry(string.Format("{0}.pdf", _DisplayName), new MemoryStream(renderedBytes));
                    e.Password   = passwordZip;
                    e.Encryption = EncryptionAlgorithm.WinZipAes256;

                    var ms = new MemoryStream();
                    ms.Seek(0, SeekOrigin.Begin);

                    zip.Save(ms);

                    ms.Seek(0, SeekOrigin.Begin);
                    ms.Flush();

                    attachment.Add(string.Format("{0}.zip", _DisplayName), ms);
                }

                string str = MC?.MAIL_CONTENT1 ?? string.Empty;

                str = str.Replace("@_DATE_", aplyDt);
                str = str.Replace("@_ITEM_", vitemIdName);

                StringBuilder sb = new StringBuilder();
                sb.AppendLine(str);

                try
                {
                    var sms = new SendMail.SendMailSelf();
                    sms.smtpPort    = 25;
                    sms.smtpServer  = Properties.Settings.Default["smtpServer"]?.ToString();
                    sms.mailAccount = Properties.Settings.Default["mailAccount"]?.ToString();
                    sms.mailPwd     = Properties.Settings.Default["mailPwd"]?.ToString();
                    sms.Mail_Send(
                        new Tuple <string, string>(sms.mailAccount, "金庫管理系統"),
                        _mailTo,
                        _ccTo,
                        MC?.MAIL_SUBJECT ?? "季追蹤庫存表",
                        sb.ToString(),
                        false,
                        attachment
                        );
                }
                catch (Exception ex)
                {
                    result.DESCRIPTION = $"Email 發送失敗請人工通知。";
                    return(Json(result));
                }


                //寄密碼
                try
                {
                    var sms = new SendMail.SendMailSelf();
                    sms.smtpPort    = 25;
                    sms.smtpServer  = Properties.Settings.Default["smtpServer"]?.ToString();
                    sms.mailAccount = Properties.Settings.Default["mailAccount"]?.ToString();
                    sms.mailPwd     = Properties.Settings.Default["mailPwd"]?.ToString();
                    sms.Mail_Send(
                        new Tuple <string, string>(sms.mailAccount, "金庫管理系統"),
                        _mailTo,
                        _ccTo,
                        "季追蹤庫存表-密碼",
                        $"密碼:{passwordZip}",
                        false,
                        null
                        );
                }
                catch (Exception ex)
                {
                    result.DESCRIPTION = $"Email 密碼發送失敗。";
                    return(Json(result));
                }
                #endregion

                result.RETURN_FLAG = true;
                result.DESCRIPTION = "已寄送追蹤報表!";
            }
            catch (Exception ex)
            {
                result.DESCRIPTION = ex.exceptionMessage();
            }
            return(Json(result));
        }
Exemple #25
0
        public override DataSet GetData(List <reportParm> parms)
        {
            //報表資料
            List <DepositReportESTATEData> ReportDataList = new List <DepositReportESTATEData>();
            var    resultsTable  = new DataSet();
            var    ReportData    = new DepositReportESTATEData();
            string vdept         = parms.Where(x => x.key == "vdept").FirstOrDefault()?.value ?? string.Empty;
            string vsect         = parms.Where(x => x.key == "vsect").FirstOrDefault()?.value ?? string.Empty;
            string BOOK_NO       = parms.Where(x => x.key == "vBook_No").FirstOrDefault()?.value ?? string.Empty;
            string JobProject    = parms.Where(x => x.key == "vJobProject").FirstOrDefault()?.value ?? string.Empty;
            string APLY_DT_From  = parms.Where(x => x.key == "APLY_DT_From").FirstOrDefault()?.value ?? string.Empty; //庫存日期
            string APLY_ODT_From = parms.Where(x => x.key == "APLY_ODT_From").FirstOrDefault()?.value ?? string.Empty;
            string APLY_ODT_To   = parms.Where(x => x.key == "APLY_ODT_To").FirstOrDefault()?.value ?? string.Empty;

            using (TreasuryDBEntities db = new TreasuryDBEntities())
            {
                var _APLY_DT       = TypeTransfer.stringToDateTime(APLY_DT_From).DateToLatestTime();
                var _APLY_DT_Date  = _APLY_DT.Date;
                var dtn            = DateTime.Now.Date;
                var _APLY_ODT_From = TypeTransfer.stringToDateTimeN(APLY_ODT_From);
                var _APLY_ODT_To   = TypeTransfer.stringToDateTimeN(APLY_ODT_To).DateToLatestTime();

                int TOTAL = 0;
                INVENTORY_STATUSs.AddRange(new List <string>()
                {
                    ((int)AccessInventoryType._5).ToString(),    //預約取出,計庫存
                    ((int)AccessInventoryType._6).ToString(),    //已被取出,計庫存
                    ((int)AccessInventoryType._9).ToString()
                });                                              //預約存入,計庫存
                var _IRE = db.ITEM_REAL_ESTATE.AsNoTracking().ToList();

                _IRE = db.ITEM_REAL_ESTATE.AsNoTracking()//判斷是否在庫
                       .Where(x => INVENTORY_STATUSs.Contains(x.INVENTORY_STATUS), _APLY_DT_Date == dtn)
                       .Where(x =>
                              (INVENTORY_STATUSs.Contains(x.INVENTORY_STATUS) && x.PUT_DATE <= _APLY_DT) // 在庫 且 存入日期 <= 庫存日期
                              ||
                              (x.INVENTORY_STATUS == INVENTORY_STATUSg &&
                               x.PUT_DATE <= _APLY_DT &&
                               _APLY_DT < x.GET_DATE), //存入日期 <= 庫存日期 且 庫存日期 < 取出日期
                              _APLY_DT_Date != dtn)
                       .Where(x => x.CHARGE_DEPT == vdept, vdept != "All")
                       .Where(x => x.CHARGE_SECT == vsect, vsect != "All")
                       .Where(x => x.GROUP_NO.ToString() == BOOK_NO, BOOK_NO != "All")
                       .Where(x => x.PUT_DATE >= _APLY_ODT_From, _APLY_ODT_From != null)
                       .Where(x => x.PUT_DATE <= _APLY_ODT_To, _APLY_ODT_To != null).ToList();

                var depts = new List <VW_OA_DEPT>();
                var types = new List <SYS_CODE>();
                var book  = new List <ITEM_BOOK>();
                using (DB_INTRAEntities dbINTRA = new DB_INTRAEntities())
                {
                    depts = dbINTRA.VW_OA_DEPT.AsNoTracking().Where(x => x.DPT_CD != null).ToList();
                }
                types = db.SYS_CODE.AsNoTracking().Where(x => x.CODE != null && x.CODE_TYPE == "ESTATE_TYPE").ToList();
                book  = db.ITEM_BOOK.AsNoTracking().Where(x => x.GROUP_NO.ToString() != null).ToList();
                _IRE.ForEach(x =>
                {
                    x.ESTATE_FORM_NO = types.FirstOrDefault(y => y.CODE_VALUE == x.ESTATE_FORM_NO)?.CODE;
                });
                foreach (var ESTATEdata in _IRE.OrderBy(x => x.GROUP_NO).ThenBy(x => x.PUT_DATE).ThenBy(x => x.ESTATE_FORM_NO).ThenBy(x => x.ESTATE_DATE).ThenBy(x => x.OWNERSHIP_CERT_NO))
                {
                    TOTAL++;
                    var _CHARGE_DEPT = getEmpName(depts, ESTATEdata.CHARGE_DEPT);
                    var _CHARGE_SECT = getEmpName(depts, ESTATEdata.CHARGE_SECT)?.Replace(_CHARGE_DEPT, "")?.Trim();
                    ReportData = new DepositReportESTATEData()
                    {
                        ROW               = TOTAL,
                        PUT_DATE          = ESTATEdata.PUT_DATE.dateTimeToStr(),
                        ESTATE_FORM_NO    = types.FirstOrDefault(x => x.CODE == ESTATEdata.ESTATE_FORM_NO)?.CODE_VALUE,
                        ESTATE_DATE       = ESTATEdata.ESTATE_DATE.dateTimeToStr(),
                        OWNERSHIP_CERT_NO = ESTATEdata.OWNERSHIP_CERT_NO,
                        LAND_BUILDING_NO  = ESTATEdata.LAND_BUILDING_NO,
                        HOUSE_NO          = ESTATEdata.HOUSE_NO,
                        ESTATE_SEQ        = ESTATEdata.ESTATE_SEQ,
                        BOOK_NO_DETAIL    = ESTATEdata.GROUP_NO.ToString(),
                        BUILDING_NAME     = getBuildName(book, ESTATEdata.GROUP_NO.ToString()),
                        LOCATED           = getLocated(book, ESTATEdata.GROUP_NO.ToString()),
                        CHARGE_DEPT       = _CHARGE_DEPT,
                        CHARGE_SECT       = _CHARGE_SECT,
                        CHARGE_DEPT_ID    = ESTATEdata.CHARGE_DEPT,
                        CHARGE_SECT_ID    = ESTATEdata.CHARGE_SECT,
                        MEMO              = ESTATEdata.MEMO,
                    };
                    ReportDataList.Add(ReportData);
                }
            }
            resultsTable.Tables.Add(ReportDataList.ToDataTable());
            return(resultsTable);
        }
Exemple #26
0
        /// <summary>
        /// 取得人員姓名
        /// </summary>
        /// <param name="userNameMap"></param>
        /// <param name="usrId"></param>
        /// <param name="db"></param>
        /// <returns></returns>
        public Dictionary <string, string> qryUsrName(Dictionary <string, string> userNameMap, string usrId, DB_INTRAEntities db)
        {
            if (!"".Equals(usrId))
            {
                if (!userNameMap.ContainsKey(usrId))
                {
                    V_EMPLY2 oaEmp = qryByUsrId(usrId, db);
                    if (oaEmp != null)
                    {
                        if (!"".Equals(StringUtil.toString(oaEmp.EMP_NAME)))
                        {
                            userNameMap.Add(usrId, StringUtil.toString(oaEmp.EMP_NAME));
                        }
                        else
                        {
                            userNameMap.Add(usrId, "");
                        }
                    }
                    else
                    {
                        userNameMap.Add(usrId, "");
                    }
                }
            }

            return(userNameMap);
        }
Exemple #27
0
        protected void SetDetail(string aply_No)
        {
            var depts = new List <VW_OA_DEPT>();
            var emps  = new List <V_EMPLY2>();

            _REC = new REC();
            //var sys
            using (DB_INTRAEntities dbINTRA = new DB_INTRAEntities())
            {
                depts = dbINTRA.VW_OA_DEPT.AsNoTracking().Where(x => x.DPT_CD != null).ToList();
                emps  = dbINTRA.V_EMPLY2.AsNoTracking().ToList();
            }
            using (TreasuryDBEntities db = new TreasuryDBEntities())
            {
                var treaItems = db.TREA_ITEM.AsNoTracking().Where(x => x.ITEM_OP_TYPE == "3").ToList();
                var data      = db.TREA_APLY_REC.AsNoTracking().FirstOrDefault(x => x.APLY_NO == aply_No);
                ////////////Bianco////////////
                var status = db.SYS_CODE.AsNoTracking().Where(x => x.CODE_TYPE == "FORM_STATUS");

                var _dept = new INTRA().getDept(data.APLY_UNIT);
                if (_dept != null)
                {
                    if (_dept.Dpt_type != null)
                    {
                        switch (_dept.Dpt_type.Trim())
                        {
                        case "04":     //科
                            _REC.APLY_DEPT = _dept.UP_DPT_CD?.Trim();
                            _REC.APLY_SECT = _dept.DPT_CD?.Trim();
                            break;

                        case "03":     //部
                        case "02":     //營管
                            _REC.APLY_DEPT = _dept.DPT_CD?.Trim();
                            break;
                        }
                    }
                }
                _REC.APLY_NO              = data.APLY_NO;                                                         //申請單號
                _REC.ACCESS_TYPE          = data.ACCESS_TYPE == "P" ? "存入" : data.ACCESS_TYPE == "G" ? "取出" : ""; //動作 存入/取出
                _REC.APLY_DT              = TypeTransfer.dateTimeNToString(data.CREATE_DT);                       //申請日期
                _REC.ITEM_ID              = treaItems.FirstOrDefault(x => x.ITEM_ID == data.ITEM_ID)?.ITEM_DESC;  //作業項目
                _REC.APLY_UNIT            = getEmpName(depts, data.APLY_UNIT);                                    //權責部門
                _REC.ACCESS_REASON        = data.ACCESS_REASON;                                                   //申請原因
                _REC.EXPECTED_ACCESS_DATE = TypeTransfer.dateTimeNToString(data.EXPECTED_ACCESS_DATE);            //預計存取日期
                //申請單位
                var APLY_APPR = getDeptName(emps, data.APLY_APPR_UID);                                            //覆核人員資料
                _REC.APLY_APPR_UID_UNIT = APLY_APPR.Item1;                                                        //覆核人員單位
                _REC.APLY_APPR_UID      = APLY_APPR.Item2;                                                        //覆核人員名稱
                var APLY = getDeptName(emps, data.APLY_UID);                                                      //申請人員資料
                _REC.APLY_UID_UNIT = APLY.Item1;                                                                  //申請人員單位
                _REC.APLY_UID      = APLY.Item2;                                                                  //申請人員名稱
                //保管單位
                var CUSTODY_APPR = getDeptName(emps, data.CUSTODY_APPR_UID);                                      //覆核人員資料
                _REC.CUSTODY_APPR_UID_UNIT = CUSTODY_APPR.Item1;                                                  //覆核人員單位
                _REC.CUSTODY_APPR_UID      = CUSTODY_APPR.Item2;                                                  //覆核人員名稱
                var CUSTODY = getDeptName(emps, data.CUSTODY_UID);                                                //承辦人員資料
                _REC.CUSTODY_UID_UNIT = CUSTODY.Item1;                                                            //承辦人員單位
                _REC.CUSTODY_UID      = CUSTODY.Item2;                                                            //承辦人員名稱
                _REC.APLY_STATUS      = getStatue(data.APLY_STATUS);                                              //申請狀態
            }
        }
Exemple #28
0
        public override DataSet GetData(List <reportParm> parms)
        {
            //報表資料
            List <DepositReportMargingData> ReportDataList = new List <DepositReportMargingData>();
            var    resultsTable  = new DataSet();
            var    ReportData    = new DepositReportMargingData();
            string vdept         = parms.Where(x => x.key == "vdept").FirstOrDefault()?.value ?? string.Empty;
            string vsect         = parms.Where(x => x.key == "vsect").FirstOrDefault()?.value ?? string.Empty;
            string JobProject    = parms.Where(x => x.key == "vJobProject").FirstOrDefault()?.value ?? string.Empty;
            string APLY_DT_From  = parms.Where(x => x.key == "APLY_DT_From").FirstOrDefault()?.value ?? string.Empty; //庫存日期
            string APLY_ODT_From = parms.Where(x => x.key == "APLY_ODT_From").FirstOrDefault()?.value ?? string.Empty;
            string APLY_ODT_To   = parms.Where(x => x.key == "APLY_ODT_To").FirstOrDefault()?.value ?? string.Empty;

            using (TreasuryDBEntities db = new TreasuryDBEntities())
            {
                var _APLY_DT       = TypeTransfer.stringToDateTime(APLY_DT_From).DateToLatestTime();
                var _APLY_DT_Date  = _APLY_DT.Date;
                var dtn            = DateTime.Now.Date;
                var _APLY_ODT_From = TypeTransfer.stringToDateTimeN(APLY_ODT_From);
                var _APLY_ODT_To   = TypeTransfer.stringToDateTimeN(APLY_ODT_To).DateToLatestTime();

                INVENTORY_STATUSs.AddRange(new List <string>()
                {
                    ((int)AccessInventoryType._5).ToString(),    //預約取出,計庫存
                    ((int)AccessInventoryType._6).ToString(),    //已被取出,計庫存
                    ((int)AccessInventoryType._9).ToString()
                });                                              //預約存入,計庫存

                var _IRD = db.ITEM_REFUNDABLE_DEP.AsNoTracking() //判斷是否在庫
                           .Where(x => INVENTORY_STATUSs.Contains(x.INVENTORY_STATUS), _APLY_DT_Date == dtn)
                           .Where(x =>
                                  (INVENTORY_STATUSs.Contains(x.INVENTORY_STATUS) && x.PUT_DATE <= _APLY_DT) // 在庫 且 存入日期 <= 庫存日期
                                  ||
                                  (x.INVENTORY_STATUS == INVENTORY_STATUSg &&
                                   x.PUT_DATE <= _APLY_DT &&
                                   _APLY_DT < x.GET_DATE), //存入日期 <= 庫存日期 且 庫存日期 < 取出日期
                                  _APLY_DT_Date != dtn)
                           .Where(x => x.CHARGE_DEPT == vdept, vdept != "All")
                           .Where(x => x.CHARGE_SECT == vsect, vsect != "All")
                           .Where(x => x.PUT_DATE >= _APLY_ODT_From, _APLY_ODT_From != null)
                           .Where(x => x.PUT_DATE <= _APLY_ODT_To, _APLY_ODT_To != null)
                           .ToList();

                var depts = new List <VW_OA_DEPT>();
                var types = new List <SYS_CODE>();
                using (DB_INTRAEntities dbINTRA = new DB_INTRAEntities())
                {
                    depts = dbINTRA.VW_OA_DEPT.AsNoTracking().Where(x => x.DPT_CD != null).ToList();
                }

                types = db.SYS_CODE.AsNoTracking().Where(x => x.CODE != null).ToList();

                foreach (var Stockdata in _IRD.OrderBy(x => x.MARGIN_DEP_TYPE).ThenBy(x => x.ITEM_ID).ThenBy(x => x.BOOK_NO).ThenBy(x => x.PUT_DATE).ThenBy(x => x.CHARGE_DEPT).ThenBy(x => x.CHARGE_SECT))
                {
                    var _CHARGE_DEPT = getEmpName(depts, Stockdata.CHARGE_DEPT);
                    var _CHARGE_SECT = !_CHARGE_DEPT.IsNullOrWhiteSpace() ? getEmpName(depts, Stockdata.CHARGE_SECT)?.Replace(_CHARGE_DEPT, "")?.Trim() : null;
                    ReportData = new DepositReportMargingData()
                    {
                        MARGIN_DEP_TYPE = getMDTtype(types, Stockdata.MARGIN_DEP_TYPE),
                        ITEM_ID         = Stockdata.ITEM_ID,
                        BOOK_NO         = Stockdata.BOOK_NO,
                        PUT_DATE        = Stockdata.PUT_DATE.dateTimeToStr(),
                        CHARGE_DEPT     = _CHARGE_DEPT,
                        CHARGE_SECT     = !_CHARGE_SECT.IsNullOrWhiteSpace() ? _CHARGE_SECT : null,
                        TRAD_PARTNERS   = Stockdata.TRAD_PARTNERS,
                        AMOUNT          = Stockdata.AMOUNT,
                        WORKPLACE_CODE  = Stockdata.WORKPLACE_CODE,
                        DESCRIPTION     = Stockdata.DESCRIPTION,
                        MEMO            = Stockdata.MEMO,
                        CHARGE_DEPT_ID  = Stockdata.CHARGE_DEPT,
                        CHARGE_SECT_ID  = Stockdata.CHARGE_SECT
                    };
                    ReportDataList.Add(ReportData);
                }
            }
            resultsTable.Tables.Add(ReportDataList.ToDataTable());
            return(resultsTable);
        }
Exemple #29
0
        public override DataSet GetData(List <reportParm> parms)
        {
            //報表資料
            List <DepositReportSealData> ReportDataList = new List <DepositReportSealData>();
            var    resultsTable  = new DataSet();
            var    ReportData    = new DepositReportSealData();
            string vdept         = parms.Where(x => x.key == "vdept").FirstOrDefault()?.value ?? string.Empty;
            string vsect         = parms.Where(x => x.key == "vsect").FirstOrDefault()?.value ?? string.Empty;
            string JobProject    = parms.Where(x => x.key == "vJobProject").FirstOrDefault()?.value ?? string.Empty;
            string APLY_DT_From  = parms.Where(x => x.key == "APLY_DT_From").FirstOrDefault()?.value ?? string.Empty; //庫存日期
            string APLY_ODT_From = parms.Where(x => x.key == "APLY_ODT_From").FirstOrDefault()?.value ?? string.Empty;
            string APLY_ODT_To   = parms.Where(x => x.key == "APLY_ODT_To").FirstOrDefault()?.value ?? string.Empty;

            using (TreasuryDBEntities db = new TreasuryDBEntities())
            {
                var _APLY_DT       = TypeTransfer.stringToDateTime(APLY_DT_From).DateToLatestTime();
                var _APLY_DT_Date  = _APLY_DT.Date;
                var dtn            = DateTime.Now.Date;
                var _APLY_ODT_From = TypeTransfer.stringToDateTimeN(APLY_ODT_From);
                var _APLY_ODT_To   = TypeTransfer.stringToDateTimeN(APLY_ODT_To).DateToLatestTime();

                int TOTAL = 0;
                INVENTORY_STATUSs.AddRange(new List <string>()
                {
                    ((int)AccessInventoryType._5).ToString(), //預約取出,計庫存
                    ((int)AccessInventoryType._6).ToString(), //已被取出,計庫存
                    ((int)AccessInventoryType._9).ToString()
                });                                           //預約存入,計庫存
                //預約取出 , 用印  , 存入用印
                var _IS = db.ITEM_SEAL.AsNoTracking()         //判斷是否在庫
                          .Where(x => INVENTORY_STATUSs.Contains(x.INVENTORY_STATUS), _APLY_DT_Date == dtn)
                          .Where(x =>
                                 (INVENTORY_STATUSs.Contains(x.INVENTORY_STATUS) && x.PUT_DATE_ACCESS <= _APLY_DT) // 在庫 且 存入日期 <= 庫存日期  //(18/12/27 update x.PUT_DATE => x.PUT_DATE_ACCESS)
                                 ||
                                 (x.INVENTORY_STATUS == INVENTORY_STATUSg &&
                                  x.PUT_DATE_ACCESS <= _APLY_DT && //(18 / 12 / 27 update x.PUT_DATE => x.PUT_DATE_ACCESS)
                                  _APLY_DT < x.GET_DATE),          //存入日期 <= 庫存日期 且 庫存日期 < 取出日期
                                 _APLY_DT_Date != dtn)
                          .Where(x => x.CHARGE_DEPT == vdept, vdept != "All")
                          .Where(x => x.CHARGE_SECT == vsect, vsect != "All")
                          .Where(x => x.PUT_DATE_ACCESS >= _APLY_ODT_From, _APLY_ODT_From != null) //(18 / 12 / 27 update x.PUT_DATE => x.PUT_DATE_ACCESS)
                          .Where(x => x.PUT_DATE_ACCESS <= _APLY_ODT_To, _APLY_ODT_To != null)     //(18 / 12 / 27 update x.PUT_DATE => x.PUT_DATE_ACCESS)
                          .Where(x => x.TREA_ITEM_NAME == JobProject).ToList();

                var depts = new List <VW_OA_DEPT>();
                //var types = new List<SYS_CODE>();
                using (DB_INTRAEntities dbINTRA = new DB_INTRAEntities())
                {
                    depts = dbINTRA.VW_OA_DEPT.AsNoTracking().Where(x => x.DPT_CD != null).ToList();
                }

                //types = db.SYS_CODE.AsNoTracking().Where(x => x.CODE !=null).ToList();

                foreach (var Sealdata in _IS.OrderBy(x => x.PUT_DATE_ACCESS).ThenByDescending(x => x.LAST_UPDATE_DT) /*.ThenBy(x=>x.CHARGE_DEPT).ThenBy(x=>x.CHARGE_SECT)*/)
                {
                    TOTAL++;
                    var _CHARGE_DEPT = getEmpName(depts, Sealdata.CHARGE_DEPT);
                    var _CHARGE_SECT = getEmpName(depts, Sealdata.CHARGE_SECT)?.Replace(_CHARGE_DEPT, "")?.Trim();
                    ReportData = new DepositReportSealData()
                    {
                        ROW            = TOTAL,
                        PUT_DATE       = Sealdata.PUT_DATE_ACCESS.dateTimeToStr(),
                        CHARGE_DEPT    = _CHARGE_DEPT,
                        CHARGE_SECT    = _CHARGE_SECT,
                        SEAL_DESC      = Sealdata.SEAL_DESC,
                        MEMO           = Sealdata.MEMO,
                        CHARGE_DEPT_ID = Sealdata.CHARGE_DEPT,
                        CHARGE_SECT_ID = Sealdata.CHARGE_SECT
                    };
                    ReportDataList.Add(ReportData);
                }
            }
            resultsTable.Tables.Add(ReportDataList.ToDataTable());
            return(resultsTable);
        }
Exemple #30
0
        ///// <summary>
        ///// 開啟使用者修改明細畫面
        ///// </summary>
        ///// <param name="aplyNo"></param>
        ///// <returns></returns>
        //public ActionResult detailUser(string cReviewSeq)
        //{
        //    try
        //    {
        //        using (DbAccountEntities db = new DbAccountEntities())
        //        {
        //            CodeUserHisDao codeUserHisDao = new CodeUserHisDao();
        //            AuthReviewUserModel userData = codeUserHisDao.qryByNowHis(cReviewSeq, db);

        //            string[] cDateTime = userData.cCrtDateTime.Split(' ');
        //            userData.cCrtDateTime = DateUtil.formatDateTimeDbToSc(cDateTime[0] + " " + cDateTime[1], "DT");

        //            ViewBag.bHaveData = "Y";
        //            ViewBag.cReviewSeq = cReviewSeq;
        //            return View(userData);
        //        }
        //    }
        //    catch (Exception e)
        //    {
        //        ViewBag.bHaveData = "N";
        //        return View();
        //    }
        //}


        /// <summary>
        /// 開啟使用者修改明細畫面
        /// </summary>
        /// <param name="aplyNo"></param>
        /// <returns></returns>
        public ActionResult detailUser(string aplyNo, string userId)
        {
            try
            {
                string      execAction  = "";
                AuthApprDao AuthApprDao = new AuthApprDao();

                AUTH_APPR authAppr = new AUTH_APPR();


                if (!"".Equals(StringUtil.toString(aplyNo)))
                {
                    authAppr      = AuthApprDao.qryByKey(aplyNo);
                    ViewBag.bView = "N";
                }

                else
                {
                    authAppr = AuthApprDao.qryByFreeRole(userId);
                    if (authAppr != null)
                    {
                        aplyNo = StringUtil.toString(authAppr.APLY_NO);
                    }

                    ViewBag.bView = "Y";
                }



                AuthReviewUserModel userData = new AuthReviewUserModel();
                userData.aplyNo    = aplyNo;
                userData.userId    = authAppr.APPR_MAPPING_KEY;
                userData.createUid = authAppr.CREATE_UID;

                OaEmpDao oaEmpDao = new OaEmpDao();
                using (DB_INTRAEntities dbIntra = new DB_INTRAEntities())
                {
                    try
                    {
                        userData.createUid = userData.createUid == null ? "" : StringUtil.toString(oaEmpDao.qryByUsrId(userData.createUid, dbIntra).EMP_NAME);
                        userData.userName  = userData.userId == null ? "" : StringUtil.toString(oaEmpDao.qryByUsrId(userData.userId, dbIntra).EMP_NAME);
                    }
                    catch (Exception e)
                    {
                    }
                }
                userData.createDt = authAppr.CREATE_DT.ToString();


                SysCodeDao sysCodeDao = new SysCodeDao();
                Dictionary <string, string> dicExecAction = sysCodeDao.qryByTypeDic("EXEC_ACTION");
                Dictionary <string, string> dicYNFlag     = sysCodeDao.qryByTypeDic("YN_FLAG");

                CodeUserHisDao codeUserHisDao = new CodeUserHisDao();
                CODE_USER_HIS  codeUserHis    = codeUserHisDao.qryByAplyNo(aplyNo);
                if (codeUserHis != null)
                {
                    execAction = StringUtil.toString(codeUserHis.EXEC_ACTION);
                }

                if ("".Equals(execAction))
                {
                    CodeUserDao codeUserDao = new CodeUserDao();
                    CODE_USER   codeUser    = new CODE_USER();
                    codeUser = codeUserDao.qryUserByKey(authAppr.APPR_MAPPING_KEY);

                    userData.isMailB     = StringUtil.toString(codeUser.IS_MAIL);
                    userData.isDisabledB = StringUtil.toString(codeUser.IS_DISABLED);
                    userData.memoB       = StringUtil.toString(codeUser.MEMO);
                }
                else
                {
                    if ("A".Equals(execAction))
                    {
                        userData.isMail     = StringUtil.toString(codeUserHis.IS_MAIL);
                        userData.isDisabled = StringUtil.toString(codeUserHis.IS_DISABLED);
                        userData.memo       = StringUtil.toString(codeUserHis.MEMO);
                    }
                    else
                    {
                        userData.isMail     = StringUtil.toString(codeUserHis.IS_MAIL);
                        userData.isDisabled = StringUtil.toString(codeUserHis.IS_MAIL);
                        userData.memo       = StringUtil.toString(codeUserHis.MEMO);

                        userData.isMailB     = StringUtil.toString(codeUserHis.IS_MAIL_B);
                        userData.isDisabledB = StringUtil.toString(codeUserHis.IS_DISABLED_B);
                        userData.memoB       = StringUtil.toString(codeUserHis.MEMO_B);
                    }
                }


                userData.execAction      = execAction;
                userData.execActionDesc  = dicExecAction.ContainsKey(userData.execAction) ? dicExecAction[userData.execAction] : userData.execAction;
                userData.isDisabledDesc  = dicYNFlag.ContainsKey(userData.isDisabled) ? dicYNFlag[userData.isDisabled] : userData.isDisabled;
                userData.isDisabledDescB = dicYNFlag.ContainsKey(userData.isDisabledB) ? dicYNFlag[userData.isDisabledB] : userData.isDisabledB;
                userData.isMailDesc      = dicYNFlag.ContainsKey(userData.isMail) ? dicYNFlag[userData.isMail] : userData.isMail;
                userData.isMailDescB     = dicYNFlag.ContainsKey(userData.isMailB) ? dicYNFlag[userData.isMailB] : userData.isMailB;



                ViewBag.bHaveData = "Y";
                ViewBag.aplyNo    = aplyNo;
                return(View(userData));
            }
            catch (Exception e)
            {
                ViewBag.bHaveData = "N";
                return(View());
            }
        }