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

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

import javax.servlet.http.*;

import org.apache.log4j.Category;
import jp.co.sint.tools.*;
import jp.co.sint.config.*;
import jp.co.sint.database.SIDBUtil;
import jp.co.sint.basic.*;
import jp.co.sint.tools.SIURLParameter;//7.1.1 ST0236 追加

/**
 * @version $Id : UIRegShop.java,v 1.0 2003/08/06 Exp $
 * @author      : Jinwang Chen
 * <br>Description : ショップ管理の編集画面に対する管理 beans
 * <p>History</p>
 * <p>Author&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reason</p>
 * ============&nbsp;&nbsp;&nbsp;==========&nbsp;&nbsp;===========================<br>
 * Jinwang Chen   2003/08/06  Original
 */

public class UIRegSearch extends SISearch {
  //ログ用のインスタンスの生成
  private static Category log = Category.getInstance(SIConfig.SILOG4J_WEBSHOP_CATEGORY_NAME);
  
  //戻るURL
  private String backURL="";
  //次へ進むURL
  private String nid="";
  
  public UIRegSearch() {}
  
  public void setBackUrl(String string){
    if (SIUtil.isNull(string)) string="";
    this.backURL=SIUtil.changeTo(string.trim(),this.encode);
  }
  
  public void setNextUrlTxt(String string){
    if (SIUtil.isNull(string)) string="";
    this.nid=SIUtil.changeTo(string.trim(),this.encode);
  }
  
  public String getBackURL(){
    return backURL;
  }
  
  public String getNextUrlTxt(){
    return nid;
  }
  
  /**
   * init
   * 入力したデータから、このbeansを設定します。
   * @param HttpServletRequest
   * @param SIURLParameter
   * @return なし
   * @throws なし
   */
  public void init(HttpServletRequest lRequest,SIURLParameter lUrlParam){//7.1.1 ST0236 修正
    this.setEncode(SIConfig.SIENCODE_SHIFT_JIS);
    super.init(lRequest,lUrlParam);
    String lAct=(String)lUrlParam.getParam("actionNameTxt");
      if (lAct==null)lAct="";
      if(lAct.equals(SIConfig.SIACTION_REGIST)){
        this.setHopeProduct1((String)lUrlParam.getParam("hopeProduct1"));
        this.setHopeProduct2((String)lUrlParam.getParam("hopeProduct2"));
        this.setHopeProduct3((String)lUrlParam.getParam("hopeProduct3"));
        this.setHopeProduct4((String)lUrlParam.getParam("hopeProduct4"));
        this.setHopeProduct5((String)lUrlParam.getParam("hopeProduct5"));
        this.setHopeCmdtyName1((String)lUrlParam.getParam("hopeCmdtyName1"));
        this.setHopeCmdtyName2((String)lUrlParam.getParam("hopeCmdtyName2"));
        this.setHopeCmdtyName3((String)lUrlParam.getParam("hopeCmdtyName3"));
        this.setHopeCmdtyName4((String)lUrlParam.getParam("hopeCmdtyName4"));
        this.setHopeCmdtyName5((String)lUrlParam.getParam("hopeCmdtyName5"));
        this.setHopeAmount1((String)lUrlParam.getParam("hopeAmount1"));
        this.setHopeAmount2((String)lUrlParam.getParam("hopeAmount2"));
        this.setHopeAmount3((String)lUrlParam.getParam("hopeAmount3"));
        this.setHopeAmount4((String)lUrlParam.getParam("hopeAmount4"));
        this.setHopeAmount5((String)lUrlParam.getParam("hopeAmount5"));
        this.setHopeDeliveryDate1((String)lUrlParam.getParam("hopeDeliveryDate1"));
        this.setHopeDeliveryDate2((String)lUrlParam.getParam("hopeDeliveryDate2"));
        this.setHopeDeliveryDate3((String)lUrlParam.getParam("hopeDeliveryDate3"));
        this.setHopeDeliveryDate4((String)lUrlParam.getParam("hopeDeliveryDate4"));
        this.setHopeDeliveryDate5((String)lUrlParam.getParam("hopeDeliveryDate5"));
        this.setClientComment1((String)lUrlParam.getParam("clientComment1"));
        this.setClientComment2((String)lUrlParam.getParam("clientComment2"));
        this.setClientComment3((String)lUrlParam.getParam("clientComment3"));
        this.setClientComment4((String)lUrlParam.getParam("clientComment4"));
        this.setClientComment5((String)lUrlParam.getParam("clientComment5"));
      }
      if(lAct.equals(SIConfig.SIACTION_REMODIFY)||lAct.equals(SIConfig.SIACTION_CON)||lAct.equals(SIConfig.SIACTION_CONFIRM)
              ||lAct.equals(SIConfig.SIACTION_ZIPDIC)){
        this.setCustName((String)lUrlParam.getParam("custName"));
        this.setCustPronName((String)lUrlParam.getParam("custPronName"));
        this.setPostCode1((String)lUrlParam.getParam("postCode1"));
        this.setPostCode2((String)lUrlParam.getParam("postCode2"));
        this.setAddress1((String)lUrlParam.getParam("address1"));
        this.setAddress2((String)lUrlParam.getParam("address2"));
        this.setAddress3((String)lUrlParam.getParam("address3"));
        this.setStoreTel((String)lUrlParam.getParam("storeTel"));
        this.setTel((String)lUrlParam.getParam("tel"));
        this.setFax((String)lUrlParam.getParam("fax"));
        this.setSalonName((String)lUrlParam.getParam("salonName"));
        this.setEmail((String)lUrlParam.getParam("email"));
      }
    if (getActionNameTxt().equals(SIConfig.SIACTION_ZIPDIC)&&SIConfig.SIZIP!=null){//郵便番号から県名と市区町村名を検索
      String lEncode=this.getEncode();//既存のコードの保存
      this.setEncode(SIConfig.SIENCODE_NONE);
      String lResult=SIConfig.SIZIP.getPrefectureName(getPostCode1(),getPostCode2());//県名の検索
      if (SIUtil.isNotNull(lResult))this.setAddress1(lResult);//県名の設定
      lResult=SIConfig.SIZIP.getAddressName(getPostCode1(),getPostCode2());//市区町村名の検索
      if (SIUtil.isNotNull(lResult))this.setAddress2(lResult);//市区町村名の設定
      this.setEncode(lEncode);//既存のコードの回復
    }
  }
  
