/**
 * 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 java.util.ArrayList;
import java.util.Collection;

import jp.co.sint.beans.mallmgr.UIOrderBasic;
import jp.co.sint.beans.mallmgr.UIRegOrderDetail;
import jp.co.sint.config.SIConfig;
import jp.co.sint.config.SIDBMultiConf;
import jp.co.sint.config.SIFlagConf;
import jp.co.sint.database.SIDBUtil;
import jp.co.sint.tools.SIDateTime;
import jp.co.sint.tools.SIFatalException;
import jp.co.sint.tools.SIUtil;

import org.apache.log4j.Category;

/**
 * @version $Id: SIOrderDelivery.java,v 1.0 2003/11/06 Exp $
 * @author  Jinwang Chen
* <br>Description:
 * <p>History</p>
 * <p>Author&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reason</p>
 *  ============&nbsp;&nbsp;&nbsp;==========&nbsp;&nbsp;===========================<br>
 * Jinwang Chen   2003/11/06 17:04:04  Original
 */
public class SIOrderDelivery extends UIOrderBasic{
  //ログ用のインスタンスの生成
  private static Category log=Category.getInstance(SIConfig.SILOG4J_WEBSHOP_CATEGORY_NAME);
  
  //アドレス帳コード
  private String addressCode="";
  
  //受注番号
  private String orderCode="";
  
  //受注配送先項番
  private String deliveryCode="";
  
  //7.2.0 ST1030 追加 ここから
  //DBに登録する受注配送先項番（修正時のみ）
  private String deliveryCodeToDB="";
  //7.2.0 ST1030 追加 ここまで
  
  //配送先呼称
  private String deliveryName="";
  
  //配送先宛名
  private String deliveryAddressee="";
  
  //メール
  private String email="";
  
  //郵便番号1
  private String postCode1="";
  
  //郵便番号2
  private String postCode2="";
  
  //配送先住所1
  private String address1="";
  
  //配送先住所2
  private String address2="";
  
  //配送先住所3
  private String address3="";
  
  //会社名
  private String companyName="";
  
  //連絡先電話番号
  private String tel="";
  
  //連絡先FAX番号
  private String fax="";
  
  //送料
  private String deliveryFee="0";
  
  //送料税フラグ
  private String deliveryTaxFlg="1";
  
  //税率
  private String taxRate="0";
  
  //配送希望日
  private String deliveryDate="";
  
  //配送希望日の年
  private String deliveryDateYear="";
  
  //配送希望日の月
  private String deliveryDateMonth="";
  
  //配送希望日の日
  private String deliveryDateDay="";
  
  //配送希望時間帯From
  private String deliveryTimeFrom="";
  
  //配送希望時間帯To
  private String deliveryTimeTo="";
  
  //出荷日
  private String shippmentDate="";
  
  //出荷日の年
  private String shippmentDateYear="";
  
  //出荷日の月
  private String shippmentDateMonth="";
  
  //出荷日の日
  private String shippmentDateDay="";
  
  //配送種別名称
  private String deliveryTypeName="";
  
  //7.2.0 ST1030 追加 ここから
  //配送種別コード
  private String deliveryTypeCode="";
  //7.2.0 ST1030 追加 ここまで
  
  private int detailCount=0;
  
  private String custCompanyFlg="0";
  
  //自宅フラグ
  private String homeFlg="0";
  
  //ショップコード
  private String shopCode="";
  
  //7.2.0 ST1030 追加 ここから
  //ショップ名称
  private String shopName="";
  //7.2.0 ST1030 追加 ここまで
  
  //到着予定日
  private String arrivalPlanDateYear="";
  private String arrivalPlanDateMonth="";
  private String arrivalPlanDateDay="";
  
  //到着予定時間From
  private String arrivalPlanTimeFrom="";
  
  //到着予定時間To
  private String arrivalPlanTimeTo="";
  
  public SIOrderDelivery(){
  }
  
  public SIOrderDelivery(String lOrderCode,String lDeliveryCode){
    setOrderCode(lOrderCode);
    setDeliveryCode(lDeliveryCode);
  }
  //setter of アドレス帳コード
  public void setAddressCode(String lAddressCode){
    if (SIUtil.isNull(lAddressCode)) lAddressCode="";
    this.addressCode=SIUtil.changeTo(lAddressCode.trim(),this.encode);
  }
  
  //setter of 受注番号
  public void setOrderCode(String lOrderCode){
    if (SIUtil.isNull(lOrderCode)) lOrderCode="";
    this.orderCode=SIUtil.changeTo(lOrderCode.trim(),this.encode);
  }
  
  //setter of 受注配送先項番
  public void setDeliveryCode(String lDeliveryCode){
    if (SIUtil.isNull(lDeliveryCode)) lDeliveryCode="";
    this.deliveryCode=SIUtil.changeTo(lDeliveryCode.trim(),this.encode);
  }
  
  //7.2.0 ST1030 追加 ここから
  public void setDeliveryCodeToDB(String lDeliveryCode){
    if (SIUtil.isNull(lDeliveryCode)) lDeliveryCode = "";
    this.deliveryCodeToDB = SIUtil.changeTo(lDeliveryCode.trim(), this.encode);
  }
  //7.2.0 ST1030 追加 ここまで
  
  //setter of 配送先呼称
  public void setDeliveryName(String lDeliveryName){
    if (SIUtil.isNull(lDeliveryName)) lDeliveryName="";
    this.deliveryName=SIUtil.changeTo(lDeliveryName.trim(),this.encode);
  }
  
  //setter of 配送先宛名
  public void setDeliveryAddressee(String lDeliveryAddressee){
    if (SIUtil.isNull(lDeliveryAddressee)) lDeliveryAddressee="";
    this.deliveryAddressee=SIUtil.changeTo(lDeliveryAddressee.trim(),this.encode);
  }
  
  //setter of メール
  public void setEmail(String lEmail){
    if (SIUtil.isNull(lEmail)) lEmail="";
    this.email=SIUtil.changeTo(lEmail.trim(),this.encode);
  }
  
  //setter of 郵便番号1
  public void setPostCode1(String lPostCode1){
    if (SIUtil.isNull(lPostCode1)) lPostCode1="";
    this.postCode1=SIUtil.changeTo(lPostCode1.trim(),this.encode);
  }
  
  //setter of 郵便番号2
  public void setPostCode2(String lPostCode2){
    if (SIUtil.isNull(lPostCode2)) lPostCode2="";
    this.postCode2=SIUtil.changeTo(lPostCode2.trim(),this.encode);
  }
  
  //setter of 配送先住所1
  public void setAddress1(String lAddress1){
    if (SIUtil.isNull(lAddress1)) lAddress1="";
    this.address1=SIUtil.changeTo(lAddress1.trim(),this.encode);
  }
  
  //setter of 配送先住所2
  public void setAddress2(String lAddress2){
    if (SIUtil.isNull(lAddress2)) lAddress2="";
    this.address2=SIUtil.changeTo(lAddress2.trim(),this.encode);
  }
  
  //setter of 配送先住所3
  public void setAddress3(String lAddress3){
    if (SIUtil.isNull(lAddress3)) lAddress3="";
    this.address3=SIUtil.changeTo(lAddress3.trim(),this.encode);
  }
  
  //setter of 会社名
  public void setCompanyName(String lCompanyName){
    if (SIUtil.isNull(lCompanyName)) lCompanyName="";
    this.companyName=SIUtil.changeTo(lCompanyName.trim(),this.encode);
  }
  
  //setter of 連絡先電話番号
  public void setTel(String lTel){
    if (SIUtil.isNull(lTel)) lTel="";
    this.tel=SIUtil.changeTo(lTel.trim(),this.encode);
  }
  
  //setter of 連絡先FAX番号
  public void setFax(String lFax){
    if (SIUtil.isNull(lFax)) lFax="";
    this.fax=SIUtil.changeTo(lFax.trim(),this.encode);
  }
  
  //setter of 送料
  public void setDeliveryFee(String lDeliveryFee){
    if (SIUtil.isNull(lDeliveryFee)) lDeliveryFee="0";
    this.deliveryFee=SIUtil.changeTo(lDeliveryFee.trim(),this.encode);
  }
  
  //setter of 送料税フラグ
  public void setDeliveryTaxFlg(String lDeliveryTaxFlg){
    if (SIUtil.isNull(lDeliveryTaxFlg)) lDeliveryTaxFlg="1";
    this.deliveryTaxFlg=SIUtil.changeTo(lDeliveryTaxFlg.trim(),this.encode);
  }
  
  //setter of 税率
  public void setTaxRate(String lTaxRate){
    log.debug("setTaxRate:lTaxRate="+lTaxRate);
    if (SIUtil.isNull(lTaxRate)) lTaxRate="0";
    this.taxRate=SIUtil.changeTo(lTaxRate.trim(),this.encode);
  }
  
  //setter of 配送希望日
  public void setDeliveryDate(String lYear,String lMonth,String lDay){
    this.setDeliveryDateYear(lYear);
    this.setDeliveryDateMonth(lMonth);
    this.setDeliveryDateDay(lDay);
  }
  
  //setter of 配送希望日
  public void setDeliveryDate(String lDeliveryDate){
    if (SIUtil.isNull(lDeliveryDate)) lDeliveryDate="";
    else{
      try {
        SIDateTime lDateTime=new SIDateTime(lDeliveryDate,SIConfig.SIDATE_FORMAT);
        setDeliveryDate(lDateTime.getYearStr(),lDateTime.getMonthStr(),lDateTime.getDayStr());
      } catch (ParseException e) {
        e.printStackTrace();
      }
    }
    this.deliveryDate=lDeliveryDate;
  }
  
  //setter of 配送希望日の年
  public void setDeliveryDateYear(String lDeliveryDateYear){
    if (SIUtil.isNull(lDeliveryDateYear)) this.deliveryDateYear="";
    else this.deliveryDateYear=lDeliveryDateYear;
  }
  
  //setter of 配送希望日の月
  public void setDeliveryDateMonth(String lDeliveryDateMonth){
    if (SIUtil.isNull(lDeliveryDateMonth)) this.deliveryDateMonth="";
    else this.deliveryDateMonth=lDeliveryDateMonth;
  }
  
  //setter of 配送希望日の日
  public void setDeliveryDateDay(String lDeliveryDateDay){
    if (SIUtil.isNull(lDeliveryDateDay)) this.deliveryDateDay="";
    else this.deliveryDateDay=lDeliveryDateDay;
  }
  
  //setter of 配送希望時間帯
  public void setDeliveryTimeFrom(String lDeliveryTimeFrom){
    if (SIUtil.isNull(lDeliveryTimeFrom)) lDeliveryTimeFrom="";
    this.deliveryTimeFrom=SIUtil.changeTo(lDeliveryTimeFrom.trim(),this.encode);
  }
  
  //setter of 配送希望時間帯
  public void setDeliveryTimeTo(String lDeliveryTimeTo){
    if (SIUtil.isNull(lDeliveryTimeTo)) lDeliveryTimeTo="";
    this.deliveryTimeTo=SIUtil.changeTo(lDeliveryTimeTo.trim(),this.encode);
  }
  
  //setter of 配送希望日
  public void setShippmentDate(String lYear,String lMonth,String lDay){
    this.setShippmentDateYear(lYear);
    this.setShippmentDateMonth(lMonth);
    this.setShippmentDateDay(lDay);
  }
  
  //setter of 出荷日
  public void setShippmentDate(String lShippmentDate){
    if (SIUtil.isNull(lShippmentDate)) lShippmentDate="";
    else{
      try {
        SIDateTime lDateTime=new SIDateTime(lShippmentDate,SIConfig.SIDATE_FORMAT);
        setShippmentDate(lDateTime.getYearStr(),lDateTime.getMonthStr(),lDateTime.getDayStr());
      } catch (ParseException e) {
        e.printStackTrace();
      }
    }
    this.shippmentDate=lShippmentDate;
  }
  
  //setter of 出荷日の年
  public void setShippmentDateYear(String lShippmentDateYear){
    if (SIUtil.isNull(lShippmentDateYear)) this.shippmentDateYear="";
    else this.shippmentDateYear=lShippmentDateYear;
  }
  
  //setter of 出荷日の月
  public void setShippmentDateMonth(String lShippmentDateMonth){
    if (SIUtil.isNull(lShippmentDateMonth)) this.shippmentDateMonth="";
    else this.shippmentDateMonth=lShippmentDateMonth;
  }
  
  //setter of 出荷日の日
  public void setShippmentDateDay(String lShippmentDateDay){
    if (SIUtil.isNull(lShippmentDateDay)) this.shippmentDateDay="";
    else this.shippmentDateDay=lShippmentDateDay;
  }
  
  //setter of 配送種別名称
  public void setDeliveryTypeName(String lDeliveryTypeName){
    if (SIUtil.isNull(lDeliveryTypeName)) lDeliveryTypeName="";
    this.deliveryTypeName=SIUtil.changeTo(lDeliveryTypeName.trim(),this.encode);
  }
  
  //7.2.0 ST1030 追加 ここから
  //setter of 配送種別コード
  public void setDeliveryTypeCode(String lDeliveryTypeCode){
    if (SIUtil.isNull(lDeliveryTypeCode)) lDeliveryTypeCode="0";
    this.deliveryTypeCode = SIUtil.changeTo(lDeliveryTypeCode.trim(), this.encode);
  }
  //7.2.0 ST1030 追加 ここまで
  
  //setter of 個人法人フラグ
  public void setCustCompanyFlg(String lCustCompanyFlg){
    if (SIUtil.isNull(lCustCompanyFlg)) lCustCompanyFlg="0";
    this.custCompanyFlg=SIUtil.changeTo(lCustCompanyFlg.trim(),this.encode);
  }
  
  public void setHomeFlg(String lHomeFlg){
    if (SIUtil.isNull(lHomeFlg)) lHomeFlg="0";
    this.homeFlg=SIUtil.changeTo(lHomeFlg.trim(),this.encode);
  }
  
  //setter of ショップコード
  public void setShopCode(String lShopCode){
    if (SIUtil.isNull(lShopCode)) lShopCode="";
    this.shopCode=SIUtil.changeTo(lShopCode.trim(),this.encode);
  }
  
  //7.2.0 ST1030 追加 ここから
  //setter of ショップ名
  public void setShopName(String lShopName){
    if (SIUtil.isNull(lShopName)) lShopName="";
    this.shopName=SIUtil.changeTo(lShopName.trim(), this.encode);
  }
  //7.2.0 ST1030 追加 ここまで
  
  //setter of 配送希望日
  public void setArrivalPlanDate(String lYear,String lMonth,String lDay){
    this.setArrivalPlanDateYear(lYear);
    this.setArrivalPlanDateMonth(lMonth);
    this.setArrivalPlanDateDay(lDay);
  }
  
  //setter of 配送希望日
  public void setArrivalPlanDate(String lDeliveryDate){
    if (SIUtil.isNull(lDeliveryDate)) lDeliveryDate="";
    else{
      try {
        SIDateTime lDateTime=new SIDateTime(lDeliveryDate,SIConfig.SIDATE_FORMAT);
        setArrivalPlanDate(lDateTime.getYearStr(),lDateTime.getMonthStr(),lDateTime.getDayStr());
      } catch (ParseException e) {
        e.printStackTrace();
      }
    }
    this.deliveryDate=lDeliveryDate;
  }
  
  //setter of 配送希望日の年
  public void setArrivalPlanDateYear(String str){
    if (SIUtil.isNull(str)) this.arrivalPlanDateYear="";
    else this.arrivalPlanDateYear=str;
  }
  
  //setter of 配送希望日の月
  public void setArrivalPlanDateMonth(String str){
    if (SIUtil.isNull(str)) this.arrivalPlanDateMonth="";
    else this.arrivalPlanDateMonth=str;
  }

  //setter of 配送希望日の日
  public void setArrivalPlanDateDay(String str){
    if (SIUtil.isNull(str)) this.arrivalPlanDateDay="";
    else this.arrivalPlanDateDay=str;
  }
  
  //setter of 配送希望時間帯
  public void setArrivalPlanTimeFrom(String str){
    if (SIUtil.isNull(str)) str="";
    this.arrivalPlanTimeFrom=SIUtil.changeTo(str.trim(),this.encode);
  }
  
  //setter of 配送希望時間帯
  public void setArrivalPlanTimeTo(String str){
    if (SIUtil.isNull(str)) str="";
    this.arrivalPlanTimeTo=SIUtil.changeTo(str.trim(),this.encode);
  }
  
  public void inc(){
    this.detailCount++;
  }
  
  public void inc(int ii){
    this.detailCount=this.detailCount+ii;
  }
  
  public void dec(){
    this.detailCount--;
  }
  
  public void dec(int ii){
    this.detailCount=this.detailCount-ii;
  }
  
  //getter of アドレス帳コード
  public String getAddressCode(){
    return this.addressCode;
  }
  
  //getter of 受注番号
  public String getOrderCode(){
    return this.orderCode;
  }
  
  //getter of 受注配送先項番
  public String getDeliveryCode(){
    return this.deliveryCode;
  }
  
  //7.2.0 ST1030 追加 ここから
  public String getDeliveryCodeToDB(){
    return this.deliveryCodeToDB;
  }
  //7.2.0 ST1030 追加 ここまで
  
  //getter of 配送先呼称
  public String getDeliveryName(){
    return this.deliveryName;
  }
  
  //getter of 配送先宛名
  public String getDeliveryAddressee(){
    return this.deliveryAddressee;
  }
  
  public String getFullDeliveryName(){
    if (SIUtil.isNull(getDeliveryName())) return getDeliveryAddressee();
    else return getDeliveryAddressee()+"("+getDeliveryName()+")";
  }
  
  //getter of メール
  public String getEmail(){
    return this.email;
  }
  
  //getter of 郵便番号1
  public String getPostCode1(){
    return this.postCode1;
  }
  
  //getter of 郵便番号2
  public String getPostCode2(){
    return this.postCode2;
  }
  
  //getter of 郵便番号
  public String getPostCode(){
    if (SIUtil.isNotNull(getPostCode1())&&SIUtil.isNotNull(getPostCode2())){
      return getPostCode1()+"-"+getPostCode2();
    }else if (SIUtil.isNotNull(getPostCode1())||SIUtil.isNotNull(getPostCode2())){
      return getPostCode1()+getPostCode2();
    }else return "";
  }
  
  //getter of 配送先住所1
  public String getAddress1(){
    return this.address1;
  }
  
  //getter of 配送先住所2
  public String getAddress2(){
    return this.address2;
  }
  
  //getter of 配送先住所3
  public String getAddress3(){
    return this.address3;
  }
  
  public String getAddress(){
    return getAddress1()+getAddress2()+getAddress3();
  }
  
  //getter of 会社名
  public String getCompanyName(){
    return this.companyName;
  }
  
  //getter of 連絡先電話番号
  public String getTel(){
    return this.tel;
  }
  
  //getter of 連絡先FAX番号
  public String getFax(){
    return this.fax;
  }
  
  //getter of 送料(税別)
  public String getDeliveryFee(){
    return this.deliveryFee;
  }
  
  //getter of 送料(税別)
  public String getDeliveryTaxFlg(){
    return this.deliveryTaxFlg;
  }
  
  public String getDeliveryTaxName(){
    if(this.getDeliveryFee().equals("0")) return ""; //7.2.0 ST1085 追加
    if (getDeliveryTaxFlg().equals("0")) return "("+SIFlagConf.SIFLAG_TAX_0+")";
    else if (getDeliveryTaxFlg().equals("1")) return "("+SIFlagConf.SIFLAG_TAX_1+")";
    else if (getDeliveryTaxFlg().equals("2")) return "("+SIFlagConf.SIFLAG_TAX_2+")";
    else return "";
  }
  
  //getter of 送料(税込み)
  public String getDeliveryFeeIncTax(){
    log.debug("getDeliveryFeeIncTax:getTaxRate="+getTaxRate());
    if (getDeliveryTaxFlg().equals("0") || getDeliveryTaxFlg().equals("2")) return getDeliveryFee();
    String lTax="0";
    try {
      lTax=SIUtil.multi_LD(getDeliveryFee(),SIUtil.div_DL(getTaxRate(),"100"));
    } catch (SIFatalException e) {
      e.printStackTrace();
    }
    return SIUtil.add_LL(getDeliveryFee(),lTax);
  }
  
  //getter of 税率
  public String getTaxRate(){
    return this.taxRate;
  }
  
  //getter of 配送希望日
  public String getDeliveryDate(){
    return SIDateTime.getDate(getDeliveryDateYear(),getDeliveryDateMonth(),getDeliveryDateDay());
  }
  
  public String getDeliveryDateYear(){
    return this.deliveryDateYear;
  }
  
  public String getDeliveryDateMonth(){
    return this.deliveryDateMonth;
  }
  
  public String getDeliveryDateDay(){
    return this.deliveryDateDay;
  }
  
  //getter of 配送希望時間帯From
  public String getDeliveryTimeFrom(){
    return this.deliveryTimeFrom;
  }
  
  //getter of 配送希望時間帯To
  public String getDeliveryTimeTo(){
    return this.deliveryTimeTo;
  }
  
  public String getDeliveryTime(){
    if(SIUtil.isNull(this.deliveryTimeFrom) || SIUtil.isNull(this.deliveryTimeTo))return "";
    else return this.deliveryTimeFrom+"-"+this.deliveryTimeTo;
  }
  
  //getter of 出荷日
  public String getShippmentDate(){
    return SIDateTime.getDate(getShippmentDateYear(),getShippmentDateMonth(),getShippmentDateDay());
  }
  
  public String getShippmentDateYear(){
    return this.shippmentDateYear;
  }
  
  public String getShippmentDateMonth(){
    return this.shippmentDateMonth;
  }
  
  public String getShippmentDateDay(){
    return this.shippmentDateDay;
  }
  
  //getter of 配送種別名称
  public String getDeliveryTypeName(){
    return this.deliveryTypeName;
  }
  
  //7.2.0 ST1030 追加 ここから
  //getter of 配送種別名称
  public String getDeliveryTypeCode(){
    return this.deliveryTypeCode;
  }
  //7.2.0 ST1030 追加 ここから
  
  //getter of 個人法人フラグ
  public String getCustCompanyFlg(){
    return this.custCompanyFlg;
  }
  
  //getter of 自宅フラグ
  public String getHomeFlg(){
    return this.homeFlg;
  }
  
  //getter of ショップコード
  public String getShopCode(){
    return this.shopCode;
  }
  
  //7.2.0 ST1030 追加 ここから
  //getter of ショップ名
  public String getShopName(){
    return this.shopName;
  }
  //7.2.0 ST1030 追加 ここまで
  
  //getter of 到着予定日
  public String getArrivalPlanDate(){
    return SIDateTime.getDate(getArrivalPlanDateYear(),getArrivalPlanDateMonth(),getArrivalPlanDateDay());
  }
  
  public String getArrivalPlanDateYear(){
    return this.arrivalPlanDateYear;
  }
  
  public String getArrivalPlanDateMonth(){
    return this.arrivalPlanDateMonth;
  }

  public String getArrivalPlanDateDay(){
    return this.arrivalPlanDateDay;
  }
  
  //getter of 到着予定日From
  public String getArrivalPlanTimeFrom(){
    return this.arrivalPlanTimeFrom;
  }
  
  //getter of 到着予定日To
  public String getArrivalPlanTimeTo(){
    return this.arrivalPlanTimeTo;
  }
  
  public String getArrivalPlanTime(){
    if(SIUtil.isNull(this.arrivalPlanTimeFrom) || SIUtil.isNull(this.arrivalPlanTimeTo))return "";
    else return this.arrivalPlanTimeFrom+"-"+this.arrivalPlanTimeTo;
  }
  
  public int getDetailCount(){
    return this.detailCount ;
  }
  
  public boolean isEmpty(){
    return (this.detailCount<1);
  }
  
  /**
   * <b>reset</b>
   * 修正モードの場合には、PKのデータを元に、明細データをデータベースから取り込んで
   * 画面に表示します。
   * @param lConnection データベースへのコネンクション
   * @return なし
   * @throws なし
   */
  public boolean reset(Connection lConnection){
    boolean lResult=false;
    if (SIUtil.isNull(this.getOrderCode())) return lResult;
    Statement lStatement=null;
    ResultSet lResultSet=null;
    StringBuffer lSqlBuf=new StringBuffer();
    //7.2.0 ST1034 追加・修正 ここから
    //7.2.0 ST1030 修正 ここから
    lSqlBuf.append("SELECT aa.*, bb.FRONTSHOPNAME ");
    lSqlBuf.append(" FROM ").append(SIConfig.SIVIEW_ORDER_DELIVERY_LATEST_NAME).append(" aa ");
    lSqlBuf.append(" INNER JOIN MALLSHOPMTBL bb ON aa.MALLSHOPCODE=bb.MALLSHOPCODE ");
    lSqlBuf.append(" WHERE OrderCode=").append(SIDBUtil.SQL2Str(this.getOrderCode()," "));
    lSqlBuf.append(" AND DeliveryCode=").append(SIDBUtil.SQL2Str(this.getDeliveryCode()));
    //lSqlBuf.append("SELECT * FROM OrderDeliveryTbl " );
    //lSqlBuf.append("WHERE OrderCode=").append(SIDBUtil.SQL2Str(this.getOrderCode()," "));
    //lSqlBuf.append("AND DeliveryCode=").append(SIDBUtil.SQL2Str(this.getDeliveryCode()));
    //7.2.0 ST1030 修正 ここまで
    //7.2.0 ST1034 追加・修正 ここまで
    
    log.debug("reset:lSqlBuf="+lSqlBuf.toString());
    try {
      lStatement=lConnection.createStatement();
      lResultSet=lStatement.executeQuery(lSqlBuf.toString());
      
      if (lResultSet.next()){
        this.setEncode(SIConfig.SIENCODE_NONE);
        lResult=true;
        this.setOrderCode(lResultSet.getString("orderCode"));//受注番号
        this.setDeliveryCode(lResultSet.getString("deliveryCode"));//受注配送先項番
        this.setDeliveryName(lResultSet.getString("deliveryName"));//配送先呼称
        this.setDeliveryAddressee(lResultSet.getString("deliveryAddressee"));//配送先宛名
        this.setEmail(lResultSet.getString("email"));//メール
        this.setPostCode1(lResultSet.getString("postCode1"));//郵便番号1
        this.setPostCode2(lResultSet.getString("postCode2"));//郵便番号2
        this.setAddress1(lResultSet.getString("address1"));//配送先住所1
        this.setAddress2(lResultSet.getString("address2"));//配送先住所2
        this.setAddress3(lResultSet.getString("address3"));//配送先住所3
        this.setCompanyName(lResultSet.getString("companyName"));//会社名
        this.setTel(lResultSet.getString("tel"));//連絡先電話番号
        this.setFax(lResultSet.getString("fax"));//連絡先FAX番号
        this.setDeliveryFee(lResultSet.getString("deliveryFee"));//送料
        this.setDeliveryTaxFlg(lResultSet.getString("deliveryTaxFlg"));//送料税フラグ
        this.setTaxRate(lResultSet.getString("taxRate"));//税率
        this.setDeliveryDate(SIDBUtil.getDate(lResultSet.getTimestamp("deliveryDate")));//配送希望日
        this.setDeliveryTimeFrom(lResultSet.getString("deliveryTimeFrom"));//配送希望時間帯From
        this.setDeliveryTimeTo(lResultSet.getString("deliveryTimeTo"));//配送希望時間帯To
        this.setShippmentDate(SIDBUtil.getDate(lResultSet.getTimestamp("shippmentDate")));//出荷日
        this.setDeliveryTypeName(lResultSet.getString("deliveryTypeName"));//配送種別名称
        this.setCustCompanyFlg(lResultSet.getString("custCompanyFlg"));//個人法人フラグ
        this.setHomeFlg(lResultSet.getString("homeFlg"));//自宅フラグ
        this.setArrivalPlanDate(SIDBUtil.getDate(lResultSet.getTimestamp("arrivalPlanDate")));//自宅フラグ
        this.setArrivalPlanTimeFrom(lResultSet.getString("arrivalPlanTimeFrom"));//自宅フラグ
        this.setArrivalPlanTimeTo(lResultSet.getString("arrivalPlanTimeTo"));//自宅フラグ
        
        //7.2.0 ST1030 追加 ここから
        this.setAddressCode(lResultSet.getString("ADDRESSCODE"));            //アドレス帳コード
        this.setShopCode(lResultSet.getString("MALLSHOPCODE"));              //管理コード
        this.setDeliveryTypeCode(lResultSet.getString("DELIVERYTYPECODE"));  //配送種別コード
        //7.2.0 ST1030 追加 ここまで
        
        this.setShopName(lResultSet.getString("FRONTSHOPNAME"));              //ショップ名  //7.2.0 ST1034 追加
      }else {
        log.error("not find record for ordercode="+getOrderCode());
      }
    }catch(SQLException sqle){
      sqle.printStackTrace();
    }finally{
      SIDBUtil.close(lStatement,lResultSet);
    }
    return lResult;
  }

