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

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.DecimalFormat;

import javax.servlet.http.HttpServletRequest;

import jp.co.sint.basic.SIInquiry;
import jp.co.sint.config.SIConfig;
import jp.co.sint.database.SIDBAccessException;
import jp.co.sint.database.SIDBUtil;
import jp.co.sint.tools.SICheckDataConf;
import jp.co.sint.tools.SICheckValid;
import jp.co.sint.tools.SICustomErrors;
import jp.co.sint.tools.SIUtil;
import jp.co.sint.tools.SIURLParameter;
import jp.co.sint.tools.SIDateTime;

import org.apache.log4j.Category;


public class UIRegInquiry extends SIInquiry{
  //ログ用のインスタンスの生成
  private static Category log=Category.getInstance(SIConfig.SILOG4J_WEBSHOP_CATEGORY_NAME);

  //管理番号
  private String regManagementNumber ="";
  //希望製品カテゴリ
  private String regHopeProduct ="";
  //希望商品名
  private String regHopeCommodityName ="";
  //希望数量
  private String regHopeAmount ="";
  //希望納品期日
  private String regHopeDeliveryDate ="";
  //希望対応方法
  private String regMethodForHope ="";
  //お客様名
  private String regCustName ="";
  //お客様名カナ
  private String regCustPronName ="";
  //メールアドレス
  private String regEMail ="";
  //郵便番号1
  private String regPostCode1 ="";
  //郵便番号2
  private String regPostCode2 ="";
  //住所1
  private String regAddress1 ="";
  //住所2
  private String regAddress2 ="";
  //住所3
  private String regAddress3 ="";
  //店舗電話番号
  private String regStoreTel ="";
  //連絡先電話番号
  private String regTel ="";
  //連絡先FAX番号
  private String regFax ="";
  //サロン名
  private String regSalonName ="";
  //問合せ形態
  private String regInquiryFormFlg ="";
  //依頼者コメント
  private String regClientComment ="";
  //受付日
  private String regAcceptanceDate ="";
  //対応状況
  private String regCorrespondingFlg ="";
  //支店コード
  private String regBranchCode ="";
  //支店名
  private String regBranchName ="";
  //担当者コード
  private String regChargeCode = "";
  //担当者
  private String regChargeName = "";
  //提示商品
  private String regPresentationCommodity ="";
  //提示商品数量
  private String regPresentationCommodityAmount ="";
  //提示商品状況
  private String regPresentationCommodityFlg ="";
  //最新対応日時
  private String regLatestDate ="";
  //対応履歴
  private String regCorrespondenceHistory ="";
  //備考
  private String regRemarks ="";
  //登録日
  private String regInitDateTime ="";
  //希望納品期日詳細
  private String regHopeDeliveryDateYear ="";
  private String regHopeDeliveryDateMonth ="";
  private String regHopeDeliveryDateDay ="";
  //editmode
  private String editMode ="";
  //検索用顧客コード
  private String regCustCode = "";

  /**
   * UIRegInquiry
   * コンストラクタ
   * @param なし
   * @return なし
   * @throws なし
   */
  public UIRegInquiry(){}

/**
 * @return regAcceptanceDate を戻します。
 */
public String getRegAcceptanceDate() {
    return regAcceptanceDate;
}
/**
 * @return regAddress1 を戻します。
 */
public String getRegAddress1() {
    return regAddress1;
}
/**
 * @return regAddress2 を戻します。
 */
public String getRegAddress2() {
    return regAddress2;
}
/**
 * @return regAddress3 を戻します。
 */
public String getRegAddress3() {
    return regAddress3;
}
/**
 * @return regBranchCode を戻します。
 */
public String getRegBranchCode() {
    return regBranchCode;
}
/**
 * @return regBranchName を戻します。
 */
public String getRegBranchName() {
    return regBranchName;
}
/**
 * @return regChargeCode を戻します。
 */
public String getRegChargeCode() {
    return regChargeCode;
}
/**
 * @return regChargeName を戻します。
 */
public String getRegChargeName() {
    return regChargeName;
}
/**
 * @return regClientComment を戻します。
 */
public String getRegClientComment() {
    return regClientComment;
}
/**
 * @return regCorrespondenceHistory を戻します。
 */
public String getRegCorrespondenceHistory() {
    return regCorrespondenceHistory;
}
/**
 * @return regCorrespondingFlg を戻します。
 */
public String getRegCorrespondingFlg() {
    return regCorrespondingFlg;
}
/**
 * @return regCustName を戻します。
 */
public String getRegCustName() {
    return regCustName;
}
/**
 * @return regCustPronName を戻します。
 */
public String getRegCustPronName() {
    return regCustPronName;
}
/**
 * @return regEMail を戻します。
 */
public String getRegEMail() {
    return regEMail;
}
/**
 * @return regFax を戻します。
 */
public String getRegFax() {
    return regFax;
}
/**
 * @return regHopeAmount を戻します。
 */
public String getRegHopeAmount() {
    return regHopeAmount;
}
/**
 * @return regHopeCommodityName を戻します。
 */
public String getRegHopeCommodityName() {
    return regHopeCommodityName;
}
/**
 * @return regHopeDeliverDay を戻します。
 */
public String getRegHopeDeliveryDate() {
    return regHopeDeliveryDate;
}
/**
 * @return regHopeProduct を戻します。
 */
public String getRegHopeProduct() {
    return regHopeProduct;
}
/**
 * @return regInitDateTime を戻します。
 */
public String getRegInitDateTime() {
    return regInitDateTime;
}
/**
 * @return regInquiryFormFlg を戻します。
 */
public String getRegInquiryFormFlg() {
    return regInquiryFormFlg;
}
/**
 * @return regLatestDate を戻します。
 */
public String getRegLatestDate() {
    return regLatestDate;
}
/**
 * @return regManagementNumber を戻します。
 */
public String getRegManagementNumber() {
    return regManagementNumber;
}
/**
 * @return regMethodForHope を戻します。
 */
public String getRegMethodForHope() {
    return regMethodForHope;
}
/**
 * @return regPostCode1 を戻します。
 */
public String getRegPostCode1() {
    return regPostCode1;
}
/**
 * @return regPostCode2 を戻します。
 */
public String getRegPostCode2() {
    return regPostCode2;
}
/**
 * @return regPresentationCommodity を戻します。
 */
public String getRegPresentationCommodity() {
    return regPresentationCommodity;
}
/**
 * @return regPresentationCommodityAmount を戻します。
 */
public String getRegPresentationCommodityAmount() {
    return regPresentationCommodityAmount;
}
/**
 * @return regPresentationCommodityFlg を戻します。
 */
public String getRegPresentationCommodityFlg() {
    return regPresentationCommodityFlg;
}
/**
 * @return regRemarks を戻します。
 */
public String getRegRemarks() {
    return regRemarks;
}
/**
 * @return regSalonName を戻します。
 */
public String getRegSalonName() {
    return regSalonName;
}
/**
 * @return regStoreTel を戻します。
 */
public String getRegStoreTel() {
    return regStoreTel;
}
/**
 * @return regTel を戻します。
 */
public String getRegTel() {
    return regTel;
}
/**
 * @param regAcceptanceDate regAcceptanceDate を設定。
 */
public void setRegAcceptanceDate(String regAcceptanceDate) {
    this.regAcceptanceDate = regAcceptanceDate;
}
/**
 * @param regAddress1 regAddress1 を設定。
 */
public void setRegAddress1(String regAddress1) {
    this.regAddress1 = regAddress1;
}
/**
 * @param regAddress2 regAddress2 を設定。
 */
public void setRegAddress2(String regAddress2) {
    this.regAddress2 = regAddress2;
}
/**
 * @param regAddress3 regAddress3 を設定。
 */
public void setRegAddress3(String regAddress3) {
    this.regAddress3 = regAddress3;
}
/**
 * @param regBranchCode regBranchCode を設定。
 */
public void setRegBranchCode(String regBranchCode) {
    this.regBranchCode = regBranchCode;
}
/**
 * @param regBranchName regBranchName を設定。
 */
public void setRegBranchName(String regBranchName) {
    this.regBranchName = regBranchName;
}
/**
 * @param regChargeCode regChargeCode を設定。
 */
public void setRegChargeCode(String regChargeCode) {
    this.regChargeCode = regChargeCode;
}
/**
 * @param regChargeName regChargeName を設定。
 */
public void setRegChargeName(String regChargeName) {
    this.regChargeName = regChargeName;
}
/**
 * @param regClientComment regClientComment を設定。
 */
public void setRegClientComment(String regClientComment) {
    this.regClientComment = regClientComment;
}
/**
 * @param regCorrespondenceHistory regCorrespondenceHistory を設定。
 */
public void setRegCorrespondenceHistory(String regCorrespondenceHistory) {
    this.regCorrespondenceHistory = regCorrespondenceHistory;
}
/**
 * @param regCorrespondingFlg regCorrespondingFlg を設定。
 */
public void setRegCorrespondingFlg(String regCorrespondingFlg) {
    this.regCorrespondingFlg = regCorrespondingFlg;
}
/**
 * @param regCustName regCustName を設定。
 */
public void setRegCustName(String regCustName) {
    this.regCustName = regCustName;
}
/**
 * @param regCustPronName regCustPronName を設定。
 */
public void setRegCustPronName(String regCustPronName) {
    this.regCustPronName = regCustPronName;
}
/**
 * @param regEMail regEMail を設定。
 */
public void setRegEMail(String regEMail) {
    this.regEMail = regEMail;
}
/**
 * @param regFax regFax を設定。
 */
public void setRegFax(String regFax) {
    this.regFax = regFax;
}
/**
 * @param regHopeAmount regHopeAmount を設定。
 */
public void setRegHopeAmount(String regHopeAmount) {
    this.regHopeAmount = regHopeAmount;
}
/**
 * @param regHopeCommodityName regHopeCommodityName を設定。
 */
public void setRegHopeCommodityName(String regHopeCommodityName) {
    this.regHopeCommodityName = regHopeCommodityName;
}
/**
 * @param regHopeDeliverDay regHopeDeliverDay を設定。
 */
public void setRegHopeDeliveryDate(String regHopeDeliveryDate) {
    this.regHopeDeliveryDate = regHopeDeliveryDate;
}
/**
 * @param regHopeProduct regHopeProduct を設定。
 */
public void setRegHopeProduct(String regHopeProduct) {
    this.regHopeProduct = regHopeProduct;
}
/**
 * @param regInitDateTime regInitDateTime を設定。
 */
public void setRegInitDateTime(String regInitDateTime) {
    this.regInitDateTime = regInitDateTime;
}
/**
 * @param regInquiryFormFlg regInquiryFormFlg を設定。
 */
public void setRegInquiryFormFlg(String regInquiryFormFlg) {
    this.regInquiryFormFlg = regInquiryFormFlg;
}
/**
 * @param regLatestDate regLatestDate を設定。
 */
public void setRegLatestDate(String regLatestDate) {
    this.regLatestDate = regLatestDate;
}
/**
 * @param regManagementNumber regManagementNumber を設定。
 */
public void setRegManagementNumber(String regManagementNumber) {
    this.regManagementNumber = regManagementNumber;
}
/**
 * @param regMethodForHope regMethodForHope を設定。
 */
public void setRegMethodForHope(String regMethodForHope) {
    this.regMethodForHope = regMethodForHope;
}
/**
 * @param regPostCode1 regPostCode1 を設定。
 */
public void setRegPostCode1(String regPostCode1) {
    this.regPostCode1 = regPostCode1;
}
/**
 * @param regPostCode2 regPostCode2 を設定。
 */
public void setRegPostCode2(String regPostCode2) {
    this.regPostCode2 = regPostCode2;
}
/**
 * @param regPresentationCommodity regPresentationCommodity を設定。
 */
public void setRegPresentationCommodity(String regPresentationCommodity) {
    this.regPresentationCommodity = regPresentationCommodity;
}
/**
 * @param regPresentationCommodityAmount regPresentationCommodityAmount を設定。
 */
public void setRegPresentationCommodityAmount(String regPresentationCommodityAmount) {
    this.regPresentationCommodityAmount = regPresentationCommodityAmount;
}
/**
 * @param regPresentationCommodityFlg regPresentationCommodityFlg を設定。
 */
public void setRegPresentationCommodityFlg(String regPresentationCommodityFlg) {
    this.regPresentationCommodityFlg = regPresentationCommodityFlg;
}
/**
 * @param regRemarks regRemarks を設定。
 */
public void setRegRemarks(String regRemarks) {
    this.regRemarks = regRemarks;
}
/**
 * @param regSalonName regSalonName を設定。
 */
public void setRegSalonName(String regSalonName) {
    this.regSalonName = regSalonName;
}
/**
 * @param regStoreTel regStoreTel を設定。
 */
public void setRegStoreTel(String regStoreTel) {
    this.regStoreTel = regStoreTel;
}
/**
 * @param regTel regTel を設定。
 */
public void setRegTel(String regTel) {
    this.regTel = regTel;
}

/**
 * @return regHopeDeliveryDateDay を戻します。
 */
public String getRegHopeDeliveryDateDay() {
    return regHopeDeliveryDateDay;
}
/**
 * @return regHopeDeliveryDateMonth を戻します。
 */
public String getRegHopeDeliveryDateMonth() {
    return regHopeDeliveryDateMonth;
}
/**
 * @return regHopeDeliveryDateYear を戻します。
 */
public String getRegHopeDeliveryDateYear() {
    return regHopeDeliveryDateYear;
}
/**
 * @param regHopeDeliveryDateDay regHopeDeliveryDateDay を設定。
 */
public void setRegHopeDeliveryDateDay(String regHopeDeliveryDateDay) {
    this.regHopeDeliveryDateDay = regHopeDeliveryDateDay;
}
/**
 * @param regHopeDeliveryDateMonth regHopeDeliveryDateMonth を設定。
 */
public void setRegHopeDeliveryDateMonth(String regHopeDeliveryDateMonth) {
    this.regHopeDeliveryDateMonth = regHopeDeliveryDateMonth;
}
/**
 * @param regHopeDeliveryDateYear regHopeDeliveryDateYear を設定。
 */
public void setRegHopeDeliveryDateYear(String regHopeDeliveryDateYear) {
    this.regHopeDeliveryDateYear = regHopeDeliveryDateYear;
}
/**
 * @return editMode を戻します。
 */
public String getEditMode() {
    return editMode;
}
/**
 * @param editMode editMode を設定。
 */
public void setEditMode(String editMode) {
    this.editMode = editMode;
}

public String getRegCustCode() {
  return regCustCode;
}

public void setRegCustCode(String regCustCode) {
  this.regCustCode = regCustCode;
}

//希望納品期日（年）
public String getHopeDeliveryDateYear(){
  String hopeDeliveryDateTxt = "";
  if (SIUtil.isNotNull(this.regHopeDeliveryDate)){
    hopeDeliveryDateTxt = this.regHopeDeliveryDate.substring(0,4);
  }
  return hopeDeliveryDateTxt;
}
//希望納品期日（月）
public String getHopeDeliveryDateMonth(){
    String hopeDeliveryDateTxt = "";
    if (SIUtil.isNotNull(this.regHopeDeliveryDate)){
      hopeDeliveryDateTxt = this.regHopeDeliveryDate.substring(5,7);
    }
    return hopeDeliveryDateTxt;
}
//希望納品期日（日）
public String getHopeDeliveryDateDay(){
  String hopeDeliveryDateTxt = "";
  if (SIUtil.isNotNull(this.regHopeDeliveryDate)){
    hopeDeliveryDateTxt = this.regHopeDeliveryDate.substring(8,10);
  }
  return hopeDeliveryDateTxt;
}
//新規問合せ番号
public String getNextNum(Connection lConnection)throws SIDBAccessException{
  SIDateTime lDateTime = new SIDateTime();
  int lNowYear =lDateTime.getYear();
  String year = lDateTime.getYearStr();
  String managementNo ="";
  
  StringBuffer lSqlBuf=new StringBuffer("SELECT Management_SbNo FROM NumberingTbl ");
  lSqlBuf.append("WHERE Functional_Type='0' AND Year="+ lNowYear +"");
  
  try{
    String managementSbNo = SIDBUtil.getFirstData(lConnection, lSqlBuf.toString());
    if (SIUtil.isNull(managementSbNo)) managementSbNo = "1";
    DecimalFormat exFormat1 = new DecimalFormat("000000");
    DecimalFormat exFormat2 = new DecimalFormat("00");
    managementNo = exFormat2.format(Integer.parseInt(year.substring(2,4))) + "_" + exFormat1.format(Integer.parseInt(managementSbNo));
  }catch(SIDBAccessException ex){
    ex.printStackTrace();
  }
  return managementNo;
}
/**
 * <b>initDetail</b>
 * 問合せ番号から明細を取得します。
 * @param lUrlParam URLパラメータ
 * @param lConnection コネクション
 * @return なし
 * @throws SIDBAccessException
 */
public void initDetail(SIURLParameter lUrlParam,Connection lConnection)throws SIDBAccessException{

  this.setEncode(SIConfig.SIENCODE_SHIFT_JIS);   
  this.setManagementNumber((String)lUrlParam.getParam("managementNumber"));
  Statement lStatement=null;
  ResultSet lResultSet=null;

  StringBuffer lSqlBuf = new StringBuffer();

  //基本のSQL
  lSqlBuf.append("SELECT * FROM LookForTbl ");
  lSqlBuf.append("WHERE ManagementNumber = ").append(SIDBUtil.SQL2Str(this.getManagementNumber()));

  log.debug("initDetail:lSqlBuf="+lSqlBuf.toString());
  //実行
  try{
    lStatement=lConnection.createStatement();
    lResultSet=lStatement.executeQuery(lSqlBuf.toString());

    //初期値のセット
    if (lResultSet.next()){
      this.setEncode(SIConfig.SIENCODE_NONE);
      this.setRegManagementNumber(lResultSet.getString("ManagementNumber"));
      this.setRegCorrespondingFlg(lResultSet.getString("CorrespondingFlg"));
      this.setRegInitDateTime(lResultSet.getString("InitDateTime"));
      this.setRegChargeCode(lResultSet.getString("ChargeCode"));
      this.setRegBranchCode(lResultSet.getString("BranchCode"));
      this.setRegCustName(lResultSet.getString("CustName"));
      this.setRegCustPronName(lResultSet.getString("CustPronName"));
      this.setRegPostCode1(lResultSet.getString("PostCode1"));
      this.setRegPostCode2(lResultSet.getString("PostCode2"));
      this.setRegAddress1(lResultSet.getString("Address1"));
      this.setRegAddress2(lResultSet.getString("Address2"));
      this.setRegAddress3(lResultSet.getString("Address3"));
      this.setRegSalonName(lResultSet.getString("SalonName"));
      this.setRegStoreTel(lResultSet.getString("StoreTel"));
      this.setRegTel(lResultSet.getString("Tel"));
      this.setRegFax(lResultSet.getString("Fax"));
      this.setRegEMail(lResultSet.getString("EMail"));
      this.setRegLatestDate(lResultSet.getString("LatestDate"));
      this.setRegMethodForHope(lResultSet.getString("MethodForHopeFlg"));
      this.setRegInquiryFormFlg(lResultSet.getString("InquiryFormFlg"));
      this.setRegClientComment(lResultSet.getString("ClientComment"));
      this.setRegHopeProduct(lResultSet.getString("HopeProduct"));
      this.setRegHopeCommodityName(lResultSet.getString("HopeCommodityName"));
      this.setRegHopeAmount(lResultSet.getString("HopeAmount"));
      this.setRegPresentationCommodity(lResultSet.getString("PresentationCommodity"));
      this.setRegPresentationCommodityAmount(lResultSet.getString("PresentationCommodityAmount"));
      this.setRegPresentationCommodityFlg(lResultSet.getString("PresentationCommodityFlg"));
      this.setRegCorrespondenceHistory(lResultSet.getString("CorrespondenceHistory"));
      this.setRegRemarks(lResultSet.getString("Remarks"));
      this.setRegHopeDeliveryDate(lResultSet.getString("HopeDeliveryDate"));
      this.setRegHopeDeliveryDateYear(this.getHopeDeliveryDateYear());
      this.setRegHopeDeliveryDateMonth(this.getHopeDeliveryDateMonth());
      this.setRegHopeDeliveryDateDay(this.getHopeDeliveryDateDay());
    }
  }catch(Exception ex){
    throw new SIDBAccessException(ex);
  }finally{
    SIDBUtil.close(lResultSet,lStatement);
  }
}

  /**
   * <b>initInsert2</b>
   * 入力した新規レコードのデータを取得します。
   * @param lRequest クライアントからリクエスト
   * @param lUrlParam
   * @return なし
   * @throws SIDBAccessException
   */
public void initInsert2(HttpServletRequest lRequest,SIURLParameter lUrlParam){

    this.setEncode(SIConfig.SIENCODE_SHIFT_JIS);
    this.setRegManagementNumber((String)lUrlParam.getParam("managementNumber"));
    this.setRegCorrespondingFlg((String)lUrlParam.getParam("correspondingFlg"));
    this.setRegChargeCode((String)lUrlParam.getParam("chargeCode"));
    this.setRegBranchCode((String)lUrlParam.getParam("branchCode"));
    this.setRegCustName((String)lUrlParam.getParam("custName"));
    this.setRegCustPronName((String)lUrlParam.getParam("custPronName"));
    this.setRegPostCode1((String)lUrlParam.getParam("postCode1"));
    this.setRegPostCode2((String)lUrlParam.getParam("postCode2"));
    this.setRegAddress1((String)lUrlParam.getParam("address1"));
    this.setRegAddress2((String)lUrlParam.getParam("address2"));
    this.setRegAddress3((String)lUrlParam.getParam("address3"));
    this.setRegSalonName((String)lUrlParam.getParam("salonName"));
    this.setRegStoreTel((String)lUrlParam.getParam("storeTel"));
    this.setRegTel((String)lUrlParam.getParam("tel"));
    this.setRegFax((String)lUrlParam.getParam("fax"));
    this.setRegEMail((String)lUrlParam.getParam("eMail"));
    this.setRegMethodForHope((String)lUrlParam.getParam("methodForHope"));
    this.setRegInquiryFormFlg((String)lUrlParam.getParam("inquiryFormFlg"));
    this.setRegClientComment((String)lUrlParam.getParam("clientComment"));
    this.setRegHopeProduct((String)lUrlParam.getParam("hopeProduct"));
    this.setRegHopeCommodityName((String)lUrlParam.getParam("hopeCommodityName"));
    this.setRegHopeAmount((String)lUrlParam.getParam("hopeAmount"));
    this.setRegPresentationCommodity((String)lUrlParam.getParam("presentationCommodity"));
    this.setRegPresentationCommodityAmount((String)lUrlParam.getParam("presentationCommodityAmount"));
    this.setRegPresentationCommodityFlg((String)lUrlParam.getParam("presentationCommodityFlg"));
    this.setRegCorrespondenceHistory((String)lUrlParam.getParam("correspondenceHistory"));
    this.setRegRemarks((String)lUrlParam.getParam("remarks"));
    this.setRegHopeDeliveryDateYear((String)lUrlParam.getParam("hopeDeliveryDateYear"));
    this.setRegHopeDeliveryDateMonth((String)lUrlParam.getParam("hopeDeliveryDateMonth"));
    this.setRegHopeDeliveryDateDay((String)lUrlParam.getParam("hopeDeliveryDateDay"));
    if(SIUtil.isNotNull(this.regHopeDeliveryDateYear) & SIUtil.isNotNull(this.regHopeDeliveryDateMonth) & SIUtil.isNotNull(this.regHopeDeliveryDateDay)){
        this.setRegHopeDeliveryDate((String)lUrlParam.getParam("hopeDeliveryDateYear")
              +"-"+(String)lUrlParam.getParam("hopeDeliveryDateMonth")
              +"-"+(String)lUrlParam.getParam("hopeDeliveryDateDay"));
      }
  }

/**
 * <b>initInsert</b>
 * 入力した新規レコードのデータを取得します。
 * @param lRequest クライアントからリクエスト
 * @param lConnection コネクション
 * @param lUrlParam
 * @return なし
 * @throws SIDBAccessException
 */
  public void initInsert(HttpServletRequest lRequest,Connection lConnection,SIURLParameter lUrlParam)throws SIDBAccessException{

    this.setEncode(SIConfig.SIENCODE_SHIFT_JIS);
    this.setRegManagementNumber(this.getNextNum(lConnection));
    this.setRegCorrespondingFlg((String)lUrlParam.getParam("correspondingFlg"));
    this.setRegChargeCode((String)lUrlParam.getParam("chargeCode"));
    this.setRegBranchCode((String)lUrlParam.getParam("branchCode"));
    this.setRegCustName((String)lUrlParam.getParam("custName"));
    this.setRegCustPronName((String)lUrlParam.getParam("custPronName"));
    this.setRegPostCode1((String)lUrlParam.getParam("postCode1"));
    this.setRegPostCode2((String)lUrlParam.getParam("postCode2"));
    this.setRegAddress1((String)lUrlParam.getParam("address1"));
    this.setRegAddress2((String)lUrlParam.getParam("address2"));
    this.setRegAddress3((String)lUrlParam.getParam("address3"));
    this.setRegSalonName((String)lUrlParam.getParam("salonName"));
    this.setRegStoreTel((String)lUrlParam.getParam("storeTel"));
    this.setRegTel((String)lUrlParam.getParam("tel"));
    this.setRegFax((String)lUrlParam.getParam("fax"));
    this.setRegEMail((String)lUrlParam.getParam("eMail"));
    this.setRegMethodForHope((String)lUrlParam.getParam("methodForHope"));
    this.setRegInquiryFormFlg((String)lUrlParam.getParam("inquiryFormFlg"));
    this.setRegClientComment((String)lUrlParam.getParam("clientComment"));
    this.setRegHopeProduct((String)lUrlParam.getParam("hopeProduct"));
    this.setRegHopeCommodityName((String)lUrlParam.getParam("hopeCommodityName"));
    this.setRegHopeAmount((String)lUrlParam.getParam("hopeAmount"));
    this.setRegPresentationCommodity((String)lUrlParam.getParam("presentationCommodity"));
    this.setRegPresentationCommodityAmount((String)lUrlParam.getParam("presentationCommodityAmount"));
    this.setRegPresentationCommodityFlg((String)lUrlParam.getParam("presentationCommodityFlg"));
    this.setRegCorrespondenceHistory((String)lUrlParam.getParam("correspondenceHistory"));
    this.setRegRemarks((String)lUrlParam.getParam("remarks"));
    this.setRegHopeDeliveryDateYear((String)lUrlParam.getParam("hopeDeliveryDateYear"));
    this.setRegHopeDeliveryDateMonth((String)lUrlParam.getParam("hopeDeliveryDateMonth"));
    this.setRegHopeDeliveryDateDay((String)lUrlParam.getParam("hopeDeliveryDateDay"));
  }

