package com.jasamedika.medifirst2000.entities;

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 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 ProdukProduksi
 * 
 * @author Generator
 */
@Entity
@Table(name = "ProdukProduksi_T")
public class ProdukProduksi extends BaseTransaction {
	@ManyToOne
	@JoinColumn(name = "ObjectAsalProdukAsalFk")
	@Caption(value="Object Asal Produk Asal")
	private AsalProduk asalProdukAsal;

	@Column(name = "ObjectAsalProdukAsalFk", insertable=false,updatable=false)
	private Integer asalProdukAsalId;
	
	@ManyToOne
	@JoinColumn(name = "ObjectKondisiProdukAsalReturFk")
	@Caption(value="Object Kondisi Produk Asal Retur")
	private KondisiProduk kondisiProdukAsalRetur;

	@Column(name = "ObjectKondisiProdukAsalReturFk", insertable=false,updatable=false)
	private Integer kondisiProdukAsalReturId;

	@ManyToOne
	@JoinColumn(name = "ObjectProdukAsalFk")
	@NotNull(message="Object Produk Asal Harus Diisi")
	@Caption(value="Object Produk Asal")
	private Produk produkAsal;

	@Column(name = "ObjectProdukAsalFk", insertable=false,updatable=false)
	private Integer produkAsalId;

	@ManyToOne
	@JoinColumn(name = "ObjectProdukHasilFk")
	@NotNull(message="Object Produk Hasil Harus Diisi")
	@Caption(value="Object Produk Hasil")
	private Produk produkHasil;

	@Column(name = "ObjectProdukHasilFk", insertable=false,updatable=false)
	private Integer produkHasilId;

	@Caption(value="Keterangan Alasan Retur")
	@Column(name = "keteranganAlasanRetur", nullable = true)
	private String keteranganAlasanRetur;

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

	@ManyToOne
	@JoinColumn(name = "NoHistoriFk")
	@Caption(value="No Histori")
	private StrukHistori noHistori;

	@Column(name = "NoHistoriFk", insertable=false,updatable=false)
	private String NoHistoriId;

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

	@Column(name = "NoReturFk", insertable=false,updatable=false)
	private String noReturId;

	@ManyToOne
	@JoinColumn(name = "NoStrukTerimaAsalFk")
	@Caption(value="No Struk Terima Asal")
	private StrukPelayanan noStrukTerimaAsal;

	@Column(name = "NoStrukTerimaAsalFk", insertable=false,updatable=false)
	private String noStrukTerimaAsalId;

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

	@Column(name = "NoVerifikasiFk", insertable=false,updatable=false)
	private String noVerifikasiId;

	@Caption(value="Qty Produk Asal")
	@Column(name = "qtyProdukAsal", nullable = true)
	private Double qtyProdukAsal;

	@Caption(value="Qty Produk Asal Retur")
	@Column(name = "qtyProdukAsalRetur", nullable = true)
	private Double qtyProdukAsalRetur;

	@Caption(value="Satuan Produk Asal")
	@Column(name = "satuanProdukAsal", nullable = true)
	private String satuanProdukAsal;

	public AsalProduk getAsalProdukAsal() {
		return asalProdukAsal;
	}

	public void setAsalProdukAsal(AsalProduk asalProdukAsal) {
		this.asalProdukAsal = asalProdukAsal;
	}

	public Integer getAsalProdukAsalId() {
		return asalProdukAsalId;
	}

	public void setAsalProdukAsalId(Integer asalProdukAsalId) {
		this.asalProdukAsalId = asalProdukAsalId;
	}

	public KondisiProduk getKondisiProdukAsalRetur() {
		return kondisiProdukAsalRetur;
	}

	public void setKondisiProdukAsalRetur(KondisiProduk kondisiProdukAsalRetur) {
		this.kondisiProdukAsalRetur = kondisiProdukAsalRetur;
	}

	public Integer getKondisiProdukAsalReturId() {
		return kondisiProdukAsalReturId;
	}

	public void setKondisiProdukAsalReturId(Integer kondisiProdukAsalReturId) {
		this.kondisiProdukAsalReturId = kondisiProdukAsalReturId;
	}

	public Produk getProdukAsal() {
		return produkAsal;
	}

	public void setProdukAsal(Produk produkAsal) {
		this.produkAsal = produkAsal;
	}

	public Integer getProdukAsalId() {
		return produkAsalId;
	}

	public void setProdukAsalId(Integer produkAsalId) {
		this.produkAsalId = produkAsalId;
	}

	public Produk getProdukHasil() {
		return produkHasil;
	}

	public void setProdukHasil(Produk produkHasil) {
		this.produkHasil = produkHasil;
	}

	public Integer getProdukHasilId() {
		return produkHasilId;
	}

	public void setProdukHasilId(Integer produkHasilId) {
		this.produkHasilId = produkHasilId;
	}

	public String getKeteranganAlasanRetur() {
		return keteranganAlasanRetur;
	}

	public void setKeteranganAlasanRetur(String keteranganAlasanRetur) {
		this.keteranganAlasanRetur = keteranganAlasanRetur;
	}

	public String getKeteranganLainnya() {
		return keteranganLainnya;
	}

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

	public StrukHistori getNoHistori() {
		return noHistori;
	}

	public void setNoHistori(StrukHistori noHistori) {
		this.noHistori = noHistori;
	}

	public String getNoHistoriId() {
		return NoHistoriId;
	}

	public void setNoHistoriId(String noHistoriId) {
		NoHistoriId = noHistoriId;
	}

	public StrukRetur getNoRetur() {
		return noRetur;
	}

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

	public StrukPelayanan getNoStrukTerimaAsal() {
		return noStrukTerimaAsal;
	}

	public void setNoStrukTerimaAsal(StrukPelayanan noStrukTerimaAsal) {
		this.noStrukTerimaAsal = noStrukTerimaAsal;
	}

	public String getNoReturId() {
		return noReturId;
	}

	public void setNoReturId(String noReturId) {
		this.noReturId = noReturId;
	}

	public String getNoStrukTerimaAsalId() {
		return noStrukTerimaAsalId;
	}

	public void setNoStrukTerimaAsalId(String noStrukTerimaAsalId) {
		this.noStrukTerimaAsalId = noStrukTerimaAsalId;
	}

	public void setNoVerifikasiId(String noVerifikasiId) {
		this.noVerifikasiId = noVerifikasiId;
	}

	public StrukVerifikasi getNoVerifikasi() {
		return noVerifikasi;
	}

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

	public String getNoVerifikasiId() {
		return noVerifikasiId;
	}

	public Double getQtyProdukAsal() {
		return qtyProdukAsal;
	}

	public void setQtyProdukAsal(Double qtyProdukAsal) {
		this.qtyProdukAsal = qtyProdukAsal;
	}

	public Double getQtyProdukAsalRetur() {
		return qtyProdukAsalRetur;
	}

	public void setQtyProdukAsalRetur(Double qtyProdukAsalRetur) {
		this.qtyProdukAsalRetur = qtyProdukAsalRetur;
	}

	public String getSatuanProdukAsal() {
		return satuanProdukAsal;
	}

	public void setSatuanProdukAsal(String satuanProdukAsal) {
		this.satuanProdukAsal = satuanProdukAsal;
	}
}

