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

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.ParseException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import jp.co.sint.beans.mallmgr.UIRegCmdtyComposition;
import jp.co.sint.config.SIConfig;
import jp.co.sint.config.SIFlagConf;
import jp.co.sint.database.SIDBUtil;
import jp.co.sint.database.SIDBAccessException;
import jp.co.sint.tools.SICheckUtil;
import jp.co.sint.tools.SIDateTime;
import jp.co.sint.tools.SIException;
import jp.co.sint.tools.SIFatalException;
import jp.co.sint.tools.SIHTMLUtil;
import jp.co.sint.tools.SIUtil;
import jp.co.sint.tools.SIBGUtil;// 7.3.0 PI-NES0501 追加
import java.util.ArrayList;// 7.1.1 ST0195 追加
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Category;

import jp.livewell.baby.util.ZenHanConverter;

/**
 * @version $Id: SICmdty.java,v 1.0 Exp $
 * @author Jinwang Chen <br>
 *         Description: 商品レコードに対するBeanクラスの作成
 *         <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>
 *         J.W.Chen 2003/06/25 Original
 */

public class SICmdty extends SIBasic {
  // ログ用のインスタンスの生成
  private static Category log = Category.getInstance(SIConfig.SILOG4J_WEBSHOP_CATEGORY_NAME);
  
  // 全角→半角変換クラス
  ZenHanConverter lConverter = new ZenHanConverter();
  
  // ショップコード
  private String shopCode = "0";
  
  // ショップ名
  private String shopName = "";
  
  // 商品コード
  private String cmdtyCode = "";
  
  // 在庫コード 7.3.0 PI-NES5051 追加
  private String individualCode = "";
  
  // janコード
  private String janCode = "";
  
  // 商品名
  private String cmdtyName = "";
  
  // 商品詳細
  private String description = "";
  
  // 中古・新品フラグ
  private int usedNewFlg = 0;
  
  // 色コード
  private String colorCode = "";
  
  // 色名
  private String colorName = "";
  
  // 支店名
  private String branchName = "";
  
  // 仕入れコード
  private String stockCode = "";
  
  // 仕入れ値段
  private String stockUnitPrice = "0";
  
  // 値段
  private String unitPrice = "0";
  
  // 値段税抜
  private String unitPriceWithoutTax = "0";
  
  // 特別価格
  private String salesUnitPrice = "0";
  
  // 税区分
  private String taxFlg = "2";
  
  private String taxRate = "0";
  
  // おすすめ
  private String adviceFlg = "0";
  
  // おすすめ表示順
  private String adviceDispOrder = "";// 7.2.0 ST0286 追加
  
  // バナーファイル
  private String bannerFile = "";
  
  // 会員値引フラグ
  private String memberDiscountFlg = "0";
  
  // バナー先
  private String bannerURL = "";
  
  // サイズ
  private String cmdtySize = "";
  
  // 販売開始日
  private String sellFromDate = "";
  
  // 販売開始日の年
  private String sellFromDateYear = "";
  
  // 販売開始日の月
  private String sellFromDateMonth = "";
  
  // 販売開始日の日
  private String sellFromDateDay = "";
  
  // 販売終了フラグ
  private String endSellFlg = "0";
  
  // 販売終了日
  private String sellToDate = "";
  
  // 販売終了日の年
  private String sellToDateYear = "";
  
  // 販売終了日の月
  private String sellToDateMonth = "";
  
  // 販売終了日の日
  private String sellToDateDay = "";
  
  // 特別価格開始日
  private String salesFromDate = "";
  
  // 特別価格開始日の年
  private String salesFromDateYear = "";
  
  // 特別価格開始日の月
  private String salesFromDateMonth = "";
  
  // 特別価格開始日の日
  private String salesFromDateDay = "";
  
  // 特別価格終了日
  private String salesToDate = "";
  
  // 特別価格終了日の年
  private String salesToDateYear = "";
  
  // 特別価格終了日の月
  private String salesToDateMonth = "";
  
  // 特別価格終了日の日
  private String salesToDateDay = "";
  
  // 予約販売
  private String rsrvEnableFlg = "0";
  
  // ラッピングフラグ
  private String wrappingFlg = "0";
  
  // 在庫無販売
  private String noStockFlg = "1";
  
  // 商品数量
  private String amount = "0";
  
  // 予約可能数量
  private String rsrvAmount = "";
  
  // 数量管理フラグ
  private String amountFlg = "1";
  
  // 商品数量の合計
  private String subTotal = "0";
  
  // 商品数量の合計
  private String total = "0";
  
  // 商品カテゴリ
  private String ctgryCode = "";
  
  // カテゴリ名
  private String ctgryName = "";
  
  // 検索項目1
  private String srchKeyName1 = "";
  
  // 検索項目2
  private String srchKeyName2 = "";
  
  // 検索項目3
  private String srchKeyName3 = "";
  
  // 商品規格コード
  private String cmdtyStndrdCode = "";
  
  // 規格あり
  private String hasStndrd = "0";
  
  // カテゴリある
  private String hasCtgry = "0";
  
  // 関連商品がある
  private String hasConn = "0";
  
  // 在庫状況番号
  private String stockStatusCode = "";
  
  // 新フラグ
  private String newFlg = "0";
  
  // 在庫状況コメント
  private String commentOfStock = "";
  
  // 特価品フラグ
  private String salesFlg = "0";
  
  // 勘定価格
  private String calcUnitPrice = "0";
  
  // ショップ名
  private String frontShopName = "";
  
  // 値引き期間From
  private String discountFromDate = "";
  
  // 値引期間FROMの年
  private String discountFromDateYear = "";
  
  // 値引期間FROMの月
  private String discountFromDateMonth = "";
  
  // 値引期間FROMの日
  private String discountFromDateDay = "";
  
  // 値引期間TO
  private String discountToDate = "";
  
  // 値引期間TOの年
  private String discountToDateYear = "";
  
  // 値引期間TOの月
  private String discountToDateMonth = "";
  
  // 値引期間TOの日
  private String discountToDateDay = "";
  
  // 値引率
  private String discountRate = "0";
  
  // 星数
  private String stars = "0";
  
  private String memberDiscountRate = "0";
  
  // 配送種別コード
  private String deliveryTypeCode = "";
  
  // 配送種別名称
  private String deliveryTypeName = "";
  
  // 在庫管理フラグ
  private String inStockFlg = "0";
  
  // ランキング順位
  private String ranking = "";
  
  // ランキング集計日時
  private String rankingDateTime = "";
  
  // 登録日時
  private String initDateTime = "";
  
  // 7.1.1 ST0195 追加 ここから
  // 商品に属されるカテゴリリスト
  private ArrayList ctgryList = new ArrayList();
  
  // 7.1.1 ST0195 追加 ここまで
  
  // 7.2.0 ST1051 追加 ここから
  // 一括値引フラグ
  private String discountFlg = "0";
  
  // 特価値引フラグ
  private String salesDiscountFlg = "0";
  
  // 7.2.0 ST1051 追加 ここまで
  
  // 画像１ PI-NES 0501 追加
  private String imageName1 = "";
  
  // 画像２ PI-NES 0501 追加
  private String imageName2 = "";
  
  // 画像３ PI-NES 0501 追加
  private String imageName3 = "";
  
  // 画像４ PI-NES 0501 追加
  private String imageName4 = "";
  
  // 画像５ PI-NES 0501 追加
  private String imageName5 = "";
  
  // 7.3.0 PI-NES0501 追加 ここから
  // ブランドコード
  private String makerCode = "";
  
  // ブランド名
  private String makerName = "";
  
  // 使用年数（月単位）
  private int tenureOfUse = 0;
  
  // 保証期間（月単位）
  private int guaranteedTerm = 0;
  
  // M価
  private String newFixedPrice = "";
  
  // BG卸価フロント表示フラグ
  private String bgPriceDispFlg = "";
  
  // 販売状況
  private String salesSituationFlg = "";
  
  // SOLDOUT後表示
  private String soldoutDispFlg = "";
  
  // キャンペーン特価区分
  private String campaignPriceFlg = "";
  
  // 新着フラグ
  private String newArrivalFlg = "";
  
  // 物流倉庫A在庫
  private String makerStock = "";
  
  // 支店別在庫状況
  private String branchStockTxt = "";
  
  // 支店別在庫状況リスト
  private String branchStockListTxt = "";
  
  // 問合せ区分
  private String inquiryFlg = "";
  
  // 7.3.0 PI-NES0501 追加 ここまで
  
  // 仕入価格
  private String purchasePrice = "";
  
  // 加工価格
  private String processingExpence = "";
  
  // 帳簿在庫数
  private String realAmount = "";
  
  // 入荷予定コメント
  private String arrivalScheduleMsg = "";
  
  // メーカーURL
  private String makerURL = "";
  
  // 要ログイン
  private boolean loginFlg = false;
  
  // 契約フラグ
  private boolean contractFlg = false;
  
  // ヘア水物エクステフラグ
  private boolean hairCosmeFlg = false;
  
  // ポイントレート
  private String pointRate = "";
  
  private String nomalPointRate = "";
  
  private String consignGoodsFee = "0";
  
  private String freeDeliveryFlg = "0";
  
  private String priceDownFlg = "0";
  
  // 追加コメント１タイトル
  private String expansionComment1Title = "";
  
  // 追加コメント１本文
  private String expansionComment1Text = "";
  
  // 追加コメント２タイトル
  private String expansionComment2Title = "";
  
  // 追加コメント２本文
  private String expansionComment2Text = "";
  
  // 追加コメント３タイトル
  private String expansionComment3Title = "";
  
  // 追加コメント３本文
  private String expansionComment3Text = "";
  
  // 追加コメント４タイトル
  private String expansionComment4Title = "";
  
  // 追加コメント４本文
  private String expansionComment4Text = "";
  
  //EDBTG005-00 kamata add start  
  // 追加コメント５タイトル
  private String expansionComment5Title = "";
  // 追加コメント５本文
  private String expansionComment5Text = "";
  //EDBTG005-00 kamata add end
  
  private String mycatalogFlg = "0";
  
  private String specialRate = "1.0";
  
  // EDBTG003-00 elecs-matsushima add start
  // 商品構成フラグ
  private String cmdtyCompositionFlg = "0";
  
  // 画像６
  private String imageName6 = "";
  
  // 画像７
  private String imageName7 = "";
  
  // 画像８
  private String imageName8 = "";
  
  // 画像９
  private String imageName9 = "";
  
  // 画像１０
  private String imageName10 = "";
  
  // 画像１１
  private String imageName11 = "";
  
  // EDBTG003-00 elecs-matsushima add start
  
  // キャッチコピー
  private String catchcopy = "";
  // 仕様
  private String specification = "";
  // 有効成分
  private String activeingredient = "";
  // 全成分
  private String component = "";
  // 注意事項
  private String precaution = "";
  // その他
  private String othernotice = "";

  /**
   * <b>SICmdty</b> コンストラクタ
   * 
   * @param なし
   * @return なし
   * @throws なし
   */
  public SICmdty() {
  }
  
  /**
   * <b>SICmdty</b> コンストラクタ
   * 
   * @param lShopCode
   *          ショップコード
   * @param lCmdtyCode
   *          商品コード
   * @return なし
   * @throws なし
   */
  public SICmdty(String lShopCode, String lCmdtyCode) {
    this.setShopCode(lShopCode);
    this.setCmdtyCode(lCmdtyCode);
  }
  
  /**
   * <b>SICmdty</b> コンストラクタ
   * 
   * @param lShopCode
   *          ショップコード
   * @param lCmdtyCode
   *          商品コード
   * @return なし
   * @throws なし
   */
  public SICmdty(String lShopCode, String lCmdtyCode, String lIndividualCode) {
    this.setShopCode(lShopCode);
    this.setCmdtyCode(lCmdtyCode);
    this.setIndividualCode(lIndividualCode);
  }
  
  // setter of ショップコード
  public void setShopCode(String lShopCode) {
    if (SIUtil.isNull(lShopCode)) lShopCode = "0";
    this.shopCode = SIUtil.changeTo(lShopCode.trim(), this.encode);
  }
  
  // setter of ショップ名
  public void setShopName(String lShopName) {
    if (SIUtil.isNull(lShopName)) lShopName = "";
    this.shopName = SIUtil.changeTo(lShopName.trim(), this.encode);
  }
  
  // setter of ショップ名
  public void setFrontShopName(String lFrontShopName) {
    if (SIUtil.isNull(lFrontShopName)) lFrontShopName = "";
    this.frontShopName = SIUtil.changeTo(lFrontShopName.trim(), this.encode);
  }
  
  // setter of 商品コード
  public void setCmdtyCode(String lCmdtyCode) {
    if (SIUtil.isNull(lCmdtyCode)) lCmdtyCode = "";
    this.cmdtyCode = SIUtil.changeTo(lCmdtyCode.trim(), this.encode);
  }
  
  // setter of janコード
  public void setJanCode(String lJanCode) {
    if (SIUtil.isNull(lJanCode)) lJanCode = "";
    this.janCode = SIUtil.changeTo(lJanCode.trim(), this.encode);
  }
  
  // setter of 商品名
  public void setCmdtyName(String lCmdtyName) {
    if (SIUtil.isNull(lCmdtyName)) lCmdtyName = "";
    this.cmdtyName = SIUtil.changeTo(lCmdtyName.trim(), this.encode);
  }
  
  // setter of 商品詳細
  public void setDescription(String lDescription) {
    if (SIUtil.isNull(lDescription)) lDescription = "";
    this.description = SIUtil.changeTo(lDescription.trim(), this.encode);
  }
  
  // setter of 仕入れコード
  public void setStockCode(String lStockCode) {
    if (SIUtil.isNull(lStockCode)) lStockCode = "";
    this.stockCode = SIUtil.changeTo(lStockCode.trim(), this.encode);
  }
  
  // setter of 仕入れ価格
  public void setStockUnitPrice(String lStockUnitPrice) {
    lStockUnitPrice = SIUtil.str2Int(lStockUnitPrice);// 7.1.1 ST0177 追加
    if (SIUtil.isNull(lStockUnitPrice)) lStockUnitPrice = "0";
    this.stockUnitPrice = SIUtil.changeTo(lStockUnitPrice.trim(), this.encode);
  }
  
  // setter of 価格
  public void setUnitPrice(String lUnitPrice) {
    lUnitPrice = SIUtil.str2Int(lUnitPrice);// 7.1.1 ST0177 追加
    if (SIUtil.isNull(lUnitPrice)) lUnitPrice = "0";
    this.unitPrice = SIUtil.changeTo(lUnitPrice.trim(), this.encode);
  }
  
  // setter of 価格（税抜）
  public void setUnitPriceWithoutTax(String lUnitPrice) {
    lUnitPrice = SIUtil.str2Int(lUnitPrice);
    if (SIUtil.isNull(lUnitPrice)) lUnitPrice = "0";
    this.unitPriceWithoutTax = SIUtil.changeTo(lUnitPrice.trim(), this.encode);
  }
  
  // setter of 特別価格
  public void setSalesUnitPrice(String lSalesUnitPrice) {
    lSalesUnitPrice = SIUtil.str2Int(lSalesUnitPrice);// 7.1.1 ST0177 追加
    if (SIUtil.isNull(lSalesUnitPrice)) lSalesUnitPrice = "0";
    this.salesUnitPrice = SIUtil.changeTo(lSalesUnitPrice.trim(), this.encode);
  }
  
  // setter of 勘定価格
  public void setCalcUnitPrice(String lCalcUnitPrice) {
    lCalcUnitPrice = SIUtil.str2Int(lCalcUnitPrice);// 7.1.1 ST0177 追加
    if (SIUtil.isNull(lCalcUnitPrice)) lCalcUnitPrice = "0";
    this.calcUnitPrice = SIUtil.changeTo(lCalcUnitPrice.trim(), this.encode);
  }
  
  // setter of 税区分
  public void setTaxFlg(String lTaxFlg) {
    if (SIUtil.isNull(lTaxFlg)) lTaxFlg = "2";
    this.taxFlg = SIUtil.changeTo(lTaxFlg.trim(), this.encode);
  }
  
  // setter of 税率
  public void setTaxRate(String lTaxRate) {
    lTaxRate = SIUtil.str2Int(lTaxRate);// 7.1.1 ST0177 追加
    if (SIUtil.isNull(lTaxRate)) lTaxRate = "0";
    this.taxRate = SIUtil.changeTo(lTaxRate.trim(), this.encode);
  }
  
  // setter of おすすめ
  public void setAdviceFlg(String lAdviceFlg) {
    if (SIUtil.isNull(lAdviceFlg)) lAdviceFlg = "0";
    this.adviceFlg = SIUtil.changeTo(lAdviceFlg.trim(), this.encode);
  }
  
  // 7.2.0 ST0286 追加 ここから
  // setter of おすすめ表示順
  public void setAdviceDispOrder(String lAdviceDispOrder) {
    lAdviceDispOrder = SIUtil.str2Int(lAdviceDispOrder);
    if (SIUtil.isNull(lAdviceDispOrder) || lAdviceDispOrder.equalsIgnoreCase("")) lAdviceDispOrder = "";
    this.adviceDispOrder = SIUtil.changeTo(lAdviceDispOrder.trim(), this.encode);
  }
  
  // 7.2.0 ST0286 追加 ここまで
  
  // setter of バナーファイル
  public void setBannerFile(String lBannerFile) {
    if (SIUtil.isNull(lBannerFile)) lBannerFile = "";
    this.bannerFile = SIUtil.changeTo(lBannerFile.trim(), this.encode);
  }
  
  public void setMemberDiscountFlg(String lMemberDiscountFlg) {
    if (SIUtil.isNull(lMemberDiscountFlg)) lMemberDiscountFlg = "0";
    this.memberDiscountFlg = SIUtil.changeTo(lMemberDiscountFlg.trim(), this.encode);
  }
  
  // setter of バナー先
  public void setBannerURL(String lBannerURL) {
    if (SIUtil.isNull(lBannerURL)) lBannerURL = "";
    this.bannerURL = SIUtil.changeTo(lBannerURL.trim(), this.encode);
  }
  
  // setter of サイズ
  public void setCmdtySize(String lCmdtySize) {
    if (SIUtil.isNull(lCmdtySize)) lCmdtySize = "";
    this.cmdtySize = SIUtil.changeTo(lCmdtySize.trim(), this.encode);
  }
  
  // setter of 販売開始日
  public void setSellFromDate(String lYear, String lMonth, String lDay) {
    this.setSellFromDateYear(lYear);
    this.setSellFromDateMonth(lMonth);
    this.setSellFromDateDay(lDay);
  }
  
  // setter of 販売開始日
  public void setSellFromDate(String lSellFromDate) {
    if (SIUtil.isNull(lSellFromDate)) lSellFromDate = "";
    else {
      try {
        SIDateTime lDateTime = new SIDateTime(lSellFromDate, SIConfig.SIDATE_FORMAT);
        setSellFromDate(lDateTime.getYearStr(), lDateTime.getMonthStr(), lDateTime.getDayStr());
      } catch (ParseException e) {
        e.printStackTrace();
        if (SIUtil.isNotNull(lSellFromDate)) {
          setSellFromDate(lSellFromDate, "", "");
        }
      }
    }
    this.sellFromDate = lSellFromDate;
  }
  
  // setter of 販売開始日の年
  public void setSellFromDateYear(String lSellFromDateYear) {
    if (SIUtil.isNull(lSellFromDateYear)) this.sellFromDateYear = "";
    else this.sellFromDateYear = lSellFromDateYear;
  }
  
  // setter of 販売開始日の月
  public void setSellFromDateMonth(String lSellFromDateMonth) {
    if (SIUtil.isNull(lSellFromDateMonth)) this.sellFromDateMonth = "";
    else this.sellFromDateMonth = lSellFromDateMonth;
  }
  
  // setter of 販売開始日の日
  public void setSellFromDateDay(String lSellFromDateDay) {
    if (SIUtil.isNull(lSellFromDateDay)) this.sellFromDateDay = "";
    else this.sellFromDateDay = lSellFromDateDay;
  }
  
  // setter of 販売終了フラグ
  public void setEndSellFlg(String lEndSellFlg) {
    if (SIUtil.isNull(lEndSellFlg)) lEndSellFlg = "0";
    this.endSellFlg = SIUtil.changeTo(lEndSellFlg.trim(), this.encode);
  }
  
  // setter of 販売終了日
  public void setSellToDate(String lYear, String lMonth, String lDay) {
    this.setSellToDateYear(lYear);
    this.setSellToDateMonth(lMonth);
    this.setSellToDateDay(lDay);
  }
  
  // setter of 販売終了日
  public void setSellToDate(String lSellToDate) {
    if (SIUtil.isNull(lSellToDate)) lSellToDate = "";
    else {
      try {
        SIDateTime lDateTime = new SIDateTime(lSellToDate, SIConfig.SIDATE_FORMAT);
        setSellToDate(lDateTime.getYearStr(), lDateTime.getMonthStr(), lDateTime.getDayStr());
      } catch (ParseException e) {
        e.printStackTrace();
        if (SIUtil.isNotNull(lSellToDate)) {
          setSellToDate(lSellToDate, "", "");
        }
      }
    }
    this.sellToDate = lSellToDate;
  }
  
  // setter of 販売終了日の年
  public void setSellToDateYear(String lSellToDateYear) {
    if (SIUtil.isNull(lSellToDateYear)) this.sellToDateYear = "";
    else this.sellToDateYear = lSellToDateYear;
  }
  
  // setter of 販売終了日の月
  public void setSellToDateMonth(String lSellToDateMonth) {
    if (SIUtil.isNull(lSellToDateMonth)) this.sellToDateMonth = "";
    else this.sellToDateMonth = lSellToDateMonth;
  }
  
  // setter of 販売終了日の日
  public void setSellToDateDay(String lSellToDateDay) {
    if (SIUtil.isNull(lSellToDateDay)) this.sellToDateDay = "";
    else this.sellToDateDay = lSellToDateDay;
  }
  
  // setter of 特別価格開始日
  public void setSalesFromDate(String lYear, String lMonth, String lDay) {
    this.setSalesFromDateYear(lYear);
    this.setSalesFromDateMonth(lMonth);
    this.setSalesFromDateDay(lDay);
  }
  
  // setter of 特別価格開始日
  public void setSalesFromDate(String lSalesFromDate) {
    if (SIUtil.isNull(lSalesFromDate)) lSalesFromDate = "";
    else {
      try {
        SIDateTime lDateTime = new SIDateTime(lSalesFromDate, SIConfig.SIDATE_FORMAT);
        setSalesFromDate(lDateTime.getYearStr(), lDateTime.getMonthStr(), lDateTime.getDayStr());
      } catch (ParseException e) {
        e.printStackTrace();
        if (SIUtil.isNotNull(lSalesFromDate)) {
          setSalesFromDate(lSalesFromDate, "", "");
        }
      }
    }
    this.salesFromDate = lSalesFromDate;
  }
  
  // setter of 特別価格開始日の年
  public void setSalesFromDateYear(String lSalesFromDateYear) {
    if (SIUtil.isNull(lSalesFromDateYear)) lSalesFromDateYear = "";
    this.salesFromDateYear = SIUtil.changeTo(lSalesFromDateYear.trim(), this.encode);
  }
  
  // setter of 特別価格開始日の月
  public void setSalesFromDateMonth(String lSalesFromDateMonth) {
    if (SIUtil.isNull(lSalesFromDateMonth)) lSalesFromDateMonth = "";
    this.salesFromDateMonth = SIUtil.changeTo(lSalesFromDateMonth.trim(), this.encode);
  }
  
  // setter of 特別価格開始日の日
  public void setSalesFromDateDay(String lSalesFromDateDay) {
    if (SIUtil.isNull(lSalesFromDateDay)) lSalesFromDateDay = "";
    this.salesFromDateDay = SIUtil.changeTo(lSalesFromDateDay.trim(), this.encode);
  }
  
  // setter of 特別価格終了日
  public void setSalesToDate(String lYear, String lMonth, String lDay) {
    this.setSalesToDateYear(lYear);
    this.setSalesToDateMonth(lMonth);
    this.setSalesToDateDay(lDay);
  }
  
  // setter of 特別価格終了日
  public void setSalesToDate(String lSalesToDate) {
    if (SIUtil.isNull(lSalesToDate)) lSalesToDate = "";
    else {
      try {
        SIDateTime lDateTime = new SIDateTime(lSalesToDate, SIConfig.SIDATE_FORMAT);
        setSalesToDate(lDateTime.getYearStr(), lDateTime.getMonthStr(), lDateTime.getDayStr());
      } catch (ParseException e) {
        e.printStackTrace();
        if (SIUtil.isNotNull(lSalesToDate)) {
          setSalesToDate(lSalesToDate, "", "");
        }
      }
    }
    this.salesToDate = lSalesToDate;
  }
  
  // setter of 特別価格終了日の年
  public void setSalesToDateYear(String lSalesToDateYear) {
    if (SIUtil.isNull(lSalesToDateYear)) lSalesToDateYear = "";
    this.salesToDateYear = SIUtil.changeTo(lSalesToDateYear.trim(), this.encode);
  }
  
  // setter of 特別価格終了日の月
  public void setSalesToDateMonth(String lSalesToDateMonth) {
    if (SIUtil.isNull(lSalesToDateMonth)) lSalesToDateMonth = "";
    this.salesToDateMonth = SIUtil.changeTo(lSalesToDateMonth.trim(), this.encode);
  }
  
  // setter of 特別価格終了日の日
  public void setSalesToDateDay(String lSalesToDateDay) {
    if (SIUtil.isNull(lSalesToDateDay)) lSalesToDateDay = "";
    this.salesToDateDay = SIUtil.changeTo(lSalesToDateDay.trim(), this.encode);
  }
  
  // setter of 予約販売
  public void setRsrvEnableFlg(String lRsrvEnableFlg) {
    if (SIUtil.isNull(lRsrvEnableFlg)) lRsrvEnableFlg = "0";
    this.rsrvEnableFlg = SIUtil.changeTo(lRsrvEnableFlg.trim(), this.encode);
  }
  
  // setter of ラッピングフラグ
  public void setWrappingFlg(String lWrappingFlg) {
    if (SIUtil.isNull(lWrappingFlg)) lWrappingFlg = "0";
    this.wrappingFlg = SIUtil.changeTo(lWrappingFlg.trim(), this.encode);
  }
  
  // setter of 在庫無販売
  public void setNoStockFlg(String lNoStockFlg) {
    if (SIUtil.isNull(lNoStockFlg)) lNoStockFlg = "1";
    this.noStockFlg = SIUtil.changeTo(lNoStockFlg.trim(), this.encode);
  }
  
  // setter of 商品数量
  public void setAmount(String lAmount) {
    lAmount = SIUtil.str2Int(lAmount);// 7.1.1 ST0177 追加
    if (SIUtil.isNull(lAmount)) lAmount = "0";
    this.amount = SIUtil.changeTo(lAmount.trim(), this.encode);
  }
  
  // setter of 予約可能数量
  public void setRsrvAmount(String lRsrvAmount) {
    lRsrvAmount = SIUtil.str2Int(lRsrvAmount);// 7.1.1 ST0177 追加
    if (SIUtil.isNull(lRsrvAmount)) lRsrvAmount = "";
    this.rsrvAmount = SIUtil.changeTo(lRsrvAmount.trim(), this.encode);
  }
  
  // setter of 商品数量管理フラグ
  public void setAmountFlg(String lAmountFlg) {
    if (SIUtil.isNull(lAmountFlg)) lAmountFlg = "1";
    this.amountFlg = SIUtil.changeTo(lAmountFlg.trim(), this.encode);
  }
  
  // setter of 商品数量の合計
  public void setSubTotal(String lSubTotal) {
    if (SIUtil.isNull(lSubTotal)) lSubTotal = "0";
    this.subTotal = SIUtil.changeTo(lSubTotal.trim(), this.encode);
  }
  
  // setter of 商品数量の合計
  public void setTotal(String lTotal) {
    if (SIUtil.isNull(lTotal)) lTotal = "0";
    this.total = SIUtil.changeTo(lTotal.trim(), this.encode);
  }
  
  // setter of 商品カテゴリ
  public void setCtgryCode(String lCtgryCode) {
    if (SIUtil.isNull(lCtgryCode)) lCtgryCode = "";
    this.ctgryCode = SIUtil.changeTo(lCtgryCode.trim(), this.encode);
  }
  
  // setter of 商品カテゴリ
  public void setCtgryName(String lCtgryName) {
    if (SIUtil.isNull(lCtgryName)) lCtgryName = "";
    this.ctgryName = SIUtil.changeTo(lCtgryName.trim(), this.encode);
  }
  
  // setter of 検索項目1
  public void setSrchKeyName1(String lSrchKeyName1) {
    if (SIUtil.isNull(lSrchKeyName1)) lSrchKeyName1 = "";
    this.srchKeyName1 = SIUtil.changeTo(lSrchKeyName1.trim(), this.encode);
  }
  
  // setter of 検索項目2
  public void setSrchKeyName2(String lSrchKeyName2) {
    if (SIUtil.isNull(lSrchKeyName2)) lSrchKeyName2 = "";
    this.srchKeyName2 = SIUtil.changeTo(lSrchKeyName2.trim(), this.encode);
  }
  
  // setter of 検索項目3
  public void setSrchKeyName3(String lSrchKeyName3) {
    if (SIUtil.isNull(lSrchKeyName3)) lSrchKeyName3 = "";
    this.srchKeyName3 = SIUtil.changeTo(lSrchKeyName3.trim(), this.encode);
  }
  
  // setter of 商品規格コード
  public void setCmdtyStndrdCode(String lCmdtyStndrdCode) {
    if (SIUtil.isNull(lCmdtyStndrdCode)) lCmdtyStndrdCode = "";
    this.cmdtyStndrdCode = SIUtil.changeTo(lCmdtyStndrdCode.trim(), this.encode);
  }
  
  // setter of 規格コードある
  public void setHasStndrd(String lHasStndrd) {
    if (SIUtil.isNull(lHasStndrd)) lHasStndrd = "0";
    this.hasStndrd = lHasStndrd;
  }
  
  // setter of カテゴリある
  public void setHasCtgry(String lHasCtgry) {
    if (SIUtil.isNull(lHasCtgry)) lHasCtgry = "0";
    this.hasCtgry = lHasCtgry;
  }
  
  // setter of 関連商品ある
  public void setHasConn(String lHasConn) {
    if (SIUtil.isNull(lHasConn)) lHasConn = "0";
    this.hasConn = lHasConn;
  }
  
  // setter of 在庫状況番号
  public void setStockStatusCode(String lStockStatusCode) {
    if (SIUtil.isNull(lStockStatusCode)) lStockStatusCode = "";
    this.stockStatusCode = lStockStatusCode;
  }
  
  // setter of 商品新フラグ
  public void setNewFlg(String lNewFlg) {
    if (SIUtil.isNull(lNewFlg)) lNewFlg = "0";
    this.newFlg = lNewFlg;
  }
  
  // setter of 在庫状況コメント
  public void setCommentOfStock(String lCommentOfStock) {
    if (SIUtil.isNull(lCommentOfStock)) lCommentOfStock = "";
    this.commentOfStock = lCommentOfStock;
  }
  
  // setter of 特価品フラグ
  public void setSalesFlg(String lSalesFlg) {
    if (SIUtil.isNull(lSalesFlg)) lSalesFlg = "0";
    this.salesFlg = lSalesFlg;
  }
  
  public void setDiscountFromDate(String lYear, String lMonth, String lDay) {
    this.setDiscountFromDateYear(lYear);
    this.setDiscountFromDateMonth(lMonth);
    this.setDiscountFromDateDay(lDay);
  }
  
  // setter of 値引期間FROM
  public void setDiscountFromDate(String lDiscountFromDate) {
    if (SIUtil.isNull(lDiscountFromDate)) lDiscountFromDate = "";
    else {
      try {
        SIDateTime lDateTime = new SIDateTime(lDiscountFromDate, SIConfig.SIDATE_FORMAT);
        setDiscountFromDate(lDateTime.getYearStr(), lDateTime.getMonthStr(), lDateTime.getDayStr());
      } catch (ParseException e) {
        e.printStackTrace();
      }
    }
    this.discountFromDate = lDiscountFromDate;
  }
  
  public void setDiscountToDate(String lYear, String lMonth, String lDay) {
    this.setDiscountToDateYear(lYear);
    this.setDiscountToDateMonth(lMonth);
    this.setDiscountToDateDay(lDay);
  }
  
  // setter of 値引期間TO
  public void setDiscountToDate(String lDiscountToDate) {
    if (SIUtil.isNull(lDiscountToDate)) lDiscountToDate = "";
    else {
      try {
        SIDateTime lDateTime = new SIDateTime(lDiscountToDate, SIConfig.SIDATE_FORMAT);
        setDiscountToDate(lDateTime.getYearStr(), lDateTime.getMonthStr(), lDateTime.getDayStr());
      } catch (ParseException e) {
        e.printStackTrace();
      }
    }
    this.discountToDate = lDiscountToDate;
  }
  
  // setter of 値引期間FROMの年
  public void setDiscountFromDateYear(String lDiscountFromDateYear) {
    if (SIUtil.isNull(lDiscountFromDateYear)) lDiscountFromDateYear = "";
    this.discountFromDateYear = lDiscountFromDateYear.trim();
  }
  
  // setter of 値引期間FROMの月
  public void setDiscountFromDateMonth(String lDiscountFromDateMonth) {
    if (SIUtil.isNull(lDiscountFromDateMonth)) this.discountFromDateMonth = "";
    else this.discountFromDateMonth = SIUtil.lFillIn(lDiscountFromDateMonth, 2);
  }
  
  // setter of 値引期間FROMの日
  public void setDiscountFromDateDay(String lDiscountFromDateDay) {
    if (SIUtil.isNull(lDiscountFromDateDay)) this.discountFromDateDay = "";
    else this.discountFromDateDay = SIUtil.lFillIn(lDiscountFromDateDay, 2);
  }
  
  // setter of 値引期間TOの年
  public void setDiscountToDateYear(String lDiscountToDateYear) {
    if (SIUtil.isNull(lDiscountToDateYear)) lDiscountToDateYear = "";
    this.discountToDateYear = lDiscountToDateYear.trim();
  }
  
  // setter of 値引期間TOの月
  public void setDiscountToDateMonth(String lDiscountToDateMonth) {
    if (SIUtil.isNull(lDiscountToDateMonth)) this.discountToDateMonth = "";
    else this.discountToDateMonth = SIUtil.lFillIn(lDiscountToDateMonth, 2);
  }
  
  // setter of 値引期間TOの日
  public void setDiscountToDateDay(String lDiscountToDateDay) {
    if (SIUtil.isNull(lDiscountToDateDay)) this.discountToDateDay = "";
    else this.discountToDateDay = SIUtil.lFillIn(lDiscountToDateDay, 2);
  }
  
  // setter of 値引き率
  public void setDiscountRate(String lDiscountRate) {
    // if (SIConfig.SIRUNNING_MODE_CURRENT ==SIConfig.SIRUNNING_MODE_TOGETHER){
    // lDiscountRate=SIConfig.SIMALL.getDiscountRate();
    // }
    if (SIUtil.isNull(lDiscountRate)) lDiscountRate = "0";
    this.discountRate = lDiscountRate;
  }
  
  public void setStars(String lStars) {
    if (SIUtil.isNull(lStars)) lStars = "0";
    this.stars = lStars;
  }
  
  public void setDeliveryTypeCode(String lDeliveryTypeCode) {
    if (SIUtil.isNull(lDeliveryTypeCode)) lDeliveryTypeCode = "";
    this.deliveryTypeCode = lDeliveryTypeCode;
  }
  
  public void setDeliveryTypeName(String lDeliveryTypeName) {
    if (SIUtil.isNull(lDeliveryTypeName)) lDeliveryTypeName = "";
    this.deliveryTypeName = lDeliveryTypeName;
  }
  
  public void setMemberDiscountRate(String lMemberDiscountRate) {
    if (SIUtil.isNull(lMemberDiscountRate)) lMemberDiscountRate = "0";
    this.memberDiscountRate = lMemberDiscountRate;
  }
  
  public void setInStockFlg(String lInStockFlg) {
    if (SIUtil.isNull(lInStockFlg)) lInStockFlg = "0";
    this.inStockFlg = lInStockFlg;
  }
  
  // getter of ランキング順位
  public void setRanking(String lRanking) {
    if (SIUtil.isNull(lRanking)) lRanking = "";
    this.ranking = lRanking;
  }
  
  // getter of ランキング集計日時
  public void setRankingDateTime(String lRankingDateTime) {
    if (SIUtil.isNull(lRankingDateTime)) lRankingDateTime = "";
    this.rankingDateTime = lRankingDateTime;
  }
  
  // getter of 登録日時
  public void setInitDateTime(String lInitDateTime) {
    if (SIUtil.isNull(lInitDateTime)) lInitDateTime = "";
    this.initDateTime = lInitDateTime;
  }
  
  // 7.1.1 ST0195 追加 ここから
  // setter of カテゴリリスト
  public void setCtgryList(ArrayList lCtgryList) {
    if (lCtgryList == null) lCtgryList = new ArrayList();
    this.ctgryList = lCtgryList;
  }
  
  // getter of 色コード
  public String getColorCode() {
    return colorCode;
  }
  
  // setter of 色コード
  public void setColorCode(String colorCode) {
    this.colorCode = colorCode;
  }
  
  // getter of 中古新品フラグ
  public int getUsedNewFlg() {
    return usedNewFlg;
  }
  
  // setter of 中古新品フラグ
  public void setUsedNewFlg(int usedNewFlg) {
    this.usedNewFlg = usedNewFlg;
  }
  
  // getter of 色名
  public String getColorName() {
    return colorName;
  }
  
  // setter of 色名
  public void setColorName(String colorName) {
    this.colorName = colorName;
  }
  
  // getter of arrivalScheduleMsg
  public String getArrivalScheduleMsg() {
    return this.arrivalScheduleMsg;
  }
  
  // setter of arrivalScheduleMsg
  public void setArrivalScheduleMsg(String arrivalScheduleMsg) {
    if (SIUtil.isNull(arrivalScheduleMsg)) arrivalScheduleMsg = "";
    this.arrivalScheduleMsg = SIUtil.changeTo(arrivalScheduleMsg.trim(), this.encode);
  }
  
  // getter of loginFlg
  public boolean isLoginFlg() {
    return this.loginFlg;
  }
  
  // setter of loginFlg
  public void setLoginFlg(boolean loginFlg) {
    this.loginFlg = loginFlg;
  }
  
  // getter of contractFlg
  public boolean isContractFlg() {
    return this.contractFlg;
  }
  
  // setter of contractFlg
  public void setContractFlg(boolean contractFlg) {
    this.contractFlg = contractFlg;
  }
  
  // getter of hairCosmeFlg
  public boolean isHairCosmeFlg() {
    return this.hairCosmeFlg;
  }
  
  // setter of contractFlg
  public void setHairCosmeFlg(boolean hairCosmeFlg) {
    this.hairCosmeFlg = hairCosmeFlg;
  }
  
  // getter of pointRate
  public String getPointRate() {
    return this.pointRate;
  }
  
  // setter of pointRate
  public void setPointRate(String pointRate) {
    if (SIUtil.isNull(pointRate)) pointRate = "";
    this.pointRate = SIUtil.changeTo(pointRate.trim(), this.encode);
  }
  
  // getter of nomalPointRate
  public String getNomalPointRate() {
    return this.nomalPointRate;
  }
  
  // setter of nomalPointRate
  public void setNomalPointRate(String nomalPointRate) {
    if (SIUtil.isNull(nomalPointRate)) nomalPointRate = "";
    this.nomalPointRate = SIUtil.changeTo(nomalPointRate.trim(), this.encode);
  }
  
  /**
   * <b>setCtgryList</b> 該当商品に属されるカテゴリリストデータの取得
   * 
   * @param lConnection
   *          データベースへのコネンクション
   * @return カテゴリデータを取得する成功するかどうか
   * @throws なし
   */
  protected boolean setCtgryList(Connection lConnection) {// 7.1.1 ST0211 修正
    boolean lResult = false;
    ResultSet lResultSet = null;
    Statement lStatement = null;
    
    StringBuffer lSqlBuf = new StringBuffer("SELECT DISTINCT CtgryCode FROM CmdtyCtgryMTbl ");
    lSqlBuf.append("WHERE ShopCode=").append(SIDBUtil.SQL2Str(getShopCode(), " "));
    lSqlBuf.append("AND CmdtyCode=").append(SIDBUtil.SQL2Str(getCmdtyCode()));
    ArrayList lResultList = new ArrayList();
    
    try {
      lStatement = lConnection.createStatement();
      lResultSet = lStatement.executeQuery(lSqlBuf.toString());// 実行
      
      while (lResultSet.next()) {
        lResultList.add(lResultSet.getString(1));
      }
      lResult = true;
    } catch (SQLException e) {
      e.printStackTrace();
    } finally {
      setCtgryList(lResultList);// カテゴリリストデータの設定
      SIDBUtil.close(lStatement, lResultSet);
    }
    if (lResultList.size() == 0) lResult = false;
    return lResult;
  }
  
  // 7.1.1 ST0195 追加 ここまで
  
  // 7.2.0 ST1051 追加 ここから
  // setter of 一括値引フラグ
  public void setDiscountFlg(String lDiscountFlg) {
    if (SIUtil.isNull(lDiscountFlg)) lDiscountFlg = "0";
    this.discountFlg = SIUtil.changeTo(lDiscountFlg.trim(), this.encode);
  }
  
  // setter of 特価値引フラグ
  public void setSalesDiscountFlg(String lSalesDiscountFlg) {
    if (SIUtil.isNull(lSalesDiscountFlg)) lSalesDiscountFlg = "0";
    this.salesDiscountFlg = SIUtil.changeTo(lSalesDiscountFlg.trim(), this.encode);
  }
  
  // 7.2.0 ST1051 追加 ここまで
  
  // getter of ショップコード
  public String getShopCode() {
    return this.shopCode;
  }
  
  // getter of ショップ名
  public String getShopName() {
    return this.shopName;
  }
  
  // getter of ショップ名
  public String getFrontShopName() {
    return this.frontShopName;
  }
  
  // getter of 商品コード
  public String getCmdtyCode() {
    return this.cmdtyCode;
  }
  
  // getter of janコード
  public String getJanCode() {
    return this.janCode;
  }
  
  // getter of 商品名
  public String getCmdtyName() {
    return this.cmdtyName;
  }
  
  // getter of 商品詳細
  public String getDescription() {
    return this.description;
  }
  
  // getter of 仕入れコード
  public String getStockCode() {
    return this.stockCode;
  }
  
  // getter of 仕入れ価格
  public String getStockUnitPrice() {
    return this.stockUnitPrice;
  }
  
  // getter of 本体価格
  public String getUnitPrice() {
    return this.unitPrice;
  }
  
  // getter of 本体価格税抜
  public String getUnitPriceWithoutTax() {
    return this.unitPriceWithoutTax;
  }
  
  // getter of 特別価格
  public String getSalesUnitPrice() {
    if (SIUtil.isNull(this.salesUnitPrice)) return "0";
    else return this.salesUnitPrice;
  }
  
  // getter of 税区分
  public String getTaxFlg() {
    return this.taxFlg;
  }
  
  public String getTaxFlgName() {
    if (getTaxFlg().equals("0")) return "(" + SIFlagConf.SIFLAG_TAX_0 + ")";
    else if (getTaxFlg().equals("1")) return "(" + SIFlagConf.SIFLAG_TAX_1 + ")";
    else if (getTaxFlg().equals("2")) return "(" + SIFlagConf.SIFLAG_TAX_2 + ")";
    else return "";
  }
  
  public String getCmdtyTaxName() {
    if (getTaxFlg().equals("0")) return SIFlagConf.SIFLAG_TAX_0;
    else if (getTaxFlg().equals("1")) return SIFlagConf.SIFLAG_TAX_1;
    else if (getTaxFlg().equals("2")) return SIFlagConf.SIFLAG_TAX_2;
    else return "";
  }
  
  // getter of 税率
  public String getTaxRate() {
    return this.taxRate;
  }
  
  // getter of おすすめ
  public String getAdviceFlg() {
    return this.adviceFlg;
  }
  
  // 7.2.0 ST0286 追加 ここから
  // getter of おすすめ表示順
  public String getAdviceDispOrder() {
    return this.adviceDispOrder;
  }
  
  // 7.2.0 ST0286 追加 ここまで
  
  // getter of バナーファイル
  public String getBannerFile() {
    return this.bannerFile;
  }
  
  // getter of 会員値引フラグ
  public String getMemberDiscountFlg() {
    return this.memberDiscountFlg;
  }
  
  // getter of バナー先
  public String getBannerURL() {
    return this.bannerURL;
  }
  
  // getter of サイズ
  public String getCmdtySize() {
    return this.cmdtySize;
  }
  
  // getter of 販売開始日
  public String getSellFromDate() {
    return SIDateTime.getDate(getSellFromDateYear(), getSellFromDateMonth(), getSellFromDateDay());
  }
  
  // getter of 販売開始日の年
  public String getSellFromDateYear() {
    return this.sellFromDateYear;
  }
  
  // getter of 販売開始日の月
  public String getSellFromDateMonth() {
    return this.sellFromDateMonth;
  }
  
  // getter of 販売開始日の日
  public String getSellFromDateDay() {
    return this.sellFromDateDay;
  }
  
  // getter of 販売終了フラグ
  public String getEndSellFlg() {
    return this.endSellFlg;
  }
  
  // getter of 販売終了日
  public String getSellToDate() {
    return SIDateTime.getDate(getSellToDateYear(), getSellToDateMonth(), getSellToDateDay());
  }
  
  // getter of 販売終了日の年
  public String getSellToDateYear() {
    return this.sellToDateYear;
  }
  
  // getter of 販売終了日の月
  public String getSellToDateMonth() {
    return this.sellToDateMonth;
  }
  
  // getter of 販売終了日の日
  public String getSellToDateDay() {
    return this.sellToDateDay;
  }
  
  // getter of 特別価格開始日
  public String getSalesFromDate() {
    return SIDateTime.getDate(getSalesFromDateYear(), getSalesFromDateMonth(), getSalesFromDateDay());
  }
  
  // getter of 特別価格開始日の年
  public String getSalesFromDateYear() {
    return this.salesFromDateYear;
  }
  
  // getter of 特別価格開始日の月
  public String getSalesFromDateMonth() {
    return this.salesFromDateMonth;
  }
  
  // getter of 特別価格開始日の日
  public String getSalesFromDateDay() {
    return this.salesFromDateDay;
  }
  
  // getter of 特別価格終了日
  public String getSalesToDate() {
    return SIDateTime.getDate(getSalesToDateYear(), getSalesToDateMonth(), getSalesToDateDay());
  }
  
  // getter of 特別価格終了日の年
  public String getSalesToDateYear() {
    return this.salesToDateYear;
  }
  
  // getter of 特別価格終了日の月
  public String getSalesToDateMonth() {
    return this.salesToDateMonth;
  }
  
  // getter of 特別価格終了日の日
  public String getSalesToDateDay() {
    return this.salesToDateDay;
  }
  
  // getter of 予約販売
  public String getRsrvEnableFlg() {
    return this.rsrvEnableFlg;
  }
  
  // getter of ラッピングフラグ
  public String getWrappingFlg() {
    return this.wrappingFlg;
  }
  
  // getter of 在庫無販売
  public String getNoStockFlg() {
    return this.noStockFlg;
  }
  
  // getter of 商品数量
  public String getAmount() {
    return this.amount;
  }
  
  // getter of 予約可能数量
  public String getRsrvAmount() {
    return this.rsrvAmount;
  }
  
  // getter of 商品数量管理フラグ
  public String getAmountFlg() {
    return this.amountFlg;
  }
  
  public boolean isExceedAmount(String lAmount) {
    log.debug("getAmount()=" + getAmount() + ",lAmount=" + lAmount);
    if (getNoStockFlg().equals("1") || !SICheckUtil.isLess(getAmount(), lAmount)) return false;
    else return true;
  }
  
  // getter of 商品数量の合計
  public String getSubTotal() {
    return this.subTotal;
  }
  
  // getter of 商品数量の合計
  public String getTotal() {
    return this.total;
  }
  
  // getter of 商品カテゴリ
  public String getCtgryCode() {
    return this.ctgryCode;
  }
  
  // getter of 商品カテゴリ
  public String getCtgryName() {
    return this.ctgryName;
  }
  
  // getter of 検索項目1
  public String getSrchKeyName1() {
    return this.srchKeyName1;
  }
  
  // getter of 検索項目2
  public String getSrchKeyName2() {
    return this.srchKeyName2;
  }
  
  // getter of 検索項目3
  public String getSrchKeyName3() {
    return this.srchKeyName3;
  }
  
  // getter of 商品規格コード
  public String getCmdtyStndrdCode() {
    return this.cmdtyStndrdCode;
  }
  
  // getter of 規格コードある
  public String getHasStndrd() {
    return this.hasStndrd;
  }
  
  // getter of 規格コードある
  public String getHasCtgry() {
    return this.hasCtgry;
  }
  
  // getter of 関連商品ある
  public String getHasConn() {
    return this.hasConn;
  }
  
  // getter of 在庫状況番号
  public String getStockStatusCode() {
    return this.stockStatusCode;
  }
  
  // getter of 商品画像
  public String getThumImageFileName(int lIndex) {
    if (SIUtil.isNull(getShopCode())) return "";
    
    StringBuffer lImageFileNameBuf = new StringBuffer();
    lImageFileNameBuf.append(getShopCode()).append("/");
    lImageFileNameBuf.append(getCmdtyCode()).append(SIConfig.SIWEBSHOPPING_IMAGE_TOKEN);
    lImageFileNameBuf.append(SIConfig.SISUFFIX_CMDTY_THUM_IMAGE_NAME[lIndex]).append(".jpg");
    
    return lImageFileNameBuf.toString();
  }
  
  // getter of 在庫コード
  public String getIndividualCode() {
    return individualCode;
  }
  
  // setter of 在庫コード
  public void setIndividualCode(String individualCode) {
    this.individualCode = individualCode;
  }
  
  // getter of 支店名
  public String getBranchName() {
    return branchName;
  }
  
  // setter of 支店名
  public void setBranchName(String branchName) {
    this.branchName = branchName;
  }
  
  // BG-MOBILEテスト 追加
  public String getImageFileName(String lIndex) {
    if (SIUtil.isNull(getShopCode())) return "";
    StringBuffer lImageFileNameBuf = new StringBuffer();
    lImageFileNameBuf.append(getCmdtyCode()).append("/");
    lImageFileNameBuf.append(getCmdtyCode()).append(SIConfig.SIWEBSHOPPING_IMAGE_TOKEN);
    lImageFileNameBuf.append(getIndividualCode()).append(SIConfig.SIWEBSHOPPING_IMAGE_TOKEN).append(lIndex).append(".jpg");
    
    return lImageFileNameBuf.toString();
  }
  
  public String getMobileImageFileName(String lIndex) {
    if (SIUtil.isNull(getShopCode())) return "";
    StringBuffer lImageFileNameBuf = new StringBuffer();
    lImageFileNameBuf.append(getCmdtyCode()).append("/mobile_");
    lImageFileNameBuf.append(getCmdtyCode()).append(SIConfig.SIWEBSHOPPING_IMAGE_TOKEN);
    lImageFileNameBuf.append(getIndividualCode()).append(SIConfig.SIWEBSHOPPING_IMAGE_TOKEN).append(lIndex).append(".jpg");
    
    return lImageFileNameBuf.toString();
  }
  
  public String getImageFileName1(int lIndex) {
    if (SIUtil.isNull(getShopCode())) return "";
    
    StringBuffer lImageFileNameBuf = new StringBuffer();
    lImageFileNameBuf.append(getShopCode()).append("/");
    lImageFileNameBuf.append(getCmdtyCode()).append(SIConfig.SIWEBSHOPPING_IMAGE_TOKEN);
    lImageFileNameBuf.append(SIConfig.SISUFFIX_CMDTY_IMAGE_NAME1[lIndex]).append(".jpg");
    
    return lImageFileNameBuf.toString();
  }
  
  public String getImageFileName2(int lIndex) {
    if (SIUtil.isNull(getShopCode())) return "";
    
    StringBuffer lImageFileNameBuf = new StringBuffer();
    lImageFileNameBuf.append(getShopCode()).append("/");
    lImageFileNameBuf.append(getCmdtyCode()).append(SIConfig.SIWEBSHOPPING_IMAGE_TOKEN);
    lImageFileNameBuf.append(SIConfig.SISUFFIX_CMDTY_IMAGE_NAME2[lIndex]).append(".jpg");
    
    return lImageFileNameBuf.toString();
  }
  
  // getter of 商品新フラグ
  public String getNewFlg() {
    return this.newFlg;
  }
  
  // 新商品でかどか
  public boolean isNew() {
    if (Integer.parseInt(getNewFlg()) == 1) return true;
    else return false;
  }
  
  // getter of 在庫状況コメント
  public String getCommentOfStock() {
    return this.commentOfStock;
  }
  
  // getter of 特価品フラグ
  public String getSalesFlg() {
    return this.salesFlg;
  }
  
  // 特価品でかどか
  public boolean isSales() {
    if (Integer.parseInt(getSalesFlg()) == 1) return true;
    else return false;
  }
  
  // getter of 画像１
  public String getImageName1() {
    return imageName1;
  }
  
  // setter of 画像１
  public void setImageName1(String imageName1) {
    this.imageName1 = imageName1;
  }
  
  // getter of 画像２
  public String getImageName2() {
    return imageName2;
  }
  
  // setter of 画像２
  public void setImageName2(String imageName2) {
    this.imageName2 = imageName2;
  }
  
  // getter of 画像３
  public String getImageName3() {
    return imageName3;
  }
  
  // setter of 画像３
  public void setImageName3(String imageName3) {
    this.imageName3 = imageName3;
  }
  
  // getter of 画像４
  public String getImageName4() {
    return imageName4;
  }
  
  // setter of 画像４
  public void setImageName4(String imageName4) {
    this.imageName4 = imageName4;
  }
  
  // getter of 画像５
  public String getImageName5() {
    return imageName5;
  }
  
  // setter of 画像５
  public void setImageName5(String imageName5) {
    this.imageName5 = imageName5;
  }
  
  // 7.3.0 PI-NES0501 追加 ここから
  // getter of ブランドコード
  public String getMakerCode() {
    return this.makerCode;
  }
  
  // getter of 使用年数（月単位）
  public int getTenureOfUse() {
    return this.tenureOfUse;
  }
  
  // getter of 保証期間（月単位）
  public int getGuaranteedTerm() {
    return this.guaranteedTerm;
  }
  
  // getter of M価
  public String getNewFixedPrice() {
    return this.newFixedPrice;
  }
  
  // getter of BG卸価フロント表示フラグ
  public String getBGPriceDispFlg() {
    return this.bgPriceDispFlg;
  }
  
  // setter of ブランドコード
  public void setMakerCode(String lMakerCode) {
    if (SIUtil.isNull(lMakerCode)) lMakerCode = "";
    this.makerCode = lMakerCode;
  }
  
  // setter of 使用年数（月単位）
  public void setTenureOfUse(int lTenureOfUse) {
    this.tenureOfUse = lTenureOfUse;
  }
  
  // setter of 保証期間（月単位）
  public void setGuaranteedTerm(int lGuaranteedTerm) {
    this.guaranteedTerm = lGuaranteedTerm;
  }
  
  // setter of M価
  public void setNewFixedPrice(String lNewFixedPrice) {
    if (SIUtil.isNull(lNewFixedPrice)) lNewFixedPrice = "";
    this.newFixedPrice = lNewFixedPrice;
  }
  
  // setter of BG卸価フロント表示フラグ
  public void setBGPriceDispFlg(String lBGPriceDispFlg) {
    if (SIUtil.isNull(lBGPriceDispFlg)) lBGPriceDispFlg = "";
    this.bgPriceDispFlg = lBGPriceDispFlg;
  }
  
  // getter of 販売状況
  public String getSalesSituationFlg() {
    return salesSituationFlg;
  }
  
  // getter of SOLDOUT後表示
  public String getSoldoutDispFlg() {
    return soldoutDispFlg;
  }
  
  // getter of キャンペーン特価区分
  public String getCampaignPriceFlg() {
    return campaignPriceFlg;
  }
  
  // getter of 新着フラグ
  public String getNewArrivalFlg() {
    return newArrivalFlg;
  }
  
  // getter of 物流倉庫A在庫
  public String getMakerStock() {
    return makerStock;
  }
  
  // setter of 販売状況
  public void setSalesSituationFlg(String lSalesSituationFlg) {
    if (SIUtil.isNull(lSalesSituationFlg)) lSalesSituationFlg = "";
    this.salesSituationFlg = lSalesSituationFlg;
  }
  
  // setter of SOLDOUT後表示
  public void setSoldoutDispFlg(String lSoldoutDispFlg) {
    if (SIUtil.isNull(lSoldoutDispFlg)) lSoldoutDispFlg = "";
    this.soldoutDispFlg = lSoldoutDispFlg;
  }
  
  // setter of キャンペーン特価区分
  public void setCampaignPriceFlg(String lCampaignPriceFlg) {
    if (SIUtil.isNull(lCampaignPriceFlg)) lCampaignPriceFlg = "";
    this.campaignPriceFlg = lCampaignPriceFlg;
  }
  
  // setter of 新着フラグ
  public void setNewArrivalFlg(String lNewArrivalFlg) {
    if (SIUtil.isNull(lNewArrivalFlg)) lNewArrivalFlg = "";
    this.newArrivalFlg = lNewArrivalFlg;
  }
  
  // setter of 物流倉庫A在庫
  public void setMakerStock(String lMakerStock) {
    if (SIUtil.isNull(lMakerStock)) lMakerStock = "";
    this.makerStock = lMakerStock;
  }
  
  /**
   * @return makerName を戻します。
   */
  public String getMakerName() {
    return makerName;
  }
  
  /**
   * @param makerName
   *          makerName を設定。
   */
  public void setMakerName(String makerName) {
    this.makerName = makerName;
  }
  
  /**
   * @return branchStockListTxt を戻します。
   */
  public String getBranchStockListTxt() {
    return branchStockListTxt;
  }
  
  /**
   * @return branchStockTxt を戻します。
   */
  public String getBranchStockTxt() {
    return branchStockTxt;
  }
  
  /**
   * @param branchStockListTxt
   *          branchStockListTxt を設定。
   */
  public void setBranchStockListTxt(String branchStockListTxt) {
    this.branchStockListTxt = branchStockListTxt;
  }
  
  /**
   * @param branchStockTxt
   *          branchStockTxt を設定。
   */
  public void setBranchStockTxt(String branchStockTxt) {
    this.branchStockTxt = branchStockTxt;
  }
  
  /**
   * @return inquiryFlg を戻します。
   */
  public String getInquiryFlg() {
    return inquiryFlg;
  }
  
  /**
   * @param inquiryFlg
   *          inquiryFlg を設定。
   */
  public void setInquiryFlg(String inquiryFlg) {
    this.inquiryFlg = inquiryFlg;
  }
  
  public String getFreeDeliveryFlg() {
    return freeDeliveryFlg;
  }
  
  public void setFreeDeliveryFlg(String freeDeliveryFlg) {
    if (SIUtil.isNull(freeDeliveryFlg)) freeDeliveryFlg = "0";
    this.freeDeliveryFlg = freeDeliveryFlg;
  }
  
  public String getPriceDownFlg() {
    return priceDownFlg;
  }
  
  public void setPriceDownFlg(String priceDownFlg) {
    if (SIUtil.isNull(priceDownFlg)) priceDownFlg = "0";
    this.priceDownFlg = priceDownFlg;
  }
  
  public String getProcessingExpence() {
    return processingExpence;
  }
  
  public String getPurchasePrice() {
    return purchasePrice;
  }
  
  public String getRealAmount() {
    return realAmount;
  }
  
  public void setProcessingExpence(String processingExpence) {
    this.processingExpence = processingExpence;
  }
  
  public void setPurchasePrice(String purchasePrice) {
    this.purchasePrice = purchasePrice;
  }
  
  public void setRealAmount(String realAmount) {
    this.realAmount = realAmount;
  }
  
  public String getMarginTxt() {
    float margin = 0;
    float upf = Float.parseFloat(this.unitPrice);
    int up = Integer.parseInt(this.unitPrice);
    int pp = Integer.parseInt(this.purchasePrice);
    int pe = Integer.parseInt(this.processingExpence);
    try {
      margin = Math.round(((up - (pp + pe)) / upf) * 1000);
    } catch (Exception e) {
      margin = 0;
    }
    if (margin < -100000) return "― ％";
    else return String.valueOf(margin / 10) + " ％";
  }
  
  /**
   * <b>getColorName</b> 色名を取得する
   * 
   * @param lConnection
   *          コネクション
   * @return colorName 色名
   * @throws SIDBException
   */
  public String getColorName(Connection lConnection) {
    String tableName = "ColorTbl";
    String targetColName = "ColorName";
    String conditionColName = "ColorCode";
    String lColorCode = this.colorCode;
    try {
      String colorName = SIBGUtil.getDBParameter(lConnection, tableName, targetColName, conditionColName, lColorCode);
      return colorName;
    } catch (Exception e) {
      return "";
    }
  }
  
  public String getColorNameHankaku(Connection lConnection) {
    String tableName = "ColorTbl";
    String targetColName = "ColorName";
    String conditionColName = "ColorCode";
    String lColorCode = this.colorCode;
    try {
      String colorName = SIBGUtil.getDBParameter(lConnection, tableName, targetColName, conditionColName, lColorCode);
      return lConverter.convert(colorName).replaceAll("ー", "ｰ");
    } catch (Exception e) {
      return "";
    }
  }
  
  /**
   * <b>getMakerName</b> ブランド名を取得する
   * 
   * @param lConnection
   *          コネクション
   * @return makerName ブランド名
   * @throws SIDBException
   */
  public String getMakerName(Connection lConnection) {
    String tableName = "MakerTbl";
    String targetColName = "MakerName";
    String conditionColName = "MakerCode";
    String lMakerCode = this.makerCode;
    try {
      String makerName = SIBGUtil.getDBParameter(lConnection, tableName, targetColName, conditionColName, lMakerCode);
      return makerName;
    } catch (Exception e) {
      return "";
    }
  }
  
  public String getMakerNameHankaku(Connection lConnection) {
    String tableName = "MakerTbl";
    String targetColName = "MakerName";
    String conditionColName = "MakerCode";
    String lMakerCode = this.makerCode;
    try {
      String makerName = SIBGUtil.getDBParameter(lConnection, tableName, targetColName, conditionColName, lMakerCode);
      return lConverter.convert(makerName).replaceAll("ー", "ｰ");
    } catch (Exception e) {
      return "";
    }
  }
  
  /**
   * <b>getMakerURL</b> メーカーURLを取得する
   * 
   * @return makerURL メーカーURL
   * @throws SIDBException
   */
  public String getMakerURL() {
    return makerURL;
  }
  
  public void setMakerURL(String makerURL) {
    if (SIUtil.isNull(makerURL)) makerURL = "";
    this.makerURL = SIUtil.changeTo(makerURL.trim(), this.encode);
  }
  
  /**
   * <b>getYTenureOfUse</b> 使用年数を年月のフォーマットで取得する
   * 
   * @param なし
   * @return yTenureOfUse 使用年数
   * @throws なし
   */
  public String getYTenureOfUse() {
    int lTenureOfUse = this.tenureOfUse;
    String yTenureOfUse = SIDateTime.getMonthToYear(lTenureOfUse);
    return yTenureOfUse;
  }
  
  /**
   * <b>getYGuaranteedTerm</b> 保証期間を年月のフォーマットで取得する
   * 
   * @param なし
   * @return yGuaranteedTeam 保障期間
   * @throws なし
   */
  public String getYGuaranteedTerm() {
    int lGuaranteedTerm = this.guaranteedTerm;
    String yGuaranteedTerm = SIDateTime.getMonthToYear(lGuaranteedTerm);
    return yGuaranteedTerm;
  }
  
  /**
   * <b>getBranchStockTxt</b> 支店別在庫状況を取得する
   * 
   * @param lConnection
   *          コネクション
   * @param lUnitName
   *          商品単位名
   * @return branchStockTxt 支店別在庫状況
   * @throws SIDBException
   */
  public String getBranchStockTxt(Connection lConnection) {
    Statement lStatement = null;
    ResultSet lResultSet = null;
    StringBuffer lSqlBuf = new StringBuffer();
    StringBuffer lStockBuf = new StringBuffer();
    
    try {
      lSqlBuf.append("SELECT CASE WHEN b.branchcode::numeric <= 12 THEN b.branchname ELSE '物流倉庫' END AS branchname ");
      lSqlBuf.append(",sum(a.amount) AS amount,sum(b.branchcode) AS branchcode ");
      lSqlBuf.append("FROM storestocktbl a,branchtbl b,cmdtyunittbl c ");
      lSqlBuf.append("WHERE a.cmdtycode=").append(SIDBUtil.SQL2Str(this.cmdtyCode, " "));
      lSqlBuf.append("AND a.individualcode=").append(SIDBUtil.SQL2Str(this.individualCode, " "));
      lSqlBuf.append("AND a.branchcode=b.branchcode ");
      lSqlBuf.append("AND a.individualcode=c.individualcode ");
      lSqlBuf.append("AND CASE WHEN b.branchcode IN ('16','19') THEN false ");
      lSqlBuf.append(" WHEN c.deliverytypecode='1' AND c.usednewflg IN ('1','6','7') AND b.branchcode IN ('1','2','3','4','5','6','7','8','9','10','11','12') THEN false ");
      lSqlBuf.append(" ELSE true END ");
      lSqlBuf.append("GROUP BY CASE WHEN b.branchcode::numeric <= 12 THEN b.branchname ELSE '物流倉庫' END ");
      lSqlBuf.append("HAVING sum(a.amount)<>0 ");
      lSqlBuf.append("ORDER BY branchcode ");
      
      log.debug("getBranchStockTxt:lSqlBuf=" + lSqlBuf.toString());
      lStatement = lConnection.createStatement();
      lResultSet = lStatement.executeQuery(lSqlBuf.toString());
      
      while (lResultSet.next()) {
        lStockBuf.append(lResultSet.getString("branchname")).append("：");
        lStockBuf.append(lResultSet.getString("amount"));
        if (!lResultSet.isLast()) lStockBuf.append("　");
      }
    } catch (Exception ex) {
      ex.printStackTrace();
    } finally {
      SIDBUtil.close(lResultSet, lStatement);
    }
    return lStockBuf.toString();
  }
  
