package com.jasamedika.medifirst2000.vo;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.validation.constraints.NotNull;

import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.entities.StrukVerifikasi;
import com.jasamedika.medifirst2000.helper.Caption;

public class MonitoringAbsenVO extends BaseTransactionVO {
	
	@ManyToOne
	@JoinColumn(name = "PegawaiFk")
	@NotNull(message = "Pegawai Harus Diisi")
	@Caption(value = "Pegawai")
	private PegawaiVO pegawai;
	
	@Column(name = "PegawaiFk", insertable = false, updatable = false)
	private Integer pegawaiId;
	
	@ManyToOne
	@JoinColumn(name = "ShiftKerjaFk")
	@NotNull(message = "Shift Kerja Harus Diisi")
	@Caption(value = "ShiftKerja")
	private ShiftKerjaVO shiftKerja;
	
	@Column(name = "ShiftKerjaFk", insertable = false, updatable = false)
	private Integer shiftKerjaId;
	
	@Caption(value = "alasan")
	@Column(name = "alasan", nullable = true)
	private String alasan;
	
	@Caption(value = "jadwalPulang")
	@Column(name = "jadwalPulang", nullable = true)
	private String jadwalPulang;
	
	@Caption(value = "jadwalmasuk")
	@Column(name = "jadwalmasuk", nullable = true)
	private String jadwalmasuk;
	
	private String jam;
	
	@Caption(value = "absensiMasuk")
	@Column(name = "absensiMasuk", nullable = true)
	private String absensiMasuk;
	
	@Caption(value = "absensiPulang")
	@Column(name = "absensiPulang", nullable = true)
	private String absensiPulang;
	
	@Caption(value = "terlambat")
	@Column(name = "terlambat", nullable = true)
	private Long terlambat;
	
	@Caption(value = "pulangAwal")
	@Column(name = "pulangAwal", nullable = true)
	private Long pulangAwal;
	
	@Caption(value = "jamEfektif")
	@Column(name = "jamEfektif", nullable = true)
	private String jamEfektif;
	
	@Caption(value = "tanggal")
	@Column(name = "tanggal", nullable = false)
	
	//Untuk absensi verifikasi
	private StrukVerifikasiVO strukVerifikasi;
	
	private String verifikasiUnitKerjaFK;
	
	private StrukVerifikasiVO strukVerifikasiSdm;
	
	private String verifikasiSdmFK;
	
	private String tanggal;
	
	private Long kelebihanJamKerja;
	
	private Integer verifiedLembur;
	

	public PegawaiVO getPegawai() {
		return pegawai;
	}

	public void setPegawai(PegawaiVO pegawai) {
		this.pegawai = pegawai;
	}

	public Integer getPegawaiId() {
		return pegawaiId;
	}

	public void setPegawaiId(Integer pegawaiId) {
		this.pegawaiId = pegawaiId;
	}

	public ShiftKerjaVO getShiftKerja() {
		return shiftKerja;
	}

	public void setShiftKerja(ShiftKerjaVO shiftKerja) {
		this.shiftKerja = shiftKerja;
	}

	public Integer getShiftKerjaId() {
		return shiftKerjaId;
	}

	public void setShiftKerjaId(Integer shiftKerjaId) {
		this.shiftKerjaId = shiftKerjaId;
	}

	public String getAlasan() {
		return alasan;
	}

	public void setAlasan(String alasan) {
		this.alasan = alasan;
	}

	public String getJadwalPulang() {
		return jadwalPulang;
	}

	public void setJadwalPulang(String jadwalPulang) {
		this.jadwalPulang = jadwalPulang;
	}

	public String getJadwalmasuk() {
		return jadwalmasuk;
	}

	public void setJadwalmasuk(String jadwalmasuk) {
		this.jadwalmasuk = jadwalmasuk;
	}

	public String getAbsensiMasuk() {
		return absensiMasuk;
	}

	public void setAbsensiMasuk(String absensiMasuk) {
		this.absensiMasuk = absensiMasuk;
	}

	public String getAbsensiPulang() {
		return absensiPulang;
	}

	public void setAbsensiPulang(String absensiPulang) {
		this.absensiPulang = absensiPulang;
	}

	public Long getTerlambat() {
		return terlambat;
	}

	public void setTerlambat(Long terlambat) {
		this.terlambat = terlambat;
	}

	public Long getPulangAwal() {
		return pulangAwal;
	}

	public void setPulangAwal(Long pulangAwal) {
		this.pulangAwal = pulangAwal;
	}

	public String getJamEfektif() {
		return jamEfektif;
	}

	public void setJamEfektif(String jamEfektif) {
		this.jamEfektif = jamEfektif;
	}

	public String getTanggal() {
		return tanggal;
	}

	public void setTanggal(String tanggal) {
		this.tanggal = tanggal;
	}

	public StrukVerifikasiVO getStrukVerifikasi() {
		return strukVerifikasi;
	}

	public void setStrukVerifikasi(StrukVerifikasiVO strukVerifikasi) {
		this.strukVerifikasi = strukVerifikasi;
	}

	public String getVerifikasiUnitKerjaFK() {
		return verifikasiUnitKerjaFK;
	}

	public void setVerifikasiUnitKerjaFK(String verifikasiUnitKerjaFK) {
		this.verifikasiUnitKerjaFK = verifikasiUnitKerjaFK;
	}

	public StrukVerifikasiVO getStrukVerifikasiSdm() {
		return strukVerifikasiSdm;
	}

	public void setStrukVerifikasiSdm(StrukVerifikasiVO strukVerifikasiSdm) {
		this.strukVerifikasiSdm = strukVerifikasiSdm;
	}

	public String getVerifikasiSdmFK() {
		return verifikasiSdmFK;
	}

	public void setVerifikasiSdmFK(String verifikasiSdmFK) {
		this.verifikasiSdmFK = verifikasiSdmFK;
	}

	public Long getKelebihanJamKerja() {
		return kelebihanJamKerja;
	}

	public void setKelebihanJamKerja(Long kelebihanJamKerja) {
		this.kelebihanJamKerja = kelebihanJamKerja;
	}

	public Integer getVerifiedLembur() {
		return verifiedLembur;
	}

	public void setVerifiedLembur(Integer verifiedLembur) {
		this.verifiedLembur = verifiedLembur;
	}

	public String getJam() {
		return jam;
	}

	public void setJam(String jam) {
		this.jam = jam;
	}

 
}
