package com.jasamedika.medifirst2000.vo;

import java.io.Serializable;
import javax.persistence.*;
import java.util.Date;
import org.hibernate.validator.constraints.NotEmpty;

import com.jasamedika.medifirst2000.base.vo.BaseMasterVO;
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.vo.BaseMasterVO;
import com.jasamedika.medifirst2000.helper.Caption;

/**
 *  class HargaNettoProdukByKelasD
 * 
 * @author Generator
 */
//@Entity
//@Table(name = "HargaNettoProdukByKelasD_M")
public class HargaNettoProdukByKelasDVO extends BaseMasterVO {
	@Caption(value="Factor Rate")
	private Double factorRate;

	public void setFactorRate(Double factorRate) {
		this.factorRate = factorRate;
	}

	@Column(name = "FactorRate", nullable = false )
	public Double getFactorRate(){
		return this.factorRate;
	}

	@Caption(value="Harga Discount")
	private Double hargaDiscount;

	public void setHargaDiscount(Double hargaDiscount) {
		this.hargaDiscount = hargaDiscount;
	}

	@Column(name = "HargaDiscount", nullable = false )
	public Double getHargaDiscount(){
		return this.hargaDiscount;
	}

	@Caption(value="Harga Netto1")
	private Double hargaNetto1;

	public void setHargaNetto1(Double hargaNetto1) {
		this.hargaNetto1 = hargaNetto1;
	}

	@Column(name = "HargaNetto1", nullable = false )
	public Double getHargaNetto1(){
		return this.hargaNetto1;
	}

	@Caption(value="Harga Netto2")
	private Double hargaNetto2;

	public void setHargaNetto2(Double hargaNetto2) {
		this.hargaNetto2 = hargaNetto2;
	}

	@Column(name = "HargaNetto2", nullable = false )
	public Double getHargaNetto2(){
		return this.hargaNetto2;
	}

	@Caption(value="Harga Satuan")
	private Double hargaSatuan;

	public void setHargaSatuan(Double hargaSatuan) {
		this.hargaSatuan = hargaSatuan;
	}

	@Column(name = "HargaSatuan", nullable = false )
	public Double getHargaSatuan(){
		return this.hargaSatuan;
	}

	@ManyToOne
	@JoinColumn(name = "ObjectAsalProdukFk")
	@NotNull(message="Object Asal ProdukVO Harus Diisi")
	@Caption(value="Object Asal Produk")
	private AsalProdukVO asalProduk;

	public void setAsalProduk(AsalProdukVO asalProduk) {
		this.asalProduk = asalProduk;
	}

	@Column(name = "KdAsalProduk", nullable = false )
	public AsalProdukVO getAsalProduk(){
		return this.asalProduk;
	}

	@Column(name = "ObjectAsalProdukFk", insertable=false,updatable=false)
	private Integer asalProdukId;

	@ManyToOne
	@JoinColumn(name = "ObjectJenisTarifFk")
	@NotNull(message="Object Jenis Tarif Harus Diisi")
	@Caption(value="Object Jenis Tarif")
	private JenisTarifVO jenisTarif;

	public void setJenisTarif(JenisTarifVO jenisTarif) {
		this.jenisTarif = jenisTarif;
	}

	@Column(name = "KdJenisTarif", nullable = false )
	public JenisTarifVO getJenisTarif(){
		return this.jenisTarif;
	}

	@Column(name = "ObjectJenisTarifFk", insertable=false,updatable=false)
	private Integer jenisTarifId;

	@ManyToOne
	@JoinColumn(name = "ObjectKelasFk")
	@NotNull(message="Object KelasVO Harus Diisi")
	@Caption(value="Object Kelas")
	private DetailKamarVO kelas;

	public void setKelas(DetailKamarVO kelas) {
		this.kelas = kelas;
	}

	@Column(name = "KdKelas", nullable = false , length = 2)
	public DetailKamarVO getKelas(){
		return this.kelas;
	}

	@Column(name = "ObjectKelasFk", insertable=false,updatable=false)
	private Integer kelasId;

	@ManyToOne
	@JoinColumn(name = "ObjectKomponenHargaFk")
	@NotNull(message="Object Komponen Harga Harus Diisi")
	@Caption(value="Object Komponen Harga")
	private KomponenHargaVO komponenHarga;

	public void setKomponenHarga(KomponenHargaVO komponenHarga) {
		this.komponenHarga = komponenHarga;
	}

	@Column(name = "KdKomponenHarga", nullable = false )
	public KomponenHargaVO getKomponenHarga(){
		return this.komponenHarga;
	}

	@Column(name = "ObjectKomponenHargaFk", insertable=false,updatable=false)
	private Integer komponenHargaId;

	@ManyToOne
	@JoinColumn(name = "ObjectMataUangFk")
	@Caption(value="Object Mata Uang")
	private MataUangVO mataUang;

	public void setMataUang(MataUangVO mataUang) {
		this.mataUang = mataUang;
	}

	@Column(name = "KdMataUang", nullable = true )
	public MataUangVO getMataUang(){
		return this.mataUang;
	}

	@Column(name = "ObjectMataUangFk", insertable=false,updatable=false)
	private Integer mataUangId;

	@ManyToOne
	@JoinColumn(name = "ObjectProdukFk")
	@NotNull(message="Object ProdukVO Harus Diisi")
	@Caption(value="Object Produk")
	private ProdukVO produk;

	public void setProduk(ProdukVO produk) {
		this.produk = produk;
	}

	@Column(name = "KdProduk", nullable = false , length = 6)
	public ProdukVO getProduk(){
		return this.produk;
	}

	@Column(name = "ObjectProdukFk", insertable=false,updatable=false)
	private Integer produkId;

	@Caption(value="Persen Discount")
	private Double persenDiscount;

	public void setPersenDiscount(Double persenDiscount) {
		this.persenDiscount = persenDiscount;
	}

	@Column(name = "PersenDiscount", nullable = false )
	public Double getPersenDiscount(){
		return this.persenDiscount;
	}

	@Caption(value="Qty Current Stok")
	private Double qtyCurrentStok;

	public void setqtyCurrentStok(Double qtyCurrentStok) {
		this.qtyCurrentStok = qtyCurrentStok;
	}

	@Column(name = "QtyCurrentStok", nullable = true )
	public Double getqtyCurrentStok(){
		return this.qtyCurrentStok;
	}

	@Caption(value="Tanggal Berlaku Akhir")
	private Date tglBerlakuAkhir;

	public void setTglBerlakuAkhir(Date tglBerlakuAkhir) {
		this.tglBerlakuAkhir = tglBerlakuAkhir;
	}

	@Column(name = "TglBerlakuAkhir", nullable = true )
	public Date getTglBerlakuAkhir(){
		return this.tglBerlakuAkhir;
	}

	@Caption(value="Tanggal Berlaku Awal")
	private Date tglBerlakuAwal;

	public void setTglBerlakuAwal(Date tglBerlakuAwal) {
		this.tglBerlakuAwal = tglBerlakuAwal;
	}

	@Column(name = "TglBerlakuAwal", nullable = false )
	public Date getTglBerlakuAwal(){
		return this.tglBerlakuAwal;
	}

	@Caption(value="Tanggal Kadaluarsa Last")
	private Date tglKadaluarsaLast;

	public void setTglKadaluarsaLast(Date tglKadaluarsaLast) {
		this.tglKadaluarsaLast = tglKadaluarsaLast;
	}

	@Column(name = "TglKadaluarsaLast", nullable = true )
	public Date getTglKadaluarsaLast(){
		return this.tglKadaluarsaLast;
	}


}

