package com.jasamedika.medifirst2000.vo;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

import com.jasamedika.medifirst2000.base.vo.BaseMasterVO;
import com.jasamedika.medifirst2000.helper.Caption;

/**
 * class Produk
 * 
 * @author Generator
 */
public class ProdukVO extends BaseMasterVO {

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "BahanSampleFk")
	@Caption(value = "Bahan Sample")
	private BahanSampleVO bahanSample;

	public BahanSampleVO getBahanSample() {
		return bahanSample;
	}

	public void setStrukOrder(BahanSampleVO bahanSample) {
		this.bahanSample = bahanSample;
	}

	@Caption(value = "Deskripsi Produk")
	@Column(name = "DeskripsiProduk", nullable = true, length = 300)
	private String deskripsiProduk;

	@Caption(value = "Is Produk Intern")
	@Column(name = "isProdukIntern", nullable = true)
	private Byte isProdukIntern;

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

	@ManyToOne
	@JoinColumn(name = "ObjectBahanProdukFk")
	@Caption(value = "Object Bahan Produk")
	private BahanProdukVO bahanProduk;

	@Caption(value = "Kode Barcode")
	@Column(name = "KdBarcode", nullable = true, length = 50)
	private String kdBarcode;

	@ManyToOne
	@JoinColumn(name = "ObjectBentukProdukFk")
	@Caption(value = "Object Bentuk Produk")
	private BentukProdukVO bentukProduk;

	@ManyToOne
	@JoinColumn(name = "ObjectDepartemenFk")
	@Caption(value = "Object Departemen")
	private DepartemenVO departemen;

	@ManyToOne
	@JoinColumn(name = "ObjectDetailGolonganProdukFk")
	@Caption(value = "Object Detail Golongan Produk")
	private DetailGolonganProdukVO detailGolonganProduk;

	@ManyToOne
	@JoinColumn(name = "ObjectDetailJenisProdukFk")
	@Caption(value = "Object Detail Jenis Produk")
	private DetailJenisProdukVO detailJenisProduk;

	@Column(name = "ObjectDetailJenisProdukFk", insertable = false, updatable = false)
	private Integer detailJenisProdukId;

	@ManyToOne
	@JoinColumn(name = "ObjectFungsiProdukFk")
	@Caption(value = "Object Fungsi Produk")
	private FungsiProdukVO fungsiProduk;

	@ManyToOne
	@JoinColumn(name = "ObjectGolonganProdukFk")
	@Caption(value = "Object Golongan Produk")
	private GolonganProdukVO golonganProduk;

	@ManyToOne
	@JoinColumn(name = "ObjectGProdukFk")
	@Caption(value = "Object G Produk")
	private GeneralProdukVO gProduk;

	@ManyToOne
	@JoinColumn(name = "ObjectJenisPeriksaPenunjangFk")
	@Caption(value = "Object JenisPeriksaPenunjang")
	private JenisPeriksaPenunjangVO jenisPeriksaPenunjang;

	@ManyToOne
	@JoinColumn(name = "ObjectKategoryProdukFk")
	@Caption(value = "Object Kategory Produk")
	private KategoryProdukVO kategoryProduk;

	@ManyToOne
	@JoinColumn(name = "ObjectLevelProdukFk")
	@Caption(value = "Object Level Produk")
	private LevelProdukVO levelProduk;

	@Caption(value = "Kode Produk")
	@Column(name = "KdProduk", nullable = false, length = 6)
	private String kdProduk;

	@Caption(value = "Kode Produk Intern")
	@Column(name = "KdProdukIntern", nullable = true, length = 15)
	private String kdProdukIntern;

	@ManyToOne
	@JoinColumn(name = "ObjectProdusenProdukFk")
	@Caption(value = "Object Produsen Produk")
	private ProdusenProdukVO produsenProduk;

	@ManyToOne
	@JoinColumn(name = "ObjectSatuanBesarFk")
	@Caption(value = "Object Satuan Besar")
	private SatuanBesarVO satuanBesar;

	@ManyToOne
	@JoinColumn(name = "ObjectSatuanKecilFk")
	@Caption(value = "Object Satuan Kecil")
	private SatuanKecilVO satuanKecil;

	@ManyToOne
	@JoinColumn(name = "ObjectSatuanStandarFk")
	@Caption(value = "Object Satuan Standar")
	private SatuanStandarVO satuanStandar;

	@ManyToOne
	@JoinColumn(name = "ObjectStatusProdukFk")
	@Caption(value = "Object Status Produk")
	private StatusProdukVO statusProduk;

	@ManyToOne
	@JoinColumn(name = "ObjectTypeProdukFk")
	@Caption(value = "Object Type Produk")
	private TypeProdukVO typeProduk;

	@ManyToOne
	@JoinColumn(name = "ObjectUnitLaporanFk")
	@Caption(value = "Object Unit Laporan")
	private UnitLaporanVO unitLaporan;

	@ManyToOne
	@JoinColumn(name = "ObjectWarnaProdukFk")
	@Caption(value = "Object Warna Produk")
	private WarnaProdukVO warnaProduk;

	@Caption(value = "Kekuatan")
	@Column(name = "Kekuatan", nullable = true, length = 20)
	private String kekuatan;

	@Caption(value = "Nama Produk")
	@Column(name = "NamaProduk", nullable = false, length = 150)
	private String namaProduk;

	@Caption(value = "Nilai Normal")
	@Column(name = "NilaiNormal", nullable = false)
	private short nilaiNormal;

	@Caption(value = "QProduk")
	@Column(name = "QProduk", nullable = false)
	private Integer qProduk;

	@Caption(value = "Qty Jual Terkecil")
	@Column(name = "QtyJualTerkecil", nullable = false)
	private Double qtyJualTerkecil;

	@Caption(value = "Qty Kalori")
	@Column(name = "QtyKalori", nullable = true)
	private Double qtyKalori;

	@Caption(value = "Qty Karbohidrat")
	@Column(name = "QtyKarbohidrat", nullable = true)
	private Double qtyKarbohidrat;

	@Caption(value = "Qty Lemak")
	@Column(name = "QtyLemak", nullable = true)
	private Double qtyLemak;

	@Caption(value = "Qty Porsi")
	@Column(name = "QtyPorsi", nullable = true)
	private Double qtyPorsi;

	@Caption(value = "Qty Protein")
	@Column(name = "QtyProtein", nullable = true)
	private Double qtyProtein;

	@Caption(value = "Qty Satu Kemasan")
	@Column(name = "QtySatuKemasan", nullable = false)
	private short qtySatuKemasan;

	@Caption(value = "Qty Terkecil")
	@Column(name = "QtyTerkecil", nullable = false)
	private Double qtyTerkecil;

	@Caption(value = "Tanggal Produksi")
	@Column(name = "TglProduksi", nullable = true)
	private Date tglProduksi;

	@ManyToOne
	@JoinColumn(name = "ObjectGenerikFk")
	@Caption(value = "Object Generik")
	private GenerikVO generik;

	@ManyToOne
	@JoinColumn(name = "ObjectSediaanFk")
	@Caption(value = "Object Sediaan")
	private SediaanVO sediaan;

	@ManyToOne
	@JoinColumn(name = "ObjectDetailObatFk")
	@Caption(value = "Object Detail Obat")
	private DetailObatVO detailObat;

	@ManyToOne
	@JoinColumn(name = "ObjectStatusBarangFk")
	@Caption(value = "Object Detail Obat")
	private StatusBarangVO statusBarang;

	@ManyToOne
	@JoinColumn(name = "ObjectMerkProdukFk")
	@Caption(value = "Object Merk Produk")
	private MerkProdukVO merkProduk;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "golonganDarahFk")
	@Caption(value = "Golongan Darah")
	private GolonganDarahVO golonganDarah;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "rhesusFk")
	@Caption(value = "Rhesus")
	private RhesusVO rhesus;

	public GolonganDarahVO getGolonganDarah() {
		return golonganDarah;
	}

	public void setGolonganDarah(GolonganDarahVO golonganDarah) {
		this.golonganDarah = golonganDarah;
	}

	public RhesusVO getRhesus() {
		return rhesus;
	}

	public void setRhesus(RhesusVO rhesus) {
		this.rhesus = rhesus;
	}

	public GenerikVO getGenerik() {
		return generik;
	}

	public void setGenerik(GenerikVO generik) {
		this.generik = generik;
	}

	public SediaanVO getSediaan() {
		return sediaan;
	}

	public void setSediaan(SediaanVO sediaan) {
		this.sediaan = sediaan;
	}

	public DetailObatVO getDetailObat() {
		return detailObat;
	}

	public void setDetailObat(DetailObatVO detailObat) {
		this.detailObat = detailObat;
	}

	public StatusBarangVO getStatusBarang() {
		return statusBarang;
	}

	public void setStatusBarang(StatusBarangVO statusBarang) {
		this.statusBarang = statusBarang;
	}

	public RekananVO getRekanan() {
		return rekanan;
	}

	public void setRekanan(RekananVO rekanan) {
		this.rekanan = rekanan;
	}

	@ManyToOne
	@JoinColumn(name = "ObjectRekananFk")
	@Caption(value = "Object Rekanan")
	private RekananVO rekanan;

	public String getDeskripsiProduk() {
		return deskripsiProduk;
	}

	public void setDeskripsiProduk(String deskripsiProduk) {
		this.deskripsiProduk = deskripsiProduk;
	}

	public Byte getIsProdukIntern() {
		return isProdukIntern;
	}

	public void setIsProdukIntern(Byte isProdukIntern) {
		this.isProdukIntern = isProdukIntern;
	}

	public ChartOfAccountVO getAccount() {
		return account;
	}

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

	public BahanProdukVO getBahanProduk() {
		return bahanProduk;
	}

	public void setBahanProduk(BahanProdukVO bahanProduk) {
		this.bahanProduk = bahanProduk;
	}

	public String getKdBarcode() {
		return kdBarcode;
	}

	public void setKdBarcode(String kdBarcode) {
		this.kdBarcode = kdBarcode;
	}

	public BentukProdukVO getBentukProduk() {
		return bentukProduk;
	}

	public void setBentukProduk(BentukProdukVO bentukProduk) {
		this.bentukProduk = bentukProduk;
	}

	public DepartemenVO getDepartemen() {
		return departemen;
	}

	public void setDepartemen(DepartemenVO departemen) {
		this.departemen = departemen;
	}

	public DetailGolonganProdukVO getDetailGolonganProduk() {
		return detailGolonganProduk;
	}

	public void setDetailGolonganProduk(DetailGolonganProdukVO detailGolonganProduk) {
		this.detailGolonganProduk = detailGolonganProduk;
	}

	public DetailJenisProdukVO getDetailJenisProduk() {
		return detailJenisProduk;
	}

	public void setDetailJenisProduk(DetailJenisProdukVO detailJenisProduk) {
		this.detailJenisProduk = detailJenisProduk;
	}

	public FungsiProdukVO getFungsiProduk() {
		return fungsiProduk;
	}

	public void setFungsiProduk(FungsiProdukVO fungsiProduk) {
		this.fungsiProduk = fungsiProduk;
	}

	public GolonganProdukVO getGolonganProduk() {
		return golonganProduk;
	}

	public void setGolonganProduk(GolonganProdukVO golonganProduk) {
		this.golonganProduk = golonganProduk;
	}

	public GeneralProdukVO getgProduk() {
		return gProduk;
	}

	public void setgProduk(GeneralProdukVO gProduk) {
		this.gProduk = gProduk;
	}

	public JenisPeriksaPenunjangVO getJenisPeriksaPenunjang() {
		return jenisPeriksaPenunjang;
	}

	public void setJenisPeriksaPenunjang(JenisPeriksaPenunjangVO jenisPeriksaPenunjang) {
		this.jenisPeriksaPenunjang = jenisPeriksaPenunjang;
	}

	public KategoryProdukVO getKategoryProduk() {
		return kategoryProduk;
	}

	public void setKategoryProduk(KategoryProdukVO kategoryProduk) {
		this.kategoryProduk = kategoryProduk;
	}

	public LevelProdukVO getLevelProduk() {
		return levelProduk;
	}

	public void setLevelProduk(LevelProdukVO levelProduk) {
		this.levelProduk = levelProduk;
	}

	public String getKdProduk() {
		return kdProduk;
	}

	public void setKdProduk(String kdProduk) {
		this.kdProduk = kdProduk;
	}

	public String getKdProdukIntern() {
		return kdProdukIntern;
	}

	public void setKdProdukIntern(String kdProdukIntern) {
		this.kdProdukIntern = kdProdukIntern;
	}

	public ProdusenProdukVO getProdusenProduk() {
		return produsenProduk;
	}

	public void setProdusenProduk(ProdusenProdukVO produsenProduk) {
		this.produsenProduk = produsenProduk;
	}

	public SatuanBesarVO getSatuanBesar() {
		return satuanBesar;
	}

	public void setSatuanBesar(SatuanBesarVO satuanBesar) {
		this.satuanBesar = satuanBesar;
	}

	public SatuanKecilVO getSatuanKecil() {
		return satuanKecil;
	}

	public void setSatuanKecil(SatuanKecilVO satuanKecil) {
		this.satuanKecil = satuanKecil;
	}

	public SatuanStandarVO getSatuanStandar() {
		return satuanStandar;
	}

	public void setSatuanStandar(SatuanStandarVO satuanStandar) {
		this.satuanStandar = satuanStandar;
	}

	public StatusProdukVO getStatusProduk() {
		return statusProduk;
	}

	public void setStatusProduk(StatusProdukVO statusProduk) {
		this.statusProduk = statusProduk;
	}

	public TypeProdukVO getTypeProduk() {
		return typeProduk;
	}

	public void setTypeProduk(TypeProdukVO typeProduk) {
		this.typeProduk = typeProduk;
	}

	public UnitLaporanVO getUnitLaporan() {
		return unitLaporan;
	}

	public void setUnitLaporan(UnitLaporanVO unitLaporan) {
		this.unitLaporan = unitLaporan;
	}

	public WarnaProdukVO getWarnaProduk() {
		return warnaProduk;
	}

	public void setWarnaProduk(WarnaProdukVO warnaProduk) {
		this.warnaProduk = warnaProduk;
	}

	public String getKekuatan() {
		return kekuatan;
	}

	public void setKekuatan(String kekuatan) {
		this.kekuatan = kekuatan;
	}

	public String getNamaProduk() {
		return namaProduk;
	}

	public void setNamaProduk(String namaProduk) {
		this.namaProduk = namaProduk;
	}

	public short getNilaiNormal() {
		return nilaiNormal;
	}

	public void setNilaiNormal(short nilaiNormal) {
		this.nilaiNormal = nilaiNormal;
	}

	public Integer getqProduk() {
		return qProduk;
	}

	public void setqProduk(Integer qProduk) {
		this.qProduk = qProduk;
	}

	public Double getQtyJualTerkecil() {
		return qtyJualTerkecil;
	}

	public void setQtyJualTerkecil(Double qtyJualTerkecil) {
		this.qtyJualTerkecil = qtyJualTerkecil;
	}

	public Double getQtyKalori() {
		return qtyKalori;
	}

	public void setQtyKalori(Double qtyKalori) {
		this.qtyKalori = qtyKalori;
	}

	public Double getQtyKarbohidrat() {
		return qtyKarbohidrat;
	}

	public void setQtyKarbohidrat(Double qtyKarbohidrat) {
		this.qtyKarbohidrat = qtyKarbohidrat;
	}

	public Double getQtyLemak() {
		return qtyLemak;
	}

	public void setQtyLemak(Double qtyLemak) {
		this.qtyLemak = qtyLemak;
	}

	public Double getQtyPorsi() {
		return qtyPorsi;
	}

	public void setQtyPorsi(Double qtyPorsi) {
		this.qtyPorsi = qtyPorsi;
	}

	public Double getQtyProtein() {
		return qtyProtein;
	}

	public void setQtyProtein(Double qtyProtein) {
		this.qtyProtein = qtyProtein;
	}

	public short getQtySatuKemasan() {
		return qtySatuKemasan;
	}

	public void setQtySatuKemasan(short qtySatuKemasan) {
		this.qtySatuKemasan = qtySatuKemasan;
	}

	public Double getQtyTerkecil() {
		return qtyTerkecil;
	}

	public void setQtyTerkecil(Double qtyTerkecil) {
		this.qtyTerkecil = qtyTerkecil;
	}

	public Date getTglProduksi() {
		return tglProduksi;
	}

	public void setTglProduksi(Date tglProduksi) {
		this.tglProduksi = tglProduksi;
	}

	public MerkProdukVO getMerkProduk() {
		return merkProduk;
	}

	public void setMerkProduk(MerkProdukVO merkProduk) {
		this.merkProduk = merkProduk;
	}

	// add by Arya
	@Caption(value = "Status")
	@Column(name = "Status", nullable = true)
	private String status;

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}
}
