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

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedHashMap;

import javax.servlet.http.HttpServletRequest;

import jp.co.sint.basic.SICustAddress;
import jp.co.sint.basic.SIFrontBasic;
import jp.co.sint.config.SIConfig;
import jp.co.sint.database.SIDBUtil;
import jp.co.sint.tools.SIUtil;
import jp.co.sint.tools.SIURLParameter;//7.1.1 ST0236 追加

import org.apache.log4j.Category;

/**
 * @version $Id: UIDeliveryList.java,v 1.0 2003/12/12 Exp $
 * @author  yamauchi
 * <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>
 * yamauchi        2003/12/12 14:34:26  Original
 */
public class UIDeliveryHist extends SIFrontBasic{
  //ログ用のインスタンスの生成
  private static Category log=Category.getInstance(SIConfig.SILOG4J_WEBSHOP_CATEGORY_NAME);
  
  private LinkedHashMap amountMap=new LinkedHashMap();
  
  //顧客コード
  private String custCode="";
  
  //アドレス帳番号
  private String addressCode="";
  
  //配送先正式名
  private String deliveryAddressee="";
  
  //配送先呼称
  private String deliveryName="";
  
  //住所1
  private String address1="";
  
  //住所2
  private String address2="";
  
  //住所3
  private String address3="";
  
  //呼び出し元
  private String callFlag="";
  
  private boolean closeWindow=false;
  
  public UIDeliveryHist(){}
  
  public void setCloseWindow(boolean lCloseWindow){
    this.closeWindow =lCloseWindow;
  }
  
  //setter of 顧客コード
  public void setCustCode(String lCustCode){
    if (SIUtil.isNull(lCustCode))lCustCode="";
    this.custCode =lCustCode;
  }
  
  //setter of アドレス帳番号
  public void setAddressCode(String lAddressCode){
    if (SIUtil.isNull(lAddressCode))lAddressCode="";
    this.addressCode =lAddressCode;
  }
  
  //setter of 送付先正式名
  public void setDeliveryAddressee(String lDeliveryAddress){
    if (SIUtil.isNull(lDeliveryAddress))lDeliveryAddress="";
    this.deliveryAddressee =lDeliveryAddress;
  }
  
  //setter of 配送先呼称
  public void setDeliveryName(String lDeliveryName){
    if (SIUtil.isNull(lDeliveryName)) lDeliveryName="";
    this.deliveryName=SIUtil.changeTo(lDeliveryName.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);
  }
  
  //getter of 顧客コード
  public String getCustCode(){
    return this.custCode;
  }
  
  //setter of 呼び出し元
  public void setCallFlag(String lCallFlag){
    if (SIUtil.isNull(lCallFlag)) lCallFlag="";
    this.callFlag=SIUtil.changeTo(lCallFlag.trim(),this.encode);
  }
  
  //getter of アドレス帳番号
  public String getAddressCode(){
    return this.addressCode;
  }
  
  //getter of 送付先正式名
  public String getDeliveryAddressee(){
    return this.deliveryAddressee;
  }
  
  //getter of 配送先呼称
  public String getDeliveryName(){
    return this.deliveryName;
  }
  
  //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 getCallFlag(){
  return this.callFlag;
  }
  
  public boolean getCloseWindow(){
    return this.closeWindow;
  }
  
  //7.1.1 ST0236 修正 ここから
  public void init(HttpServletRequest lRequest,SIURLParameter lUrlParam){
    super.init(lRequest,lUrlParam);
    this.setCustCode((String)lUrlParam.getParam("cuc"));
    this.setAddressCode((String)lUrlParam.getParam("adc"));
    this.setCallFlag((String)lUrlParam.getParam("callFlag"));//呼び出し元の画面
  }
  //7.1.1 ST0236 修正 ここまで
  
  public SICustAddress initSql(Connection lConnection){
    Statement lStatement=null;
    ResultSet lResultSet=null;
    
    Collection lResultColl=new ArrayList();
    SICustAddress lAddress=new SICustAddress();
    StringBuffer lSqlBuf=new StringBuffer();
    lSqlBuf.append("SELECT * FROM CustAddressTbl ");
    lSqlBuf.append(" WHERE CustCode="+SIDBUtil.SQL2Str(getCustCode()));
    lSqlBuf.append("   AND AddressCode="+SIDBUtil.SQL2Str(getAddressCode()));
    
    try {
      log.debug("getCollection:lSqlBuf="+lSqlBuf.toString());
      lStatement=lConnection.createStatement();
      lResultSet=lStatement.executeQuery(lSqlBuf.toString());
      while(lResultSet.next()){
        lAddress=new SICustAddress();
        lAddress.setEncode(SIConfig.SIENCODE_NONE);
        lAddress.setCustCode(lResultSet.getString("custCode"));//顧客コード
        lAddress.setAddressCode(lResultSet.getString("addressCode"));//アドレスコード
        lAddress.setDeliveryName(lResultSet.getString("deliveryName"));//配送先呼称
        lAddress.setDeliveryAddressee(lResultSet.getString("deliveryAddressee"));//配送先正式名
        lAddress.setAddress1(lResultSet.getString("address1"));//住所1
        lAddress.setAddress2(lResultSet.getString("address2"));//住所2
        lAddress.setAddress3(lResultSet.getString("address3"));//住所3
        lResultColl.add(lAddress);
      }
    }catch(Exception e){
      e.printStackTrace();
    }finally{
      SIDBUtil.close(lStatement,lResultSet);
    }
  return lAddress;
  }
}
