//回傳值 true.通過驗證 false.未通過驗證,會把值還原 protected override bool WfItemCheck(object sender, ItemCheckInfo e) { List <vw_puri100s> detailList; vw_puri100s detailModel; int iChkCnts = 0; try { #region 單頭-pick vw_puri100 if (e.Row.Table.Prefix.ToLower() == "vw_puri100") { switch (e.Column.ToLower()) { case "pca01": //廠商編號 if (GlobalFn.varIsNull(e.Value)) { return(true); } if (BoPur.OfChkPcaPKExists(e.Value.ToString()) == true) { WfShowErrorMsg("廠商編號已存存,請檢核!"); return(false); } break; case "pca04": //廠商分類 if (GlobalFn.varIsNull(e.Value)) { return(true); } if (BoPur.OfChkPbaPKExists(GlobalFn.isNullRet(e.Value, "")) == false) { WfShowErrorMsg("無此廠商分類,請檢核!"); return(false); } break; case "pca05": //負責採購 if (GlobalFn.varIsNull(e.Value)) { e.Row["pca05_c"] = ""; return(true); } if (BoBas.OfChkBecPKValid(GlobalFn.isNullRet(e.Value, "")) == false) { WfShowErrorMsg("無此負責採購,請檢核!"); return(false); } e.Row["pca05_c"] = BoBas.OfGetBec02(GlobalFn.isNullRet(e.Value, "")); break; case "pca21": //付款方式 if (GlobalFn.varIsNull(e.Value)) { e.Row["pca21_c"] = ""; return(true); } if (BoBas.OfChkBefPKValid("1", GlobalFn.isNullRet(e.Value, "")) == false) { WfShowErrorMsg("無此付款方式,請檢核!"); return(false); } e.Row["pca21_c"] = BoBas.OfGetBef03("1", GlobalFn.isNullRet(e.Value, "")); break; case "pca24": //取價原則 if (GlobalFn.varIsNull(e.Value)) { e.Row["pca24_c"] = ""; return(true); } if (BoPur.OfChkPbbPKExists(GlobalFn.isNullRet(e.Value, "")) == false) { WfShowErrorMsg("無此取價原則,請檢核!"); return(false); } e.Row["pca24_c"] = BoPur.OfGetPbb02(GlobalFn.isNullRet(e.Value, "")); break; case "pca26": //金融機構 if (GlobalFn.varIsNull(e.Value)) { return(true); } if (BoBas.OfChkBegPKExists(GlobalFn.isNullRet(e.Value, "")) == false) { WfShowErrorMsg("無此金融機構,請檢核!"); return(false); } break; case "pca35": //送貨地址 if (GlobalFn.varIsNull(e.Value)) { return(true); } if (BoPur.OfChkPccPKValid(GlobalFn.isNullRet(e.Value, ""), "1") == false) { WfShowErrorMsg("無此送貨地址,請檢核!"); return(false); } break; case "pca36": //帳單地址 if (GlobalFn.varIsNull(e.Value)) { return(true); } if (BoPur.OfChkPccPKValid(GlobalFn.isNullRet(e.Value, ""), "2") == false) { WfShowErrorMsg("無此帳單地址,請檢核!"); return(false); } break; } } #endregion #region 單身-pick vw_puri100 if (e.Row.Table.Prefix.ToLower() == "vw_puri100s") { detailModel = e.Row.ToItem <vw_puri100s>(); detailList = e.Row.Table.ToList <vw_puri100s>(); switch (e.Column.ToLower()) { case "pcb02": if (GlobalFn.varIsNull(e.Value)) { return(true); } iChkCnts = detailList.Where(x => x.pcb02 == detailModel.pcb02).Count(); if (iChkCnts > 1) { WfShowErrorMsg("地址碼已存在!"); return(false); } break; } } #endregion return(true); } catch (Exception ex) { throw ex; } }