  // EDBTG003-00 mng-paku add start
  /**
   * <b>getBranchStockTxt</b> 支店別在庫状況を取得する
   * 
   * @param request
   * @param userCode
   * @param lConnection
   *          コネクション
   * @param cmdtyCode
   * @param individualCode
   * @return branchStockTxt 支店別在庫状況
   */
  public String getBranchStockTxt(HttpServletRequest request, String userCode, Connection lConnection, String cmdtyCode, String individualCode) {
    Statement lStatement = null;
    ResultSet lResultSet = null;
    StringBuffer lSqlBuf = new StringBuffer();
    StringBuffer lStockBuf = new StringBuffer();
    HttpSession session = request.getSession(true);
    String belongBranchCode = "";
    try {
      belongBranchCode = (String) session.getAttribute(SIConfig.SISESSION_MAN_POS_BRANCH_NAME);
      lSqlBuf.append("SELECT sum(c.amount) ");
      lSqlBuf.append("FROM cmdtymtbl a,individualtbl b,storestocktbl c ");
      lSqlBuf.append("WHERE b.cmdtycode = a.cmdtycode ");
      lSqlBuf.append("AND b.cmdtycode = c.cmdtycode ");
      lSqlBuf.append("AND b.individualcode = c.individualcode ");
      lSqlBuf.append("AND CASE WHEN c.branchcode IN ('16','19') THEN false ");
      lSqlBuf.append(" WHEN a.deliverytypecode='1' AND b.usednewflg IN ('1','6','7') AND c.branchcode IN ('1','2','3','4','5','6','7','8','9','10','11','12') THEN false ");
      lSqlBuf.append(" ELSE true END ");
      lSqlBuf.append("AND CASE WHEN b.amountflg = 0 AND c.branchcode ='999' THEN true WHEN b.amountflg = '1' AND c.amount > 0 THEN true ELSE false END ");
      lSqlBuf.append("AND c.cmdtycode=").append(SIDBUtil.SQL2Str(cmdtyCode, " "));
      lSqlBuf.append("AND c.individualcode=").append(SIDBUtil.SQL2Str(individualCode, " "));
      if (SIUtil.isNotNull(belongBranchCode)) {
        lSqlBuf.append("AND c.branchcode=").append(SIDBUtil.SQL2Str(belongBranchCode, " "));
      }
      
      log.debug("getBranchStockTxt:lSqlBuf=" + lSqlBuf.toString());
      lStatement = lConnection.createStatement();
      lResultSet = lStatement.executeQuery(lSqlBuf.toString());
      
      while (lResultSet.next()) {
        lStockBuf.append(lResultSet.getString(1));
      }
    } catch (Exception ex) {
      ex.printStackTrace();
    } finally {
      SIDBUtil.close(lResultSet, lStatement);
    }
    return lStockBuf.toString();
  }
  
  // EDBTG003-00 mng-paku add end
  
  /**
   * <b>getBranchStockListTxt</b> 支店別在庫状況を取得する
   * 
   * @param lConnection
   *          コネクション
   * @return branchStockListTxt 支店別在庫状況リスト
   * @throws SIDBException
   */
  public String getBranchStockListTxt(Connection lConnection) {
    String lCmdtyCode = this.cmdtyCode;
    String lIndividualCode = this.individualCode;
    String lSplitter = "・";
    try {
      String branchStockListTxt = SIBGUtil.getBranchStockTxt(lConnection, lCmdtyCode, lIndividualCode, "", lSplitter, true);
      return branchStockListTxt;
    } catch (Exception e) {
      return "";
    }
  }
  
  // 7.3.0 PI-NES0501 追加 ここまで
  /**
   * <b>sellEnable</b> 販売開始かどうかをチェックします。
   * 
   * @param なし
   * @return 販売開始かどうかフラグ
   * @throws なし
   */
  public boolean sellEnable() {
    SIDateTime lDateTime = new SIDateTime();
    boolean lRes = false;
    
    try {
      if (SIUtil.isNull(getSellFromDate()) || !SICheckUtil.dateGreater(getSellFromDate(), lDateTime.getFullDate())) {
        lRes = getAmountFlg().equals("0") || getNoStockFlg().equals("1") || SICheckUtil.isGreater(getTotal(), "0");
      }
    } catch (ParseException e) {
      e.printStackTrace();
    } catch (SIException e) {
      e.printStackTrace();
    }
    return lRes;
  }
  
  /**
   * <b>addCartEnable</b> 画面にカートに入られるあるかどうかをチェックします。
   * 
   * @param なし
   * @return カートに入られるあるかどうかフラグ
   * @throws なし
   */
  public boolean addCartEnable() {
    if (getHasStndrd().equals("1")) return false;// 規格あれば、
    return sellEnable();
  }
  
  /**
   * <b>stndrdEnable</b> 規格があるかどうかをチェックします。
   * 
   * @param なし
   * @return 規格があるかどうかフラグ
   * @throws なし
   */
  public boolean stndrdEnable() {
    return stndrdEnable(false);
  }
  
  public boolean stndrdEnable(boolean lElementEnable) {
    if (getHasStndrd().equals("0")) return false;// 規格なければ
    return !lElementEnable;// 規格ある、かつ、規格取得される
  }
  
  /**
   * <b>rsrvEnable</b> 予約商品であるかどうかをチェックします。
   * 
   * @param なし
   * @return 予約商品であるかどうか
   * @throws なし
   */
  public boolean rsrvEnable() {
    return rsrvEnable(false);
  }
  
  public boolean rsrvEnable(boolean lElementEnable) {
    if (getRsrvEnableFlg().equals("0")) return false;
    if (SIUtil.isNull(getSellFromDate())) return false;
    if (getHasStndrd().equals("1") && !lElementEnable) return false;
    
    SIDateTime lDateTime = new SIDateTime();
    boolean lRes = false;
    try {
      lRes = SICheckUtil.dateGreater(getSellFromDate(), lDateTime.getFullDate());
    } catch (ParseException e) {
      e.printStackTrace();
    } catch (SIException e) {
      e.printStackTrace();
    }
    return lRes;
  }
  
  /**
   * <b>getCalcUnitPrice</b> 勘定の価格{本体価格とか値引き価格}
   * 
   * @param lConnection
   *          データベースへのコネンクション
   * @return なし
   * @throws なし
   */
  public String getCalcUnitPrice() {
    return this.calcUnitPrice;
  }
  
  /**
   * <b>getUnitPriceAftDis</b> 値引き期間中の値引き後の購入値段(税を計算しない)
   * 
   * @param なし
   * @return 値引き後の購入値段(税を計算しない)
   * @throws なし
   */
  public String getUnitPriceAftDis() {
    // SIDateTime lDateTime = new SIDateTime();
    String lResPirce = getCalcUnitPrice();
    String lRate = "0";
    try {
      lRate = SIUtil.sub_LD("1", SIUtil.div_DL(getMSDiscountRate(), "100"));
    } catch (SIFatalException e) {
      e.printStackTrace();
    }
    lResPirce = SIUtil.multi_LD(lResPirce, lRate);
    
    return lResPirce;
  }
  
  public String getFinalUnitPrice() {
    String lResPirce = getCalcUnitPrice();
    String MSDiscountRate = "0";
    String MemberDiscountRate = "0";
    
    try {
      MSDiscountRate = SIUtil.sub_LD("1", SIUtil.div_DL(getMSDiscountRate(), "100"));
      MemberDiscountRate = SIUtil.sub_LD("1", SIUtil.div_DL(getCalcMemberDiscountRate(), "100"));
    } catch (SIFatalException e) {
      e.printStackTrace();
    }
    
    // 特価に対して値引を行う場合
    if (this.calcUnitPrice.equals(this.salesUnitPrice) && this.salesDiscountFlg.equals("1")) {
      // 一括値引の適用
      if (!this.discountFlg.equals("0") && !this.memberDiscountFlg.equals("1")) {
        lResPirce = SIUtil.multi_LD(lResPirce, MSDiscountRate);
      }
      // 会員値引の適用
      if (!this.memberDiscountFlg.equals("0")) {
        lResPirce = SIUtil.multi_LD(lResPirce, MemberDiscountRate);
      }
      // 上記以外の場合
    } else {
      // 通常価格の取得
      String lUnitPrice = this.getUnitPrice();
      
      // 一括値引の適用
      if (!this.discountFlg.equals("0") && !this.memberDiscountFlg.equals("1")) {
        lUnitPrice = SIUtil.multi_LD(lUnitPrice, MSDiscountRate);
      }
      // 会員値引の適用
      if (!this.memberDiscountFlg.equals("0")) {
        lUnitPrice = SIUtil.multi_LD(lUnitPrice, MemberDiscountRate);
      }
      
      // 通常価格に値引適用した金額(A)が、特価（値引なし）を下回る場合には(A)を適用する
      if (Integer.parseInt(lUnitPrice) < Integer.parseInt(lResPirce)) {
        lResPirce = lUnitPrice;
      }
    }
    return lResPirce;
  }
  
  public String getFinalUnitPriceWithoutTax() {
    // 値引がない場合はそのまま出す
    if (getUnitPrice().equals(getFinalUnitPrice())) return getUnitPriceWithoutTax();
    // 税込最終金額に対して税引き換算
    return SIUtil.getPriceWithoutTax(getFinalUnitPrice(),getTaxRate());
  }
  
  /**
   * <b>getUnitPriceAftDisIncTax</b> 値引き期間中の値引き後の購入値段、この値段は、税フラグを含めて、計算した後の値段
   * 
   * @param なし
   * @return なし
   * @throws なし
   */
  public String getUnitPriceAftDisIncTax() {
    String lTax = "0";
    try {
      if (getTaxFlg().equals("1")) {
        lTax = SIUtil.multi_LD(getUnitPriceAftDis(), SIUtil.div_DL(getTaxRate(), "100"));
      }
    } catch (SIFatalException e) {
      e.printStackTrace();
    }
    // log.debug("getUnitPriceAftDisIncTax:getUnitPriceAftDis()="+getUnitPriceAftDis()+",lTax="+lTax);
    return SIUtil.add_LL(getUnitPriceAftDis(), lTax);
  }
  
  public String getFinalUnitPriceIncTax() {
    String lTax = "0";
    try {
      if (getTaxFlg().equals("1")) {
        lTax = SIUtil.multi_LD(getFinalUnitPrice(), SIUtil.div_DL(getTaxRate(), "100"));
      }
    } catch (SIFatalException e) {
      e.printStackTrace();
    }
    log.debug("getFinalUnitPriceIncTax:getFinalUnitPrice()=" + getFinalUnitPrice() + ",lTax=" + lTax);
    return SIUtil.add_LL(getFinalUnitPrice(), lTax);
  }
  
  /**
   * <b>getCalcUnitPriceIncTax</b> 値引き前の値段（税込み）
   * 
   * @param lConnection
   *          データベースへのコネンクション
   * @return なし
   * @throws なし
   */
  public String getCalcUnitPriceIncTax() {
    String lTax = "0";
    try {
      if (getTaxFlg().equals("1")) {
        lTax = SIUtil.multi_LD(getCalcUnitPrice(), SIUtil.div_DL(getTaxRate(), "100"));
      }
    } catch (SIFatalException e) {
      e.printStackTrace();
    }
    return SIUtil.add_LL(getUnitPriceAftDis(), lTax);
  }
  
  public String getUnitPriceIncTax() {
    String lTax = "0";
    try {
      if (getTaxFlg().equals("1")) {
        lTax = SIUtil.multi_LD(getUnitPrice(), SIUtil.div_DL(getTaxRate(), "100"));
      }
    } catch (SIFatalException e) {
      e.printStackTrace();
    }
    return SIUtil.add_LL(getUnitPrice(), lTax);
  }
  
  public String getNewFixedPriceIncTax() {
    String lTax = "0";
    try {
      if (getTaxFlg().equals("1")) {
        lTax = SIUtil.multi_LD(getNewFixedPrice(), SIUtil.div_DL(getTaxRate(), "100"));
      }
    } catch (SIFatalException e) {
      e.printStackTrace();
    }
    return SIUtil.add_LL(getNewFixedPrice(), lTax);
  }
  
  // getter of 値引期間FROM
  public String getDiscountFromDate() {
    return SIDateTime.getDate(getDiscountFromDateYear(), getDiscountFromDateMonth(), getDiscountFromDateDay());
  }
  
  // getter of 値引期間TO
  public String getDiscountToDate() {
    return SIDateTime.getDate(getDiscountToDateYear(), getDiscountToDateMonth(), getDiscountToDateDay());
  }
  
  // getter of 値引期間FROMの年
  public String getDiscountFromDateYear() {
    return this.discountFromDateYear;
  }
  
  // getter of 値引期間FROMの月
  public String getDiscountFromDateMonth() {
    return this.discountFromDateMonth;
  }
  
  // getter of 値引期間FROMの日
  public String getDiscountFromDateDay() {
    return this.discountFromDateDay;
  }
  
  // getter of 値引期間TOの年
  public String getDiscountToDateYear() {
    return this.discountToDateYear;
  }
  
  // getter of 値引期間TOの月
  public String getDiscountToDateMonth() {
    return this.discountToDateMonth;
  }
  
  // getter of 値引期間TOの日
  public String getDiscountToDateDay() {
    return this.discountToDateDay;
  }
  
  // getter of 値引き率
  public String getDiscountRate() {
    return this.discountRate;
  }
  
  /**
   * <b>getCalcDiscountRate</b> ショップ値引率の取得
   * 
   * @param なし
   * @return ショップ値引率
   * @throws なし
   */
  public String getCalcDiscountRate() {
    SIDateTime lDateTime = new SIDateTime();
    // log.debug("getDiscountFromDate="+getDiscountFromDate()+",getDiscountToDate="+getDiscountToDate());
    try {
      if (SIUtil.isNotNull(getDiscountFromDate()) && SIUtil.isNotNull(getDiscountToDate())) {
        if (!SICheckUtil.dateGreater(getDiscountFromDate(), lDateTime.getFullDate()) && !SICheckUtil.dateLess(getDiscountToDate(), lDateTime.getFullDate())) { return getDiscountRate(); }
      } else if (SIUtil.isNull(getDiscountFromDate()) && SIUtil.isNotNull(getDiscountToDate())) {
        if (!SICheckUtil.dateLess(getDiscountToDate(), lDateTime.getFullDate())) { return getDiscountRate(); }
      } else if (SIUtil.isNotNull(getDiscountFromDate()) && SIUtil.isNull(getDiscountToDate())) {
        if (!SICheckUtil.dateGreater(getDiscountFromDate(), lDateTime.getFullDate())) { return getDiscountRate(); }
      }
    } catch (ParseException e) {
      e.printStackTrace();
    } catch (SIException e) {
      e.printStackTrace();
    }
    return "0";
  }
  
  /**
   * <b>getMSDiscountRate</b> 1.モール決済の場合には、値引き=モール値引率+ショップ値引率
   * 2.ショップ決済の場合には、値引き=ショップ値引率
   * 
   * @param lConnection
   *          データベースへのコネンクション
   * @return なし
   * @throws なし
   */
  public String getMSDiscountRate() {
    String lRes = "0";
    
    // 7.2.0 ST1051 修正 ここから
    if (this.discountFlg.equals("2")) {
      lRes = SIConfig.SIMALL.getCalcDiscountRate();
    } else if (this.discountFlg.equals("1")) {
      lRes = this.getCalcDiscountRate();
    }
    /*
     * if (SIConfig.SIRUNNING_MODE_CURRENT
     * ==SIConfig.SIRUNNING_MODE_TOGETHER){//モール決済
     * lRes=SIConfig.SIMALL.getCalcDiscountRate(); }
     */
    // 7.2.0 ST1051 修正 ここまで
    return SIUtil.CheckDiscount(lRes);
  }
  
  public String getFinalDiscountRate() {
    return SIUtil.CheckDiscount(SIUtil.add_LL(getMSDiscountRate(), getCalcMemberDiscountRate()));
  }
  
  public boolean getWrappingFlgB() {
    if (getWrappingFlg().equals("1")) return true;
    else return false;
  }
  
  public float getStars() {
    return Float.parseFloat(this.stars);
  }
  
  public String getDeliveryTypeCode() {
    return this.deliveryTypeCode;
  }
  
  public String getDeliveryTypeName() {
    return this.deliveryTypeName;
  }
  
  public String getMemberDiscountRate() {
    return this.memberDiscountRate;
  }
  
  public String getCalcMemberDiscountRate() {
    if (!this.getMemberDiscountFlg().equals("0")) return getMemberDiscountRate();// 7.2.0
                                                                                  // ST1051
                                                                                  // 修正
    else return "0";
  }
  
  public String getInStockFlg() {
    return this.inStockFlg;
  }
  
  // getter of ランキング順位
  public String getRanking() {
    return this.ranking;
  }
  
  // getter of ランキング集計日時
  public String getRankingDateTime() {
    return this.rankingDateTime;
  }
  
  // getter of 登録日時
  public String getInitDateTime() {
    return this.initDateTime;
  }
  
  // 7.1.1 ST0195 追加 ここから
  // getter of カテゴリリスト
  public ArrayList getCtgryList() {
    if (this.ctgryList == null) return new ArrayList();
    else return this.ctgryList;
  }
  
  // 7.1.1 ST0195 追加 ここまで
  
  // 在庫管理フラグに応じてFrontで表示する在庫量を取得する
  public String getFrontInStock() {
    // コメント選択時のみ表示
    if (this.getAmountFlg().equals("0")) return "";
    if (this.getNoStockFlg().equals("1")) return "";
    
    if (this.getInStockFlg().equals("1")) {
      if (Integer.parseInt(this.getAmount()) >= 0) return "在庫数： " + this.getAmount();
      else return "在庫数： 0";
    } else if (SIUtil.isNotNull(this.getStockStatusCode()) && SIUtil.isNotNull(this.getCommentOfStock())) {
      return "在庫： " + this.getCommentOfStock();
    } else return "";
  }
  
  // 7.2.0 ST1051 追加 ここから
  // getter of 一括値引フラグ
  public String getDiscountFlg() {
    return this.discountFlg;
  }
  
  // getter of 特価値引フラグ
  public String getSalesDiscountFlg() {
    return this.salesDiscountFlg;
  }
  
  // 7.2.0 ST1051 追加 ここまで
  
  public String getConsignGoodsFee() {
    return consignGoodsFee;
  }
  
  public void setConsignGoodsFee(String consignGoodsFee) {
    if (SIUtil.isNull(consignGoodsFee)) consignGoodsFee = "0";
    this.consignGoodsFee = consignGoodsFee;
  }
  
  public String getExpansionComment1Text() {
    return expansionComment1Text;
  }
  
  public void setExpansionComment1Text(String expansionComment1Text) {
    if (SIUtil.isNull(expansionComment1Text)) expansionComment1Text = "";
    this.expansionComment1Text = expansionComment1Text;
  }
  
  public String getExpansionComment1Title() {
    return expansionComment1Title;
  }
  
  public void setExpansionComment1Title(String expansionComment1Title) {
    if (SIUtil.isNull(expansionComment1Title)) expansionComment1Title = "";
    this.expansionComment1Title = expansionComment1Title;
  }
  
  public String getExpansionComment2Text() {
    return expansionComment2Text;
  }
  
  public void setExpansionComment2Text(String expansionComment2Text) {
    if (SIUtil.isNull(expansionComment2Text)) expansionComment2Text = "";
    this.expansionComment2Text = expansionComment2Text;
  }
  
  public String getExpansionComment2Title() {
    return expansionComment2Title;
  }
  
  public void setExpansionComment2Title(String expansionComment2Title) {
    if (SIUtil.isNull(expansionComment2Title)) expansionComment2Title = "";
    this.expansionComment2Title = expansionComment2Title;
  }
  
  public String getExpansionComment3Text() {
    return expansionComment3Text;
  }
  
  public void setExpansionComment3Text(String expansionComment3Text) {
    if (SIUtil.isNull(expansionComment3Text)) expansionComment3Text = "";
    this.expansionComment3Text = expansionComment3Text;
  }
  
  public String getExpansionComment3Title() {
    return expansionComment3Title;
  }
  
  public void setExpansionComment3Title(String expansionComment3Title) {
    if (SIUtil.isNull(expansionComment3Title)) expansionComment3Title = "";
    this.expansionComment3Title = expansionComment3Title;
  }
  
  public String getExpansionComment4Text() {
    return expansionComment4Text;
  }
  
  public void setExpansionComment4Text(String expansionComment4Text) {
    if (SIUtil.isNull(expansionComment4Text)) expansionComment4Text = "";
    this.expansionComment4Text = expansionComment4Text;
  }
  
  public String getExpansionComment4Title() {
    return expansionComment4Title;
  }
  
  public void setExpansionComment4Title(String expansionComment4Title) {
    if (SIUtil.isNull(expansionComment4Title)) expansionComment4Title = "";
    this.expansionComment4Title = expansionComment4Title;
  }
  
  public String getExpansionComment5Title() {
    return expansionComment5Title;
  }

  public void setExpansionComment5Title(String expansionComment5Title) {
    if (SIUtil.isNull(expansionComment5Title)) expansionComment5Title = "";
    this.expansionComment5Title = expansionComment5Title;
  }

  public String getExpansionComment5Text() {
    return expansionComment5Text;
  }

  public void setExpansionComment5Text(String expansionComment5Text) {
    if (SIUtil.isNull(expansionComment5Text)) expansionComment5Text = "";
    this.expansionComment5Text = expansionComment5Text;
  }

  public String getMycatalogFlg() {
    return mycatalogFlg;
  }
  
  public void setMycatalogFlg(String mycatalogFlg) {
    if (SIUtil.isNull(mycatalogFlg)) mycatalogFlg = "0";
    this.mycatalogFlg = mycatalogFlg;
  }
  
  public String getSpecialRate() {
    return specialRate;
  }
  
  public void setSpecialRate(String specialRate) {
    if (SIUtil.isNull(specialRate)) specialRate = "1.0";
    this.specialRate = specialRate;
  }
  