  public Collection getDetailCollection(Connection lConnection){
      return getDetailCollection(lConnection,null);
  }
  /**
   * <b>getDetailCollection</b>
   * 受注番号、受注配送先項番から受注明細のコレクションを返します。
   * @param lConnection
   * @return
   */
  public Collection getDetailCollection(Connection lConnection,String detailCode){
    Collection lResultColl=new ArrayList();
    UIRegOrderDetail lOrderDetail=new UIRegOrderDetail();
    Statement lStatement=null;
    ResultSet lResultSet=null;
    
    StringBuffer lSqlBuf=new StringBuffer();
    lSqlBuf.append("SELECT aa.*,bb.PurchasePrice,bb.ProcessingExpence,cc.DeliveryTypeCode,cc.DeliveryTypeName,unit.UsedNewFlg,color.ColorName ");
    lSqlBuf.append("FROM CmdtyUnitTbl unit,ColorTbl color,OrderDetailVW aa ");
    lSqlBuf.append("LEFT JOIN OrderDetailTbl bb ");
    lSqlBuf.append("ON aa.OrderCode=bb.OrderCode AND aa.DeliveryCode=bb.DeliveryCode ");
    lSqlBuf.append("AND aa.DetailCode=bb.DetailCode AND aa.OrderBranchCode=bb.OrderBranchCode ");
    lSqlBuf.append("LEFT JOIN (SELECT DISTINCT OrderCode,DeliveryCode,DeliveryTypeCode,DeliveryTypeName,orderbranchcode FROM OrderDeliveryTbl) cc ");
    lSqlBuf.append("ON aa.OrderCode=cc.OrderCode AND aa.DeliveryCode=cc.DeliveryCode AND aa.OrderBranchCode=cc.OrderBranchCode ");
    lSqlBuf.append("WHERE aa.OrderCode=").append(SIDBUtil.SQL2Str(getOrderCode()," "));
    lSqlBuf.append("AND aa.DeliveryCode=").append(SIDBUtil.SQL2Str(getDeliveryCode()," "));
    if(SIUtil.isNotNull(detailCode)){
      lSqlBuf.append("AND aa.DetailCode=").append(SIDBUtil.SQL2Str(detailCode," "));
    }
    lSqlBuf.append("AND aa.IndividualCode=unit.IndividualCode ");
    lSqlBuf.append("AND unit.ColorCode=color.ColorCode ");
    lSqlBuf.append("ORDER BY aa.DetailCode");
    log.debug("getConnection:lSqlBuf="+lSqlBuf.toString());
    
    try {
      lStatement=lConnection.createStatement();
      lResultSet=lStatement.executeQuery( lSqlBuf.toString());
      while (lResultSet.next()){
        lOrderDetail=new UIRegOrderDetail();
        lOrderDetail.setEncode(SIConfig.SIENCODE_NONE);
        lOrderDetail.setOrderCode(lResultSet.getString("orderCode"));//受注番号
        lOrderDetail.setDeliveryCode(lResultSet.getString("deliveryCode"));//受注配送先項番
        lOrderDetail.setDetailCode(lResultSet.getString("detailCode"));//受注明細項番
        lOrderDetail.setShopCode(lResultSet.getString("shopCode"));//ショップコード
        lOrderDetail.setShopName(lResultSet.getString("shopName"));//ショップ名
        lOrderDetail.setCmdtyCode(lResultSet.getString("cmdtyCode"));//商品コード
        lOrderDetail.setIndividualCode(lResultSet.getString("IndividualCode"));//在庫コード //7.3.0 PI-NES0501 追加
        lOrderDetail.setCmdtyName(lResultSet.getString("cmdtyName"));//商品名(必須)
        lOrderDetail.setStndrdCode1(lResultSet.getString("StndrdCode1"));//規格コード1
        lOrderDetail.setStndrdName1(lResultSet.getString("StndrdName1"));//規格名1
        lOrderDetail.setElementCode1(lResultSet.getString("ElementCode1"));//エレメントコード1
        lOrderDetail.setElementName1(lResultSet.getString("ElementName1"));//エレメント名1
        lOrderDetail.setStndrdCode2(lResultSet.getString("StndrdCode2"));//規格コード2
        lOrderDetail.setStndrdName2(lResultSet.getString("StndrdName2"));//規格名2
        lOrderDetail.setElementCode2(lResultSet.getString("ElementCode2"));//エレメントコード2
        lOrderDetail.setElementName2(lResultSet.getString("ElementName2"));//エレメント名2
        lOrderDetail.setAmount(lResultSet.getString("amount"));//数量(必須)
        lOrderDetail.setSuperAmount(lResultSet.getString("amount"));//数量(必須)
        lOrderDetail.setOrgPrice(lResultSet.getString("OrgPrice"));//本体価格
        lOrderDetail.setPrice(lResultSet.getString("price"));//購入価格
        lOrderDetail.setTaxFlg(lResultSet.getString("taxFlg"));//本体価格税区分
        lOrderDetail.setTaxRate(lResultSet.getString("taxRate"));//税率
        lOrderDetail.setCmdtySize(lResultSet.getString("cmdtySize"));//サイズ
        lOrderDetail.setPriceIncTax(lResultSet.getString("PriceIncTax"));//購入価格
        lOrderDetail.setWrappingCode(lResultSet.getString("WrappingCode"));//ラッピングコード
        lOrderDetail.setWrappingName(lResultSet.getString("WrappingName"));//ラッピング名
        lOrderDetail.setWrappingTaxFlg(lResultSet.getString("WrappingTaxFlg"));//ラッピング税フラグ
        lOrderDetail.setWrappingPrice(lResultSet.getString("WrappingPrice"));//ラッピング価格
        lOrderDetail.setBranchCode(lResultSet.getString("branchcode"));//支店
        lOrderDetail.setChargeCode(lResultSet.getString("chargecode"));//担当者
        lOrderDetail.setDeliveryFee(lResultSet.getString("deliveryfee"));//送料
        lOrderDetail.setDeliveryDate(lResultSet.getString("deliverydate"));//配送希望日
        lOrderDetail.setDeliveryTime(lResultSet.getString("deliverytime"));//希望時間帯
        lOrderDetail.setShippmentDate(lResultSet.getString("shippmentdate"));//出荷日
        //7.3.0 PI-NES0501 追加 ここから
        lOrderDetail.setPurchasePrice(lResultSet.getString("PurchasePrice"));
        lOrderDetail.setProcessingExpance(lResultSet.getString("ProcessingExpence"));
        lOrderDetail.setDeliveryTypeCode(lResultSet.getString("DeliveryTypeCode"));
        lOrderDetail.setDeliveryTypeName(lResultSet.getString("DeliveryTypeName"));
        //7.3.0 PI-NES0501 追加 ここまで
        lOrderDetail.setUsedNewFlg(lResultSet.getInt("usedNewFlg"));
        lOrderDetail.setColorName(lResultSet.getString("colorName"));
        lOrderDetail.setConsignGoodsFee(lResultSet.getString("consignGoodsFee"));
        // EDBTG003-00 elecs-tani add start
        lOrderDetail.setSetDetailFlg(lResultSet.getString("setDetailFlg"));
        lOrderDetail.setSetCode(lResultSet.getString("setCode"));
        lOrderDetail.setSetIndividualCode(lResultSet.getString("setIndividualCode"));
        lOrderDetail.setSetDetailCode(lResultSet.getString("setDetailCode"));
        // EDBTG003-00 elecs-tani add end
        lOrderDetail.setOrderDetailCode(lResultSet.getString("detailcode"));        // EDBTG003-00 elecs-matsushima add end
        lResultColl.add(lOrderDetail);
        log.debug("lOrderDetail.getCartCmdtyName()="+lOrderDetail.getCartCmdtyName());
      }
    } catch (SQLException e) {
      e.printStackTrace();
      return new ArrayList();
    } finally {
      SIDBUtil.close(lStatement, lResultSet);
    }
    return lResultColl;
  }
  
  //受注明細コレクション（参照専用）
  public Collection getDetailCollectionRef(Connection lConnection){
    Collection lResultColl=new ArrayList();
    UIRegOrderDetail lOrderDetail=new UIRegOrderDetail();
    Statement lStatement=null;
    ResultSet lResultSet=null;
    
    StringBuffer lSqlBuf=new StringBuffer();
    lSqlBuf.append("SELECT aa.*,bb.PurchasePrice,bb.ProcessingExpence,cc.DeliveryTypeName,i.cmdtyCompositionFlg ");
    lSqlBuf.append(",CASE WHEN i.frontdispflg = '0' THEN false ");
    lSqlBuf.append(" WHEN i.amountflg = '0' THEN true ");
    lSqlBuf.append(" WHEN s.amount > '0' THEN true ");
    lSqlBuf.append(" WHEN i.rsrvenableflg = '1' AND rsrvamount IS NULL THEN true ");
    lSqlBuf.append(" WHEN i.rsrvenableflg = '1' AND rsrvamount != 0 THEN true ");
    lSqlBuf.append(" WHEN i.usednewflg IN ('1','7') AND i.soldoutdate + ").append(SIConfig.DEFAULT_SOLDOUT).append(" <= CURRENT_DATE THEN true ");
    lSqlBuf.append(" ELSE false END AS frontdispflg ");
    lSqlBuf.append("FROM (SELECT *,CASE WHEN setindividualcode IS NULL THEN individualcode ELSE setindividualcode END AS individualcode2 FROM OrderDetailVW) aa ");
    lSqlBuf.append("LEFT JOIN OrderDetailTbl bb ");
    lSqlBuf.append("ON aa.OrderCode=bb.OrderCode AND aa.DeliveryCode=bb.DeliveryCode ");
    lSqlBuf.append("AND aa.DetailCode=bb.DetailCode AND aa.OrderBranchCode=bb.OrderBranchCode ");
    lSqlBuf.append("LEFT JOIN (SELECT DISTINCT OrderCode,DeliveryCode,DeliveryTypeName,orderbranchcode FROM OrderDeliveryTbl) cc ");
    lSqlBuf.append("ON aa.OrderCode=cc.OrderCode AND aa.DeliveryCode=cc.DeliveryCode AND aa.OrderBranchCode=cc.OrderBranchCode ");
    lSqlBuf.append(",cmdtyunittbl i ,(SELECT individualcode,amount-bgpamount AS amount FROM cmdtyunittbl) s ");
    lSqlBuf.append("WHERE aa.OrderCode=").append(SIDBUtil.SQL2Str(getOrderCode()," "));
    lSqlBuf.append("AND aa.DeliveryCode=").append(SIDBUtil.SQL2Str(getDeliveryCode()," "));
    lSqlBuf.append("AND aa.IndividualCode2=i.IndividualCode ");
    lSqlBuf.append("AND i.IndividualCode=s.IndividualCode ");
    lSqlBuf.append("ORDER BY aa.DetailCode");
    log.debug("getConnection:lSqlBuf="+lSqlBuf.toString());
    
    try {
      lStatement=lConnection.createStatement();
      lResultSet=lStatement.executeQuery( lSqlBuf.toString());
      while (lResultSet.next()){
        lOrderDetail=new UIRegOrderDetail();
        lOrderDetail.setEncode(SIConfig.SIENCODE_NONE);
        lOrderDetail.setOrderCode(lResultSet.getString("orderCode"));//受注番号
        lOrderDetail.setDeliveryCode(lResultSet.getString("deliveryCode"));//受注配送先項番
        lOrderDetail.setDetailCode(lResultSet.getString("detailCode"));//受注明細項番
        lOrderDetail.setCmdtyCode(lResultSet.getString("cmdtyCode"));//商品コード
        lOrderDetail.setIndividualCode(lResultSet.getString("IndividualCode"));//在庫コード
        lOrderDetail.setCmdtyName(lResultSet.getString("cmdtyName"));//商品名(必須)
        lOrderDetail.setAmount(lResultSet.getString("amount"));//数量(必須)
        lOrderDetail.setSuperAmount(lResultSet.getString("amount"));//数量(必須)
        lOrderDetail.setOrgPrice(lResultSet.getString("OrgPrice"));//本体価格
        lOrderDetail.setPrice(lResultSet.getString("price"));//購入価格
        lOrderDetail.setTaxFlg(lResultSet.getString("taxFlg"));//本体価格税区分
        lOrderDetail.setTaxRate(lResultSet.getString("taxRate"));//税率
        lOrderDetail.setCmdtySize(lResultSet.getString("cmdtySize"));//サイズ
        lOrderDetail.setPriceIncTax(lResultSet.getString("PriceIncTax"));//購入価格
        lOrderDetail.setBranchCode(lResultSet.getString("branchcode"));//支店
        lOrderDetail.setChargeCode(lResultSet.getString("chargecode"));//担当者
        lOrderDetail.setDeliveryFee(lResultSet.getString("deliveryfee"));//送料
        lOrderDetail.setDeliveryDate(lResultSet.getString("deliverydate"));//配送希望日
        lOrderDetail.setShippmentDate(lResultSet.getString("shippmentdate"));//出荷日
        lOrderDetail.setPurchasePrice(lResultSet.getString("PurchasePrice"));
        lOrderDetail.setProcessingExpance(lResultSet.getString("ProcessingExpence"));
        lOrderDetail.setDeliveryTypeName(lResultSet.getString("DeliveryTypeName"));
        lOrderDetail.setConsignGoodsFee(lResultSet.getString("consignGoodsFee"));
        // EDBTG003-00 nagayoshi add start
        lOrderDetail.setSetDetailFlg(lResultSet.getString("setDetailFlg")); // 明細区分
        lOrderDetail.setSetCode(lResultSet.getString("setCode")); // セット番号
        lOrderDetail.setSetIndividualCode(lResultSet.getString("setIndividualCode")); // セット在庫コード
        lOrderDetail.setSetDetailCode(lResultSet.getString("setDetailCode")); // セット明細番号
        // EDBTG003-00 nagayoshi add end
        lOrderDetail.setFrontDisp(lResultSet.getBoolean("frontdispflg"));
        lOrderDetail.setCmdtyCompositionFlg(lResultSet.getString("cmdtyCompositionFlg"));
        lOrderDetail.setOrderDetailCode(lResultSet.getString("detailcode")); // 受注明細項番  // EDBTG003-00 elecs-matsushima add
        lResultColl.add(lOrderDetail);
        log.debug("lOrderDetail.getCartCmdtyName()="+lOrderDetail.getCartCmdtyName());
      }
    } catch (SQLException e) {
      e.printStackTrace();
      return new ArrayList();
    } finally {
      SIDBUtil.close(lStatement, lResultSet);
    }
    return lResultColl;
  }
  
  
  public Collection getDetailCmdtyCollection(Connection lConnection){
      return getDetailCmdtyCollection(lConnection,null);
  }
  
  /**
   * <b>getDetailCmdtyCollection</b>
   * 受注番号、受注配送先項番から受注明細のコレクションを返します。
   * @param lConnection
   * @return
   */
  public Collection getDetailCmdtyCollection(Connection lConnection,String detailCode){
    Collection lResultColl=new ArrayList();
    UIRegOrderDetail lOrderDetail=new UIRegOrderDetail();
    Statement lStatement=null;
    ResultSet lResultSet=null;
    
    StringBuffer lSqlBuf=new StringBuffer();
    lSqlBuf.append("SELECT aa.orderCode,aa.cmdtyCode,aa.individualCode,aa.cmdtyName,aa.taxRate,aa.price,aa.shippmentdate, ");
    lSqlBuf.append("(CASE WHEN (shippment.branchcode IS NULL) OR (individual.amountflg='0')  THEN aa.Amount ");
    lSqlBuf.append(" ELSE shippment.orderallocationnumber END) as amount,bb.branchName,individual.*,aa.DeliveryCode,aa.DetailCode  ");
    lSqlBuf.append(", aa.setdetailflg, aa.setcode, aa.setindividualcode, aa.setdetailcode, aa.setcmdtycode "); // EDBTG003-00 elecs-tani add
    lSqlBuf.append(" FROM orderdetaillatestvw aa ");
    lSqlBuf.append(" LEFT OUTER JOIN ");
    lSqlBuf.append(" OrderAlLocationInfotbl AS shippment ");
    lSqlBuf.append(" ON aa.ordercode =shippment.ordercode  ");
    // EDBTG003-00 nagayoshi add start
    lSqlBuf.append(" AND aa.detailcode =shippment.detailcode  ");
    // EDBTG003-00 nagayoshi add end
    lSqlBuf.append(" AND aa.individualCode =shippment.individualCode AND aa.CmdtyCode =shippment.CmdtyCode ");
    lSqlBuf.append(" LEFT OUTER JOIN ");
    lSqlBuf.append(" BranchTbl AS bb ");
    lSqlBuf.append(" ON shippment.branchcode =bb.branchcode , ");
    lSqlBuf.append(" (SELECT i.amountflg,i.cmdtyCode,i.individualCode,i.guaranteedterm,i.remarks FROM individualtbl AS i ) AS individual ");    
    lSqlBuf.append(" WHERE aa.OrderCode=").append(SIDBUtil.SQL2Str(getOrderCode()));
    if(SIUtil.isNotNull(detailCode)){
      lSqlBuf.append(" AND aa.detailCode=").append(SIDBUtil.SQL2Str(detailCode));
      lSqlBuf.append(" AND aa.DeliveryCode=").append(SIDBUtil.SQL2Str(getDeliveryCode()));
    } 
    lSqlBuf.append(" AND individual.individualCode =aa.individualCode ");
    lSqlBuf.append(" AND individual.cmdtyCode =aa.cmdtyCode ");
    // EDBTG003-00 elecs-tani mod start
//    lSqlBuf.append(" ORDER BY aa.DeliveryCode,aa.DetailCode ");
    lSqlBuf.append(" ORDER BY aa.setcode, aa.setdetailcode, aa.DetailCode, aa.cmdtycode, aa.individualcode ");
    // EDBTG003-00 elecs-tani mod end
    log.debug("getConnection:lSqlBuf="+lSqlBuf.toString());
    
    try {
      lStatement=lConnection.createStatement();
      lResultSet=lStatement.executeQuery( lSqlBuf.toString());
      while (lResultSet.next()){
        lOrderDetail=new UIRegOrderDetail();
        lOrderDetail.setEncode(SIConfig.SIENCODE_NONE);
        lOrderDetail.setOrderCode(lResultSet.getString("orderCode"));//受注番号
        lOrderDetail.setDeliveryCode(lResultSet.getString("deliveryCode"));
        lOrderDetail.setDetailCode(lResultSet.getString("detailCode"));
        lOrderDetail.setCmdtyCode(lResultSet.getString("cmdtyCode"));//商品コード
        lOrderDetail.setIndividualCode(lResultSet.getString("individualCode"));//在庫コード
        lOrderDetail.setCmdtyName(lResultSet.getString("cmdtyName"));//商品名(必須)
        lOrderDetail.setAmount(lResultSet.getString("amount"));//数量(必須)
        lOrderDetail.setTaxRate(lResultSet.getString("taxRate"));//税率
        lOrderDetail.setPrice(lResultSet.getString("price"));//購入価格
        lOrderDetail.setShippmentDate(lResultSet.getString("shippmentdate"));//出荷日
        lOrderDetail.setBranchCode(lResultSet.getString("branchName"));//出荷支店
        lOrderDetail.setGuaranteedTerm(lResultSet.getString("guaranteedterm"));//保証
        lOrderDetail.setRemarks(lResultSet.getString("remarks"));//備考
        // EDBTG003-00 elecs-tani add start
        lOrderDetail.setSetDetailFlg(lResultSet.getString("setDetailFlg"));
        lOrderDetail.setSetCode(lResultSet.getString("setCode"));
        lOrderDetail.setSetIndividualCode(lResultSet.getString("setIndividualCode"));
        lOrderDetail.setSetDetailCode(lResultSet.getString("setDetailCode"));
        // EDBTG003-00 elecs-tani add end
        lResultColl.add(lOrderDetail);
        log.debug("lOrderDetail.getCartCmdtyName()="+lOrderDetail.getCartCmdtyName());
      }
    } catch (SQLException e) {
      e.printStackTrace();
      return new ArrayList();
    } finally {
      SIDBUtil.close(lStatement, lResultSet);
    }
    return lResultColl;
  }
  
  /**
   * <b>getDetailCollectionFull</b>
   * 受注番号、受注配送先項番から受注明細のコレクションを返します。
   * @param lConnection
   * @return
   */
  public Collection getDetailCollectionFull(Connection lConnection){
    Collection lResultColl=new ArrayList();
    UIRegOrderDetail lOrderDetail=new UIRegOrderDetail();
    Statement lStatement=null;
    ResultSet lResultSet=null;
    
    StringBuffer lSqlBuf=new StringBuffer();
    lSqlBuf.append("SELECT aa.*,bb.PurchasePrice,bb.ProcessingExpence,cc.DeliveryTypeName ");
    lSqlBuf.append("FROM OrderDetailVW aa ");
    lSqlBuf.append("LEFT JOIN OrderDetailTbl bb ");
    lSqlBuf.append("ON aa.OrderCode=bb.OrderCode AND aa.DeliveryCode=bb.DeliveryCode ");
    lSqlBuf.append("AND aa.DetailCode=bb.DetailCode AND aa.OrderBranchCode=bb.OrderBranchCode ");
    lSqlBuf.append("LEFT JOIN (SELECT DISTINCT OrderCode,DeliveryCode,DeliveryTypeName,orderbranchcode FROM OrderDeliveryTbl) cc ");
    lSqlBuf.append("ON aa.OrderCode=cc.OrderCode AND aa.DeliveryCode=cc.DeliveryCode AND aa.OrderBranchCode=cc.OrderBranchCode ");
    lSqlBuf.append("WHERE aa.OrderCode=").append(SIDBUtil.SQL2Str(getOrderCode()," "));
    lSqlBuf.append("ORDER BY aa.DeliveryCode,aa.DetailCode");
    log.debug("getConnection:lSqlBuf="+lSqlBuf.toString());
    
    try {
      lStatement=lConnection.createStatement();
      lResultSet=lStatement.executeQuery( lSqlBuf.toString());
      while (lResultSet.next()){
        lOrderDetail=new UIRegOrderDetail();
        lOrderDetail.setEncode(SIConfig.SIENCODE_NONE);
        lOrderDetail.setOrderCode(lResultSet.getString("orderCode"));//受注番号
        lOrderDetail.setDeliveryCode(lResultSet.getString("deliveryCode"));//受注配送先項番
        lOrderDetail.setDetailCode(lResultSet.getString("detailCode"));//受注明細項番
        lOrderDetail.setShopCode(lResultSet.getString("shopCode"));//ショップコード
        lOrderDetail.setShopName(lResultSet.getString("shopName"));//ショップ名
        lOrderDetail.setCmdtyCode(lResultSet.getString("cmdtyCode"));//商品コード
        lOrderDetail.setIndividualCode(lResultSet.getString("IndividualCode"));//在庫コード
        lOrderDetail.setCmdtyName(lResultSet.getString("cmdtyName"));//商品名(必須)
        lOrderDetail.setStndrdCode1(lResultSet.getString("StndrdCode1"));//規格コード1
        lOrderDetail.setStndrdName1(lResultSet.getString("StndrdName1"));//規格名1
        lOrderDetail.setElementCode1(lResultSet.getString("ElementCode1"));//エレメントコード1
        lOrderDetail.setElementName1(lResultSet.getString("ElementName1"));//エレメント名1
        lOrderDetail.setStndrdCode2(lResultSet.getString("StndrdCode2"));//規格コード2
        lOrderDetail.setStndrdName2(lResultSet.getString("StndrdName2"));//規格名2
        lOrderDetail.setElementCode2(lResultSet.getString("ElementCode2"));//エレメントコード2
        lOrderDetail.setElementName2(lResultSet.getString("ElementName2"));//エレメント名2
        lOrderDetail.setAmount(lResultSet.getString("amount"));//数量(必須)
        lOrderDetail.setSuperAmount(lResultSet.getString("amount"));//数量(必須)
        lOrderDetail.setOrgPrice(lResultSet.getString("OrgPrice"));//本体価格
        lOrderDetail.setPrice(lResultSet.getString("price"));//購入価格
        lOrderDetail.setTaxFlg(lResultSet.getString("taxFlg"));//本体価格税区分
        lOrderDetail.setTaxRate(lResultSet.getString("taxRate"));//税率
        lOrderDetail.setCmdtySize(lResultSet.getString("cmdtySize"));//サイズ
        lOrderDetail.setPriceIncTax(lResultSet.getString("PriceIncTax"));//購入価格
        lOrderDetail.setWrappingCode(lResultSet.getString("WrappingCode"));//ラッピングコード
        lOrderDetail.setWrappingName(lResultSet.getString("WrappingName"));//ラッピング名
        lOrderDetail.setWrappingTaxFlg(lResultSet.getString("WrappingTaxFlg"));//ラッピング税フラグ
        lOrderDetail.setWrappingPrice(lResultSet.getString("WrappingPrice"));//ラッピング価格
        lOrderDetail.setBranchCode(lResultSet.getString("branchcode"));//支店
        lOrderDetail.setChargeCode(lResultSet.getString("chargecode"));//担当者
        lOrderDetail.setDeliveryFee(lResultSet.getString("deliveryfee"));//送料
        lOrderDetail.setDeliveryDate(lResultSet.getString("deliverydate"));//配送希望日
        lOrderDetail.setShippmentDate(lResultSet.getString("shippmentdate"));//出荷日
        lOrderDetail.setPurchasePrice(lResultSet.getString("PurchasePrice"));
        lOrderDetail.setProcessingExpance(lResultSet.getString("ProcessingExpence"));
        lOrderDetail.setDeliveryTypeName(lResultSet.getString("DeliveryTypeName"));
        // EDBTG003-00 elecs-tani add start
        lOrderDetail.setSetDetailFlg(lResultSet.getString("setDetailFlg"));
        lOrderDetail.setSetCode(lResultSet.getString("setCode"));
        lOrderDetail.setSetIndividualCode(lResultSet.getString("setIndividualCode"));
        lOrderDetail.setSetDetailCode(lResultSet.getString("setDetailCode"));
        // EDBTG003-00 elecs-tani add end
        lResultColl.add(lOrderDetail);
        log.debug("lOrderDetail.getCartCmdtyName()="+lOrderDetail.getCartCmdtyName());
      }
    } catch (SQLException e) {
      e.printStackTrace();
      return new ArrayList();
    } finally {
      SIDBUtil.close(lStatement, lResultSet);
    }
    return lResultColl;
  }
  
