Example #1
0
        /**
         * 異動角色檔
         **/
        public void updateRole(RoleMgrModel roleMgrModel, CODE_ROLE codeRoleO, SqlConnection conn, SqlTransaction transaction)
        {
            try
            {
                CodeRoleDao codeRoleDao = new CodeRoleDao();

                //新增LOG
                Log log = new Log();
                log.CFUNCTION = "角色管理-修改";
                log.CACTION   = "U";
                log.CCONTENT  = codeRoleDao.roleLogContent(codeRoleO);
                LogDao.Insert(log, Session["UserID"].ToString());

                //異動角色檔
                codeRoleO.DATA_STATUS     = "2";
                codeRoleO.LAST_UPDATE_UID = Session["UserID"].ToString();
                codeRoleO.LAST_UPDATE_DT  = DateTime.Now;
                codeRoleO.FREEZE_UID      = Session["UserID"].ToString();
                codeRoleO.FREEZE_DT       = DateTime.Now;

                int cnt = codeRoleDao.Update(codeRoleO, conn, transaction);
            }
            catch (Exception e)
            {
                logger.Error("[updateRole]其它錯誤:" + e.ToString());
                throw e;
                //新增角色檔失敗
                // return Json(new { success = false, errors = e.ToString() }, JsonRequestBehavior.AllowGet);
            }
        }
Example #2
0
        /**
         * 查詢角色檔(以"角色編號"為鍵項)
         **/
        public CODE_ROLE qryRoleByKey(String roleId)
        {
            using (new TransactionScope(
                       TransactionScopeOption.Required,
                       new TransactionOptions
            {
                IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted
            }))
            {
                using (dbTreasuryEntities db = new dbTreasuryEntities())
                {
                    CODE_ROLE codeRole = db.CODE_ROLE.Where(x => x.ROLE_ID == roleId).FirstOrDefault <CODE_ROLE>();

                    return(codeRole);
                }
            }
        }
Example #3
0
        public bool dupRoleName(string roleId, string authType, string roleName)
        {
            bool bDup = false;

            using (new TransactionScope(
                       TransactionScopeOption.Required,
                       new TransactionOptions
            {
                IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted
            }))
            {
                using (dbTreasuryEntities db = new dbTreasuryEntities())
                {
                    CODE_ROLE role = db.CODE_ROLE
                                     .Where(x => x.ROLE_ID != roleId && x.ROLE_AUTH_TYPE == authType && x.ROLE_NAME == roleName.Trim())
                                     .FirstOrDefault();

                    if (role != null)
                    {
                        if (!"".Equals(StringUtil.toString(role.ROLE_ID)))
                        {
                            bDup = true;
                        }
                    }


                    if (!bDup)
                    {
                        string roleH = (from roleHis in db.CODE_ROLE_HIS
                                        join aply in db.AUTH_APPR.Where(x => x.AUTH_APLY_TYPE == "R" & x.APPR_STATUS == "1") on roleHis.ROLE_ID equals aply.APPR_MAPPING_KEY
                                        where roleHis.ROLE_ID != roleId
                                        & roleHis.ROLE_AUTH_TYPE == authType
                                        & roleHis.ROLE_NAME == roleName.Trim()
                                        select roleHis.ROLE_ID).FirstOrDefault();

                        if (!"".Equals(StringUtil.toString(roleH)))
                        {
                            bDup = true;
                        }
                    }
                }
            }

            return(bDup);
        }
Example #4
0
        public ActionResult roleHis(String cRoleID)
        {
            /*---畫面下拉選單初始值---*/
            SysCodeDao sysCodeDao = new SysCodeDao();


            //覆核狀態
            var apprStatusList = sysCodeDao.loadSelectList("APPR_STATUS");

            apprStatusList = new SelectList(apprStatusList
                                            .Where(x => x.Value != "4")
                                            .ToList(),
                                            "Value",
                                            "Text");

            ViewBag.apprStatusList = apprStatusList;

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

            ViewBag.roleAuthTypeList = roleAuthTypeList;


            RoleMgrHisModel roleMgrHisModel = new RoleMgrHisModel();


            if (!"".Equals(StringUtil.toString(cRoleID)))
            {
                CodeRoleDao codeRoleDao = new CodeRoleDao();
                CODE_ROLE   codeRole    = new CODE_ROLE();
                codeRole = codeRoleDao.qryRoleByKey(cRoleID);


                roleMgrHisModel.cRoleID      = StringUtil.toString(codeRole.ROLE_ID);
                roleMgrHisModel.cRoleName    = StringUtil.toString(codeRole.ROLE_NAME);
                roleMgrHisModel.roleAuthType = StringUtil.toString(codeRole.ROLE_AUTH_TYPE);

                ViewBag.cRoleID = cRoleID;
                return(View(roleMgrHisModel));
            }
            else
            {
                return(View());
            }
        }
