private bool CheckPOSourceNO(string s_ChanNo, string s_Store, string s_StAcceptDate, string s_PoSourceNo, TextBox txt_POSourceNo, out string strErrMsg) { #region bool bResult = true; strErrMsg = ""; try { DataTable dtTemp = dtStorePOSetting; ALOModel.MaintainChainPO BCO = new ALOModel.MaintainChainPO(ConnectionDB); ALOModel.QueryALOCommon BCO2 = new ALOModel.QueryALOCommon(ConnectionDB); ArrayList ParameterList1 = new ArrayList(); if (dtTemp != null && dtTemp.Rows.Count > 0) { #region for (Int32 i = 0; i <= dtTemp.Rows.Count - 1; i++) { //1.根據[DI.群分類+大分類],由[dtStorePOSetting]過濾取得對應通路PO單號控制資訊。 if (s_ROOT_NO == dtTemp.Rows[i]["root_no"].ToString().Trim() && s_PMA == dtTemp.Rows[i]["pma"].ToString().Trim()) { if (dtTemp.Rows[i]["is_dis_bypo"].ToString().Trim() == "0") { if (s_PoSourceNo != "")//2.若查詢之IS_DIS_BYPO=否,則PO單號必須為空白,清空PO單號,並顯示訊息提示使用者。 { #region 不可輸入PO單號 strErrMsg = string.Format("『(通路,門市,群分類,大分類)=({0},{1},{2},{3})時不可輸入通路單號。』", s_ChanNo, s_Store, s_ROOT_NO, s_PMA); txt_POSourceNo.Text = ""; bResult = false; break; #endregion } } else if (dtTemp.Rows[i]["is_dis_bypo"].ToString().Trim() == "1") { if (s_PoSourceNo == "")//3.若IS_DIS_BYPO=是 =>PO單號為必填欄位,檢查是否正確輸入。異常則顯示錯誤訊息,提示使用者。 { #region PO單號為必填 strErrMsg = string.Format("『請輸入通路單號。』"); bResult = false; break; #endregion } #region old //if (dtTemp.Rows[i]["is_multipo"].ToString().Trim() == "0")//4.若IS_DIS_BYPO=是,且IS_MULTIPO=否,=>檢查同品號/期別/門市進貨日/門市是否存在不同PO,若存在則顯示錯誤訊息,不允許更新。 //{ // #region // if (bResult) // { // DataTable dtTempMD = dtDisStore; // for (Int32 k = 0; k <= dtTempMD.Rows.Count - 1; k++) // { // if (dtTempMD.Rows[k]["chan_no"].ToString().Trim() == s_ChanNo && // dtTempMD.Rows[k]["store"].ToString().Trim() == s_Store && // dtTempMD.Rows[k]["item"].ToString().Trim() == s_ITEM && // dtTempMD.Rows[k]["period"].ToString().Trim() == s_PERIOD && // //dtTempMD.Rows[k]["st_accept_date"].ToString().Trim() == s_StAcceptDate &&//todo need to check // dtTempMD.Rows[k]["po_source_no"].ToString().Trim() != s_PoSourceNo && // k != i_CurrentIndexInDisStore) // { // strErrMsg = string.Format("『(通路,門市,群分類,大分類)=({0},{1},{2},{3})時不允許多重PO。』", s_ChanNo, s_Store, s_ROOT_NO, s_PMA); // bResult = false; // break; // } // } // } // #endregion // #region // if (bResult) // { // ParameterList1.Clear(); // ParameterList1.Add(s_ChanNo); // ParameterList1.Add(s_Store); // ParameterList1.Add(s_ITEM); // ParameterList1.Add(s_PERIOD); // ParameterList1.Add(s_StAcceptDate); // ParameterList1.Add(null); // DataTable dtTempPoDetl = BCO.QueryChainPODetlByFind(ParameterList1); // if (dtTempPoDetl != null && dtTempPoDetl.Rows.Count > 0) // { // for (Int32 j = 0; j <= dtTempPoDetl.Rows.Count - 1; j++) // { // if (dtTempPoDetl.Rows[j]["po_source_no"].ToString().Trim() != s_PoSourceNo) // { // strErrMsg = string.Format("『(通路,門市,群分類,大分類)=({0},{1},{2},{3})時不允許多重PO。』", s_ChanNo, s_Store, s_ROOT_NO, s_PMA); // bResult = false; // break; // } // } // } // } // #endregion //} #endregion if (bResult) { #region DataTable dtTempMD = dtDisStore; for (Int32 k = 0; k <= dtTempMD.Rows.Count - 1; k++) { if (dtTempMD.Rows[k]["chan_no"].ToString().Trim() == s_ChanNo && dtTempMD.Rows[k]["store"].ToString().Trim() == s_Store && dtTempMD.Rows[k]["item"].ToString().Trim() == s_ITEM && dtTempMD.Rows[k]["period"].ToString().Trim() == s_PERIOD && dtTempMD.Rows[k]["po_source_no"].ToString().Trim() != s_PoSourceNo && k != i_CurrentIndexInDisStore) { ParameterList1.Clear(); ParameterList1.Add(s_StAcceptDate); ParameterList1.Add(dtTemp.Rows[i]["is_dis_bypo"].ToString().Trim()); ParameterList1.Add(dtTemp.Rows[i]["is_multipo"].ToString().Trim()); ParameterList1.Add(s_ROOT_NO); ParameterList1.Add(s_PMA); ParameterList1.Add(s_ITEM); ParameterList1.Add(s_PERIOD); ParameterList1.Add(s_ChanNo); ParameterList1.Add(s_Store); ParameterList1.Add(s_PoSourceNo); ParameterList1.Add(Session["UID"].ToString()); bResult = BCO2.CheckPODuplicate(ParameterList1, out strErrMsg); if (!bResult) break; } } #endregion } } } } #endregion } #region #region if (bResult) { DataTable dtTempMD = dtDisStore; for (Int32 k = 0; k <= dtTempMD.Rows.Count - 1; k++) { if (dtTempMD.Rows[k]["chan_no", DataRowVersion.Current].ToString().Trim() == s_ChanNo && dtTempMD.Rows[k]["store", DataRowVersion.Current].ToString().Trim() == s_Store && dtTempMD.Rows[k]["item", DataRowVersion.Current].ToString().Trim() == s_ITEM && dtTempMD.Rows[k]["period", DataRowVersion.Current].ToString().Trim() == s_PERIOD && //dtTempMD.Rows[k]["st_accept_date"].ToString().Trim() == s_StAcceptDate &&//todo need to check dtTempMD.Rows[k]["po_source_no", DataRowVersion.Current].ToString().Trim() == s_PoSourceNo && k != i_CurrentIndexInDisStore) { strErrMsg = string.Format("『PK重複(通路,門市,群分類,大分類,進貨日,PO單號)=({0},{1},{2},{3},{4},{5})。』", s_ChanNo, s_Store, s_ROOT_NO, s_PMA, s_StAcceptDate, s_PoSourceNo); bResult = false; break; } } } #endregion #region if (bResult) { ParameterList1.Clear(); ParameterList1.Add(s_ChanNo); ParameterList1.Add(s_Store); ParameterList1.Add(s_ITEM); ParameterList1.Add(s_PERIOD); ParameterList1.Add(s_StAcceptDate); ParameterList1.Add(s_PoSourceNo); bool bTemp = BCO.CheckChainPODetlIsExistedByFind(ParameterList1); if (bTemp) { strErrMsg = string.Format("『PK重複(通路,門市,群分類,大分類,進貨日,PO單號)=({0},{1},{2},{3},{4},{5})。』", s_ChanNo, s_Store, s_ROOT_NO, s_PMA, s_StAcceptDate, s_PoSourceNo); bResult = false; } } #endregion #endregion } catch (Exception ex) { ErrorMsgLabel.Text = ex.Message; } return bResult; #endregion }