package com.jasamedika.medifirst2000.vo;

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

import javax.persistence.*;

import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.entities.JenisArsip;

import javax.validation.constraints.NotNull;

import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.jasamedika.medifirst2000.helper.Caption;

/**
 *  class DokumenKeluar
 * 
 * @author Generator
 */
@Entity
@Table(name = "DokumenKeluar_T")
public class DokumenKeluarVO extends BaseTransactionVO {
	@Caption(value="Institusi Nama Tujuan")
	@Column(name = "InstitusiNamaTujuan", nullable = false , length = 75)
	private String institusinamatujuan;

	@Caption(value="Jabatan Penerima Tujuan")
	@Column(name = "JabatanPenerimaTujuan", nullable = true , length = 50)
	private String jabatanpenerimatujuan;

	@ManyToOne
	@JoinColumn(name = "ObjectDokumenFk")
	@NotNull(message="Object Dokumen Harus Diisi")
	@Caption(value="Object Dokumen")
	private DokumenVO kddokumen;

	@ManyToOne
	@JoinColumn(name = "ObjectPegawaiTandaTanganFk")
	@Caption(value="Object Pegawai Tanda Tangan")
	private LoginUserVO kdpegawaitandatangan;

	@Caption(value="Keterangan Lainnya")
	@Column(name = "KeteranganLainnya", nullable = true , length = 15)
	private String keteranganlainnya;

	@Caption(value="Nama Penerima Tujuan")
	@Column(name = "NamaPenerimaTujuan", nullable = false , length = 40)
	private String namapenerimatujuan;

	@Caption(value="No Dokumen_ Intern")
	@Column(name = "NoDokumen_Intern", nullable = true , length = 30)
	private String nodokumen_intern;

	@ManyToOne
	@JoinColumn(name = "NoKirimFk")
	@Caption(value="No Kirim")
	private StrukKirimVO nokirim;

	@ManyToOne
	@JoinColumn(name = "NoStrukFk")
	@Caption(value="No Struk")
	private StrukPelayananVO nostruk;

	@ManyToOne
	@JoinColumn(name = "NoStruk_T_ReplyFk")
	@Caption(value="No Struk_ T_ Reply")
	private StrukPelayananVO nostruk_t_reply;

	@Caption(value="Unit Bagian Tujuan")
	@Column(name = "UnitBagianTujuan", nullable = true , length = 75)
	private String unitbagiantujuan;
	
	@Caption(value="No Surat")
	@Column(name = "NoSurat", nullable = true)
	private String noSurat;
	
	@ManyToOne
	@JoinColumn(name = "ObjectSifatSuratFk")
	@Caption(value="Sifat Surat")
	private SifatSuratVO sifatSurat;

	@ManyToOne
	@JoinColumn(name = "ObjectStatusBerkasFk")
	@Caption(value="Status Berkas")
	private StatusBerkasVO statusBerkas;

	@ManyToOne
	@JoinColumn(name = "ObjectJenisSuratFk")
	@Caption(value="Jenis Surat")
	private JenisSuratVO jenisSurat;

	@Caption(value="lampiran")
	@Column(name = "lampiran", nullable = true)
	private Integer lampiran;
	
	@Caption(value="perihal")
	@Column(name = "perihal", nullable = true)
	private String perihal;
	
	@ManyToOne
	@JoinColumn(name = "ObjectKlasifikasiArsipFk")
	@Caption(value="Klasifikasi Arsip")
	private KlasifikasiArsipVO klasifikasiArsip;

	@ManyToOne
	@JoinColumn(name = "ObjectSubKlasifikasiArsipFk")
	@Caption(value="Sub Klasifikasi Arsip")
	private SubKlasifikasiArsipVO subKlasifikasiArsip;

	@ManyToOne
	@JoinColumn(name = "ObjectPegawaiAtasNamaFk")
	@Caption(value="pegawaiAtasNama")
	private PegawaiVO pegawaiAtasNama;

	@ManyToOne
	@JoinColumn(name = "ObjectPegawaiPenandaTanganFk")
	@Caption(value="pegawaiPenandaTangan")
	private PegawaiVO pegawaiPenandaTangan;

	@ManyToOne
	@JoinColumn(name = "ObjectMetodeKirimFk")
	@Caption(value="Metode Kirim")
	private MetodeKirimVO metodeKirim;
	
	@ManyToOne
	@JoinColumn(name = "ObjectPegawaiPengirimFk")
	@Caption(value="pegawaiPengirim")
	private PegawaiVO pegawaiPengirim;

	@ManyToOne
	@JoinColumn(name = "ObjectJenisArsipFk")
	@Caption(value="JenisArsip")
	private JenisArsipVO jenisArsip;
	
	//
	@OneToMany(cascade=CascadeType.ALL,fetch = FetchType.LAZY, mappedBy = "dokumenKeluar")
	@Caption(value = "dokumenKeluarSet")
	private Set<KonseptorPemeriksaSuratVO> konseptorPemeriksaSuratSet=new HashSet<KonseptorPemeriksaSuratVO>();
		
	public String getNoSurat() {
		return noSurat;
	}

	public void setNoSurat(String noSurat) {
		this.noSurat = noSurat;
	}

	public SifatSuratVO getSifatSurat() {
		return sifatSurat;
	}

	public void setSifatSurat(SifatSuratVO sifatSurat) {
		this.sifatSurat = sifatSurat;
	}

