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 HargaNettoProdukCitoD
 * 
 * @author Generator
 */
//@Entity
//@Table(name = "HargaNettoProdukCitoD_M")
public class HargaNettoProdukCitoDVO 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 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 = "ObjectDetailJenisProdukFk")
	@NotNull(message="Object Detail Jenis ProdukVO Harus Diisi")
	@Caption(value="Object Detail Jenis Produk")
	private DetailJenisProdukVO detailJenisProduk;

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

	@Column(name = "KdDetailJenisProduk", nullable = false , length = 4)
	public DetailJenisProdukVO getDetailJenisProduk(){
		return this.detailJenisProduk;
	}

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

	@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;

	@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="Persen Harga Cito")
	private Double persenHargaCito;

	public void setPersenHargaCito(Double persenHargaCito) {
		this.persenHargaCito = persenHargaCito;
	}

	@Column(name = "PersenHargaCito", nullable = false )
	public Double getPersenHargaCito(){
		return this.persenHargaCito;
	}

	@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;
	}


}