  /**
   * <b>initModify</b>
   * 入力した既存レコードのデータを取得します。
   * @param request クライアントからリクエスト
   * @param lUrlParam
   * @return なし
   * @throws なし
   */
  public void initModify(HttpServletRequest lRequest,SIURLParameter lUrlParam){

    this.setEncode(SIConfig.SIENCODE_SHIFT_JIS);
    this.setRegManagementNumber((String)lUrlParam.getParam("managementNumber"));
    this.setRegCorrespondingFlg((String)lUrlParam.getParam("correspondingFlg"));
    this.setRegInitDateTime((String)lUrlParam.getParam("initDateTime"));
    this.setRegChargeCode((String)lUrlParam.getParam("chargeCode"));
    this.setRegBranchCode((String)lUrlParam.getParam("branchCode"));
    this.setRegCustName((String)lUrlParam.getParam("custName"));
    this.setRegCustPronName((String)lUrlParam.getParam("custPronName"));
    this.setRegPostCode1((String)lUrlParam.getParam("postCode1"));
    this.setRegPostCode2((String)lUrlParam.getParam("postCode2"));
    this.setRegAddress1((String)lUrlParam.getParam("address1"));
    this.setRegAddress2((String)lUrlParam.getParam("address2"));
    this.setRegAddress3((String)lUrlParam.getParam("address3"));
    this.setRegSalonName((String)lUrlParam.getParam("salonName"));
    this.setRegStoreTel((String)lUrlParam.getParam("storeTel"));
    this.setRegTel((String)lUrlParam.getParam("tel"));
    this.setRegFax((String)lUrlParam.getParam("fax"));
    this.setRegEMail((String)lUrlParam.getParam("eMail"));
    this.setRegLatestDate((String)lUrlParam.getParam("latestDate"));
    this.setRegMethodForHope((String)lUrlParam.getParam("methodForHope"));
    this.setRegInquiryFormFlg((String)lUrlParam.getParam("inquiryFormFlg"));
    this.setRegClientComment((String)lUrlParam.getParam("clientComment"));
    this.setRegHopeProduct((String)lUrlParam.getParam("hopeProduct"));
    this.setRegHopeCommodityName((String)lUrlParam.getParam("hopeCommodityName"));
    this.setRegHopeAmount((String)lUrlParam.getParam("hopeAmount"));
    this.setRegPresentationCommodity((String)lUrlParam.getParam("presentationCommodity"));
    this.setRegPresentationCommodityAmount((String)lUrlParam.getParam("presentationCommodityAmount"));
    this.setRegPresentationCommodityFlg((String)lUrlParam.getParam("presentationCommodityFlg"));
    this.setRegCorrespondenceHistory((String)lUrlParam.getParam("correspondenceHistory"));
    this.setRegRemarks((String)lUrlParam.getParam("remarks"));
    this.setRegHopeDeliveryDateYear((String)lUrlParam.getParam("hopeDeliveryDateYear"));
    this.setRegHopeDeliveryDateMonth((String)lUrlParam.getParam("hopeDeliveryDateMonth"));
    this.setRegHopeDeliveryDateDay((String)lUrlParam.getParam("hopeDeliveryDateDay"));
    if(SIUtil.isNotNull(this.regHopeDeliveryDateYear) & SIUtil.isNotNull(this.regHopeDeliveryDateMonth) & SIUtil.isNotNull(this.regHopeDeliveryDateDay)){
      this.setRegHopeDeliveryDate((String)lUrlParam.getParam("hopeDeliveryDateYear")
            +"-"+(String)lUrlParam.getParam("hopeDeliveryDateMonth")
            +"-"+(String)lUrlParam.getParam("hopeDeliveryDateDay"));
    }
    this.setRegCustCode((String)lUrlParam.getParam("custCode"));
  }

