package com.jasamedika.medifirst2000.dao;

import java.util.List;

import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import com.jasamedika.medifirst2000.entities.Pasien;

@Repository("BillingDao")
public interface BillingDao extends PagingAndSortingRepository<Pasien, Integer> {
	
	@Query("select pasienDaftar.noRegistrasi, pasien.noCm,pasien.namaPasien, ruangan.namaRuangan,kamar.namaKamar,kelas.namaKelas,pegawai.namaLengkap,to_char(pasienDaftar.tglRegistrasi,'yyyy-MM-dd'),to_char(pasienDaftar.tglPulang,'yyyy-MM-dd') ,kelompokPasien.namaExternal from AntrianPasienDiPeriksa antrian left join antrian.pasienDaftar pasienDaftar left join pasienDaftar.pasien pasien left join antrian.kamar kamar left join pasienDaftar.ruangan ruangan left join pasienDaftar.kelas kelas left join antrian.pegawai pegawai left join pasienDaftar.kelompokPasien kelompokPasien where pasienDaftar.noRegistrasi=:noRegistrasi")
	public List<Object[]> findByNoRegistrasi(@Param("noRegistrasi") String noRegistrasi);
	
	@Query("select produk.namaProduk, pelayananPasien.hargaJual,pelayananPasien.jumlah, to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd'),produk.deskripsiProduk,pelayananPasien.noRec, ruangan.namaRuangan, produk.id from  PelayananPasien pelayananPasien left join pelayananPasien.pasienDaftar antrian left join antrian.pasienDaftar pasienDaftar left join pasienDaftar.pasien pasien left join pelayananPasien.produk produk left join pasienDaftar.ruangan ruangan where pasienDaftar.noRegistrasi=:noRegistrasi")
	public List<Object[]> findTransaksiByNoRegistrasi(@Param("noRegistrasi") String noRegistrasi);
	
	@Query("select pegawai.namaLengkap, pegawai.id from PelayananPasienPetugas   pelayananPasienPetugas left join pelayananPasienPetugas.pelayananPasien pelayananPasien left join pelayananPasienPetugas.kdpegawai pegawai where pelayananPasien.noRec=:noRec")
	public List<Object[]> findPegawai(@Param("noRec") String noRec);

}

