package com.jasamedika.medifirst2000.vo;

import java.util.Date;

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

import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.entities.Eselon;
import com.jasamedika.medifirst2000.entities.Jabatan;
import com.jasamedika.medifirst2000.entities.JenisHukuman;
import com.jasamedika.medifirst2000.entities.JenisKeputusan;
import com.jasamedika.medifirst2000.entities.Pangkat;
import com.jasamedika.medifirst2000.entities.Pegawai;
import com.jasamedika.medifirst2000.entities.PlanningPegawaiStatus;
import com.jasamedika.medifirst2000.entities.Ruangan;
import com.jasamedika.medifirst2000.entities.SuratKeputusan;
import com.jasamedika.medifirst2000.helper.Caption;

public class PlanningPegawaiMuSaReVO extends BaseTransactionVO{

	
	@Caption(value="No Planning")
	@NotNull(message="No Planning tidak boleh kosong")
	private String noPlanning;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Pegawai")
	private PegawaiVO pegawai;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Pengusul")
	private PegawaiVO pengusul;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Ruangan Before")
	private RuanganVO ruanganBefore;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Ruangan Plan")
	private RuanganVO ruanganPlan;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Jabatan Struktural Before")
	private JabatanVO jabatanStrukturalBefore;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Jabatan Struktural Plan")
	private JabatanVO jabatanStrukturalPlan;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Jabatan Fungsional Before")
	private JabatanVO jabatanFungsionalBefore;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Jabatan Fungsional Plan")
	private JabatanVO jabatanFungsionalPlan;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Jabatan Internal Before")
	private JabatanVO jabatanInternalBefore;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Jabatan Internal Plan")
	private JabatanVO jabatanInternalPlan;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Eselon Before")
	private EselonVO eselonBefore;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Eselon Plan")
	private EselonVO eselonPlan;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Pangkat Before")
	private GolonganVO pangkatBefore;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Pangkat Plan")
	private GolonganVO pangkatPlan;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Jenis Hukuman Plan")
	private JenisHukumanVO jenisHukumanPlan;
	
	@Caption(value="Deskripsi Mutasi Sanksi Resign Plan")
	private String deskripsiMutasiSanksiResignPlan;
	
	@Caption(value="Keterangan Lainya")
	private String keteranganLainya;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Surat Keputusan Before")
	private SuratKeputusanVO suratKeputusanBefore;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object No SK Before")
	private SuratKeputusanVO noSkBefore;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object No SK")
	private SuratKeputusanVO noSk;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Ruangan Exec")
	private RuanganVO ruanganExec;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Jabatan Struktural Exec")
	private JabatanVO jabatanStrukturalExec;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Jabatan Fungsional Exec")
	private JabatanVO jabatanFungsionalExec;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Jabatan Internal Exec")
	private JabatanVO jabatanInternalExec;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Eselon Exec")
	private EselonVO eselonExec;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Pangkat Exec")
	private GolonganVO pangkatExec;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Jenis Hukuman Exec")
	private JenisHukumanVO jenisHukumanExec;
	
	@Caption(value="Deskripsi Mutasi Sanksi Resign Exec")
	private String deskripsiMutasiSanksiResignExec;
	
	@Caption(value="Keterangan Lainya Exec")
	private String keteranganLainyaExec;
	
	@Caption(value="Tgl Pengajuan")
	private Date tglPengajuan;
	
	@Caption(value="Tgl Planning")
	private Date tglPlanning;
	
	@Caption(value="Tgl Keputusan")
	private Date tglKeputusan;
	
	@Caption(value="Approval")
	private Integer approvalStatus;
	
	@Caption(value="Status Musare")
	private Integer statusMusare;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Object Planning Pegawai Status")
	private PlanningPegawaiStatusVO planningPegawaiStatus;
	
	//---------------------------------------- SURAT KEPUTUSAN ------------------------------------------
	
	@ManyToOne(fetch = FetchType.LAZY)
	@Caption(value = "Object Keputusan")
	private JenisKeputusanVO jenisKeputusan;
	
	@Caption(value="Tgl SK/SPMT")
	private Date tglSkSpmt;
	
	@Caption(value="No SK Temp")
	private String noSkTemp;
	
	@Caption(value="Uraian")
	private String uraian;
	
	@Caption(value="SK Dari")
	private String skDari;
	
	@Caption(value="Tgl TMT/SPMT")
	private Date tglTmtSpmt;
	
	@Caption(value="Tgl Berlaku Akhir")
	private Date tglBerlakuAkhir;

	public String getNoPlanning() {
		return noPlanning;
	}

	public void setNoPlanning(String noPlanning) {
		this.noPlanning = noPlanning;
	}

