package com.jasamedika.medifirst2000.entities;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;

import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.helper.Caption;

@Entity
@Table(name = "StrukBuktiPengeluaranCaraBayar_T")
public class StrukBuktiPengeluaranCaraBayar extends BaseTransaction {

	@ManyToOne
	@JoinColumn(name = "NoSbkFk")
	@NotNull(message = "No SBK Harus Diisi")
	private StrukBuktiPengeluaran noSBK;

	@Column(name = "NoSbkFk", columnDefinition = "CHAR(32)", insertable = false, updatable = false, nullable = true)
	private String noSBKId;

	@Caption(value = "No Urut Cb")
	@Column(name = "NoUrutCb", nullable = false)
	private Byte noUrutCb;

	@ManyToOne
	@JoinColumn(name = "CaraBayarFk")
	@NotNull(message = "Cara Bayar Harus Diisi")
	private CaraBayar kdCaraBayar;

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

	@Caption(value = "Total Dibayar")
	@Column(name = "TotalDiBayar", nullable = false)
	private Double totalDibayar;

	@Caption(value = "Total Dibayar Cash In")
	@Column(name = "TotalDiBayarCashIn", nullable = false)
	private Double totalDibayarCashIn;

	@ManyToOne
	@JoinColumn(name = "JenisKartuFk")
	private JenisKartu kdJenisKartu;

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

	@Caption(value = "Nama Bank Provider")
	@Column(name = "NamaBankProvider", nullable = true, length = 100)
	private String namaBankProvider;

	@Caption(value = "No Kartu Account")
	@Column(name = "NoKartuAccount", nullable = true, length = 50)
	private String noKartuAccount;

	@Caption(value = "Nama Pemilik")
	@Column(name = "NamaPemilik", nullable = true, length = 80)
	private String namaPemilik;

	@ManyToOne
	@JoinColumn(name = "PegawaiPembayarFk")
	private LoginUser kdPegawaiPembayar;

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

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

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

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "NoClosingFk")
	@Caption(value = "No Closing")
	private StrukClosing noclosing;

	@Column(name = "NoClosingFk", columnDefinition = "CHAR(32)", insertable = false, updatable = false, nullable = true)
	private String NoClosingId;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "NoVerifikasiFk")
	private StrukVerifikasi noVerifikasi;

	@Column(name = "NoVerifikasiFk", columnDefinition = "CHAR(32)", insertable = false, updatable = false, nullable = true)
	private String noVerifikasiId;

	@ManyToOne
	@JoinColumn(name = "KdBankAccountTujuanFk")
	private BankAccount kdBankAccountTujuan;

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

	public BankAccount getKdBankAccountTujuan() {
		return kdBankAccountTujuan;
	}

	public void setKdBankAccountTujuan(BankAccount kdBankAccountTujuan) {
		this.kdBankAccountTujuan = kdBankAccountTujuan;
	}

	public StrukBuktiPengeluaran getNoSBK() {
		return noSBK;
	}

	public void setNoSBK(StrukBuktiPengeluaran noSBK) {
		this.noSBK = noSBK;
	}

	public Byte getNoUrutCb() {
		return noUrutCb;
	}

	public void setNoUrutCb(Byte noUrutCb) {
		this.noUrutCb = noUrutCb;
	}

	public CaraBayar getKdCaraBayar() {
		return kdCaraBayar;
	}

	public void setKdCaraBayar(CaraBayar kdCaraBayar) {
		this.kdCaraBayar = kdCaraBayar;
	}

	public Double getTotalDibayar() {
		return totalDibayar;
	}

	public void setTotalDibayar(Double totalDibayar) {
		this.totalDibayar = totalDibayar;
	}

	public Double getTotalDibayarCashIn() {
		return totalDibayarCashIn;
	}

	public void setTotalDibayarCashIn(Double totalDibayarCashIn) {
		this.totalDibayarCashIn = totalDibayarCashIn;
	}

	public JenisKartu getKdJenisKartu() {
		return kdJenisKartu;
	}

	public void setKdJenisKartu(JenisKartu kdJenisKartu) {
		this.kdJenisKartu = kdJenisKartu;
	}

	public String getNamaBankProvider() {
		return namaBankProvider;
	}

	public void setNamaBankProvider(String namaBankProvider) {
		this.namaBankProvider = namaBankProvider;
	}

	public String getNoKartuAccount() {
		return noKartuAccount;
	}

	public void setNoKartuAccount(String noKartuAccount) {
		this.noKartuAccount = noKartuAccount;
	}

	public String getNamaPemilik() {
		return namaPemilik;
	}

	public void setNamaPemilik(String namaPemilik) {
		this.namaPemilik = namaPemilik;
	}

	public LoginUser getKdPegawaiPembayar() {
		return kdPegawaiPembayar;
	}

	public void setKdPegawaiPembayar(LoginUser kdPegawaiPembayar) {
		this.kdPegawaiPembayar = kdPegawaiPembayar;
	}

	public String getNamaPegawaiPembayar() {
		return namaPegawaiPembayar;
	}

	public void setNamaPegawaiPembayar(String namaPegawaiPembayar) {
		this.namaPegawaiPembayar = namaPegawaiPembayar;
	}

	public String getKeteranganLainnya() {
		return keteranganLainnya;
	}

	public void setKeteranganLainnya(String keteranganLainnya) {
		this.keteranganLainnya = keteranganLainnya;
	}

	public StrukClosing getNoclosing() {
		return noclosing;
	}

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

	public StrukVerifikasi getNoVerifikasi() {
		return noVerifikasi;
	}

	public void setNoVerifikasi(StrukVerifikasi noVerifikasi) {
		this.noVerifikasi = noVerifikasi;
	}

}
