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

import javax.servlet.http.*;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.*;
import java.sql.*;
import org.apache.log4j.Category;
import jp.co.sint.database.*;
import jp.co.sint.basic.*;
import jp.co.sint.config.*;
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.SIURLParameter;
import jp.co.sint.tools.SIUtil;

/**
 * @version $Id: UIRegOtherOrder.java,v 1.0 Exp $
 * @author  Naotaka Ohsugi
 * <br>Description: その他販売登録に対するBeanクラスの作成
 * <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>
 * Naotaka Ohsugi     2003/07/11  Original
 */

public class UIRegOtherOrder extends SIOtherOrder{
  
  //ログ用のインスタンスの生成
  private static Category log=Category.getInstance(SIConfig.SILOG4J_WEBSHOP_CATEGORY_NAME);
  
  //顧客コード
  private String custCode = "";
  
  //顧客名
  private String custName = "";
  
  //顧客名カナ
  private String custPronName = "";
  
  //E-MAIL
  private String eMail = "";
  
  //宛名
  private String orderAddressee = "";
  
  //郵便番号1
  private String postCode1 = "";
  
  //郵便番号2
  private String postCode2 = "";
  
  //住所1
  private String address1 = "";
  
  //住所2
  private String address2 = "";
  
  //住所3
  private String address3 = "";
  
  //会社名
  private String companyName = "";
  
  //連絡先TEL1
  private String tel1 = "";
  
  //連絡先TEL2
  private String tel2 = "";
  
  //FAX
  private String fax = "";
  
  //支払方法名称
  private String payMethodName = "";
  
  //営業形態
  private String businessForm = "";
  
  //受注経路
  private String orderRoute = "";
  
  //連絡事項
  private String contactMsg = "";
  
  //支店コード
  private String branchCode = "";
  
  //担当者コード
  private String chargeCode = "";
  
  //配送先名称
  private String addressCode = "";
  
  //配送先宛名
  private String deliveryAddressee = "";
  
  //配送先郵便番号1
  private String deliveryPostCode1 = "";
  
  //配送先郵便番号2
  private String deliveryPostCode2 = "";
  
  //配送先住所1
  private String deliveryAddress1 = "";
  
  //配送先住所2
  private String deliveryAddress2 = "";
  
  //配送先住所3
  private String deliveryAddress3 = "";
  
  //配送先サロン名
  private String deliveryCompanyName = "";
  
  //配送先電話番号
  private String deliveryTel = "";
  
  /**
   * UIRegOtherOrder
   * コンストラクタ
   * @param なし
   * @return なし
   * @throws なし
   */
  public UIRegOtherOrder(){}
  
  /**
   * UIRegOtherOrder
   * コンストラクタ
   * @param lRequest リクエスト
   * @param lUrlParam
   * @return なし
   * @throws なし
   */
  public UIRegOtherOrder(HttpServletRequest lRequest,SIURLParameter lUrlParam){
    this.init(lRequest,lUrlParam);
  }
  
  public String getAddress1() {
    return address1;
  }
  
  public String getAddress2() {
    return address2;
  }
  
  public String getAddress3() {
    return address3;
  }
  
  public String getBranchCode() {
    return branchCode;
  }
  
  public String getBusinessForm() {
    return businessForm;
  }
  
  public String getChargeCode() {
    return chargeCode;
  }
  
  public String getCompanyName() {
    return companyName;
  }
  
  public String getContactMsg() {
    return contactMsg;
  }
  
  public String getCustCode() {
    return custCode;
  }
  
  public String getCustName() {
    return custName;
  }
  
  public String getCustPronName() {
    return custPronName;
  }
  
  public String getDeliveryAddress1() {
    return deliveryAddress1;
  }
  
  public String getDeliveryAddress2() {
    return deliveryAddress2;
  }
  
  public String getDeliveryAddress3() {
    return deliveryAddress3;
  }
  
  public String getDeliveryAddressee() {
    return deliveryAddressee;
  }
  
  public String getDeliveryCompanyName() {
    return deliveryCompanyName;
  }
  
  public String getAddressCode() {
    return addressCode;
  }
  
  public String getDeliveryPostCode1() {
    return deliveryPostCode1;
  }
  
  public String getDeliveryPostCode2() {
    return deliveryPostCode2;
  }
  
  public String getDeliveryTel() {
    return deliveryTel;
  }
  
  public String getEMail() {
    return eMail;
  }
  
  public String getFax() {
    return fax;
  }
  
  public String getOrderAddressee() {
    return orderAddressee;
  }
  
  public String getOrderRoute() {
    return orderRoute;
  }
  
  public String getPayMethodName() {
    return payMethodName;
  }
  
  public String getPostCode1() {
    return postCode1;
  }
  
  public String getPostCode2() {
    return postCode2;
  }
  
  public String getTel1() {
    return tel1;
  }
  
  public String getTel2() {
    return tel2;
  }
  
  public void setAddress1(String address1) {
    this.address1 = address1;
  }
  
  public void setAddress2(String address2) {
    this.address2 = address2;
  }
  
  public void setAddress3(String address3) {
    this.address3 = address3;
  }
  
  public void setBranchCode(String branchCode) {
    this.branchCode = branchCode;
  }
  
  public void setBusinessForm(String businessForm) {
    this.businessForm = businessForm;
  }
  
  public void setChargeCode(String chargeCode) {
    this.chargeCode = chargeCode;
  }
  
  public void setCompanyName(String companyName) {
    this.companyName = companyName;
  }
  
  public void setContactMsg(String contactMsg) {
    this.contactMsg = contactMsg;
  }
  
  public void setCustCode(String custCode) {
    this.custCode = custCode;
  }
  
  public void setCustName(String custName) {
    this.custName = custName;
  }
  
  public void setCustPronName(String custPronName) {
    this.custPronName = custPronName;
  }
  
  public void setDeliveryAddress1(String deliveryAddress1) {
    this.deliveryAddress1 = deliveryAddress1;
  }
  
  public void setDeliveryAddress2(String deliveryAddress2) {
    this.deliveryAddress2 = deliveryAddress2;
  }
  
  public void setDeliveryAddress3(String deliveryAddress3) {
    this.deliveryAddress3 = deliveryAddress3;
  }
  
  public void setDeliveryAddressee(String deliveryAddressee) {
    this.deliveryAddressee = deliveryAddressee;
  }
  
  public void setDeliveryCompanyName(String deliveryCompanyName) {
    this.deliveryCompanyName = deliveryCompanyName;
  }
  
  public void setAddressCode(String addressCode) {
    this.addressCode = addressCode;
  }
  
  public void setDeliveryPostCode1(String deliveryPostCode1) {
    this.deliveryPostCode1 = deliveryPostCode1;
  }
  
  public void setDeliveryPostCode2(String deliveryPostCode2) {
    this.deliveryPostCode2 = deliveryPostCode2;
  }
  
  public void setDeliveryTel(String deliveryTel) {
    this.deliveryTel = deliveryTel;
  }
  
  public void setEMail(String mail) {
    eMail = mail;
  }
  
  public void setFax(String fax) {
    this.fax = fax;
  }
  
  public void setOrderAddressee(String orderAddressee) {
    this.orderAddressee = orderAddressee;
  }
  
  public void setOrderRoute(String orderRoute) {
    this.orderRoute = orderRoute;
  }
  
  public void setPayMethodName(String payMethodName) {
    this.payMethodName = payMethodName;
  }
  
  public void setPostCode1(String postCode1) {
    this.postCode1 = postCode1;
  }
  
  public void setPostCode2(String postCode2) {
    this.postCode2 = postCode2;
  }
  
  public void setTel1(String tel1) {
    this.tel1 = tel1;
  }
  
  public void setTel2(String tel2) {
    this.tel2 = tel2;
  }
  
  /**
   * <b>init</b>
   * 入力したデータを基づいて、このbeansを設定します。
   * @param request クライアントからリクエスト
   * @param lUrlParam
   * @return なし
   * @throws なし
   */
  
  public void init(HttpServletRequest lRequest,SIURLParameter lUrlParam){
    this.setEncode(SIConfig.SIENCODE_SHIFT_JIS);
    super.init(lRequest,lUrlParam);
    this.setOtherOrderCode((String)lUrlParam.getParam("otherOrderCode"));
  }
  
  /**
   * <b>initDelete</b>
   * 入力したデータを基づいて、このbeansを設定します。
   * @param request クライアントからリクエスト
   * @param lUrlParam
   * @return なし
   * @throws なし
   */
  
  public void initDelete(HttpServletRequest lRequest,SIURLParameter lUrlParam){
    this.setEncode(SIConfig.SIENCODE_SHIFT_JIS);
    super.init(lRequest,lUrlParam);
    this.setOtherOrderCode((String)lUrlParam.getParam("otherOrderCode"));
    this.setOtherDetailCode((String)lUrlParam.getParam("otherDetailCode"));
  }
  
  /**
   * <b>initInsert</b>
   * 入力したデータを基づいて、このbeansを設定します。
   * @param request クライアントからリクエスト
   * @param lUrlParam
   * @return なし
   * @throws なし
   */
  public void initInsert(HttpServletRequest lRequest,SIURLParameter lUrlParam){
    this.setEncode(SIConfig.SIENCODE_SHIFT_JIS);
    super.init(lRequest,lUrlParam);
    this.setOtherOrderCode((String)lUrlParam.getParam("otherOrderCode"));
    this.setCustCode((String)lUrlParam.getParam("custCode"));
    this.setCustName((String)lUrlParam.getParam("custName"));
    this.setCustPronName((String)lUrlParam.getParam("custPronName"));
    this.setEMail((String)lUrlParam.getParam("email"));
    this.setOrderAddressee((String)lUrlParam.getParam("addressee"));
    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.setCompanyName((String)lUrlParam.getParam("companyName"));
    this.setTel1((String)lUrlParam.getParam("tel1"));
    this.setTel2((String)lUrlParam.getParam("tel2"));
    this.setFax((String)lUrlParam.getParam("fax"));
    this.setPayMethodName((String)lUrlParam.getParam("payMethodName"));
    this.setBusinessForm((String)lUrlParam.getParam("businessForm"));
    this.setOrderRoute((String)lUrlParam.getParam("orderRoute"));
    this.setContactMsg((String)lUrlParam.getParam("contactMsg"));
    this.setBranchCode((String)lUrlParam.getParam("orderbranch"));
    this.setChargeCode((String)lUrlParam.getParam("ordercharge"));
    this.setAddressCode((String)lUrlParam.getParam("addressCode"));
    this.setDeliveryAddressee((String)lUrlParam.getParam("deliveryAddressee"));
    this.setDeliveryPostCode1((String)lUrlParam.getParam("deliveryPostCode1"));
    this.setDeliveryPostCode2((String)lUrlParam.getParam("deliveryPostCode2"));
    this.setDeliveryAddress1((String)lUrlParam.getParam("deliveryAddress1"));
    this.setDeliveryAddress2((String)lUrlParam.getParam("deliveryAddress2"));
    this.setDeliveryAddress3((String)lUrlParam.getParam("deliveryAddress3"));
    this.setDeliveryCompanyName((String)lUrlParam.getParam("deliveryCompanyName"));
    this.setDeliveryTel((String)lUrlParam.getParam("deliveryTel"));
    this.setCmdtySection((String)lUrlParam.getParam("cmdtySection"));
    this.setMotherCmdtyName((String)lUrlParam.getParam("motherCmdtyName"));
    this.setCmdtyName((String)lUrlParam.getParam("cmdtyName"));
    this.setAmount((String)lUrlParam.getParam("amount"));
    this.setPrice((String)lUrlParam.getParam("price"));
    this.setPurchasePrice((String)lUrlParam.getParam("purchasePrice"));
    this.setComment((String)lUrlParam.getParam("comment"));
  }
  
