/**
 * Copyright (c) 2003-2004 System Integrator Corporation.
 *                 All Rights Reserved.
 */
package jp.co.sint.beans.mallmgr;

import javax.servlet.http.*;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.*;
import java.sql.*;
import org.apache.log4j.Category;
import jp.co.sint.database.*;
import jp.co.sint.basic.*;
import jp.co.sint.config.*;
import jp.co.sint.tools.*;

/**
 * @version $Id : UIShopListCond.java,v 1.0 Exp $
 * @author      : Jinwang Chen
 * <br>Description :ショップ管理の一覧・検索の画面に対するbeansクラスを作成します。
 * <p>History</p>
 * <p>Author&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reason</p>
 * ============&nbsp;&nbsp;&nbsp;==========&nbsp;&nbsp;===========================<br>
 * Jinwang Chen   2003/08/05  Original
 */

public class UICmdtyListCond extends SIBasic {
  
  // ログ用のインスタンスの生成
  private static Category log = Category.getInstance(SIConfig.SILOG4J_WEBSHOP_CATEGORY_NAME);
  
  // ショップコード
  private String shopCodeTxt = "";
  
  // ショップ名
  private String shopNameTxt = "";
  
  // 商品コード
  private String cmdtyCodeFromTxt = "";// 7.2.0 ST0339 修正
  private String cmdtyCodeToTxt = "";// 7.2.0 ST0339 追加
  // 商品コード
  private String cmdtyCodeTxt = "";
  
  // 在庫コード 7.3.0 PI-NES5051 追加
  private String individualCodeTxt = "";
  
  // 商品コードの選択
  private String[] cmdtyStndrdCodeChk = new String[0];
  
  // 商品名
  private String cmdtyNameTxt = "";
  
  // 在庫数量From
  private String totalFromTxt = "";
  
  // 在庫数量To
  private String totalToTxt = "";
  
  // 中古新品フラグ
  private String usedNewFlg = "";
  
  // 本体価格
  private String unitPriceFromTxt = "";
  
  // 本体価格
  private String unitPriceToTxt = "";
  
  // 仕入れ価格
  private String stockUnitPriceFromTxt = "";
  
  // 仕入れ価格
  private String stockUnitPriceToTxt = "";
  
  // おすすめ
  private String adviceFlgRdo = "";
  
  // 会員割引
  private String memberDiscountFlgRdo = "";
  
  // 配送種別 7.3.0 PI-NES 5051 追加
  private String deliveryTypeCodeRdo = "";
  
  // 予約販売
  private String rsrvEnableFlgRdo = "";
  
  // 予約販売
  private String wrappingFlgRdo = "";
  
  // 在庫切れ販売
  private String noStockFlgRdo = "";
  
  // 検索並び順項目1
  private String firstOrderSel = "ShopCode";
  
  // 検索並び順項目2
  private String secondOrderSel = "CmdtyCode";
  
  // 検索並び順項目3
  private String thirdOrderSel = "Price";
  
  // 並び順１
  private String firstOrderTxt = "0";
  
  // 並び順2
  private String secondOrderTxt = "0";
  
  // 並び順3
  private String thirdOrderTxt = "0";
  
  // 色コード 7.3.0 PI-NES0501 追加
  private String colorCode = "";
  
  // カテゴリコード 7.3.0 PI-NES0501 追加
  private String ctgryCode = "";
  
  // ブランド名 7.3.0 PI-NES0501 追加
  private String makerName = "";
  
  // SQL検索のばあいに、条件文
  private String conditionSQL = "";
  
  // 並び順の文
  private String orderBySQL = " ORDER BY to_number(aa.cmdtycode,'9999999999999') DESC";// 7.3.0 PI-NES0501
  
  // 検索するかどうか？
  private boolean searchFlg = true;
  
  // その他販売表示区分
  private String otherOrderFlg = "0";
  
  // 条件のセット
  private Collection csvColl = new ArrayList();
  
  // 7.2.0 ST1030追加ここから
  // Form名
  private String formNameTxt = "";
  
  // InputCmdtyCode名
  private String inputCmdtyTxt = "";
  
  // 7.3.0 PI-NES0501 追加
  // 前頁
  private String prevPage = "";
  // 前表示件数
  private String prevSize = "";
  
  // 7.2.0 ST1030追加ここまで
  
  private String janCodeIndividual = "";
  
  private String disableFlg = "0";
  
  private String campaignFlg = "0";
  
  private String priceDownFlg = "0";
  
  private String stockNameCbo = "";
  
  private String frontDispFlgRdo = "";
  
  // 型式
  private String otherNameTxt = "";
  
  //EDBTG003-00 elecs-matsushima add start
  // 商品構成検索時
  private String cmdtySearhSetFlg = "";
  
  // ポイント取得フラグ
  private String cmdtyPointSearchFlg = "";
  
  // 商品種別
  private String cmdtySetTypeFlg = "";
  
  // セット商品か
  private String delSetCmdtyFlg = "0";
  //EDBTG003-00 elecs-matsushima add end
  
  private String storageCode = "";
  
  /**
   * UICmdtyListCond コンストラクタ
   * 
   * @param なし
   * @return なし
   * @throws なし
   */
  public UICmdtyListCond() {
  }
  
  public UICmdtyListCond(boolean isList){
    if (isList) {
      //SITableConditionManager lConditionMan = new SITableConditionManager();
      //lConditionMan.add(new SITableCondition(" AND aa.cmdtycode NOT IN (SELECT cmdtycode FROM individualtbl WHERE individualcode LIKE 'HG%' OR individualcode LIKE 'AF%' OR individualcode LIKE 'OT%' ) "));
      //this.setConditionSQL(lConditionMan.getCondtionSQL());
      this.setSearchFlg(false);
    }
  }
  
  /**
   * UICmdtyListCond コンストラクタ
   * 
   * @param lRequest リクエスト
   * @param lUrlParam
   * @return なし
   * @throws なし
   */
  public UICmdtyListCond(HttpServletRequest lRequest, SIURLParameter lUrlParam) {// 7.1.1 ST0236 修正
    this.init(lRequest, lUrlParam);// 7.1.1 ST0236 修正
  }
  
  // setter of ショップコード
  public void setShopCodeTxt(String lShopCodeTxt) {
    if (SIUtil.isNull(lShopCodeTxt)) lShopCodeTxt = "";
    this.shopCodeTxt = SIUtil.changeTo(lShopCodeTxt.trim(), this.encode);
  }
  
  // setter of ショップ名
  public void setShopNameTxt(String lShopNameTxt) {
    if (SIUtil.isNull(lShopNameTxt)) lShopNameTxt = "";
    this.shopNameTxt = SIUtil.changeTo(lShopNameTxt.trim(), this.encode);
  }
  
  // 7.2.0 ST0339 修正 ここから
  // setter of 商品コードFrom
  public void setCmdtyCodeFromTxt(String lCmdtyCodeFromTxt) {
    if (SIUtil.isNull(lCmdtyCodeFromTxt)) lCmdtyCodeFromTxt = "";
    this.cmdtyCodeFromTxt = SIUtil.changeTo(lCmdtyCodeFromTxt.trim(), this.encode);
  }
  
  // 7.2.0 ST0339 修正 ここまで
  
  // 7.2.0 ST0339 追加 ここから
  // setter of 商品コードTo
  public void setCmdtyCodeToTxt(String lCmdtyCodeToTxt) {
    if (SIUtil.isNull(lCmdtyCodeToTxt)) lCmdtyCodeToTxt = "";
    this.cmdtyCodeToTxt = SIUtil.changeTo(lCmdtyCodeToTxt.trim(), this.encode);
  }
  
  // 7.2.0 ST0339 追加 ここまで
  
  // setter of 商品コード
  public void setCmdtyStndrdCodeChk(String[] lCmdtyStndrdCodeChk) {
    if (lCmdtyStndrdCodeChk == null) lCmdtyStndrdCodeChk = new String[0];
    this.cmdtyStndrdCodeChk = lCmdtyStndrdCodeChk;
  }
  
  // setter of 商品名
  public void setCmdtyNameTxt(String lCmdtyNameTxt) {
    if (SIUtil.isNull(lCmdtyNameTxt)) lCmdtyNameTxt = "";
    this.cmdtyNameTxt = SIUtil.changeTo(lCmdtyNameTxt.trim(), this.encode);
  }
  
  // setter of 在庫数量From
  public void setTotalFromTxt(String lTotalFromTxt) {
    if (SIUtil.isNull(lTotalFromTxt)) lTotalFromTxt = "";
    this.totalFromTxt = SIUtil.changeTo(lTotalFromTxt.trim(), this.encode);
  }
  
  // setter of 在庫数量To
  public void setTotalToTxt(String lTotalToTxt) {
    if (SIUtil.isNull(lTotalToTxt)) lTotalToTxt = "";
    this.totalToTxt = SIUtil.changeTo(lTotalToTxt.trim(), this.encode);
  }
  
  // setter of 本体価格
  public void setUnitPriceFromTxt(String lUnitPriceFromTxt) {
    if (SIUtil.isNull(lUnitPriceFromTxt)) lUnitPriceFromTxt = "";
    this.unitPriceFromTxt = SIUtil.changeTo(lUnitPriceFromTxt.trim(), this.encode);
  }
  
  // setter of 本体価格
  public void setUnitPriceToTxt(String lUnitPriceToTxt) {
    if (SIUtil.isNull(lUnitPriceToTxt)) lUnitPriceToTxt = "";
    this.unitPriceToTxt = SIUtil.changeTo(lUnitPriceToTxt.trim(), this.encode);
  }
  
  // setter of 仕入れ価格
  public void setStockUnitPriceFromTxt(String lStockUnitPriceFromTxt) {
    if (SIUtil.isNull(lStockUnitPriceFromTxt)) lStockUnitPriceFromTxt = "";
    this.stockUnitPriceFromTxt = SIUtil.changeTo(lStockUnitPriceFromTxt.trim(), this.encode);
  }
  
  // setter of 仕入れ価格
  public void setStockUnitPriceToTxt(String lStockUnitPriceToTxt) {
    if (SIUtil.isNull(lStockUnitPriceToTxt)) lStockUnitPriceToTxt = "";
    this.stockUnitPriceToTxt = SIUtil.changeTo(lStockUnitPriceToTxt.trim(), this.encode);
  }
  
  // setter of 検索並び順項目1
  public void setFirstOrderSel(String lFirstOrderSel) {
    if (SIUtil.isNull(lFirstOrderSel)) lFirstOrderSel = "MallShopCode";
    this.firstOrderSel = lFirstOrderSel;
  }
  
  // setter of 検索並び順項目2
  public void setSecondOrderSel(String lSecondOrderSel) {
    if (SIUtil.isNull(lSecondOrderSel)) lSecondOrderSel = "MallShopName";
    this.secondOrderSel = lSecondOrderSel;
  }
  
  // setter of 検索並び順項目3
  public void setThirdOrderSel(String lThirdOrderSel) {
    if (SIUtil.isNull(lThirdOrderSel)) lThirdOrderSel = "FrontShopName";
    this.thirdOrderSel = lThirdOrderSel;
  }
  
  // setter of 並び順１
  public void setFirstOrderTxt(String lFirstOrderTxt) {
    if (SIUtil.isNull(lFirstOrderTxt)) lFirstOrderTxt = "0";
    this.firstOrderTxt = lFirstOrderTxt;
  }
  
  // setter of 並び順2
  public void setSecondOrderTxt(String lSecondOrderTxt) {
    if (SIUtil.isNull(lSecondOrderTxt)) lSecondOrderTxt = "0";
    this.secondOrderTxt = lSecondOrderTxt;
  }
  
  // setter of 並び順3
  public void setThirdOrderTxt(String lThirdOrderTxt) {
    if (SIUtil.isNull(lThirdOrderTxt)) lThirdOrderTxt = "0";
    this.thirdOrderTxt = lThirdOrderTxt;
  }
  
  // setter of 条件文
  public void setConditionSQL(String lConditionSQL) {
    if (lConditionSQL == null) lConditionSQL = "";
    this.conditionSQL = lConditionSQL;
  }
  
  // setter of 並び順文
  public void setOrderBySQL(String lOrderBySQL) {
    if (lOrderBySQL == null) lOrderBySQL = "";
    this.orderBySQL = lOrderBySQL;
  }
  
  // setter of おすすめ
  public void setAdviceFlgRdo(String lAdviceFlgRdo) {
    if (SIUtil.isNull(lAdviceFlgRdo)) lAdviceFlgRdo = "";
    this.adviceFlgRdo = lAdviceFlgRdo;
  }
  
  // setter of 会員割引
  public void setMemberDiscountFlgRdo(String lMemberDiscountFlgRdo) {
    if (SIUtil.isNull(lMemberDiscountFlgRdo)) lMemberDiscountFlgRdo = "";
    this.memberDiscountFlgRdo = lMemberDiscountFlgRdo;
  }
  
  // setter of 予約販売
  public void setRsrvEnableFlgRdo(String lRsrvEnableFlgRdo) {
    if (SIUtil.isNull(lRsrvEnableFlgRdo)) lRsrvEnableFlgRdo = "";
    this.rsrvEnableFlgRdo = lRsrvEnableFlgRdo;
  }
  
  // setter of ラッピングフラグ
  public void setWrappingFlgRdo(String lWrappingFlgRdo) {
    if (SIUtil.isNull(lWrappingFlgRdo)) wrappingFlgRdo = "";
    this.wrappingFlgRdo = lWrappingFlgRdo;
  }
  
  // setter of 在庫切れ販売
  public void setNoStockFlgRdo(String lNoStockFlgRdo) {
    if (SIUtil.isNull(lNoStockFlgRdo)) lNoStockFlgRdo = "";
    this.noStockFlgRdo = lNoStockFlgRdo;
  }
  
  // 7.2.0 ST1030追加ここから
  // setter of form名
  public void setFormName(String lFormName) {
    if (lFormName == null) lFormName = "";
    this.formNameTxt = lFormName;
  }
  
  // setter of inputCmdtyCode名
  public void setInputCmdtyName(String lInputCmdtyName) {
    if (lInputCmdtyName == null) lInputCmdtyName = "";
    this.inputCmdtyTxt = lInputCmdtyName;
  }
  
  // 7.2.0 ST1030追加ここまで
  
  // 検索フラグ
  public void setSearchFlg(boolean newSearchFlg) {
    this.searchFlg = newSearchFlg;
  }
  
  // setter of その他販売表示区分
  public void setOtherOrderFlg(String lOtherOrderFlg) {
    if (lOtherOrderFlg == null) lOtherOrderFlg = "0";
    this.otherOrderFlg = lOtherOrderFlg;
  }
  
  // getter of ショップコード
  public String getShopCodeTxt() {
    return this.shopCodeTxt;
  }
  
  // getter of ショップ名
  public String getShopNameTxt() {
    return this.shopNameTxt;
  }
  
  // 7.2.0 ST0339 修正 ここから
  // getter of 商品コードFrom
  public String getCmdtyCodeFromTxt() {
    return this.cmdtyCodeFromTxt;
  }
  
  // 7.2.0 ST0339 修正 ここまで
  
  // 7.2.0 ST0339 追加 ここから
  // getter of 商品コードTo
  public String getCmdtyCodeToTxt() {
    return this.cmdtyCodeToTxt;
  }
  
  // 7.2.0 ST0339 追加 ここまで
  
  // getter of 商品コード
  public String[] getCmdtyStndrdCodeChk() {
    return this.cmdtyStndrdCodeChk;
  }
  
  // getter of 商品名
  public String getCmdtyNameTxt() {
    return this.cmdtyNameTxt;
  }
  
  // getter of 在庫数量From
  public String getTotalFromTxt() {
    return this.totalFromTxt;
  }
  
  // getter of 在庫数量To
  public String getTotalToTxt() {
    return this.totalToTxt;
  }
  
  // getter of 本体価格
  public String getUnitPriceFromTxt() {
    return this.unitPriceFromTxt;
  }
  
  // getter of 本体価格
  public String getUnitPriceToTxt() {
    return this.unitPriceToTxt;
  }
  
  // getter of 仕入れ価格
  public String getStockUnitPriceFromTxt() {
    return this.stockUnitPriceFromTxt;
  }
  
  // getter of 仕入れ価格
  public String getStockUnitPriceToTxt() {
    return this.stockUnitPriceToTxt;
  }
  
  // getter of 検索並び順項目1
  public String getFirstOrderSel() {
    return this.firstOrderSel;
  }
  
  // getter of 検索並び順項目2
  public String getSecondOrderSel() {
    return this.secondOrderSel;
  }
  
  // getter of 検索並び順項目3
  public String getThirdOrderSel() {
    return this.thirdOrderSel;
  }
  
  // getter of 並び順１
  public String getFirstOrderTxt() {
    return this.firstOrderTxt;
  }
  
  // getter of 並び順2
  public String getSecondOrderTxt() {
    return this.secondOrderTxt;
  }
  
  // getter of 並び順3
  public String getThirdOrderTxt() {
    return this.thirdOrderTxt;
  }
  
  // getter of 条件文
  public String getCondtionSQL() {
    return this.conditionSQL;
  }
  
  // getter of 並び順文
  public String getOrderBySQL() {
    return this.orderBySQL;
  }
  
  // getter of おすすめフラグ
  public String getAdviceFlgRdo() {
    return this.adviceFlgRdo;
  }
  
  // 会員割引
  public String getMemberDiscountFlgRdo() {
    return this.memberDiscountFlgRdo;
  }
  
  // 予約販売
  public String getRsrvEnableFlgRdo() {
    return this.rsrvEnableFlgRdo;
  }
  
  // 在庫切れ販売
  public String getNoStockFlgRdo() {
    return this.noStockFlgRdo;
  }
  
  // 検索フラグ
  public boolean getSearchFlg() {
    return this.searchFlg;
  }
  
  // getter of その他販売表示区分
  public String getOtherOrderFlg() {
    return this.otherOrderFlg;
  }
  
  // 7.2.0 ST1030追加ここから
  // getter of form名
  public String getFormName() {
    return this.formNameTxt;
  }
  
  // getter of inputCmdty名
  public String getInputCmdtyName() {
    return this.inputCmdtyTxt;
  }
  
  // 7.2.0 ST1030追加ここまで
  
  // 7.3.0 0501 追加 ここから
  // getter of 送料種別
  public String getDeliveryTypeCode() {
    return deliveryTypeCodeRdo;
  }
  
  // setter of 送料種別
  public void setDeliveryTypeCode(String deliveryTypeCode) {
    this.deliveryTypeCodeRdo = deliveryTypeCode;
  }
  
  // getter of 在庫コード
  public String getIndividualCodeTxt() {
    return individualCodeTxt;
  }
  
  // setter of 在庫コード
  public void setIndividualCodeTxt(String individualCodeTxt) {
    this.individualCodeTxt = individualCodeTxt;
  }
  
  // getter of 中古新品フラグ
  public String getUsedNewFlg() {
    return usedNewFlg;
  }
  
  // setter of 中古新品フラグ
  public void setUsedNewFlg(String usedNewFlg) {
    this.usedNewFlg = usedNewFlg;
  }
  
  // setter of 商品コード
  public void setCmdtyCodeTxt(String lCmdtyCodeTxt) {
    if (SIUtil.isNull(lCmdtyCodeTxt)) lCmdtyCodeTxt = "";
    this.cmdtyCodeTxt = SIUtil.changeTo(lCmdtyCodeTxt.trim(), this.encode);
  }
  
  // getter of 商品コード
  public String getCmdtyCodeTxt() {
    return this.cmdtyCodeTxt;
  }
  
  // setter of 前頁
  public void setPrevPage(String lPrevPage) {
    if (SIUtil.isNull(lPrevPage)) lPrevPage = "";
    this.prevPage = SIUtil.changeTo(lPrevPage.trim(), this.encode);
  }
  
  // getter of 前頁
  public String getPrevPage() {
    return this.prevPage;
  }
  
  // setter of 前表示件数
  public void setPrevSize(String lPrevSize) {
    if (SIUtil.isNull(lPrevSize)) lPrevSize = "";
    this.prevSize = SIUtil.changeTo(lPrevSize.trim(), this.encode);
  }
  
  // getter of 前表示件数
  public String getPrevSize() {
    return this.prevSize;
  }
  
  // setter of 色コード
  public void setColorCode(String lColorCode) {
    if (lColorCode == null) lColorCode = "";
    this.colorCode = lColorCode;
  }
  
  // setter of カテゴリコード
  public void setCtgryCode(String lCtgryCode) {
    if (lCtgryCode == null) lCtgryCode = "";
    this.ctgryCode = lCtgryCode;
  }
  
  // setter of ブランド名
  public void setMakerName(String lMakerName) {
    if (lMakerName == null) lMakerName = "";
    this.makerName = lMakerName;
  }
  
  // getter of 色コード
  public String getColorCode() {
    return this.colorCode;
  }
  
  // getter of カテゴリコード
  public String getCtgryCode() {
    return this.ctgryCode;
  }
  
  // getter of ブランド名
  public String getMakerName() {
    return this.makerName;
  }
  
  //getter of janCodeIndividual
  public String getJanCodeIndividual() {
    return this.janCodeIndividual;
  }
  
  //setter of janCodeIndividual
  public void setJanCodeIndividual(String janCodeIndividual) {
    if (SIUtil.isNull(janCodeIndividual)) janCodeIndividual = "";
    this.janCodeIndividual = SIUtil.changeTo(janCodeIndividual.trim(), this.encode);
  }
  
  //getter of disableFlg
  public String getDisableFlg() {
    return this.disableFlg;
  }
  
