package com.jasamedika.medifirst2000.vo;

import java.io.Serializable;
import javax.persistence.*;
import org.joda.time.DateTime;
import org.hibernate.validator.constraints.NotEmpty;

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

import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.internal.util.logging.Messages;

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

/**
 *  class StrukBuktiPenerimaan
 * 
 * @author Shakato
 */
public class StrukBuktiPenerimaanVO extends BaseTransactionVO {
	
	@ManyToOne
	@JoinColumn(name = "ObjectKelompokPasienFk")
	@Caption(value="Object Kelompok Pasien")
	private KelompokPasienVO kdkelompokpasien;

	@Column(name = "ObjectKelompokPasienFk", nullable = true)
	private Integer ObjectKelompokPasienId;

	@ManyToOne
	@JoinColumn(name = "ObjectKelompokTransaksiFk")
	@NotNull(message="Object Kelompok Transaksi Harus Diisi")
	@Caption(value="Object Kelompok Transaksi")
	private KelompokTransaksiVO kdkelompoktransaksi;

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

	@ManyToOne
	@JoinColumn(name = "ObjectPegawaiPembayarFk")
	@Caption(value="Object Pegawai Pembayar")
	private LoginUserVO kdpegawaipembayar;

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

	@ManyToOne
	@JoinColumn(name = "ObjectPegawaiPenerimaFk")
	@Caption(value="Object Pegawai Penerima")
	private LoginUserVO kdpegawaipenerima;

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

	@ManyToOne
	@JoinColumn(name = "ObjectPegawaiPJPembebasanFk")
	@Caption(value="Object Pegawai P J Pembebasan")
	private LoginUserVO kdpegawaipjpembebasan;

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

	@Caption(value="Kode Penjamin Pa Rekanan")
	@Column(name = "KdPenjaminPaRekanan", nullable = true )
	private Short kdpenjaminparekanan;

	@ManyToOne
	@JoinColumn(name = "ObjectProdukPembayaranToFk")
	@Caption(value="Object Produk Pembayaran To")
	private ProdukVO kdprodukpembayaranto;

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

	@ManyToOne
	@JoinColumn(name = "ObjectRuanganFk")
	@NotNull(message="Object Ruangan Harus Diisi")
	@Caption(value="Object Ruangan")
	private RuanganVO kdruangan;

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

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

	@Caption(value="Keterangan Pembebasan")
	@Column(name = "KeteranganPembebasan", nullable = true , length = 100)
	private String keteranganpembebasan;

	@Caption(value="Nama Pegawai Pembayar")
	@Column(name = "NamaPegawaiPembayar", nullable = true , length = 40)
	private String namapegawaipembayar;

	@Caption(value="Nama Pegawai Penerima")
	@Column(name = "NamaPegawaiPenerima", nullable = true , length = 40)
	private String namapegawaipenerima;

	@Caption(value="Nama Produk Pembayaran To")
	@Column(name = "NamaProdukPembayaranTo", nullable = true , length = 80)
	private String namaprodukpembayaranto;

	@ManyToOne
	@JoinColumn(name = "NoClosingFk")
	@Caption(value="No Closing")
	private StrukClosingVO noclosing;

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

	@ManyToOne
	@JoinColumn(name = "NoSBK_ReturFk")
	@Caption(value="No S B K_ Retur")
	private StrukBuktiPengeluaranVO nosbk_retur;

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

	@Caption(value="No S B M")
	@Column(name = "NoSBM", nullable = true , length = 10)
	private String nosbm;

	@Caption(value="No S B M_ Intern")
	@Column(name = "NoSBM_Intern", nullable = true , length = 15)
	private String nosbm_intern;

	@Caption(value="No S B M Before")
	@Column(name = "NoSBMBefore", nullable = true , length = 10)
	private String nosbmbefore;

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

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

	@Caption(value="No Urut Login")
	@Column(name = "NoUrutLogin", nullable = true , length = 10)
	private String nourutlogin;

	@Caption(value="No Urut Ruangan")
	@Column(name = "NoUrutRuangan", nullable = true , length = 10)
	private String nourutruangan;

	/*@ManyToOne
	@JoinColumn(name = "NoVerifikasiFk")
	@Caption(value="No Verifikasi")
	private StrukVerifikasiVO noverifikasi;

	@Column(name = "NoVerifikasiFk", insertable=false,updatable=false,nullable = true)
	private Integer NoVerifikasiId;*/

	@Caption(value="Pegawai P J Pembebasan")
	@Column(name = "PegawaiPJPembebasan", nullable = true , length = 40)
	private String pegawaipjpembebasan;

	@Caption(value="Pembayaran Ke")
	@Column(name = "PembayaranKe", nullable = true )
	private Byte pembayaranke;

	@Caption(value="Tanggal S B M")
	@Column(name = "TglSBM", nullable = true )
	private DateTime tglsbm;

	@Caption(value="Total Di Bayar")
	@Column(name = "TotalDiBayar", nullable = true )
	private Double totaldibayar;

	@Caption(value="Total Di Bayar Before")
	@Column(name = "TotalDiBayarBefore", nullable = true )
	private Double totaldibayarbefore;

