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

import java.sql.Connection;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;

import javax.servlet.http.HttpServletRequest;

import jp.co.sint.basic.SIFrontBasic;
import jp.co.sint.beans.mallmgr.UIRegReview;
import jp.co.sint.config.SIConfig;
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;
import jp.co.sint.tools.SIURLParameter;//7.1.1 ST0236 追加

import org.apache.log4j.Category;

/**
 * @version $Id: UIReviewEdit.java,v 1.0 2003/11/1 Exp $
 * @author Shionoya Yoshiaki</a>
 * <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>
 * Shionoya       2003/11/1 14:08:04  Original
 */
public class UIReviewEdit extends SIFrontBasic{
  private UIRegReview regReview=new UIRegReview();

  public UIReviewEdit(){}
  
  private static Category log=Category.getInstance(SIConfig.SILOG4J_WEBSHOP_CATEGORY_NAME);
  
  //レビューコード
  private String reviewCodeTxt="";
  
  //ショップコード
  private String shopCodeTxt="";
  
  //商品コード
  private String cmdtyCodeTxt="";
  
  //商品名
  private String cmdtyNameTxt="";
  
  //タイトル
  private String titleTxt="";
  
  //投稿者
  private String nickNameTxt="";
  
  //メール
  private String emailTxt="";
  
  //内容
  private String contentTxt="";
  
  //性別
  private String sexRdo="";
  
  //星数
  private String amountofStarsLst="";
  
  //購入フラグ
  private String buyFlgTxt="";
  
  //会員フラグ
  private String memberFlgTxt="";
  
  //ファーストレビューフラグ
  private String firstFlgTxt="";
  
  //表示・非表示フラグ
  private String dispFlgTxt="";
  
  //投稿日
  private String initDateTimeTxt="";
  
  //顧客コード
  private String custCodeTxt="";
  
  //メッセージテンプレートタイトル
  private String msgTitleTxt="";
  
  //メッセージテンプレート内容1
  private String msgContent1Txt="";
  
  //メッセージテンプレート内容2
  private String msgContent2Txt="";
  
  //メッセージテンプレート内容3
  private String msgContent3Txt="";
  
  //SQL検索のばあいに、条件文
  private String conditionSQL="";
  
  //条件のセット
  private Collection csvColl=new ArrayList();
  
  //並び順の文
  private String orderBySQL="";
  
  public void setRegReview(UIRegReview lRegReview){
    if (lRegReview==null)lRegReview=new UIRegReview();
    regReview=lRegReview;
  }
  
  public UIRegReview getRegReview(){
    return regReview;
  }
  
  //setter of レビューコード
  public void setReviewCodeTxt(String lReviewCodeTxt){
    if (SIUtil.isNull(lReviewCodeTxt)) lReviewCodeTxt="";
    this.reviewCodeTxt=SIUtil.changeTo(lReviewCodeTxt.trim(),this.encode);
  }
  
  //setter of ショップコード
  public void setShopCodeTxt(String lShopCodeTxt){
    if (SIUtil.isNull(lShopCodeTxt)) lShopCodeTxt="";
    this.shopCodeTxt=SIUtil.changeTo(lShopCodeTxt.trim(),this.encode);
  }
  
  //setter of 商品コード
  public void setCmdtyCodeTxt(String lCmdtyCodeTxt){
    if (SIUtil.isNull(lCmdtyCodeTxt)) lCmdtyCodeTxt="";
    this.cmdtyCodeTxt=SIUtil.changeTo(lCmdtyCodeTxt.trim(),this.encode);
  }
  
  //setter of 商品名
  public void setCmdtyNameTxt(String lCmdtyNameTxt){
    if (SIUtil.isNull(lCmdtyNameTxt)) lCmdtyNameTxt="";
    this.cmdtyNameTxt=SIUtil.changeTo(lCmdtyNameTxt.trim(),this.encode);
  }
  
  //setter of タイトル
  public void setTitleTxt(String lTitleTxt){
    if (SIUtil.isNull(lTitleTxt)) lTitleTxt="";
    this.titleTxt=SIUtil.changeTo(lTitleTxt.trim(),this.encode);
  }
  
  //setter of 投稿者
  public void setNickNameTxt(String lNickNameTxt){
    if (SIUtil.isNull(lNickNameTxt)) lNickNameTxt="";
    this.nickNameTxt=SIUtil.changeTo(lNickNameTxt.trim(),this.encode);
  }
  
  //setter of 顧客コード
  public void setCustCodeTxt(String lCustCodeTxt){
    if (SIUtil.isNull(lCustCodeTxt)) lCustCodeTxt="";
    this.custCodeTxt=SIUtil.changeTo(lCustCodeTxt.trim(),this.encode);
  }
  
  //setter of メール
  public void setEmailTxt(String lEmailTxt){
    if (SIUtil.isNull(lEmailTxt)) lEmailTxt="";
    this.emailTxt=SIUtil.changeTo(lEmailTxt.trim(),this.encode);
  }
  