  /**
   * <b>validate</b>
   * 入力したデータをチェックします。
   * @param lRequest クライアントからのリクエスト
   */
  public boolean validate(HttpServletRequest lRequest,Connection lConnection){
    SICustomErrors errors=new SICustomErrors();
    
    SICheckValid.checkValid(errors,"顧客コード",this.getCustCode(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"顧客コード",this.getCustCode(),SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"顧客コード",this.getCustCode(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,10);
    SICheckValid.checkValid(errors,"顧客名",this.getCustName(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"顧客名",this.getCustName(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,40);
    SICheckValid.checkValid(errors,"顧客名カナ",this.getCustPronName(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
  	SICheckValid.checkValid(errors,"顧客名カナ",this.getCustPronName(),SICheckDataConf.SICHECK_DATA_ZENKAKU_KANA_TYPE);
  	SICheckValid.checkValid(errors,"顧客名カナ",this.getCustPronName(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,50);
    SICheckValid.checkValid(errors,"連絡先TEL1",this.getTel1(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
  	SICheckValid.checkValid(errors,"連絡先TEL1",this.getTel1(),SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"連絡先TEL1",this.getTel1(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,9,16);
    SICheckValid.checkValid(errors,"連絡先TEL2",this.getTel2(),SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"連絡先TEL2",this.getTel2(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,9,16);
    SICheckValid.checkValid(errors,"FAX",this.getFax(),SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"FAX",this.getFax(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,9,16);
    SICheckValid.checkValid(errors,"E-mail",this.getEMail(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"E-mail",this.getEMail(),SICheckDataConf.SICHECK_DATA_MAIL_TYPE);
    SICheckValid.checkValid(errors,"E-mail",this.getEMail(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,128);
    SICheckValid.checkValid(errors,"郵便番号１",this.getPostCode1(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"郵便番号１",this.getPostCode1(),SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"郵便番号１",this.getPostCode1(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,3);
    SICheckValid.checkValid(errors,"郵便番号２",this.getPostCode2(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"郵便番号２",this.getPostCode2(),SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"郵便番号２",this.getPostCode2(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,4);
    SICheckValid.checkValid(errors,"宛名",this.getOrderAddressee(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"宛名",this.getOrderAddressee(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,50);
    SICheckValid.checkValid(errors,"会社名",this.getCompanyName(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,100);
    SICheckValid.checkValid(errors,"住所１",this.getAddress1(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"住所２",this.getAddress2(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"住所２",this.getAddress2(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,100);
    SICheckValid.checkValid(errors,"住所３",this.getAddress3(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,100);
    SICheckValid.checkValid(errors,"受注経路",this.getOrderRoute(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    
    SICheckValid.checkValid(errors,"配送先：郵便番号１",this.getDeliveryPostCode1(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"配送先：郵便番号１",this.getDeliveryPostCode1(),SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"配送先：郵便番号１",this.getDeliveryPostCode1(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,3);
    SICheckValid.checkValid(errors,"配送先：郵便番号２",this.getDeliveryPostCode2(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"配送先：郵便番号２",this.getDeliveryPostCode2(),SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"配送先：郵便番号２",this.getDeliveryPostCode2(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,4);
    SICheckValid.checkValid(errors,"配送先：サロン名",this.getDeliveryCompanyName(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,100);
    SICheckValid.checkValid(errors,"配送先：宛名",this.getDeliveryAddressee(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"配送先：宛名",this.getDeliveryAddressee(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,50);
    SICheckValid.checkValid(errors,"配送先：住所１",this.getDeliveryAddress1(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"配送先：住所２",this.getDeliveryAddress2(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"配送先：住所２",this.getDeliveryAddress2(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,100);
    SICheckValid.checkValid(errors,"配送先：住所３",this.getDeliveryAddress3(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,100);
    SICheckValid.checkValid(errors,"配送先：TEL",this.getDeliveryTel(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"配送先：TEL",this.getDeliveryTel(),SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"配送先：TEL",this.getDeliveryTel(), SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,9,16);
    
    SICheckValid.checkValid(errors,"商品タイトル：部門",this.getCmdtySection(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"商品タイトル：商品名",this.getMotherCmdtyName(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"商品タイトル：商品名",this.getMotherCmdtyName(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,100);
    
    if(SIConfig.SIEDIT_MODE_UPDATE.equalsIgnoreCase(this.getEditModeTxt())){
      try{
        if(!SIDBUtil.hasData(lConnection,"SELECT * FROM otherdetailtbl WHERE otherordercode='"+this.getOtherOrderCode()+"'"))
          errors.addError(new SICustomError("manager.message.error.nootherdetail"));
      }catch(Exception e){
        e.printStackTrace();
        errors.addError(new SICustomError("database.execute.error"));
      }
    }
    if(!errors.isEmpty()){
      lRequest.setAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY,errors);
      return false;
    }else{
      lRequest.removeAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY);
      return true;
    } 
  }
  
  public boolean validateAdd(HttpServletRequest lRequest){
    SICustomErrors errors=new SICustomErrors();
    
    SICheckValid.checkValid(errors,"商品名",this.getCmdtyName(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"商品名",this.getCmdtyName(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,100);
    SICheckValid.checkValid(errors,"数量",this.getAmount(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"数量",this.getAmount(),SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"数量",this.getAmount(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,6);
    SICheckValid.checkValid(errors,"商品単価",this.getPrice(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"商品単価",this.getPrice(),SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"商品単価",this.getPrice(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,8);
    SICheckValid.checkValid(errors,"商品原価",this.getPurchasePrice(),SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors,"商品原価",this.getPurchasePrice(),SICheckDataConf.SICHECK_DATA_DIGIT_TYPE);
    SICheckValid.checkValid(errors,"商品原価",this.getPurchasePrice(),SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE,8);
    
    if(!errors.isEmpty()){
      lRequest.setAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY,errors);
      return false;
    }else{
      lRequest.removeAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY);
      return true;
    }
  }
  
  public void reset(Connection lConnection){
    Statement lStatement=null;
    ResultSet lResultSet=null;
    StringBuffer lSqlBuf=new StringBuffer();
    
    lSqlBuf.append("SELECT * FROM otherordertbl ");
    lSqlBuf.append("WHERE otherordercode='").append(this.getOtherOrderCode()).append("' ");
    try{
      lStatement=lConnection.createStatement();
      lResultSet=lStatement.executeQuery(lSqlBuf.toString());
      
      while(lResultSet.next()){
        this.setCustCode(lResultSet.getString("custcode"));
        this.setCustName(lResultSet.getString("custname"));
        this.setCustPronName(lResultSet.getString("custpronname"));
        this.setEMail(lResultSet.getString("email"));
        this.setOrderAddressee(lResultSet.getString("orderaddressee"));
        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.setCompanyName(lResultSet.getString("companyname"));
        this.setTel1(lResultSet.getString("tel1"));
        this.setTel2(lResultSet.getString("tel2"));
        this.setFax(lResultSet.getString("fax"));
        this.setPayMethodName(lResultSet.getString("paymethodname"));
        this.setBusinessForm(lResultSet.getString("businessform"));
        this.setOrderRoute(lResultSet.getString("orderroute"));
        this.setContactMsg(lResultSet.getString("contactmsg"));
        if(SIUtil.isNull(lResultSet.getString("branchcode"))) this.setBranchCode("XX");
        else this.setBranchCode(lResultSet.getString("branchcode"));
        if(SIUtil.isNull(lResultSet.getString("chargecode"))) this.setChargeCode("XX");
        else this.setChargeCode(lResultSet.getString("chargecode"));
        this.setAddressCode(lResultSet.getString("addresscode"));
        this.setDeliveryAddressee(lResultSet.getString("deliveryaddressee"));
        this.setDeliveryPostCode1(lResultSet.getString("deliverypostcode1"));
        this.setDeliveryPostCode2(lResultSet.getString("deliverypostcode2"));
        this.setDeliveryAddress1(lResultSet.getString("deliveryaddress1"));
        this.setDeliveryAddress2(lResultSet.getString("deliveryaddress2"));
        this.setDeliveryAddress3(lResultSet.getString("deliveryaddress3"));
        this.setDeliveryCompanyName(lResultSet.getString("deliverycompanyname"));
        this.setDeliveryTel(lResultSet.getString("deliverytel"));
        this.setCmdtySection(lResultSet.getString("cmdtysection"));
        this.setMotherCmdtyName(lResultSet.getString("mothercmdtyname"));
      }
      
    }catch(SQLException ex){
      ex.printStackTrace();
    }finally{
      SIDBUtil.close(lResultSet,lStatement);
    }
  }
  
  public void setDeliveryAddress(Connection lConnection) throws SIDBAccessException{
    Statement lStatement=null;
    ResultSet lResultSet=null;
    StringBuffer lOrderSqlBuf=new StringBuffer();//その他販売レコード情報リストを求める
    
    //SQL
    lOrderSqlBuf.append("SELECT * FROM custaddresstbl WHERE custcode = '"+this.getCustCode()+"' AND addresscode = '"+this.getAddressCode()+"'");
    
    //実行
    try{
      log.debug("getCollection:lCmdtySqlBuf="+lOrderSqlBuf.toString());
      lStatement=lConnection.createStatement();
      lResultSet=lStatement.executeQuery(lOrderSqlBuf.toString());
      
      //値の設定
      while (lResultSet.next()){
        this.setDeliveryPostCode1(lResultSet.getString("postcode1"));
        this.setDeliveryPostCode2(lResultSet.getString("postcode2"));
        this.setDeliveryAddress1(lResultSet.getString("address1"));
        this.setDeliveryAddress2(lResultSet.getString("address2"));
        this.setDeliveryAddress3(lResultSet.getString("address3"));
        this.setDeliveryCompanyName(lResultSet.getString("companyname"));
        this.setDeliveryAddressee(lResultSet.getString("deliveryaddressee"));
        this.setDeliveryTel(lResultSet.getString("tel"));
      }
    }catch(SQLException ex){
      ex.printStackTrace();
      throw new SIDBAccessException(ex);
    }finally{
      SIDBUtil.close(lResultSet,lStatement);
    }
  }
  
  /**
   * <b>getCollection</b>
   * 条件に合ったレコードを検索して、結果のコネクションを作成して、戻します。
   * @param lConnection データベースへの接続コネクション
   * @return レコードのセット
   * @throws なし
   */
  public Collection getCollection(Connection lConnection) throws SIDBAccessException{
    Statement lStatement=null;
    ResultSet lResultSet=null;
    SIOtherOrder lOrder=new SIOtherOrder();
    StringBuffer lOrderSqlBuf=new StringBuffer();//その他販売レコード情報リストを求める
    Collection lOrders=new ArrayList();
    if(SIUtil.isNull(this.getOtherOrderCode())) return lOrders;
    
    //SQL
    lOrderSqlBuf.append("SELECT * FROM otherdetailtbl WHERE otherordercode = '"+this.getOtherOrderCode()+"' ");
    lOrderSqlBuf.append("ORDER BY otherdetailcode ASC");
    
    //実行
    try{
      log.debug("getCollection:lCmdtySqlBuf="+lOrderSqlBuf.toString());
      lStatement=lConnection.createStatement();
      lResultSet=lStatement.executeQuery(lOrderSqlBuf.toString());
      
      //その他販売レコードのセットの作成
      while (lResultSet.next()){
        lOrder=new SIOtherOrder();
        lOrder.setEncode(SIConfig.SIENCODE_NONE);
        lOrder.setOtherDetailCode(lResultSet.getString("OtherDetailCode"));
        lOrder.setCmdtyName(lResultSet.getString("CmdtyName"));
        lOrder.setAmount(lResultSet.getString("Amount"));
        lOrder.setPrice(lResultSet.getString("Price"));
        lOrder.setPurchasePrice(lResultSet.getString("PurchasePrice"));
        lOrder.setComment(lResultSet.getString("Comment"));
        lOrders.add(lOrder);
      }
    }catch(SQLException ex){
      ex.printStackTrace();
      throw new SIDBAccessException(ex);
    }finally{
      SIDBUtil.close(lResultSet,lStatement);
    }
    return lOrders;
  }
}