  /**
   * <b>reset</b> 修正モードの場合には、PKのデータを元に、明細データをデータベースから取り込んで 画面に表示します。
   * 
   * @param lConnection
   *          データベースへのコネンクション
   * @return なし
   * @throws なし
   */
  public boolean reset(Connection lConnection, boolean starsEnable, boolean dispCheck) {
    boolean lResult = false;
    if (SIUtil.isNull(this.getCmdtyCode())) return lResult;
    ResultSet lResultSet = null;
    Statement lStatement = null;
    
    StringBuffer lSqlBuf = new StringBuffer();
    lSqlBuf.append("SELECT aa.*,COALESCE((SELECT TaxRate FROM TaxVW),0) AS TaxRate ");
    lSqlBuf.append(",CASE WHEN aa.deliveryTypeCode='0' AND aa.cmdtySize IN ('1','7') THEN 1 ");// 送料無料（個別AGサイズ）
    lSqlBuf.append("      WHEN aa.deliveryTypeCode='1' AND aa.unitPrice>=feerule.price THEN 1 ");// 送料無料（小物1万円以上）
    lSqlBuf.append(" ELSE 0 END AS freedeliveryflg ");
    lSqlBuf.append(" ,(SELECT InStockFlg FROM MallVW ) AS InStockFlg ");
    lSqlBuf.append(" ,dd.InquiryFlg,dd.arrivalScheduleMsg,color.colorname,maker.makername,maker.URL ");
    /*
     * lSqlBuf.append(",CASE WHEN aa.cmdtycode"); lSqlBuf.append(" IN(SELECT
     * cc.cmdtycode FROM cmdtyctgrymtbl cc,ctgryvw ct WHERE cc.ctgrycode =
     * ct.ctgrycode"); lSqlBuf.append(" AND ("); for (int i=0;i<SIConfig.LOGINCTGRY.length;i++){
     * if (i>0) lSqlBuf.append(" OR "); lSqlBuf.append(" (ct.branch LIKE
     * '%~").append(SIDBUtil.SQL2Like(SIConfig.LOGINCTGRY[i])).append("%'");
     * lSqlBuf.append(" OR ct.ctgrycode =
     * ").append(SIDBUtil.SQL2Str(SIConfig.LOGINCTGRY[i], ")")); }
     * lSqlBuf.append(")) THEN '1' ELSE '0' END AS loginflg ");
     */
    lSqlBuf.append(",0 AS loginflg ");
    lSqlBuf.append(",CASE WHEN point2.BonusPointRate IS NOT NULL THEN point2.BonusPointRate WHEN point.BonusPointRate IS NOT NULL THEN point.BonusPointRate ELSE NULL END AS pointRate ");
    lSqlBuf.append(",(SELECT CASE WHEN bonusfromdate <= current_date AND bonustodate >= current_date THEN bonuspointrate ELSE pointrate END FROM pointshopmtbl) AS nomalPointRate ");
    lSqlBuf.append(",(SELECT CASE WHEN bonusfromdate <= current_date AND bonustodate >= current_date THEN specialrate ELSE 1.0 END FROM pointshopmtbl) AS specialRate ");
    lSqlBuf.append(",CASE WHEN aa.InitDateTime + bb.daysofnew >= current_date THEN '1' ");
    lSqlBuf.append("ELSE '0' END AS NewArrivalFlg ");
    if (starsEnable) {
      lSqlBuf.append(",(SELECT CAST(ROUND(AVG(AmountOfStars)*2)*0.5 AS NUMERIC(3,1)) ");
      lSqlBuf.append("FROM ReviewTbl WHERE ShopCode=aa.ShopCode AND CmdtyCode=aa.CmdtyCode AND DispFlg='1' ) AS Stars ");
    }
    lSqlBuf
        .append(",dd.ExpansionComment1Title,dd.ExpansionComment1Text,dd.ExpansionComment2Title,dd.ExpansionComment2Text,dd.ExpansionComment3Title,dd.ExpansionComment3Text,dd.ExpansionComment4Title,dd.ExpansionComment4Text ");
    // EDBTG005-00 kamata add start
    lSqlBuf.append(",dd.ExpansionComment5Title,dd.ExpansionComment5Text ");
    // EDBTG005-00 kamata add end
    lSqlBuf.append(",dd.catchcopy, dd.specification, dd.activeingredient, dd.component, dd.precaution, dd.othernotice ");
    lSqlBuf.append(",(aa.amount-unit.bgpamount) AS amountR ");
    lSqlBuf.append("FROM  CmdtyVW AS aa ");
    lSqlBuf.append("LEFT OUTER JOIN (SELECT BonusPointRate,CtgryCode FROM BonusPointTbl WHERE bonusfromdate <= current_date AND bonustodate >= current_date) AS point ");
    lSqlBuf.append("ON (substring(aa.individualcode,0,3)=point.CtgryCode) ");
    lSqlBuf.append("LEFT OUTER JOIN (SELECT BonusPointRate,CmdtyCode,IndividualCode FROM BonusPointIndividualTbl WHERE bonusfromdate <= current_date AND bonustodate >= current_date) AS point2 ");
    lSqlBuf.append("ON (aa.individualcode=point2.IndividualCode AND aa.cmdtycode=point2.CmdtyCode) ");
    lSqlBuf.append(",(SELECT FrontDispFlg,SoldOutDate,InquiryFlg,arrivalScheduleMsg,CmdtyCode,IndividualCode,");
    lSqlBuf
        .append("ExpansionComment1Title,ExpansionComment1Text,ExpansionComment2Title,ExpansionComment2Text,ExpansionComment3Title,ExpansionComment3Text,ExpansionComment4Title,ExpansionComment4Text ");
    // EDBTG005-00 kamata add start
    lSqlBuf.append(",ExpansionComment5Title,ExpansionComment5Text ");
    // EDBTG005-00 kamata add end
    lSqlBuf.append(",catchcopy, specification, activeingredient, component, precaution, othernotice ");
    lSqlBuf.append("FROM IndividualTbl) AS dd ");
    lSqlBuf.append(",(SELECT CASE WHEN makercode IN ('1230','1231','1232') THEN 'ポール･シェリーM-products' ELSE makername END AS makername,makercode,contractflg,url FROM makertbl) AS maker ");
    lSqlBuf.append(",colortbl color ");
    lSqlBuf.append(",MallShopMtbl bb ");
    lSqlBuf.append(",cmdtyunittbl unit ");
    lSqlBuf.append(",feerulemtbl feerule ");
    lSqlBuf.append("WHERE aa.ShopCode=").append(SIDBUtil.SQL2Str(getShopCode(), " "));
    lSqlBuf.append("AND aa.CmdtyCode=").append(SIDBUtil.SQL2Str(getCmdtyCode(), " "));
    lSqlBuf.append("AND aa.IndividualCode=").append(SIDBUtil.SQL2Str(getIndividualCode(), " "));
    lSqlBuf.append("AND aa.CmdtyCode=dd.CmdtyCode AND aa.IndividualCode=dd.IndividualCode ");
    lSqlBuf.append("AND aa.MakerCode=maker.MakerCode ");
    lSqlBuf.append("AND aa.individualcode=unit.individualcode ");
    lSqlBuf.append("AND aa.colorcode=color.colorcode ");
    lSqlBuf.append("AND aa.ShopCode=bb.MallShopCode ");
    lSqlBuf.append("AND aa.ShopCode=feerule.MallShopCode ");
    lSqlBuf.append("AND aa.deliverytypecode=feerule.deliverytypecode ");
    
    if (dispCheck) {
      lSqlBuf.append(" AND bb.Status='1' ");
      lSqlBuf.append(" AND dd.FrontDispFlg='1' ");
      lSqlBuf
          .append(" AND NOT(aa.usedNewFlg!='1' AND aa.usednewFlg!='7' AND aa.AmountFlg='1' AND aa.Amount='0' AND (aa.RsrvEnableFlg='0' OR (aa.RsrvAmount IS NOT NULL AND aa.RsrvAmount='0')) AND (dd.SoldOutDate IS NULL OR dd.SoldOutDate+"
              + SIConfig.DEFAULT_SOLDOUT + " <= current_date))");
    }
    log.debug("reset:lSqlBuf=" + lSqlBuf.toString());
    try {
      lStatement = lConnection.createStatement();
      lResultSet = lStatement.executeQuery(lSqlBuf.toString());// 実行
      
      if (lResultSet.next()) {
        this.setEncode(SIConfig.SIENCODE_NONE);
        this.setShopCode(lResultSet.getString("shopCode"));// ショップコード
        this.setCmdtyCode(lResultSet.getString("cmdtyCode"));// 商品コード
        this.setIndividualCode(lResultSet.getString("individualCode"));// 商品コード
        this.setFrontShopName(lResultSet.getString("frontShopName"));// ショップ名
        this.setShopName(lResultSet.getString("frontShopName"));// ショップ名
        this.setJanCode(lResultSet.getString("janCode"));// janコード
        this.setCmdtyName(lResultSet.getString("cmdtyName"));// 商品名
        this.setDescription(lResultSet.getString("description"));// 商品詳細
        this.setStockCode(lResultSet.getString("stockCode"));// 仕入れコード
        this.setStockUnitPrice(lResultSet.getString("stockUnitPrice"));// 仕入れ価格
        this.setUnitPrice(lResultSet.getString("unitPrice"));// 価格
        this.setUnitPriceWithoutTax(lResultSet.getString("unitPriceWithoutTax"));// 価格税抜
        this.setSalesUnitPrice(lResultSet.getString("SalesUnitPrice"));// 特別価格
        this.setTaxFlg(lResultSet.getString("taxFlg"));// 税区分
        this.setAdviceFlg(lResultSet.getString("adviceFlg"));// おすすめ
        this.setAdviceDispOrder(lResultSet.getString("adviceDispOrder"));// おすすめ表示順
                                                                          // //7.2.0
                                                                          // ST0286
                                                                          // 追加
        this.setBannerFile(lResultSet.getString("bannerFile"));// バナーファイル
        this.setBannerURL(lResultSet.getString("bannerURL"));// バナー先
        this.setMemberDiscountFlg(lResultSet.getString("memberDiscountFlg"));// 会員値引フラグ
        // 7.2.0 ST1051 追加 ここから
        this.setDiscountFlg(lResultSet.getString("DISCOUNTFLG"));// 一括値引フラグ
        this.setSalesDiscountFlg(lResultSet.getString("SALESDISCOUNTFLG"));// 特価値引フラグ
        // 7.2.0 ST1051 追加 ここまで
        this.setSrchKeyName1(lResultSet.getString("srchKeyName1"));// 検索項目1
        this.setSrchKeyName2(lResultSet.getString("srchKeyName2"));// 検索項目2
        this.setSrchKeyName3(lResultSet.getString("srchKeyName3"));// 検索項目3
        this.setCmdtySize(lResultSet.getString("cmdtySize"));// 商品サイズ
        this.setSellFromDate(SIDBUtil.getDate(lResultSet.getTimestamp("sellFromDate")));// 販売開始日
        this.setEndSellFlg(lResultSet.getString("endSellFlg"));// 販売終了フラグ
        this.setSellToDate(SIDBUtil.getDate(lResultSet.getTimestamp("sellToDate")));// 販売終了日
        this.setSalesFromDate(SIDBUtil.getDate(lResultSet.getTimestamp("salesFromDate")));// 特別価格開始日
        this.setSalesToDate(SIDBUtil.getDate(lResultSet.getTimestamp("salesToDate")));// 特別価格終了日
        this.setRsrvEnableFlg(lResultSet.getString("rsrvEnableFlg"));// 予約販売
        this.setWrappingFlg(lResultSet.getString("wrappingFlg"));// ラッピングフラグ
        this.setNoStockFlg(lResultSet.getString("noStockFlg"));// 在庫無販売
        this.setAmount(lResultSet.getString("amountR"));// 商品数量
        this.setRsrvAmount(lResultSet.getString("rsrvAmount"));// 予約可能数量
        this.setAmountFlg(lResultSet.getString("amountFlg"));// 商品数量管理フラグ
        this.setTotal(lResultSet.getString("total"));// 商品の総数
        this.setStockStatusCode(lResultSet.getString("stockStatusCode"));// 在庫状況番号
        this.setNewFlg(lResultSet.getString("newFlg"));// 商品新フラグ
        this.setHasStndrd(lResultSet.getString("hasStndrd"));// 商品新フラグ
        this.setCommentOfStock(lResultSet.getString("commentOfStock"));// 在庫状況コメント
        this.setSalesFlg(lResultSet.getString("salesFlg"));// 特価品フラグ
        this.setCalcUnitPrice(lResultSet.getString("calcUnitPrice"));// 勘定価格
        this.setTaxRate(lResultSet.getString("taxRate"));// 税率
        this.setDiscountFromDate(SIDBUtil.getDate(lResultSet.getTimestamp("discountfromdate")));// 値引き期間From
        this.setDiscountToDate(SIDBUtil.getDate(lResultSet.getTimestamp("discounttodate")));// 値引き期間To
        this.setDiscountRate(lResultSet.getString("discountRate"));// 値引率
        this.setDeliveryTypeCode(lResultSet.getString("deliveryTypeCode"));// 配送種別コード
        this.setDeliveryTypeName(lResultSet.getString("deliveryTypeName"));// 配送種別名称
        this.setInStockFlg(lResultSet.getString("InStockFlg"));// 在庫管理フラグ
        if (starsEnable) this.setStars(lResultSet.getString("stars"));// 星数
        this.setRanking(lResultSet.getString("Ranking"));// ランキング順位
        this.setImageName1(lResultSet.getString("imagename1"));
        this.setImageName2(lResultSet.getString("imagename2"));
        this.setImageName3(lResultSet.getString("imagename3"));
        this.setImageName4(lResultSet.getString("imagename4"));
        this.setImageName5(lResultSet.getString("imagename5"));
        this.setRankingDateTime(SIDBUtil.getDateTime(lResultSet.getTimestamp("RankingDateTime")));// ランキング集計日時
        this.setInitDateTime(SIDBUtil.getDateTime(lResultSet.getTimestamp("InitDateTime")));// 登録日時
        // 7.3.0 PI-NES0501 追加 ここから
        this.setColorCode(lResultSet.getString("ColorCode"));// 色コード
        this.setColorName(lResultSet.getString("ColorName"));// 色名
        this.setMakerCode(lResultSet.getString("MakerCode"));// ブランドコード
        this.setMakerName(lResultSet.getString("MakerName"));// ブランド名
        this.setTenureOfUse(lResultSet.getInt("TenureOfUse"));// 使用年数（月単位）
        this.setGuaranteedTerm(lResultSet.getInt("GuaranteedTerm"));// 保証期間（月単位）
        this.setNewFixedPrice(lResultSet.getString("NewFixedPrice"));// M価
        this.setBGPriceDispFlg(lResultSet.getString("BGPriceDispFlg"));// BG卸価フロント表示フラグ
        this.setUsedNewFlg(lResultSet.getInt("UsedNewFlg"));// 中古新品フラグ
        this.setSalesSituationFlg(lResultSet.getString("SalesSituationFlg"));// 販売状況
        this.setInquiryFlg(lResultSet.getString("InquiryFlg"));// 問合せ区分
        this.setArrivalScheduleMsg(lResultSet.getString("ArrivalScheduleMsg"));
        this.setPointRate(lResultSet.getString("pointRate"));// ボーナスポイントレート
        this.setNomalPointRate(lResultSet.getString("nomalPointRate"));// 通常ポイントレート
        this.setSpecialRate(lResultSet.getString("specialRate"));// ボーナス倍率
        this.setCampaignPriceFlg(lResultSet.getString("CampaignPriceFlg"));// キャンペーン特価区分
        this.setNewArrivalFlg(lResultSet.getString("NewArrivalFlg"));// 新着フラグ
        this.setFreeDeliveryFlg(lResultSet.getString("freeDeliveryFlg"));
        this.setPriceDownFlg(lResultSet.getString("priceDownFlg"));
        this.setExpansionComment1Text(lResultSet.getString("expansionComment1Text"));
        this.setExpansionComment1Title(lResultSet.getString("expansionComment1Title"));
        this.setExpansionComment2Text(lResultSet.getString("expansionComment2Text"));
        this.setExpansionComment2Title(lResultSet.getString("expansionComment2Title"));
        this.setExpansionComment3Text(lResultSet.getString("expansionComment3Text"));
        this.setExpansionComment3Title(lResultSet.getString("expansionComment3Title"));
        this.setExpansionComment4Text(lResultSet.getString("expansionComment4Text"));
        this.setExpansionComment4Title(lResultSet.getString("expansionComment4Title"));
        // EDBTG005-00 kamata add start
        this.setExpansionComment5Text(lResultSet.getString("expansionComment5Text"));
        this.setExpansionComment5Title(lResultSet.getString("expansionComment5Title"));
        // EDBTG005-00 kamata add end
        // EDBTG003-00 nagayoshi add start
        this.setCmdtyCompositionFlg(lResultSet.getString("cmdtyCompositionFlg"));
        this.setImageName6(lResultSet.getString("imagename6"));
        this.setImageName7(lResultSet.getString("imagename7"));
        this.setImageName8(lResultSet.getString("imagename8"));
        this.setImageName9(lResultSet.getString("imagename9"));
        this.setImageName10(lResultSet.getString("imagename10"));
        this.setImageName11(lResultSet.getString("imagename11"));
        // EDBTG003-00 nagayoshi add end
        // 7.3.0 PI-NES0501 追加 ここまで
        this.setMakerURL(lResultSet.getString("URL"));

        this.setCatchcopy(lResultSet.getString("catchcopy"));
        this.setSpecification(lResultSet.getString("specification"));
        this.setActiveingredient(lResultSet.getString("activeingredient"));
        this.setComponent(lResultSet.getString("component"));
        this.setPrecaution(lResultSet.getString("precaution"));
        this.setOthernotice(lResultSet.getString("othernotice"));

        // 7.1.1 ST0195 修正 ここから
        if (dispCheck) lResult = setCtgryList(lConnection);
        else lResult = true;
        // 7.1.1 ST0195 修正 ここまで
        
        this.setLoginFlg(lResultSet.getString("loginflg").equals("1"));
      } else {
        log.error("not find record for cmdtyCode=" + getCmdtyCode());
      }
    } catch (SQLException sqle) {
      sqle.printStackTrace();
    } finally {
      if (lStatement != null) try {
        lStatement.close();
      } catch (SQLException sqle) {
        sqle.printStackTrace();
      }
      if (lResultSet != null) try {
        lResultSet.close();
      } catch (SQLException sqle) {
        sqle.printStackTrace();
      }
    }
    return lResult;
  }
  
  public boolean reset(Connection lConnection) {
    return reset(lConnection, false);
  }
  
  public boolean reset(Connection lConnection, boolean starsEnable) {
    return reset(lConnection, starsEnable, false);
  }
  
  public static Collection getUsedNewListColl(Connection lConnection, String ctgry, String maker, String keyWord) {
    Collection lResultColl = new ArrayList();
    StringBuffer sqlStr = new StringBuffer();
    
    sqlStr.append("SELECT DISTINCT CASE WHEN i.usednewflg IN ('2','4') THEN 'アウトレット' ");
    sqlStr.append("WHEN i.usednewflg IN('0','3','5') THEN '中古品' ELSE '新品' END");
    sqlStr.append(",CASE WHEN i.usednewflg IN ('2','4') THEN 'outlet' WHEN i.usednewflg IN('0','3','5') THEN 'used' ELSE 'new' END");
    sqlStr.append(",CASE WHEN i.usednewflg IN ('2','4') THEN '1' WHEN i.usednewflg IN('0','3','5') THEN '2' ELSE '0' END AS sortindex ");
    sqlStr.append("FROM cmdtyunittbl i,cmdtyctgrymtbl cc ");
    sqlStr.append("WHERE i.cmdtycode = cc.cmdtycode ");
    if (SIUtil.isNotNull(ctgry) && !ctgry.equals(SIConfig.SICATEGORY_ROOT_CODE)) {
      sqlStr.append("AND cc.ctgrycode IN (SELECT ctgrycode FROM ctgryvw WHERE branch LIKE '%").append(SIDBUtil.SQL2Like("~" + ctgry + "~")).append("%' ");
      sqlStr.append("OR branch like '%").append(SIDBUtil.SQL2Like("~" + ctgry)).append("') ");
    }
    if (SIUtil.isNotNull(maker)) sqlStr.append("AND i.makercode =").append(SIDBUtil.SQL2Str(maker, " "));
    if (SIUtil.isNotNull(keyWord)) {
      sqlStr.append("AND (i.cmdtyname LIKE '%").append(SIDBUtil.SQL2Like(keyWord)).append("%'");
      sqlStr.append(" OR i.description LIKE '%").append(SIDBUtil.SQL2Like(keyWord)).append("%'");
      sqlStr.append(" OR i.individualcode LIKE '%").append(SIDBUtil.SQL2Like(keyWord)).append("%') ");
    }
    sqlStr.append("AND i.frontdispflg=1 AND NOT(i.usednewflg!='1' AND i.usednewflg !='7' AND i.rsrvenableflg='0' AND i.amountflg='1' AND i.amount='0' AND (i.soldoutdate + " + SIConfig.DEFAULT_SOLDOUT
        + " <= CURRENT_DATE)) ");
    sqlStr.append("ORDER BY sortindex");
    
    try {
      lResultColl = SIDBUtil.getCollection(lConnection, sqlStr.toString(), false, false);
    } catch (SIDBAccessException e) {
      e.printStackTrace();
    }
    
    return lResultColl;
  }
  
  public boolean isContract(Connection lConnection, HttpServletRequest request) {
    boolean lResult = false;
    if (SIUtil.isNull(this.getCmdtyCode())) return lResult;
    SIUserInfo lUserInfo = new SIUserInfo();
    if (request != null) lUserInfo = SIHTMLUtil.getUserInfo(request);
    
    StringBuffer chkStr = new StringBuffer();
    chkStr.append("SELECT cmdty.cmdtycode FROM cmdtymtbl cmdty,makertbl maker ");
    chkStr.append("WHERE cmdty.makercode = maker.makercode ");
    chkStr.append("AND cmdty.cmdtycode = ").append(SIDBUtil.SQL2Str(this.cmdtyCode));
    if (lUserInfo.getMaker().length > 0) {
      StringBuffer makerString = new StringBuffer("(");
      for (int i = 0; i < lUserInfo.getMaker().length; i++) {
        makerString.append(SIDBUtil.SQL2Str(lUserInfo.getMaker()[i]));
        makerString.append(i < lUserInfo.getMaker().length - 1 ? "," : ")");
      }
      chkStr.append(" AND CASE WHEN maker.makercode IN ").append(makerString).append(" THEN 1=1 ");
      chkStr.append(" WHEN maker.contractflg='0' THEN 1=1 ELSE 1=2 END ");
    } else {
      chkStr.append(" AND maker.contractflg='0' ");
    }
    try {
      lResult = !SIDBUtil.hasData(lConnection, chkStr.toString());
    } catch (SIDBAccessException e) {
      e.printStackTrace();
    }
    
    return lResult;
  }
  
  public boolean isMailContract(Connection lConnection) {
    boolean lResult = false;
    if (SIUtil.isNull(this.getCmdtyCode())) return lResult;
    
    StringBuffer chkStr = new StringBuffer();
    chkStr.append("SELECT cmdty.cmdtycode FROM cmdtymtbl cmdty,makertbl maker ");
    chkStr.append("WHERE cmdty.makercode = maker.makercode ");
    chkStr.append("AND maker.contractflg IN ('2','3') ");
    chkStr.append("AND cmdty.cmdtycode = ").append(SIDBUtil.SQL2Str(this.cmdtyCode));
    try {
      lResult = SIDBUtil.hasData(lConnection, chkStr.toString());
    } catch (SIDBAccessException e) {
      e.printStackTrace();
    }
    return lResult;
  }
  
  public boolean isHairCosme(HttpServletRequest request) {
    boolean lResult = true;
    if (SIUtil.isNull(this.getCmdtyCode())) return lResult;
    SIUserInfo lUserInfo = new SIUserInfo();
    if (request != null) lUserInfo = SIHTMLUtil.getUserInfo(request);
    
    if ("H".equals(this.getIndividualCode().substring(0, 1)) || "V".equals(this.getIndividualCode().substring(0, 1)) || "L".equals(this.getIndividualCode().substring(0, 1))) {
      if ("1".equals(lUserInfo.getHairCosmeFlg())) lResult = false;
    } else {
      lResult = false;
    }
    return lResult;
  }
  
