package jp.mosp.payroll.common.vo;

import java.util.Iterator;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import jp.mosp.payroll.base.PayrollConst;
import jp.mosp.payroll.base.PayrollVo;
import jp.mosp.payroll.dto.MImportDto;

public class ImportMasterListVo extends PayrollVo {
	
	private static final long	serialVersionUID	= -3093345238424415014L;
	
	// 定数
	public static final int		SEARCH_OFF			= 0;
	public static final int		SEARCH_ON			= 1;
	
	// パラメータ名
	public static final String	PRM_TXT_I_CODE		= "txtICode";
	public static final String	PRM_TXT_I_NAME		= "txtIName";
	public static final String	PRM_PLT_I_TABLE		= "pltITable";
	
	// フィールド
	private String[]			aryImportCmd;
	private String[]			aryICode;
	private String[]			aryIName;
	private String[]			aryITable;
	private String				txtICode;
	private String				txtIName;
	private String				pltITable;
	
	// プルダウンリスト
	public String[][]			aryPltITable;
	
	// ソートキー
	public final String			KEY_I_CODE			= "keyICode";
	public final String			KEY_I_NAME			= "keyIName";
	public final String			KEY_I_TABLE			= "keyITable";
	
	// モード(0：検索なし、1：検索あり)
	private int					searchmode;
	

	/**
	 * コンストラクタ
	 */
	public ImportMasterListVo() {
		super();
		txtICode = "";
		txtIName = "";
		pltITable = "";
		aryImportCmd = new String[0];
		aryICode = new String[0];
		aryIName = new String[0];
		aryITable = new String[0];
		setFormerKey(KEY_I_CODE);
	}
	
	/**
	 * サブタイトルを設定する。
	 */
	@Override
	protected void setSubTitle() {
		super.setSubTitle();
		subTitle = getName("P_PAYMENT") + getName("P_IMPORT");
		addAryMenu("P1001", getName("P_PAYMENT") + getName("P_CALCULATE") + getName("C_MENU") + getName("C_TO"));
	}
	
	/**
	 * パラメータ設定
	 * @param request リクエスト
	 */
	public void setParams(HttpServletRequest request) {
		txtICode = request.getParameter(PRM_TXT_I_CODE);
		txtIName = request.getParameter(PRM_TXT_I_NAME);
		pltITable = request.getParameter(PRM_PLT_I_TABLE);
	}
	
	/**
	 * フィールド設定
	 * @param listImport インポートリスト
	 */
	public void setFields(List listImport) {
		// リストの設定
		list = listImport;
		// データ総数の取得
		count = listImport.size();
		// 配列の初期化
		aryImportCmd = new String[count];
		aryICode = new String[count];
		aryIName = new String[count];
		aryITable = new String[count];
		// データの設定
		int i = 0;
		Iterator it = listImport.iterator();
		while (it.hasNext()) {
			MImportDto dto = (MImportDto)it.next();
			if (dto.getITable().equals(PayrollConst.CODE_IMPORT_TABLE_PI_PAYMENT)) {
				aryImportCmd[i] = "P9040"; /* 給与データインポート */
			} else if (dto.getITable().equals(PayrollConst.CODE_IMPORT_TABLE_M_SYUKKINBO)) {
				aryImportCmd[i] = "P9050"; /* 勤怠データインポート */
			} else if (dto.getITable().equals(PayrollConst.CODE_IMPORT_TABLCT_TIMECARD)) {
				aryImportCmd[i] = "P9060"; /* タイムカードデータインポート */
			}
			aryICode[i] = escapeHTML(dto.getICode());
			aryIName[i] = escapeHTML(dto.getIName());
			aryITable[i] = escapeHTML(getCodeName(dto.getITable(), aryPltITable));
			i++;
		}
	}
	
	/**
	 * JavaScript設定
	 * @param cls 情報取得クラス
	 * @throws IllegalAccessException
	 */
	@Override
	public String getDirectJs(Class cls) throws IllegalAccessException {
		StringBuffer sb = new StringBuffer();
		sb.append(super.getDirectJs(cls));
		return sb.toString();
	}
	
	// アクセサメソッド
	public String[] getAryImportCmd() {
		return aryImportCmd.clone();
	}
	
	public String[] getEscAryICode() {
		return aryICode.clone();
	}
	
	public String[] getEscAryIName() {
		return aryIName.clone();
	}
	
	public String[] getEscAryITable() {
		return aryITable.clone();
	}
	
	public String getTxtICode() {
		return txtICode;
	}
	
	public String getTxtIName() {
		return txtIName;
	}
	
	public String getPltITable() {
		return pltITable;
	}
	
	public String getEscTxtICode() {
		return escapeHTML(txtICode);
	}
	
	public String getEscTxtIName() {
		return escapeHTML(txtIName);
	}
	
	public String getEscPltITable() {
		return escapeHTML(pltITable);
	}
	
	public void setSearchmode(int searchmode) {
		this.searchmode = searchmode;
	}
	
	public int getSearchmode() {
		return searchmode;
	}
	
}