Example #5
0
        /**
         * 將角色檔的各欄位組成一字串,for Log
         **/
        public String roleLogContent(CODE_ROLE codeRole)
        {
            String content = "";

            content += StringUtil.toString(codeRole.ROLE_ID) + "|";
            content += StringUtil.toString(codeRole.ROLE_NAME) + "|";
            content += StringUtil.toString(codeRole.ROLE_AUTH_TYPE) + "|";
            content += StringUtil.toString(codeRole.IS_DISABLED) + "|";
            content += StringUtil.toString(codeRole.MEMO) + "|";
            content += StringUtil.toString(codeRole.DATA_STATUS) + "|";
            content += StringUtil.toString(codeRole.CREATE_UID) + "|";
            content += codeRole.CREATE_DT == null ? "|" : codeRole.CREATE_DT + "|";
            content += StringUtil.toString(codeRole.LAST_UPDATE_UID) + "|";
            content += codeRole.LAST_UPDATE_DT == null ? "|" : codeRole.LAST_UPDATE_DT + "|";
            content += StringUtil.toString(codeRole.APPR_UID) + "|";
            content += codeRole.APPR_DT == null ? "|" : codeRole.APPR_DT + "|";
            content += StringUtil.toString(codeRole.FREEZE_UID) + "|";
            content += codeRole.FREEZE_DT == null ? "|" : codeRole.FREEZE_DT + "|";

            return(content);
        }
Example #6
0
        /// <summary>
        /// 新增稽核軌跡
        /// </summary>
        /// <param name="codeUserDao"></param>
        /// <param name="codeUser"></param>
        /// <param name="conn"></param>
        /// <param name="transaction"></param>
        public void procTrackLog(string type, CodeRoleDao codeUserDao, CODE_ROLE codeRole, SqlConnection conn, SqlTransaction transaction)
        {
            PIA_LOG_MAIN piaLog = new PIA_LOG_MAIN();

            piaLog.TRACKING_TYPE     = "C";
            piaLog.ACCESS_ACCOUNT    = Session["UserID"].ToString();
            piaLog.ACCOUNT_NAME      = Session["UserName"].ToString();
            piaLog.PROGFUN_NAME      = "RoleReview";
            piaLog.ACCESSOBJ_NAME    = "CodeRole";
            piaLog.EXECUTION_TYPE    = type;
            piaLog.EXECUTION_CONTENT = codeUserDao.RoleLogContent(codeRole);
            piaLog.AFFECT_ROWS       = 1;
            piaLog.PIA_OWNER1        = codeRole.CREATE_UID;
            piaLog.PIA_OWNER2        = "";
            piaLog.PIA_TYPE          = "0000000000";


            PiaLogMainDao piaLogMainDao = new PiaLogMainDao();

            piaLogMainDao.Insert(piaLog, conn, transaction);
        }
