/*
このファイルの中身は、NTT オープンソースライセンス　バージョン 1.0（「本
契約」という）の適用を受けます。
本契約を遵守しない限り、このファイルを使用してはなりません。
本契約のコピーは、次のＵＲＬから入手できます。
【配布サイトのURL】 http://www.oss.ecl.ntt.co.jp/lms/

本契約に基づき頒布されるソフトウェアは、現状のまま、明示又は黙示のあらゆ
る種類の保証なしで、頒布されます。本契約に基づく権利及び制限を律する特定
の文言については、本契約を参照してください。

「オリジナルコード」は、 NTT Cyber Space Laboratories Code です。 
「オリジナルコード」の「初期開発者」は、日本電信電話株式会社です。  
日本電信電話株式会社により創作された部分は、Copyright (C) 2004 
日本電信電話株式会社 です。
全ての権利が留保されます。 
「コントリビュータ」：_____________________________________ 


The contents of this file are subject to the NTT Opensource License
Version 1.0 (the License); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
【配布サイトのURL】 http://www.oss.ecl.ntt.co.jp/lms/

Software distributed under the License is distributed on an AS IS
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
License for the specific language governing rights and limitations
under the License.

The Original Code is NTT Cyber Space Laboratories Code .

The Initial Developer of the Original Code is NIPPON TELEGRAPH AND 
TELEPHONE CORPORATION.
Portions created by the NIPPON TELEGRAPH AND TELEPHONE CORPORATION 
are Copyright (C) 2004 NIPPON TELEGRAPH AND TELEPHONE CORPORATION. 
All Rights Reserved.

Contributor(s) ______________________________________.
*/

//
//	CafeteriaListLOAssignRequest個別テーブルデータ保持クラス
//			変更履歴
//				2005.12.19	新規作成	大賀俊彦
//
package jp.co.ntt.lms.lo.Cafeteria;

import java.util.Date;

import jp.co.ntt.lms.xmo.util.XMODate;

/**
 * CafeteriaListLOAssignRequest　個別テーブルデータ保持クラスです。<BR>
 * 直列化のためにjava.io.Serializableインタフェースを実装します。
 */
public class CafeteriaListLOAssignRequestData implements java.io.Serializable, CafeteriaLoTable {

	/** 却下ステータス */
	public static final String CAFETERIA_STATUS_REJECT = "0";
	/** 申請中ステータス */
	public static final String CAFETERIA_STATUS_APPLY = "1";
	/** １次承認済みステータス */
	public static final String CAFETERIA_STATUS_PRIMARYAPPROVE = "2";
	/** 承認済みステータス */
	public static final String CAFETERIA_STATUS_APPROVE = "3";
	/** アサイン済みステータス */
	public static final String CAFETERIA_STATUS_ASSIGN = "4";
	
	
	/** AssignRequestIDを保持します */
	private String mstrAssignRequestID = "";

	/** UserIDを保持します */
	private String mstrUserID = "";

	/** LOIDを保持します */
	private String mstrLOID = "";

	/** CAFETERIALIST_IDを保持します */
	private String mstrCafeteriaListLOID = "";

	/** Statusを保持します */
	private String mstrStatus = "";

	/** RequestDate を保持します */
	private String mstrRequestDate = "";

	/** PrimaryApproveDateを保持します */
	private String mstrPrimaryApproveDate = "";

	/** PrimaryApproverを保持します。 */
	private String mstrPrimaryApprover = "";

	/** ApproveDateを保持します */
	private String mstrApproveDate = "";

	/** Approverを保持します。 */
	private String mstrApprover = "";

	/** AssignDateを保持します */
	private String mstrAssignDate = "";

	/** Assignerを保持します。 */
	private String mstrAssigner = "";

	/** RejectDateを保持します。 */
	private String mstrRejectDate = "";

	/** Rejecterを保持します。 */
	private String mstrRejecter = "";
	
	
	/**
	 * 
	 */
	public CafeteriaListLOAssignRequestData() {
		super();
		// TODO 自動生成されたコンストラクター・スタブ
	}
	
