Example #1
0
        public tba_tb OfGetTbaModel(string pTba01)
        {
            DataRow drTba    = null;
            tba_tb  rtnModel = null;

            try
            {
                drTba = OfGetTbaDr(pTba01);
                if (drTba == null)
                {
                    return(null);
                }
                rtnModel = drTba.ToItem <tba_tb>();

                return(rtnModel);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #2
0
        //回傳值 true.通過驗證 false.未通過驗證,會把值還原
        protected override bool WfItemCheck(object sender, ItemCheckInfo e)
        {
            vw_taxi020         masterModel = null;
            vw_taxi020s        detailModel = null;
            List <vw_taxi020s> detailList = null;
            UltraGrid          uGrid = null;
            tba_tb             tbaModel = null;
            int begNo, endNo, chkBegNo, chkEndNo;
            int ChkCnts = 0;

            try
            {
                masterModel = DrMaster.ToItem <vw_taxi020>();
                #region 單頭-vw_taxi020
                if (e.Row.Table.Prefix.ToLower() == "vw_taxi020")
                {
                    switch (e.Column.ToLower())
                    {
                    case "tbe01":
                        if (GlobalFn.isNullRet(e.Value, "") == "")
                        {
                            return(true);
                        }
                        if (Convert.ToInt32(e.Value) <= 0)
                        {
                            WfShowErrorMsg("不可為0或負數!");
                            return(false);
                        }
                        break;

                    case "tbe11":       //申報別
                        if (GlobalFn.isNullRet(e.Value, "") == "")
                        {
                            return(true);
                        }
                        if (BoTax.OfChkTbaPKExists(GlobalFn.isNullRet(e.Value, "")) == false)
                        {
                            WfShowErrorMsg("無此申報別");
                            return(false);
                        }
                        tbaModel            = BoTax.OfGetTbaModel(e.Value.ToString());
                        DrMaster["tbe11_c"] = tbaModel.tba04;
                        break;

                    case "tbe02":
                        if (GlobalFn.isNullRet(e.Value, "") == "")
                        {
                            return(true);
                        }
                        if (Convert.ToInt32(e.Value) <= 0)
                        {
                            WfShowErrorMsg("不可為0或負數!");
                            return(false);
                        }
                        if (masterModel.tbe03 != 0 && Convert.ToInt32(e.Value) > masterModel.tbe03)
                        {
                            WfShowErrorMsg("發票年月起不得大於迄月!");
                            return(false);
                        }

                        break;

                    case "tbe03":
                        if (GlobalFn.isNullRet(e.Value, "") == "")
                        {
                            return(true);
                        }
                        if (Convert.ToInt32(e.Value) <= 0)
                        {
                            WfShowErrorMsg("不可為0或負數!");
                            return(false);
                        }
                        if (masterModel.tbe02 != 0 && Convert.ToInt32(e.Value) < masterModel.tbe02)
                        {
                            WfShowErrorMsg("發票年月起不得大於迄月!");
                            return(false);
                        }
                        break;
                    }
                }
                #endregion

                #region 單身-vw_taxi020s
                if (e.Row.Table.Prefix.ToLower() == "vw_taxi020s")
                {
                    uGrid       = sender as UltraGrid;
                    detailModel = e.Row.ToItem <vw_taxi020s>();
                    detailList  = e.Row.Table.ToList <vw_taxi020s>();

                    switch (e.Column.ToLower())
                    {
                    case "tbe04":       //發票別
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            return(true);
                        }

                        if (!GlobalFn.varIsNull(e.Value) && !GlobalFn.varIsNull(detailModel.tbe05) && detailModel.tbe06 > 0 &&
                            detailList.Count > 1
                            )
                        {
                            if (WfChktbe04tbe05tbe06(e.Value.ToString(), detailModel.tbe05, detailModel.tbe06) == false)
                            {
                                return(false);
                            }
                        }
                        break;

                    case "tbe05":       //聯數
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            return(true);
                        }
                        if (!GlobalFn.varIsNull(detailModel.tbe04) && !GlobalFn.varIsNull(e.Value) && detailModel.tbe06 > 0 &&
                            detailList.Count > 1
                            )
                        {
                            if (WfChktbe04tbe05tbe06(detailModel.tbe04, e.Value.ToString(), detailModel.tbe06) == false)
                            {
                                return(false);
                            }
                        }
                        break;

                    case "tbe06":       //簿號
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            return(true);
                        }
                        if (!GlobalFn.varIsNull(detailModel.tbe04) && !GlobalFn.varIsNull(detailModel.tbe05) && Convert.ToInt32(detailModel.tbe06) > 0 &&
                            detailList.Count > 1
                            )
                        {
                            if (WfChktbe04tbe05tbe06(detailModel.tbe04, e.Value.ToString(), detailModel.tbe06) == false)
                            {
                                return(false);
                            }
                        }

                        break;

                    case "tbe07":    //起始發票號碼
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            return(true);
                        }
                        if (GlobalFn.varIsNull(detailModel.tbe05))
                        {
                            return(true);
                        }
                        if (e.Value.ToString().Length != 10)
                        {
                            WfShowErrorMsg("發票號碼應為10碼!");
                            return(false);
                        }
                        if (!GlobalFn.isEnglishLettrs(e.Value.ToString().Substring(0, 2)))
                        {
                            WfShowErrorMsg("發票前兩碼僅能輸入英文字母!");
                            return(false);
                        }
                        if (!GlobalFn.isNumberCharachter(e.Value.ToString().Substring(2, 8)))
                        {
                            WfShowErrorMsg("發票後八碼僅能輸入數字!");
                            return(false);
                        }
                        if (!GlobalFn.varIsNull(detailModel.tbe08))
                        {
                            begNo = Convert.ToInt32(e.Value.ToString().Substring(2, 8));
                            endNo = Convert.ToInt32(detailModel.tbe08.Substring(2, 8));
                            if (e.Value.ToString().Substring(0, 2) != detailModel.tbe08.Substring(0, 2))
                            {
                                WfShowErrorMsg("發票字軌應相同,請檢核!");
                                return(false);
                            }

                            if (begNo > endNo)
                            {
                                WfShowErrorMsg("發票號碼,起不得大於迄!");
                                return(false);
                            }

                            //檢查明細中是否有發票重疊
                            ChkCnts = detailList.Where(p => !GlobalFn.varIsNull(p.tbe07) && !GlobalFn.varIsNull(p.tbe08) &&
                                                       p.tbe07.Substring(0, 2).ToUpper() == detailModel.tbe07.Substring(0, 2).ToUpper() &&
                                                       !(endNo <Convert.ToInt32(p.tbe07.Substring(2, 8)) || begNo> Convert.ToInt32(p.tbe08.Substring(2, 8)))
                                                       ).Count();
                            if (ChkCnts > 1)
                            {
                                WfShowErrorMsg("輸入發票有重覆,請檢核!");
                                return(false);
                            }
                        }
                        WfSetTotalCnts(e.Row);
                        break;

                    case "tbe08":    //截止發票號碼
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            return(true);
                        }
                        if (GlobalFn.varIsNull(detailModel.tbe05))
                        {
                            return(true);
                        }
                        if (e.Value.ToString().Length != 10)
                        {
                            WfShowErrorMsg("發票號碼應為10碼!");
                            return(false);
                        }
                        if (!GlobalFn.isEnglishLettrs(e.Value.ToString().Substring(0, 2)))
                        {
                            WfShowErrorMsg("發票前兩碼僅能輸入英文字母!");
                            return(false);
                        }

                        if (!GlobalFn.isNumberCharachter(e.Value.ToString().Substring(2, 8)))
                        {
                            WfShowErrorMsg("發票後八碼僅能輸入數字!");
                            return(false);
                        }
                        if (!GlobalFn.varIsNull(detailModel.tbe08))
                        {
                            begNo = Convert.ToInt32(detailModel.tbe08.Substring(2, 8));
                            endNo = Convert.ToInt32(e.Value.ToString().Substring(2, 8));
                            if (e.Value.ToString().Substring(0, 2) != detailModel.tbe07.Substring(0, 2))
                            {
                                WfShowErrorMsg("發票字軌應相同,請檢核!");
                                return(false);
                            }

                            if (begNo > endNo)
                            {
                                WfShowErrorMsg("發票號碼,起不得大於迄!");
                                return(false);
                            }
                            //檢查明細中是否有發票重疊
                            ChkCnts = detailList.Where(p => !GlobalFn.varIsNull(p.tbe07) && !GlobalFn.varIsNull(p.tbe08) &&
                                                       p.tbe07.Substring(0, 2).ToUpper() == detailModel.tbe07.Substring(0, 2).ToUpper() &&
                                                       !(endNo <Convert.ToInt32(p.tbe07.Substring(2, 8)) || begNo> Convert.ToInt32(p.tbe08.Substring(2, 8)))
                                                       ).Count();
                            if (ChkCnts > 1)
                            {
                                WfShowErrorMsg("輸入發票有重覆,請檢核!");
                                return(false);
                            }
                        }
                        WfSetTotalCnts(e.Row);
                        break;
                    }
                }
                #endregion
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }