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

import java.sql.Connection;

import javax.servlet.http.HttpServletRequest;

import jp.co.sint.beans.mallmgr.UICustAddress;
import jp.co.sint.config.SIConfig;
import jp.co.sint.database.SIDBUtil;
import jp.co.sint.tools.SICheckDataConf;
import jp.co.sint.tools.SICheckValid;
import jp.co.sint.tools.SICustomError;
import jp.co.sint.tools.SICustomErrors;
import jp.co.sint.tools.SIUtil;

/**
 * @version $Id: UIAUserEdit.java,v 1.0 2004/01/06 Exp $
 * @author  asakura
 * <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>
 * asakura        2004/02/24 10:24:58 Original
 */
public class UIACustAddress extends UICustAddress{

  public boolean validate(HttpServletRequest lRequest,Connection lConnection){
    lRequest.removeAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY);
    SICustomErrors errors=new SICustomErrors();
    SICustomError err;
    StringBuffer lSqlBuf=new StringBuffer("");

    SICheckValid.checkValid(errors,"配送先呼称",this.getDeliveryName(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"配送先呼称",this.getDeliveryName(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,40);//7.2.0 ST0670 修正

    SICheckValid.checkValid(errors,"宛名",this.getDeliveryAddressee(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"宛名",this.getDeliveryAddressee(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,50);

    //7.1.1 ST0162 修正 ここから
	  SICheckValid.checkValid(errors, "郵便番号(上3桁)", this.getPostCode1(), SICheckDataConf.SICHECK_DATA_EMPTY_TYPE + SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
	  SICheckValid.checkValid(errors, "郵便番号(下4桁)", this.getPostCode2(), SICheckDataConf.SICHECK_DATA_EMPTY_TYPE + SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
	  if (this.getPostCode1().toString().trim().length() != 3||this.getPostCode2().toString().trim().length() != 4) {errors.addError(new SICustomError("manager.app.postcode.form"));}

    SICheckValid.checkValid(errors, "住所1(都道府県)", this.getAddress1(), SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors, "住所1(都道府県)", this.getAddress1(), SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,8);
    if (SIUtil.isNotNull(this.getAddress1())){
      lSqlBuf.append("SELECT PrefectureName FROM PrefectureMTbl WHERE PrefectureName=");
      lSqlBuf.append(SIDBUtil.SQL2Str(this.getAddress1()));
      SICheckValid.checkExist(errors,lConnection, "住所1(都道府県)",lSqlBuf.toString());
    }

    SICheckValid.checkValid(errors,"住所2(市区町村・番地)",this.getAddress2(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"住所2(市区町村・番地)",this.getAddress2(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,100);

    SICheckValid.checkValid(errors,"住所3(ビル名・階など)",this.getAddress3(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,100);
    //7.1.1 ST0162 修正 ここまで

    SICheckValid.checkValid(errors,"連絡先電話番号",this.getTel(),SICheckDataConf.SICHECK_DATA_TEL_TYPE);
    SICheckValid.checkValid(errors,"連絡先電話番号",this.getTel(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,16);

    if (!errors.isEmpty()) lRequest.setAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY,errors);
    return errors.isEmpty();
  }
}