	/**
	 * 初めて申請するときにパラメータをセットしてコールします。
	 * 申請日付も自動的にセットします。
	 * @param strUserID
	 * @param strLOID
	 * @param strCafeteriaListLOID
	 */
	public void newApply( String strUserID, String strLOID, String strCafeteriaListLOID )
	throws Exception
	{
		mstrUserID = strUserID;
		mstrLOID = strLOID;
		mstrCafeteriaListLOID = strCafeteriaListLOID;
		mstrStatus = CAFETERIA_STATUS_APPLY;
		mstrRequestDate = XMODate.parseTime( new Date() );
		mstrPrimaryApproveDate = "";
		mstrPrimaryApprover = "";
		mstrApproveDate = "";
		mstrApprover = "";
		mstrAssignDate = "";
		mstrAssigner = "";
		mstrRejectDate = "";
		mstrRejecter = "";
	}

	/**
	 * 再度申請するときにコールします。
	 * 申請日付を再セットします。
	 */
	public void reApply()
	{
		mstrRequestDate = XMODate.parseTime( new Date() );
		mstrStatus = CAFETERIA_STATUS_APPLY;

		mstrPrimaryApproveDate = "";
		mstrPrimaryApprover = "";
		mstrApproveDate = "";
		mstrApprover = "";
		mstrAssignDate = "";
		mstrAssigner = "";
		mstrRejectDate = "";
		mstrRejecter = "";
	}

	/**
	 * １次承認するときに１次承認者を渡してコールします。
	 * １次承認日付を自動的にセットします。
	 * @param strPrimaryApprover 却下者
	 */
	public void primaryApprove( String strPrimaryApprover )
	{
		mstrPrimaryApprover = strPrimaryApprover;
		mstrPrimaryApproveDate = XMODate.parseTime( new Date() );
		mstrStatus = CAFETERIA_STATUS_PRIMARYAPPROVE;

		mstrApproveDate = "";
		mstrApprover = "";
		mstrAssignDate = "";
		mstrAssigner = "";
		mstrRejectDate = "";
		mstrRejecter = "";
	}

	/**
	 * 承認するときに承認者を渡してコールします。
	 * 承認日付を自動的にセットします。
	 * @param strApprover 却下者
	 */
	public void approve( String strApprover )
	{
		mstrApprover = strApprover;
		mstrApproveDate = XMODate.parseTime( new Date() );
		mstrStatus = CAFETERIA_STATUS_APPROVE;

		mstrAssignDate = "";
		mstrAssigner = "";
		mstrRejectDate = "";
		mstrRejecter = "";
	}

	/**
	 * アサインするときにアサイン者を渡してコールします。
	 * アサイン日付を自動的にセットします。
	 * @param strApprover 却下者
	 */
	public void assign( String strAssigner )
	{
		mstrAssigner = strAssigner;
		mstrAssignDate = XMODate.parseTime( new Date() );
		mstrStatus = CAFETERIA_STATUS_ASSIGN;

		mstrRejectDate = "";
		mstrRejecter = "";
	}


	/**
	 * 却下するときに却下者を渡してコールします。
	 * 却下日付を自動的にセットし、却下データ以外の可変部分を初期化します。
	 * @param strRejecter 却下者
	 */
	public void reject( String strRejecter )
	{
		mstrRejecter = strRejecter;
		mstrRejectDate = XMODate.parseTime( new Date() );
		mstrStatus = CAFETERIA_STATUS_REJECT;

		mstrPrimaryApproveDate = "";
		mstrPrimaryApprover = "";
		mstrApproveDate = "";
		mstrApprover = "";
		mstrAssignDate = "";
		mstrAssigner = "";
	}

	/**
	 * LOIDを設定します
	 * @param String LOID
	 */
	public void setLOID( String strLOID )
	{
		mstrLOID = strLOID;
	}
	
	/**
	 * LOIDを設定します
	 * @param String LOID
	 */
	public String getLOID()
	{
		return mstrLOID;
	}

	/**
	 * CAFETERIA_IDを設定します
	 * @param String LOのURL
	 */
	public void setCafeteriaListLOID( String strCafeteriaListLOID )
	{
		mstrCafeteriaListLOID = strCafeteriaListLOID;
	}
	
	/**
	 * CafeteriaIDを取得します
	 * @return String CafeteriaID
	 */
	public String getCafeteriaListLOID()
	{
		return mstrCafeteriaListLOID;
	}