  /**
   * <b>validateInsert</b>
   * 入力した新規レコードのデータをチェックします。
   * @param lRequest クライアントからのリクエスト
   * @return なし
   * @throws なし
   */

  public boolean validateInsert(HttpServletRequest lRequest){
    SICustomErrors errors=new SICustomErrors();
    
    SICheckValid.checkValid(errors,"対応状況",this.regCorrespondingFlg,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"担当地区",this.regBranchCode,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"担当者",this.regChargeCode,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"依頼者",this.regCustName,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"依頼者",this.regCustName,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 100);
    SICheckValid.checkValid(errors,"依頼者カナ名",this.regCustPronName,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"依頼者カナ名",this.regCustPronName,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 100);
    SICheckValid.checkValid(errors,"郵便番号1",this.regPostCode1,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE+SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"郵便番号1",this.regPostCode1,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 3);
    SICheckValid.checkValid(errors,"郵便番号2",this.regPostCode2,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE+SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"郵便番号2",this.regPostCode2,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 4);
    SICheckValid.checkValid(errors,"住所1",this.regPostCode1,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"住所2",this.regAddress2,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"住所2",this.regAddress2,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 100);
    SICheckValid.checkValid(errors,"住所3",this.regAddress3,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 100);
    SICheckValid.checkValid(errors,"サロン名",this.regSalonName,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 100);
    SICheckValid.checkValid(errors,"連絡先電話番号１",this.regStoreTel,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE+SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"連絡先電話番号１",this.regStoreTel,SICheckDataConf.SICHECK_DATA_BYTE_LEN_TYPE,9,16);
    SICheckValid.checkValid(errors,"連絡先電話番号２",this.regTel,SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"連絡先電話番号２",this.regTel,SICheckDataConf.SICHECK_DATA_BYTE_LEN_TYPE,9,16);
    SICheckValid.checkValid(errors,"連絡先FAX番号",this.regFax,SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"連絡先FAX番号",this.regFax,SICheckDataConf.SICHECK_DATA_BYTE_LEN_TYPE,9,16);
    SICheckValid.checkValid(errors,"メールアドレス",this.regEMail,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE+SICheckDataConf.SICHECK_DATA_MAIL_TYPE);
    SICheckValid.checkValid(errors,"メールアドレス",this.regEMail,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 128);
    SICheckValid.checkValid(errors,"希望対応方法",this.regMethodForHope,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"問合せ形態",this.regInquiryFormFlg,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"依頼者コメント",this.regClientComment,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 4000);
    SICheckValid.checkValid(errors,"希望商品カテゴリ",this.regHopeProduct,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"希望商品",this.regHopeCommodityName,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"希望商品",this.regHopeCommodityName,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 100);
    SICheckValid.checkValid(errors,"希望商品数量",this.regHopeAmount,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE+SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"希望商品数量",this.regHopeAmount,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 8);
    SICheckValid.checkValid(errors,"提示商品",this.regPresentationCommodity,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 100); 
    SICheckValid.checkValid(errors,"提示商品数量",this.regPresentationCommodityAmount,SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"提示商品数量",this.regPresentationCommodityAmount,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 8);
    SICheckValid.checkValid(errors,"提示商品状況",this.regPresentationCommodityFlg,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"対応履歴",this.regCorrespondenceHistory,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 4000);
    SICheckValid.checkValid(errors,"備考",this.regRemarks,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 4000);
    if (SIUtil.isNotNull(this.regHopeDeliveryDateDay) | SIUtil.isNotNull(this.regHopeDeliveryDateMonth) | SIUtil.isNotNull(this.regHopeDeliveryDateDay)){
      SICheckValid.checkValid(errors,"納品期日（年）",this.regHopeDeliveryDateYear,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
      SICheckValid.checkValid(errors,"納品期日（月）",this.regHopeDeliveryDateMonth,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
      SICheckValid.checkValid(errors,"納品期日（日）",this.regHopeDeliveryDateDay,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    }
    if (!errors.isEmpty()) lRequest.setAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY_BAK,errors);
    else lRequest.removeAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY_BAK);
    return errors.isEmpty();
  }

  /**
   * <b>validateModify</b
   * 入力した新規レコードのデータをチェックします。
   * @param lRequest クライアントからのリクエスト
   * @return なし
   * @throws なし
   */

  public boolean validateModify(HttpServletRequest lRequest){
    SICustomErrors errors=new SICustomErrors();
    
    SICheckValid.checkValid(errors,"対応状況",this.regCorrespondingFlg,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"担当地区",this.regBranchCode,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"担当者",this.regChargeCode,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"依頼者",this.regCustName,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"依頼者",this.regCustName,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 100);
    SICheckValid.checkValid(errors,"依頼者カナ名",this.regCustPronName,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"依頼者カナ名",this.regCustPronName,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 100);
    SICheckValid.checkValid(errors,"郵便番号1",this.regPostCode1,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE+SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"郵便番号1",this.regPostCode1,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 3);
    SICheckValid.checkValid(errors,"郵便番号2",this.regPostCode2,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE+SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"郵便番号2",this.regPostCode2,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 4);
    SICheckValid.checkValid(errors,"住所1",this.regPostCode1,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"住所2",this.regAddress2,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"住所2",this.regAddress2,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 100);
    SICheckValid.checkValid(errors,"住所3",this.regAddress3,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 100);
    SICheckValid.checkValid(errors,"サロン名",this.regSalonName,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 100);
    SICheckValid.checkValid(errors,"連絡先電話番号１",this.regStoreTel,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE+SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"連絡先電話番号１",this.regStoreTel,SICheckDataConf.SICHECK_DATA_BYTE_LEN_TYPE,9,16);
    SICheckValid.checkValid(errors,"連絡先電話番号２",this.regTel,SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"連絡先電話番号２",this.regTel,SICheckDataConf.SICHECK_DATA_BYTE_LEN_TYPE,9,16);
    SICheckValid.checkValid(errors,"連絡先FAX番号",this.regFax,SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"連絡先FAX番号",this.regFax,SICheckDataConf.SICHECK_DATA_BYTE_LEN_TYPE,9,16);
    SICheckValid.checkValid(errors,"メールアドレス",this.regEMail,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE+SICheckDataConf.SICHECK_DATA_MAIL_TYPE);
    SICheckValid.checkValid(errors,"メールアドレス",this.regEMail,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 128);
    SICheckValid.checkValid(errors,"希望対応方法",this.regMethodForHope,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"問合せ形態",this.regInquiryFormFlg,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"依頼者コメント",this.regClientComment,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 4000);
    SICheckValid.checkValid(errors,"希望商品カテゴリ",this.regHopeProduct,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"希望商品",this.regHopeCommodityName,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"希望商品",this.regHopeCommodityName,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 100);
    SICheckValid.checkValid(errors,"希望商品数量",this.regHopeAmount,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE+SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"希望商品数量",this.regHopeAmount,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 8);
    SICheckValid.checkValid(errors,"提示商品",this.regPresentationCommodity,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 100); 
    SICheckValid.checkValid(errors,"提示商品数量",this.regPresentationCommodityAmount,SICheckDataConf.SICHECK_DATA_ALPHA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"提示商品数量",this.regPresentationCommodityAmount,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 8);
    SICheckValid.checkValid(errors,"提示商品状況",this.regPresentationCommodityFlg,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"対応履歴",this.regCorrespondenceHistory,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 4000);
    SICheckValid.checkValid(errors,"備考",this.regRemarks,SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 4000);
    if (SIUtil.isNotNull(this.regHopeDeliveryDateDay) | SIUtil.isNotNull(this.regHopeDeliveryDateMonth) | SIUtil.isNotNull(this.regHopeDeliveryDateDay)){
      SICheckValid.checkValid(errors,"納品期日（年）",this.regHopeDeliveryDateYear,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
      SICheckValid.checkValid(errors,"納品期日（月）",this.regHopeDeliveryDateMonth,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
      SICheckValid.checkValid(errors,"納品期日（日）",this.regHopeDeliveryDateDay,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    }
    if (!errors.isEmpty()) lRequest.setAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY_BAK,errors);
    else lRequest.removeAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY_BAK);

    return errors.isEmpty();
  }
  
  public boolean validateSearch(HttpServletRequest lRequest, Connection lConnection){
    SICustomErrors errors=new SICustomErrors();
    StringBuffer lSqlBuf = new StringBuffer();
    try {
      if (SICheckValid.checkValid(errors,"検索用顧客コード",this.regCustCode,SICheckDataConf.SICHECK_DATA_EMPTY_TYPE+SICheckDataConf.SICHECK_DATA_DIGIT_TYPE)) {
        lSqlBuf = new StringBuffer("SELECT custCode FROM custTbl WHERE custCode=");
        lSqlBuf.append(SIDBUtil.SQL2Str(this.regCustCode));
        SICheckValid.checkExist(errors, lConnection, "顧客コード", lSqlBuf.toString());
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
    if (!errors.isEmpty()) {
      lRequest.setAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY_BAK,errors);
    }
    return errors.isEmpty();
  }
  
  public void custSearch(Connection lConnection) {
    Statement lStatement = null;
    ResultSet lResultSet = null;
    
    StringBuffer lSqlBuf = new StringBuffer();
    lSqlBuf.append("SELECT * FROM custTbl WHERE custCode = ").append(SIDBUtil.SQL2Str(this.regCustCode));
    try {
      lStatement = lConnection.createStatement();
      lResultSet = lStatement.executeQuery(lSqlBuf.toString());
      
      if (lResultSet.next()) {
        this.setRegCustName(lResultSet.getString("custName"));
        this.setRegCustPronName(lResultSet.getString("custPronName"));
        this.setRegPostCode1(lResultSet.getString("postCode1"));
        this.setRegPostCode2(lResultSet.getString("postCode2"));
        this.setRegAddress1(lResultSet.getString("address1"));
        this.setRegAddress2(lResultSet.getString("address2"));
        this.setRegAddress3(lResultSet.getString("address3"));
        this.setRegSalonName(lResultSet.getString("companyName"));
        this.setRegTel(lResultSet.getString("tel"));
        this.setRegStoreTel(lResultSet.getString("storeTel"));
        this.setRegFax(lResultSet.getString("fax"));
        this.setRegEMail(lResultSet.getString("email"));
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}
