/**
 * 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 java.util.ArrayList;
import java.util.Collection;

import javax.servlet.http.HttpServletRequest;

import jp.co.sint.basic.SILogin;
import jp.co.sint.basic.SIReview;
import jp.co.sint.config.SIConfig;
import jp.co.sint.database.SIDBUtil;
import jp.co.sint.tools.SIHTMLUtil;
import jp.co.sint.tools.SIURLParameter;//7.1.1 ST0236 追加

import org.apache.log4j.Category;

/**
 * @version $Id : UIReviewPointHist.java,v 1.0 2003/01/29 Exp $
 * @author      : Shionoya Yoshiaki
 * <br>Description : レビューのポイント履歴に対する管理beans
 * <p>History</p>
 * <p>Author                        Date                      Reason</p>
 * ============&nbsp;&nbsp;&nbsp;==========&nbsp;&nbsp;===========================<br>
 * Shionoya Yoshiaki       2004/01/29          Original
 */

public class UIReviewPointHist extends SIReview{
  //ログ用のインスタンスの生成
  private static Category log=Category.getInstance(SIConfig.SILOG4J_WEBSHOP_CATEGORY_NAME);
  
  public UIReviewPointHist(HttpServletRequest lRequest,SIURLParameter lUrlParam){//7.1.1 ST0236 修正
    init(lRequest,lUrlParam);//7.1.1 ST0236 修正
  }
  
  /**
   * UIReviewPointHist
   * コンストラクタ
   * @param なし
   * @return なし
   * @throws なし
   */
  public UIReviewPointHist() {}
  
  /**
   * <b>getCollection</b>
   * レビューに加算したポイント履歴のコレクションを取得します。
   * @param lRequest リクエスト
   * @param lConnection コネクション
   * @param lUrlParam
   * @return collection
   * @throws なし
   */
  public Collection getCollection(HttpServletRequest lRequest, Connection lConnection,SIURLParameter lUrlParam){//7.1.1 ST0236 修正
    SILogin lLogin=SIHTMLUtil.getLogin(lRequest);
    Collection lReviewPointHistColl=new ArrayList();
    SIReview lReview=new SIReview();
    Statement lStatement=null;
    ResultSet lResultSet=null;
    
    this.setReviewCode((String)lUrlParam.getParam("rviewCode"));//7.1.1 ST0236 修正
    
    StringBuffer lSqlBuf=new StringBuffer();
    lSqlBuf.append("SELECT MallShopCode, CustCode, EnableFlg, IssueDateTime, PointOfIssue ");
    lSqlBuf.append("FROM PointManMTbl WHERE ReviewCode= ");
    lSqlBuf.append(SIDBUtil.SQL2Str((String)lUrlParam.getParam("reviewCode")));//7.1.1 ST0236 修正
    lSqlBuf.append(" AND EnableFlg IN ('0','1')");
    if (lLogin.isShop()){
      lSqlBuf.append(" AND MallShopCode=").append(SIDBUtil.SQL2Str(lLogin.getMallShopCode()));
    }
    lSqlBuf.append(" ORDER BY IssueDateTime");
    log.debug("getCollection:lSqlBuf ="+lSqlBuf.toString() );
    
    //コネンクションの作成
    try {
    lStatement=lConnection.createStatement();
    lResultSet=lStatement.executeQuery(lSqlBuf.toString());
    while (lResultSet.next()){
      lReview=new SIReview();
      lReview.setEncode(SIConfig.SIENCODE_NONE);
      lReview.setPointShopCode(lResultSet.getString("MallShopCode"));
      lReview.setPointCustCode(lResultSet.getString("CustCode"));
      lReview.setEnableFlg(lResultSet.getString("EnableFlg"));
      lReview.setIssueDateTime(SIDBUtil.getDateTime(lResultSet.getTimestamp("IssueDateTime")));
      lReview.setIssuePoint(lResultSet.getString("PointOfIssue"));
      lReviewPointHistColl.add(lReview);
    }
    return lReviewPointHistColl;
    } catch (SQLException e) {
    e.printStackTrace();
    }finally{
      SIDBUtil.close( lStatement,lResultSet);
    }
    return null;
  }
}