package com.jasamedika.medifirst2000.vo;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

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 KomponenHarga
 * 
 * @author Generator
 */
//@Entity
//@Table(name = "KomponenHarga_M")
public class KomponenHargaVO extends BaseMasterVO {
	@ManyToOne
	@JoinColumn(name = "ObjectDepartemenFk")
	@Caption(value="Object Departemen")
	private DepartemenVO departemen;

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

	@Column(name = "KdDepartemen", nullable = true , length = 1)
	public DepartemenVO getDepartemen(){
		return this.departemen;
	}

	@Column(name = "ObjectDepartemenFk", insertable=false,updatable=false)
	private Integer departemenId;

	@ManyToOne
	@JoinColumn(name = "ObjectJenisKomponenHargaFk")
	@NotNull(message="Object Jenis Komponen Harga Harus Diisi")
	@Caption(value="Object Jenis Komponen Harga")
	private JenisKomponenHargaVO jenisKomponenHarga;

	public void setJenisKomponenHarga(JenisKomponenHargaVO jenisKomponenHarga) {
		this.jenisKomponenHarga = jenisKomponenHarga;
	}

	@Column(name = "KdJenisKomponenHarga", nullable = false )
	public JenisKomponenHargaVO getJenisKomponenHarga(){
		return this.jenisKomponenHarga;
	}

	@Column(name = "ObjectJenisKomponenHargaFk", insertable=false,updatable=false)
	private Integer jenisKomponenHargaId;

	@Caption(value="Kode Komponen Harga")
	private Byte kdKomponenHarga;

	public void setKdKomponenHarga(Byte kdKomponenHarga) {
		this.kdKomponenHarga = kdKomponenHarga;
	}

	@Column(name = "KdKomponenHarga", nullable = false )
	public Byte getKdKomponenHarga(){
		return this.kdKomponenHarga;
	}

	@ManyToOne
	@JoinColumn(name = "ObjectProdukPKFk")
	@Caption(value="Object ProdukVO P K")
	private ProdukVO produkPK;

	public void setProdukPK(ProdukVO produkPK) {
		this.produkPK = produkPK;
	}

	@Column(name = "KdProdukPK", nullable = true , length = 6)
	public ProdukVO getProdukPK(){
		return this.produkPK;
	}

	@Column(name = "ObjectProdukPKFk", insertable=false,updatable=false)
	private Integer produkPKId;

	@Caption(value="Komponen Harga")
	private String komponenHarga;

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

	@Column(name = "KomponenHarga", nullable = false , length = 20)
	public String getKomponenHarga(){
		return this.komponenHarga;
	}

	@Caption(value="Nilai Normal")
	private short nilaiNormal;

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

	@Column(name = "NilaiNormal", nullable = true )
	public short getNilaiNormal(){
		return this.nilaiNormal;
	}

	@Caption(value="No Urut")
	private Byte noUrut;

	public void setNoUrut(Byte noUrut) {
		this.noUrut = noUrut;
	}

	@Column(name = "NoUrut", nullable = false )
	public Byte getNoUrut(){
		return this.noUrut;
	}

	@Caption(value="QKomponen Harga")
	private Byte qKomponenHarga;

	public void setqKomponenHarga(Byte qKomponenHarga) {
		this.qKomponenHarga = qKomponenHarga;
	}

	@Column(name = "QKomponenHarga", nullable = false )
	public Byte getqKomponenHarga(){
		return this.qKomponenHarga;
	}

	@Column(name="FactorRate")
	@Caption(value="Factor Rate")
	private Integer factorRate;
	
	@Column(name="OperatorFactorRate")
	@Caption(value="Operator Factor Rate")
	private String operatorFactorRate;
	
	public Integer getFactorRate() {
		return factorRate;
	}

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

	public String getOperatorFactorRate() {
		return operatorFactorRate;
	}

	public void setOperatorFactorRate(String operatorFactorRate) {
		this.operatorFactorRate = operatorFactorRate;
	}
/*	//
	@OneToMany(fetch=FetchType.LAZY, cascade = CascadeType.ALL, mappedBy="kdkomponenharga")
	private Set<HargaNettoDiscPasienPulang> HargaNettoDiscPasienPulangSet = new HashSet<HargaNettoDiscPasienPulang>();

	public Set<HargaNettoDiscPasienPulang> getHargaNettoDiscPasienPulangSet() {
		return HargaNettoDiscPasienPulangSet;
	}

	public void setHargaNettoDiscPasienPulangSet(Set<HargaNettoDiscPasienPulang> hargaNettoDiscPasienPulangSet) {
		HargaNettoDiscPasienPulangSet = hargaNettoDiscPasienPulangSet;
	}


	//
	@OneToMany(fetch=FetchType.LAZY, cascade = CascadeType.ALL, mappedBy="kdkomponenharga")
	private Set<HargaNettoProdukByKelasD> HargaNettoProdukByKelasDSet = new HashSet<HargaNettoProdukByKelasD>();

	public Set<HargaNettoProdukByKelasD> getHargaNettoProdukByKelasDSet() {
		return HargaNettoProdukByKelasDSet;
	}

	public void setHargaNettoProdukByKelasDSet(Set<HargaNettoProdukByKelasD> hargaNettoProdukByKelasDSet) {
		HargaNettoProdukByKelasDSet = hargaNettoProdukByKelasDSet;
	}


	//
	@OneToMany(fetch=FetchType.LAZY, cascade = CascadeType.ALL, mappedBy="kdkomponenharga")
	private Set<HargaNettoProdukCitoD> HargaNettoProdukCitoDSet = new HashSet<HargaNettoProdukCitoD>();

	public Set<HargaNettoProdukCitoD> getHargaNettoProdukCitoDSet() {
		return HargaNettoProdukCitoDSet;
	}

	public void setHargaNettoProdukCitoDSet(Set<HargaNettoProdukCitoD> hargaNettoProdukCitoDSet) {
		HargaNettoProdukCitoDSet = hargaNettoProdukCitoDSet;
	}

	//
	@OneToMany(fetch=FetchType.LAZY, cascade = CascadeType.ALL, mappedBy="kdkomponenharga")
	private Set<JenisPetugasPelaksana> JenisPetugasPelaksanaSet = new HashSet<JenisPetugasPelaksana>();

	public Set<JenisPetugasPelaksana> getJenisPetugasPelaksanaSet() {
		return JenisPetugasPelaksanaSet;
	}

	public void setJenisPetugasPelaksanaSet(Set<JenisPetugasPelaksana> jenisPetugasPelaksanaSet) {
		JenisPetugasPelaksanaSet = jenisPetugasPelaksanaSet;
	}*/

}