  //setter of 内容
  public void setContentTxt(String lContentTxt){
    if (SIUtil.isNull(lContentTxt)) lContentTxt="";
    this.contentTxt=SIUtil.changeTo(lContentTxt.trim(),this.encode);
  }
  
  //setter of 性別
  public void setSexRdo(String lSexRdo){
    if (SIUtil.isNull(lSexRdo))lSexRdo="1";
    this.sexRdo=lSexRdo;
  }
  
  public String getImageFileNameOfSex(){
    int lSex=Integer.parseInt(sexRdo);
    return SIUtil.getImageFileNameOfSex(lSex);
  }
  
  //setter of 星の数
  public void setAmountofStarsLst(String lAmountofStarsLst){
    if (SIUtil.isNull(lAmountofStarsLst)) lAmountofStarsLst="";
    this.amountofStarsLst=SIUtil.changeTo(lAmountofStarsLst,this.encode);
  }
  
  public String getImageFileNameOfStars(){
    int lStars=Integer.parseInt(amountofStarsLst);
    return SIUtil.getImageFileNameOfStars(lStars);
  }
  
  //setter of 購入フラグ
  public void setBuyFlgTxt(String lBuyFlgTxt){
    if (SIUtil.isNull(lBuyFlgTxt)) lBuyFlgTxt="";
    this.buyFlgTxt=SIUtil.changeTo(lBuyFlgTxt.trim(),this.encode);
  }
  
  //setter of 会員フラグ
  public void setMemberFlgTxt(String lMemberFlgTxt){
    if (SIUtil.isNull(lMemberFlgTxt)) lMemberFlgTxt="";
    this.memberFlgTxt=SIUtil.changeTo(lMemberFlgTxt.trim(),this.encode);
  }
  
  //setter of ファーストレビューフラグ
  public void setFirstFlgTxt(String lFirstFlgTxt){
    if (SIUtil.isNull(lFirstFlgTxt)) lFirstFlgTxt="";
    this.firstFlgTxt=SIUtil.changeTo(lFirstFlgTxt.trim(),this.encode);
  }
  
  //setter of 表示フラグ
  public void setDispFlgTxt(String lDispFlgTxt){
    if (SIUtil.isNull(lDispFlgTxt)) lDispFlgTxt="";
    this.firstFlgTxt=SIUtil.changeTo(lDispFlgTxt.trim(),this.encode);
  }
  
  //setter of 投稿日
  public void setInitDateTimeTxt(String lInitDateTimeTxt){
    if (SIUtil.isNull(lInitDateTimeTxt)) lInitDateTimeTxt="";
    this.initDateTimeTxt=SIUtil.changeTo(lInitDateTimeTxt.trim(),this.encode);
  }
  
  //setter of メッセージタイトル
  public void setMsgTitleTxt(String lMsgTitleTxt){
    if (SIUtil.isNull(lMsgTitleTxt)) lMsgTitleTxt="";
    this.msgTitleTxt=SIUtil.changeTo(lMsgTitleTxt.trim(),this.encode);
  }
  
  //setter of メッセージ内容1
  public void setMsgContent1Txt(String lMsgContent1Txt){
    if (SIUtil.isNull(lMsgContent1Txt)) lMsgContent1Txt="";
    this.msgContent1Txt=SIUtil.changeTo(lMsgContent1Txt.trim(),this.encode);
  }
  
  //setter of メッセージ内容2
  public void setMsgContent2Txt(String lMsgContent2Txt){
    if (SIUtil.isNull(lMsgContent2Txt)) lMsgContent2Txt="";
    this.msgContent2Txt=SIUtil.changeTo(lMsgContent2Txt.trim(),this.encode);
  }
  
  //setter of メッセージ内容3
  public void setMsgContent3Txt(String lMsgContent3Txt){
    if (SIUtil.isNull(lMsgContent3Txt)) lMsgContent3Txt="";
    this.msgContent3Txt=SIUtil.changeTo(lMsgContent3Txt.trim(),this.encode);
  }
  
  //getter of レビューコード
  public String getReviewCodeTxt(){
    return this.reviewCodeTxt;
  }
  
  //getter of ショップコード
  public String getShopCodeTxt(){
    return this.shopCodeTxt;
  }
  
  //getter of 商品コード
  public String getCmdtyCodeTxt(){
    return this.cmdtyCodeTxt;
  }
  
  //getter of 商品名
  public String getCmdtyNameTxt(){
    return this.cmdtyNameTxt;
  }
  
  //getter of タイトル
  public String getTitleTxt(){
    return this.titleTxt;
  }
  
  //getter of 投稿者
  public String getNickNameTxt(){
    return this.nickNameTxt;
  }
  
  //getter of 顧客コード
  public String getCustCodeTxt(){
    return this.custCodeTxt;
  }
  
  //getter of メール
  public String getEmailTxt(){
    return this.emailTxt;
  }
  
  //getter of 内容
  public String getAmountofStarsLst(){
    return this.amountofStarsLst;
  }
  
