/* $Id: OvertimeApp.java,v 1.1 2008/01/11 09:08:49 stokin Exp $
*
* Copyright (c)ARGO 21, Corporation. 2005.  All rights reserved.
 * 
 * This file is part of Nautica Workflow.
 * 
 *  Nautica Workflow is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 * 
 *  Nautica Workflow is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 * 
 *  You should have received a copy of the GNU General Public License
 *  along with Nautica Workflow; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *  
*/
package jp.co.argo21.nautica.workflow.sample.model;

import java.sql.Time;
import java.sql.Timestamp;

/**
 * 時間外労働申請を表すクラス。
 * 
 * @author  ruchida(Argo 21, Corp.)
 * @version $Revision: 1.1 $
 * @since   Nautica Workflow 0.9
 */
public class OvertimeApp extends Application {
    
    /** 勤務日 */
    private Timestamp workday;

    /** 開始予定時刻 */
    private int startHour;
    private int startMin;
    
    /** 終了予定時刻 */
    private int endHour;
    private int endMin;
    
    /** 予定時間 */
    private float overtimeHours;
    
    /** 事由 */
    private String reason;
    
    /** 代休取得予定 */
    private boolean isComp;
    private Timestamp compDay;
    
    /** 備考 */
    private String remark;
    
    
    /**
     * 勤務日を返す。
     * 
     * @return 勤務日
     */
    public Timestamp getWorkday( ) {
        return workday;
    }
    
    /**
     * 勤務日を設定する。
     * 
     * @param workday 勤務日
     */
    public void setWorkday( Timestamp workday ) {
        this.workday = workday;
    }
    
    /**
     * 開始予定時刻（時）を返す。
     * 
     * @return 開始予定時刻（時）
     */
    public int getStartHour( ) {
        return startHour;
    }
    
    /**
     * 開始予定時刻（時）を設定する。
     * 
     * @param startHour 開始予定時刻（時）
     */
    public void setStartHour( int startHour ) {
        this.startHour = startHour;
    }
    
    /**
     * 開始予定時刻（分）を返す。
     * 
     * @return 開始予定時刻（分）
     */
    public int getStartMin( ) {
        return startMin;
    }
    
    /**
     * 開始予定時刻（分）を設定する。
     * 
     * @param startMin 開始予定時刻（分）
     */
    public void setStartMin( int startMin ) {
        this.startMin = startMin;
    }

    /**
     * 開始予定時刻を返す。
     * 
     * @return 開始予定時刻
     */
    public Time getStartTime() {
        return Time.valueOf(getStartHour() +  ":" + getStartMin() + ":" + "0");
    }
    
    /**
     * 終了予定時刻（時）を返す。
     * 
     * @return 終了予定時刻（時）
     */
    public int getEndHour( ) {
        return endHour;
    }
    
    /**
     * 終了予定時刻（時）を設定する。
     * 
     * @param endHour 終了予定時刻（時）
     */
    public void setEndHour( int endHour ) {
        this.endHour = endHour;
    }
    
    /**
     * 終了予定時刻（分）を返す。
     * 
     * @return 終了予定時刻（分）
     */
    public int getEndMin( ) {
        return endMin;
    }
    
    /**
     * 終了予定時刻（分）を設定する。
     * 
     * @param endMin 終了予定時刻（分）
     */
    public void setEndMin( int endMin ) {
        this.endMin = endMin;
    }

    /**
     * 終了予定時刻を返す。
     * 
     * @return 終了予定時刻
     */
    public Time getEndTime() {
        return Time.valueOf(getEndHour() + ":" + getEndMin() + ":" + "0");
    }
    
    /**
     * 予定時間を返す。
     * 
     * @return 予定時間
     */
    public float getOvertimeHours( ) {
        return overtimeHours;
    }

    /**
     * 予定時間を設定する。
     * 
     * @param overtimeHours 予定時間
     */
    public void setOvertimeHours( float overtimeHours ) {
        this.overtimeHours = overtimeHours;
    }
    
    /**
     * 事由を返す。
     * 
     * @return 事由
     */
    public String getReason( ) {
        return reason;
    }
    
    /**
     * 事由を設定する。
     * 
     * @param reason 事由
     */
    public void setReason( String reason ) {
        this.reason = reason;
    }
    
    /**
     * 代休取得予定を返す。
     * 
     * @return 代休取得予定
     */
    public boolean isComp( ) {
        return isComp;
    }
    
    /**
     * 代休取得予定を設定する。
     * 
     * @param isComp 代休取得予定
     */
    public void setComp( boolean isComp ) {
        this.isComp = isComp;
    }
    
    /**
     * 代休取得予定日を返す。
     * 
	 * @return 代休取得予定日
	 */
	public Timestamp getCompDay( ) {
        return compDay;
    }
    
    /**
     * 代休取得予定日を設定する。
     * 
	 * @param compDay 代休取得予定日を設定する。
	 */
	public void setCompDay( Timestamp compDay ) {
        this.compDay = compDay;
    }

    /**
     * 備考を返す。
     * 
	 * @return 備考
	 */
	public String getRemark( ) {
        return remark;
    }
    
    /**
     * 備考を設定する。
     * 
	 * @param remark 備考
	 */
	public void setRemark( String remark ) {
        this.remark = remark;
    }
    
}
