diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java index 7342b9dc..e943284a 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java @@ -156,30 +156,27 @@ public interface PelayananPasienDao extends PagingAndSortingRepository> getDataPendapatan(@Param("idJenisPegawai") int idJenisPegawai, @Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir); - @Query("select new Map(pp.noRec as noRec," - + "(case when :jenisDiskon = 1 and ru.id = :ruanganId and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) " - + "when :jenisDiskon = 1 and ru.id = :ruanganId and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual " - + "when :jenisDiskon = 1 and pr.id in (:listProdukIdPegawai) and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) " - + "when :jenisDiskon = 1 and pr.id in (:listProdukIdPegawai) and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual " - + "when :jenisDiskon = 1 and lower(pr.namaProduk) like '%konsul%' and ru.departemenId in (:listDepartemenId) and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) " - + "when :jenisDiskon = 1 and lower(pr.namaProduk) like '%konsul%' and ru.departemenId in (:listDepartemenId) and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual " - + "when :jenisDiskon = 2 and lower(pr.namaProduk) like '%konsul%' and ru.departemenId in (:listDepartemenId) and coalesce(pp.hargaDiscount,0) >= (pp.hargaJual/2) then coalesce(pp.hargaDiscount,0) " - + "when :jenisDiskon = 2 and lower(pr.namaProduk) like '%konsul%' and ru.departemenId in (:listDepartemenId) and coalesce(pp.hargaDiscount,0) < (pp.hargaJual/2) then (pp.hargaJual/2) " - + "when :jenisDiskon in (1,2) and pp.strukResepId is not null and coalesce(pp.hargaDiscount,0) >= (pp.hargaJual/10) then coalesce(pp.hargaDiscount,0) " - + "when :jenisDiskon in (1,2) and pp.strukResepId is not null and coalesce(pp.hargaDiscount,0) < (pp.hargaJual/10) then (pp.hargaJual/10) " - + "when :jenisDiskon in (1,2) and coalesce(pp.hargaDiscount,0) >= (pp.hargaJual/2) then coalesce(pp.hargaDiscount,0) " - + "when :jenisDiskon in (1,2) and coalesce(pp.hargaDiscount,0) < (pp.hargaJual/2) then (pp.hargaJual/2) " - + "when :jenisDiskon in (3,4) and pr.id in (:listProdukIdPasien) and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) " - + "when :jenisDiskon in (3,4) and pr.id in (:listProdukIdPasien) and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual " - + "when :jenisDiskon = 5 and ru.id = :ruanganId and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) " - + "when :jenisDiskon = 5 and ru.id = :ruanganId and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual " - + "else coalesce(pp.hargaDiscount,0) end) as hargaDiskon) " + "from PelayananPasien pp " - + "left join pp.pasienDaftar apd " + "left join apd.pasienDaftar pd " + "left join pp.produk pr " - + "left join apd.ruangan ru " + "where pp.strukFk is null " + "and pd.noRegistrasi = :noRegistrasi " - + "order by pp.produkId") + @Query("select new Map(pp.noRec as noRec,(case " + + "when :jenisDiskon = 1 and ru.id = :klinik and pr.id in (:produkKlinik) and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) " + + "when :jenisDiskon = 1 and ru.id = :klinik and pr.id in (:produkKlinik) and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual " + + "when :jenisDiskon = 1 and ru.id = :klinik and lower(pr.namaProduk) like '%konsul%dokter%' and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) " + + "when :jenisDiskon = 1 and ru.id = :klinik and lower(pr.namaProduk) like '%konsul%dokter%' and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual " + + "when :jenisDiskon = 1 and ru.id in (:labRadiologi) and pr.id in (:produkLabRadiologi) and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) " + + "when :jenisDiskon = 1 and ru.id in (:labRadiologi) and pr.id in (:produkLabRadiologi) and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual " + + "when :jenisDiskon = 1 and ru.id = :gigi and pr.id in (:produkGigi) and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) " + + "when :jenisDiskon = 1 and ru.id = :gigi and pr.id in (:produkGigi) and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual " + + "when :jenisDiskon = 1 and pp.strukResepId is not null and pr.id in (:produkFarmasi) and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) " + + "when :jenisDiskon = 1 and pp.strukResepId is not null and pr.id in (:produkFarmasi) and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual " + + "else coalesce(pp.hargaDiscount,0) end) as hargaDiskon," + + "(case when :jenisDiskon = 1 and pp.strukResepId is not null and pr.id in (:produkFarmasi) then 0.0 else pp.jasa end) as jasa) " + + "from PelayananPasien pp " + "left join pp.pasienDaftar apd " + "left join apd.pasienDaftar pd " + + "left join pp.produk pr " + "left join apd.ruangan ru " + "where pp.strukFk is null " + + "and pd.noRegistrasi = :noRegistrasi " + "order by pp.produkId") List> findLayananTagihan(@Param("noRegistrasi") String noRegistrasi, - @Param("jenisDiskon") Integer jenisDiskon, @Param("listDepartemenId") List listIdDepartemen, - @Param("ruanganId") Integer idRuangan, @Param("listProdukIdPegawai") List listIdProdukPegawai, - @Param("listProdukIdPasien") List listIdProdukPasien); + @Param("jenisDiskon") Integer jenisDiskon, @Param("klinik") Integer klinik, + @Param("produkKlinik") List produkKlinik, @Param("gigi") Integer gigi, + @Param("produkGigi") List produkGigi, @Param("labRadiologi") List labRadiologi, + @Param("produkLabRadiologi") List produkLabRadiologi, + @Param("produkFarmasi") List produkFarmasi); }