package com.jasamedika.medifirst2000.entities;

import java.util.Date;

import javax.persistence.*;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.jasamedika.medifirst2000.base.BaseTransaction;
import javax.validation.constraints.NotNull;

import com.jasamedika.medifirst2000.helper.Caption;

/**
 *  class DokumenInternal
 * 
 * @author Generator
 */
@Entity
@JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" })
@Table(name = "DokumenInternal_T")
public class DokumenInternal extends BaseTransaction {
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectDokumenFk")
	@NotNull(message="Object Dokumen Harus Diisi")
	@Caption(value="Object Dokumen")
	private Dokumen kddokumen;

	@Column(name = "ObjectDokumenFk", insertable=false,updatable=false)
	private Integer ObjectDokumenId;

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectPegawaiTujuanFk")
	@Caption(value="Object Pegawai Tujuan")
	private Pegawai kdpegawaitujuan;

	@Column(name = "ObjectPegawaiTujuanFk", insertable=false,updatable=false)
	private Integer ObjectPegawaiTujuanId;

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectRuanganTujuanFk")
	@Caption(value="Object Ruangan Tujuan")
	private Ruangan kdruangantujuan;

	@Column(name = "ObjectRuanganTujuanFk", insertable=false,updatable=false,nullable=true)
	private Integer ObjectRuanganTujuanId;

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

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

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "NoKirimFk")
	@Caption(value="No Kirim")
	private StrukKirim nokirim;

	@Column(name = "NoKirimFk", insertable=false,updatable=false)
	private String NoKirimId;

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "NoStruk_TFk")
	@Caption(value="No Struk_ T")
	private StrukPelayanan nostruk_t;

	@Column(name = "NoStruk_TFk", insertable=false,updatable=false)
	private String NoStruk_TId;
	
	// === add by yudi === //
	// === Sarana Prasarana - Modul Humas - Form Surat Masuk Internal === //
	
	@Column(name = "NoTerima", nullable = true)
	@Caption(value="Nomor Terima")
	private String noTerima;
	
	@Column(name = "TglTerima", nullable = true)
	@Caption(value="Tgl Terima")
	private Date tglTerima;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectPegawaiPenerimaSuratFk")
	@Caption(value="User Penerima Surat")
	private Pegawai PegawaiPenerimaSurat;
	
	@Column(name = "ObjectPegawaiPenerimaSuratFk", insertable=false,updatable=false, nullable = true)
	private Integer PegawaiPenerimaSuratId;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectRuanganPenerimaFk")
	@Caption(value="Ruangan Penerima")
	private Ruangan ruanganPenerima;
	
	@Column(name = "ObjectRuanganPenerimaFk", insertable=false,updatable=false, nullable = true)
	private Integer ruanganPenerimaId;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectRuanganPengirimFk")
	@Caption(value="Ruangan Penerima")
	private Ruangan ruanganPengirim;
	
	@Column(name = "ObjectRuanganPengirimFk", insertable=false,updatable=false, nullable = true)
	private Integer ruanganPengirimId;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectTipePengirimSuratFk")
	@Caption(value="Tipe Pengirim Surat")
	private TipePengirimSurat tipePengirimSurat;
	
	@Column(name = "ObjectTipePengirimSuratFk", insertable=false,updatable=false, nullable = true)
	private Integer tipePengirimSuratId;
	
	@Column(name = "tglSurat", nullable = true)
	@Caption(value="Tgl Surat")
	private Date tglSurat;
	
	@Column(name = "Perihal", nullable = true)
	@Caption(value="Perihal")
	private String perihal;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectUserPengirimSuratFk")
	@Caption(value="Pegawai Pengirim Surat")
	private Pegawai userPengirimSurat;
	
	@Column(name = "ObjectUserPengirimSuratFk", insertable=false,updatable=false, nullable = true)
	private Integer userPengirimSuratId;
	
	@Column(name = "AlamatPengirim", nullable = true)
	@Caption(value="Alamat Pengirim")
	private String alamatPengirim;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectSifatSuratFk")
	@Caption(value="Sifat Surat")
	private SifatSurat sifatSurat;
	
	@Column(name = "ObjectSifatSuratFk", insertable=false,updatable=false, nullable = true)
	private Integer sifatSuratId;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectStatusBerkasFk")
	@Caption(value="Status Berkas")
	private StatusBerkas statusBerkas;
	
	@Column(name = "ObjectSifatSuratFk", insertable=false,updatable=false, nullable = true)
	private Integer statusBerkasId;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectJenisArsipFk")
	@Caption(value="statusKeaktifanJenisArsip")
	private JenisArsip jenisArsip;
	
	@Column(name = "ObjectJenisArsipFk", insertable=false,updatable=false, nullable = true)
	private Integer jenisArsipId;

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectKlasifikasiArsipFk")
	@Caption(value="KlasifikasiArsip")
	private KlasifikasiArsip klasifikasiArsip;
	
	@Column(name = "ObjectKlasifikasiArsipFk", insertable=false,updatable=false, nullable = true)
	private Integer klasifikasiArsipId;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectSubKlasifikasiArsipFk")
	@Caption(value="SubKlasifikasiArsip")
	private SubKlasifikasiArsip subKlasifikasiArsip;
	
	@Column(name = "ObjectSubKlasifikasiArsipFk", insertable=false,updatable=false, nullable = true)
	private Integer subKlasifikasiArsipId;

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectStatusVerifikasiFk")
	@Caption(value="statusKeaktifanJenisArsip")
	private StatusYaTidak statusVerifikasi;
	
	@Column(name = "ObjectStatusVerifikasiFk", insertable=false,updatable=false, nullable = true)
	private Integer statusVerifikasiId;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectStatusYaTidakKeaktifanFk")
	@Caption(value="statusKeaktifanJenisArsip")
	private StatusYaTidak statusKeaktifan;
	
	@Column(name = "ObjectStatusYaTidakKeaktifanFk", insertable=false,updatable=false, nullable = true)
	private Integer statusKeaktifanId;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectJenisSuratFk")
	@Caption(value="Jenis Surat")
	private JenisSurat jenisSurat;
	
	@Column(name = "ObjectJenisSuratFk", insertable=false,updatable=false, nullable = true)
	private Integer jenisSuratId;
	
	public Dokumen getKddokumen() {
		return kddokumen;
	}

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

	public Pegawai getKdpegawaitujuan() {
		return kdpegawaitujuan;
	}

	public void setKdpegawaitujuan(Pegawai kdpegawaitujuan) {
		this.kdpegawaitujuan = kdpegawaitujuan;
	}

	public Ruangan getKdruangantujuan() {
		return kdruangantujuan;
	}

	public void setKdruangantujuan(Ruangan kdruangantujuan) {
		this.kdruangantujuan = kdruangantujuan;
	}

	public String getKeteranganlainnya() {
		return keteranganlainnya;
	}

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

	public String getNodokumen_intern() {
		return nodokumen_intern;
	}

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

	public Date getTglTerima() {
		return tglTerima;
	}

	public void setTglTerima(Date tglTerima) {
		this.tglTerima = tglTerima;
	}

	public Pegawai getPegawaiPenerimaSurat() {
		return PegawaiPenerimaSurat;
	}

	public void setPegawaiPenerimaSurat(Pegawai penerimaSurat) {
		this.PegawaiPenerimaSurat = penerimaSurat;
	}

	public Ruangan getRuanganPenerima() {
		return ruanganPenerima;
	}

	public void setRuanganPenerima(Ruangan ruanganPenerima) {
		this.ruanganPenerima = ruanganPenerima;
	}

	public TipePengirimSurat getTipePengirimSurat() {
		return tipePengirimSurat;
	}

	public void setTipePengirimSurat(TipePengirimSurat tipePengirimSurat) {
		this.tipePengirimSurat = tipePengirimSurat;
	}

	public Date getTglSurat() {
		return tglSurat;
	}

	public void setTglSurat(Date tglSurat) {
		this.tglSurat = tglSurat;
	}

	public String getPerihal() {
		return perihal;
	}

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

	public String getAlamatPengirim() {
		return alamatPengirim;
	}

	public void setAlamatPengirim(String alamatPengirim) {
		this.alamatPengirim = alamatPengirim;
	}

	public SifatSurat getSifatSurat() {
		return sifatSurat;
	}

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

	public StatusBerkas getStatusBerkas() {
		return statusBerkas;
	}

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

	public KlasifikasiArsip getKlasifikasiArsip() {
		return klasifikasiArsip;
	}

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

	public SubKlasifikasiArsip getSubKlasifikasiArsip() {
		return subKlasifikasiArsip;
	}

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

	public String getNoTerima() {
		return noTerima;
	}

	public void setNoTerima(String noTerima) {
		this.noTerima = noTerima;
	}

	public Pegawai getUserPengirimSurat() {
		return userPengirimSurat;
	}

	public void setUserPengirimSurat(Pegawai userPengirimSurat) {
		this.userPengirimSurat = userPengirimSurat;
	}

	public StatusYaTidak getStatusVerifikasi() {
		return statusVerifikasi;
	}

	public void setStatusVerifikasi(StatusYaTidak statusVerifikasi) {
		this.statusVerifikasi = statusVerifikasi;
	}
	
	public Ruangan getRuanganPengirim() {
		return ruanganPengirim;
	}

	public void setRuanganPengirim(Ruangan ruanganPengirim) {
		this.ruanganPengirim = ruanganPengirim;
	}

	public JenisSurat getJenisSurat() {
		return jenisSurat;
	}

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

	public StrukKirim getNokirim() {
		return nokirim;
	}

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

	public StrukPelayanan getNostruk_t() {
		return nostruk_t;
	}

	public void setNostruk_t(StrukPelayanan nostruk_t) {
		this.nostruk_t = nostruk_t;
	}

	public JenisArsip getJenisArsip() {
		return jenisArsip;
	}

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

	public StatusYaTidak getStatusKeaktifan() {
		return statusKeaktifan;
	}

	public void setStatusKeaktifan(StatusYaTidak statusKeaktifan) {
		this.statusKeaktifan = statusKeaktifan;
	}
	
	
	
}