  public String getPoint(HttpServletRequest request) {
    String totalPoint = "0";
    String memberLevelCode = SIHTMLUtil.getUserInfo(request).getMemberLevelCode();
    try {
      if (SIUtil.isNull(getPointRate())) {
        totalPoint = SIUtil.add_LL(totalPoint, SIUtil.multi_LD(getFinalUnitPriceWithoutTax(), SIUtil.div_DL(getNomalPointRate(), "100")));
      } else {
        totalPoint = SIUtil.add_LL(totalPoint, SIUtil.multi_LD(getFinalUnitPriceWithoutTax(), SIUtil.div_DL(getPointRate(), "100")));
      }
    } catch (SIFatalException e) {
      e.printStackTrace();
      totalPoint = "0";
    }
    String specialPoint = SIUtil.sub(SIUtil.multi(totalPoint, getSpecialRate()), totalPoint);
    if ("1".equals(memberLevelCode)) {
      totalPoint = SIUtil.multi_LD(totalPoint, "1.2");
    } else if ("2".equals(memberLevelCode)) {
      totalPoint = SIUtil.multi_LD(totalPoint, "1.5");
    } else if ("3".equals(memberLevelCode)) {
      totalPoint = SIUtil.multi_LD(totalPoint, "2.0");
    }
    
    totalPoint = SIUtil.add(totalPoint, specialPoint);
    return totalPoint;
  }
  
  public String getPointTxt(HttpServletRequest request) {
    String totalPoint = "0";
    String nomalPoint = "0";
    SIUserInfo manLogin = SIHTMLUtil.getUserInfo(request);
    String memberLevelCode = manLogin.getMemberLevelCode();
    String finalRate = "0";
    String nomalRate = "0";
    boolean vipFlg = false;
    
    try {
      if (SIUtil.isNull(getPointRate())) {
        totalPoint = SIUtil.add_LL(totalPoint, SIUtil.multi_LD(getFinalUnitPriceWithoutTax(), SIUtil.div_DL(getNomalPointRate(), "100")));
        nomalPoint = SIUtil.add_LL(nomalPoint, SIUtil.multi_LD(getUnitPriceWithoutTax(), SIUtil.div_DL(getNomalPointRate(), "100")));
        finalRate = SIUtil.multi_LD("10",getNomalPointRate());
        nomalRate = SIUtil.multi_LD("10",getNomalPointRate());
      } else {
        totalPoint = SIUtil.add_LL(totalPoint, SIUtil.multi_LD(getFinalUnitPriceWithoutTax(), SIUtil.div_DL(getPointRate(), "100")));
        nomalPoint = SIUtil.add_LL(nomalPoint, SIUtil.multi_LD(getUnitPriceWithoutTax(), SIUtil.div_DL(getPointRate(), "100")));
        finalRate = SIUtil.multi_LD("10",getPointRate());
        nomalRate = SIUtil.multi_LD("10",getPointRate());
      }
    } catch (SIFatalException e) {
      e.printStackTrace();
      totalPoint = "0";
    }
    String specialPoint1 = SIUtil.sub(SIUtil.multi(totalPoint, getSpecialRate()), totalPoint);
    String specialPoint2 = SIUtil.sub(SIUtil.multi(nomalPoint, getSpecialRate()), nomalPoint);
    String specialRate = SIUtil.sub(SIUtil.multi(finalRate, getSpecialRate()), finalRate);
    if ("1".equals(memberLevelCode)) {
      totalPoint = SIUtil.multi_LD(totalPoint, "1.2");
      finalRate = SIUtil.multi_LD(finalRate, "1.2");
      vipFlg = true;
    } else if ("2".equals(memberLevelCode)) {
      totalPoint = SIUtil.multi_LD(totalPoint, "1.5");
      finalRate = SIUtil.multi_LD(finalRate, "1.5");
      vipFlg = true;
    } else if ("3".equals(memberLevelCode)) {
      totalPoint = SIUtil.multi_LD(totalPoint, "2.0");
      finalRate = SIUtil.multi_LD(finalRate, "2.0");
      vipFlg = true;
    }
    
    totalPoint = SIUtil.add(totalPoint, specialPoint1);
    nomalPoint = SIUtil.add(nomalPoint, specialPoint2);
    finalRate = SIUtil.add(finalRate, specialRate);
    nomalRate = SIUtil.add(nomalRate, specialRate);
    try{
      if (finalRate.endsWith("0")) finalRate = SIUtil.div(finalRate, "10");
      else finalRate=finalRate.substring(0, finalRate.length()-1) + "." + finalRate.substring(finalRate.length()-1);
      if (nomalRate.endsWith("0")) nomalRate = SIUtil.div(nomalRate, "10");
      else nomalRate=nomalRate.substring(0, nomalRate.length()-1) + "." + nomalRate.substring(nomalRate.length()-1);
    }catch(Exception e){
      e.printStackTrace();
    }
    StringBuffer res = new StringBuffer();
    
    if (vipFlg) {
      if (this.isContractFlg() || (this.getBGPriceDispFlg().equals("1")&&manLogin.isNotLogin(request)) || this.getBGPriceDispFlg().equals("2")){
        res.append("<td><p class=\"point\"><strike>ポイント還元</strike></p></td><td>：</td><td><strike>").append(nomalRate).append("%</strike></td>");
        res.append("</tr><tr align=\"left\" valign=\"middle\">");
        res.append("<td><p class=\"point\">VIPポイント</p></td><td>：</td><td>").append(finalRate).append("%");
        if ("1".equals(memberLevelCode)) res.append("<img src=\"/ws/image/mallmgr/icon_g.gif\" alt=\"\" style=\"padding:0 0 3px 2px;\" />");
        else if ("2".equals(memberLevelCode)) res.append("<img src=\"/ws/image/mallmgr/icon_pt.gif\" alt=\"\" style=\"padding:0 0 3px 2px;\" />");
        else if ("3".equals(memberLevelCode)) res.append("<img src=\"/ws/image/mallmgr/icon_d.gif\" alt=\"\" style=\"padding:0 0 3px 2px;\" />");
        res.append("</td>");
      }else{
        res.append("<td><p class=\"point\"><strike>ポイント還元</strike></p></td><td>：</td><td><strike>").append(nomalPoint).append("pt（").append(nomalRate).append("%）</strike></td>");
        res.append("</tr><tr align=\"left\" valign=\"middle\">");
        res.append("<td><p class=\"point\">VIPポイント</p></td><td>：</td><td>").append(totalPoint).append("pt（").append(finalRate).append("%");
        if ("1".equals(memberLevelCode)) res.append("<img src=\"/ws/image/mallmgr/icon_g.gif\" alt=\"\" style=\"padding:0 0 3px 2px;\" />");
        else if ("2".equals(memberLevelCode)) res.append("<img src=\"/ws/image/mallmgr/icon_pt.gif\" alt=\"\" style=\"padding:0 0 3px 2px;\" />");
        else if ("3".equals(memberLevelCode)) res.append("<img src=\"/ws/image/mallmgr/icon_d.gif\" alt=\"\" style=\"padding:0 0 3px 2px;\" />");
        res.append("）</td>");
      }
    }else{
      if (this.isContractFlg() || (this.getBGPriceDispFlg().equals("1")&&manLogin.isNotLogin(request)) || this.getBGPriceDispFlg().equals("2")){
        res.append("<td><p class=\"point\">ポイント還元</p></td><td>：</td><td>").append(finalRate).append("%</td>");
      }else{
        res.append("<td><p class=\"point\">ポイント還元</p></td><td>：</td><td>").append(totalPoint).append("pt（").append(finalRate).append("%）</td>");
      }
    }
    
    return res.toString();
  }
  
  public String getPointTxtSP(HttpServletRequest request) {
    String totalPoint = "0";
    String nomalPoint = "0";
    SIUserInfo manLogin = SIHTMLUtil.getUserInfo(request);
    String memberLevelCode = manLogin.getMemberLevelCode();
    String finalRate = "0";
    String nomalRate = "0";
    boolean vipFlg = false;
    
    try {
      if (SIUtil.isNull(getPointRate())) {
        totalPoint = SIUtil.add_LL(totalPoint, SIUtil.multi_LD(getFinalUnitPriceWithoutTax(), SIUtil.div_DL(getNomalPointRate(), "100")));
        nomalPoint = SIUtil.add_LL(nomalPoint, SIUtil.multi_LD(getUnitPriceWithoutTax(), SIUtil.div_DL(getNomalPointRate(), "100")));
        finalRate = SIUtil.multi_LD("10",getNomalPointRate());
        nomalRate = SIUtil.multi_LD("10",getNomalPointRate());
      } else {
        totalPoint = SIUtil.add_LL(totalPoint, SIUtil.multi_LD(getFinalUnitPriceWithoutTax(), SIUtil.div_DL(getPointRate(), "100")));
        nomalPoint = SIUtil.add_LL(nomalPoint, SIUtil.multi_LD(getUnitPriceWithoutTax(), SIUtil.div_DL(getPointRate(), "100")));
        finalRate = SIUtil.multi_LD("10",getPointRate());
        nomalRate = SIUtil.multi_LD("10",getPointRate());
      }
    } catch (SIFatalException e) {
      e.printStackTrace();
      totalPoint = "0";
    }
    String specialPoint1 = SIUtil.sub(SIUtil.multi(totalPoint, getSpecialRate()), totalPoint);
    String specialPoint2 = SIUtil.sub(SIUtil.multi(nomalPoint, getSpecialRate()), nomalPoint);
    String specialRate = SIUtil.sub(SIUtil.multi(finalRate, getSpecialRate()), finalRate);
    if ("1".equals(memberLevelCode)) {
      totalPoint = SIUtil.multi_LD(totalPoint, "1.2");
      finalRate = SIUtil.multi_LD(finalRate, "1.2");
      vipFlg = true;
    } else if ("2".equals(memberLevelCode)) {
      totalPoint = SIUtil.multi_LD(totalPoint, "1.5");
      finalRate = SIUtil.multi_LD(finalRate, "1.5");
      vipFlg = true;
    } else if ("3".equals(memberLevelCode)) {
      totalPoint = SIUtil.multi_LD(totalPoint, "2.0");
      finalRate = SIUtil.multi_LD(finalRate, "2.0");
      vipFlg = true;
    }
    
    totalPoint = SIUtil.add(totalPoint, specialPoint1);
    nomalPoint = SIUtil.add(nomalPoint, specialPoint2);
    finalRate = SIUtil.add(finalRate, specialRate);
    nomalRate = SIUtil.add(nomalRate, specialRate);
    try{
      if (finalRate.endsWith("0")) finalRate = SIUtil.div(finalRate, "10");
      else finalRate=finalRate.substring(0, finalRate.length()-1) + "." + finalRate.substring(finalRate.length()-1);
      if (nomalRate.endsWith("0")) nomalRate = SIUtil.div(nomalRate, "10");
      else nomalRate=nomalRate.substring(0, nomalRate.length()-1) + "." + nomalRate.substring(nomalRate.length()-1);
    }catch(Exception e){
      e.printStackTrace();
    }
    StringBuffer res = new StringBuffer();
    
    if (vipFlg) {
      if (this.isContractFlg() || (this.getBGPriceDispFlg().equals("1")&&manLogin.isNotLogin(request)) || this.getBGPriceDispFlg().equals("2")){
        res.append("<dt class=\"pointAll\"><strike>ポイント還元</strike></dt><dd class=\"fwB\"><strike>").append(nomalRate).append("%</strike></dd>");
        res.append("<dt>VIPポイント</dt><dd class=\"fwB\">").append(finalRate).append("%");
        if ("1".equals(memberLevelCode)) res.append("<img src=\"/ws/image/mallmgr/icon_g.gif\" alt=\"\" />");
        else if ("2".equals(memberLevelCode)) res.append("<img src=\"/ws/image/mallmgr/icon_pt.gif\" alt=\"\" />");
        else if ("3".equals(memberLevelCode)) res.append("<img src=\"/ws/image/mallmgr/icon_d.gif\" alt=\"\" />");
        res.append("</dd>");
      }else{
        res.append("<dt class=\"pointAll\"><strike>ポイント還元</strike></dt><dd class=\"fwB\"><strike>").append(nomalPoint).append("pt(").append(nomalRate).append("%)</strike></dd>");
        res.append("<dt>VIPポイント</dt><dd class=\"fwB\">").append(totalPoint).append("pt(").append(finalRate).append("%");
        if ("1".equals(memberLevelCode)) res.append("<img src=\"/ws/image/mallmgr/icon_g.gif\" alt=\"\" />");
        else if ("2".equals(memberLevelCode)) res.append("<img src=\"/ws/image/mallmgr/icon_pt.gif\" alt=\"\" />");
        else if ("3".equals(memberLevelCode)) res.append("<img src=\"/ws/image/mallmgr/icon_d.gif\" alt=\"\" />");
        res.append(")</dd>");
      }
    }else{
      if (this.isContractFlg() || (this.getBGPriceDispFlg().equals("1")&&manLogin.isNotLogin(request)) || this.getBGPriceDispFlg().equals("2")){
        res.append("<dt class=\"pointAll\">ポイント還元</dt><dd class=\"fwB\">").append(finalRate).append("%</dd>");
      }else{
        res.append("<dt class=\"pointAll\">ポイント還元</dt><dd class=\"fwB\">").append(totalPoint).append("pt(").append(finalRate).append("%)</dd>");
      }
    }
    
    return res.toString();
  }
  
  public String getListPointTxt(HttpServletRequest request) {
    String totalPoint = "0";
    String finalRate = "0";
    SIUserInfo manLogin = SIHTMLUtil.getUserInfo(request);
    String memberLevelCode = manLogin.getMemberLevelCode();
    boolean vipFlg = false;
    
    try {
      if (SIUtil.isNull(getPointRate())) {
        totalPoint = SIUtil.add_LL(totalPoint, SIUtil.multi_LD(getFinalUnitPriceWithoutTax(), SIUtil.div_DL(getNomalPointRate(), "100")));
        finalRate = SIUtil.multi_LD("10",getNomalPointRate());
      } else {
        totalPoint = SIUtil.add_LL(totalPoint, SIUtil.multi_LD(getFinalUnitPriceWithoutTax(), SIUtil.div_DL(getPointRate(), "100")));
        finalRate = SIUtil.multi_LD("10",getPointRate());
      }
    } catch (SIFatalException e) {
      e.printStackTrace();
      totalPoint = "0";
    }
    String specialPoint1 = SIUtil.sub(SIUtil.multi(totalPoint, getSpecialRate()), totalPoint);
    String specialRate = SIUtil.sub(SIUtil.multi(finalRate, getSpecialRate()), finalRate);
    if ("1".equals(memberLevelCode)) {
      totalPoint = SIUtil.multi_LD(totalPoint, "1.2");
      finalRate = SIUtil.multi_LD(finalRate, "1.2");
      vipFlg = true;
    } else if ("2".equals(memberLevelCode)) {
      totalPoint = SIUtil.multi_LD(totalPoint, "1.5");
      finalRate = SIUtil.multi_LD(finalRate, "1.5");
      vipFlg = true;
    } else if ("3".equals(memberLevelCode)) {
      totalPoint = SIUtil.multi_LD(totalPoint, "2.0");
      finalRate = SIUtil.multi_LD(finalRate, "2.0");
      vipFlg = true;
    }
    
    totalPoint = SIUtil.add(totalPoint, specialPoint1);
    finalRate = SIUtil.add(finalRate, specialRate);
    try{
      if (finalRate.endsWith("0")) finalRate = SIUtil.div(finalRate, "10");
      else finalRate=finalRate.substring(0, finalRate.length()-1) + "." + finalRate.substring(finalRate.length()-1);
    }catch(Exception e){
      e.printStackTrace();
    }
    StringBuffer res = new StringBuffer();
    if (vipFlg) res.append("VIPポイント:");
    else res.append("ポイント:");
    
    if (this.isContractFlg() || (this.getBGPriceDispFlg().equals("1")&&manLogin.isNotLogin(request)) || this.getBGPriceDispFlg().equals("2")){
      res.append(finalRate).append("%");
    }else{
      res.append(totalPoint).append("pt(").append(finalRate).append("%)");
    }
    
    return res.toString();
  }
  
  
  // EDBTG003-00 elecs-matsushima add start
  public String getCmdtyCompositionFlg() {
    return this.cmdtyCompositionFlg;
  }
  
  public void setCmdtyCompositionFlg(String cmdtyCompositionFlg) {
    if (SIUtil.isNull(cmdtyCompositionFlg)) cmdtyCompositionFlg = SIConfig.CMDTY_COMPOSITION_NORMAL;
    this.cmdtyCompositionFlg = cmdtyCompositionFlg;
  }
  
  public String getImageName6() {
    return this.imageName6;
  }
  
  public void setImageName6(String imageName6) {
    if (SIUtil.isNull(imageName6)) imageName6 = "";
    this.imageName6 = imageName6;
  }
  
  public String getImageName7() {
    return this.imageName7;
  }
  
  public void setImageName7(String imageName7) {
    if (SIUtil.isNull(imageName7)) imageName7 = "";
    this.imageName7 = imageName7;
  }
  
  public String getImageName8() {
    return this.imageName8;
  }
  
  public void setImageName8(String imageName8) {
    if (SIUtil.isNull(imageName8)) imageName8 = "";
    this.imageName8 = imageName8;
  }
  
  public String getImageName9() {
    return this.imageName9;
  }
  
  public void setImageName9(String imageName9) {
    if (SIUtil.isNull(imageName9)) imageName9 = "";
    this.imageName9 = imageName9;
  }
  
  public String getImageName10() {
    return this.imageName10;
  }
  
  public void setImageName10(String imageName10) {
    if (SIUtil.isNull(imageName10)) imageName10 = "";
    this.imageName10 = imageName10;
  }
  
  public String getImageName11() {
    return this.imageName11;
  }
  
  public void setImageName11(String imageName11) {
    if (SIUtil.isNull(imageName11)) imageName11 = "";
    this.imageName11 = imageName11;
  }
  
  /**
   * 仕様指定品かどうか
   * 
   * @return 仕様指定品の場合、TRUEを返します。
   */
  public boolean isSpecification() {
    if (SIUtil.isNull(getCmdtyCompositionFlg())) setCmdtyCompositionFlg(SIConfig.CMDTY_COMPOSITION_NORMAL);
    if (getCmdtyCompositionFlg().equalsIgnoreCase(SIConfig.CMDTY_COMPOSITION_SPECIFICATION)) { return true; }
    return false;
  }
  
  /**
   * セット品かどうか
   * 
   * @return セット品の場合、TRUEを返します。
   */
  public boolean isSet() {
    if (SIUtil.isNull(getCmdtyCompositionFlg())) setCmdtyCompositionFlg(SIConfig.CMDTY_COMPOSITION_NORMAL);
    if (getCmdtyCompositionFlg().equalsIgnoreCase(SIConfig.CMDTY_COMPOSITION_SELECTION_SET) || getCmdtyCompositionFlg().equalsIgnoreCase(SIConfig.CMDTY_COMPOSITION_VARIATION_SET)
        || getCmdtyCompositionFlg().equalsIgnoreCase(SIConfig.CMDTY_COMPOSITION_FIXED_SET)) { return true; }
    
    return false;
  }
  
  /**
   * 構成商品かどうか
   * 
   * @return 構成商品の場合、TRUEを返します。
   */
  public boolean isCmdtyComposition() {
    if (isSpecification() || isSet()) { return true; }
    return false;
  }
  
  /**
   * プレビュー用
   * 
   * @param regCmdtyComposition
   * @return
   */
  public String getSetFinalUnitPricePreview(UIRegCmdtyComposition regCmdtyComposition) {
    String setTotalPrice = "0";
    // @セット品の代表構成品最新単価取得
    String flagShipproductPraice = this.getSetTotalUnitPrice(regCmdtyComposition.getCompositionUnitPrice(), false, true);
    log.debug("flagShipproductPraice:" + flagShipproductPraice);
    // Aセット品の値引合計を取得
    String setDiscountPrice = this.getSetDiscountPrice(regCmdtyComposition.getSetDiscount());
    log.debug("setDiscountPrice:" + setDiscountPrice);
    // @-Aにて、セット品最新単価を取得する
    setTotalPrice = SIUtil.sub_LL(flagShipproductPraice, setDiscountPrice);
    return setTotalPrice;
  }
  
  public String getSetFinalUnitPriceWithoutTaxPreview(UIRegCmdtyComposition regCmdtyComposition) {
    String setTotalPrice = "0";
    // @セット品の代表構成品最新単価取得
    String flagShipproductPraice = this.getSetTotalUnitPrice(regCmdtyComposition.getCompositionUnitPrice(), false, false);
    log.debug("flagShipproductPraice:" + flagShipproductPraice);
    // Aセット品の値引合計を取得
    String setDiscountPrice = this.getSetDiscountPrice(regCmdtyComposition.getSetDiscountWithoutTax());
    log.debug("setDiscountPrice:" + setDiscountPrice);
    // @-Aにて、セット品最新単価を取得する
    setTotalPrice = SIUtil.sub_LL(flagShipproductPraice, setDiscountPrice);
    return setTotalPrice;
  }
  
  /**
   * プレビュー用
   * 
   * @param regCmdtyComposition
   * @return
   */
  public String getSetDiscountUnitPricePreview(UIRegCmdtyComposition regCmdtyComposition) {
    String setTotalPrice = "0";
    // @セット品の代表構成品最新単価取得
    String flagShipproductPraice = this.getSetTotalUnitPrice(regCmdtyComposition.getCompositionUnitPrice(), true, true);
    // Aセット品の値引合計を取得
    String setDiscountPrice = this.getSetDiscountPrice(regCmdtyComposition.getSetDiscount());
    // @-Aにて、セット品最新単価を取得する
    setTotalPrice = SIUtil.sub_LL(flagShipproductPraice, setDiscountPrice);
    return setTotalPrice;
  }
  
  public String getSetDiscountUnitPriceWithoutTaxPreview(UIRegCmdtyComposition regCmdtyComposition) {
    // 値引がない場合はそのまま出す
    if (getUnitPrice().equals(getFinalUnitPrice())) return getSetFinalUnitPriceWithoutTaxPreview(regCmdtyComposition);
    // 税込最終金額に対して税引き換算
    return SIUtil.getPriceWithoutTax(getSetDiscountUnitPricePreview(regCmdtyComposition),getTaxRate());
  }
  
  /**
   * 
   * @param val
   * @return
   */
  public int getInteger(String val) {
    Integer res = new Integer(0);
    try {
      res = Integer.valueOf(val);
    } catch (Exception e) {
      res = new Integer(0);
    }
    return res.intValue();
  }
  
  // EDBTG003-00 elecs-matsushima add end
  