	public PegawaiVO getPegawai() {
		return pegawai;
	}

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

	public PegawaiVO getPengusul() {
		return pengusul;
	}

	public void setPengusul(PegawaiVO pengusul) {
		this.pengusul = pengusul;
	}

	public RuanganVO getRuanganBefore() {
		return ruanganBefore;
	}

	public void setRuanganBefore(RuanganVO ruanganBefore) {
		this.ruanganBefore = ruanganBefore;
	}

	public RuanganVO getRuanganPlan() {
		return ruanganPlan;
	}

	public void setRuanganPlan(RuanganVO ruanganPlan) {
		this.ruanganPlan = ruanganPlan;
	}

	public JabatanVO getJabatanStrukturalBefore() {
		return jabatanStrukturalBefore;
	}

	public void setJabatanStrukturalBefore(JabatanVO jabatanStrukturalBefore) {
		this.jabatanStrukturalBefore = jabatanStrukturalBefore;
	}

	public JabatanVO getJabatanStrukturalPlan() {
		return jabatanStrukturalPlan;
	}

	public void setJabatanStrukturalPlan(JabatanVO jabatanStrukturalPlan) {
		this.jabatanStrukturalPlan = jabatanStrukturalPlan;
	}

	public JabatanVO getJabatanFungsionalBefore() {
		return jabatanFungsionalBefore;
	}

	public void setJabatanFungsionalBefore(JabatanVO jabatanFungsionalBefore) {
		this.jabatanFungsionalBefore = jabatanFungsionalBefore;
	}

	public JabatanVO getJabatanFungsionalPlan() {
		return jabatanFungsionalPlan;
	}

	public void setJabatanFungsionalPlan(JabatanVO jabatanFungsionalPlan) {
		this.jabatanFungsionalPlan = jabatanFungsionalPlan;
	}

	public JabatanVO getJabatanInternalBefore() {
		return jabatanInternalBefore;
	}

	public void setJabatanInternalBefore(JabatanVO jabatanInternalBefore) {
		this.jabatanInternalBefore = jabatanInternalBefore;
	}

	public JabatanVO getJabatanInternalPlan() {
		return jabatanInternalPlan;
	}

	public void setJabatanInternalPlan(JabatanVO jabatanInternalPlan) {
		this.jabatanInternalPlan = jabatanInternalPlan;
	}

	public EselonVO getEselonBefore() {
		return eselonBefore;
	}

	public void setEselonBefore(EselonVO eselonBefore) {
		this.eselonBefore = eselonBefore;
	}

	public EselonVO getEselonPlan() {
		return eselonPlan;
	}

	public void setEselonPlan(EselonVO eselonPlan) {
		this.eselonPlan = eselonPlan;
	}

	public GolonganVO getPangkatBefore() {
		return pangkatBefore;
	}

	public void setPangkatBefore(GolonganVO pangkatBefore) {
		this.pangkatBefore = pangkatBefore;
	}

	public GolonganVO getPangkatPlan() {
		return pangkatPlan;
	}

	public void setPangkatPlan(GolonganVO pangkatPlan) {
		this.pangkatPlan = pangkatPlan;
	}

	public JenisHukumanVO getJenisHukumanPlan() {
		return jenisHukumanPlan;
	}

	public void setJenisHukumanPlan(JenisHukumanVO jenisHukumanPlan) {
		this.jenisHukumanPlan = jenisHukumanPlan;
	}

	public String getDeskripsiMutasiSanksiResignPlan() {
		return deskripsiMutasiSanksiResignPlan;
	}

	public void setDeskripsiMutasiSanksiResignPlan(String deskripsiMutasiSanksiResignPlan) {
		this.deskripsiMutasiSanksiResignPlan = deskripsiMutasiSanksiResignPlan;
	}

	public String getKeteranganLainya() {
		return keteranganLainya;
	}

	public void setKeteranganLainya(String keteranganLainya) {
		this.keteranganLainya = keteranganLainya;
	}

	public SuratKeputusanVO getSuratKeputusanBefore() {
		return suratKeputusanBefore;
	}

	public void setSuratKeputusanBefore(SuratKeputusanVO suratKeputusanBefore) {
		this.suratKeputusanBefore = suratKeputusanBefore;
	}

	public SuratKeputusanVO getNoSkBefore() {
		return noSkBefore;
	}

	public void setNoSkBefore(SuratKeputusanVO noSkBefore) {
		this.noSkBefore = noSkBefore;
	}

	public SuratKeputusanVO getNoSk() {
		return noSk;
	}

	public void setNoSk(SuratKeputusanVO noSk) {
		this.noSk = noSk;
	}

	public RuanganVO getRuanganExec() {
		return ruanganExec;
	}