	/**
	 * @return mstrPrimaryApproveDate を戻します。
	 */
	public String getPrimaryApproveDate() {
		return mstrPrimaryApproveDate;
	}
	/**
	 * @param mstrPrimaryApproveDate mstrPrimaryApproveDate を設定。
	 */
	public void setPrimaryApproveDate(String mstrPrimaryApproveDate) {
		this.mstrPrimaryApproveDate = mstrPrimaryApproveDate;
	}
	/**
	 * @return mstrPrimaryApproveer を戻します。
	 */
	public String getPrimaryApprover() {
		return mstrPrimaryApprover;
	}
	/**
	 * @param mstrPrimaryApprover mstrPrimaryApprover を設定。
	 */
	public void setPrimaryApprover(String mstrPrimaryApprover) {
		this.mstrPrimaryApprover = mstrPrimaryApprover;
	}
	/**
	 * @return mstrApproveDate を戻します。
	 */
	public String getApproveDate() {
		return mstrApproveDate;
	}
	/**
	 * @param mstrApproveDate mstrApproveDate を設定。
	 */
	public void setApproveDate(String mstrApproveDate) {
		this.mstrApproveDate = mstrApproveDate;
	}
	/**
	 * @return mstrApproveer を戻します。
	 */
	public String getApprover() {
		return mstrApprover;
	}
	/**
	 * @param mstrApprover mstrApprover を設定。
	 */
	public void setApprover(String mstrApprover) {
		this.mstrApprover = mstrApprover;
	}
	/**
	 * @return mstrAssignDate を戻します。
	 */
	public String getAssignDate() {
		return mstrAssignDate;
	}
	/**
	 * @param mstrAssignDate mstrAssignDate を設定。
	 */
	public void setAssignDate(String mstrAssignDate) {
		this.mstrAssignDate = mstrAssignDate;
	}
	/**
	 * @return mstrAssigner を戻します。
	 */
	public String getAssigner() {
		return mstrAssigner;
	}
	/**
	 * @param mstrAssigner mstrAssigner を設定。
	 */
	public void setAssigner(String mstrAssigner) {
		this.mstrAssigner = mstrAssigner;
	}
	/**
	 * @return mstrAssignRequestID を戻します。
	 */
	public String getAssignRequestID() {
		return mstrAssignRequestID;
	}
	/**
	 * @param mstrAssignRequestID mstrAssignRequestID を設定。
	 */
	public void setAssignRequestID(String mstrAssignRequestID) {
		this.mstrAssignRequestID = mstrAssignRequestID;
	}
	/**
	 * @return mstrRejectDate を戻します。
	 */
	public String getRejectDate() {
		return mstrRejectDate;
	}
	/**
	 * @param mstrRejectDate mstrRejectDate を設定。
	 */
	public void setRejectDate(String mstrRejectDate) {
		this.mstrRejectDate = mstrRejectDate;
	}
	/**
	 * @return mstrRejecter を戻します。
	 */
	public String getRejecter() {
		return mstrRejecter;
	}
	/**
	 * @param mstrRejecter mstrRejecter を設定。
	 */
	public void setRejecter(String mstrRejecter) {
		this.mstrRejecter = mstrRejecter;
	}
	/**
	 * @return mstrRequestDate を戻します。
	 */
	public String getRequestDate() {
		return mstrRequestDate;
	}
	/**
	 * @param mstrRequestDate mstrRequestDate を設定。
	 */
	public void setRequestDate(String mstrRequestDate) {
		this.mstrRequestDate = mstrRequestDate;
	}
	/**
	 * @return mstrStatus を戻します。
	 */
	public String getStatus() {
		return mstrStatus;
	}
	/**
	 * @param mstrStatus mstrStatus を設定。
	 */
	public void setStatus(String mstrStatus) {
		this.mstrStatus = mstrStatus;
	}
	/**
	 * @return mstrUserID を戻します。
	 */
	public String getUserID() {
		return mstrUserID;
	}
	/**
	 * @param mstrUserID mstrUserID を設定。
	 */
	public void setUserID(String mstrUserID) {
		this.mstrUserID = mstrUserID;
	}
}