package com.jasamedika.medifirst2000.dao; import java.util.List; import java.util.Map; 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.PelayananFarmakologi; /** * @author salmanoe * @since Jun 20, 2022 * */ @Repository("pelayananFarmakologiDao") public interface PelayananFarmakologiDao extends PagingAndSortingRepository { @Query("select pf from PelayananFarmakologi pf " + "where pf.statusEnabled is true " + "and to_char(pf.tglPelayanan,'yyyy-MM') = :bulan " + "and pf.pegawaiId = :pegawaiId") List findAllByKontrak(@Param("bulan") String bulan, @Param("pegawaiId") Integer idPegawai); @Query("select new Map(pfk.noRec as noRec," + "pfk.tglPelayanan as tglPelayanan," + "pfk.skor as skor," + "pfk.jumlah as jumlah," + "pfk.skor*pfk.jumlah as tSkor," + "pfk.catatan as detail," + "pf.id as produkId," + "pf.namaProduk as namaProduk," + "pf.kdProduk as kdProduk," + "(case when pf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' " + "when pf.kdProduk = 2 then 'pelayanan Pasien (Nontarif)' " + "when pf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as kodeProduk," + "pg.id as pegawaiId," + "pg.namaLengkap as namaLengkap) " + "from PelayananFarmakologi pfk " + "inner join pfk.produk pf " + "inner join pfk.pegawai pg " + "where pfk.statusEnabled is true " + "and pf.statusEnabled is true " + "and pg.statusEnabled is true " + "and to_char(pfk.tglPelayanan,'yyyy-MM') = :bulan " + "and pfk.pegawaiId = :pegawaiId " + "order by pf.namaProduk, pfk.tglPelayanan") List> findPelayananFarmakologi(@Param("bulan") String bulan, @Param("pegawaiId") Integer idPegawai); @Query("select new Map(pfk.tglPelayanan as tglPelayanan," + "to_char(pfk.tglPelayanan,'yyyy-MM-dd HH24:MI:ss') as tglPelayananFormatted," + "pfk.jumlah as jumlah," + "pfk.catatan as catatan) " + "from PelayananFarmakologi pfk " + "inner join pfk.pegawai pg " + "inner join pfk.produk pf " + "where pfk.statusEnabled is true " + "and pf.statusEnabled is true " + "and pg.statusEnabled is true " + "and pg.id = :pegawaiId " + "and pf.id = :produkId " + "and to_char(pfk.tglPelayanan,'yyyy-MM-dd') = :tglPelayanan") List> findPelayananFarmakologiDetail(@Param("pegawaiId") Integer idPegawai, @Param("produkId") Integer idProduk, @Param("tglPelayanan") String tglPelayanan); }