  //setter of disableFlg
  public void setDisableFlg(String disableFlg) {
    if (SIUtil.isNull(disableFlg)) disableFlg = "";
    this.disableFlg = SIUtil.changeTo(disableFlg.trim(), this.encode);
  }
  
  public String getCampaignFlg() {
    return campaignFlg;
  }
  
  public void setCampaignFlg(String campaignFlg) {
    if (SIUtil.isNull(campaignFlg)) campaignFlg = "0";
    this.campaignFlg = campaignFlg;
  }
  
  public String getPriceDownFlg() {
    return priceDownFlg;
  }
  
  public void setPriceDownFlg(String priceDownFlg) {
    if (SIUtil.isNull(priceDownFlg)) priceDownFlg = "0";
    this.priceDownFlg = priceDownFlg;
  }
  
  public String getFrontDispFlgRdo() {
    return frontDispFlgRdo;
  }
  
  public String getStockNameCbo() {
    return stockNameCbo;
  }
  
  public void setFrontDispFlgRdo(String frontDispFlgRdo) {
    if (SIUtil.isNull(frontDispFlgRdo)) frontDispFlgRdo = "";
    this.frontDispFlgRdo = frontDispFlgRdo;
  }
  
  public void setStockNameCbo(String stockNameCbo) {
    if (SIUtil.isNull(stockNameCbo)) stockNameCbo = "";
    this.stockNameCbo = stockNameCbo;
  }
  
  public String getOtherNameTxt() {
    return otherNameTxt;
  }
  
  public void setOtherNameTxt(String otherNameTxt) {
    if (SIUtil.isNull(otherNameTxt)) otherNameTxt = "";
    this.otherNameTxt = otherNameTxt;
  }
  
  /**
   * <b>init</b> 入力したデータを基づいて、このbeansを設定します。
   * 
   * @param request クライアントからリクエスト
   * @param lUrlParam
   * @return なし
   * @throws なし
   */
  // 7.1.1 ST0236 修正 ここから
  public void init(HttpServletRequest lRequest, SIURLParameter lUrlParam) {
    SILogin lLogin = SIHTMLUtil.getLogin(lRequest);
    
    this.setEncode(SIConfig.SIENCODE_SHIFT_JIS);
    super.init(lRequest, lUrlParam);// 7.1.1 ST0236 修正
    this.setFirstOrderTxt((String) lUrlParam.getParam("firstOrderTxt"));
    this.setFirstOrderSel((String) lUrlParam.getParam("firstOrderSel"));
    this.setCmdtyCodeFromTxt((String) lUrlParam.getParam("cmdtyCodeFromTxt"));// 7.2.0 ST0339 修正
    this.setCmdtyCodeTxt((String) lUrlParam.getParam("cmdtyCodeTxt"));
    this.setIndividualCodeTxt((String) lUrlParam.getParam("individualCodeTxt"));
    this.setUsedNewFlg((String) lUrlParam.getParam("usedNewFlg"));
    this.setCmdtyNameTxt((String) lUrlParam.getParam("cmdtyNameTxt"));
    this.setTotalFromTxt((String) lUrlParam.getParam("totalFromTxt"));
    this.setTotalToTxt((String) lUrlParam.getParam("totalToTxt"));
    this.setUnitPriceFromTxt((String) lUrlParam.getParam("unitPriceFromTxt"));
    this.setUnitPriceToTxt((String) lUrlParam.getParam("unitPriceToTxt"));
    this.setStockUnitPriceFromTxt((String) lUrlParam.getParam("stockUnitPriceFromTxt"));
    this.setStockUnitPriceToTxt((String) lUrlParam.getParam("stockUnitPriceToTxt"));
    if (lLogin.isShop()) {
      this.setShopCodeTxt(lLogin.getMallShopCode());
    } else {
      this.setShopCodeTxt((String) lUrlParam.getParam("shopCodeTxt"));
    }
    this.setSecondOrderTxt((String) lUrlParam.getParam("secondOrderTxt"));
    this.setSecondOrderSel((String) lUrlParam.getParam("secondOrderSel"));
    this.setThirdOrderTxt((String) lUrlParam.getParam("thirdOrderTxt"));
    this.setThirdOrderSel((String) lUrlParam.getParam("thirdOrderSel"));
    this.setAdviceFlgRdo((String) lUrlParam.getParam("adviceFlgRdo"));
    this.setMemberDiscountFlgRdo((String) lUrlParam.getParam("memberDiscountFlgRdo"));
    this.setRsrvEnableFlgRdo((String) lUrlParam.getParam("rsrvEnableFlgRdo"));
    this.setWrappingFlgRdo((String) lUrlParam.getParam("wrappingFlgRdo"));
    this.setNoStockFlgRdo((String) lUrlParam.getParam("noStockFlgRdo"));
    // 7.2.0 ST1030 追加ここから
    this.setFormName((String) lUrlParam.getParam("formNameTxt"));
    this.setInputCmdtyName((String) lUrlParam.getParam("inputCmdtyNameTxt"));
    // 7.2.0 ST1030 追加ここまで
    this.setDeliveryTypeCode((String) lUrlParam.getParam("deliveryTypeCodeRdo"));
    this.setOtherOrderFlg((String) lUrlParam.getParam("otherOrderFlg"));
    this.setOtherNameTxt((String) lUrlParam.getParam("otherNameTxt"));
    
    // EDBTG003-00 elecs-matsushima add start
    this.setCmdtySetTypeFlg((String) lUrlParam.getParam("cmdtySetTypeFlg"));
    this.setCmdtySearhSetFlg((String) lUrlParam.getParam("cmdtySearhSetFlg"));
    this.setCmdtyPointSearchFlg((String) lUrlParam.getParam("pflg"));
    // EDBTG003-00 elecs-matsushima add end
    this.setStorageCode((String) lUrlParam.getParam("storageCodeTxt"));
  }
  
  // 7.1.1 ST0236 修正 ここまで
  
  public void initSearch(HttpServletRequest lRequest, SIURLParameter lUrlParam) {
    SILogin lLogin = SIHTMLUtil.getLogin(lRequest);
    
    this.setEncode(SIConfig.SIENCODE_SHIFT_JIS);
    super.init(lRequest, lUrlParam);// 7.1.1 ST0236 修正
    this.setFirstOrderTxt((String) lUrlParam.getParam("firstOrderTxt"));
    this.setFirstOrderSel((String) lUrlParam.getParam("firstOrderSel"));
    this.setCmdtyCodeFromTxt((String) lUrlParam.getParam("cmdtyCodeFromTxt"));// 7.2.0 ST0339 修正
    this.setCmdtyCodeToTxt((String) lUrlParam.getParam("cmdtyCodeToTxt"));// 7.2.0 ST0339 追加
    this.setCmdtyNameTxt((String) lUrlParam.getParam("cmdtyNameTxt"));
    this.setTotalFromTxt((String) lUrlParam.getParam("totalFromTxt"));
    this.setTotalToTxt((String) lUrlParam.getParam("totalToTxt"));
    this.setUnitPriceFromTxt((String) lUrlParam.getParam("unitPriceFromTxt"));
    this.setUnitPriceToTxt((String) lUrlParam.getParam("unitPriceToTxt"));
    this.setStockUnitPriceFromTxt((String) lUrlParam.getParam("stockUnitPriceFromTxt"));
    this.setStockUnitPriceToTxt((String) lUrlParam.getParam("stockUnitPriceToTxt"));
    if (lLogin.isShop()) {
      this.setShopCodeTxt(lLogin.getMallShopCode());
    } else {
      this.setShopCodeTxt((String) lUrlParam.getParam("shopCodeTxt"));
    }
    this.setSecondOrderTxt((String) lUrlParam.getParam("secondOrderTxt"));
    this.setSecondOrderSel((String) lUrlParam.getParam("secondOrderSel"));
    this.setThirdOrderTxt((String) lUrlParam.getParam("thirdOrderTxt"));
    this.setThirdOrderSel((String) lUrlParam.getParam("thirdOrderSel"));
    this.setAdviceFlgRdo((String) lUrlParam.getParam("adviceFlgRdo"));
    this.setMemberDiscountFlgRdo((String) lUrlParam.getParam("memberDiscountFlgRdo"));
    this.setRsrvEnableFlgRdo((String) lUrlParam.getParam("rsrvEnableFlgRdo"));
    this.setWrappingFlgRdo((String) lUrlParam.getParam("wrappingFlgRdo"));
    this.setNoStockFlgRdo((String) lUrlParam.getParam("noStockFlgRdo"));
    // 7.2.0 ST1030 追加ここから
    this.setFormName((String) lUrlParam.getParam("formNameTxt"));
    this.setInputCmdtyName((String) lUrlParam.getParam("inputCmdtyNameTxt"));
    // 7.2.0 ST1030 追加ここまで
    this.setDeliveryTypeCode((String) lUrlParam.getParam("deliveryTypeCodeRdo"));
    this.setPrevPage((String) lUrlParam.getParam("prevPage"));// 7.3.0 PI-NES0501 追加
    this.setPrevSize((String) lUrlParam.getParam("prevSize"));// 7.3.0 PI-NES0501 追加
    this.setMakerName((String) lUrlParam.getParam("makerNameTxt"));// 7.3.0 PI-NES0501 追加
    this.setCtgryCode((String) lUrlParam.getParam("ctgryCodeTxt"));// 7.3.0 PI-NES0501 追加
    this.setOtherOrderFlg((String) lUrlParam.getParam("otherOrderFlg"));
    this.setJanCodeIndividual((String) lUrlParam.getParam("janCodeIndividual"));
    this.setDisableFlg((String) lUrlParam.getParam("disableFlgTxt"));
    this.setCampaignFlg((String) lUrlParam.getParam("campaignFlg"));
    this.setPriceDownFlg((String) lUrlParam.getParam("priceDownFlg"));
    this.setFrontDispFlgRdo((String) lUrlParam.getParam("frontDispFlgRdo"));
    this.setStockNameCbo((String) lUrlParam.getParam("stockNameCbo"));
    this.setOtherNameTxt((String) lUrlParam.getParam("otherNameTxt"));
    
    // EDBTG003-00 elecs-matsushima add start
    this.setCmdtySetTypeFlg((String) lUrlParam.getParam("cmdtySetTypeFlg"));
    this.setCmdtySearhSetFlg((String) lUrlParam.getParam("cmdtySearhSetFlg"));
    this.setCmdtyPointSearchFlg((String) lUrlParam.getParam("pflg"));
    // EDBTG003-00 elecs-matsushima add end
    this.setStorageCode((String) lUrlParam.getParam("storageCodeTxt"));
  }
  
  /**
   * <b>initDelete</b> 削除の対象データを設定します。
   * 
   * @param request データベースへのコネンクション
   * @return なし
   * @throws なし
   */
  public void initDelete(HttpServletRequest lRequest) {
    this.setCmdtyStndrdCodeChk(lRequest.getParameterValues("cmdtyStndrdCodeChk"));
  }
  