  //7.3.0 PI-NES0501 追加 ここから
  /**
   * <b>getDetailIndiCollection</b>
   * 受注番号、受注配送先項番から個別送料対商品のコレクションを返します。
   * @param lConnection
   * @return
   */
  public Collection getDetailIndiCollection(Connection lConnection){
    Collection lResultColl=new ArrayList();
    UIRegOrderDetail lOrderDetail=new UIRegOrderDetail();
    Statement lStatement=null;
    ResultSet lResultSet=null;
    
    StringBuffer lSqlBuf=new StringBuffer();
    lSqlBuf.append("SELECT aa.*, aa.deliveryDate AS orderDeliveryDate ");
    lSqlBuf.append(",CASE WHEN i.frontdispflg = '0' THEN false ");
    lSqlBuf.append(" WHEN i.amountflg = '0' THEN true ");
    lSqlBuf.append(" WHEN s.amount > '0' THEN true ");
    lSqlBuf.append(" WHEN i.rsrvenableflg = '1' AND rsrvamount IS NULL THEN true ");
    lSqlBuf.append(" WHEN i.rsrvenableflg = '1' AND rsrvamount != 0 THEN true ");
    lSqlBuf.append(" WHEN i.usednewflg IN ('1','7') AND i.soldoutdate + ").append(SIConfig.DEFAULT_SOLDOUT).append(" <= CURRENT_DATE THEN true ");
    lSqlBuf.append(" ELSE false END AS frontdispflg ");
    lSqlBuf.append(",CASE WHEN aa.shippmentdate IS NULL THEN '未出荷' ");
    lSqlBuf.append(" WHEN aa.shippmentdate > CURRENT_DATE THEN '未出荷' ");
    lSqlBuf.append(" ELSE  '出荷済<br>'||aa.shippmentdate::text END AS shippmentDateTxt ");
    lSqlBuf.append("FROM (SELECT *,CASE WHEN setIndividualCode IS NOT NULL THEN setIndividualCode ELSE individualcode END AS individualcode2 FROM OrderDetailVW) aa ");
    lSqlBuf.append(" INNER JOIN OrderDeliveryVW bb");
    lSqlBuf.append(" ON aa.OrderCode=bb.OrderCode and aa.DeliveryCode = bb.DeliveryCode ");
    lSqlBuf.append(" INNER JOIN DELIVERYFEEMTBL cc");
    lSqlBuf.append(" ON aa.SHOPCODE=cc.MALLSHOPCODE and bb.DELIVERYTYPECODE = cc.DELIVERYTYPECODE and cc.PREFECTURENAME = bb.address1 ");
    lSqlBuf.append(" LEFT OUTER JOIN individualtbl i ON aa.individualcode2=i.individualcode ");
    lSqlBuf.append(" LEFT OUTER JOIN (SELECT individualcode,amount-bgpamount AS amount FROM cmdtyunittbl) s ");
    lSqlBuf.append(" ON aa.individualcode2=s.individualcode ");
    lSqlBuf.append("WHERE aa.OrderCode=").append(SIDBUtil.SQL2Str(getOrderCode()," "));
    lSqlBuf.append("AND aa.DeliveryCode=").append(SIDBUtil.SQL2Str(getDeliveryCode()," "));
    lSqlBuf.append("AND bb.DeliveryTypeCode='0' ");
    // EDBTG003-00 cmt-okuda mod start
//lSqlBuf.append("ORDER BY aa.DetailCode");
    lSqlBuf.append(" ORDER BY aa.setcode, aa.setdetailcode, aa.DetailCode, aa.cmdtycode, aa.individualcode ");
  // EDBTG003-00 cmt-okuda mod end
    log.debug("getConnection:lSqlBuf="+lSqlBuf.toString());
    
    try {
      lStatement=lConnection.createStatement();
      lResultSet=lStatement.executeQuery( lSqlBuf.toString());
      while (lResultSet.next()){
        lOrderDetail=new UIRegOrderDetail();
        lOrderDetail.setEncode(SIConfig.SIENCODE_NONE);
        lOrderDetail.setOrderCode(lResultSet.getString("orderCode"));//受注番号
        lOrderDetail.setDeliveryCode(lResultSet.getString("deliveryCode"));//受注配送先項番
        lOrderDetail.setDetailCode(lResultSet.getString("detailCode"));//受注明細項番
        lOrderDetail.setShopCode(lResultSet.getString("shopCode"));//ショップコード
        lOrderDetail.setIndividualCode(lResultSet.getString("IndividualCode"));//在庫コード
        lOrderDetail.setShopName(lResultSet.getString("shopName"));//ショップ名
        lOrderDetail.setCmdtyCode(lResultSet.getString("cmdtyCode"));//商品コード
        lOrderDetail.setCmdtyName(lResultSet.getString("cmdtyName"));//商品名(必須)
        lOrderDetail.setStndrdCode1(lResultSet.getString("StndrdCode1"));//規格コード1
        lOrderDetail.setStndrdName1(lResultSet.getString("StndrdName1"));//規格名1
        lOrderDetail.setElementCode1(lResultSet.getString("ElementCode1"));//エレメントコード1
        lOrderDetail.setElementName1(lResultSet.getString("ElementName1"));//エレメント名1
        lOrderDetail.setStndrdCode2(lResultSet.getString("StndrdCode2"));//規格コード2
        lOrderDetail.setStndrdName2(lResultSet.getString("StndrdName2"));//規格名2
        lOrderDetail.setElementCode2(lResultSet.getString("ElementCode2"));//エレメントコード2
        lOrderDetail.setElementName2(lResultSet.getString("ElementName2"));//エレメント名2
        lOrderDetail.setAmount(lResultSet.getString("amount"));//数量(必須)
        lOrderDetail.setOrgPrice(lResultSet.getString("OrgPrice"));//本体価格
        lOrderDetail.setPrice(lResultSet.getString("price"));//購入価格
        lOrderDetail.setTaxFlg(lResultSet.getString("taxFlg"));//本体価格税区分
        lOrderDetail.setTaxRate(lResultSet.getString("taxRate"));//税率
        lOrderDetail.setCmdtySize(lResultSet.getString("cmdtySize"));//サイズ
        lOrderDetail.setPriceIncTax(lResultSet.getString("PriceIncTax"));//購入価格
        lOrderDetail.setWrappingCode(lResultSet.getString("WrappingCode"));//ラッピングコード
        lOrderDetail.setWrappingName(lResultSet.getString("WrappingName"));//ラッピング名
        lOrderDetail.setWrappingTaxFlg(lResultSet.getString("WrappingTaxFlg"));//ラッピング税フラグ
        lOrderDetail.setWrappingPrice(lResultSet.getString("WrappingPrice"));//ラッピング価格
        String totalDeliveryFee = Integer.toString(lResultSet.getInt("DeliveryFee")*lResultSet.getInt("amount"));
        lOrderDetail.setDeliveryIndivFee(totalDeliveryFee);//送料
        lOrderDetail.setDeliveryDate(lResultSet.getString("orderDeliveryDate"));//配送希望日
        lOrderDetail.setFrontDisp(lResultSet.getBoolean("frontdispflg"));//フロント表示
        lOrderDetail.setShippmentDate(lResultSet.getString("shippmentDateTxt"));
        // EDBTG003-00 elecs-tani add start
        lOrderDetail.setSetDetailFlg(lResultSet.getString("setDetailFlg")); // 明細区分
        lOrderDetail.setSetCode(lResultSet.getString("setCode")); // セット番号
        lOrderDetail.setSetCmdtyCode(lResultSet.getString("setCmdtyCode")); // セット親コード
        lOrderDetail.setSetIndividualCode(lResultSet.getString("setIndividualCode")); // セット在庫コード
        lOrderDetail.setSetDetailCode(lResultSet.getString("setDetailCode")); // セット明細番号
        // EDBTG003-00 elecs-tani add end
        lResultColl.add(lOrderDetail);
        log.debug("lOrderDetail.getCartCmdtyName()="+lOrderDetail.getCartCmdtyName());
      }
    } catch (SQLException e) {
      e.printStackTrace();
      return new ArrayList();
    }finally{
      SIDBUtil.close(lStatement,lResultSet);
    }
    return lResultColl;
  }
  