	public void setRuanganExec(RuanganVO ruanganExec) {
		this.ruanganExec = ruanganExec;
	}

	public JabatanVO getJabatanStrukturalExec() {
		return jabatanStrukturalExec;
	}

	public void setJabatanStrukturalExec(JabatanVO jabatanStrukturalExec) {
		this.jabatanStrukturalExec = jabatanStrukturalExec;
	}

	public JabatanVO getJabatanFungsionalExec() {
		return jabatanFungsionalExec;
	}

	public void setJabatanFungsionalExec(JabatanVO jabatanFungsionalExec) {
		this.jabatanFungsionalExec = jabatanFungsionalExec;
	}

	public JabatanVO getJabatanInternalExec() {
		return jabatanInternalExec;
	}

	public void setJabatanInternalExec(JabatanVO jabatanInternalExec) {
		this.jabatanInternalExec = jabatanInternalExec;
	}

	public EselonVO getEselonExec() {
		return eselonExec;
	}

	public void setEselonExec(EselonVO eselonExec) {
		this.eselonExec = eselonExec;
	}

	public GolonganVO getPangkatExec() {
		return pangkatExec;
	}

	public void setPangkatExec(GolonganVO pangkatExec) {
		this.pangkatExec = pangkatExec;
	}

	public JenisHukumanVO getJenisHukumanExec() {
		return jenisHukumanExec;
	}

	public void setJenisHukumanExec(JenisHukumanVO jenisHukumanExec) {
		this.jenisHukumanExec = jenisHukumanExec;
	}

	public String getDeskripsiMutasiSanksiResignExec() {
		return deskripsiMutasiSanksiResignExec;
	}

	public void setDeskripsiMutasiSanksiResignExec(String deskripsiMutasiSanksiResignExec) {
		this.deskripsiMutasiSanksiResignExec = deskripsiMutasiSanksiResignExec;
	}

	public String getKeteranganLainyaExec() {
		return keteranganLainyaExec;
	}

	public void setKeteranganLainyaExec(String keteranganLainyaExec) {
		this.keteranganLainyaExec = keteranganLainyaExec;
	}

	public Date getTglPengajuan() {
		return tglPengajuan;
	}

	public void setTglPengajuan(Date tglPengajuan) {
		this.tglPengajuan = tglPengajuan;
	}

	public Date getTglPlanning() {
		return tglPlanning;
	}

	public void setTglPlanning(Date tglPlanning) {
		this.tglPlanning = tglPlanning;
	}

	public Integer getApprovalStatus() {
		return approvalStatus;
	}

	public void setApprovalStatus(Integer approvalStatus) {
		this.approvalStatus = approvalStatus;
	}

	public Integer getStatusMusare() {
		return statusMusare;
	}

	public void setStatusMusare(Integer statusMusare) {
		this.statusMusare = statusMusare;
	}

	public JenisKeputusanVO getJenisKeputusan() {
		return jenisKeputusan;
	}

	public void setJenisKeputusan(JenisKeputusanVO jenisKeputusan) {
		this.jenisKeputusan = jenisKeputusan;
	}

	public Date getTglSkSpmt() {
		return tglSkSpmt;
	}

	public void setTglSkSpmt(Date tglSkSpmt) {
		this.tglSkSpmt = tglSkSpmt;
	}

	public String getNoSkTemp() {
		return noSkTemp;
	}

	public void setNoSkTemp(String noSkTemp) {
		this.noSkTemp = noSkTemp;
	}

	public String getUraian() {
		return uraian;
	}

	public void setUraian(String uraian) {
		this.uraian = uraian;
	}

	public String getSkDari() {
		return skDari;
	}

	public void setSkDari(String skDari) {
		this.skDari = skDari;
	}

	public Date getTglTmtSpmt() {
		return tglTmtSpmt;
	}

	public void setTglTmtSpmt(Date tglTmtSpmt) {
		this.tglTmtSpmt = tglTmtSpmt;
	}

	public Date getTglBerlakuAkhir() {
		return tglBerlakuAkhir;
	}

	public void setTglBerlakuAkhir(Date tglBerlakuAkhir) {
		this.tglBerlakuAkhir = tglBerlakuAkhir;
	}

	public Date getTglKeputusan() {
		return tglKeputusan;
	}

	public void setTglKeputusan(Date tglKeputusan) {
		this.tglKeputusan = tglKeputusan;
	}

	public PlanningPegawaiStatusVO getPlanningPegawaiStatus() {
		return planningPegawaiStatus;
	}

	public void setPlanningPegawaiStatus(PlanningPegawaiStatusVO planningPegawaiStatus) {
		this.planningPegawaiStatus = planningPegawaiStatus;
	}

}