  /**
   * <b>getCollection</b> 条件に合ったレコードを検索して、結果のコネクションを作成して、戻します。
   * 
   * @param lConnection データベースへの接続コネクション
   * @param SILogin ログイン者情報をセットしたBean
   * @return レコードのセット
   * @throws なし
   */
  public Collection getCollection(Connection lConnection, SILogin lLogin) throws SIDBAccessException {
    Statement lStatement = null;
    ResultSet lResultSet = null;
    SICmdty lCmdty = new SICmdty();
    StringBuffer lCountSqlBuf = new StringBuffer();// レコード数を求める
    StringBuffer lCmdtySqlBuf = new StringBuffer();// 商品レコード情報リストを求める
    StringBuffer lCommonSqlBuf = new StringBuffer();// 共通条件のSQL文
    
    Collection lCmdtys = new ArrayList();
    
    if (!this.searchFlg) { return lCmdtys; }
    
    // 基本のSQL
    lCmdtySqlBuf.append("SELECT aa.cmdtycode, c1.MakerName, aa.cmdtyname ,b1.colorName,ss.amount ");
    // EDBTG003-00 elecs-matsushima add start
    lCmdtySqlBuf.append(",aa.cmdtycompositionflg ");
    // EDBTG003-00 elecs-matsushima add end
    lCmdtySqlBuf.append("FROM cmdtymtbl aa ");
    lCmdtySqlBuf.append("LEFT OUTER JOIN(SELECT cmdtycode,sum(amount) AS amount FROM storestocktbl GROUP BY cmdtycode) ss ");
    lCmdtySqlBuf.append("ON aa.cmdtycode = ss.cmdtycode ");
    lCmdtySqlBuf.append(",colortbl b1,makertbl c1 ");
    lCmdtySqlBuf.append("WHERE aa.colorcode= b1.colorcode ");
    lCmdtySqlBuf.append("AND aa.makercode = c1.makercode ");
    
    lCountSqlBuf.append("SELECT count(aa.cmdtycode) ");
    lCountSqlBuf.append("FROM cmdtymtbl aa ,colortbl b1,makertbl c1 ");
    lCountSqlBuf.append("WHERE aa.colorcode= b1.colorcode ");
    lCountSqlBuf.append("AND aa.makercode = c1.makercode ");
    
    // 検索の条件
    lCommonSqlBuf.append(this.conditionSQL);
    
    // レコード数の取得
    lCountSqlBuf.append(lCommonSqlBuf);
    
    // 出力順
    lCommonSqlBuf.append(this.getOrderBySQL());
    lCmdtySqlBuf.append(lCommonSqlBuf);
    
    // 実行
    try {
      String rowCnt = SIDBUtil.getFirstData(lConnection, lCountSqlBuf.toString());
      if (rowCnt.equals("") || rowCnt == null) {
        rowCnt = "0";
      }
      int lRecordCount = Integer.parseInt(rowCnt);// レコード数の取得
      
      int lPageSize = this.getPageSize();// ページサイズ
      int lPageNumber = this.getPageNumer();// ページ番号
      
      int lMaxPage = lRecordCount / lPageSize;
      if (lRecordCount % lPageSize > 0) {
        lMaxPage++;
      }
      if (lPageNumber > lMaxPage) lPageNumber = lMaxPage;
      
      // 開始レコードの番号の設定
      int lFromInx = (lPageNumber - 1) * lPageSize;
      // 終止のレコード番号の設定
      int lToInx = lFromInx + lPageSize - 1;
      if (lFromInx < 0) lFromInx = 0;
      if (lToInx < 0) lToInx = 0;
      
      log.debug("getCollection:lFromInx=" + lFromInx + ",lToInx=" + lToInx + ",lRecordCount=" + lRecordCount);
      
      log.debug("getCollection:lCmdtySqlBuf=" + lCmdtySqlBuf.toString());
      lStatement = lConnection.createStatement();
      lCmdtySqlBuf.append(" LIMIT ").append(lPageSize);
      if(lFromInx>0) lCmdtySqlBuf.append(" OFFSET ").append(lFromInx);
      lResultSet = lStatement.executeQuery(lCmdtySqlBuf.toString());
      
      for (int jj = 0; jj < lFromInx; jj++)
        lCmdtys.add(null);
      
      // 商品レコードのセットの作成
      int lIndex = 0;
      
      // 商品レコードのセットの作成
      while (lResultSet.next() && lIndex < lPageSize) {
        lCmdty = new SICmdty();
        lCmdty.setEncode(SIConfig.SIENCODE_NONE);
        lCmdty.setShopCode("0");
        lCmdty.setCmdtyCode(lResultSet.getString("CmdtyCode"));
        lCmdty.setCmdtyName(lResultSet.getString("CmdtyName"));
        lCmdty.setMakerName(lResultSet.getString("MakerName"));
        lCmdty.setColorName(lResultSet.getString("ColorName"));
        lCmdty.setAmount(lResultSet.getString("Amount"));
        lCmdty.setHasStndrd("0");
        if (SICmdtyCtgry.hasCtgry(lConnection, lCmdty.getShopCode(), lCmdty.getCmdtyCode())) {
          lCmdty.setHasCtgry("1");
        } else {
          lCmdty.setHasCtgry("0");
        }
        if (SIConnCmdty.hasConnCmdty(lConnection, lCmdty.getShopCode(), lCmdty.getCmdtyCode())) {
          lCmdty.setHasConn("1");
        } else {
          lCmdty.setHasConn("0");
        }
        
        // EDBTG003-00 elecs-matsushima add start
        lCmdty.setCmdtyCompositionFlg(lResultSet.getString("cmdtycompositionflg"));
        
        // 構成商品時は在庫コードを取得する
        if (lCmdty.isCmdtyComposition()){
          StringBuffer individualSqlBuf  = new StringBuffer();// 共通条件のSQL文
          
          individualSqlBuf.append("SELECT individualcode ");
          individualSqlBuf.append(" FROM individualtbl ");
          individualSqlBuf.append(" WHERE cmdtycode = ").append(SIDBUtil.SQL2Str(lCmdty.getCmdtyCode()));
          
          lCmdty.setIndividualCode(SIDBUtil.getFirstData(lConnection, individualSqlBuf.toString()));
        }
        // EDBTG003-00 elecs-matsushima add end
        
        lCmdtys.add(lCmdty);
        lIndex++;
      }
      for (int jj = lFromInx + lPageSize; jj < lRecordCount; jj++)
        lCmdtys.add(null);
      
    } catch (SQLException ex) {
      ex.printStackTrace();
      throw new SIDBAccessException(ex);
    } finally {
      SIDBUtil.close(lResultSet, lStatement);
    }
    return lCmdtys;
  }
  
  // 7.3.0 PI-NES5051 修正 ここまで
  
  // 7.2.0 ST1030 追加ここから
  /**
   * <b>getCmdtyCollection</b> 条件に合ったレコードを検索して、結果のコネクションを作成して、戻します。
   * 
   * @param lConnection データベースへの接続コネクション
   * @param SILogin ログイン者情報をセットしたBean
   * @return レコードのセット
   * @throws なし
   */
  public Collection getCmdtyCollection(Connection lConnection, SILogin lLogin, String lCmdtyCode, String lIndividualCode) throws SIDBAccessException {
    Statement lStatement = null;
    ResultSet lResultSet = null;
    SICmdty lCmdty = new SICmdty();
    StringBuffer lCountSqlBuf = new StringBuffer();// レコード数を求める
    StringBuffer lCmdtySqlBuf = new StringBuffer();// 商品レコード情報リストを求める
    StringBuffer lCommonSqlBuf = new StringBuffer();// 共通条件のSQL文
    
    Collection lCmdtys = new ArrayList();
    
    if (!this.searchFlg) { return lCmdtys; }
    
    if (SIUtil.isNotNull(lCmdtyCode)) {
      // this.conditionSQL=this.conditionSQL + " AND CmdtyCode >="+SIDBUtil.SQL2Str(lCmdtyCode," ");
      this.conditionSQL = this.conditionSQL + " AND CmdtyCode like '" + lCmdtyCode + "%' ";
    }
    if (SIUtil.isNotNull(lIndividualCode)) {
      this.conditionSQL = this.conditionSQL + " AND individualcode like '" + lIndividualCode + "%' ";
    }
    
    // 基本のSQL
    lCmdtySqlBuf.append("SELECT * FROM ManCmdtyVW ");
    lCountSqlBuf.append("SELECT Count(CmdtyCode) FROM ManCmdtyVW ");
    
    if (lLogin.isShop()) {
      lCommonSqlBuf.append("WHERE ShopCode=" + SIDBUtil.SQL2Str(lLogin.getMallShopCode(), " "));
    } else {
      lCommonSqlBuf.append("WHERE 1=1 ");
    }
    // 検索の条件
    lCommonSqlBuf.append(this.conditionSQL);
    lCountSqlBuf.append(lCommonSqlBuf);
    
    // 出力順
    lCommonSqlBuf.append(this.getOrderBySQL());
    lCmdtySqlBuf.append(lCommonSqlBuf);
    
    // 実行
    try {
      int lRecordCount = Integer.parseInt(SIDBUtil.getFirstData(lConnection, lCountSqlBuf.toString()));// レコード数の取得
      
      int lPageSize = this.getPageSize();// ページサイズ
      int lPageNumber = this.getPageNumer();// ページ番号
      
      int lMaxPage = lRecordCount / lPageSize;
      if (lRecordCount % lPageSize > 0) {
        lMaxPage++;
      }
      if (lPageNumber > lMaxPage) lPageNumber = lMaxPage;
      
      // 開始レコードの番号の設定
      int lFromInx = (lPageNumber - 1) * lPageSize;
      // 終止のレコード番号の設定
      int lToInx = lFromInx + lPageSize - 1;
      if (lFromInx < 0) lFromInx = 0;
      if (lToInx < 0) lToInx = 0;
      
      log.debug("getCollection:lFromInx=" + lFromInx + ",lToInx=" + lToInx + ",lRecordCount=" + lRecordCount);
      
      log.debug("getCollection:lCmdtySqlBuf=" + lCmdtySqlBuf.toString());
      lStatement = lConnection.createStatement();
      lCmdtySqlBuf.append(" LIMIT ").append(lPageSize);
      if(lFromInx>0) lCmdtySqlBuf.append(" OFFSET ").append(lFromInx);
      lResultSet = lStatement.executeQuery(lCmdtySqlBuf.toString());
      
      for (int jj = 0; jj < lFromInx; jj++)
        lCmdtys.add(null);
      
      // 商品レコードのセットの作成
      int lIndex = 0;
      
      // 商品レコードのセットの作成
      while (lResultSet.next() && lIndex < lPageSize) {
        lCmdty = new SICmdty();
        lCmdty.setEncode(SIConfig.SIENCODE_NONE);
        lCmdty.setShopCode(lResultSet.getString("ShopCode"));
        lCmdty.setCmdtyCode(lResultSet.getString("CmdtyCode"));
        lCmdty.setIndividualCode(lResultSet.getString("individualcode"));
        lCmdty.setCmdtyName(lResultSet.getString("CmdtyName"));
        lCmdty.setUnitPrice(lResultSet.getString("UnitPrice"));
        lCmdty.setStockUnitPrice(lResultSet.getString("StockUnitPrice"));
        lCmdty.setAmount(lResultSet.getString("Amount"));
        lCmdty.setSubTotal(lResultSet.getString("SubTotal"));
        lCmdty.setTotal(lResultSet.getString("Total"));
        lCmdty.setAdviceFlg(lResultSet.getString("AdviceFlg"));
        lCmdty.setMemberDiscountFlg(lResultSet.getString("MemberDiscountFlg"));
        lCmdty.setRsrvEnableFlg(lResultSet.getString("RsrvEnableFlg"));
        lCmdty.setNoStockFlg(lResultSet.getString("NoStockFlg"));
        if (SICmdtyStndrd.hasStndrd(lConnection, lCmdty.getShopCode(), lCmdty.getCmdtyCode())) {
          lCmdty.setHasStndrd("1");
        } else {
          lCmdty.setHasStndrd("0");
        }
        if (SICmdtyCtgry.hasCtgry(lConnection, lCmdty.getShopCode(), lCmdty.getCmdtyCode())) {
          lCmdty.setHasCtgry("1");
        } else {
          lCmdty.setHasCtgry("0");
        }
        if (SIConnCmdty.hasConnCmdty(lConnection, lCmdty.getShopCode(), lCmdty.getCmdtyCode())) {
          lCmdty.setHasConn("1");
        } else {
          lCmdty.setHasConn("0");
        }
        lCmdtys.add(lCmdty);
        lIndex++;
      }
      for (int jj = lFromInx + lPageSize; jj < lRecordCount; jj++)
        lCmdtys.add(null);
      
    } catch (SQLException ex) {
      ex.printStackTrace();
      throw new SIDBAccessException(ex);
    } finally {
      SIDBUtil.close(lResultSet, lStatement);
    }
    return lCmdtys;
  }
  