  /**
   * <b>getDetailSmallCollection</b>
   * 受注番号、受注配送先項番から小物送料対商品のコレクションを返します。
   * @param lConnection
   * @return
   */
  public Collection getDetailSmallCollection(Connection lConnection){
    Collection lResultColl=new ArrayList();
    UIRegOrderDetail lOrderDetail=new UIRegOrderDetail();
    Statement lStatement=null;
    ResultSet lResultSet=null;
    
    StringBuffer lSqlBuf=new StringBuffer();
    lSqlBuf.append("SELECT aa.*, aa.deliveryDate AS orderDeliveryDate ");
    lSqlBuf.append(",CASE WHEN i.frontdispflg = '0' THEN false ");
    lSqlBuf.append(" WHEN i.amountflg = '0' THEN true ");
    lSqlBuf.append(" WHEN s.amount > '0' THEN true ");
    lSqlBuf.append(" WHEN i.rsrvenableflg = '1' AND rsrvamount IS NULL THEN true ");
    lSqlBuf.append(" WHEN i.rsrvenableflg = '1' AND rsrvamount != 0 THEN true ");
    lSqlBuf.append(" WHEN i.usednewflg IN ('1','7') AND i.soldoutdate + ").append(SIConfig.DEFAULT_SOLDOUT).append(" <= CURRENT_DATE THEN true ");
    lSqlBuf.append(" ELSE false END AS frontdispflg ");
    lSqlBuf.append(",CASE WHEN aa.shippmentdate IS NULL THEN '未出荷' ");
    lSqlBuf.append(" WHEN aa.shippmentdate > CURRENT_DATE THEN '未出荷' ");
    lSqlBuf.append(" ELSE  '出荷済<br>'||aa.shippmentdate::text END AS shippmentDateTxt ");
    lSqlBuf.append(",bb.deliveryfee AS totaldelivery ");
    lSqlBuf.append("FROM (SELECT *,CASE WHEN setIndividualCode IS NOT NULL THEN setIndividualCode ELSE individualcode END AS individualcode2 FROM OrderDetailVW) aa ");
    lSqlBuf.append(" INNER JOIN OrderDeliveryVW bb");
    lSqlBuf.append(" ON aa.OrderCode=bb.OrderCode and aa.DeliveryCode = bb.DeliveryCode ");
    lSqlBuf.append(" INNER JOIN DELIVERYFEEMTBL cc");
    lSqlBuf.append(" ON aa.SHOPCODE=cc.MALLSHOPCODE and bb.DELIVERYTYPECODE = cc.DELIVERYTYPECODE and cc.PREFECTURENAME = bb.address1 ");
    lSqlBuf.append(" LEFT OUTER JOIN individualtbl i ON aa.individualcode2=i.individualcode ");
    lSqlBuf.append(" LEFT OUTER JOIN (SELECT individualcode,amount-bgpamount AS amount FROM cmdtyunittbl) s ");
    lSqlBuf.append(" ON aa.individualcode2=s.individualcode ");
    lSqlBuf.append("WHERE aa.OrderCode=").append(SIDBUtil.SQL2Str(getOrderCode()," "));
    lSqlBuf.append("AND aa.DeliveryCode=").append(SIDBUtil.SQL2Str(getDeliveryCode()," "));
    lSqlBuf.append("AND bb.DeliveryTypeCode='1' ");
    // EDBTG003-00 cmt-okuda mod start
//lSqlBuf.append("ORDER BY aa.DetailCode");
    lSqlBuf.append(" ORDER BY aa.setcode, aa.setdetailcode, aa.DetailCode, aa.cmdtycode, aa.individualcode ");
    // EDBTG003-00 cmt-okuda mod end
    
    log.debug("getConnection:lSqlBuf="+lSqlBuf.toString());
    
    try {
      lStatement=lConnection.createStatement();
      lResultSet=lStatement.executeQuery( lSqlBuf.toString());
      
      while (lResultSet.next()){
        lOrderDetail=new UIRegOrderDetail();
        lOrderDetail.setEncode(SIConfig.SIENCODE_NONE);
        lOrderDetail.setOrderCode(lResultSet.getString("orderCode"));//受注番号
        lOrderDetail.setDeliveryCode(lResultSet.getString("deliveryCode"));//受注配送先項番
        lOrderDetail.setDetailCode(lResultSet.getString("detailCode"));//受注明細項番
        lOrderDetail.setShopCode(lResultSet.getString("shopCode"));//ショップコード
        lOrderDetail.setShopName(lResultSet.getString("shopName"));//ショップ名
        lOrderDetail.setCmdtyCode(lResultSet.getString("cmdtyCode"));//商品コード
        lOrderDetail.setIndividualCode(lResultSet.getString("IndividualCode"));//在庫コード
        lOrderDetail.setCmdtyName(lResultSet.getString("cmdtyName"));//商品名(必須)
        lOrderDetail.setStndrdCode1(lResultSet.getString("StndrdCode1"));//規格コード1
        lOrderDetail.setStndrdName1(lResultSet.getString("StndrdName1"));//規格名1
        lOrderDetail.setElementCode1(lResultSet.getString("ElementCode1"));//エレメントコード1
        lOrderDetail.setElementName1(lResultSet.getString("ElementName1"));//エレメント名1
        lOrderDetail.setStndrdCode2(lResultSet.getString("StndrdCode2"));//規格コード2
        lOrderDetail.setStndrdName2(lResultSet.getString("StndrdName2"));//規格名2
        lOrderDetail.setElementCode2(lResultSet.getString("ElementCode2"));//エレメントコード2
        lOrderDetail.setElementName2(lResultSet.getString("ElementName2"));//エレメント名2
        lOrderDetail.setAmount(lResultSet.getString("amount"));//数量(必須)
        lOrderDetail.setOrgPrice(lResultSet.getString("OrgPrice"));//本体価格
        lOrderDetail.setPrice(lResultSet.getString("price"));//購入価格
        lOrderDetail.setTaxFlg(lResultSet.getString("taxFlg"));//本体価格税区分
        lOrderDetail.setTaxRate(lResultSet.getString("taxRate"));//税率
        lOrderDetail.setCmdtySize(lResultSet.getString("cmdtySize"));//サイズ
        lOrderDetail.setPriceIncTax(lResultSet.getString("PriceIncTax"));//購入価格
        lOrderDetail.setWrappingCode(lResultSet.getString("WrappingCode"));//ラッピングコード
        lOrderDetail.setWrappingName(lResultSet.getString("WrappingName"));//ラッピング名
        lOrderDetail.setWrappingTaxFlg(lResultSet.getString("WrappingTaxFlg"));//ラッピング税フラグ
        lOrderDetail.setWrappingPrice(lResultSet.getString("WrappingPrice"));//ラッピング価格
        if (lResultSet.isFirst()) lOrderDetail.setDeliveryIndivFee(lResultSet.getString("totalDelivery"));//送料
        else lOrderDetail.setDeliveryIndivFee("0");
        lOrderDetail.setDeliveryDate(lResultSet.getString("orderDeliveryDate"));//配送希望日
        lOrderDetail.setFrontDisp(lResultSet.getBoolean("frontdispflg"));//フロント表示
        lOrderDetail.setShippmentDate(lResultSet.getString("shippmentDateTxt"));
        // EDBTG003-00 nagayoshi add start
        lOrderDetail.setSetDetailFlg(lResultSet.getString("setDetailFlg")); // 明細区分
        lOrderDetail.setSetCode(lResultSet.getString("setCode")); // セット番号
        lOrderDetail.setSetCmdtyCode(lResultSet.getString("setCmdtyCode")); // セット親コード
        lOrderDetail.setSetIndividualCode(lResultSet.getString("setIndividualCode")); // セット在庫コード
        lOrderDetail.setSetDetailCode(lResultSet.getString("setDetailCode")); // セット明細番号
        // EDBTG003-00 nagayoshi add end
        lResultColl.add(lOrderDetail);
        log.debug("lOrderDetail.getCartCmdtyName()="+lOrderDetail.getCartCmdtyName());
      }
    } catch (SQLException e) {
      e.printStackTrace();
      return new ArrayList();
    }finally{
      SIDBUtil.close(lStatement,lResultSet);
    }
    return lResultColl;
  }
  
  /**
   * <b>getDetailCollection</b>
   * 受注番号単位のから受注明細のコレクションを返します。
   * @param lConnection
   * @return
   */
  public Collection getOrderCollection(Connection lConnection){
    Collection lResultColl=new ArrayList();
    UIRegOrderDetail lOrderDetail=new UIRegOrderDetail();
    Statement lStatement=null;
    ResultSet lResultSet=null;
    
    StringBuffer lSqlBuf=new StringBuffer("SELECT aa.* ");
    lSqlBuf.append("FROM OrderDetailVW aa ");
    lSqlBuf.append("WHERE aa.OrderCode=").append(SIDBUtil.SQL2Str(getOrderCode()," "));
    if(SIUtil.isNull(getShippmentDate())){
      lSqlBuf.append("AND aa.ShippmentDate IS NULL ");
    }else{
      lSqlBuf.append("AND aa.ShippmentDate=").append(SIDBUtil.SQL2Str(getShippmentDate()," "));
    }
    lSqlBuf.append("ORDER BY aa.DeliveryCode,aa.DetailCode");
    log.debug("getConnection:lSqlBuf="+lSqlBuf.toString());
    
    try {
      lStatement=lConnection.createStatement();
      lResultSet=lStatement.executeQuery( lSqlBuf.toString());
      while (lResultSet.next()){
        lOrderDetail=new UIRegOrderDetail();
        lOrderDetail.setEncode(SIConfig.SIENCODE_NONE);
        lOrderDetail.setOrderCode(lResultSet.getString("orderCode"));//受注番号
        lOrderDetail.setDeliveryCode(lResultSet.getString("deliveryCode"));//受注配送先項番
        lOrderDetail.setDetailCode(lResultSet.getString("detailCode"));//受注明細項番
        lOrderDetail.setShopCode(lResultSet.getString("shopCode"));//ショップコード
        lOrderDetail.setShopName(lResultSet.getString("shopName"));//ショップ名
        lOrderDetail.setCmdtyCode(lResultSet.getString("cmdtyCode"));//商品コード
        lOrderDetail.setIndividualCode(lResultSet.getString("IndividualCode"));//在庫コード //7.3.0 PI-NES0501 追加
        lOrderDetail.setCmdtyName(lResultSet.getString("cmdtyName"));//商品名(必須)
        lOrderDetail.setStndrdCode1(lResultSet.getString("StndrdCode1"));//規格コード1
        lOrderDetail.setStndrdName1(lResultSet.getString("StndrdName1"));//規格名1
        lOrderDetail.setElementCode1(lResultSet.getString("ElementCode1"));//エレメントコード1
        lOrderDetail.setElementName1(lResultSet.getString("ElementName1"));//エレメント名1
        lOrderDetail.setStndrdCode2(lResultSet.getString("StndrdCode2"));//規格コード2
        lOrderDetail.setStndrdName2(lResultSet.getString("StndrdName2"));//規格名2
        lOrderDetail.setElementCode2(lResultSet.getString("ElementCode2"));//エレメントコード2
        lOrderDetail.setElementName2(lResultSet.getString("ElementName2"));//エレメント名2
        lOrderDetail.setAmount(lResultSet.getString("amount"));//数量(必須)
        lOrderDetail.setSuperAmount(lResultSet.getString("amount"));//数量(必須)
        lOrderDetail.setOrgPrice(lResultSet.getString("OrgPrice"));//本体価格
        lOrderDetail.setPrice(lResultSet.getString("price"));//購入価格
        lOrderDetail.setTaxFlg(lResultSet.getString("taxFlg"));//本体価格税区分
        lOrderDetail.setTaxRate(lResultSet.getString("taxRate"));//税率
        lOrderDetail.setCmdtySize(lResultSet.getString("cmdtySize"));//サイズ
        lOrderDetail.setPriceIncTax(lResultSet.getString("PriceIncTax"));//購入価格
        lOrderDetail.setWrappingCode(lResultSet.getString("WrappingCode"));//ラッピングコード
        lOrderDetail.setWrappingName(lResultSet.getString("WrappingName"));//ラッピング名
        lOrderDetail.setWrappingTaxFlg(lResultSet.getString("WrappingTaxFlg"));//ラッピング税フラグ
        lOrderDetail.setWrappingPrice(lResultSet.getString("WrappingPrice"));//ラッピング価格
        lOrderDetail.setBranchCode(lResultSet.getString("branchcode"));//支店
        lOrderDetail.setChargeCode(lResultSet.getString("chargecode"));//担当者
        lOrderDetail.setDeliveryFee(lResultSet.getString("deliveryfee"));//送料
        lOrderDetail.setDeliveryDate(lResultSet.getString("deliverydate"));//配送希望日
        lOrderDetail.setShippmentDate(lResultSet.getString("shippmentdate"));//出荷日
        // EDBTG003-00 elecs-tani add start
        lOrderDetail.setSetDetailFlg(lResultSet.getString("setDetailFlg")); // 明細番号
        lOrderDetail.setSetCode(lResultSet.getString("setCode")); // セット番号
        lOrderDetail.setSetCmdtyCode(lResultSet.getString("setCmdtyCode")); // セット親コード
        lOrderDetail.setSetIndividualCode(lResultSet.getString("setIndividualCode")); // セット在庫コード
        lOrderDetail.setSetDetailCode(lResultSet.getString("setDetailCode")); // セット明細番号
        // EDBTG003-00 elecs-tani add end
        lResultColl.add(lOrderDetail);
        log.debug("lOrderDetail.getCartCmdtyName()="+lOrderDetail.getCartCmdtyName());
      }
    } catch (SQLException e) {
      e.printStackTrace();
      return new ArrayList();
    } finally {
      SIDBUtil.close(lStatement, lResultSet);
    }
    return lResultColl;
  }
  //7.3.0 PI-NES0501 追加 ここまで
  
