/// <summary> /// /// </summary> /// <param name="htParams"></param> /// <returns></returns> public bool CheckStoreAssignItemInclude(Hashtable htParams) { try { VDS_ALO_STOREASSIGN_MAIN_DBO ALOM = new VDS_ALO_STOREASSIGN_MAIN_DBO(ref USEDB); //1) 設定[@驗證結果]=否; bool bResult = false; DataTable dt = ALOM.doGetStoreAssignForCheck(htParams); //2) 根據[@通路]、[@門市],檢查是否已設定門市指定商品相關資訊,取得查詢資料集[@C_1]下: //select count(*), sm.ROOT_NO, sm.PMA, sm.PATTERN_NO, sm.ITEM // from sm,sd // where sm.Enable=1 and sm.id =sd.pid // and sm.chan_no = [@通路] and sm.store =[@門市] //[@C_1]檢查結果為無資料 => 可新增任何品項,停止檢查流程,回傳[@驗證結果]=是 if (dt == null || dt.Rows.Count == 0) { bResult = true; } else { //3) [@C_1]檢查結果有資料,進行下列檢查。 // a) 根據[@品號],由商品主檔[i]取得分類資訊[@C_Item]如下: // select ROOT_NO, PMA, Pattern_no,ITEM // from VDS_ITM_ITEM // where Enable=1 and ITEM=[@品號] DataTable dt2 = ALOM.doGetItemDataForCheck(htParams); if (dt2 != null && dt2.Rows.Count > 0) { for (Int32 i = 0; i <= dt.Rows.Count - 1; i++) { if (bResult) break; // b) 檢查[@C_1],依序執行檢查條件,當下列任一條件符合時,設定[@驗證結果]=是,停止檢查流程 for (Int32 k = 0; k <= dt2.Rows.Count - 1; k++) { if (dt.Rows[i]["item"].ToString().Trim() == dt2.Rows[k]["item"].ToString().Trim()) { // # [@品號]資料存在於[門市指定商品設定資訊]時: // 存在 [@C_1].ITEM= [@C_Item].ITEM之資料 bResult = true; break; } else if ((dt.Rows[i]["pattern"].ToString().Trim() == dt2.Rows[k]["pattern_no"].ToString().Trim()) && dt.Rows[i]["item"].ToString().Trim() == "") { // # [@品號]所屬之{Pattern分類}存在於[門市指定商品設定資訊]時: // 存在 [@C_1].PATTERN_NO =[@C_Item].PATTERN_NO and [@C_1].ITEM為空值 之資料 bResult = true; break; } else if ((dt.Rows[i]["root_no"].ToString().Trim() == dt2.Rows[k]["root_no"].ToString().Trim()) && (dt.Rows[i]["pma"].ToString().Trim() == dt2.Rows[k]["pma"].ToString().Trim()) && dt.Rows[i]["pattern"].ToString().Trim() == "" && dt.Rows[i]["item"].ToString().Trim() == "") { // # [@品號]所屬之{群分類+大分類}存在於[門市指定商品設定資訊]時: // 存在 [@C_1].ROOT_NO =[@C_Item].ROOT_NO // and [@C_1].PMA =[@C_Item].PMA // and [@C_1].PATTERN_NO 為空值 // and [@C_1].ITEM 為空值 之資料 bResult = true; break; } } } } } return bResult; } catch (Exception ex) { throw GetNewException(ex); } }