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 JenisTransaksi
 * 
 * @author Generator
 */
//@Entity
//@Table(name = "JenisTransaksi_M")
public class JenisTransaksiVO extends BaseMasterVO {
	@Caption(value="Jenis Persen Cito")
	private String jenisPersenCito;

	public void setJenisPersenCito(String jenisPersenCito) {
		this.jenisPersenCito = jenisPersenCito;
	}

	@Column(name = "JenisPersenCito", nullable = false , length = 1)
	public String getJenisPersenCito(){
		return this.jenisPersenCito;
	}

	@Caption(value="Jenis Transaksi")
	private String jenisTransaksi;

	public void setJenisTransaksi(String jenisTransaksi) {
		this.jenisTransaksi = jenisTransaksi;
	}

	@Column(name = "JenisTransaksi", nullable = false , length = 50)
	public String getJenisTransaksi(){
		return this.jenisTransaksi;
	}

	@Caption(value="Kode Jenis Transaksi")
	private Byte kdJenisTransaksi;

	public void setKdJenisTransaksi(Byte kdJenisTransaksi) {
		this.kdJenisTransaksi = kdJenisTransaksi;
	}

	@Column(name = "KdJenisTransaksi", nullable = false )
	public Byte getKdJenisTransaksi(){
		return this.kdJenisTransaksi;
	}

	@ManyToOne
	@JoinColumn(name = "ObjectKelasDefaultFk")
	@Caption(value="Object KelasVO Default")
	private DetailKamarVO kelasDefault;

	public void setKelasDefault(DetailKamarVO kelasDefault) {
		this.kelasDefault = kelasDefault;
	}

	@Column(name = "KdKelasDefault", nullable = true , length = 2)
	public DetailKamarVO getKelasDefault(){
		return this.kelasDefault;
	}

	@Column(name = "ObjectKelasDefaultFk", insertable=false,updatable=false)
	private Integer kelasDefaultId;

	@ManyToOne
	@JoinColumn(name = "ObjectKelompokPelayananFk")
	@Caption(value="Object Kelompok Pelayanan")
	private KelompokPelayananVO kelompokPelayanan;

	public void setKelompokPelayanan(KelompokPelayananVO kelompokPelayanan) {
		this.kelompokPelayanan = kelompokPelayanan;
	}

	@Column(name = "KdKelompokPelayanan", nullable = true )
	public KelompokPelayananVO getKelompokPelayanan(){
		return this.kelompokPelayanan;
	}

	@Column(name = "ObjectKelompokPelayananFk", insertable=false,updatable=false)
	private Integer kelompokPelayananId;

	@ManyToOne
	@JoinColumn(name = "ObjectProdukCitoFk")
	@Caption(value="Object ProdukVO Cito")
	private ProdukVO produkCito;

	public void setProdukCito(ProdukVO produkCito) {
		this.produkCito = produkCito;
	}

	@Column(name = "KdProdukCito", nullable = true , length = 6)
	public ProdukVO getProdukCito(){
		return this.produkCito;
	}

	@Column(name = "ObjectProdukCitoFk", insertable=false,updatable=false)
	private Integer produkCitoId;

	@ManyToOne
	@JoinColumn(name = "ObjectProdukDepositFk")
	@Caption(value="Object ProdukVO Deposit")
	private ProdukVO produkDeposit;

	public void setProdukDeposit(ProdukVO produkDeposit) {
		this.produkDeposit = produkDeposit;
	}

	@Column(name = "KdProdukDeposit", nullable = true , length = 6)
	public ProdukVO getProdukDeposit(){
		return this.produkDeposit;
	}

	@Column(name = "ObjectProdukDepositFk", insertable=false,updatable=false)
	private Integer produkDepositId;

	@ManyToOne
	@JoinColumn(name = "ObjectProdukReturFk")
	@Caption(value="Object ProdukVO Retur")
	private ProdukVO produkRetur;

	public void setProdukRetur(ProdukVO produkRetur) {
		this.produkRetur = produkRetur;
	}

	@Column(name = "KdProdukRetur", nullable = true , length = 6)
	public ProdukVO getProdukRetur(){
		return this.produkRetur;
	}

	@Column(name = "ObjectProdukReturFk", insertable=false,updatable=false)
	private Integer produkReturId;

	@Caption(value="Metode Ambil Harga Netto")
	private Byte metodeAmbilHargaNetto;

	public void setMetodeAmbilHargaNetto(Byte metodeAmbilHargaNetto) {
		this.metodeAmbilHargaNetto = metodeAmbilHargaNetto;
	}

	@Column(name = "MetodeAmbilHargaNetto", nullable = false )
	public Byte getMetodeAmbilHargaNetto(){
		return this.metodeAmbilHargaNetto;
	}

	@Caption(value="Metode Harga Netto")
	private Byte metodeHargaNetto;

	public void setMetodeHargaNetto(Byte metodeHargaNetto) {
		this.metodeHargaNetto = metodeHargaNetto;
	}

	@Column(name = "MetodeHargaNetto", nullable = false )
	public Byte getMetodeHargaNetto(){
		return this.metodeHargaNetto;
	}

	@Caption(value="Metode Stok Harga Netto")
	private Byte metodeStokHargaNetto;

	public void setMetodeStokHargaNetto(Byte metodeStokHargaNetto) {
		this.metodeStokHargaNetto = metodeStokHargaNetto;
	}

	@Column(name = "MetodeStokHargaNetto", nullable = false )
	public Byte getMetodeStokHargaNetto(){
		return this.metodeStokHargaNetto;
	}

	@Caption(value="QJenis Transaksi")
	private Byte qJenisTransaksi;

	public void setqJenisTransaksi(Byte qJenisTransaksi) {
		this.qJenisTransaksi = qJenisTransaksi;
	}

	@Column(name = "QJenisTransaksi", nullable = false )
	public Byte getqJenisTransaksi(){
		return this.qJenisTransaksi;
	}

	@Caption(value="Sistem Harga Netto")
	private Byte sistemHargaNetto;

	public void setSistemHargaNetto(Byte sistemHargaNetto) {
		this.sistemHargaNetto = sistemHargaNetto;
	}

	@Column(name = "SistemHargaNetto", nullable = false )
	public Byte getSistemHargaNetto(){
		return this.sistemHargaNetto;
	}

	@Caption(value="Tanggal Berlaku Tarif")
	private Date tglBerlakuTarif;

	public void setTglBerlakuTarif(Date tglBerlakuTarif) {
		this.tglBerlakuTarif = tglBerlakuTarif;
	}

	@Column(name = "TglBerlakuTarif", nullable = true )
	public Date getTglBerlakuTarif(){
		return this.tglBerlakuTarif;
	}


	/*//
	@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "kdjenistransaksi")
	private Set<KelompokProduk> KelompokProdukSet = new HashSet<KelompokProduk>();

	public Set<KelompokProduk> getKelompokProdukSet() {
		return KelompokProdukSet;
	}

	public void setKelompokProdukSet(Set<KelompokProduk> kelompokProdukSet) {
		KelompokProdukSet = kelompokProdukSet;
	}
*/
}