	public StatusBerkasVO getStatusBerkas() {
		return statusBerkas;
	}

	public void setStatusBerkas(StatusBerkasVO statusBerkas) {
		this.statusBerkas = statusBerkas;
	}

	public JenisSuratVO getJenisSurat() {
		return jenisSurat;
	}

	public void setJenisSurat(JenisSuratVO jenisSurat) {
		this.jenisSurat = jenisSurat;
	}

	public Integer getLampiran() {
		return lampiran;
	}

	public void setLampiran(Integer lampiran) {
		this.lampiran = lampiran;
	}

	public String getPerihal() {
		return perihal;
	}

	public void setPerihal(String perihal) {
		this.perihal = perihal;
	}

	public KlasifikasiArsipVO getKlasifikasiArsip() {
		return klasifikasiArsip;
	}

	public void setKlasifikasiArsip(KlasifikasiArsipVO klasifikasiArsip) {
		this.klasifikasiArsip = klasifikasiArsip;
	}

	public SubKlasifikasiArsipVO getSubKlasifikasiArsip() {
		return subKlasifikasiArsip;
	}

	public void setSubKlasifikasiArsip(SubKlasifikasiArsipVO subKlasifikasiArsip) {
		this.subKlasifikasiArsip = subKlasifikasiArsip;
	}

	public PegawaiVO getPegawaiAtasNama() {
		return pegawaiAtasNama;
	}

	public void setPegawaiAtasNama(PegawaiVO pegawaiAtasNama) {
		this.pegawaiAtasNama = pegawaiAtasNama;
	}

	public PegawaiVO getPegawaiPenandaTangan() {
		return pegawaiPenandaTangan;
	}

	public void setPegawaiPenandaTangan(PegawaiVO pegawaiPenandaTangan) {
		this.pegawaiPenandaTangan = pegawaiPenandaTangan;
	}

	public MetodeKirimVO getMetodeKirim() {
		return metodeKirim;
	}

	public void setMetodeKirim(MetodeKirimVO metodeKirim) {
		this.metodeKirim = metodeKirim;
	}

	public PegawaiVO getPegawaiPengirim() {
		return pegawaiPengirim;
	}

	public void setPegawaiPengirim(PegawaiVO pegawaiPengirim) {
		this.pegawaiPengirim = pegawaiPengirim;
	}

	public String getInstitusinamatujuan() {
		return institusinamatujuan;
	}

	public void setInstitusinamatujuan(String institusinamatujuan) {
		this.institusinamatujuan = institusinamatujuan;
	}

	public String getJabatanpenerimatujuan() {
		return jabatanpenerimatujuan;
	}

	public void setJabatanpenerimatujuan(String jabatanpenerimatujuan) {
		this.jabatanpenerimatujuan = jabatanpenerimatujuan;
	}

	public DokumenVO getKddokumen() {
		return kddokumen;
	}

	public void setKddokumen(DokumenVO kddokumen) {
		this.kddokumen = kddokumen;
	}

	public LoginUserVO getKdpegawaitandatangan() {
		return kdpegawaitandatangan;
	}

	public void setKdpegawaitandatangan(LoginUserVO kdpegawaitandatangan) {
		this.kdpegawaitandatangan = kdpegawaitandatangan;
	}

	public String getKeteranganlainnya() {
		return keteranganlainnya;
	}

	public void setKeteranganlainnya(String keteranganlainnya) {
		this.keteranganlainnya = keteranganlainnya;
	}

	public String getNamapenerimatujuan() {
		return namapenerimatujuan;
	}

	public void setNamapenerimatujuan(String namapenerimatujuan) {
		this.namapenerimatujuan = namapenerimatujuan;
	}

	public String getNodokumen_intern() {
		return nodokumen_intern;
	}

	public void setNodokumen_intern(String nodokumen_intern) {
		this.nodokumen_intern = nodokumen_intern;
	}

	public StrukKirimVO getNokirim() {
		return nokirim;
	}

	public void setNokirim(StrukKirimVO nokirim) {
		this.nokirim = nokirim;
	}

	public StrukPelayananVO getNostruk() {
		return nostruk;
	}

	public void setNostruk(StrukPelayananVO nostruk) {
		this.nostruk = nostruk;
	}

	public StrukPelayananVO getNostruk_t_reply() {
		return nostruk_t_reply;
	}

	public void setNostruk_t_reply(StrukPelayananVO nostruk_t_reply) {
		this.nostruk_t_reply = nostruk_t_reply;
	}

	public String getUnitbagiantujuan() {
		return unitbagiantujuan;
	}

	public void setUnitbagiantujuan(String unitbagiantujuan) {
		this.unitbagiantujuan = unitbagiantujuan;
	}

	public Set<KonseptorPemeriksaSuratVO> getKonseptorPemeriksaSuratSet() {
		return konseptorPemeriksaSuratSet;
	}

	public void setKonseptorPemeriksaSuratSet(Set<KonseptorPemeriksaSuratVO> konseptorPemeriksaSuratSet) {
		this.konseptorPemeriksaSuratSet = konseptorPemeriksaSuratSet;
	}

	public JenisArsipVO getJenisArsip() {
		return jenisArsip;
	}

	public void setJenisArsip(JenisArsipVO jenisArsip) {
		this.jenisArsip = jenisArsip;
	}
	
	
	
}