  // EDBTG003-00 nagayoshi add start
  public String getSetUnitPrice(Connection lConnection) {
    String setTotalPrice = "0";
    // @セット品の代表構成品最新単価取得
    String flagShipproductPrice = this.getSetTotalUnitPrice(this.getFlagShipproduct(lConnection), false, true);
    // Aセット品の値引合計を取得
    String setDiscountPrice = this.getSetDiscount(lConnection);
    // @-Aにて、セット品最新単価を取得する
    setTotalPrice = SIUtil.sub_LL(flagShipproductPrice, setDiscountPrice);
    return setTotalPrice;
  }
  public String getSetUnitPriceWithoutTax(Connection lConnection) {
    String setTotalPrice = "0";
    // @セット品の代表構成品最新単価取得
    String flagShipproductPrice = this.getSetTotalUnitPrice(this.getFlagShipproduct(lConnection), false, false);
    // Aセット品の値引合計を取得
    String setDiscountPrice = this.getSetDiscountWithoutTax(lConnection);
    // @-Aにて、セット品最新単価を取得する
    setTotalPrice = SIUtil.sub_LL(flagShipproductPrice, setDiscountPrice);
    return setTotalPrice;
  }
  
  public String getSetDiscountUnitPrice(Connection lConnection) {
    String setTotalPrice = "0";
    // @セット品の代表構成品最新単価取得
    String flagShipproductPrice = this.getSetTotalUnitPrice(this.getFlagShipproduct(lConnection), true, true);
    // Aセット品の値引合計を取得
    String setDiscountPrice = this.getSetDiscountPrice(this.getSetDiscount(lConnection));
    // @-Aにて、セット品最新単価を取得する
    setTotalPrice = SIUtil.sub_LL(flagShipproductPrice, setDiscountPrice);
    return setTotalPrice;
  }
  
  public String getSetDiscountUnitPriceWithoutTax(Connection lConnection) {
    // 値引がない場合はそのまま出す
    if (getUnitPrice().equals(getFinalUnitPrice())) return getSetUnitPriceWithoutTax(lConnection);
    // 税込最終金額に対して税引き換算
    return SIUtil.getPriceWithoutTax(getSetDiscountUnitPrice(lConnection),getTaxRate());
  }
  
  public Collection getFlagShipproduct(Connection lConnection) {
    // セット品の代表構成品情報を取得する
    StringBuffer sqlStr = new StringBuffer();
    sqlStr.append("SELECT b.groupcode ");
    // if
    // (SIConfig.CMDTY_COMPOSITION_VARIATION_SET.equals(this.getCmdtyCompositionFlg())
    // ||
    // SIConfig.CMDTY_COMPOSITION_FIXED_SET.equals(this.getCmdtyCompositionFlg())
    // ||
    // SIConfig.CMDTY_COMPOSITION_SPECIFICATION.equals(this.getCmdtyCompositionFlg()))
    // {
    // sqlStr.append(" ,(D.UNITPRICE * C.COMPOSITIONCOUNT) AS UNITPRICE ");
    // } else if
    // (SIConfig.CMDTY_COMPOSITION_SELECTION_SET.equals(this.getCmdtyCompositionFlg()))
    // {
    // sqlStr.append(" ,((D.UNITPRICE * C.COMPOSITIONCOUNT) * A.SECTIONCOUNT) AS
    // UNITPRICE ");
    // }
    sqlStr.append(",d.unitprice ");
    sqlStr.append(",d.unitpricewithouttax ");
    sqlStr.append(",c.compositioncount ");
    sqlStr.append(",a.sectioncount ");
    sqlStr.append("FROM cmdtycompositionmtbl a ");
    sqlStr.append("INNER JOIN compositiongroupmtbl b ");
    sqlStr.append("ON a.shopcode=b.shopcode ");
    sqlStr.append("AND a.cmdtycode=b.cmdtycode ");
    sqlStr.append("AND a.individualcode=b.individualcode ");
    sqlStr.append("INNER JOIN compositiongroupdetailtbl c ");
    sqlStr.append("ON b.shopcode=c.shopcode ");
    sqlStr.append("AND b.cmdtycode=c.cmdtycode ");
    sqlStr.append("AND b.individualcode=c.individualcode ");
    sqlStr.append("AND b.groupcode=c.groupcode ");
    sqlStr.append("INNER JOIN cmdtyunittbl d ");
    sqlStr.append("ON c.shopcode=d.shopcode ");
    sqlStr.append("AND c.detailcmdtycode=d.cmdtycode ");
    sqlStr.append("AND c.detailindividualcode=d.individualcode ");
    sqlStr.append("WHERE a.shopcode=").append(SIDBUtil.SQL2Str(this.getShopCode(), " "));
    sqlStr.append("AND a.cmdtycode=").append(SIDBUtil.SQL2Str(this.getCmdtyCode(), " "));
    sqlStr.append("AND a.individualcode=").append(SIDBUtil.SQL2Str(this.getIndividualCode(), " "));
    if (SIConfig.CMDTY_COMPOSITION_VARIATION_SET.equals(this.getCmdtyCompositionFlg())) {
      sqlStr.append("AND c.flagshipproductflg=1 ");
    } else if (SIConfig.CMDTY_COMPOSITION_SPECIFICATION.equals(this.getCmdtyCompositionFlg()) || SIConfig.CMDTY_COMPOSITION_SELECTION_SET.equals(this.getCmdtyCompositionFlg())) {
      sqlStr.append("AND c.groupcode=1 ");
      sqlStr.append("AND c.flagshipproductflg=1 ");
    }
    // Statement作成
    Statement statement = null;
    // ResultSet変数
    ResultSet lResult = null;
    // 結果セットCollection
    Collection rec = new ArrayList();
    try {
      // statement生成
      statement = lConnection.createStatement();
      // SQL発行
      lResult = statement.executeQuery(sqlStr.toString());
      // 代表構成商品の最新単価で、セット品のBG卸価を算出する
      while (lResult.next()) {
        // 構成グループ毎の代表構成品情報取得
        Map resMap = new HashMap();
        // 構成グループコード
        resMap.put("groupCode", lResult.getString("groupcode"));
        // 代表構成品単価
        resMap.put("unitPrice", lResult.getString("unitprice"));
        // 代表構成品単価税抜
        resMap.put("unitPriceWithoutTax", lResult.getString("unitpricewithouttax"));
        // 代表構成品構成数
        resMap.put("compositioncount", lResult.getString("compositioncount"));
        // よりどり点数
        resMap.put("sectioncount", lResult.getString("sectioncount"));
        // 構成グループ代表構成品情報設定
        rec.add(resMap);
      }
    } catch (SQLException e) {
      e.printStackTrace();
    } finally {
      SIDBUtil.close(lResult, statement);
    }
    return rec;
  }
  
  public String getSetTotalUnitPrice(Collection lColl, boolean lDiscount, boolean taxFlg) {
    // セット品価格
    String setTotalPrice = "0";
    // セット品特価価格
    String setDiscountTotalPrice = "0";
    String MSDiscountRate = "0";
    String MemberDiscountRate = "0";
    Iterator ite = lColl.iterator();
    // よりどり点数(代表1件)
    String sectionCount = "0";
    // セット品合計価格算出
    while (ite.hasNext()) {
      Map map = (Map) ite.next();
      String lResPrice = (String) map.get("unitPriceWithoutTax");
      if (taxFlg) lResPrice = (String) map.get("unitPrice");
      sectionCount = (String) map.get("sectioncount");
      if (lDiscount) {
        try {
          MSDiscountRate = SIUtil.sub_LD("1", SIUtil.div_DL(getMSDiscountRate(), "100"));
          MemberDiscountRate = SIUtil.sub_LD("1", SIUtil.div_DL(getCalcMemberDiscountRate(), "100"));
        } catch (SIFatalException e) {
          e.printStackTrace();
        }
        // 特価に対して値引を行う場合
        if (lResPrice.equals(this.salesUnitPrice) && this.salesDiscountFlg.equals("1")) {
          // 一括値引の適用
          if (!this.discountFlg.equals("0") && !this.memberDiscountFlg.equals("1")) {
            lResPrice = SIUtil.multi_LD(lResPrice, MSDiscountRate);
          }
          // 会員値引の適用
          if (!this.memberDiscountFlg.equals("0")) {
            lResPrice = SIUtil.multi_LD(lResPrice, MemberDiscountRate);
          }
          // 上記以外の場合
        } else {
          // 通常価格の取得
          String lUnitPrice = lResPrice;
          // 一括値引の適用
          if (!this.discountFlg.equals("0") && !this.memberDiscountFlg.equals("1")) {
            lUnitPrice = SIUtil.multi_LD(lUnitPrice, MSDiscountRate);
          }
          // 会員値引の適用
          if (!this.memberDiscountFlg.equals("0")) {
            lUnitPrice = SIUtil.multi_LD(lUnitPrice, MemberDiscountRate);
          }
          // 通常価格に値引適用した金額(A)が、特価（値引なし）を下回る場合には(A)を適用する
          if (Integer.parseInt(lUnitPrice) < Integer.parseInt(lResPrice)) {
            lResPrice = lUnitPrice;
          }
        }
        // セット品最新価格に対する特価価格の算出
        // 単価 * 構成数
        lResPrice = SIUtil.multi_LL(lResPrice, (String) map.get("compositioncount"));
        setDiscountTotalPrice = SIUtil.add_LL(setDiscountTotalPrice, lResPrice);
      } else {
        // セット品最新価格を算出
        // 単価 * 構成数
        lResPrice = SIUtil.multi_LL(lResPrice, (String) map.get("compositioncount"));
        setTotalPrice = SIUtil.add_LL(setTotalPrice, lResPrice);
      }
    }
    // セット価格が0の場合
    if (lDiscount) {
      // よりどり点数がある場合
      if (SIUtil.isNotNull(sectionCount) && !sectionCount.equals("0")) {
        setDiscountTotalPrice = SIUtil.multi(setDiscountTotalPrice, sectionCount);
      }
      return setDiscountTotalPrice;
    } else {
      // よりどり点数がある場合
      if (SIUtil.isNotNull(sectionCount) && !sectionCount.equals("0")) {
        setTotalPrice = SIUtil.multi(setTotalPrice, sectionCount);
      }
      return setTotalPrice;
    }
  }
  
  public String getSetDiscount(Connection lConnection) {
    String setDiscount = "0";
    StringBuffer sqlStr = new StringBuffer();
    sqlStr.append("SELECT");
    sqlStr.append(" A.SETDISCOUNT ");
    sqlStr.append("FROM");
    sqlStr.append("  CMDTYCOMPOSITIONMTBL A ");
    sqlStr.append("WHERE A.SHOPCODE = ").append(SIDBUtil.SQL2Str(this.getShopCode(), " "));
    sqlStr.append("AND A.CMDTYCODE = ").append(SIDBUtil.SQL2Str(this.getCmdtyCode(), " "));
    sqlStr.append("AND A.INDIVIDUALCODE = ").append(SIDBUtil.SQL2Str(this.getIndividualCode()));
    // Statement作成
    Statement statement = null;
    // ResultSet変数
    ResultSet lResult = null;
    try {
      // statement生成
      statement = lConnection.createStatement();
      // SQL発行
      lResult = statement.executeQuery(sqlStr.toString());
      while (lResult.next()) {
        setDiscount = lResult.getString("SETDISCOUNT");
      }
    } catch (SQLException e) {
      e.printStackTrace();
    } finally {
      SIDBUtil.close(lResult, statement);
    }
    return setDiscount;
  }
  
  public String getSetDiscountWithoutTax(Connection lConnection) {
    String setDiscount = "0";
    StringBuffer sqlStr = new StringBuffer();
    sqlStr.append("SELECT a.setdiscountwithouttax ");
    sqlStr.append("FROM cmdtycompositionmtbl a ");
    sqlStr.append("WHERE a.shopcode=").append(SIDBUtil.SQL2Str(this.getShopCode(), " "));
    sqlStr.append("AND a.cmdtycode=").append(SIDBUtil.SQL2Str(this.getCmdtyCode(), " "));
    sqlStr.append("AND a.individualcode=").append(SIDBUtil.SQL2Str(this.getIndividualCode()));
    // Statement作成
    Statement statement = null;
    // ResultSet変数
    ResultSet lResult = null;
    try {
      // statement生成
      statement = lConnection.createStatement();
      // SQL発行
      lResult = statement.executeQuery(sqlStr.toString());
      while (lResult.next()) {
        setDiscount = lResult.getString("setdiscountwithouttax");
      }
    } catch (SQLException e) {
      e.printStackTrace();
    } finally {
      SIDBUtil.close(lResult, statement);
    }
    return setDiscount;
  }
  
  public String getSetDiscountPrice(String lSetDiscount) {
    String lResPirce = lSetDiscount;
    if (lSetDiscount.equals("0")) { return lResPirce; }
    // 通常最新価格を算出
    // this.setCalcUnitPrice(SIUtil.sub_LL(this.getCalcUnitPrice(),
    // lSetDiscount));
    // this.setUnitPrice(SIUtil.sub_LL(this.getUnitPrice(), lSetDiscount));
    String MSDiscountRate = "0";
    String MemberDiscountRate = "0";
    try {
      MSDiscountRate = SIUtil.sub_LD("1", SIUtil.div_DL(getMSDiscountRate(), "100"));
      MemberDiscountRate = SIUtil.sub_LD("1", SIUtil.div_DL(getCalcMemberDiscountRate(), "100"));
    } catch (SIFatalException e) {
      e.printStackTrace();
    }
    // 特価に対して値引を行う場合
    if (lResPirce.equals(this.salesUnitPrice) && this.salesDiscountFlg.equals("1")) {
      // 一括値引の適用
      if (!this.discountFlg.equals("0") && !this.memberDiscountFlg.equals("1")) {
        lResPirce = SIUtil.multi_LD(lResPirce, MSDiscountRate);
      }
      // 会員値引の適用
      if (!this.memberDiscountFlg.equals("0")) {
        lResPirce = SIUtil.multi_LD(lResPirce, MemberDiscountRate);
      }
      // 上記以外の場合
    } else {
      // 通常価格の取得
      String lUnitPrice = lResPirce;
      // 一括値引の適用
      if (!this.discountFlg.equals("0") && !this.memberDiscountFlg.equals("1")) {
        lUnitPrice = SIUtil.multi_LD(lUnitPrice, MSDiscountRate);
      }
      // 会員値引の適用
      if (!this.memberDiscountFlg.equals("0")) {
        lUnitPrice = SIUtil.multi_LD(lUnitPrice, MemberDiscountRate);
      }
      // 通常価格に値引適用した金額(A)が、特価（値引なし）を下回る場合には(A)を適用する
      if (Integer.parseInt(lUnitPrice) < Integer.parseInt(lResPirce)) {
        lResPirce = lUnitPrice;
      }
    }
    return lResPirce;
  }
  
  public Collection getSetCmdtyInfo(Connection lColl) {
    // 返却コレクション初期化
    Collection rec = new ArrayList();
    return rec;
  }
  
  public Collection getCmdtyCompositionGroupData(Connection lConnection) {
    // 返却クラスの初期化・構成品グループヘッダ情報取得
    Collection group = this.getCmdtyCompositionGroup(lConnection);
    // 構成品グループ毎にグループ明細情報を取得
    Iterator ite = group.iterator();
    while (ite.hasNext()) {
      // 構成グループ1件取得
      SICmdtyCompositionGroupData cmdtyCompositionGroup = (SICmdtyCompositionGroupData) ite.next();
      // 構成グループ情報として、構成グループ明細情報を設定
      cmdtyCompositionGroup.setCompositionGroupDetail(this.getCmdtyCompositionGroupDetail(lConnection, cmdtyCompositionGroup));
    }
    // 商品構成グループコードの取得
    return group;
  }
  
  public SICmdtyComposition getCmdtyComposition(Connection lConnection) {
    // 返却クラスの初期化
    SICmdtyComposition cmdtyComposition = new SICmdtyComposition();
    // SQL生成
    StringBuffer sqlStr = new StringBuffer();
    sqlStr.append("SELECT ");
    sqlStr.append("  A.* ");
    sqlStr.append("FROM ");
    sqlStr.append("  CMDTYCOMPOSITIONMTBL A ");
    sqlStr.append("WHERE A.SHOPCODE = ").append(SIDBUtil.SQL2Str(this.getShopCode(), " "));
    sqlStr.append("AND A.CMDTYCODE = ").append(SIDBUtil.SQL2Str(this.getCmdtyCode(), " "));
    sqlStr.append("AND A.INDIVIDUALCODE = ").append(SIDBUtil.SQL2Str(this.getIndividualCode()));
    // Statement作成
    Statement statement = null;
    // ResultSet変数
    ResultSet lResult = null;
    try {
      // statement生成
      statement = lConnection.createStatement();
      // SQL発行
      lResult = statement.executeQuery(sqlStr.toString());
      while (lResult.next()) {
        cmdtyComposition.setShopCode(lResult.getString("SHOPCODE"));
        cmdtyComposition.setCmdtyCode(lResult.getString("CMDTYCODE"));
        cmdtyComposition.setIndividualCode(lResult.getString("INDIVIDUALCODE"));
        cmdtyComposition.setCmdtySetFlg(lResult.getString("CMDTYSETFLG"));
        cmdtyComposition.setUnitQuantity(lResult.getString("UNITQUANTITY"));
        cmdtyComposition.setSectionCount(lResult.getString("SECTIONCOUNT"));
        cmdtyComposition.setAppendedCmdtyFlg(lResult.getString("APPENDEDCMDTYFLG"));
        cmdtyComposition.setSetDiscount(lResult.getString("SETDISCOUNT"));
        cmdtyComposition.setAddPointRate(lResult.getString("ADDPOINTRATE"));
        cmdtyComposition.setBeforeBgprice(lResult.getString("BEFOREBGPRICE"));
        cmdtyComposition.setInitUserCode(lResult.getString("INITUSERCODE"));
        cmdtyComposition.setDispCarriageFreeFlg(lResult.getString("dispCarriageFree"));
        cmdtyComposition.setDiscountDispFlg(lResult.getString("discountDispflg"));
      }
    } catch (SQLException e) {
      e.printStackTrace();
    } finally {
      SIDBUtil.close(lResult, statement);
    }
    return cmdtyComposition;
  }
  
  public Collection getCmdtyCompositionGroup(Connection lConnection) {
    // 返却クラスの初期化
    Collection rec = new ArrayList();
    // SQL生成
    StringBuffer sqlStr = new StringBuffer();
    sqlStr.append("SELECT ");
    sqlStr.append("   A.* ");
    sqlStr.append("FROM ");
    sqlStr.append("   COMPOSITIONGROUPMTBL A ");
    sqlStr.append("WHERE A.SHOPCODE = ").append(SIDBUtil.SQL2Str(this.getShopCode(), " "));
    sqlStr.append("AND A.CMDTYCODE = ").append(SIDBUtil.SQL2Str(this.getCmdtyCode(), " "));
    sqlStr.append("AND A.INDIVIDUALCODE = ").append(SIDBUtil.SQL2Str(this.getIndividualCode(), " "));
    sqlStr.append("ORDER BY A.GROUPCODE ");
    // Statement作成
    Statement statement = null;
    // ResultSet変数
    ResultSet lResult = null;
    try {
      // statement生成
      statement = lConnection.createStatement();
      // SQL発行
      lResult = statement.executeQuery(sqlStr.toString());
      while (lResult.next()) {
        SICmdtyCompositionGroupData cmdtyCompositionGroup = new SICmdtyCompositionGroupData();
        cmdtyCompositionGroup.setShopCode(lResult.getString("SHOPCODE"));
        cmdtyCompositionGroup.setCmdtyCode(lResult.getString("CMDTYCODE"));
        cmdtyCompositionGroup.setIndividualCode(lResult.getString("INDIVIDUALCODE"));
        cmdtyCompositionGroup.setGroupCode(lResult.getString("GROUPCODE"));
        cmdtyCompositionGroup.setSpecificationName(lResult.getString("SPECIFICATIONNAME"));
        cmdtyCompositionGroup.setColorFlg(lResult.getString("COLORFLG"));
        rec.add(cmdtyCompositionGroup);
      }
    } catch (SQLException e) {
      e.printStackTrace();
    } finally {
      SIDBUtil.close(lResult, statement);
    }
    return rec;
  }
  
  public List getCmdtyCompositionGroupDetail(Connection lConnection, SICmdtyCompositionGroup lCmdtyCompositionGroup) {
    // 返却クラスの初期化
    List rec = new ArrayList();
    // SQL生成
    StringBuffer sqlStr = new StringBuffer();
    sqlStr.append("SELECT a.*,b.amountFlg,b.amount-b.bgpamount AS amount,b.rsrvEnableFlg,b.rsrvAmount,b.arrivalScheduleMsg,b.unitprice,b.unitpricewithouttax ");
    sqlStr.append(",(SELECT TaxRate FROM TaxVW) AS taxRate ");
    sqlStr.append("FROM compositionGroupDetailTbl a ");
    sqlStr.append(",cmdtyunitTbl b ");
    sqlStr.append("WHERE a.shopCode = ").append(SIDBUtil.SQL2Str(lCmdtyCompositionGroup.getShopCode(), " "));
    sqlStr.append("AND a.cmdtyCode = ").append(SIDBUtil.SQL2Str(lCmdtyCompositionGroup.getCmdtyCode(), " "));
    sqlStr.append("AND a.individualCode = ").append(SIDBUtil.SQL2Str(lCmdtyCompositionGroup.getIndividualCode(), " "));
    sqlStr.append("AND a.groupCode = ").append(SIDBUtil.SQL2Str(lCmdtyCompositionGroup.getGroupCode(), " "));
    sqlStr.append("AND a.detailCmdtyCode = b.cmdtyCode ");
    sqlStr.append("AND a.detailIndividualCode = b.individualCode ");
    sqlStr.append("ORDER BY a.dispOrder");
    // Statement作成
    Statement statement = null;
    // ResultSet変数
    ResultSet lResult = null;
    try {
      // statement生成
      statement = lConnection.createStatement();
      // SQL発行
      lResult = statement.executeQuery(sqlStr.toString());
      while (lResult.next()) {
        SICmdtyCompositionGroupDetail cmdtyCompositionGroupDetail = new SICmdtyCompositionGroupDetail();
        cmdtyCompositionGroupDetail.setShopCode(lResult.getString("shopCode"));
        cmdtyCompositionGroupDetail.setCmdtyCode(lResult.getString("cmdtyCode"));
        cmdtyCompositionGroupDetail.setIndividualCode(lResult.getString("individualCode"));
        cmdtyCompositionGroupDetail.setGroupCode(lResult.getString("groupCode"));
        cmdtyCompositionGroupDetail.setDetailCmdtyCode(lResult.getString("detailCmdtyCode"));
        cmdtyCompositionGroupDetail.setDetailIndividualCode(lResult.getString("detailIndividualCode"));
        cmdtyCompositionGroupDetail.setDetailIndividualName(lResult.getString("detailIndividualName"));
        cmdtyCompositionGroupDetail.setCompositionCount(lResult.getString("compositionCount"));
        cmdtyCompositionGroupDetail.setDispOrder(lResult.getString("dispOrder"));
        cmdtyCompositionGroupDetail.setFlagShipproductFlg(lResult.getInt("flagshipProductFlg"));
        cmdtyCompositionGroupDetail.setAmountFlg(lResult.getString("amountFlg"));
        cmdtyCompositionGroupDetail.setAmount(lResult.getString("amount"));
        cmdtyCompositionGroupDetail.setRsrvEnableFlg(lResult.getString("rsrvEnableFlg"));
        cmdtyCompositionGroupDetail.setRsrvAmount(lResult.getString("rsrvAmount"));
        cmdtyCompositionGroupDetail.setArrivalScheduleMsg(lResult.getString("arrivalScheduleMsg"));
        cmdtyCompositionGroupDetail.setBgPrice(lResult.getString("unitPrice"));
        cmdtyCompositionGroupDetail.setBgPriceWithoutTax(lResult.getString("unitPriceWithoutTax"));
        cmdtyCompositionGroupDetail.setTaxRate(lResult.getString("taxRate"));
        rec.add(cmdtyCompositionGroupDetail);
      }
    } catch (SQLException e) {
      e.printStackTrace();
    } finally {
      SIDBUtil.close(lResult, statement);
    }
    return rec;
  }
  
  public Collection getCmdtyCompositionAppended(Connection lConnection) {
    // 返却クラスの初期化
    Collection rec = new ArrayList();
    // SQL生成
    StringBuffer sqlStr = new StringBuffer();
    sqlStr.append("SELECT a.*,b.cmdtyName,b.amountFlg,b.amount-b.bgpamount AS amount ");
    sqlStr.append("FROM appendedCmdtyTbl a ");
    sqlStr.append(",cmdtyUnitTbl b ");
    sqlStr.append("WHERE a.shopCode = ").append(SIDBUtil.SQL2Str(this.getShopCode(), " "));
    sqlStr.append("AND a.cmdtyCode = ").append(SIDBUtil.SQL2Str(this.getCmdtyCode(), " "));
    sqlStr.append("AND a.individualCode = ").append(SIDBUtil.SQL2Str(this.getIndividualCode(), " "));
    sqlStr.append("AND a.detailCmdtyCode = b.cmdtyCode ");
    sqlStr.append("AND a.detailIndividualCode = b.individualCode ");
    sqlStr.append("ORDER BY a.dispOrder");
    
    // Statement作成
    Statement statement = null;
    // ResultSet変数
    ResultSet lResult = null;
    try {
      // statement生成
      statement = lConnection.createStatement();
      // SQL発行
      lResult = statement.executeQuery(sqlStr.toString());
      while (lResult.next()) {
        SICmdtyCompositionAppended cmdtyCompositionAppended = new SICmdtyCompositionAppended();
        cmdtyCompositionAppended.setShopCode(lResult.getString("shopCode"));
        cmdtyCompositionAppended.setCmdtyCode(lResult.getString("cmdtyCode"));
        cmdtyCompositionAppended.setCmdtyName(lResult.getString("cmdtyName"));
        cmdtyCompositionAppended.setIndividualCode(lResult.getString("individualCode"));
        cmdtyCompositionAppended.setDetailCmdtyCode(lResult.getString("detailCmdtyCode"));
        cmdtyCompositionAppended.setDetailIndividualCode(lResult.getString("detailIndividualCode"));
        cmdtyCompositionAppended.setAmountFlg(lResult.getString("amountFlg"));
        cmdtyCompositionAppended.setAmount(lResult.getString("amount"));
        cmdtyCompositionAppended.setSetCount(lResult.getString("setCount"));
        cmdtyCompositionAppended.setAppendedCount(lResult.getString("appendedCount"));
        cmdtyCompositionAppended.setDispOrder(lResult.getString("dispOrder"));
        rec.add(cmdtyCompositionAppended);
      }
    } catch (SQLException e) {
      e.printStackTrace();
    } finally {
      SIDBUtil.close(lResult, statement);
    }
    return rec;
  }
  
  public Collection getCmdtyCompositionOption(Connection lConnection) {
    // 返却クラスの初期化
    Collection rec = new ArrayList();
    // SQL生成
    StringBuffer sqlStr = new StringBuffer();
    sqlStr.append("SELECT a.*,b.cmdtyname,b.unitprice,b.unitpricewithouttax,(SELECT TaxRate FROM TaxVW) AS taxRate ");
    sqlStr.append(",b.amountflg,b.amount-b.bgpamount AS amount ");
    sqlStr.append("FROM compositionOptionTbl a ");
    sqlStr.append(",cmdtyUnitTbl b ");
    sqlStr.append("WHERE a.shopCode = ").append(SIDBUtil.SQL2Str(this.getShopCode(), " "));
    sqlStr.append("AND a.cmdtyCode = ").append(SIDBUtil.SQL2Str(this.getCmdtyCode(), " "));
    sqlStr.append("AND a.individualCode = ").append(SIDBUtil.SQL2Str(this.getIndividualCode(), " "));
    sqlStr.append("AND a.detailCmdtyCode = b.cmdtyCode ");
    sqlStr.append("AND a.detailIndividualCode = b.individualCode ");
    sqlStr.append("ORDER BY a.dispOrder");
    // Statement作成
    Statement statement = null;
    // ResultSet変数
    ResultSet lResult = null;
    try {
      // statement生成
      statement = lConnection.createStatement();
      // SQL発行
      lResult = statement.executeQuery(sqlStr.toString());
      while (lResult.next()) {
        SICmdtyCompositionOption cmdtyCompositionOption = new SICmdtyCompositionOption();
        cmdtyCompositionOption.setShopCode(lResult.getString("shopCode"));
        cmdtyCompositionOption.setCmdtyCode(lResult.getString("cmdtyCode"));
        cmdtyCompositionOption.setCmdtyName(lResult.getString("cmdtyName"));
        cmdtyCompositionOption.setIndividualCode(lResult.getString("individualCode"));
        cmdtyCompositionOption.setDetailCmdtyCode(lResult.getString("detailCmdtyCode"));
        cmdtyCompositionOption.setDetailIndividualCode(lResult.getString("detailIndividualCode"));
        cmdtyCompositionOption.setCompositionCount(lResult.getString("compositionCount"));
        cmdtyCompositionOption.setBgPrice(lResult.getString("unitPrice"));
        cmdtyCompositionOption.setBgPriceWithoutTax(lResult.getString("unitPriceWithoutTax"));
        cmdtyCompositionOption.setTaxRate(lResult.getString("taxRate"));
        cmdtyCompositionOption.setDispOrder(lResult.getString("dispOrder"));
        cmdtyCompositionOption.setNotices(lResult.getString("notices"));
        cmdtyCompositionOption.setAmountFlg(lResult.getString("amountFlg"));
        cmdtyCompositionOption.setAmount(lResult.getString("amount"));
        rec.add(cmdtyCompositionOption);
      }
    } catch (SQLException e) {
      e.printStackTrace();
    } finally {
      SIDBUtil.close(lResult, statement);
    }
    return rec;
  }
  
  /**
   * @return catchcopy
   */
  public String getCatchcopy() {
    return catchcopy;
  }

  /**
   * @param catchcopy セットする catchcopy
   */
  public void setCatchcopy(String catchcopy) {
    this.catchcopy = catchcopy;
  }

  /**
   * @return specification
   */
  public String getSpecification() {
    return specification;
  }

  /**
   * @param specification セットする specification
   */
  public void setSpecification(String specification) {
    this.specification = specification;
  }

  /**
   * @return activeingredient
   */
  public String getActiveingredient() {
    return activeingredient;
  }

  /**
   * @param activeingredient セットする activeingredient
   */
  public void setActiveingredient(String activeingredient) {
    this.activeingredient = activeingredient;
  }

  /**
   * @return component
   */
  public String getComponent() {
    return component;
  }

  /**
   * @param component セットする component
   */
  public void setComponent(String component) {
    this.component = component;
  }

  /**
   * @return precaution
   */
  public String getPrecaution() {
    return precaution;
  }

  /**
   * @param precaution セットする precaution
   */
  public void setPrecaution(String precaution) {
    this.precaution = precaution;
  }

  /**
   * @return othernotice
   */
  public String getOthernotice() {
    return othernotice;
  }

  /**
   * @param othernotice セットする othernotice
   */
  public void setOthernotice(String othernotice) {
    this.othernotice = othernotice;
  }

  public String getFinalUnitPrice(String lCalcPraice, String lPraice, String lSalesUnitPrice, String lSalesDiscountFlg, String lMemberDiscountFlg, String lDiscountFlg) {
    String lResPirce = lCalcPraice;
    String MSDiscountRate = "0";
    String MemberDiscountRate = "0";
    
    try {
      MSDiscountRate = SIUtil.sub_LD("1", SIUtil.div_DL(getMSDiscountRate(), "100"));
      MemberDiscountRate = SIUtil.sub_LD("1", SIUtil.div_DL(getCalcMemberDiscountRate(), "100"));
    } catch (SIFatalException e) {
      e.printStackTrace();
    }
    
    // 特価に対して値引を行う場合
    if (lCalcPraice.equals(lSalesUnitPrice) && lSalesDiscountFlg.equals("1")) {
      // 一括値引の適用
      if (!lDiscountFlg.equals("0") && !lMemberDiscountFlg.equals("1")) {
        lResPirce = SIUtil.multi_LD(lResPirce, MSDiscountRate);
      }
      // 会員値引の適用
      if (!lMemberDiscountFlg.equals("0")) {
        lResPirce = SIUtil.multi_LD(lResPirce, MemberDiscountRate);
      }
      // 上記以外の場合
    } else {
      // 通常価格の取得
      String lUnitPrice = lPraice;
      // 一括値引の適用
      if (!lDiscountFlg.equals("0") && !lMemberDiscountFlg.equals("1")) {
        lUnitPrice = SIUtil.multi_LD(lUnitPrice, MSDiscountRate);
      }
      // 会員値引の適用
      if (!lMemberDiscountFlg.equals("0")) {
        lUnitPrice = SIUtil.multi_LD(lUnitPrice, MemberDiscountRate);
      }
      // 通常価格に値引適用した金額(A)が、特価（値引なし）を下回る場合には(A)を適用する
      if (Integer.parseInt(lUnitPrice) < Integer.parseInt(lResPirce)) {
        lResPirce = lUnitPrice;
      }
    }
    return lResPirce;
  }
  
  /**
   * <b>reset</b> 修正モードの場合には、PKのデータを元に、明細データをデータベースから取り込んで 画面に表示します。
   * 
   * @param lConnection
   *          データベースへのコネンクション
   * @return なし
   * @throws なし
   */
  public boolean resetComposition(Connection lConnection) {
    boolean lResult = false;
    if (SIUtil.isNull(this.getCmdtyCode())) return lResult;
    ResultSet lResultSet = null;
    Statement lStatement = null;
    
    StringBuffer lSqlBuf = new StringBuffer();
    lSqlBuf.append("SELECT aa.*,dd.arrivalScheduleMsg ");
    lSqlBuf.append(",(aa.amount-unit.bgpamount) AS amountR ");
    lSqlBuf.append(",(SELECT TaxRate FROM TaxVW) AS taxRate ");
    lSqlBuf.append("FROM  CmdtyVW AS aa ");
    lSqlBuf.append("LEFT OUTER JOIN (SELECT FrontDispFlg,SoldOutDate,InquiryFlg,arrivalScheduleMsg,ShopCode,CmdtyCode,IndividualCode,");
    lSqlBuf
        .append("ExpansionComment1Title,ExpansionComment1Text,ExpansionComment2Title,ExpansionComment2Text,ExpansionComment3Title,ExpansionComment3Text,ExpansionComment4Title,ExpansionComment4Text ");
    // EDBTG005-00 kamata add start
    lSqlBuf.append(",ExpansionComment5Title,ExpansionComment5Text ");
    // EDBTG005-00 kamata add end
    lSqlBuf.append("FROM IndividualTbl) AS dd ");
    lSqlBuf.append("ON (aa.ShopCode=dd.ShopCode AND aa.CmdtyCode=dd.CmdtyCode AND aa.IndividualCode=dd.IndividualCode) ");
    lSqlBuf.append(",colortbl color ");
    lSqlBuf.append(",MallShopMtbl bb ");
    lSqlBuf.append(",cmdtyunittbl unit ");
    lSqlBuf.append(",feerulemtbl feerule ");
    lSqlBuf.append("WHERE aa.ShopCode=").append(SIDBUtil.SQL2Str(getShopCode(), " "));
    lSqlBuf.append("AND aa.CmdtyCode=").append(SIDBUtil.SQL2Str(getCmdtyCode(), " "));
    lSqlBuf.append("AND aa.IndividualCode=").append(SIDBUtil.SQL2Str(getIndividualCode(), " "));
    lSqlBuf.append("AND aa.individualcode=unit.individualcode ");
    lSqlBuf.append("AND aa.colorcode=color.colorcode ");
    lSqlBuf.append("AND aa.ShopCode = bb.MallShopCode ");
    lSqlBuf.append("AND aa.ShopCode = feerule.MallShopCode ");
    lSqlBuf.append("AND aa.deliverytypecode = feerule.deliverytypecode ");
    log.debug("reset:lSqlBuf=" + lSqlBuf.toString());
    try {
      lStatement = lConnection.createStatement();
      lResultSet = lStatement.executeQuery(lSqlBuf.toString());// 実行
      
      if (lResultSet.next()) {
        this.setEncode(SIConfig.SIENCODE_NONE);
        this.setShopCode(lResultSet.getString("shopCode"));// ショップコード
        this.setCmdtyCode(lResultSet.getString("cmdtyCode"));// 商品コード
        this.setIndividualCode(lResultSet.getString("individualCode"));// 商品コード
        this.setCmdtyName(lResultSet.getString("cmdtyName"));// 商品名
        this.setStockCode(lResultSet.getString("stockCode"));// 仕入れコード
        this.setStockUnitPrice(lResultSet.getString("stockUnitPrice"));// 仕入れ価格
        this.setUnitPrice(lResultSet.getString("unitPrice"));// 価格
        this.setSalesUnitPrice(lResultSet.getString("SalesUnitPrice"));// 特別価格
        this.setUnitPriceWithoutTax(lResultSet.getString("unitPriceWithoutTax"));// 価格
        this.setTaxFlg(lResultSet.getString("taxFlg"));// 税区分
        this.setAdviceFlg(lResultSet.getString("adviceFlg"));// おすすめ
        this.setAdviceDispOrder(lResultSet.getString("adviceDispOrder"));// おすすめ表示順
        this.setBannerFile(lResultSet.getString("bannerFile"));// バナーファイル
        this.setBannerURL(lResultSet.getString("bannerURL"));// バナー先
        this.setMemberDiscountFlg(lResultSet.getString("memberDiscountFlg"));// 会員値引フラグ
        this.setDiscountFlg(lResultSet.getString("DISCOUNTFLG"));// 一括値引フラグ
        this.setSalesDiscountFlg(lResultSet.getString("SALESDISCOUNTFLG"));// 特価値引フラグ
        this.setSrchKeyName1(lResultSet.getString("srchKeyName1"));// 検索項目1
        this.setSrchKeyName2(lResultSet.getString("srchKeyName2"));// 検索項目2
        this.setSrchKeyName3(lResultSet.getString("srchKeyName3"));// 検索項目3
        this.setCmdtySize(lResultSet.getString("cmdtySize"));// 商品サイズ
        this.setSellFromDate(SIDBUtil.getDate(lResultSet.getTimestamp("sellFromDate")));// 販売開始日
        this.setEndSellFlg(lResultSet.getString("endSellFlg"));// 販売終了フラグ
        this.setSellToDate(SIDBUtil.getDate(lResultSet.getTimestamp("sellToDate")));// 販売終了日
        this.setSalesFromDate(SIDBUtil.getDate(lResultSet.getTimestamp("salesFromDate")));// 特別価格開始日
        this.setSalesToDate(SIDBUtil.getDate(lResultSet.getTimestamp("salesToDate")));// 特別価格終了日
        this.setRsrvEnableFlg(lResultSet.getString("rsrvEnableFlg"));// 予約販売
        this.setWrappingFlg(lResultSet.getString("wrappingFlg"));// ラッピングフラグ
        this.setNoStockFlg(lResultSet.getString("noStockFlg"));// 在庫無販売
        this.setAmount(lResultSet.getString("amountR"));// 商品数量
        this.setRsrvAmount(lResultSet.getString("rsrvAmount"));// 予約可能数量
        this.setAmountFlg(lResultSet.getString("amountFlg"));// 商品数量管理フラグ
        this.setTotal(lResultSet.getString("total"));// 商品の総数
        this.setStockStatusCode(lResultSet.getString("stockStatusCode"));// 在庫状況番号
        this.setNewFlg(lResultSet.getString("newFlg"));// 商品新フラグ
        this.setHasStndrd(lResultSet.getString("hasStndrd"));// 商品新フラグ
        this.setCommentOfStock(lResultSet.getString("commentOfStock"));// 在庫状況コメント
        this.setSalesFlg(lResultSet.getString("salesFlg"));// 特価品フラグ
        this.setCalcUnitPrice(lResultSet.getString("calcUnitPrice"));// 勘定価格
        this.setTaxRate(lResultSet.getString("taxRate"));// 税率
        this.setDiscountFromDate(SIDBUtil.getDate(lResultSet.getTimestamp("discountfromdate")));// 値引き期間From
        this.setDiscountToDate(SIDBUtil.getDate(lResultSet.getTimestamp("discounttodate")));// 値引き期間To
        this.setDiscountRate(lResultSet.getString("discountRate"));// 値引率
        this.setDeliveryTypeCode(lResultSet.getString("deliveryTypeCode"));// 配送種別コード
        this.setDeliveryTypeName(lResultSet.getString("deliveryTypeName"));// 配送種別名称
        // this.setInStockFlg(lResultSet.getString("InStockFlg"));// 在庫管理フラグ
        this.setRanking(lResultSet.getString("Ranking"));// ランキング順位
        this.setImageName1(lResultSet.getString("imagename1"));
        this.setImageName2(lResultSet.getString("imagename2"));
        this.setImageName3(lResultSet.getString("imagename3"));
        this.setImageName4(lResultSet.getString("imagename4"));
        this.setImageName5(lResultSet.getString("imagename5"));
        this.setRankingDateTime(SIDBUtil.getDateTime(lResultSet.getTimestamp("RankingDateTime")));// ランキング集計日時
        this.setInitDateTime(SIDBUtil.getDateTime(lResultSet.getTimestamp("InitDateTime")));// 登録日時
        this.setColorCode(lResultSet.getString("ColorCode"));// 色コード
        // this.setColorName(lResultSet.getString("ColorName"));// 色名
        this.setMakerCode(lResultSet.getString("MakerCode"));// ブランドコード
        // this.setMakerName(lResultSet.getString("MakerName"));// ブランド名
        this.setTenureOfUse(lResultSet.getInt("TenureOfUse"));// 使用年数（月単位）
        this.setGuaranteedTerm(lResultSet.getInt("GuaranteedTerm"));// 保証期間（月単位）
        this.setNewFixedPrice(lResultSet.getString("NewFixedPrice"));// M価
        this.setBGPriceDispFlg(lResultSet.getString("BGPriceDispFlg"));// BG卸価フロント表示フラグ
        this.setUsedNewFlg(lResultSet.getInt("UsedNewFlg"));// 中古新品フラグ
        this.setSalesSituationFlg(lResultSet.getString("SalesSituationFlg"));// 販売状況
        // this.setInquiryFlg(lResultSet.getString("InquiryFlg"));// 問合せ区分
        this.setArrivalScheduleMsg(lResultSet.getString("ArrivalScheduleMsg"));
        // this.setPointRate(lResultSet.getString("pointRate"));// ボーナスポイントレート
        // this.setNomalPointRate(lResultSet.getString("nomalPointRate"));//
        // 通常ポイントレート
        this.setCampaignPriceFlg(lResultSet.getString("CampaignPriceFlg"));// キャンペーン特価区分
        // this.setNewArrivalFlg(lResultSet.getString("NewArrivalFlg"));// 新着フラグ
        // this.setFreeDeliveryFlg(lResultSet.getString("freeDeliveryFlg"));
        this.setPriceDownFlg(lResultSet.getString("priceDownFlg"));
        // this.setExpansionComment1Text(lResultSet.getString("expansionComment1Text"));
        // this.setExpansionComment1Title(lResultSet.getString("expansionComment1Title"));
        // this.setExpansionComment2Text(lResultSet.getString("expansionComment2Text"));
        // this.setExpansionComment2Title(lResultSet.getString("expansionComment2Title"));
        // this.setExpansionComment3Text(lResultSet.getString("expansionComment3Text"));
        // this.setExpansionComment3Title(lResultSet.getString("expansionComment3Title"));
        // this.setExpansionComment4Text(lResultSet.getString("expansionComment4Text"));
        // this.setExpansionComment4Title(lResultSet.getString("expansionComment4Title"));
        this.setCmdtyCompositionFlg(lResultSet.getString("cmdtyCompositionFlg"));
        this.setImageName6(lResultSet.getString("imagename6"));
        this.setImageName7(lResultSet.getString("imagename7"));
        this.setImageName8(lResultSet.getString("imagename8"));
        this.setImageName9(lResultSet.getString("imagename9"));
        this.setImageName10(lResultSet.getString("imagename10"));
        this.setImageName11(lResultSet.getString("imagename11"));
        // this.setMakerURL(lResultSet.getString("URL"));
        lResult = true;
        // this.setLoginFlg(lResultSet.getString("loginflg").equals("1"));
      } else {
        log.error("not find record for cmdtyCode=" + getCmdtyCode());
      }
    } catch (SQLException sqle) {
      sqle.printStackTrace();
    } finally {
      if (lStatement != null) try {
        lStatement.close();
      } catch (SQLException sqle) {
        sqle.printStackTrace();
      }
      if (lResultSet != null) try {
        lResultSet.close();
      } catch (SQLException sqle) {
        sqle.printStackTrace();
      }
    }
    return lResult;
  }
  
  public boolean getDispCarriageFree(Connection lConnection) {
    // 返却クラスの初期化
    boolean rec = false;
    SICmdtyComposition cmdtyComp = this.getCmdtyComposition(lConnection);
    if (cmdtyComp.getDispCarriageFreeFlg().equals("1")) {
      rec = true;
    }
    return rec;
  }
  
  // EDBTG003-00 nagayoshi add end
  public int getFixedSetAmount(Connection lConnection) {
    return SIBGUtil.getSetAmount(lConnection, shopCode, cmdtyCode, individualCode);
  }
}