/*
 * Created on 2003/12/18
 */
package jp.co.sint.basic;

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

import jp.co.sint.config.SIConfig;
import jp.co.sint.database.SIDBAccessException;
import jp.co.sint.database.SIDBUtil;
import jp.co.sint.tools.SIUtil;

import org.apache.log4j.Category;

/**
 * @author yamauchi
 * SIShopqa
 */
public class SIShopqa extends SIBasic {
  //ログ用のインスタンスの生成
  private static Category log = Category.getInstance(SIConfig.SILOG4J_WEBSHOP_CATEGORY_NAME);
  
  //文字コードの設定
  //////protected String encode = SIConfig.SIENCODE_SHIFT_JIS;
  //問い合せＩＤ
  private String adminQACode = "";
  //管理コード
  private String mallShopCode = "";
  //ショップコード
  private String adminName="";
  //質問タイトル
  private String qTile = "";
  //質問本文
  private String qDescription = "";
  //
  private String qSignature = "";
  
  private String qInitDateTime = "";
  
  private String aTile = "";
  
  private String aDescription = "";
  
  private String aSignature = "";
  
  private String aInitDateTime = "";
  
  //ショップ名
  private String shopNameQ="";
  //送信先ショップ名
  private String shopNameA="";
  
  //ショップ名
  private String frontShopName="";
  //部門名
  private String departName="";
  //責任社名
  private String chargeUserName="";
  
  /**
   * @return
   */
  public String getAdminQACode() {
    return adminQACode;
  }
  
  /**
   * @return
   */
  public String getMallShopCode() {
    return mallShopCode;
  }
  
  /**
   * @return
   */
  public String getAdminName() {
    return adminName;
  }
  
  /**
   * @return
   */
  public String getADescription() {
    return aDescription;
  }
  
  /**
   * @return
   */
  public String getAInitDateTime() {
    return aInitDateTime;
  }
  
  /**
   * @return
   */
  public String getASignature() {
    return aSignature;
  }
  
  /**
   * @return
   */
  public String getATile() {
    return aTile;
  }
  
  /**
   * @return
   */
  public String getQDescription() {
    return qDescription;
  }
  
  /**
   * @return
   */
  public String getQInitDateTime() {
    return qInitDateTime;
  }
  
  /**
   * @return
   */
  public String getQSignature() {
    return qSignature;
  }
  
  /**
   * @return
   */
  public String getQTile() {
    return qTile;
  }
  
  /**
   * @return
   */
  public String getShopNameA() {
    return shopNameA;
  }
  
  /**
   * @return
   */
  public String getShopNameQ() {
    return shopNameQ;
  }
  
  /**
   * @return
   */
  public String getChargeUserName() {
    return chargeUserName;
  }
  
  /**
   * @return
   */
  public String getDepartName() {
    return departName;
  }
  
  /**
   * @return
   */
  public String getFrontShopName() {
    return frontShopName;
  }
  
//----------------------------------------------//
//*******setter*********************************//
//----------------------------------------------//
  /**
   * @param string
   */
  public void setAdminQACode(String string) {
    if(string==null)string="";
    adminQACode = SIUtil.changeTo(string.trim(),this.encode);
  }
  
  /**
   * @param string
   */
  public void setMallShopCode(String string) {
    if(string==null)string="";
    mallShopCode = SIUtil.changeTo(string.trim(),this.encode);
  }
  
  /**
   * @param string
   */
  public void setAdminName(String string) {
    if(string==null)string="";
    adminName = SIUtil.changeTo(string.trim(),this.encode);
  }
  
  /**
   * @param string
   */
  public void setADescription(String string) {
    if(string==null)string="";
    aDescription = SIUtil.changeTo(string.trim(),this.encode);
  }
  
  /**
   * @param string
   */
  public void setAInitDateTime(String string) {
    if(string==null)string="";
    aInitDateTime = SIUtil.changeTo(string.trim(),this.encode);
  }
  
  /**
   * @param string
   */
  public void setASignature(String string) {
    if(string==null)string="";
    aSignature = SIUtil.changeTo(string.trim(),this.encode);
  }
  
  /**
   * @param string
   */
  public void setATile(String string) {
    if(string==null)string="";
    aTile = SIUtil.changeTo(string.trim(),this.encode);
  }
  
  /**
   * @param string
   */
  public void setQDescription(String string) {
    if(string==null)string="";
    qDescription = SIUtil.changeTo(string.trim(),this.encode);
  }
  
  /**
   * @param string
   */
  public void setQInitDateTime(String string) {
    if(string==null)string="";
    qInitDateTime = SIUtil.changeTo(string.trim(),this.encode);
  }
  
  /**
   * @param string
   */
  public void setQSignature(String string) {
    if(string==null)string="";
    qSignature = SIUtil.changeTo(string.trim(),this.encode);
  }
  
  /**
   * @param string
   */
  public void setQTile(String string) {
    if(string==null)string="";
    qTile = SIUtil.changeTo(string.trim(),this.encode);
  }
  
  /**
   * @param string
   */
  public void setShopNameQ(String string) {
    if(string==null)string="";
    shopNameQ = SIUtil.changeTo(string.trim(),this.encode);
  }
  
  /**
   * @param string
   */
  public void setShopNameA(String string) {
    if(string==null)string="";
    shopNameA = SIUtil.changeTo(string.trim(),this.encode);
  }

  /**
   * @param string
   */
  public void setChargeUserName(String string) {
    if(string==null)string="";
    chargeUserName = SIUtil.changeTo(string.trim(),this.encode);
  }
  
  /**
   * @param string
   */
  public void setDepartName(String string) {
    if(string==null)string="";
    departName = SIUtil.changeTo(string.trim(),this.encode);
  }
  
  /**
   * @param string
   */
  public void setFrontShopName(String string) {
    if(string==null)string="";
    string = SIUtil.changeTo(string.trim(),this.encode);
    
    frontShopName = string;
  }
  
  /**
   * <b>getShopCollection</b>
   * ショップリストのデータを取得します。
   * ・モール管理者の場合には、モールを除いて、全てのショップを取得します。
   * ・ショップ管理者の場合には、モールだけを取得します。
   * @param  lConnection DBへのコネクション
   * @param  lManLogin ログインするショップ管理者の情報
   * @return ショップリスト
   * @throws なし
   */
  public static Collection getShopCollection(Connection lConnection,SILogin lManLogin){
    Collection lResultColl=new ArrayList();
    StringBuffer lSqlBuf=new StringBuffer("SELECT FrontShopName||'('||MallShopCode||')',MallShopCode FROM mallShopMTbl ");
    
    if(lManLogin.isMall()){
      lSqlBuf.append("WHERE mallshopCode <>").append(SIDBUtil.SQL2Str(SIConfig.SIMALL.getMallShopCode()," "));
    }else{
      lSqlBuf.append("WHERE mallshopCode  =").append(SIDBUtil.SQL2Str(SIConfig.SIMALL.getMallShopCode()," "));
    }
    lSqlBuf.append("ORDER BY FrontShopNameKana");
    
    log.debug("getShopCollection:lSqlBuf="+lSqlBuf.toString());
    
    try {
      lResultColl=SIDBUtil.getCollection(lConnection,lSqlBuf.toString(),lManLogin.isMall());
    } catch (SIDBAccessException e) {
      e.printStackTrace();
    }
    
   return lResultColl;
  }
}