  // 7.2.0 ST1030 追加ここまで
  
  public Collection getCmdtyCollection(Connection lConnection, SILogin lLogin) throws SIDBAccessException {
    Statement lStatement = null;
    ResultSet lResultSet = null;
    SICmdty lCmdty = new SICmdty();
    StringBuffer lCountSqlBuf = new StringBuffer();// レコード数を求める
    StringBuffer lCmdtySqlBuf = new StringBuffer();// 商品レコード情報リストを求める
    StringBuffer lCommonSqlBuf = new StringBuffer();// 共通条件のSQL文
    
    Collection lCmdtys = new ArrayList();
    
    lCmdtySqlBuf.append("SELECT a1.ShopCode,a1.cmdtycode,a1.individualcode,a1.cmdtyname,a1.usedNewFlg,a1.taxFlg,a1.unitprice, a1.amountFlg,");
    lCmdtySqlBuf.append(" b1.colorname,COALESCE((SELECT TaxRate FROM TaxVW),0) AS TaxRate ");
    lCmdtySqlBuf.append(" FROM cmdtyunittbl a1,colortbl b1 WHERE a1.colorcode=b1.colorcode AND shopCode='0' ");
    
    lCountSqlBuf.append("SELECT count(a1.individualcode) ");
    lCountSqlBuf.append(" FROM cmdtyunittbl a1 WHERE shopCode='0' ");
    
    lCommonSqlBuf.append(this.conditionSQL);
    if (SIUtil.isNotNull(this.cmdtyCodeTxt)) {
      lCommonSqlBuf.append(" AND CmdtyCode LIKE '").append(this.cmdtyCodeTxt).append("%' ");
    }
    if (SIUtil.isNotNull(this.individualCodeTxt)) {
      lCommonSqlBuf.append(" AND individualcode LIKE '").append(this.individualCodeTxt).append("%' ");
    }
    if (lLogin.isShop()) {
      lCommonSqlBuf.append(" AND shopCode = ").append(SIDBUtil.SQL2Str(lLogin.getMallShopCode(), " "));
    }
    
    // EDBTG003-00 elecs-matsushima add start
    if (SIUtil.isNotNull(getCmdtySearhSetFlg())){
      if (getCmdtySearhSetFlg().equals("1")) {
        lCommonSqlBuf.append(" AND ( ");
        lCommonSqlBuf.append("   cmdtycompositionflg in (");
        lCommonSqlBuf.append(SIDBUtil.SQL2Str(SIConfig.CMDTY_COMPOSITION_VARIATION_SET, ", "));
        lCommonSqlBuf.append(SIDBUtil.SQL2Str(SIConfig.CMDTY_COMPOSITION_SELECTION_SET, ", "));
        lCommonSqlBuf.append(SIDBUtil.SQL2Str(SIConfig.CMDTY_COMPOSITION_FIXED_SET, ", "));
        lCommonSqlBuf.append(SIDBUtil.SQL2Str(SIConfig.CMDTY_COMPOSITION_SPECIFICATION, " "));
        lCommonSqlBuf.append("   )");
        lCommonSqlBuf.append(" )");
      } else if (getCmdtySearhSetFlg().equals("0")) {
        lCommonSqlBuf.append(" AND cmdtycompositionflg = ").append(SIDBUtil.SQL2Str(SIConfig.CMDTY_COMPOSITION_NORMAL, " "));
      }
    }
    // EDBTG003-00 elecs-matsushima add end
    
    lCmdtySqlBuf.append(lCommonSqlBuf);
    lCountSqlBuf.append(lCommonSqlBuf);
    
    //EDBTG003-00 ohsugi mod start
//    lCmdtySqlBuf.append(" ORDER BY to_number(a1.cmdtycode,'9999999999999'),a1.individualCode");
    lCmdtySqlBuf.append(" ORDER BY to_number(a1.cmdtycode,'9999999999999') DESC,a1.individualCode DESC");
    //EDBTG003-00 ohsugi mod end
    // 出力順
    log.debug("lSqlBuf=" + lCmdtySqlBuf.toString());
    // 実行
    try {
      int lRecordCount = Integer.parseInt(SIDBUtil.getFirstData(lConnection, lCountSqlBuf.toString()));// レコード数の取得
      
      int lPageSize = this.getPageSize();// ページサイズ
      int lPageNumber = this.getPageNumer();// ページ番号
      
      int lMaxPage = lRecordCount / lPageSize;
      if (lRecordCount % lPageSize > 0) {
        lMaxPage++;
      }
      if (lPageNumber > lMaxPage) lPageNumber = lMaxPage;
      
      // 開始レコードの番号の設定
      int lFromInx = (lPageNumber - 1) * lPageSize;
      // 終止のレコード番号の設定
      int lToInx = lFromInx + lPageSize - 1;
      if (lFromInx < 0) lFromInx = 0;
      if (lToInx < 0) lToInx = 0;
      
      log.debug("getCollection:lFromInx=" + lFromInx + ",lToInx=" + lToInx + ",lRecordCount=" + lRecordCount);
      
      log.debug("getCollection:lCmdtySqlBuf=" + lCmdtySqlBuf.toString());
      lStatement = lConnection.createStatement();
      lCmdtySqlBuf.append(" LIMIT ").append(lPageSize);
      if(lFromInx>0) lCmdtySqlBuf.append(" OFFSET ").append(lFromInx);
      lResultSet = lStatement.executeQuery(lCmdtySqlBuf.toString());
      
      for (int jj = 0; jj < lFromInx; jj++)
        lCmdtys.add(null);
      int lIndex = 0;
      
      // 商品レコードのセットの作成
      while (lResultSet.next() && lIndex < lPageSize) {
        lCmdty = new SICmdty();
        lCmdty.setEncode(SIConfig.SIENCODE_NONE);
        lCmdty.setShopCode(lResultSet.getString("ShopCode"));
        lCmdty.setCmdtyCode(lResultSet.getString("CmdtyCode"));
        lCmdty.setIndividualCode(lResultSet.getString("IndividualCode"));
        lCmdty.setCmdtyName(lResultSet.getString("CmdtyName"));
        lCmdty.setUsedNewFlg(lResultSet.getInt("UsedNewFlg"));
        lCmdty.setColorName(lResultSet.getString("ColorName"));
        lCmdty.setUnitPrice(lResultSet.getString("unitprice"));
        lCmdty.setTaxFlg(lResultSet.getString("taxFlg"));// 税区分
        lCmdty.setTaxRate(lResultSet.getString("taxRate"));// 税率
        lCmdty.setAmountFlg(lResultSet.getString("amountFlg"));
        lCmdty.setAmount(SIBGUtil.getCmdtyAmount(lConnection, lCmdty.getCmdtyCode(), lCmdty.getIndividualCode()));
        lCmdty.setBranchName(SIBGUtil.getBranch(lConnection, lCmdty.getCmdtyCode(), lCmdty.getIndividualCode()));
        
        // EDBTG003-00 elecs-matsushima add start
        if (SIUtil.isNotNull(getCmdtyPointSearchFlg()) && getCmdtyPointSearchFlg().equals("1")){
          UIRegPointIndividual regPointIndividual = new UIRegPointIndividual();
          lCmdty.setPointRate(regPointIndividual.getCmdtyPointRate(lConnection, lCmdty.getCmdtyCode(), lCmdty.getIndividualCode()));
        }
        // EDBTG003-00 elecs-matsushima add end
        
        lCmdtys.add(lCmdty);
        lIndex++;
      }
      for (int jj = lFromInx + lPageSize; jj < lRecordCount; jj++)
        lCmdtys.add(null);
      
    } catch (Exception ex) {
      throw new SIDBAccessException(ex);
    } finally {
      SIDBUtil.close(lResultSet, lStatement);
    }
    return lCmdtys;
  }
  
  /**
   * <b>getCollection</b> 条件に合ったレコードを検索して、結果のコネクションを作成して、戻します。
   * 
   * @param lConnection データベースへの接続コネクション
   * @return レコードのセット
   * @throws なし
   */
  public Collection getCollection(Connection lConnection) throws SIDBAccessException {
    return getCollection(lConnection, new SILogin());
  }
  