  public Collection getOrderCollectionFront(Connection lConnection){
    Collection lResultColl=new ArrayList();
    UIRegOrderDetail lOrderDetail=new UIRegOrderDetail();
    Statement lStatement=null;
    ResultSet lResultSet=null;
    
    StringBuffer lSqlBuf=new StringBuffer("SELECT aa.* ");
    lSqlBuf.append("FROM OrderDetailVW aa ");
    lSqlBuf.append("WHERE aa.OrderCode=").append(SIDBUtil.SQL2Str(getOrderCode()," "));
    lSqlBuf.append("AND aa.shippmentdate IS NOT NULL AND aa.shippmentdate<=current_date ");
    lSqlBuf.append("ORDER BY aa.DeliveryCode,aa.DetailCode");
    log.debug("getConnection:lSqlBuf="+lSqlBuf.toString());
    
    try {
      lStatement=lConnection.createStatement();
      lResultSet=lStatement.executeQuery( lSqlBuf.toString());
      while (lResultSet.next()){
        lOrderDetail=new UIRegOrderDetail();
        lOrderDetail.setEncode(SIConfig.SIENCODE_NONE);
        lOrderDetail.setOrderCode(lResultSet.getString("orderCode"));//受注番号
        lOrderDetail.setDeliveryCode(lResultSet.getString("deliveryCode"));//受注配送先項番
        lOrderDetail.setDetailCode(lResultSet.getString("detailCode"));//受注明細項番
        lOrderDetail.setShopCode(lResultSet.getString("shopCode"));//ショップコード
        lOrderDetail.setShopName(lResultSet.getString("shopName"));//ショップ名
        lOrderDetail.setCmdtyCode(lResultSet.getString("cmdtyCode"));//商品コード
        lOrderDetail.setIndividualCode(lResultSet.getString("IndividualCode"));//在庫コード //7.3.0 PI-NES0501 追加
        lOrderDetail.setCmdtyName(lResultSet.getString("cmdtyName"));//商品名(必須)
        lOrderDetail.setStndrdCode1(lResultSet.getString("StndrdCode1"));//規格コード1
        lOrderDetail.setStndrdName1(lResultSet.getString("StndrdName1"));//規格名1
        lOrderDetail.setElementCode1(lResultSet.getString("ElementCode1"));//エレメントコード1
        lOrderDetail.setElementName1(lResultSet.getString("ElementName1"));//エレメント名1
        lOrderDetail.setStndrdCode2(lResultSet.getString("StndrdCode2"));//規格コード2
        lOrderDetail.setStndrdName2(lResultSet.getString("StndrdName2"));//規格名2
        lOrderDetail.setElementCode2(lResultSet.getString("ElementCode2"));//エレメントコード2
        lOrderDetail.setElementName2(lResultSet.getString("ElementName2"));//エレメント名2
        lOrderDetail.setAmount(lResultSet.getString("amount"));//数量(必須)
        lOrderDetail.setSuperAmount(lResultSet.getString("amount"));//数量(必須)
        lOrderDetail.setOrgPrice(lResultSet.getString("OrgPrice"));//本体価格
        lOrderDetail.setPrice(lResultSet.getString("price"));//購入価格
        lOrderDetail.setTaxFlg(lResultSet.getString("taxFlg"));//本体価格税区分
        lOrderDetail.setTaxRate(lResultSet.getString("taxRate"));//税率
        lOrderDetail.setCmdtySize(lResultSet.getString("cmdtySize"));//サイズ
        lOrderDetail.setPriceIncTax(lResultSet.getString("PriceIncTax"));//購入価格
        lOrderDetail.setWrappingCode(lResultSet.getString("WrappingCode"));//ラッピングコード
        lOrderDetail.setWrappingName(lResultSet.getString("WrappingName"));//ラッピング名
        lOrderDetail.setWrappingTaxFlg(lResultSet.getString("WrappingTaxFlg"));//ラッピング税フラグ
        lOrderDetail.setWrappingPrice(lResultSet.getString("WrappingPrice"));//ラッピング価格
        lOrderDetail.setBranchCode(lResultSet.getString("branchcode"));//支店
        lOrderDetail.setChargeCode(lResultSet.getString("chargecode"));//担当者
        lOrderDetail.setDeliveryFee(lResultSet.getString("deliveryfee"));//送料
        lOrderDetail.setDeliveryDate(lResultSet.getString("deliverydate"));//配送希望日
        lOrderDetail.setShippmentDate(lResultSet.getString("shippmentdate"));//出荷日
        lOrderDetail.setSetDetailFlg(lResultSet.getString("setDetailFlg")); // 明細番号
        lOrderDetail.setSetCode(lResultSet.getString("setCode")); // セット番号
        lOrderDetail.setSetCmdtyCode(lResultSet.getString("setCmdtyCode")); // セット親コード
        lOrderDetail.setSetIndividualCode(lResultSet.getString("setIndividualCode")); // セット在庫コード
        lOrderDetail.setSetDetailCode(lResultSet.getString("setDetailCode")); // セット明細番号
        lResultColl.add(lOrderDetail);
        log.debug("lOrderDetail.getCartCmdtyName()="+lOrderDetail.getCartCmdtyName());
      }
    } catch (SQLException e) {
      e.printStackTrace();
      return new ArrayList();
    } finally {
      SIDBUtil.close(lStatement, lResultSet);
    }
    return lResultColl;
  }
  
  //メールテンプレート用のショップコード
  public String getMailShopCode(Connection lConnection,String orderCode,String deliveryCode){
    StringBuffer lSqlBuf=new StringBuffer();
    //7.2.0 ST1030 修正 ここから
    lSqlBuf.append("SELECT DISTINCT ShopCode FROM ").append(SIConfig.SIVIEW_ORDER_DETAIL_LATEST_NAME);
    //lSqlBuf.append("SELECT DISTINCT ShopCode FROM OrderDetailTbl ");
    lSqlBuf.append(" WHERE OrderCode="+SIDBUtil.SQL2Str(orderCode," "));
    lSqlBuf.append("   AND DeliveryCode="+SIDBUtil.SQL2Str(deliveryCode," "));
    //7.2.0 ST1030 修正 ここまで
    
    Statement lStatement=null;
    ResultSet lResultSet=null;
    try {
      lStatement=lConnection.createStatement();
      lResultSet=lStatement.executeQuery(lSqlBuf.toString());
      if (lResultSet.next()){
        return lResultSet.getString("ShopCode");
      }
    }catch(SQLException sqle){
      sqle.printStackTrace();
    }finally{
      SIDBUtil.close(lStatement,lResultSet);
    }
    return "";
  }
  
  /**
   * <b>getDeliveryTimeFlgCollection</b>
   * @param  Connection
   * @param  ShopCode    ショップコード
   * @param  CmdtyCode   商品コード
   * @return String      配送希望日表示フラグ
   * @throws なし
   */
  public static String getDeliveryTimeFlgCollection(Connection lConnection,String lShopCode, String lDeliveryTypeName){
    Statement lStatement=null;
    ResultSet lResultSet=null;
    StringBuffer lSqlBuf=new StringBuffer();
    String deliveryTimeFlg="";
    
    lSqlBuf.append("SELECT DeliveryTimeFlg ");
    lSqlBuf.append("FROM DeliveryTypeMTbl ");
    lSqlBuf.append("WHERE MallShopCode=").append(SIDBUtil.SQL2Str(lShopCode," "));
    lSqlBuf.append("AND DeliveryTypeName=").append(SIDBUtil.SQL2Str(lDeliveryTypeName," "));
    
    log.debug("getCmdtyDeliveryCollection:lSqlBuf="+lSqlBuf.toString());
    
    try {
      lStatement=lConnection.createStatement();
      lResultSet=lStatement.executeQuery(lSqlBuf.toString());
      //商品レコードのセットの作成
      if(lResultSet.next()){
        deliveryTimeFlg = lResultSet.getString("DeliveryTimeFlg");
      }
      return deliveryTimeFlg;
    } catch (Exception e) {
      e.printStackTrace();
      return deliveryTimeFlg;
    }finally{
      SIDBUtil.close( lStatement,lResultSet);
    }
  }
}