From c8fe14290357bac7c6fd212af485fc2ab2339d18 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Tue, 25 Jun 2024 08:38:37 +0700 Subject: [PATCH] Update PelayananPasienServiceImpl.java Perbaikan fungsi hitung harga jasa logbook tarif untuk dokter karena handel nilai 0 capaian dan persen capaian --- .../impl/PelayananPasienServiceImpl.java | 171 +++++++++++++----- 1 file changed, 129 insertions(+), 42 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 5c8ded93..3ecf2ecf 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 @@ -4314,37 +4314,70 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } return builder.build(); } - double totalDiskonD = Double.parseDouble(d.get("totalDiskonD").toString()); - double totalPersenDiskonSayatanD = Double.parseDouble(d.get("totalPersenDiskonSayatanD").toString()); - double totalHargaD = Double.parseDouble(d.get("totalHargaD").toString()); - double totalDiskonAs = Double.parseDouble(d.get("totalDiskonAs").toString()); - double totalPersenDiskonSayatanAs = Double.parseDouble(d.get("totalPersenDiskonSayatanAs").toString()); - double totalHargaAs = Double.parseDouble(d.get("totalHargaAs").toString()); - 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 totalDiskonD = 0.0; + if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD"))) + totalDiskonD = Double.parseDouble(d.get("totalDiskonD").toString()); + double totalPersenDiskonSayatanD = 0.0; + if (CommonUtil.isNotNullOrEmpty(d.get("totalPersenDiskonSayatanD"))) + totalPersenDiskonSayatanD = Double.parseDouble(d.get("totalPersenDiskonSayatanD").toString()); + double totalHargaD = 0.0; + if (CommonUtil.isNotNullOrEmpty(d.get("totalHargaD"))) + totalHargaD = Double.parseDouble(d.get("totalHargaD").toString()); + double totalDiskonAs = 0.0; + if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAs"))) + totalDiskonAs = Double.parseDouble(d.get("totalDiskonAs").toString()); + double totalPersenDiskonSayatanAs = 0.0; + if (CommonUtil.isNotNullOrEmpty(d.get("totalPersenDiskonSayatanAs"))) + totalPersenDiskonSayatanAs = Double.parseDouble(d.get("totalPersenDiskonSayatanAs").toString()); + double totalHargaAs = 0.0; + if (CommonUtil.isNotNullOrEmpty(d.get("totalHargaAs"))) + totalHargaAs = Double.parseDouble(d.get("totalHargaAs").toString()); + double totalDiskonAn = 0.0; + if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAn"))) + totalDiskonAn = Double.parseDouble(d.get("totalDiskonAn").toString()); + double totalPersenDiskonSayatanAn = 0.0; + if (CommonUtil.isNotNullOrEmpty(d.get("totalPersenDiskonSayatanAn"))) + totalPersenDiskonSayatanAn = Double.parseDouble(d.get("totalPersenDiskonSayatanAn").toString()); + double totalHargaAn = 0.0; + if (CommonUtil.isNotNullOrEmpty(d.get("totalHargaAn"))) + totalHargaAn = Double.parseDouble(d.get("totalHargaAn").toString()); double totalDiskon = 0.0; - if (Double.parseDouble(d.get("totalPersenDiskonD").toString()) > 0) + if (CommonUtil.isNotNullOrEmpty(d.get("totalPersenDiskonD")) + && Double.parseDouble(d.get("totalPersenDiskonD").toString()) > 0) totalDiskon += totalDiskonD - (totalPersenDiskonSayatanD * totalHargaD / 100); - if (Double.parseDouble(d.get("totalPersenDiskonAs").toString()) > 0) + if (CommonUtil.isNotNullOrEmpty(d.get("totalPersenDiskonAs")) + && Double.parseDouble(d.get("totalPersenDiskonAs").toString()) > 0) totalDiskon += totalDiskonAs - (totalPersenDiskonSayatanAs * totalHargaAs / 100); - if (Double.parseDouble(d.get("totalPersenDiskonAn").toString()) > 0) + if (CommonUtil.isNotNullOrEmpty(d.get("totalPersenDiskonAn")) + && 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 + if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD")) + && Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonD")) && Double.parseDouble(d.get("diskonD").toString()) >= 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs")) && Double.parseDouble(d.get("persenDiskonAs").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAs")) && Double.parseDouble(d.get("diskonAs").toString()) >= 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn")) && Double.parseDouble(d.get("persenDiskonAn").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAn")) && 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 - .parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanD")) + && Double.parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAs")) + && Double.parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAn")) && Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) { - 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()); + double persenRemunOperator = 100.00 - (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD")) + ? Double.parseDouble(d.get("persenDiskonD").toString()) : 0.0); + double persenRemunAsisten = 100.00 - (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs")) + ? Double.parseDouble(d.get("persenDiskonAs").toString()) : 0.0); + double persenRemunAnestesi = 100.00 - (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn")) + ? Double.parseDouble(d.get("persenDiskonAn").toString()) : 0.0); double hargaJasaOperator = persenRemunOperator * hargaJasa / 100; double hargaJasaAsisten = persenRemunAsisten * hargaJasa / 100; double hargaJasaAnestesi = persenRemunAnestesi * hargaJasa / 100; @@ -4365,17 +4398,27 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel + d.get("persenDiskonD").toString() + "%, " + d.get("persenDiskonAs").toString() + "%, dan " + d.get("persenDiskonAn").toString() + "%"); } - } else if (Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0 + } else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD")) + && Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonD")) && Double.parseDouble(d.get("diskonD").toString()) >= 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs")) && Double.parseDouble(d.get("persenDiskonAs").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAs")) && Double.parseDouble(d.get("diskonAs").toString()) >= 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn")) && Double.parseDouble(d.get("persenDiskonAn").toString()) == 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAn")) && 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 - .parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0))) { - double persenRemunOperator = 100.00 - Double.parseDouble(d.get("persenDiskonD").toString()); - double persenRemunAsisten = 100.00 - Double.parseDouble(d.get("persenDiskonAs").toString()); + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanD")) && Double + .parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAs")) + && Double.parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0))) { + double persenRemunOperator = 100.00 - (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD")) + ? Double.parseDouble(d.get("persenDiskonD").toString()) : 0.0); + double persenRemunAsisten = 100.00 - (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs")) + ? Double.parseDouble(d.get("persenDiskonAs").toString()) : 0.0); double hargaJasaOperator = persenRemunOperator * hargaJasa / 100; double hargaJasaAsisten = persenRemunAsisten * hargaJasa / 100; double hargaJasaRemun = hargaJasaOperator + hargaJasaAsisten; @@ -4393,17 +4436,27 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel + "% karena diskon komponen operator dan asisten berturut-turut " + d.get("persenDiskonD").toString() + "% dan " + d.get("persenDiskonAs").toString() + "%"); } - } else if (Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0 + } else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD")) + && Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonD")) && Double.parseDouble(d.get("diskonD").toString()) >= 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn")) && Double.parseDouble(d.get("persenDiskonAn").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAn")) && Double.parseDouble(d.get("diskonAn").toString()) >= 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs")) && Double.parseDouble(d.get("persenDiskonAs").toString()) == 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAs")) && Double.parseDouble(d.get("diskonAs").toString()) <= 0.0 && (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 persenRemunOperator = 100.00 - Double.parseDouble(d.get("persenDiskonD").toString()); - double persenRemunAnestesi = 100.00 - Double.parseDouble(d.get("persenDiskonAn").toString()); + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanD")) && Double + .parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAn")) + && Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) { + double persenRemunOperator = 100.00 - (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD")) + ? Double.parseDouble(d.get("persenDiskonD").toString()) : 0.0); + double persenRemunAnestesi = 100.00 - (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn")) + ? Double.parseDouble(d.get("persenDiskonAn").toString()) : 0.0); double hargaJasaOperator = persenRemunOperator * hargaJasa / 100; double hargaJasaAnestesi = persenRemunAnestesi * hargaJasa / 100; double hargaJasaRemun = hargaJasaOperator + hargaJasaAnestesi; @@ -4421,17 +4474,27 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel + "% karena diskon komponen operator dan anestesi berturut-turut " + d.get("persenDiskonD").toString() + "% dan " + d.get("persenDiskonAn").toString() + "%"); } - } else if (Double.parseDouble(d.get("persenDiskonAs").toString()) > 0.0 + } else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs")) + && Double.parseDouble(d.get("persenDiskonAs").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAs")) && Double.parseDouble(d.get("diskonAs").toString()) >= 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn")) && Double.parseDouble(d.get("persenDiskonAn").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAn")) && Double.parseDouble(d.get("diskonAn").toString()) >= 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD")) && Double.parseDouble(d.get("persenDiskonD").toString()) == 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonD")) && Double.parseDouble(d.get("diskonD").toString()) <= 0.0 && (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 persenRemunAsisten = 100.00 - Double.parseDouble(d.get("persenDiskonAs").toString()); - double persenRemunAnestesi = 100.00 - Double.parseDouble(d.get("persenDiskonAn").toString()); + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAs")) && Double + .parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAn")) + && Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) { + double persenRemunAsisten = 100.00 - (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs")) + ? Double.parseDouble(d.get("persenDiskonAs").toString()) : 0.0); + double persenRemunAnestesi = 100.00 - (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn")) + ? Double.parseDouble(d.get("persenDiskonAn").toString()) : 0.0); double hargaJasaAsisten = persenRemunAsisten * hargaJasa / 100; double hargaJasaAnestesi = persenRemunAnestesi * hargaJasa / 100; double hargaJasaRemun = hargaJasaAsisten + hargaJasaAnestesi; @@ -4449,15 +4512,23 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel + "% karena diskon komponen asisten dan anestesi berturut-turut " + d.get("persenDiskonAs").toString() + "% dan " + d.get("persenDiskonAn").toString() + "%"); } - } else if (Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0 + } else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD")) + && Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonD")) && Double.parseDouble(d.get("diskonD").toString()) >= 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs")) && Double.parseDouble(d.get("persenDiskonAs").toString()) == 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAs")) && Double.parseDouble(d.get("diskonAs").toString()) <= 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn")) && Double.parseDouble(d.get("persenDiskonAn").toString()) == 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAn")) && 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 persenRemunOperator = 100.00 - Double.parseDouble(d.get("persenDiskonD").toString()); + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanD")) && Double + .parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0))) { + double persenRemunOperator = 100.00 - (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD")) + ? Double.parseDouble(d.get("persenDiskonD").toString()) : 0.0); builder.nilai(persenRemunOperator * hargaJasa / 100); if (isFrontNote) { builder.keterangan("Dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) @@ -4468,15 +4539,23 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator + "% karena diskon komponen operator " + d.get("persenDiskonD").toString() + "%"); } - } else if (Double.parseDouble(d.get("persenDiskonAs").toString()) > 0.0 + } else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs")) + && Double.parseDouble(d.get("persenDiskonAs").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAs")) && Double.parseDouble(d.get("diskonAs").toString()) >= 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD")) && Double.parseDouble(d.get("persenDiskonD").toString()) == 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonD")) && Double.parseDouble(d.get("diskonD").toString()) <= 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn")) && Double.parseDouble(d.get("persenDiskonAn").toString()) == 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAn")) && 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 persenRemunAsisten = 100.00 - Double.parseDouble(d.get("persenDiskonAs").toString()); + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAs")) && Double + .parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0))) { + double persenRemunAsisten = 100.00 - (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs")) + ? Double.parseDouble(d.get("persenDiskonAs").toString()) : 0.0); builder.nilai(persenRemunAsisten * hargaJasa / 100); if (isFrontNote) { builder.keterangan("Dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) @@ -4487,15 +4566,23 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunAsisten + "% karena diskon komponen asisten " + d.get("persenDiskonAs").toString() + "%"); } - } else if (Double.parseDouble(d.get("persenDiskonAn").toString()) > 0.0 + } else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn")) + && Double.parseDouble(d.get("persenDiskonAn").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAn")) && Double.parseDouble(d.get("diskonAn").toString()) >= 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD")) && Double.parseDouble(d.get("persenDiskonD").toString()) == 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonD")) && Double.parseDouble(d.get("diskonD").toString()) <= 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs")) && Double.parseDouble(d.get("persenDiskonAs").toString()) == 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAs")) && 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 persenRemunAnestesi = 100.00 - Double.parseDouble(d.get("persenDiskonAn").toString()); + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAn")) && Double + .parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) { + double persenRemunAnestesi = 100.00 - (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn")) + ? Double.parseDouble(d.get("persenDiskonAn").toString()) : 0.0); builder.nilai(persenRemunAnestesi * hargaJasa / 100); if (isFrontNote) { builder.keterangan("Dari pengurangan tarif dengan diskon " + nf.format(totalDiskon)