Exemplo n.º 1
0
        protected override bool WfItemCheck(object sender, ItemCheckInfo e)
        {
            List <vw_admi100s> detailList = null;
            int chkCnts = 0;

            try
            {
                #region 單頭 vw_admi100
                if (e.Row.Table.Prefix.ToLower() == "vw_admi100")
                {
                    switch (e.Column.ToLower())
                    {
                    case "ada01":       //使用者ID
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            return(true);
                        }
                        if (FormEditMode == YREditType.新增)
                        {
                            if (BoAdm.OfChkAdaPKExists(e.Value.ToString()))
                            {
                                WfShowErrorMsg("使用者ID已存在!");
                                return(false);
                            }
                        }
                        break;

                    case "ada03":       //使用者部門
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            e.Row["ada03_c"] = "";
                            break;
                        }
                        if (BoAdm.OfChkAdePKExists(e.Value.ToString()) == false)
                        {
                            WfShowErrorMsg("無此使用者部門代號,請確認!");
                            return(false);
                        }
                        e.Row["ada03_c"] = BoAdm.OfGetAde02(e.Value.ToString());

                        break;

                    case "ada04":
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            e.Row["ada04_c"] = "";
                            break;
                        }
                        if (BoAdm.OfChkAdcPKExists(e.Value.ToString()) == false)
                        {
                            WfShowErrorMsg("無此角色代號,請確認!");
                            return(false);
                        }
                        e.Row["ada04_c"] = BoAdm.OfGetAdc02(e.Value.ToString());
                        break;

                    case "ada05":       //登入密碼 要處理編碼方式
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            if (!GlobalFn.varIsNull(OldValue))
                            {
                                e.Row["ada05"] = OldValue;
                                return(true);
                            }
                        }
                        e.Row["ada05"] = GlobalFn.genMd5Hash(e.Value.ToString());
                        e.Row["ada06"] = "Y";
                        break;

                    case "ada08":       //預設營運公司
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            return(true);
                        }
                        if (BoAdm.OfChkAtaPKExists(e.Value.ToString()) == false)
                        {
                            WfShowErrorMsg("無此公司別,請確認!");
                            return(false);
                        }
                        //檢查單身是否有此登入公司
                        detailList = TabDetailList[0].DtSource.ToList <vw_admi100s>();
                        if (detailList != null)
                        {
                            chkCnts = detailList.Where(p => p.adb02 == e.Value.ToString())
                                      .Count();
                        }
                        if (detailList == null || chkCnts == 0)
                        {
                            var result = WfShowConfirmMsg("無此登入公司別權限,是否要新增?");
                            if (result == DialogResult.Yes)
                            {
                                var newRow = TabDetailList[0].DtSource.NewRow();
                                WfSetDetailRowDefault(0, newRow);
                                newRow["adb02"] = e.Value;
                                var ataModel = BoAdm.OfGetAtaModel(e.Value.ToString());
                                newRow["adb02_c"] = ataModel.ata02;
                                TabDetailList[0].DtSource.Rows.Add(newRow);
                            }
                        }
                        break;
                    }
                }
                #endregion

                #region 單身 vw_admi100s
                if (e.Row.Table.Prefix.ToLower() == "vw_admi100s")
                {
                    switch (e.Column.ToLower())
                    {
                    case "adb02":       //可登入公司
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            e.Row["adb02_c"] = "";
                            return(true);
                        }

                        if (BoAdm.OfChkAtaPKExists(e.Value.ToString()) == false)
                        {
                            WfShowErrorMsg("無此公司代號,請確認!");
                            return(false);
                        }
                        detailList = TabDetailList[0].DtSource.ToList <vw_admi100s>();
                        chkCnts    = detailList.Where(p => p.adb02.ToUpper() == e.Value.ToString().ToUpper()).Count();
                        if (chkCnts > 1)
                        {
                            WfShowErrorMsg("公司代碼重覆,請確認!");
                            return(false);
                        }

                        e.Row["adb02_c"] = BoAdm.OfGetAta02(e.Value.ToString());
                        break;
                    }
                }
                #endregion
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }