package com.jasamedika.medifirst2000.entities;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;

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

@Entity
@Table(name = "PostingJurnalTransaksiD_T")
@JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" })
public class PostingJurnalTransaksiD {

	@GeneratedValue(generator = "uuid")
	@GenericGenerator(name = "uuid", strategy = "uuid")
	@Column(columnDefinition = "CHAR(32)", unique = true)
	@Id
	public String noRec;

	@Caption(value = "Kd Profile")
	@Column(name = "KdProfile", nullable = true)
	private Integer kdProfile;

	@ManyToOne
	@JoinColumn(name = "NoRecRelated")
	@Caption(value = "Object Posting Jurnal Transaksi")
	private PostingJurnalTransaksi postingJurnalTransaksi;

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

	@Caption(value = "No Posting")
	@Column(name = "NoPosting", nullable = true)
	private String noPosting;

	@Caption(value = "No Jurnal")
	@Column(name = "NoJurnal", nullable = true)
	private Integer noJurnal;

	@ManyToOne
	@JoinColumn(name = "ObjectAccountFk")
	@Caption(value = "Object Account")
	private ChartOfAccount account;

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

	@Caption(value = "Harga Satuan D")
	@Column(name = "HargaSatuanD", nullable = true)
	private Double hargaSatuanD;

	@Caption(value = "Harga Satuan K")
	@Column(name = "HargaSatuanK", nullable = true)
	private Double hargaSatuanK;

	@ManyToOne
	@JoinColumn(name = "NoRetur")
	@Caption(value = "Object No Retur")
	private StrukRetur noRetur;

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

	@Caption(value = "Status Enabled")
	@Column(name = "StatusEnabled", nullable = true)
	private Byte statusEnabled;

	@ManyToOne
	@JoinColumn(name = "NoVerifikasi")
	@Caption(value = "Object No Verifikasi")
	private StrukVerifikasi noVerifikasi;

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

	@ManyToOne
	@JoinColumn(name = "NoClosing")
	@Caption(value = "Object No Closing")
	private StrukClosing noClosing;

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

	public PostingJurnalTransaksi getPostingJurnalTransaksi() {
		return postingJurnalTransaksi;
	}

	public void setPostingJurnalTransaksi(PostingJurnalTransaksi postingJurnalTransaksi) {
		this.postingJurnalTransaksi = postingJurnalTransaksi;
	}

	public String getNoPosting() {
		return noPosting;
	}

	public void setNoPosting(String noPosting) {
		this.noPosting = noPosting;
	}

	public Integer getNoJurnal() {
		return noJurnal;
	}

	public void setNoJurnal(Integer noJurnal) {
		this.noJurnal = noJurnal;
	}

	public ChartOfAccount getAccount() {
		return account;
	}

	public void setAccount(ChartOfAccount account) {
		this.account = account;
	}

	public Double getHargaSatuanD() {
		return hargaSatuanD;
	}

	public void setHargaSatuanD(Double hargaSatuanD) {
		this.hargaSatuanD = hargaSatuanD;
	}

	public Double getHargaSatuanK() {
		return hargaSatuanK;
	}

	public void setHargaSatuanK(Double hargaSatuanK) {
		this.hargaSatuanK = hargaSatuanK;
	}

	public String getNoRec() {
		return noRec;
	}

	public void setNoRec(String noRec) {
		this.noRec = noRec;
	}

	public Integer getKdProfile() {
		return kdProfile;
	}

	public void setKdProfile(Integer kdProfile) {
		this.kdProfile = kdProfile;
	}

	public StrukRetur getNoRetur() {
		return noRetur;
	}

	public void setNoRetur(StrukRetur noRetur) {
		this.noRetur = noRetur;
	}

	public StrukVerifikasi getNoVerifikasi() {
		return noVerifikasi;
	}

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

	public StrukClosing getNoClosing() {
		return noClosing;
	}

	public void setNoClosing(StrukClosing noClosing) {
		this.noClosing = noClosing;
	}

	public Byte getStatusEnabled() {
		return statusEnabled;
	}

	public void setStatusEnabled(Byte statusEnabled) {
		this.statusEnabled = statusEnabled;
	}

}
