From 9bc7d6a4a6550addd07a70f10377a1f66589cc0b Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Fri, 15 Mar 2024 22:42:58 +0700 Subject: [PATCH 1/2] Update PelayananPasienServiceImpl.java Penyesuaian non-diskon jasa medis tetap dipengaruhi diskon jasa medis komponen lain karena tarif setelah diskon berubah --- .../impl/PelayananPasienServiceImpl.java | 77 +++---------------- 1 file changed, 12 insertions(+), 65 deletions(-) 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 582d7928..bbbcdd52 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 @@ -3635,6 +3635,15 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel double totalDiskonAn = Double.parseDouble(d.get("totalDiskonAn").toString()); double totalPersenDiskonSayatanAn = Double.parseDouble(d.get("totalPersenDiskonSayatanAn").toString()); double totalHargaAn = Double.parseDouble(d.get("totalHargaAn").toString()); + double totalDiskon = 0.0; + if (Double.parseDouble(d.get("totalPersenDiskonD").toString()) > 0) + totalDiskon += totalDiskonD - (totalPersenDiskonSayatanD * totalHargaD / 100); + if (Double.parseDouble(d.get("totalPersenDiskonAs").toString()) > 0) + totalDiskon += totalDiskonAs - (totalPersenDiskonSayatanAs * totalHargaAs / 100); + if (Double.parseDouble(d.get("totalPersenDiskonAn").toString()) > 0) + totalDiskon += totalDiskonAn - (totalPersenDiskonSayatanAn * totalHargaAn / 100); + double hargaJualSetelahDiskon = hargaJual - totalDiskon; + double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon; if (Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0 && Double.parseDouble(d.get("diskonD").toString()) >= 0.0 && Double.parseDouble(d.get("persenDiskonAs").toString()) > 0.0 @@ -3645,15 +3654,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel && Double.parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0 && Double .parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0 && Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) { - double totalDiskon = 0.0; - if (Double.parseDouble(d.get("totalPersenDiskonD").toString()) > 0) - totalDiskon += totalDiskonD - (totalPersenDiskonSayatanD * totalHargaD / 100); - if (Double.parseDouble(d.get("totalPersenDiskonAs").toString()) > 0) - totalDiskon += totalDiskonAs - (totalPersenDiskonSayatanAs * totalHargaAs / 100); - if (Double.parseDouble(d.get("totalPersenDiskonAn").toString()) > 0) - totalDiskon += totalDiskonAn - (totalPersenDiskonSayatanAn * totalHargaAn / 100); - double hargaJualSetelahDiskon = hargaJual - totalDiskon; - double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon; double persenRemunOperator = 100.00 - Double.parseDouble(d.get("persenDiskonD").toString()); double persenRemunAsisten = 100.00 - Double.parseDouble(d.get("persenDiskonAs").toString()); double persenRemunAnestesi = 100.00 - Double.parseDouble(d.get("persenDiskonAn").toString()); @@ -3686,15 +3686,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && Double.parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0 && Double .parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0))) { - double totalDiskon = 0.0; - if (Double.parseDouble(d.get("totalPersenDiskonD").toString()) > 0) - totalDiskon += totalDiskonD - (totalPersenDiskonSayatanD * totalHargaD / 100); - if (Double.parseDouble(d.get("totalPersenDiskonAs").toString()) > 0) - totalDiskon += totalDiskonAs - (totalPersenDiskonSayatanAs * totalHargaAs / 100); - if (Double.parseDouble(d.get("totalPersenDiskonAn").toString()) > 0) - totalDiskon += totalDiskonAn - (totalPersenDiskonSayatanAn * totalHargaAn / 100); - double hargaJualSetelahDiskon = hargaJual - totalDiskon; - double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon; double persenRemunOperator = 100.00 - Double.parseDouble(d.get("persenDiskonD").toString()); double persenRemunAsisten = 100.00 - Double.parseDouble(d.get("persenDiskonAs").toString()); double hargaJasaOperator = persenRemunOperator * hargaJasa / 100; @@ -3723,15 +3714,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && Double.parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0 && Double .parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) { - double totalDiskon = 0.0; - if (Double.parseDouble(d.get("totalPersenDiskonD").toString()) > 0) - totalDiskon += totalDiskonD - (totalPersenDiskonSayatanD * totalHargaD / 100); - if (Double.parseDouble(d.get("totalPersenDiskonAs").toString()) > 0) - totalDiskon += totalDiskonAs - (totalPersenDiskonSayatanAs * totalHargaAs / 100); - if (Double.parseDouble(d.get("totalPersenDiskonAn").toString()) > 0) - totalDiskon += totalDiskonAn - (totalPersenDiskonSayatanAn * totalHargaAn / 100); - double hargaJualSetelahDiskon = hargaJual - totalDiskon; - double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon; double persenRemunOperator = 100.00 - Double.parseDouble(d.get("persenDiskonD").toString()); double persenRemunAnestesi = 100.00 - Double.parseDouble(d.get("persenDiskonAn").toString()); double hargaJasaOperator = persenRemunOperator * hargaJasa / 100; @@ -3760,15 +3742,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && Double.parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0 && Double .parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) { - double totalDiskon = 0.0; - if (Double.parseDouble(d.get("totalPersenDiskonD").toString()) > 0) - totalDiskon += totalDiskonD - (totalPersenDiskonSayatanD * totalHargaD / 100); - if (Double.parseDouble(d.get("totalPersenDiskonAs").toString()) > 0) - totalDiskon += totalDiskonAs - (totalPersenDiskonSayatanAs * totalHargaAs / 100); - if (Double.parseDouble(d.get("totalPersenDiskonAn").toString()) > 0) - totalDiskon += totalDiskonAn - (totalPersenDiskonSayatanAn * totalHargaAn / 100); - double hargaJualSetelahDiskon = hargaJual - totalDiskon; - double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon; double persenRemunAsisten = 100.00 - Double.parseDouble(d.get("persenDiskonAs").toString()); double persenRemunAnestesi = 100.00 - Double.parseDouble(d.get("persenDiskonAn").toString()); double hargaJasaAsisten = persenRemunAsisten * hargaJasa / 100; @@ -3796,15 +3769,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel && Double.parseDouble(d.get("diskonAn").toString()) <= 0.0 && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && Double.parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0))) { - double totalDiskon = 0.0; - if (Double.parseDouble(d.get("totalPersenDiskonD").toString()) > 0) - totalDiskon += totalDiskonD - (totalPersenDiskonSayatanD * totalHargaD / 100); - if (Double.parseDouble(d.get("totalPersenDiskonAs").toString()) > 0) - totalDiskon += totalDiskonAs - (totalPersenDiskonSayatanAs * totalHargaAs / 100); - if (Double.parseDouble(d.get("totalPersenDiskonAn").toString()) > 0) - totalDiskon += totalDiskonAn - (totalPersenDiskonSayatanAn * totalHargaAn / 100); - double hargaJualSetelahDiskon = hargaJual - totalDiskon; - double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon; double persenRemunOperator = 100.00 - Double.parseDouble(d.get("persenDiskonD").toString()); builder.nilai(persenRemunOperator * hargaJasa / 100); if (isFrontNote) { @@ -3824,15 +3788,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel && Double.parseDouble(d.get("diskonAn").toString()) <= 0.0 && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && Double.parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0))) { - double totalDiskon = 0.0; - if (Double.parseDouble(d.get("totalPersenDiskonD").toString()) > 0) - totalDiskon += totalDiskonD - (totalPersenDiskonSayatanD * totalHargaD / 100); - if (Double.parseDouble(d.get("totalPersenDiskonAs").toString()) > 0) - totalDiskon += totalDiskonAs - (totalPersenDiskonSayatanAs * totalHargaAs / 100); - if (Double.parseDouble(d.get("totalPersenDiskonAn").toString()) > 0) - totalDiskon += totalDiskonAn - (totalPersenDiskonSayatanAn * totalHargaAn / 100); - double hargaJualSetelahDiskon = hargaJual - totalDiskon; - double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon; double persenRemunAsisten = 100.00 - Double.parseDouble(d.get("persenDiskonAs").toString()); builder.nilai(persenRemunAsisten * hargaJasa / 100); if (isFrontNote) { @@ -3852,15 +3807,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel && Double.parseDouble(d.get("diskonAs").toString()) <= 0.0 && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) { - double totalDiskon = 0.0; - if (Double.parseDouble(d.get("totalPersenDiskonD").toString()) > 0) - totalDiskon += totalDiskonD - (totalPersenDiskonSayatanD * totalHargaD / 100); - if (Double.parseDouble(d.get("totalPersenDiskonAs").toString()) > 0) - totalDiskon += totalDiskonAs - (totalPersenDiskonSayatanAs * totalHargaAs / 100); - if (Double.parseDouble(d.get("totalPersenDiskonAn").toString()) > 0) - totalDiskon += totalDiskonAn - (totalPersenDiskonSayatanAn * totalHargaAn / 100); - double hargaJualSetelahDiskon = hargaJual - totalDiskon; - double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon; double persenRemunAnestesi = 100.00 - Double.parseDouble(d.get("persenDiskonAn").toString()); builder.nilai(persenRemunAnestesi * hargaJasa / 100); if (isFrontNote) { @@ -3873,8 +3819,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel + "% karena diskon komponen anestesi " + d.get("persenDiskonAn").toString() + "%"); } } else { - builder.nilai(persenRemunerasi * hargaJual); - builder.keterangan(""); + builder.nilai(persenRemunerasi * hargaJualSetelahDiskon); + builder.keterangan( + " dan dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) + " terlebih dahulu"); } return builder.build(); } From 304a0b3b90acc3f381c6cece78b7a9674195f09d Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Mon, 18 Mar 2024 10:30:01 +0700 Subject: [PATCH 2/2] Update PelayananPasienServiceImpl.java Custom rule - dokter PA tidak boleh klaim asisten spesialis --- .../impl/PelayananPasienServiceImpl.java | 43 +++++++++++++------ 1 file changed, 31 insertions(+), 12 deletions(-) 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 bbbcdd52..0e4a9cb9 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 @@ -1169,8 +1169,14 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * Pengecualian daftar tindakan penunjang yang * bebas klaim */ - listPelayananRemun.add(next); - capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + if (DOKTER_PEMERIKSA.equals(next.get("idJenisPelaksana"))) { + /* + * Dokter PA klaim hanya boleh dokter + * pemeriksa + */ + listPelayananRemun.add(next); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + } } else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk")) || (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk")) && !Arrays.asList(NONLOGBOOK).contains( @@ -1229,8 +1235,10 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * Pengecualian daftar tindakan penunjang yang * bebas klaim */ - listPelayananRemun.add(next); - capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + if (DOKTER_PEMERIKSA.equals(next.get("idJenisPelaksana"))) { + listPelayananRemun.add(next); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + } } else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk")) || (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk")) && !Arrays.asList(NONLOGBOOK).contains( @@ -1290,8 +1298,10 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * Pengecualian daftar tindakan penunjang yang * bebas klaim */ - listPelayananRemun.add(next); - capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + if (DOKTER_PEMERIKSA.equals(next.get("idJenisPelaksana"))) { + listPelayananRemun.add(next); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + } } else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk")) || (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk")) && !Arrays.asList(NONLOGBOOK).contains( @@ -1350,8 +1360,10 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * Pengecualian daftar tindakan penunjang yang * bebas klaim */ - listPelayananRemun.add(next); - capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + if (DOKTER_PEMERIKSA.equals(next.get("idJenisPelaksana"))) { + listPelayananRemun.add(next); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + } } else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk")) || (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk")) && !Arrays.asList(NONLOGBOOK).contains( @@ -1407,7 +1419,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * Pengecualian daftar tindakan penunjang yang * bebas klaim */ - listPelayananFfs.add(next); + if (DOKTER_PEMERIKSA.equals(next.get("idJenisPelaksana"))) + listPelayananFfs.add(next); } else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk")) || (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk")) && !Arrays.asList(NONLOGBOOK).contains( @@ -1461,7 +1474,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * Pengecualian daftar tindakan penunjang yang * bebas klaim */ - listPelayananFfs.add(next); + if (DOKTER_PEMERIKSA.equals(next.get("idJenisPelaksana"))) + listPelayananFfs.add(next); } else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk")) || (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk")) && !Arrays.asList(NONLOGBOOK).contains( @@ -3820,8 +3834,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } } else { builder.nilai(persenRemunerasi * hargaJualSetelahDiskon); - builder.keterangan( - " dan dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) + " terlebih dahulu"); + if (totalDiskon > 0.0) { + builder.keterangan( + " dan dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) + " terlebih dahulu"); + } else { + builder.keterangan(""); + } + } return builder.build(); }