  /**
   * reset
   * 修正モードの場合には、PKのデータを元に、明細データをデータベースから取り込んで
   * 画面に表示します。
   * @param lConnection データベースへのコネンクション
   * @return なし
   * @throws なし
   */
  public void reset(Connection lConnection) {
    if (SIUtil.isNull(this.getCustCode())) {
      return;
    }
    Statement lStatement = null;
    ResultSet lResultSet = null;
    
    StringBuffer sqlStatement = new StringBuffer();
    //出力項目
    sqlStatement.append(" SELECT c.*,d.paymethodname FROM  ");
    sqlStatement.append(" (SELECT a.*,b.memberlevelname FROM custtbl a,memberlevelmtbl b WHERE a.memberlevelcode=b.memberlevelcode ");
    sqlStatement.append(" ) c  ");
    sqlStatement.append(" LEFT OUTER JOIN ");
    sqlStatement.append(" ( ");
    sqlStatement.append(" SELECT b.paymethodcode,b.paymethodname FROM mallvw a  ");
    sqlStatement.append(" INNER JOIN paymethodmtbl b ");
    sqlStatement.append(" ON a.mallshopcode=b.mallshopcode ");
    sqlStatement.append(" ) d ");
    sqlStatement.append(" ON c.paymethodcode = d.paymethodcode ");
    sqlStatement.append(" WHERE 1=1");
    sqlStatement.append(" AND CustCode=" + SIDBUtil.SQL2Str(this.getCustCode()));
    
    log.debug("reset:lSqlStatement=" + sqlStatement.toString());
    try {
      lStatement = lConnection.createStatement();
      lResultSet = lStatement.executeQuery(sqlStatement.toString());
      
      if (lResultSet.next()) {
        this.setEncode(SIConfig.SIENCODE_NONE);
        this.setCustCode(lResultSet.getString("custCode"));
        this.setCustName(lResultSet.getString("custName"));
        this.setCustPronName(lResultSet.getString("custPronName"));
        this.setEmail(lResultSet.getString("email"));
        this.setPostCode1(lResultSet.getString("postCode1"));
        this.setPostCode2(lResultSet.getString("postCode2"));
        this.setAddress1(lResultSet.getString("address1"));
        this.setAddress2(lResultSet.getString("address2"));
        this.setAddress3(lResultSet.getString("address3"));
        this.setStoreTel(lResultSet.getString("storetel"));
        this.setTel(lResultSet.getString("tel"));
        this.setFax(lResultSet.getString("fax"));
        this.setSalonName(lResultSet.getString("companyName"));
        this.setEmail(lResultSet.getString("email"));
        
      }
    } catch (SQLException sqle) {
      sqle.printStackTrace();
    }finally{
      SIDBUtil.close(lStatement, lResultSet);
    }
  }
  
  public void initUrl(SIURLParameter lUrlParam){
    this.setBackUrl((String)lUrlParam.getParam("backURL"));
    this.setNextUrlTxt((String)lUrlParam.getParam("nid"));
  }
}