Example #1
0
        //回傳值 true.通過驗證 false.未通過驗證,會把值還原
        protected override bool WfItemCheck(object sender, ItemCheckInfo e)
        {
            int                 chkCnts     = 0;
            vw_glai110          masterModel = null;
            vw_glai110s         detailModel = null;
            List <vw_glai110s>  detailList  = null;
            gba_tb              gbaModel    = null;
            UltraGrid           uGrid       = null;
            UltraGridRow        uGridRow    = null;
            string              sqlSelect   = "";
            List <SqlParameter> sqlParmList = null;

            try
            {
                masterModel = DrMaster.ToItem <vw_glai110>();
                if (e.Column.ToLower() != "gbd01" && GlobalFn.isNullRet(DrMaster["gbd01"], "") == "")
                {
                    WfShowErrorMsg("請先輸入上層部門!");
                    return(false);
                }
                #region 單頭-vw_glai110
                if (e.Row.Table.Prefix.ToLower() == "vw_glai110")
                {
                    switch (e.Column.ToLower())
                    {
                    case "gbd01":
                        if (GlobalFn.isNullRet(e.Value, "") == "")
                        {
                            e.Row["gbd01_c"] = "";
                            return(true);
                        }
                        var babModel = BoBas.OfGetBebModel(e.Value.ToString());
                        if (babModel == null)
                        {
                            WfShowErrorMsg("無此上層部門,請檢核!");
                            return(false);
                        }
                        if (babModel.bebvali != "Y")
                        {
                            WfShowErrorMsg("此上層部門已失效,請檢核!");
                            return(false);
                        }
                        if (WfChkGbd01Exists(e.Value.ToString()) == true)
                        {
                            WfShowErrorMsg("此上層部門已存在,請檢核!");
                            return(false);
                        }

                        e.Row["gbd01_c"] = babModel.beb03;
                        break;
                    }
                }
                #endregion

                #region 單身-vw_glai110s
                if (e.Row.Table.Prefix.ToLower() == "vw_glai110s")
                {
                    uGrid       = sender as UltraGrid;
                    uGridRow    = uGrid.ActiveRow;
                    detailModel = e.Row.ToItem <vw_glai110s>();
                    detailList  = e.Row.Table.ToList <vw_glai110s>();
                    switch (e.Column.ToLower())
                    {
                    case "gbd02":
                        if (GlobalFn.isNullRet(e.Value, "") == "")
                        {
                            e.Row["gbd02_c"] = "";
                            return(true);
                        }
                        var babModel = BoBas.OfGetBebModel(e.Value.ToString());
                        if (babModel == null)
                        {
                            WfShowErrorMsg("無此下層部門,請檢核!");
                            return(false);
                        }
                        if (babModel.bebvali != "Y")
                        {
                            WfShowErrorMsg("此下層部門已失效,請檢核!");
                            return(false);
                        }
                        if (masterModel.gbd01.ToUpper() == e.Value.ToString().ToUpper())
                        {
                            WfShowErrorMsg("不可與上層部門相同,請檢核!");
                            return(false);
                        }
                        chkCnts = detailList.Where(p => p.gbd02.ToUpper() == e.Value.ToString().ToUpper()).Count();
                        if (chkCnts > 1)
                        {
                            WfShowErrorMsg("下層部門不可重覆,請檢核!");
                            return(false);
                        }
                        sqlSelect   = "SELECT COUNT(1) FROM gbd_tb WHERE gbd02=@gbd02 AND gbd01<>@gbd01";
                        sqlParmList = new List <SqlParameter>();
                        sqlParmList.Add(new SqlParameter("@gbd01", masterModel.gbd01));
                        sqlParmList.Add(new SqlParameter("@gbd02", e.Value.ToString()));
                        chkCnts = GlobalFn.isNullRet(BoGla.OfGetFieldValue(sqlSelect, sqlParmList.ToArray()), 0);
                        if (chkCnts > 0)
                        {
                            WfShowErrorMsg("此下層部門已隸屬於其他上層部門,請檢核!");
                            return(false);
                        }
                        e.Row["gbd02_c"] = babModel.beb03;
                        break;
                    }
                }
                #endregion
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #2
0
        protected override bool WfFormCheck()
        {
            int                 chkCnts     = 0;
            vw_glai110          masterModel = null;
            vw_glai110s         detailModel = null;
            List <vw_glai110s>  detailList  = null;
            UltraGrid           uGrid;
            string              msg;
            Control             chkControl;
            string              chkColName;
            int                 iChkDetailTab;
            string              sqlSelect   = "";
            List <SqlParameter> sqlParmList = null;
            Result              result;

            try
            {
                masterModel = DrMaster.ToItem <vw_glai110>();
                #region 單頭資料檢查
                chkColName = "gbd01";       //傳票單號
                chkControl = ute_gbd01;
                if (GlobalFn.varIsNull(masterModel.gbd01))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }
                if (FormEditMode == YREditType.新增)
                {
                    if (WfChkGbd01Exists(masterModel.gbd01) == true)
                    {
                        msg = "此上層部門已存在,請檢核!";
                        WfShowErrorMsg(msg);
                        errorProvider.SetError(chkControl, msg);
                        WfShowErrorMsg(msg);
                        return(false);
                    }
                }

                #endregion

                #region 單身資料檢查
                iChkDetailTab = 0;
                uGrid         = TabDetailList[iChkDetailTab].UGrid;
                detailList    = TabDetailList[iChkDetailTab].DtSource.ToList <vw_glai110s>();
                foreach (DataRow drTemp in TabDetailList[iChkDetailTab].DtSource.Rows)
                {
                    if (drTemp.RowState == DataRowState.Unchanged)
                    {
                        continue;
                    }

                    detailModel = drTemp.ToItem <vw_glai110s>();
                    chkColName  = "gbd02";  //下層部門
                    if (GlobalFn.varIsNull(detailModel.gbd02))
                    {
                        this.uTab_Detail.SelectedTab = uTab_Detail.Tabs[iChkDetailTab];
                        msg  = TabDetailList[iChkDetailTab].AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                        msg += "不可為空白";
                        WfShowErrorMsg(msg);
                        WfFindErrUltraGridCell(uGrid, drTemp, chkColName);
                        return(false);
                    }

                    if (drTemp.RowState == DataRowState.Added)
                    {
                        chkCnts = detailList.Where(p => p.gbd02.ToUpper() == detailModel.gbd02.ToUpper()).Count();
                        if (chkCnts > 1)
                        {
                            WfShowErrorMsg("下層部門不可重覆,請檢核!");
                            return(false);
                        }

                        sqlSelect   = "SELECT COUNT(1) FROM gbd_tb WHERE gbd02=@gbd02 AND gbd01<>@gbd01";
                        sqlParmList = new List <SqlParameter>();
                        sqlParmList.Add(new SqlParameter("@gbd01", masterModel.gbd01));
                        sqlParmList.Add(new SqlParameter("@gbd02", detailModel.gbd02));
                        chkCnts = GlobalFn.isNullRet(BoGla.OfGetFieldValue(sqlSelect, sqlParmList.ToArray()), 0);
                        if (chkCnts > 0)
                        {
                            WfShowErrorMsg("此下層部門已隸屬於其他上層部門,請檢核!");
                            return(false);
                        }
                    }
                }
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #3
0
        protected override bool WfPickClickOnEditMode(object sender, string pColName, DataRow pDr)
        {
            try
            {
                vw_glai110  masterModel  = null;
                vw_glai110s detailModel  = null;
                MessageInfo messageModel = new MessageInfo();
                #region 單頭-pick vw_glai110
                if (pDr.Table.Prefix.ToLower() == "vw_glai110")
                {
                    masterModel = DrMaster.ToItem <vw_glai110>();
                    switch (pColName.ToLower())
                    {
                    case "gbd01":    //上層部門
                        messageModel.ParamSearchList = new List <SqlParameter>();
                        WfShowPickUtility("p_beb1", messageModel);
                        if (messageModel.Result == System.Windows.Forms.DialogResult.OK)
                        {
                            if (messageModel.DataRowList.Count > 0)
                            {
                                pDr[pColName] = GlobalFn.isNullRet(messageModel.DataRowList[0]["beb01"], "");
                            }
                            else
                            {
                                pDr[pColName] = "";
                            }
                        }
                        break;
                    }
                }
                #endregion

                #region 單身-pick vw_glai110s
                if (pDr.Table.Prefix.ToLower() == "vw_glai110s")
                {
                    masterModel = DrMaster.ToItem <vw_glai110>();
                    detailModel = pDr.ToItem <vw_glai110s>();
                    switch (pColName.ToLower())
                    {
                    case "gbd02":    //下層部門
                        WfShowPickUtility("p_beb1", messageModel);
                        if (messageModel.Result == System.Windows.Forms.DialogResult.OK)
                        {
                            if (messageModel.DataRowList.Count > 0)
                            {
                                pDr[pColName] = GlobalFn.isNullRet(messageModel.DataRowList[0]["beb01"], "");
                            }
                            else
                            {
                                pDr[pColName] = "";
                            }
                        }
                        break;
                    }
                }
                #endregion
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }