package com.jasamedika.medifirst2000.vo;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.validation.constraints.NotNull;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.helper.Caption;

public class PelayananPasienDetailVO extends BaseTransactionVO {
	
	private List<RacikanDetailVO> racikan = new ArrayList<RacikanDetailVO>();
	
	public List<RacikanDetailVO> getRacikan() {
		return racikan;
	}

	public void setRacikan(List<RacikanDetailVO> racikan) {
		this.racikan = racikan;
	}

	@Caption(value="Pasien Daftar")
	private PasienDaftarVO pasienDaftar;
	private GenerikVO generik;
	

	public GenerikVO getGenerik() {
		return generik;
	}

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

	@Column(name = "Generik", insertable = false, updatable = false,nullable=true)
	private Integer generikId;
	
	private Byte statusOrder;
	
	private Double jasa;
	
	public Byte getStatusOrder() {
		return statusOrder;
	}

	public void setStatusOrder(Byte statusOrder) {
		this.statusOrder = statusOrder;
	}

	public PasienDaftarVO getPasienDaftar() {
		return pasienDaftar;
	}


	public void setPasienDaftar(PasienDaftarVO pasienDaftar) {
		this.pasienDaftar = pasienDaftar;
	}

	@Caption(value = "Is Pasien")
	@Column(name = "isPasien", nullable = true)
	private Boolean isPasien;
	
	@Caption(value = "Is Pasien")
	@Column(name = "isObat", nullable = true)
	private Boolean isObat;
	
	@Caption(value = "Is Pasien")
	@Column(name = "isDosis", nullable = true)
	private Boolean isDosis;
	
	@Caption(value = "Is Pasien")
	@Column(name = "isRoute", nullable = true)
	private Boolean isRoute;
	
	@Caption(value = "Is Pasien")
	@Column(name = "isDokumentasi", nullable = true)
	private Boolean isDokumentasi;
	
	@Caption(value = "Is Pasien")
	@Column(name = "isWaktu", nullable = true)
	private Boolean isWaktu;
	
	@Caption(value = "Is Pasien")
	@Column(name = "isInformasi", nullable = true)
	private Boolean isInformasi;
	
	public Boolean getIsPasien() {
		return isPasien;
	}


	public void setIsPasien(Boolean isPasien) {
		this.isPasien = isPasien;
	}


	public Boolean getIsObat() {
		return isObat;
	}


	public void setIsObat(Boolean isObat) {
		this.isObat = isObat;
	}


	public Boolean getIsDosis() {
		return isDosis;
	}


	public void setIsDosis(Boolean isDosis) {
		this.isDosis = isDosis;
	}


	public Boolean getIsRoute() {
		return isRoute;
	}


	public void setIsRoute(Boolean isRoute) {
		this.isRoute = isRoute;
	}


	public Boolean getIsDokumentasi() {
		return isDokumentasi;
	}


	public void setIsDokumentasi(Boolean isDokumentasi) {
		this.isDokumentasi = isDokumentasi;
	}


	public Boolean getIsWaktu() {
		return isWaktu;
	}


	public void setIsWaktu(Boolean isWaktu) {
		this.isWaktu = isWaktu;
	}


	public Boolean getIsInformasi() {
		return isInformasi;
	}


	public void setIsInformasi(Boolean isInformasi) {
		this.isInformasi = isInformasi;
	}

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

	
	public KomponenHargaVO getKomponenHarga() {
		return komponenHarga;
	}


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

	@Caption(value = "Tanggal Pelayanan")
	@Column(name = "TglPelayanan", nullable = true)
	private Date tglPelayanan;
	public Date getTglPelayanan() {
		return tglPelayanan;
	}


	public void setTglPelayanan(Date tglPelayanan) {
		this.tglPelayanan = tglPelayanan;
	}

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

	@Caption(value = "Harga Satuan")
	@Column(name = "hargaSatuan", nullable = true)
	private Double hargaSatuan;
	
	@Caption(value = "Harga Jual")
	@Column(name = "HargaJual", nullable = true)
	private Double hargaJual;

	@Caption(value = "Nilai Normal")
	@Column(name = "NilaiNormal", nullable = true)
	private Boolean nilaiNormal;
	
	
	public Double getHargaSatuan() {
		return hargaSatuan;
	}

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

	public Double getHargaJual() {
		return hargaJual;
	}

	public void setHargaJual(Double hargaJual) {
		this.hargaJual = hargaJual;
	}

	public Boolean getNilaiNormal() {
		return nilaiNormal;
	}

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

	public Double getPiutangPenjamin() {
		return piutangPenjamin;
	}

	public void setPiutangPenjamin(Double piutangPenjamin) {
		this.piutangPenjamin = piutangPenjamin;
	}

	public Double getPiutangRumahSakit() {
		return piutangRumahSakit;
	}

	public void setPiutangRumahSakit(Double piutangRumahSakit) {
		this.piutangRumahSakit = piutangRumahSakit;
	}

	@Caption(value = "Piutang Penjamin")
	@Column(name = "piutangPenjamin", nullable = true)
	private Double piutangPenjamin;
	
	@Caption(value = "Piutang Rumah Sakit")
	@Column(name = "piutangRumahSakit", nullable = true)
	private Double piutangRumahSakit;
	
	
	@ManyToOne
	@JoinColumn(name = "StrukOrderFk")

	@Caption(value = "Struk Order")
	private StrukOrderVO strukOrder;

	public StrukOrderVO getStrukOrder() {
		return strukOrder;
	}

	public void setStrukOrder(StrukOrderVO strukOrder) {
		this.strukOrder = strukOrder;
	}

	@Column(name = "StrukOrderFk", insertable = false, updatable = false)
	private String strukOrderId;
	@ManyToOne
	@JoinColumn(name = "JenisObatFk")

	@Caption(value = "Jenis Obat")
	private JenisObatVO jenisObat;

	public JenisObatVO getJenisObat() {
		return jenisObat;
	}

	public void setJenisObat(JenisObatVO jenisObat) {
		this.jenisObat = jenisObat;
	}

	@Column(name = "JenisObatFk", insertable = false, updatable = false)
	private String jenisObatId;

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

	public ProdukVO getProduk() {
		return produk;
	}

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

	@Column(name = "ProdukFk", insertable = false, updatable = false)
	private String produkId;

	@Column(name = "Stock", nullable = true, length = 100)
	@Caption(value = "Stock")
	private Integer stock;

	public Integer getStock() {
		return stock;
	}

	public void setStock(Integer stock) {
		this.stock = stock;
	}

	@Column(name = "Jumlah", nullable = false, length = 100)
	@Caption(value = "Jumlah")
	private Double jumlah;

	public Double getJumlah() {
		return jumlah;
	}

	public void setJumlah(Double jumlah) {
		this.jumlah = jumlah;
	}

	@Column(name = "AturanPakai", nullable = true, length = 100)
	@Caption(value = "AturanPakai")
	private String aturanPakai;

	public String getAturanPakai() {
		return aturanPakai;
	}

	public void setAturanPakai(String aturanPakai) {
		this.aturanPakai = aturanPakai;
	}
	
	@ManyToOne
	@JoinColumn(name = "RouteFk")
	@Caption(value = "Route")
	private RouteFarmasiVO route;

	@Column(name = "RouteFk", insertable = false, updatable = false)
	private String routeId;
	
	
	public RouteFarmasiVO getRoute() {
		return route;
	}

	public void setRoute(RouteFarmasiVO route) {
		this.route = route;
	}

	public StigmaVO getKeteranganPakai() {
		return keteranganPakai;
	}

	public void setKeteranganPakai(StigmaVO keteranganPakai) {
		this.keteranganPakai = keteranganPakai;
	}

	@ManyToOne
	@JoinColumn(name = "KeteranganPakaiFk")
	@Caption(value = "Keterangan Pakai")
	private StigmaVO keteranganPakai;

	@Column(name = "KeteranganPakaiFk", insertable = false, updatable = false)
	private Integer keteranganPakaiId;
	

	@Column(name = "KeteranganPakai2", nullable = true, length = 100)
	@Caption(value = "KeteranganPakai2")
	private String keteranganPakai2;

	public String getKeteranganPakai2() {
		return keteranganPakai2;
	}

	public void setKeteranganPakai2(String keteranganPakai2) {
		this.keteranganPakai2 = keteranganPakai2;
	}

	@Column(name = "KeteranganLain", nullable = true, length = 100)
	@Caption(value = "KeteranganLain")
	private String keteranganLain;

	public String getKeteranganLain() {
		return keteranganLain;
	}

	public void setKeteranganLain(String keteranganLain) {
		this.keteranganLain = keteranganLain;
	}
	
	@Caption(value = "Harga Discount")
	private Double hargaDiscount;
	
	@ManyToOne
	@NotNull(message = "Pelayanan Pasien Tidak boleh Kosong")
	@Caption(value = "PelayananPasien")
	private PelayananPasienVO pelayananPasien;

	@Caption(value = "hargaNetto")
	private Double hargaNetto;

	@Caption(value = "Jumlah Pembulatan")
	private Double jumlahPembulatan;

	@Caption(value = "Is Benar")
	private Boolean isBenar;
	
	@Caption(value = "NoRecTriger")
	private String noRecTriger;

	public Integer getGenerikId() {
		return generikId;
	}

	public void setGenerikId(Integer generikId) {
		this.generikId = generikId;
	}

	public Integer getKomponenHargaId() {
		return komponenHargaId;
	}

	public void setKomponenHargaId(Integer komponenHargaId) {
		this.komponenHargaId = komponenHargaId;
	}

	public String getStrukOrderId() {
		return strukOrderId;
	}

	public void setStrukOrderId(String strukOrderId) {
		this.strukOrderId = strukOrderId;
	}

	public String getJenisObatId() {
		return jenisObatId;
	}

	public void setJenisObatId(String jenisObatId) {
		this.jenisObatId = jenisObatId;
	}

	public String getProdukId() {
		return produkId;
	}

	public void setProdukId(String produkId) {
		this.produkId = produkId;
	}

	public String getRouteId() {
		return routeId;
	}

	public void setRouteId(String routeId) {
		this.routeId = routeId;
	}

	public Integer getKeteranganPakaiId() {
		return keteranganPakaiId;
	}

	public void setKeteranganPakaiId(Integer keteranganPakaiId) {
		this.keteranganPakaiId = keteranganPakaiId;
	}

	public Double getHargaDiscount() {
		return hargaDiscount;
	}

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

	public PelayananPasienVO getPelayananPasien() {
		return pelayananPasien;
	}

	public void setPelayananPasien(PelayananPasienVO pelayananPasien) {
		this.pelayananPasien = pelayananPasien;
	}

	public Double getHargaNetto() {
		return hargaNetto;
	}

	public void setHargaNetto(Double hargaNetto) {
		this.hargaNetto = hargaNetto;
	}

	public Double getJumlahPembulatan() {
		return jumlahPembulatan;
	}

	public void setJumlahPembulatan(Double jumlahPembulatan) {
		this.jumlahPembulatan = jumlahPembulatan;
	}

	public Boolean getIsBenar() {
		return isBenar;
	}

	public void setIsBenar(Boolean isBenar) {
		this.isBenar = isBenar;
	}

	public String getNoRecTriger() {
		return noRecTriger;
	}

	public void setNoRecTriger(String noRecTriger) {
		this.noRecTriger = noRecTriger;
	}

}

