diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java index 03cfc723..a79e9242 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java @@ -321,6 +321,7 @@ public class Master { public static final Integer[] TANJUNG = { 72, 551 }; public static final int KLINIK_FALSE_EMERGENCY = 309; + public static final int KLINIK_GIGI_KARYAWAN = 702; public static final int KLINIK_KARYAWAN = 70; public static final int LABORATORIUM_PATOLOGI_ANATOMI = 39; public static final int LABORATORIUM_PATOLOGI_KLINIK = 276; 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..1bb2459a 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 @@ -157,12 +157,16 @@ public interface PelayananPasienDao extends PagingAndSortingRepository= pp.hargaJual then coalesce(pp.hargaDiscount,0) " - + "when :jenisDiskon = 1 and ru.id = :ruanganId and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual " + + "(case when :jenisDiskon = 1 and ru.id = :poliKaryawanId and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) " + + "when :jenisDiskon = 1 and ru.id = :poliKaryawanId and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual " + + "when :jenisDiskon = 1 and ru.id = :poliGigiKaryawanId and pr.id in (:listGigiIdPegawai) and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) " + + "when :jenisDiskon = 1 and ru.id = :poliGigiKaryawanId and pr.id in (:listGigiIdPegawai) 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 = 1 and pr.id in (:listObatIdPegawai) and pp.strukResepId is not null and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) " + + "when :jenisDiskon = 1 and pr.id in (:listObatIdPegawai) and pp.strukResepId is not null 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) " @@ -171,15 +175,19 @@ public interface PelayananPasienDao extends PagingAndSortingRepository= 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") + + "when :jenisDiskon = 5 and ru.id = :poliKaryawanId and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) " + + "when :jenisDiskon = 5 and ru.id = :poliKaryawanId and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual " + + "else coalesce(pp.hargaDiscount,0) end) as hargaDiskon," + + "(case when :jenisDiskon = 1 and pr.id in (:listObatIdPegawai) and pp.strukResepId is not null 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("poliKaryawanId") Integer idPoliKaryawan, @Param("poliGigiKaryawanId") Integer idPoliGigiKaryawan, + @Param("listProdukIdPegawai") List listIdProdukPegawai, + @Param("listGigiIdPegawai") List listIdGigiPegawai, + @Param("listObatIdPegawai") List listIdObatPegawai, @Param("listProdukIdPasien") List listIdProdukPasien); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java index 8bb73bf3..c4a6f345 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java @@ -259,16 +259,22 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel List result = new ArrayList<>(); List listIdProdukDiskonPegawai = splitDataSettingDatafixed("listProdukDiskonPegawai"); + List listIdProdukDiskonGigiPegawai = splitDataSettingDatafixed("listProdukDiskonGigiPegawai"); + List listIdProdukDiskonObatPegawai = splitDataSettingDatafixed("listProdukDiskonObatPegawai"); List listIdProdukDiskonPasien = splitDataSettingDatafixed("listProdukDiskonPasien"); List> data = pelayananPasienDao.findLayananTagihan(noRegistrasi, jenisDiskon, Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN), Master.Ruangan.KLINIK_KARYAWAN, - listIdProdukDiskonPegawai, listIdProdukDiskonPasien); + Master.Ruangan.KLINIK_GIGI_KARYAWAN, listIdProdukDiskonPegawai, listIdProdukDiskonGigiPegawai, + listIdProdukDiskonObatPegawai, listIdProdukDiskonPasien); List models = new ArrayList<>(); for (Map map : data) { PelayananPasien pp = pelayananPasienDao.findOne(map.get("noRec").toString()); pp.setHargaDiscount(Double.valueOf(map.get("hargaDiskon").toString())); + if (CommonUtil.isNotNullOrEmpty(map.get("jasa"))) { + pp.setJasa(Double.valueOf(map.get("jasa").toString())); + } models.add(pp); }