Example #1
0
    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
    }