	@Caption(value="Total Di Bayar Cash Out")
	@Column(name = "TotalDiBayarCashOut", nullable = true )
	private Double totaldibayarcashout;

	@Caption(value="Total Di Bayar Retur")
	@Column(name = "TotalDiBayarRetur", nullable = true )
	private Double totaldibayarretur;

	@Caption(value="Total Di Bebaskan")
	@Column(name = "TotalDiBebaskan", nullable = true )
	private Double totaldibebaskan;

	@Caption(value="Total Sisa Piutang")
	@Column(name = "TotalSisaPiutang", nullable = true )
	private Double totalsisapiutang;

	@Caption(value="Total Sudah Di Bayar")
	@Column(name = "TotalSudahDiBayar", nullable = true )
	private Double totalsudahdibayar;

	@Caption(value="Total Sudah Di Bebaskan")
	@Column(name = "TotalSudahDiBebaskan", nullable = true )
	private Double totalsudahdibebaskan;

	public KelompokPasienVO getKdkelompokpasien() {
		return kdkelompokpasien;
	}

	public void setKdkelompokpasien(KelompokPasienVO kdkelompokpasien) {
		this.kdkelompokpasien = kdkelompokpasien;
	}

	public Integer getObjectKelompokPasienId() {
		return ObjectKelompokPasienId;
	}

	public void setObjectKelompokPasienId(Integer objectKelompokPasienId) {
		ObjectKelompokPasienId = objectKelompokPasienId;
	}

	public KelompokTransaksiVO getKdkelompoktransaksi() {
		return kdkelompoktransaksi;
	}

	public void setKdkelompoktransaksi(KelompokTransaksiVO kdkelompoktransaksi) {
		this.kdkelompoktransaksi = kdkelompoktransaksi;
	}

	public Integer getObjectKelompokTransaksiId() {
		return ObjectKelompokTransaksiId;
	}

	public void setObjectKelompokTransaksiId(Integer objectKelompokTransaksiId) {
		ObjectKelompokTransaksiId = objectKelompokTransaksiId;
	}

	public LoginUserVO getKdpegawaipembayar() {
		return kdpegawaipembayar;
	}

	public void setKdpegawaipembayar(LoginUserVO kdpegawaipembayar) {
		this.kdpegawaipembayar = kdpegawaipembayar;
	}

	public Integer getObjectPegawaiPembayarId() {
		return ObjectPegawaiPembayarId;
	}

	public void setObjectPegawaiPembayarId(Integer objectPegawaiPembayarId) {
		ObjectPegawaiPembayarId = objectPegawaiPembayarId;
	}

	public LoginUserVO getKdpegawaipenerima() {
		return kdpegawaipenerima;
	}

	public void setKdpegawaipenerima(LoginUserVO kdpegawaipenerima) {
		this.kdpegawaipenerima = kdpegawaipenerima;
	}

	public Integer getObjectPegawaiPenerimaId() {
		return ObjectPegawaiPenerimaId;
	}

	public void setObjectPegawaiPenerimaId(Integer objectPegawaiPenerimaId) {
		ObjectPegawaiPenerimaId = objectPegawaiPenerimaId;
	}

	public LoginUserVO getKdpegawaipjpembebasan() {
		return kdpegawaipjpembebasan;
	}

	public void setKdpegawaipjpembebasan(LoginUserVO kdpegawaipjpembebasan) {
		this.kdpegawaipjpembebasan = kdpegawaipjpembebasan;
	}

	public Integer getObjectPegawaiPJPembebasanId() {
		return ObjectPegawaiPJPembebasanId;
	}

	public void setObjectPegawaiPJPembebasanId(Integer objectPegawaiPJPembebasanId) {
		ObjectPegawaiPJPembebasanId = objectPegawaiPJPembebasanId;
	}

	public short getKdpenjaminparekanan() {
		return kdpenjaminparekanan;
	}

	public void setKdpenjaminparekanan(short kdpenjaminparekanan) {
		this.kdpenjaminparekanan = kdpenjaminparekanan;
	}

	public ProdukVO getKdprodukpembayaranto() {
		return kdprodukpembayaranto;
	}

	public void setKdprodukpembayaranto(ProdukVO kdprodukpembayaranto) {
		this.kdprodukpembayaranto = kdprodukpembayaranto;
	}

	public Integer getObjectProdukPembayaranToId() {
		return ObjectProdukPembayaranToId;
	}

	public void setObjectProdukPembayaranToId(Integer objectProdukPembayaranToId) {
		ObjectProdukPembayaranToId = objectProdukPembayaranToId;
	}

	public RuanganVO getKdruangan() {
		return kdruangan;
	}

	public void setKdruangan(RuanganVO kdruangan) {
		this.kdruangan = kdruangan;
	}

	public Integer getObjectRuanganId() {
		return ObjectRuanganId;
	}

	public void setObjectRuanganId(Integer objectRuanganId) {
		ObjectRuanganId = objectRuanganId;
	}

	public String getKeteranganlainnya() {
		return keteranganlainnya;
	}

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

	public String getKeteranganpembebasan() {
		return keteranganpembebasan;
	}

	public void setKeteranganpembebasan(String keteranganpembebasan) {
		this.keteranganpembebasan = keteranganpembebasan;
	}

	public String getNamapegawaipembayar() {
		return namapegawaipembayar;
	}

	public void setNamapegawaipembayar(String namapegawaipembayar) {
		this.namapegawaipembayar = namapegawaipembayar;
	}

	public String getNamapegawaipenerima() {
		return namapegawaipenerima;
	}

	public void setNamapegawaipenerima(String namapegawaipenerima) {
		this.namapegawaipenerima = namapegawaipenerima;
	}

	public String getNamaprodukpembayaranto() {
		return namaprodukpembayaranto;
	}

	public void setNamaprodukpembayaranto(String namaprodukpembayaranto) {
		this.namaprodukpembayaranto = namaprodukpembayaranto;
	}

	public StrukClosingVO getNoclosing() {
		return noclosing;
	}

	public void setNoclosing(StrukClosingVO noclosing) {
		this.noclosing = noclosing;
	}

	public Integer getNoClosingId() {
		return NoClosingId;
	}

	public void setNoClosingId(Integer noClosingId) {
		NoClosingId = noClosingId;
	}

	public StrukBuktiPengeluaranVO getNosbk_retur() {
		return nosbk_retur;
	}

	public void setNosbk_retur(StrukBuktiPengeluaranVO nosbk_retur) {
		this.nosbk_retur = nosbk_retur;
	}

	public Integer getNoSBK_ReturId() {
		return NoSBK_ReturId;
	}

	public void setNoSBK_ReturId(Integer noSBK_ReturId) {
		NoSBK_ReturId = noSBK_ReturId;
	}

	public String getNosbm() {
		return nosbm;
	}

	public void setNosbm(String nosbm) {
		this.nosbm = nosbm;
	}

	public String getNosbm_intern() {
		return nosbm_intern;
	}

	public void setNosbm_intern(String nosbm_intern) {
		this.nosbm_intern = nosbm_intern;
	}

	public String getNosbmbefore() {
		return nosbmbefore;
	}

	public void setNosbmbefore(String nosbmbefore) {
		this.nosbmbefore = nosbmbefore;
	}

	public StrukPelayananVO getNostruk() {
		return nostruk;
	}

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

	public Integer getNoStrukId() {
		return NoStrukId;
	}

	public void setNoStrukId(Integer noStrukId) {
		NoStrukId = noStrukId;
	}

	public String getNourutlogin() {
		return nourutlogin;
	}

	public void setNourutlogin(String nourutlogin) {
		this.nourutlogin = nourutlogin;
	}

	public String getNourutruangan() {
		return nourutruangan;
	}

	public void setNourutruangan(String nourutruangan) {
		this.nourutruangan = nourutruangan;
	}

	public String getPegawaipjpembebasan() {
		return pegawaipjpembebasan;
	}

	public void setPegawaipjpembebasan(String pegawaipjpembebasan) {
		this.pegawaipjpembebasan = pegawaipjpembebasan;
	}

	public Byte getPembayaranke() {
		return pembayaranke;
	}

	public void setPembayaranke(Byte pembayaranke) {
		this.pembayaranke = pembayaranke;
	}

	public DateTime getTglsbm() {
		return tglsbm;
	}

	public void setTglsbm(DateTime tglsbm) {
		this.tglsbm = tglsbm;
	}

	public Double getTotaldibayar() {
		return totaldibayar;
	}

	public void setTotaldibayar(Double totaldibayar) {
		this.totaldibayar = totaldibayar;
	}

	public Double getTotaldibayarbefore() {
		return totaldibayarbefore;
	}

	public void setTotaldibayarbefore(Double totaldibayarbefore) {
		this.totaldibayarbefore = totaldibayarbefore;
	}

	public Double getTotaldibayarcashout() {
		return totaldibayarcashout;
	}

	public void setTotaldibayarcashout(Double totaldibayarcashout) {
		this.totaldibayarcashout = totaldibayarcashout;
	}

	public Double getTotaldibayarretur() {
		return totaldibayarretur;
	}

	public void setTotaldibayarretur(Double totaldibayarretur) {
		this.totaldibayarretur = totaldibayarretur;
	}

	public Double getTotaldibebaskan() {
		return totaldibebaskan;
	}

	public void setTotaldibebaskan(Double totaldibebaskan) {
		this.totaldibebaskan = totaldibebaskan;
	}

	public Double getTotalsisapiutang() {
		return totalsisapiutang;
	}

	public void setTotalsisapiutang(Double totalsisapiutang) {
		this.totalsisapiutang = totalsisapiutang;
	}

	public Double getTotalsudahdibayar() {
		return totalsudahdibayar;
	}

	public void setTotalsudahdibayar(Double totalsudahdibayar) {
		this.totalsudahdibayar = totalsudahdibayar;
	}

	public Double getTotalsudahdibebaskan() {
		return totalsudahdibebaskan;
	}

	public void setTotalsudahdibebaskan(Double totalsudahdibebaskan) {
		this.totalsudahdibebaskan = totalsudahdibebaskan;
	}

}