  /**
   * <b>validate</b> 入力したデータをチェックして、同時にSQLの条件文を作成します。
   * 
   * @param lRequest クライアントからのリクエスト
   * @return なし
   * @throws なし
   */
  public void validate(HttpServletRequest lRequest) {
    SICustomErrors errors = new SICustomErrors();
    SITableConditionManager lConditionMan = new SITableConditionManager();
    
    // 在庫コード
    SICheckValid.checkValid(errors, "在庫コード", this.cmdtyCodeFromTxt, SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE);
    
    // 在庫コードFromチェック&その他販売表示
    StringBuffer str = new StringBuffer();
    String append = "";
    
    // EDBTG003-00 elecs-matsushima add start
    if (SIUtil.isNotNull(this.getCmdtySetTypeFlg())){
      SICheckValid.checkValid(errors, "商品種別", this.getCmdtySetTypeFlg(), SICheckDataConf.SICHECK_FLAG_TYPE, SIFlagConf.SIFLAG_CMDTY_SECTION_FLG_INX);
      
      if (getCmdtySetTypeFlg().equals("1")) {
        str.append(" AND ( ");
        str.append("   aa.cmdtycompositionflg in (");
        str.append(SIDBUtil.SQL2Str(SIConfig.CMDTY_COMPOSITION_VARIATION_SET, ", "));
        str.append(SIDBUtil.SQL2Str(SIConfig.CMDTY_COMPOSITION_SELECTION_SET, ", "));
        str.append(SIDBUtil.SQL2Str(SIConfig.CMDTY_COMPOSITION_FIXED_SET, ", "));
        str.append(SIDBUtil.SQL2Str(SIConfig.CMDTY_COMPOSITION_SPECIFICATION, " "));
        str.append("   )");
        str.append(" )");
      } else if (getCmdtySetTypeFlg().equals("0")) {
        lConditionMan.add(new SITableCondition("aa", "cmdtycompositionflg", SIConfig.CMDTY_COMPOSITION_NORMAL, SIConfig.SICONDITION_TYPE_EQUAL, SIConfig.SICONDITION_TYPE_AND));
      }
    }
    // EDBTG003-00 elecs-matsushima add end
    
    // その他商品削除
    if (SIUtil.isNotNull(this.cmdtyCodeFromTxt)) {
      if (SIUtil.isNotNull(this.otherOrderFlg) && this.otherOrderFlg.equals("0")) {
        str.append(" AND aa.cmdtycode IN (SELECT cmdtycode FROM individualtbl WHERE individualcode LIKE '");
        //str.append(SIDBUtil.SQL2Like(this.cmdtyCodeFromTxt)).append("%' AND individualcode NOT LIKE 'HG%' AND individualcode NOT LIKE 'AF%' AND individualcode NOT LIKE 'OT%' ");
        str.append(SIDBUtil.SQL2Like(this.cmdtyCodeFromTxt)).append("%' ");
      } else {
        str.append(" AND aa.cmdtycode IN (SELECT cmdtycode FROM individualtbl WHERE individualcode LIKE '");
        str.append(SIDBUtil.SQL2Like(this.cmdtyCodeFromTxt)).append("%' AND (individualcode LIKE 'HG%' OR individualcode LIKE 'AF%' OR individualcode LIKE 'OT%') ");
      }
    } else {
      if (SIUtil.isNotNull(this.otherOrderFlg) && this.otherOrderFlg.equals("0")) {
        //str.append(" AND (aa.cmdtycode IN (SELECT cmdtycode FROM individualtbl WHERE individualcode NOT LIKE 'HG%' AND individualcode NOT LIKE 'AF%' AND individualcode NOT LIKE 'OT%' ");
        str.append(" AND (aa.cmdtycode IN (SELECT cmdtycode FROM individualtbl WHERE 1=1 ");
        append = " OR aa.cmdtycode NOT IN (SELECT cmdtycode FROM individualtbl)) ";
      } else {
        str.append(" AND aa.cmdtycode IN (SELECT cmdtycode FROM individualtbl WHERE (individualcode LIKE 'HG%' OR individualcode LIKE 'AF%' OR individualcode LIKE 'OT%') ");
      }
    }
    
    /*
    // おすすめ商品
    if (SIUtil.isNotNull(this.adviceFlgRdo)) {
      str.append(" AND recommendationflg = ").append(SIDBUtil.SQL2Str(this.adviceFlgRdo));
      if (SIUtil.isNotNull(append)) append=")";
    }
    */
    
    // 予約販売
    if (SIUtil.isNotNull(this.rsrvEnableFlgRdo)) {
      str.append(" AND RsrvEnableFlg = ").append(SIDBUtil.SQL2Str(this.rsrvEnableFlgRdo));
      if (SIUtil.isNotNull(append)) append=")";
    }
    
    // 在庫管理
    if (SIUtil.isNotNull(this.noStockFlgRdo)) {
      str.append(" AND AmountFlg = ").append(SIDBUtil.SQL2Str(this.noStockFlgRdo));
      if (SIUtil.isNotNull(append)) append=")";
    }
    
    if (SIUtil.isNotNull(this.totalFromTxt) || SIUtil.isNotNull(this.totalToTxt)) {
      str.append(" AND AmountFlg='1' ");
      if (SIUtil.isNotNull(append)) append=")";
    }
    
    // JANコード
    if (SIUtil.isNotNull(this.janCodeIndividual) && SICheckValid.checkValid(errors, "JANコード", this.janCodeIndividual, SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE)) {
      str.append(" AND janCodeIndividual = ").append(SIDBUtil.SQL2Str(this.janCodeIndividual));
      if (SIUtil.isNotNull(append)) append=")";
    }
    
    if (SIUtil.isNotNull(this.campaignFlg) && "1".equals(this.campaignFlg)) {
      str.append(" AND campaignPriceFlg = ").append(SIDBUtil.SQL2Str(this.campaignFlg));
      if (SIUtil.isNotNull(append)) append=")";
    }
    
    if (SIUtil.isNotNull(this.priceDownFlg) && "1".equals(this.priceDownFlg)) {
      str.append(" AND priceDownFlg = ").append(SIDBUtil.SQL2Str(this.priceDownFlg));
      if (SIUtil.isNotNull(append)) append=")";
    }
    
    if (SIUtil.isNotNull(this.stockNameCbo)) {
      str.append(" AND stockCode = ").append(SIDBUtil.SQL2Str(this.stockNameCbo));
      if (SIUtil.isNotNull(append)) append=")";
    }
    
    if (SIUtil.isNotNull(this.frontDispFlgRdo)) {
      str.append(" AND frontDispFlg = ").append(SIDBUtil.SQL2Str(this.frontDispFlgRdo));
      if (SIUtil.isNotNull(append)) append=")";
    }
    
    str.append(" )").append(append);// 在庫関連検索
    
    lConditionMan.add(new SITableCondition(str.toString()));
    
    // カテゴリチェック
    if (SIUtil.isNotNull(this.ctgryCode)) {
      lConditionMan.add(new SITableCondition(" AND aa.cmdtycode IN (SELECT ct.cmdtycode FROM cmdtyctgrymtbl AS ct WHERE ct.ctgrycode ="+SIDBUtil.SQL2Str(this.ctgryCode)+") "));
    }
    
    str = new StringBuffer();
    
    // 在庫数量
    if (SIUtil.isNotNull(this.totalFromTxt) && SIUtil.isNotNull(this.totalToTxt)) {
      str.append(" AND aa.cmdtycode IN (SELECT DISTINCT stock.cmdtycode FROM (SELECT t.cmdtycode,sum(t.amount) AS totalAmount FROM totalstockvw AS t GROUP BY t.cmdtycode) AS stock ");
      str.append(" WHERE stock.totalAmount >= ").append(this.totalFromTxt);
      str.append(" AND stock.totalAmount <= ").append(this.totalToTxt).append(")");
    } else if (SIUtil.isNull(this.totalFromTxt) && SIUtil.isNotNull(this.totalToTxt)) {
      str.append(" AND aa.cmdtycode IN (SELECT DISTINCT stock.cmdtycode FROM (SELECT t.cmdtycode,sum(t.amount) AS totalAmount FROM totalstockvw AS t GROUP BY t.cmdtycode) AS stock ");
      str.append(" WHERE stock.totalAmount <= ").append(this.totalToTxt).append(")");
    } else if (SIUtil.isNotNull(this.totalFromTxt) && SIUtil.isNull(this.totalToTxt)) {
      str.append(" AND aa.cmdtycode IN (SELECT DISTINCT stock.cmdtycode FROM (SELECT t.cmdtycode,sum(t.amount) AS totalAmount FROM totalstockvw AS t GROUP BY t.cmdtycode) AS stock ");
      str.append(" WHERE stock.totalAmount >= ").append(this.totalFromTxt).append(")");
    }
    if(SIUtil.isNotNull(str.toString())){
      lConditionMan.add(new SITableCondition(str.toString()));
    }
    
    // ブランド
    if (SIUtil.isNotNull(this.makerName)) {
      lConditionMan.add(new SITableCondition("c1", "MakerCode", this.makerName, SIConfig.SICONDITION_TYPE_EQUAL, SIConfig.SICONDITION_TYPE_AND));
    }
    
    // 商品名
    if (SIUtil.isNotNull(this.cmdtyNameTxt) && SICheckValid.checkValid(errors, "商品名", this.cmdtyNameTxt, SICheckDataConf.SICHECK_DATA_ZENKAKU_TYPE)) {
      lConditionMan.add(new SITableCondition("aa", "CmdtyName", this.cmdtyNameTxt, SIConfig.SICONDITION_TYPE_LIKE, SIConfig.SICONDITION_TYPE_AND));
    }
    
    // 商品名
    if (SIUtil.isNotNull(this.otherNameTxt) && SICheckValid.checkValid(errors, "型式", this.otherNameTxt, SICheckDataConf.SICHECK_DATA_ZENKAKU_TYPE)) {
      lConditionMan.add(new SITableCondition("aa", "otherName", this.otherNameTxt, SIConfig.SICONDITION_TYPE_LIKE, SIConfig.SICONDITION_TYPE_AND));
    }
    
    // 在庫数量
    SICheckValid.checkValid(errors, "在庫数量From", this.totalFromTxt, SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors, "在庫数量To", this.totalToTxt, SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    
    // 在庫数量大小
    try {
      if (errors.isEmpty() && !SICheckUtil.isEqual(this.totalFromTxt, this.totalToTxt)) {// 7.2.0 ST0308 修正
        SICheckValid.checkValid(errors, "在庫数量From", "在庫数量To", this.totalFromTxt, this.totalToTxt, SICheckDataConf.SICHECK_DATA_VALUE_LESS_TYPE);// 7.1.1 ST0162 修正
      }
    } catch (Exception e) {}
    
    // 送料種別 7.3.0 PI-NES5051 追加
    if (SIUtil.isNotNull(this.deliveryTypeCodeRdo)) {
      if (this.deliveryTypeCodeRdo.equals("0")) {
        lConditionMan.add(new SITableCondition("aa", "DeliveryTypeCode", this.deliveryTypeCodeRdo, SIConfig.SICONDITION_TYPE_EQUAL, SIConfig.SICONDITION_TYPE_AND));
      } else {
        lConditionMan.add(new SITableCondition("aa", "DeliveryTypeCode", "0", SIConfig.SICONDITION_TYPE_GREATER, SIConfig.SICONDITION_TYPE_AND));
      }
    }
    
    if (SIUtil.isNotNull(this.disableFlg)) {
      lConditionMan.add(new SITableCondition("aa", "DisableFlg", this.disableFlg, SIConfig.SICONDITION_TYPE_EQUAL, SIConfig.SICONDITION_TYPE_AND));
    }
    
    if (SIUtil.isNotNull(this.storageCode)) {
      lConditionMan.add(new SITableCondition("aa", "StorageCode", this.storageCode, SIConfig.SICONDITION_TYPE_EQUAL, SIConfig.SICONDITION_TYPE_AND));
    }
    
    if (!errors.isEmpty()) {
      lRequest.setAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY, errors);
      this.searchFlg = false;
    } else {
      lRequest.removeAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY);
    }
    