  //getter of 内容
  public String getContentTxt(){
    return this.contentTxt;
  }
  
  //getter of 投稿日
  public String getInitDateTimeTxt(){
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    return df.format(this.initDateTimeTxt);
  }
  
  //getter of 性別
  public String getSexRdo(){
    return this.sexRdo;
  }
  
  //getter of 購入フラグ
  public String getBuyFlgTxt(){
    return this.buyFlgTxt;
  }
  
  //getter of 会員フラグ
  public String getMemberFlgTxt(){
    return this.memberFlgTxt;
  }
  
  //getter of ファーストレビューフラグ
  public String getFirstFlgTxt(){
    return this.firstFlgTxt;
  }
  
  //getter of 表示フラグ
  public String getDispFlgTxt(){
    return this.dispFlgTxt;
  }
  
  //getter of メッセージタイトル
  public String getMsgTitleTxt(){
    return this.msgTitleTxt;
  }
  
  //getter of メッセージ内容1
  public String getMsgContent1Txt(){
    return this.msgContent1Txt;
  }
  
  //getter of メッセージ内容2
  public String getMsgContent2Txt(){
    return this.msgContent2Txt;
  }
  
  //getter of メッセージ内容3
  public String getMsgContent3Txt(){
    return this.msgContent3Txt;
  }
  
  /**
   * <b>init</b>
   * 入力したデータを基づいて、このbeansを設定します。
   * @param request データベースへのコネンクション
   * @return true:不正なデータがある false:ない
   * @throws なし
   */
  //7.1.1 ST0236 修正 ここから
  public void init(HttpServletRequest lRequest,SIURLParameter lUrlParam){
    super.init(lRequest,lUrlParam);
    this.setEncode(SIConfig.SIENCODE_SHIFT_JIS);
    this.setShopCodeTxt((String)lUrlParam.getParam("shc"));
    this.setCmdtyCodeTxt((String)lUrlParam.getParam("cmc"));
    this.setNickNameTxt((String)lUrlParam.getParam("nickNameTxt"));
    this.setEmailTxt((String)lUrlParam.getParam("emailTxt"));
    this.setCustCodeTxt((String)lUrlParam.getParam("custCodeTxt"));
    this.setCmdtyNameTxt((String)lUrlParam.getParam("cmdtyNameTxt"));
    this.setTitleTxt((String)lUrlParam.getParam("titleTxt"));
    this.setContentTxt((String)lUrlParam.getParam("contentTxt"));
    this.setInitDateTimeTxt((String)lUrlParam.getParam("initDateTimeTxt"));
    this.setAmountofStarsLst((String)lUrlParam.getParam("amountofStarsLst"));
    this.setSexRdo((String)lUrlParam.getParam("sexRdo"));
    this.setBuyFlgTxt((String)lUrlParam.getParam("buyFlgTxt"));
    this.setFirstFlgTxt((String)lUrlParam.getParam("firstFlgTxt"));
    this.setMemberFlgTxt((String)lUrlParam.getParam("memberFlgTxt"));
    this.setDispFlgTxt((String)lUrlParam.getParam("dispFlgTxt"));
  }
  //7.1.1 ST0236 修正 ここまで
  
  /**
    * validate
    * 入力したデータをチェックします。
    * 不正なデータがある場合、エラーをオブジェクトに格納します。
    * そのオブジェクトは、エラーメッセージとして画面に表示されます。
    * @param HttpServletRequest ，Connection
    * @return true:エラーがない false:エラーが１つ以上ある
    * @throws なし
    */
  public boolean validate(HttpServletRequest lRequest, Connection lConnection) {
    lRequest.removeAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY);
    SICustomErrors errors = new SICustomErrors();
    
    SICheckValid.checkValid(errors, "ハンドルネーム", this.getNickNameTxt(), SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors, "ハンドルネーム", this.getNickNameTxt(), SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 20);
    
    SICheckValid.checkValid(errors, "メールアドレス", this.getEmailTxt(), SICheckDataConf.SICHECK_DATA_EMPTY_TYPE + SICheckDataConf.SICHECK_DATA_MAIL_TYPE);
    SICheckValid.checkValid(errors, "メールアドレス", this.getEmailTxt(), SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 128);
    
    SICheckValid.checkValid(errors, "レビュータイトル", this.getTitleTxt(), SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors, "レビュータイトル", this.getTitleTxt(), SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 100);
    
    SICheckValid.checkValid(errors, "内容", this.getContentTxt(), SICheckDataConf.SICHECK_DATA_EMPTY_TYPE);
    SICheckValid.checkValid(errors, "内容", this.getContentTxt(), SICheckDataConf.SICHECK_DATA_BYTE_LEN_WITHIN_TYPE, 4000);
    
    if (!errors.isEmpty()) lRequest.setAttribute(SIConfig.SIERROR_ATTRIBUTE_MESSAGE_KEY, errors);
    return errors.isEmpty();
  }
}