Example #7
0
        /**
         * 異動角色:
         *  1.查詢角色檔資料
         *  2.異動流水號檔
         *  3.新增資料至角色檔
         **/
        public int Update(CODE_ROLE cODEROLE, SqlConnection conn, SqlTransaction transaction)
        {
            // string strConn = DbUtil.GetDBAccountConnStr();

            string sql = @"update CODE_ROLE
        set ROLE_NAME = @ROLE_NAME
           ,IS_DISABLED = @IS_DISABLED
           ,MEMO = @MEMO
           ,DATA_STATUS = @DATA_STATUS
           ,CREATE_UID = @CREATE_UID
           ,CREATE_DT = @CREATE_DT
           ,LAST_UPDATE_UID = @LAST_UPDATE_UID
           ,LAST_UPDATE_DT = @LAST_UPDATE_DT
           ,APPR_UID = @APPR_UID
           ,APPR_DT = @APPR_DT
           ,FREEZE_UID = @FREEZE_UID
           ,FREEZE_DT = @FREEZE_DT
        where 1=1
        and ROLE_ID = @ROLE_ID
        ";


            SqlCommand command = conn.CreateCommand();


            command.Connection  = conn;
            command.Transaction = transaction;

            try
            {
                command.CommandText = sql;
                command.Parameters.AddWithValue("@ROLE_ID", StringUtil.toString(cODEROLE.ROLE_ID));
                command.Parameters.AddWithValue("@ROLE_NAME", StringUtil.toString(cODEROLE.ROLE_NAME));
                command.Parameters.AddWithValue("@IS_DISABLED", StringUtil.toString(cODEROLE.IS_DISABLED));
                command.Parameters.AddWithValue("@MEMO", StringUtil.toString(cODEROLE.MEMO));
                command.Parameters.AddWithValue("@DATA_STATUS", StringUtil.toString(cODEROLE.DATA_STATUS));
                command.Parameters.AddWithValue("@CREATE_UID", StringUtil.toString(cODEROLE.CREATE_UID));

                command.Parameters.Add("@CREATE_DT", System.Data.SqlDbType.DateTime).Value = (System.Object)cODEROLE.CREATE_DT ?? System.DBNull.Value;

                command.Parameters.AddWithValue("@LAST_UPDATE_UID", StringUtil.toString(cODEROLE.LAST_UPDATE_UID));

                command.Parameters.Add("@LAST_UPDATE_DT", System.Data.SqlDbType.DateTime).Value = (System.Object)cODEROLE.LAST_UPDATE_DT ?? System.DBNull.Value;

                command.Parameters.AddWithValue("@APPR_UID", StringUtil.toString(cODEROLE.APPR_UID));

                command.Parameters.Add("@APPR_DT", System.Data.SqlDbType.DateTime).Value = (System.Object)cODEROLE.APPR_DT ?? System.DBNull.Value;

                command.Parameters.AddWithValue("@FREEZE_UID", StringUtil.toString(cODEROLE.FREEZE_UID));

                command.Parameters.Add("@FREEZE_DT", System.Data.SqlDbType.DateTime).Value = (System.Object)cODEROLE.FREEZE_DT ?? System.DBNull.Value;



                int cnt = command.ExecuteNonQuery();


                return(cnt);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Example #8
0
        /**
         * 新增角色:
         **/
        public int Create(CODE_ROLE cODEROLE, SqlConnection conn, SqlTransaction transaction)
        {
            // string strConn = DbUtil.GetDBAccountConnStr();

            string sql = @"

INSERT INTO [dbo].[CODE_ROLE]
           ([ROLE_ID]
           ,[ROLE_NAME]
           ,[ROLE_AUTH_TYPE]
           ,[IS_DISABLED]
           ,[MEMO]
           ,[DATA_STATUS]
           ,[CREATE_UID]
           ,[CREATE_DT]
           ,[LAST_UPDATE_UID]
           ,[LAST_UPDATE_DT]
           ,[APPR_UID]
           ,[APPR_DT]
)
     VALUES
(
 @ROLE_ID
,@ROLE_NAME
,@ROLE_AUTH_TYPE
,@IS_DISABLED
,@MEMO
,@DATA_STATUS
,@CREATE_UID
,@CREATE_DT
,@LAST_UPDATE_UID
,@LAST_UPDATE_DT
,@APPR_UID
,@APPR_DT
)";


            SqlCommand command = conn.CreateCommand();


            command.Connection  = conn;
            command.Transaction = transaction;

            try
            {
                command.CommandText = sql;
                command.Parameters.AddWithValue("@ROLE_ID", StringUtil.toString(cODEROLE.ROLE_ID));
                command.Parameters.AddWithValue("@ROLE_NAME", StringUtil.toString(cODEROLE.ROLE_NAME));
                command.Parameters.AddWithValue("@ROLE_AUTH_TYPE", StringUtil.toString(cODEROLE.ROLE_AUTH_TYPE));
                command.Parameters.AddWithValue("@IS_DISABLED", StringUtil.toString(cODEROLE.IS_DISABLED));
                command.Parameters.AddWithValue("@MEMO", StringUtil.toString(cODEROLE.MEMO));
                command.Parameters.AddWithValue("@DATA_STATUS", StringUtil.toString(cODEROLE.DATA_STATUS));
                command.Parameters.AddWithValue("@CREATE_UID", StringUtil.toString(cODEROLE.CREATE_UID));

                command.Parameters.Add("@CREATE_DT", System.Data.SqlDbType.DateTime).Value = (System.Object)cODEROLE.CREATE_DT ?? System.DBNull.Value;

                command.Parameters.AddWithValue("@LAST_UPDATE_UID", StringUtil.toString(cODEROLE.LAST_UPDATE_UID));

                command.Parameters.Add("@LAST_UPDATE_DT", System.Data.SqlDbType.DateTime).Value = (System.Object)cODEROLE.LAST_UPDATE_DT ?? System.DBNull.Value;

                command.Parameters.AddWithValue("@APPR_UID", StringUtil.toString(cODEROLE.APPR_UID));

                command.Parameters.Add("@APPR_DT", System.Data.SqlDbType.DateTime).Value = (System.Object)cODEROLE.APPR_DT ?? System.DBNull.Value;


                int cnt = command.ExecuteNonQuery();


                return(cnt);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Example #9
0
        public ActionResult Index(String cRoleID)
        {
            UserAuthUtil authUtil = new UserAuthUtil();
            String       opScope  = "";
            String       roleId   = "";
            String       funcType = "";

            String[] roleInfo = authUtil.chkUserFuncAuth(Session["UserID"].ToString(), "~/RoleMgr/");
            if (roleInfo != null && roleInfo.Length == 1)
            {
                opScope = "1";
                //roleId = roleInfo[1];
                //funcType = roleInfo[2];
            }


            ViewBag.opScope = opScope;

            /*---畫面下拉選單初始值---*/
            SysCodeDao sysCodeDao = new SysCodeDao();


            //啟用狀態
            var isDisabledList = sysCodeDao.loadSelectList("IS_DISABLED");

            ViewBag.isDisabledList = isDisabledList;

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

            ViewBag.roleAuthTypeList = roleAuthTypeList;

            //角色名稱
            CodeRoleDao codeRoleDao  = new CodeRoleDao();
            var         CodeRoleList = codeRoleDao.loadSelectList();

            ViewBag.CodeRoleList = CodeRoleList;

            //異動人員
            CodeUserDao codeUserDao  = new CodeUserDao();
            var         CodeUserList = codeUserDao.loadSelectList();

            ViewBag.CodeUserList = CodeUserList;

            RoleMgrModel roleMgrModel = new RoleMgrModel();


            if (!"".Equals(StringUtil.toString(cRoleID)))
            {
                CODE_ROLE codeRole = new CODE_ROLE();
                codeRole = codeRoleDao.qryRoleByKey(cRoleID);


                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.cUpdUserID   = StringUtil.toString(codeRole.LAST_UPDATE_UID);

                ViewBag.cRoleID = cRoleID;
                return(View(roleMgrModel));
            }
            else
            {
                return(View());
            }
        }
Example #10
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"));
                }
            }
        }
Example #11
0
        public ActionResult updateRole(RoleMgrModel roleMgrModel, String authFunc
                                       , List <CodeRoleEquipModel> equipData, List <CodeRoleItemModel> itemData, List <CodeRoleItemModel> formAplyData)
        {
            string roleId       = StringUtil.toString(roleMgrModel.cRoleID);
            bool   bChgRole     = false;
            bool   bChgFunc     = false;
            bool   bChgEquip    = false;
            bool   bChgItem     = false;
            bool   bChgFormAply = false;
            bool   bNewRole     = false;


            CodeRoleDao codeRoleDao = new CodeRoleDao();
            CODE_ROLE   codeRoleO   = new CODE_ROLE();

            bool bDupRoleName = codeRoleDao.dupRoleName(StringUtil.toString(roleMgrModel.cRoleID),
                                                        StringUtil.toString(roleMgrModel.roleAuthType), StringUtil.toString(roleMgrModel.cRoleName));

            if (bDupRoleName)
            {
                return(Json(new { success = false, errors = "相同角色群組下,不能建置相同的角色名稱!!" }, JsonRequestBehavior.AllowGet));
            }


            //比對是否有異動"角色資訊"
            if ("".Equals(roleId))
            {
                bNewRole = true;
                bChgRole = true;
                SysSeqDao sysSeqDao = new SysSeqDao();

                var cId = sysSeqDao.qrySeqNo("F1", "").ToString();
                roleId = "F1" + cId.ToString().PadLeft(8, '0');
            }
            else
            {
                codeRoleO = codeRoleDao.qryRoleByKey(roleId);
                if (!(
                        StringUtil.toString(roleMgrModel.cRoleName).Equals(StringUtil.toString(codeRoleO.ROLE_NAME)) &&
                        StringUtil.toString(roleMgrModel.isDisabled).Equals(StringUtil.toString(codeRoleO.IS_DISABLED)) &&
                        StringUtil.toString(roleMgrModel.vMemo).Equals(StringUtil.toString(codeRoleO.MEMO))
                        ))
                {
                    bChgRole = true;
                }
            }



            //比對是否有異動"授權功能"
            List <FuncRoleModel> funcList = new List <FuncRoleModel>();

            string[] funcData = authFunc.Split('|');

            if ("F".Equals(roleMgrModel.roleAuthType))
            {
                CodeRoleFunctionDao  CodeRoleFunctionDao = new CodeRoleFunctionDao();
                List <FuncRoleModel> roleFuncListO       = CodeRoleFunctionDao.qryForRoleMgr(roleId);
                foreach (string item in funcData)
                {
                    if (!"".Equals(StringUtil.toString(item)))
                    {
                        FuncRoleModel funcRoleModel = new FuncRoleModel();
                        funcRoleModel.cRoleId     = roleId;
                        funcRoleModel.cFunctionID = item;
                        if (roleFuncListO.Exists(x => x.cFunctionID == item))
                        {
                            funcRoleModel.execAction = "";
                        }

                        else
                        {
                            bChgFunc = true;
                            funcRoleModel.execAction = "A";
                        }
                        funcList.Add(funcRoleModel);
                    }
                }

                foreach (FuncRoleModel oItem in roleFuncListO)
                {
                    if (!funcList.Exists(x => x.cFunctionID == oItem.cFunctionID))
                    {
                        bChgFunc = true;
                        FuncRoleModel funcRoleModel = new FuncRoleModel();
                        funcRoleModel.cRoleId     = roleId;
                        funcRoleModel.cFunctionID = oItem.cFunctionID;
                        funcRoleModel.execAction  = "D";
                        funcList.Add(funcRoleModel);
                    }
                }
            }



            //比對是否有異動"金庫設備權限"
            List <CodeRoleEquipModel> equipList           = new List <CodeRoleEquipModel>();
            CodeRoleTreaItemDao       codeRoleTreaItemDao = new CodeRoleTreaItemDao();

            if ("E".Equals(roleMgrModel.roleAuthType))
            {
                List <CodeRoleEquipModel> roleEquipListO = codeRoleTreaItemDao.qryForRoleMgr(roleId);

                if (equipData != null)
                {
                    foreach (CodeRoleEquipModel item in equipData)
                    {
                        CodeRoleEquipModel codeRoleEquipModel = new CodeRoleEquipModel();
                        codeRoleEquipModel.roleId      = roleId;
                        codeRoleEquipModel.treaEquipId = StringUtil.toString(item.treaEquipId);
                        //codeRoleEquipModel.controlMode = StringUtil.toString(item.controlMode);
                        codeRoleEquipModel.custodyMode   = StringUtil.toString(item.custodyMode);
                        codeRoleEquipModel.custodyOrder  = StringUtil.toString(item.custodyOrder);
                        codeRoleEquipModel.custodyModeB  = "";
                        codeRoleEquipModel.custodyOrderB = "";
                        codeRoleEquipModel.execAction    = "";
                        if (roleEquipListO.Exists(x => x.treaEquipId == item.treaEquipId))
                        {
                            CodeRoleEquipModel itemO = roleEquipListO.Find(x => x.treaEquipId == item.treaEquipId);

                            if (!(
                                    //item.controlMode.Equals(itemO.controlMode) &&
                                    item.custodyMode.Equals(itemO.custodyMode) && item.custodyOrder.Equals(itemO.custodyOrder)))
                            {
                                codeRoleEquipModel.execAction    = "U";
                                codeRoleEquipModel.custodyModeB  = itemO.custodyMode;
                                codeRoleEquipModel.custodyOrderB = itemO.custodyOrder;
                                bChgEquip = true;
                            }
                        }
                        else
                        {
                            codeRoleEquipModel.execAction = "A";
                            bChgEquip = true;
                        }
                        equipList.Add(codeRoleEquipModel);
                    }
                }


                foreach (CodeRoleEquipModel oItem in roleEquipListO)
                {
                    if (equipList != null)
                    {
                        if (!equipList.Exists(x => x.treaEquipId == oItem.treaEquipId))
                        {
                            bChgEquip = true;
                            CodeRoleEquipModel codeRoleEquipModel = new CodeRoleEquipModel();
                            codeRoleEquipModel.roleId       = roleId;
                            codeRoleEquipModel.treaEquipId  = StringUtil.toString(oItem.treaEquipId);
                            codeRoleEquipModel.controlMode  = StringUtil.toString(oItem.controlMode);
                            codeRoleEquipModel.custodyMode  = StringUtil.toString(oItem.custodyMode);
                            codeRoleEquipModel.custodyOrder = StringUtil.toString(oItem.custodyOrder);
                            codeRoleEquipModel.execAction   = "D";
                            equipList.Add(codeRoleEquipModel);
                        }
                    }
                    else
                    {
                        bChgEquip = true;
                        CodeRoleEquipModel codeRoleEquipModel = new CodeRoleEquipModel();
                        codeRoleEquipModel.roleId       = roleId;
                        codeRoleEquipModel.treaEquipId  = StringUtil.toString(oItem.treaEquipId);
                        codeRoleEquipModel.controlMode  = StringUtil.toString(oItem.controlMode);
                        codeRoleEquipModel.custodyMode  = StringUtil.toString(oItem.custodyMode);
                        codeRoleEquipModel.custodyOrder = StringUtil.toString(oItem.custodyOrder);
                        codeRoleEquipModel.execAction   = "D";
                        equipList.Add(codeRoleEquipModel);
                    }
                }
            }


            //比對是否有異動"存取項目權限"
            CodeRoleItemDao          codeRoleItemDao = new CodeRoleItemDao();
            List <CodeRoleItemModel> itemList        = new List <CodeRoleItemModel>();

            if ("I".Equals(roleMgrModel.roleAuthType))
            {
                List <CodeRoleItemModel> itemDataO = codeRoleItemDao.qryForRoleMgr(roleId, "1");

                if (itemData != null)
                {
                    foreach (CodeRoleItemModel item in itemData)
                    {
                        CodeRoleItemModel codeRoleItemModel = new CodeRoleItemModel();
                        codeRoleItemModel.roleId   = roleId;
                        codeRoleItemModel.itemId   = StringUtil.toString(item.itemId);
                        codeRoleItemModel.authType = "1";

                        if (itemDataO.Exists(x => x.itemId == item.itemId))
                        {
                            codeRoleItemModel.execAction = "";
                        }
                        else
                        {
                            bChgItem = true;
                            codeRoleItemModel.execAction = "A";
                        }
                        itemList.Add(codeRoleItemModel);
                    }
                }


                foreach (CodeRoleItemModel oItem in itemDataO)
                {
                    if (itemList != null)
                    {
                        if (!itemList.Exists(x => x.itemId == oItem.itemId))
                        {
                            bChgItem = true;
                            CodeRoleItemModel codeRoleItemModel = new CodeRoleItemModel();
                            codeRoleItemModel.roleId     = roleId;
                            codeRoleItemModel.itemId     = StringUtil.toString(oItem.itemId);
                            codeRoleItemModel.authType   = "1";
                            codeRoleItemModel.execAction = "D";
                            itemList.Add(codeRoleItemModel);
                        }
                    }
                    else
                    {
                        bChgItem = true;
                        CodeRoleItemModel codeRoleItemModel = new CodeRoleItemModel();
                        codeRoleItemModel.roleId     = roleId;
                        codeRoleItemModel.itemId     = StringUtil.toString(oItem.itemId);
                        codeRoleItemModel.authType   = "1";
                        codeRoleItemModel.execAction = "D";
                        itemList.Add(codeRoleItemModel);
                    }
                }
            }



            //比對是否有異動"表單申請權限"

            List <CodeRoleItemModel> formAplyList = new List <CodeRoleItemModel>();

            if ("A".Equals(roleMgrModel.roleAuthType))
            {
                List <CodeRoleItemModel> formAplyDataO = codeRoleItemDao.qryForRoleMgr(roleId, "2");
                if (formAplyData != null)
                {
                    foreach (CodeRoleItemModel item in formAplyData)
                    {
                        CodeRoleItemModel codeRoleItemModel = new CodeRoleItemModel();
                        codeRoleItemModel.roleId   = roleId;
                        codeRoleItemModel.itemId   = StringUtil.toString(item.itemId);
                        codeRoleItemModel.authType = "2";

                        if (formAplyDataO.Exists(x => x.itemId == item.itemId))
                        {
                            codeRoleItemModel.execAction = "";
                        }
                        else
                        {
                            bChgFormAply = true;
                            codeRoleItemModel.execAction = "A";
                        }
                        formAplyList.Add(codeRoleItemModel);
                    }
                }


                foreach (CodeRoleItemModel oItem in formAplyDataO)
                {
                    if (formAplyList != null)
                    {
                        if (!formAplyList.Exists(x => x.itemId == oItem.itemId))
                        {
                            bChgFormAply = true;
                            CodeRoleItemModel codeRoleItemModel = new CodeRoleItemModel();
                            codeRoleItemModel.roleId     = roleId;
                            codeRoleItemModel.itemId     = StringUtil.toString(oItem.itemId);
                            codeRoleItemModel.authType   = "2";
                            codeRoleItemModel.execAction = "D";
                            formAplyList.Add(codeRoleItemModel);
                        }
                    }
                    else
                    {
                        bChgFormAply = true;
                        CodeRoleItemModel codeRoleItemModel = new CodeRoleItemModel();
                        codeRoleItemModel.roleId     = roleId;
                        codeRoleItemModel.itemId     = StringUtil.toString(oItem.itemId);
                        codeRoleItemModel.authType   = "2";
                        codeRoleItemModel.execAction = "D";
                        formAplyList.Add(codeRoleItemModel);
                    }
                }
            }



            if (bChgRole == false && bChgFunc == false && bChgEquip == false && bChgItem == false && bChgFormAply == false)
            {
                return(Json(new { success = false, errors = "未異動畫面資料,將不進行修改覆核作業!!" }, JsonRequestBehavior.AllowGet));
            }



            /*------------------ DB處理   begin------------------*/
            string strConn = DbUtil.GetDBTreasuryConnStr();

            using (SqlConnection conn = new SqlConnection(strConn))
            {
                conn.Open();

                SqlTransaction transaction = conn.BeginTransaction("Transaction");
                try
                {
                    roleMgrModel.cRoleID = roleId;

                    AuthApprDao authApprDao = new AuthApprDao();
                    AUTH_APPR   authAppr    = new AUTH_APPR();
                    authAppr.AUTH_APLY_TYPE   = "R";
                    authAppr.APPR_STATUS      = "1";
                    authAppr.APPR_MAPPING_KEY = roleId;
                    authAppr.CREATE_UID       = Session["UserID"].ToString();


                    //新增"覆核資料檔"
                    string aplyNo = authApprDao.insert(authAppr, conn, transaction);


                    //異動"角色資料檔"覆核狀態
                    if (bNewRole == false)
                    {
                        updateRole(roleMgrModel, codeRoleO, conn, transaction);
                    }


                    //處理角色資料檔的異動
                    if (bChgRole)
                    {
                        //新增"角色資料異動檔"
                        CodeRoleHisDao codeRoleHisDao = new CodeRoleHisDao();
                        CODE_ROLE_HIS  codeRoleHis    = new CODE_ROLE_HIS();
                        codeRoleHis.APLY_NO        = aplyNo;
                        codeRoleHis.ROLE_ID        = StringUtil.toString(roleMgrModel.cRoleID);
                        codeRoleHis.ROLE_NAME      = StringUtil.toString(roleMgrModel.cRoleName);
                        codeRoleHis.ROLE_AUTH_TYPE = StringUtil.toString(roleMgrModel.roleAuthType);
                        codeRoleHis.IS_DISABLED    = StringUtil.toString(roleMgrModel.isDisabled);
                        codeRoleHis.MEMO           = StringUtil.toString(roleMgrModel.vMemo);

                        if (codeRoleO != null)
                        {
                            codeRoleHis.ROLE_NAME_B   = StringUtil.toString(codeRoleO.ROLE_NAME);
                            codeRoleHis.IS_DISABLED_B = StringUtil.toString(codeRoleO.IS_DISABLED);
                            codeRoleHis.MEMO_B        = StringUtil.toString(codeRoleO.MEMO);
                        }
                        else
                        {
                            codeRoleHis.ROLE_NAME_B   = "";
                            codeRoleHis.IS_DISABLED_B = "";
                            codeRoleHis.MEMO_B        = "";
                        }


                        if (bNewRole)
                        {
                            codeRoleHis.EXEC_ACTION = "A";
                        }
                        else
                        {
                            codeRoleHis.EXEC_ACTION = "U";
                        }

                        codeRoleHisDao.insert(codeRoleHis, conn, transaction);
                    }



                    //處理功能角色資料檔的異動
                    if (bChgFunc)
                    {
                        CodeRoleFuncHisDao codeRoleFuncHisDao = new CodeRoleFuncHisDao();
                        foreach (FuncRoleModel func in funcList)
                        {
                            codeRoleFuncHisDao.insert(aplyNo, "Treasury", func, conn, transaction);

                            //if (!"".Equals(func.execAction)) {
                            //    codeRoleFuncHisDao.insert(aplyNo, "Treasury", func, conn, transaction);
                            //}
                        }
                    }


                    //處理角色金庫設備資料檔的異動
                    if (bChgEquip)
                    {
                        CodeRoleTreaItemHisDao codeRoleTreaItemHisDao = new CodeRoleTreaItemHisDao();
                        foreach (CodeRoleEquipModel equip in equipList)
                        {
                            codeRoleTreaItemHisDao.insert(aplyNo, equip, conn, transaction);
                            //if (!"".Equals(equip.execAction))
                            //{
                            //    codeRoleTreaItemHisDao.insert(aplyNo, equip, conn, transaction);
                            //}
                        }
                    }


                    //處理角色存取項目資料檔的異動(存取項目)
                    if (bChgItem)
                    {
                        CodeRoleItemHisDao codeRoleItemHisDao = new CodeRoleItemHisDao();
                        foreach (CodeRoleItemModel item in itemList)
                        {
                            codeRoleItemHisDao.insert(aplyNo, item, conn, transaction);
                            //if (!"".Equals(item.execAction))
                            //{
                            //    codeRoleItemHisDao.insert(aplyNo, item, conn, transaction);
                            //}
                        }
                    }


                    //處理角色存取項目資料檔的異動(表單申請)
                    if (bChgFormAply)
                    {
                        CodeRoleItemHisDao codeRoleItemHisDao = new CodeRoleItemHisDao();
                        foreach (CodeRoleItemModel item in formAplyList)
                        {
                            codeRoleItemHisDao.insert(aplyNo, item, conn, transaction);
                            //if (!"".Equals(item.execAction))
                            //{
                            //    codeRoleItemHisDao.insert(aplyNo, item, conn, transaction);
                            //}
                        }
                    }


                    transaction.Commit();

                    /*------------------ DB處理   end------------------*/
                    return(Json(new { success = true, aplyNo = aplyNo }));
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    logger.Error("[updateRole]其它錯誤:" + e.ToString());

                    return(Json(new { success = false, errors = "其它錯誤,請洽系統管理員!!" }, JsonRequestBehavior.AllowGet));
                }
            }
        }
Example #12
0
        public JsonResult execReviewR(string aplyNo, string roleId, string apprStatus)
        {
            string strConn = DbUtil.GetDBTreasuryConnStr();

            using (SqlConnection conn = new SqlConnection(strConn))
            {
                conn.Open();
                SqlTransaction transaction = conn.BeginTransaction("Transaction");

                try
                {
                    AuthApprDao AuthApprDao = new AuthApprDao();
                    AUTH_APPR   authAppr    = AuthApprDao.qryByKey(aplyNo);

                    if (StringUtil.toString(authAppr.CREATE_UID).Equals(Session["UserID"].ToString()))
                    {
                        return(Json(new { success = false, errors = "覆核人員與申請人員相同,不可執行覆核作業!!" }, JsonRequestBehavior.AllowGet));
                    }



                    //異動角色資料檔
                    string         cExecType      = "";
                    CodeRoleHisDao codeRoleHisDao = new CodeRoleHisDao();
                    CodeRoleDao    codeRoleDao    = new CodeRoleDao();
                    CODE_ROLE      cODEROLEO      = new CODE_ROLE();

                    CODE_ROLE_HIS codeRoleHis = codeRoleHisDao.qryByAplyNo(aplyNo);
                    string        execAction  = "";
                    if (codeRoleHis != null)
                    {
                        execAction = StringUtil.toString(codeRoleHis.EXEC_ACTION);
                    }

                    if ("A".Equals(execAction))  //新增角色
                    {
                    }
                    else
                    {  //異動角色
                        cODEROLEO = codeRoleDao.qryRoleByKey(roleId);
                    }



                    if ("A".Equals(execAction))
                    {
                        if ("2".Equals(apprStatus))
                        {
                            cODEROLEO.ROLE_ID         = StringUtil.toString(codeRoleHis.ROLE_ID);
                            cODEROLEO.ROLE_NAME       = StringUtil.toString(codeRoleHis.ROLE_NAME);
                            cODEROLEO.ROLE_AUTH_TYPE  = StringUtil.toString(codeRoleHis.ROLE_AUTH_TYPE);
                            cODEROLEO.IS_DISABLED     = codeRoleHis.IS_DISABLED;
                            cODEROLEO.MEMO            = StringUtil.toString(codeRoleHis.MEMO);
                            cODEROLEO.DATA_STATUS     = "1";
                            cODEROLEO.CREATE_UID      = authAppr.CREATE_UID;
                            cODEROLEO.CREATE_DT       = authAppr.CREATE_DT;
                            cODEROLEO.LAST_UPDATE_UID = StringUtil.toString(authAppr.CREATE_UID);
                            cODEROLEO.LAST_UPDATE_DT  = authAppr.CREATE_DT;
                            cODEROLEO.APPR_UID        = Session["UserID"].ToString();
                            cODEROLEO.APPR_DT         = DateTime.Now;

                            int cnt = codeRoleDao.Create(cODEROLEO, conn, transaction);

                            //新增LOG
                            Log log = new Log();
                            log.CFUNCTION = "角色管理-新增";
                            log.CACTION   = "A";
                            log.CCONTENT  = codeRoleDao.roleLogContent(cODEROLEO);
                            LogDao.Insert(log, Session["UserID"].ToString());

                            //20190418 201904160117-00 Bianco 新增稽核軌跡
                            procTrackLog("A", codeRoleDao, cODEROLEO, conn, transaction);
                        }
                    }
                    else
                    {
                        //新增LOG
                        Log log = new Log();
                        log.CFUNCTION = "角色管理-修改";
                        log.CACTION   = "U";
                        log.CCONTENT  = codeRoleDao.roleLogContent(cODEROLEO);
                        LogDao.Insert(log, Session["UserID"].ToString());

                        cODEROLEO.DATA_STATUS     = "1";
                        cODEROLEO.LAST_UPDATE_UID = StringUtil.toString(authAppr.CREATE_UID);
                        cODEROLEO.LAST_UPDATE_DT  = authAppr.CREATE_DT;
                        cODEROLEO.APPR_UID        = Session["UserID"].ToString();
                        cODEROLEO.APPR_DT         = DateTime.Now;
                        cODEROLEO.FREEZE_DT       = null;
                        cODEROLEO.FREEZE_UID      = "";

                        if ("U".Equals(execAction) && "2".Equals(apprStatus))
                        {
                            cODEROLEO.ROLE_NAME   = StringUtil.toString(codeRoleHis.ROLE_NAME);
                            cODEROLEO.IS_DISABLED = codeRoleHis.IS_DISABLED;
                            cODEROLEO.MEMO        = StringUtil.toString(codeRoleHis.MEMO);
                        }


                        int cnt = codeRoleDao.Update(cODEROLEO, conn, transaction);

                        //20190418 201904160117-00 Bianco 修改稽核軌跡
                        procTrackLog("E", codeRoleDao, cODEROLEO, conn, transaction);
                    }


                    //覆核狀態=核可時
                    if ("2".Equals(apprStatus))
                    {
                        procRoleFuncHis(roleId, aplyNo, conn, transaction);  //異動角色功能

                        procRoleEquipHis(roleId, aplyNo, conn, transaction); //異動角色設備功能

                        procRoleItemHis(roleId, aplyNo, conn, transaction);  //異動存取項目、表單申請權限
                    }



                    //異動覆核資料檔
                    procAuthAppr(aplyNo, apprStatus, conn, transaction);

                    transaction.Commit();
                    return(Json(new { success = true }));
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    logger.Error("[execReviewR]其它錯誤:" + e.ToString());

                    return(Json(new { success = false, errors = "其它錯誤,請洽系統管理員!!" }, JsonRequestBehavior.AllowGet));
                }
            }
        }
Example #13
0
        /// <summary>
        /// 開啟角色修改明細畫面
        /// </summary>
        /// <param name="aplyNo"></param>
        /// <returns></returns>
        public ActionResult detailRole(string aplyNo, string roleId)
        {
            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(roleId);
                    if (authAppr != null)
                    {
                        aplyNo = StringUtil.toString(authAppr.APLY_NO);
                    }

                    ViewBag.bView = "Y";
                }



                AuthReviewRoleModel roleData = new AuthReviewRoleModel();
                roleData.aplyNo    = aplyNo;
                roleData.createUid = authAppr.CREATE_UID;

                OaEmpDao oaEmpDao = new OaEmpDao();
                using (DB_INTRAEntities dbIntra = new DB_INTRAEntities())
                {
                    try
                    {
                        roleData.createUid = roleData.createUid == null ? "" : StringUtil.toString(oaEmpDao.qryByUsrId(roleData.createUid, dbIntra).EMP_NAME);
                    }
                    catch (Exception e)
                    {
                    }
                }
                roleData.createDt    = authAppr.CREATE_DT.ToString();
                roleData.roleName    = "";
                roleData.isDisabled  = "";
                roleData.memo        = "";
                roleData.roleNameB   = "";
                roleData.isDisabledB = "";
                roleData.memoB       = "";


                CodeRoleHisDao CodeRoleHisDao = new CodeRoleHisDao();
                CODE_ROLE_HIS  codeRoleHis    = CodeRoleHisDao.qryByAplyNo(aplyNo);
                if (codeRoleHis != null)
                {
                    execAction = StringUtil.toString(codeRoleHis.EXEC_ACTION);
                }

                if ("".Equals(execAction))
                {
                    CodeRoleDao CodeRoleDao = new CodeRoleDao();
                    CODE_ROLE   codeRole    = new CODE_ROLE();
                    codeRole = CodeRoleDao.qryRoleByKey(authAppr.APPR_MAPPING_KEY);

                    roleData.roleId       = StringUtil.toString(codeRole.ROLE_ID);
                    roleData.roleAuthType = StringUtil.toString(codeRole.ROLE_AUTH_TYPE);
                    roleData.roleNameB    = StringUtil.toString(codeRole.ROLE_NAME);
                    roleData.isDisabledB  = StringUtil.toString(codeRole.IS_DISABLED);
                    roleData.memoB        = StringUtil.toString(codeRole.MEMO);
                }
                else
                {
                    roleData.roleId       = StringUtil.toString(codeRoleHis.ROLE_ID);
                    roleData.roleAuthType = StringUtil.toString(codeRoleHis.ROLE_AUTH_TYPE);

                    if ("A".Equals(execAction))
                    {
                        roleData.roleName   = StringUtil.toString(codeRoleHis.ROLE_NAME);
                        roleData.isDisabled = StringUtil.toString(codeRoleHis.IS_DISABLED);
                        roleData.memo       = StringUtil.toString(codeRoleHis.MEMO);
                    }
                    else
                    {
                        roleData.roleName   = StringUtil.toString(codeRoleHis.ROLE_NAME);
                        roleData.isDisabled = StringUtil.toString(codeRoleHis.IS_DISABLED);
                        roleData.memo       = StringUtil.toString(codeRoleHis.MEMO);

                        roleData.roleNameB   = StringUtil.toString(codeRoleHis.ROLE_NAME_B);
                        roleData.isDisabledB = StringUtil.toString(codeRoleHis.IS_DISABLED_B);
                        roleData.memoB       = StringUtil.toString(codeRoleHis.MEMO_B);
                    }
                }


                SysCodeDao sysCodeDao = new SysCodeDao();
                SYS_CODE   sysCode    = new SYS_CODE();
                sysCode = sysCodeDao.qryByKey("ROLE_AUTH_TYPE", StringUtil.toString(roleData.roleAuthType));
                if (sysCode != null)
                {
                    roleData.roleAuthTypeDesc = StringUtil.toString(sysCode.CODE_VALUE);
                }

                sysCode = sysCodeDao.qryByKey("IS_DISABLED", StringUtil.toString(roleData.isDisabledB));
                if (sysCode != null)
                {
                    roleData.isDisabledB = StringUtil.toString(sysCode.CODE_VALUE);
                }

                sysCode = sysCodeDao.qryByKey("IS_DISABLED", StringUtil.toString(roleData.isDisabled));
                if (sysCode != null)
                {
                    roleData.isDisabled = StringUtil.toString(sysCode.CODE_VALUE);
                }


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