diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java index 657a2937..210b5dc6 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java @@ -363,6 +363,10 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera listDetailJenisProdukException = idsRegDJPAdminNonPK; listDetailJenisProdukException.removeAll(listDetailJenisProduk); } + /* + * TMT KSM Umum mulai menggunakan pembatasan tindakan + */ + Date tmtTindakanKSMUmum = new Date(1738342800000L); /* * Mendapatkan data mentah pelayanan pasien */ @@ -1028,14 +1032,23 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera || CATHLAB.equals(next.get("idRuangan")))) { listPelayananRemun.add(next); capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + } else if (drKsmUmumList.contains(idPegawai) + && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString())) + && (tglAwal.equals(tmtTindakanKSMUmum) || tglAwal.after(tmtTindakanKSMUmum))) { + /* + * Aturan dokter ksm umum + */ + listPelayananRemun.add(next); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } else { /* * Selain dokter-dokter kk pediatrik gawat darurat */ if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { - if (!drKsmUmumList.contains(idPegawai) || !idsDokterUmumExclude - .contains(Integer.parseInt(next.get("idProduk").toString()))) { + if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude + .contains(Integer.parseInt(next.get("idProduk").toString())) + && tglAwal.before(tmtTindakanKSMUmum))) { /* * Dibatasi oleh daftar jenis tindakan tertentu */ @@ -1063,7 +1076,8 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera && !listDetailJenisProduk.contains( Integer.parseInt(next.get("idDetailJenisProduk").toString())))) && IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai) - && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))) { + && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString())) + && tglAwal.before(tmtTindakanKSMUmum)) { /* * Aturan dokter ksm umum di igd */ @@ -1102,8 +1116,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera /* * Diluar pembatasan jenis produk */ - if (!drKsmUmumList.contains(idPegawai) || !idsDokterUmumExclude - .contains(Integer.parseInt(next.get("idProduk").toString()))) { + if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude + .contains(Integer.parseInt(next.get("idProduk").toString())) + && tglAwal.before(tmtTindakanKSMUmum))) { if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && (idsRegDJPPenunjangPA .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) @@ -1173,14 +1188,23 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera || CATHLAB.equals(next.get("idRuangan")))) { listPelayananRemun.add(next); capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + } else if (drKsmUmumList.contains(idPegawai) + && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString())) + && (tglAwal.equals(tmtTindakanKSMUmum) || tglAwal.after(tmtTindakanKSMUmum))) { + /* + * Aturan dokter ksm umum + */ + listPelayananRemun.add(next); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } else { /* * Selain dokter-dokter kk pediatrik gawat darurat */ if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { - if (!drKsmUmumList.contains(idPegawai) || !idsDokterUmumExclude - .contains(Integer.parseInt(next.get("idProduk").toString()))) { + if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude + .contains(Integer.parseInt(next.get("idProduk").toString())) + && tglAwal.before(tmtTindakanKSMUmum))) { /* * Dibatasi oleh daftar jenis tindakan tertentu */ @@ -1208,7 +1232,8 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera && !listDetailJenisProduk.contains( Integer.parseInt(next.get("idDetailJenisProduk").toString())))) && IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai) - && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))) { + && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString())) + && tglAwal.before(tmtTindakanKSMUmum)) { /* * Aturan dokter ksm umum di igd */ @@ -1247,8 +1272,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera /* * Diluar pembatasan jenis produk */ - if (!drKsmUmumList.contains(idPegawai) || !idsDokterUmumExclude - .contains(Integer.parseInt(next.get("idProduk").toString()))) { + if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude + .contains(Integer.parseInt(next.get("idProduk").toString())) + && tglAwal.before(tmtTindakanKSMUmum))) { if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && (idsRegDJPPenunjangPA .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) @@ -1329,14 +1355,26 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera } else { listPelayananNonJknLuarJamKerja.add(next); } + } else if (drKsmUmumList.contains(idPegawai) + && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString())) + && (tglAwal.equals(tmtTindakanKSMUmum) || tglAwal.after(tmtTindakanKSMUmum))) { + /* + * Aturan dokter ksm umum + */ + if (Boolean.parseBoolean(next.get("isJamKerja").toString())) { + listPelayananFfs.add(next); + } else { + listPelayananNonJknLuarJamKerja.add(next); + } } else { /* * Selain dokter-dokter kk pediatrik gawat darurat */ if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { - if (!drKsmUmumList.contains(idPegawai) || !idsDokterUmumExclude - .contains(Integer.parseInt(next.get("idProduk").toString()))) { + if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude + .contains(Integer.parseInt(next.get("idProduk").toString())) + && tglAwal.before(tmtTindakanKSMUmum))) { /* * Dibatasi oleh daftar jenis tindakan tertentu */ @@ -1370,7 +1408,8 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera && !listDetailJenisProduk.contains( Integer.parseInt(next.get("idDetailJenisProduk").toString())))) && IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai) - && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))) { + && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString())) + && tglAwal.before(tmtTindakanKSMUmum)) { /* * Aturan dokter ksm umum di igd */ @@ -1421,8 +1460,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera /* * Diluar pembatasan jenis produk */ - if (!drKsmUmumList.contains(idPegawai) || !idsDokterUmumExclude - .contains(Integer.parseInt(next.get("idProduk").toString()))) { + if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude + .contains(Integer.parseInt(next.get("idProduk").toString())) + && tglAwal.before(tmtTindakanKSMUmum))) { if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && (idsRegDJPPenunjangPA .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))