/*******************************************************************************
* Copyright (c) 2012 Dmitry Tikhomirov.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
*
* Contributors:
* Dmitry Tikhomirov - initial API and implementation
******************************************************************************/
package org.opensheet.shared.model;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.Max;
import javax.validation.constraints.Size;
import com.extjs.gxt.ui.client.data.BeanModelTag;
@Entity
@Table(name= "hour")
public class Hour implements Serializable, BeanModelTag{
/**
*
*/
private static final long serialVersionUID = -892772512055946252L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "person", referencedColumnName = "id",nullable= false)
private User user;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "assignment", referencedColumnName = "id", nullable= false)
private Assignment assignment;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "task", referencedColumnName = "id", nullable= false)
private Assignment task;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "department", referencedColumnName = "id")
private Department department;
@Column(nullable= false)
@Temporal(value=TemporalType.DATE)
private Date date;
@Temporal(value=TemporalType.DATE)
private Date started;
@Temporal(value=TemporalType.DATE)
private Date updated;
@Column(nullable= false)
private Integer hour;
@Size(max=1024)
@Column(nullable = true,length = 1024)
private String note;
private Integer inratesum;
private Integer extratesum;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "branch", referencedColumnName = "id")
private Branch branch;
public Hour(){
}
public Hour(User user,Assignment assignment,Assignment task,Date date){
this.setAssignment(assignment);
this.setTask(task);
this.setUser(user);
this.setHour(hour);
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
// @OneToOne(fetch=FetchType.LAZY,optional=false)
public Assignment getAssignment() {
return assignment;
}
public void setAssignment(Assignment assignment) {
this.assignment = assignment;
}
// @OneToOne(fetch=FetchType.LAZY,optional=false)
public Assignment getTask() {
return task;
}
public void setTask(Assignment task) {
this.task = task;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public Integer getHour() {
return hour;
}
public void setHour(Integer hour) {
this.hour = hour;
}
public void setUpdated(Date updated) {
this.updated = updated;
}
public Date getUpdated() {
return updated;
}
public void setStarted(Date started) {
this.started = started;
}
public Date getStarted() {
return started;
}
public void setDepartment(Department department) {
this.department = department;
}
public Department getDepartment() {
return department;
}
public Integer getInratesum() {
return inratesum;
}
public void setInratesum(Integer inratesum) {
this.inratesum = inratesum;
}
public Integer getExtratesum() {
return extratesum;
}
public void setExtratesum(Integer extratesum) {
this.extratesum = extratesum;
}
public Branch getBranch() {
return branch;
}
public void setBranch(Branch branch) {
this.branch = branch;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
}