    // 条件文の設定
    // 7.3.0 ST2047 修正 ここから
    if (SIUtil.isNotNull(this.memberDiscountFlgRdo) && !this.memberDiscountFlgRdo.equals("0")) {
      this.setConditionSQL(lConditionMan.getCondtionSQL() + " AND (MemberDiscountFlg = '1' OR MemberDiscountFlg = '2') ");
    } else {
      this.setConditionSQL(lConditionMan.getCondtionSQL());
    }
    // 7.3.0 ST2047 修正 ここまで
  }
  
  // 7.2.0 ST1030 追加ここから
  /**
   * <b>validate</b> 入力したデータをチェックして、同時にSQLの条件文を作成します。
   * 
   * @param lRequest クライアントからのリクエスト
   * @return なし
   * @throws なし
   */
  public void validateSelectCmdty(HttpServletRequest lRequest) {
    SILogin lLogin = SIHTMLUtil.getLogin(lRequest);
    
    SICustomErrors errors = new SICustomErrors();
    SITableConditionManager lConditionMan = new SITableConditionManager();
    
    // ショップコード
    if (lLogin.isMall() && SIUtil.isNotNull(this.shopCodeTxt) && SICheckValid.checkValid(errors, "ショップコード", this.shopCodeTxt, SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE)
        && !this.shopCodeTxt.equals("0")) {
      lConditionMan.add(new SITableCondition("", "ShopCode", this.shopCodeTxt, SIConfig.SICONDITION_TYPE_EQUAL, SIConfig.SICONDITION_TYPE_AND));
    }
    
    // 商品コード
    if (SIUtil.isNotNull(this.cmdtyCodeFromTxt) && SICheckValid.checkValid(errors, "親コードFrom", this.cmdtyCodeFromTxt, SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE)) {
      lConditionMan.add(new SITableCondition("", "CmdtyCode", this.cmdtyCodeFromTxt, SIConfig.SICONDITION_TYPE_GREATER_EQUAL, SIConfig.SICONDITION_TYPE_AND));
    }
    
    if (SIUtil.isNotNull(this.cmdtyCodeToTxt) && SICheckValid.checkValid(errors, "親コードTo", this.cmdtyCodeToTxt, SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE)) {
      lConditionMan.add(new SITableCondition("", "CmdtyCode", this.cmdtyCodeToTxt, SIConfig.SICONDITION_TYPE_LESS_EQUAL, SIConfig.SICONDITION_TYPE_AND));
    }
    
    // 商品名
    if (SIUtil.isNotNull(this.cmdtyNameTxt) && SICheckValid.checkValid(errors, "商品名", this.cmdtyNameTxt, SICheckDataConf.SICHECK_DATA_ZENKAKU_TYPE)) {
      lConditionMan.add(new SITableCondition("", "CmdtyName", this.cmdtyNameTxt, SIConfig.SICONDITION_TYPE_LIKE, SIConfig.SICONDITION_TYPE_AND));
    }
    
    // 在庫数量
    if (SIUtil.isNotNull(this.totalFromTxt) && SICheckValid.checkValid(errors, "在庫数量From", this.totalFromTxt, SICheckDataConf.SICHECK_DATA_DIGIT_TYPE)) {// 7.1.1 ST0162 修正
      lConditionMan.add(new SITableCondition("", "Total", this.totalFromTxt, SIConfig.SICONDITION_TYPE_GREATER_EQUAL, SIConfig.SICONDITION_TYPE_AND));
    }
    
    if (SIUtil.isNotNull(this.totalToTxt) && SICheckValid.checkValid(errors, "在庫数量To", this.totalToTxt, SICheckDataConf.SICHECK_DATA_DIGIT_TYPE)) {
      lConditionMan.add(new SITableCondition("", "Total", this.totalToTxt, SIConfig.SICONDITION_TYPE_LESS_EQUAL, SIConfig.SICONDITION_TYPE_AND));
    }
    
    // 在庫数量が入力されたときには、在庫数管理フラグが1（管理する）の商品のみを検索する
    if (SIUtil.isNotNull(this.totalFromTxt) || SIUtil.isNotNull(this.totalToTxt)) {
      lConditionMan.add(new SITableCondition("", "", "1", SIConfig.SICONDITION_TYPE_EQUAL, SIConfig.SICONDITION_TYPE_AND));
    }
    
    // 在庫数量大小
    try {
      if (!SICheckUtil.isEqual(this.totalFromTxt, this.totalToTxt)) {
        SICheckValid.checkValid(errors, "在庫数量From", "在庫数量To", this.totalFromTxt, this.totalToTxt, SICheckDataConf.SICHECK_DATA_VALUE_LESS_TYPE);// 7.1.1 ST0162 修正
      }
    } catch (Exception e) {}
    
    // おすすめ
    if (SIUtil.isNotNull(this.adviceFlgRdo)) {
      lConditionMan.add(new SITableCondition("", "AdviceFlg", this.adviceFlgRdo, SIConfig.SICONDITION_TYPE_EQUAL, SIConfig.SICONDITION_TYPE_AND));
    }
    
    // 会員割引
    if (SIUtil.isNotNull(this.memberDiscountFlgRdo)) {
      lConditionMan.add(new SITableCondition("", "MemberDiscountFlg", this.memberDiscountFlgRdo, SIConfig.SICONDITION_TYPE_EQUAL, SIConfig.SICONDITION_TYPE_AND));
    }
    
    // 予約販売
    if (SIUtil.isNotNull(this.rsrvEnableFlgRdo)) {
      lConditionMan.add(new SITableCondition("", "RsrvEnableFlg", this.rsrvEnableFlgRdo, SIConfig.SICONDITION_TYPE_EQUAL, SIConfig.SICONDITION_TYPE_AND));
    }
    
    // ギフト包装販売
    if (SIUtil.isNotNull(this.wrappingFlgRdo)) {
      lConditionMan.add(new SITableCondition("", "WrappingFlg", this.wrappingFlgRdo, SIConfig.SICONDITION_TYPE_EQUAL, SIConfig.SICONDITION_TYPE_AND));
    }
    
    // 在庫切れ販売
    if (SIUtil.isNotNull(this.noStockFlgRdo)) {
      lConditionMan.add(new SITableCondition("", "NoStockFlg", this.noStockFlgRdo, SIConfig.SICONDITION_TYPE_EQUAL, SIConfig.SICONDITION_TYPE_AND));
    }
    
    if (SIUtil.isNotNull(this.storageCode)) {
      lConditionMan.add(new SITableCondition("", "StorageCode", this.storageCode, SIConfig.SICONDITION_TYPE_EQUAL, SIConfig.SICONDITION_TYPE_AND));
    }
    
    if (!errors.isEmpty()) {
      lRequest.setAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY, errors);
      this.searchFlg = false;
    } else {
      lRequest.removeAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY);
    }
    
    // 条件文の設定
    this.setConditionSQL(lConditionMan.getCondtionSQL());
  }
  
  // 7.2.0 ST1030 追加ここまで
  
  /**
   * <b>validateDelete</b> 削除の対象のデータをチェックします。
   * 
   * @param lRequest クライアントからのリクエスト
   * @return なし
   * @throws なし
   */
  public boolean validateDelete(HttpServletRequest lRequest, Connection lConnection) {
    SICustomErrors errors = new SICustomErrors();
    StringBuffer lSqlBuf = new StringBuffer();
    StringBuffer lSqlBuf2 = new StringBuffer();
    StringBuffer lSqlBuf3 = new StringBuffer();
    
    String[] lShopCmdtyCode = new String[0];
    
    // チェックボックスのチェック
    if (this.getCmdtyStndrdCodeChk() == null || this.getCmdtyStndrdCodeChk().length == 0) {
      errors.addError(new SICustomError("input.data.checkbox.require", "削除"));
    }
    // 7.2.0 ST1030 追加 ここから
    // 紐付く受注が存在する商品を削除することはできない（受注修正機能の実装に伴い）
    if (errors.isEmpty()) {
      for (int ii = 0; ii < this.getCmdtyStndrdCodeChk().length; ii++) {
        if (SIUtil.isNotNull(this.getCmdtyStndrdCodeChk()[ii])) {
          lShopCmdtyCode = SIStringUtil.split(this.getCmdtyStndrdCodeChk()[ii], SIConfig.SIWEBSHOPPING_TOKEN);
          
          lSqlBuf = new StringBuffer();
          lSqlBuf.append("SELECT OrderCode FROM ").append(SIConfig.SIVIEW_ORDER_DETAIL_LATEST_NAME);
          lSqlBuf.append(" WHERE ShopCode=").append(SIDBUtil.SQL2Str(lShopCmdtyCode[0]));
          lSqlBuf.append("   AND CmdtyCode=").append(SIDBUtil.SQL2Str(lShopCmdtyCode[1]));
          
          lSqlBuf2 = new StringBuffer();
          lSqlBuf2.append("SELECT keepnumber FROM keepdetailtbl");
          lSqlBuf2.append(" WHERE CmdtyCode=").append(SIDBUtil.SQL2Str(lShopCmdtyCode[1]));
          
          lSqlBuf3 = new StringBuffer();
          lSqlBuf3.append("SELECT estimatecode FROM estimatedetailtbl");
          lSqlBuf3.append(" WHERE ShopCode=").append(SIDBUtil.SQL2Str(lShopCmdtyCode[0]));
          lSqlBuf3.append("   AND CmdtyCode=").append(SIDBUtil.SQL2Str(lShopCmdtyCode[1]));
          
          try {
            if (SIDBUtil.hasData(lConnection, lSqlBuf.toString()) || SIDBUtil.hasData(lConnection, lSqlBuf2.toString()) || SIDBUtil.hasData(lConnection, lSqlBuf3.toString())) {
              errors.addError(new SICustomError("database.delete.lock3", lShopCmdtyCode[1]));
            }
          } catch (SIDBAccessException e) {
            e.printStackTrace();
            errors.addError(new SICustomError("database.delete.error"));
          }
          
          // EDBTG003-00 elecs-matsushima add start
          // 構成商品マスタの構成商品として設定されている場合は削除不可
          lSqlBuf = new StringBuffer();
          lSqlBuf.append("SELECT individualcode FROM compositiongroupdetailtbl");
          lSqlBuf.append(" WHERE ShopCode=").append(SIDBUtil.SQL2Str(lShopCmdtyCode[0]));
          lSqlBuf.append("   AND detailcmdtycode=").append(SIDBUtil.SQL2Str(lShopCmdtyCode[1]));
          
          lSqlBuf2 = new StringBuffer();
          lSqlBuf2.append("SELECT individualcode FROM compositionoptiontbl");
          lSqlBuf2.append(" WHERE ShopCode=").append(SIDBUtil.SQL2Str(lShopCmdtyCode[0]));
          lSqlBuf2.append("   AND detailcmdtycode=").append(SIDBUtil.SQL2Str(lShopCmdtyCode[1]));
          
          lSqlBuf3 = new StringBuffer();
          lSqlBuf3.append("SELECT individualcode FROM appendedcmdtytbl");
          lSqlBuf3.append(" WHERE ShopCode=").append(SIDBUtil.SQL2Str(lShopCmdtyCode[0]));
          lSqlBuf3.append("   AND detailcmdtycode=").append(SIDBUtil.SQL2Str(lShopCmdtyCode[1]));
          
          try {
            if (SIDBUtil.hasData(lConnection, lSqlBuf.toString()) || SIDBUtil.hasData(lConnection, lSqlBuf2.toString()) || SIDBUtil.hasData(lConnection, lSqlBuf3.toString())) {
              errors.addError(new SICustomError("database.delete.lock6", lShopCmdtyCode[1]));
            }
          } catch (SIDBAccessException e) {
            e.printStackTrace();
            errors.addError(new SICustomError("database.delete.error"));
          }
          
          // セットコードを取得
          StringBuffer sqlStm = new StringBuffer();
          sqlStm.append("SELECT cmdtycompositionflg FROM cmdtymtbl ");
          sqlStm.append(" WHERE ShopCode=").append(SIDBUtil.SQL2Str(lShopCmdtyCode[0]));
          sqlStm.append("   AND cmdtycode=").append(SIDBUtil.SQL2Str(lShopCmdtyCode[1]));
          
          String setFlg = "";
          try {
            setFlg = SIDBUtil.getFirstData(lConnection, sqlStm.toString());
          } catch (SIDBAccessException e) {
            e.printStackTrace();
            errors.addError(new SICustomError("database.delete.error"));
          }
          if (SIUtil.isNull(setFlg)) setFlg = "0";
          this.setDelSetCmdtyFlg("0");
          
          // 構成商品の場合の紐付く受注が存在する商品を削除することはできない
          if (setFlg.equals(SIConfig.CMDTY_COMPOSITION_FIXED_SET)
              || setFlg.equals(SIConfig.CMDTY_COMPOSITION_SELECTION_SET)
              || setFlg.equals(SIConfig.CMDTY_COMPOSITION_SPECIFICATION)
              || setFlg.equals(SIConfig.CMDTY_COMPOSITION_VARIATION_SET)
           ){
            this.setDelSetCmdtyFlg("1");
            
            lSqlBuf = new StringBuffer();
            lSqlBuf.append("SELECT OrderCode FROM ").append(SIConfig.SIVIEW_ORDER_DETAIL_LATEST_NAME);
            lSqlBuf.append(" WHERE ShopCode=").append(SIDBUtil.SQL2Str(lShopCmdtyCode[0]));
            lSqlBuf.append("   AND setcmdtycode=").append(SIDBUtil.SQL2Str(lShopCmdtyCode[1]));
            
            lSqlBuf2 = new StringBuffer();
            lSqlBuf2.append("SELECT keepnumber FROM keepdetailtbl");
            lSqlBuf2.append(" WHERE setcmdtycode=").append(SIDBUtil.SQL2Str(lShopCmdtyCode[1]));
            
            lSqlBuf3 = new StringBuffer();
            lSqlBuf3.append("SELECT estimatecode FROM estimatedetailtbl");
            lSqlBuf3.append(" WHERE ShopCode=").append(SIDBUtil.SQL2Str(lShopCmdtyCode[0]));
            lSqlBuf3.append("   AND setcmdtycode=").append(SIDBUtil.SQL2Str(lShopCmdtyCode[1]));
            
            try {
              if (SIDBUtil.hasData(lConnection, lSqlBuf.toString()) || SIDBUtil.hasData(lConnection, lSqlBuf2.toString()) || SIDBUtil.hasData(lConnection, lSqlBuf3.toString())) {
                errors.addError(new SICustomError("database.delete.lock3", lShopCmdtyCode[1]));
              }
            } catch (SIDBAccessException e) {
              e.printStackTrace();
              errors.addError(new SICustomError("database.delete.error"));
            }
          }
          // EDBTG003-00 elecs-matsushima add end
        }
      }
    }
    // 7.2.0 ST1030 追加 ここまで
    
    if (!errors.isEmpty()) lRequest.setAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY_BAK, errors);
    else lRequest.removeAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY_BAK);
    return errors.isEmpty();
  }
  
  /**
   * <b>getIndividualCount</b> 親コードに対する在庫コード数を取得
   * 
   * @param connection
   * @param cmdtyCode
   * @return 親コードに対する在庫コード数
   * @throws SIDBAccessException
   */
  public int getIndividualCount(Connection connection, String cmdtyCode) throws SIDBAccessException {
    Statement statement = null;
    ResultSet resultSet = null;
    String countSql="SELECT count(*) as cnt FROM mancmdtyvw WHERE cmdtycode=" + SIDBUtil.SQL2Str(cmdtyCode);
    int count = 0; // レコード数
    try {
      statement = connection.createStatement();
      resultSet = statement.executeQuery(countSql);
      while (resultSet.next()) {
        count = resultSet.getInt("cnt");
      }
    } catch (Exception ex) {
      log.debug("exception sql = " + countSql);
      throw new SIDBAccessException(ex);
    } finally {
      SIDBUtil.close(resultSet, statement);
    }
    return count;
  }
  
  /**
   * <b>validate</b> 入力したデータをチェックして、同時にSQLの条件文を作成します。
   * 
   * @param lRequest クライアントからのリクエスト
   * @return なし
   * @throws なし
   */
  public void validateList(HttpServletRequest lRequest) {
    SICustomErrors errors = new SICustomErrors();
    SITableConditionManager lConditionMan = new SITableConditionManager();
    
    // ショップ個別の時はショップコード必須
    if (SIConfig.SIRUNNING_MODE_CURRENT == SIConfig.SIRUNNING_MODE_INDIVIDUAL) {
      SICheckValid.checkValid(errors, "ショップコード", this.shopCodeTxt, SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    }
    
    // ショップコード
    if (SIUtil.isNotNull(this.shopCodeTxt) && SICheckValid.checkValid(errors, "ショップコード", this.shopCodeTxt, SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE)
        && !this.shopCodeTxt.equals("0")) {
      lConditionMan.add(new SITableCondition("", "ShopCode", this.shopCodeTxt, SIConfig.SICONDITION_TYPE_EQUAL, SIConfig.SICONDITION_TYPE_AND));
    }
    // 7.3.0 PII-NES5051 修正 ここから
    // 親コード
    if (SIUtil.isNotNull(this.cmdtyCodeTxt) && SICheckValid.checkValid(errors, "親コード", this.cmdtyCodeTxt, SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE)) {
      lConditionMan.add(new SITableCondition("", "CmdtyCode", this.cmdtyCodeTxt, SIConfig.SICONDITION_TYPE_FRONTLIKE, SIConfig.SICONDITION_TYPE_AND));
    }
    
    // 在庫コード
    if (SIUtil.isNotNull(this.individualCodeTxt) && SICheckValid.checkValid(errors, "在庫コード", this.individualCodeTxt, SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE)) {
      lConditionMan.add(new SITableCondition("", "IndividualCode", this.individualCodeTxt, SIConfig.SICONDITION_TYPE_FRONTLIKE, SIConfig.SICONDITION_TYPE_AND));
    }
    // 7.3.0 PII-NES5051 修正 ここまで
    
    // 商品名
    if (SIUtil.isNotNull(this.cmdtyNameTxt) && SICheckValid.checkValid(errors, "商品名", this.cmdtyNameTxt, SICheckDataConf.SICHECK_DATA_ZENKAKU_TYPE)) {
      lConditionMan.add(new SITableCondition("", "CmdtyName", this.cmdtyNameTxt, SIConfig.SICONDITION_TYPE_LIKE, SIConfig.SICONDITION_TYPE_AND));
    }
    
    // 7.3.0 PII-NES5051 修正 ここから
    // 中古新品フラグ
    if (SIUtil.isNotNull(this.usedNewFlg)) {
      lConditionMan.add(new SITableCondition("", "UsedNewFLg", this.usedNewFlg, SIConfig.SICONDITION_TYPE_EQUAL, SIConfig.SICONDITION_TYPE_AND));
    }
    
    if (SIUtil.isNotNull(this.storageCode)) {
      lConditionMan.add(new SITableCondition("", "StorageCode", this.storageCode, SIConfig.SICONDITION_TYPE_EQUAL, SIConfig.SICONDITION_TYPE_AND));
    }
    
    if (!errors.isEmpty()) {
      lRequest.setAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY, errors);
      lConditionMan.add(new SITableCondition(" AND 1=2 "));
    } else {
      lRequest.removeAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY);
    }
    
    // 条件文の設定
    this.setConditionSQL(lConditionMan.getCondtionSQL());
  }
  
  //EDBTG003-00 elecs-matsushima add start
  public String getCmdtySearhSetFlg() {
    return this.cmdtySearhSetFlg;
  }
  
  public void setCmdtySearhSetFlg(String cmdtySearhSetFlg) {
    if (SIUtil.isNull(cmdtySearhSetFlg)) cmdtySearhSetFlg = "";
    this.cmdtySearhSetFlg = cmdtySearhSetFlg;
  }
  
  public String getCmdtyPointSearchFlg() {
    return this.cmdtyPointSearchFlg;
  }
  
  public void setCmdtyPointSearchFlg(String cmdtyPointSearchFlg) {
    if (SIUtil.isNull(cmdtyPointSearchFlg)) cmdtyPointSearchFlg = "";
    this.cmdtyPointSearchFlg = cmdtyPointSearchFlg;
  }
  
  public String getCmdtySetTypeFlg() {
    return this.cmdtySetTypeFlg;
  }
  
  public void setCmdtySetTypeFlg(String cmdtySetTypeFlg) {
    if (SIUtil.isNull(cmdtySetTypeFlg)) cmdtySetTypeFlg = "";
    this.cmdtySetTypeFlg = cmdtySetTypeFlg;
  }
  
  public String getDelSetCmdtyFlg() {
    return this.delSetCmdtyFlg;
  }
  
  public void setDelSetCmdtyFlg(String delSetCmdtyFlg) {
    if (SIUtil.isNull(delSetCmdtyFlg)) delSetCmdtyFlg = "0";
    this.delSetCmdtyFlg = delSetCmdtyFlg;
  }
  //EDBTG003-00 elecs-matsushima add end
  
  public String getStorageCode() {
    return storageCode;
  }
  
  public void setStorageCode(String storageCode) {
    if (SIUtil.isNull(storageCode)) storageCode = "";
    this.storageCode = storageCode;
  }
}
