From 7006035982b6401ea422d0f0a81b7594be97bfad Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Fri, 23 Feb 2024 10:58:19 +0700 Subject: [PATCH 1/2] Clean code --- .../impl/PelayananPasienServiceImpl.java | 2 +- .../entities/JumlahDiskonDokter.java | 2 +- .../entities/PelayananPasienDetail.java | 42 ++++----- .../vo/PelayananPasienDetailVO.java | 93 +++++-------------- 4 files changed, 45 insertions(+), 94 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 645a0b7f..dc1567cd 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 @@ -154,7 +154,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel Map result = new HashMap<>(); PelayananPasien model = new PelayananPasien(); model = pelayananPasienConverter.transferVOToModel(vo, model); - model.setPasien(antrianPasienDiPeriksaDao.finByNoIdAndTglRegistrasi(Short.parseShort("0"), + model.setPasien(antrianPasienDiPeriksaDao.finByNoIdAndTglRegistrasi((short) 0, vo.getPasien().getId(), vo.getTglRegistrasi())); if (CommonUtil.isNotNullOrEmpty(vo.getJenisObat())) { model.setJenisObat(jenisObatConverter.transferVOToModel(vo.getJenisObat(), new JenisObat())); diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/JumlahDiskonDokter.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/JumlahDiskonDokter.java index 82867069..fa4c7732 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/JumlahDiskonDokter.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/JumlahDiskonDokter.java @@ -36,7 +36,7 @@ public class JumlahDiskonDokter implements Serializable { private Short kdProfile; @Column(nullable = false, unique = true, columnDefinition = "numeric(6,2)") - @NotBlank + @NotBlank(message = "Persen diskon tidak boleh kosong") @Caption("Persen Diskon") private BigDecimal persenDiskon; } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasienDetail.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasienDetail.java index e2a4c7f1..c3d41f39 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasienDetail.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasienDetail.java @@ -1,39 +1,35 @@ package com.jasamedika.medifirst2000.entities; -import java.util.Date; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; -import javax.validation.constraints.NotNull; - import com.jasamedika.medifirst2000.helper.Caption; - import lombok.Getter; import lombok.Setter; +import javax.persistence.*; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.util.Date; + +import static javax.persistence.FetchType.LAZY; + @Getter @Setter @Entity @Table(name = "PelayananPasienDetail_T") public class PelayananPasienDetail extends MedicalRecordTransaction { - private static final long serialVersionUID = 6548818878995216019L; - @ManyToOne + @ManyToOne(fetch = LAZY) @JoinColumn(name = "Generik") @Caption(value = "Generik") private Generik generik; - @Column(name = "Generik", insertable = false, updatable = false,nullable=true) + @Column(name = "Generik", insertable = false, updatable = false) private Integer generikId; @Caption(value = "statusOrder") @Column(name = "statusOrder") private Byte statusOrder; - @ManyToOne + @ManyToOne(fetch = LAZY) @JoinColumn(name = "KomponenHargaFk") @NotNull(message = "Struk Order Harus Diisi") @Caption(value = "Komponen Harga") @@ -61,6 +57,10 @@ public class PelayananPasienDetail extends MedicalRecordTransaction { @Caption(value = "Nilai Normal") @Column(name = "NilaiNormal") private Boolean nilaiNormal; + + @Column(columnDefinition = "numeric(6,2)") + @Caption("Persen Diskon") + private BigDecimal persenDiskon; @Caption(value = "Harga Discount") @Column(name = "hargaDiscount") @@ -74,7 +74,7 @@ public class PelayananPasienDetail extends MedicalRecordTransaction { @Column(name = "piutangRumahSakit") private Double piutangRumahSakit; - @ManyToOne + @ManyToOne(fetch = LAZY) @JoinColumn(name = "StrukOrderFk") @Caption(value = "Struk Order") private StrukOrder strukOrder; @@ -82,7 +82,7 @@ public class PelayananPasienDetail extends MedicalRecordTransaction { @Column(name = "StrukOrderFk", columnDefinition = "CHAR(32)", insertable = false, updatable = false) private String strukOrderId; - @ManyToOne + @ManyToOne(fetch = LAZY) @JoinColumn(name = "JenisObatFk") @Caption(value = "Jenis Obat") private JenisObat jenisObat; @@ -90,7 +90,7 @@ public class PelayananPasienDetail extends MedicalRecordTransaction { @Column(name = "JenisObatFk", insertable = false, updatable = false) private Integer jenisObatId; - @ManyToOne + @ManyToOne(fetch = LAZY) @JoinColumn(name = "ProdukFk") @NotNull(message = "Produk Harus Diisi") @Caption(value = "Produk") @@ -99,7 +99,7 @@ public class PelayananPasienDetail extends MedicalRecordTransaction { @Column(name = "ProdukFk", insertable = false, updatable = false) private Integer produkId; - @ManyToOne + @ManyToOne(fetch = LAZY) @JoinColumn(name = "PelayananPasien") @NotNull(message = "Pelayanan Pasien Tidak boleh Kosong") @Caption(value = "PelayananPasien") @@ -121,7 +121,7 @@ public class PelayananPasienDetail extends MedicalRecordTransaction { @Caption(value = "AturanPakai") private String aturanPakai; - @ManyToOne + @ManyToOne(fetch = LAZY) @JoinColumn(name = "RouteFk") @Caption(value = "Route") private RouteFarmasi route; @@ -129,7 +129,7 @@ public class PelayananPasienDetail extends MedicalRecordTransaction { @Column(name = "RouteFk", insertable = false, updatable = false) private Integer routeId; - @ManyToOne + @ManyToOne(fetch = LAZY) @JoinColumn(name = "KeteranganPakaiFk") @Caption(value = "Keterangan Pakai") private Stigma keteranganPakai; @@ -150,6 +150,6 @@ public class PelayananPasienDetail extends MedicalRecordTransaction { private Double hargaNetto; @Caption(value = "NoRecTriger") - @Column(name = "noRecTriger", nullable = true) + @Column(name = "noRecTriger") private String noRecTriger; } \ No newline at end of file diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PelayananPasienDetailVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PelayananPasienDetailVO.java index f8a080a4..0392550e 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PelayananPasienDetailVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PelayananPasienDetailVO.java @@ -1,32 +1,26 @@ package com.jasamedika.medifirst2000.vo; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -import javax.persistence.Column; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.validation.constraints.NotNull; - import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO; import com.jasamedika.medifirst2000.helper.Caption; - import lombok.Getter; import lombok.Setter; +import javax.validation.constraints.NotNull; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + @Getter @Setter public class PelayananPasienDetailVO extends BaseTransactionVO { - private List racikan = new ArrayList(); + private List racikan = new ArrayList<>(); @Caption(value="Pasien Daftar") private PasienDaftarVO pasienDaftar; - private GenerikVO generik; - - @Column(name = "Generik", insertable = false, updatable = false,nullable=true) + private GenerikVO generik; + private Integer generikId; private Byte statusOrder; @@ -34,138 +28,96 @@ public class PelayananPasienDetailVO extends BaseTransactionVO { private Double jasa; @Caption(value = "Is Pasien") - @Column(name = "isPasien", nullable = true) private Boolean isPasien; - @Caption(value = "Is Pasien") - @Column(name = "isObat", nullable = true) + @Caption(value = "Is Obat") private Boolean isObat; - @Caption(value = "Is Pasien") - @Column(name = "isDosis", nullable = true) + @Caption(value = "Is Dosis") private Boolean isDosis; - @Caption(value = "Is Pasien") - @Column(name = "isRoute", nullable = true) + @Caption(value = "Is Route") private Boolean isRoute; - @Caption(value = "Is Pasien") - @Column(name = "isDokumentasi", nullable = true) + @Caption(value = "Is Dokumentasi") private Boolean isDokumentasi; - @Caption(value = "Is Pasien") - @Column(name = "isWaktu", nullable = true) + @Caption(value = "Is Waktu") private Boolean isWaktu; - @Caption(value = "Is Pasien") - @Column(name = "isInformasi", nullable = true) + @Caption(value = "Is Informasi") private Boolean isInformasi; - - @ManyToOne - @JoinColumn(name = "KomponenHargaFk") - @NotNull(message = "Struk Order Harus Diisi") + @Caption(value = "Komponen Harga") private KomponenHargaVO komponenHarga; - @Caption(value = "Tanggal Pelayanan") - @Column(name = "TglPelayanan", nullable = true) private Date tglPelayanan; - @Column(name = "KomponenHargaFk", insertable = false, updatable = false) + private Integer komponenHargaId; - @Caption(value = "Harga Satuan") - @Column(name = "hargaSatuan", nullable = true) private Double hargaSatuan; @Caption(value = "Harga Jual") - @Column(name = "HargaJual", nullable = true) private Double hargaJual; + @Caption("Persen Diskon") + private String persenDiskon; + @Caption(value = "Nilai Normal") - @Column(name = "NilaiNormal", nullable = true) private Boolean nilaiNormal; - @Caption(value = "Piutang Penjamin") - @Column(name = "piutangPenjamin", nullable = true) private Double piutangPenjamin; @Caption(value = "Piutang Rumah Sakit") - @Column(name = "piutangRumahSakit", nullable = true) private Double piutangRumahSakit; - - - @ManyToOne - @JoinColumn(name = "StrukOrderFk") @Caption(value = "Struk Order") private StrukOrderVO strukOrder; - @Column(name = "StrukOrderFk", insertable = false, updatable = false) private String strukOrderId; - @ManyToOne - @JoinColumn(name = "JenisObatFk") @Caption(value = "Jenis Obat") private JenisObatVO jenisObat; - @Column(name = "JenisObatFk", insertable = false, updatable = false) private String jenisObatId; - @ManyToOne - @JoinColumn(name = "ProdukFk") @NotNull(message = "Produk Harus Diisi") @Caption(value = "Produk") private ProdukVO produk; - @Column(name = "ProdukFk", insertable = false, updatable = false) private String produkId; - @Column(name = "Stock", nullable = true, length = 100) @Caption(value = "Stock") private Integer stock; - @Column(name = "Jumlah", nullable = false, length = 100) @Caption(value = "Jumlah") private Double jumlah; - @Column(name = "AturanPakai", nullable = true, length = 100) @Caption(value = "AturanPakai") private String aturanPakai; - @ManyToOne - @JoinColumn(name = "RouteFk") @Caption(value = "Route") private RouteFarmasiVO route; - @Column(name = "RouteFk", insertable = false, updatable = false) private String routeId; - - - @ManyToOne - @JoinColumn(name = "KeteranganPakaiFk") + @Caption(value = "Keterangan Pakai") private StigmaVO keteranganPakai; - @Column(name = "KeteranganPakaiFk", insertable = false, updatable = false) private Integer keteranganPakaiId; - - @Column(name = "KeteranganPakai2", nullable = true, length = 100) @Caption(value = "KeteranganPakai2") private String keteranganPakai2; - @Column(name = "KeteranganLain", nullable = true, length = 100) @Caption(value = "KeteranganLain") private String keteranganLain; @Caption(value = "Harga Discount") private Double hargaDiscount; - - @ManyToOne - @NotNull(message = "Pelayanan Pasien Tidak boleh Kosong") + @Caption(value = "PelayananPasien") private PelayananPasienVO pelayananPasien; @@ -178,8 +130,7 @@ public class PelayananPasienDetailVO extends BaseTransactionVO { @Caption(value = "Is Benar") private Boolean isBenar; - @Caption(value = "NoRecTriger") + @Caption(value = "ID Trigger") private String noRecTriger; - } From eea995ca66172624a8145ed0519a7334040fe133 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Fri, 23 Feb 2024 10:59:38 +0700 Subject: [PATCH 2/2] Update service pelayanan pasien Penerapan formula hitung harga jasa dampak diskon jasa medis dokter --- .../medifirst2000/dao/PelayananPasienDao.java | 8 +- .../impl/PelayananPasienServiceImpl.java | 677 +++++++++++++----- .../medifirst2000/dto/RemunHargaJasa.java | 18 + 3 files changed, 509 insertions(+), 194 deletions(-) create mode 100644 jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/RemunHargaJasa.java 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 6615bfc0..3031335b 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 @@ -206,8 +206,12 @@ public interface PelayananPasienDao extends JpaRepository result = new HashMap<>(); PelayananPasien model = new PelayananPasien(); model = pelayananPasienConverter.transferVOToModel(vo, model); - model.setPasien(antrianPasienDiPeriksaDao.finByNoIdAndTglRegistrasi((short) 0, - vo.getPasien().getId(), vo.getTglRegistrasi())); + model.setPasien(antrianPasienDiPeriksaDao.finByNoIdAndTglRegistrasi((short) 0, vo.getPasien().getId(), + vo.getTglRegistrasi())); if (CommonUtil.isNotNullOrEmpty(vo.getJenisObat())) { model.setJenisObat(jenisObatConverter.transferVOToModel(vo.getJenisObat(), new JenisObat())); } @@ -587,100 +588,112 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel double hargaJual = Double.parseDouble(d.get("hargaJual").toString()); if (Boolean.parseBoolean(d.get("isSelisihPaket").toString())) hargaJual -= Double.parseDouble(d.get("hargaDiskon").toString()); - if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskon")) - && Double.parseDouble(d.get("totalDiskon").toString()) > 0.0 - && CommonUtil.isNullOrEmpty(d.get("idSayatan"))) { - /* - * Untuk diskon jasa medis oleh dokter - */ - d.put("hargaJasa", Double.parseDouble(d.get("totalKomponen").toString()) - - Double.parseDouble(d.get("totalDiskon").toString())); - } else if (KLINIK_KARYAWAN.equals(d.get("idRuangan")) || KLINIK_GIGI_KARYAWAN.equals(d.get("idRuangan"))) { - /* - * Untuk semua klaim di ruangan klinik karyawan - */ - d.put("hargaJasa", 0.0); - } else if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { - d.put("hargaJasa", persenRemunDokterUmumHD / 100 * hargaJual); + if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenRemunDokterUmumHD / 100, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien")) && Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { double persenJasa = persenOperator / 100; - d.put("hargaJasa", persenJasa * persenTarifIBS * hargaJual); + RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifIBS, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien")) && Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { double persenJasa = persenAsistenIBS / 100; - d.put("hargaJasa", persenJasa * persenTarifIBS * hargaJual); + RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifIBS, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien")) && Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { double persenJasa = persenAnestesi / 100; - d.put("hargaJasa", persenJasa * persenTarifIBS * hargaJual); + RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifIBS, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")) && CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) { - d.put("hargaJasa", persenOperator / 100 - * (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual))); + RemunHargaJasa hargaJasa = hargaJasa(persenOperator / 100, + (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d, + false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana")) && CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) { - d.put("hargaJasa", persenAsistenIBS / 100 - * (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual))); + RemunHargaJasa hargaJasa = hargaJasa(persenAsistenIBS / 100, + (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d, + false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana")) && CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) { - d.put("hargaJasa", persenAnestesi / 100 - * (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual))); + RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, + (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d, + false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { - d.put("hargaJasa", persenOperator / 100 * hargaJual); + RemunHargaJasa hargaJasa = hargaJasa(persenOperator / 100, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { - d.put("hargaJasa", persenAsistenIBS / 100 * hargaJual); + RemunHargaJasa hargaJasa = hargaJasa(persenAsistenIBS / 100, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { - d.put("hargaJasa", persenAnestesi / 100 * hargaJual); + RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (RADIOLOGI.equals(d.get("idDepartemen"))) { - d.put("hargaJasa", persenRadiologi / 100 * hargaJual); + RemunHargaJasa hargaJasa = hargaJasa(persenRadiologi / 100, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (REHAB_MEDIK.equals(d.get("idDepartemen"))) { - d.put("hargaJasa", persenRehabMedik / 100 * hargaJual); + RemunHargaJasa hargaJasa = hargaJasa(persenRehabMedik / 100, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (KONSULTASI.equals(d.get("idGolonganProduk"))) { - d.put("hargaJasa", persenKonsultasi / 100 * hargaJual); + RemunHargaJasa hargaJasa = hargaJasa(persenKonsultasi / 100, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (VISIT.equals(d.get("idGolonganProduk"))) { - d.put("hargaJasa", persenVisite / 100 * hargaJual); + RemunHargaJasa hargaJasa = hargaJasa(persenVisite / 100, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (drAnastesiList.contains(idPegawai) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { - d.put("hargaJasa", persenTindakan / 100 * hargaJual); + RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (drAnastesiList.contains(idPegawai) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { - d.put("hargaJasa", persenAnestesi / 100 * hargaJual); + RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKkGenetika.contains(idPegawai) && idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { - d.put("hargaJasa", persenRemunLabGenetika / 100 * hargaJual); + RemunHargaJasa hargaJasa = hargaJasa(persenRemunLabGenetika / 100, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (Arrays.asList(GENETIKA).contains(Integer.parseInt(d.get("idRuangan").toString()))) { - d.put("hargaJasa", persenRemunLabGenetika / 100 * hargaJual); + RemunHargaJasa hargaJasa = hargaJasa(persenRemunLabGenetika / 100, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKkPatologiAnatomiList.contains(idPegawai)) { - d.put("hargaJasa", persenRemunDokterPA / 100 * hargaJual); + RemunHargaJasa hargaJasa = hargaJasa(persenRemunDokterPA / 100, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (LABORATORIUM.equals(d.get("idDepartemen"))) { - d.put("hargaJasa", persenLaboratorium / 100 * hargaJual); + RemunHargaJasa hargaJasa = hargaJasa(persenLaboratorium / 100, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (CommonUtil.isNotNullOrEmpty(d.get("idRuangan")) && Arrays.asList(ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString()))) { double persenJasa = persenTindakan / 100; - d.put("hargaJasa", persenJasa * persenTarifICU * hargaJual); + RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifICU, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } else { - d.put("hargaJasa", persenTindakan / 100 * hargaJual); + RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d, false); + d.put("hargaJasa", hargaJasa.getNilai()); } } /* @@ -1840,140 +1853,168 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel + nf.format(Double.parseDouble(d.get("hargaDiskon").toString())); } if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenRemunDokterUmumHD / 100, hargaJual, d, true); d.put("persenJasa", persenRemunDokterUmumHD + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenRemunDokterUmumHD / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien")) && Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { double persenJasa = persenOperator / 100; + RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifIBS, hargaJual, d, false); d.put("persenJasa", persenOperator + "%"); - d.put("keterangan", "Dari " + persenTarifJasaBedah + "% tarif" + keteranganTambahan); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenJasa * persenTarifIBS * hargaJual); + d.put("keterangan", + "Dari " + persenTarifJasaBedah + "% tarif" + hargaJasa.getKeterangan() + keteranganTambahan); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien")) && Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { double persenJasa = persenAsistenIBS / 100; + RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifIBS, hargaJual, d, false); d.put("persenJasa", persenAsistenIBS + "%"); - d.put("keterangan", "Dari " + persenTarifJasaBedah + "% tarif" + keteranganTambahan); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenJasa * persenTarifIBS * hargaJual); + d.put("keterangan", + "Dari " + persenTarifJasaBedah + "% tarif" + hargaJasa.getKeterangan() + keteranganTambahan); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien")) && Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { double persenJasa = persenAnestesi / 100; + RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifIBS, hargaJual, d, false); d.put("persenJasa", persenAnestesi + "%"); - d.put("keterangan", "Dari " + persenTarifJasaBedah + "% tarif" + keteranganTambahan); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenJasa * persenTarifIBS * hargaJual); + d.put("keterangan", + "Dari " + persenTarifJasaBedah + "% tarif" + hargaJasa.getKeterangan() + keteranganTambahan); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")) && CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenOperator / 100, + (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d, + false); d.put("persenJasa", persenOperator + "%"); - d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) - + "% tarif" + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString()); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenOperator / 100 - * (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual))); + d.put("keterangan", + "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) + "% tarif" + + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString() + + hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana")) && CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenAsistenIBS / 100, + (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d, + false); d.put("persenJasa", persenAsistenIBS + "%"); - d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) - + "% tarif" + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString()); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenAsistenIBS / 100 - * (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual))); + d.put("keterangan", + "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) + "% tarif" + + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString() + + hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana")) && CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, + (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d, + false); d.put("persenJasa", persenAnestesi + "%"); - d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) - + "% tarif" + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString()); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenAnestesi / 100 - * (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual))); + d.put("keterangan", + "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) + "% tarif" + + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString() + + hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenOperator / 100, hargaJual, d, true); d.put("persenJasa", persenOperator + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenOperator / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenAsistenIBS / 100, hargaJual, d, true); d.put("persenJasa", persenAsistenIBS + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenAsistenIBS / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d, true); d.put("persenJasa", persenAnestesi + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenAnestesi / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (RADIOLOGI.equals(d.get("idDepartemen"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenRadiologi / 100, hargaJual, d, true); d.put("persenJasa", persenRadiologi + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenRadiologi / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (REHAB_MEDIK.equals(d.get("idDepartemen"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenRehabMedik / 100, hargaJual, d, true); d.put("persenJasa", persenRehabMedik + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenRehabMedik / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (KONSULTASI.equals(d.get("idGolonganProduk"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenKonsultasi / 100, hargaJual, d, true); d.put("persenJasa", persenKonsultasi + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenKonsultasi / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (VISIT.equals(d.get("idGolonganProduk"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenVisite / 100, hargaJual, d, true); d.put("persenJasa", persenVisite + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenVisite / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (drAnastesiList.contains(idPegawai) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d, true); d.put("persenJasa", persenTindakan + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenTindakan / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (drAnastesiList.contains(idPegawai) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d, true); d.put("persenJasa", persenAnestesi + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenAnestesi / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKkGenetika.contains(idPegawai) && idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { + RemunHargaJasa hargaJasa = hargaJasa(persenRemunLabGenetika / 100, hargaJual, d, true); d.put("persenJasa", persenRemunLabGenetika + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenRemunLabGenetika / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (Arrays.asList(GENETIKA).contains(Integer.parseInt(d.get("idRuangan").toString()))) { + RemunHargaJasa hargaJasa = hargaJasa(persenRemunLabGenetika / 100, hargaJual, d, true); d.put("persenJasa", persenRemunLabGenetika + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenRemunLabGenetika / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKkPatologiAnatomiList.contains(idPegawai)) { + RemunHargaJasa hargaJasa = hargaJasa(persenRemunDokterPA / 100, hargaJual, d, true); d.put("persenJasa", persenRemunDokterPA + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenRemunDokterPA / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (LABORATORIUM.equals(d.get("idDepartemen"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenLaboratorium / 100, hargaJual, d, true); d.put("persenJasa", persenLaboratorium + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenLaboratorium / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (CommonUtil.isNotNullOrEmpty(d.get("idRuangan")) && Arrays.asList(ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString()))) { double persenJasa = persenTindakan / 100; + RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifICU, hargaJual, d, false); d.put("persenJasa", persenTindakan + "%"); - d.put("keterangan", "Dari " + persenTarifJasaICU + "% tarif" + keteranganTambahan); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenJasa * persenTarifICU * hargaJual); + d.put("keterangan", + "Dari " + persenTarifJasaICU + "% tarif" + hargaJasa.getKeterangan() + keteranganTambahan); + d.put("hargaJasa", hargaJasa.getNilai()); } else { + RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d, true); d.put("persenJasa", persenTindakan + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenTindakan / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } } /* @@ -2189,115 +2230,140 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } if (CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien")) && Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))) { + RemunHargaJasa hargaJasa = hargaJasa(persenBPJS / 100, hargaJual, d, true); /* * Set persen jasa dokter luar yang klaim ffs dengan persen jasa * dari tarif total */ d.put("persenJasa", persenBPJS + "%"); + d.put("keterangan", hargaJasa.getKeterangan()); /* * Set harga jasa klaim jasa ffs pasien bpjs oleh dokter-dokter * tertentu */ - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenBPJS / 100 * hargaJual); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenJasaDokterUmumHD / 100, hargaJual, d, true); d.put("persenJasa", persenJasaDokterUmumHD + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenJasaDokterUmumHD / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")) && CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenOperator / 100, + (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d, + false); d.put("persenJasa", persenOperator + "%"); - d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) - + "% tarif" + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString()); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenOperator / 100 - * (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual))); + d.put("keterangan", + "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) + "% tarif" + + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString() + + hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana")) && CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenAsistenIBS / 100, + (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d, + false); d.put("persenJasa", persenAsistenIBS + "%"); - d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) - + "% tarif" + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString()); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenAsistenIBS / 100 - * (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual))); + d.put("keterangan", + "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) + "% tarif" + + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString() + + hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana")) && CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, + (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d, + false); d.put("persenJasa", persenAnestesi + "%"); - d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) - + "% tarif" + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString()); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenAnestesi / 100 - * (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual))); + d.put("keterangan", + "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) + "% tarif" + + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString() + + hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenOperator / 100, hargaJual, d, true); d.put("persenJasa", persenOperator + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenOperator / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenAsistenIBS / 100, hargaJual, d, true); d.put("persenJasa", persenAsistenIBS + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenAsistenIBS / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d, true); d.put("persenJasa", persenAnestesi + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenAnestesi / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (RADIOLOGI.equals(d.get("idDepartemen"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenRadiologi / 100, hargaJual, d, true); d.put("persenJasa", persenRadiologi + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenRadiologi / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (REHAB_MEDIK.equals(d.get("idDepartemen"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenRehabMedik / 100, hargaJual, d, true); d.put("persenJasa", persenRehabMedik + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenRehabMedik / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (KONSULTASI.equals(d.get("idGolonganProduk"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenKonsultasi / 100, hargaJual, d, true); d.put("persenJasa", persenKonsultasi + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenKonsultasi / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (VISIT.equals(d.get("idGolonganProduk"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenVisite / 100, hargaJual, d, true); d.put("persenJasa", persenVisite + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenVisite / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (drAnastesiList.contains(idPegawai) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d, true); d.put("persenJasa", persenTindakan + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenTindakan / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (drAnastesiList.contains(idPegawai) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d, true); d.put("persenJasa", persenAnestesi + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenAnestesi / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKkGenetika.contains(idPegawai) && idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { + RemunHargaJasa hargaJasa = hargaJasa(persenJasaLabGenetika / 100, hargaJual, d, true); d.put("persenJasa", persenJasaLabGenetika + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenJasaLabGenetika / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (Arrays.asList(GENETIKA).contains(Integer.parseInt(d.get("idRuangan").toString()))) { + RemunHargaJasa hargaJasa = hargaJasa(persenJasaLabGenetika / 100, hargaJual, d, true); d.put("persenJasa", persenJasaLabGenetika + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenJasaLabGenetika / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKkPatologiAnatomiList.contains(idPegawai)) { + RemunHargaJasa hargaJasa = hargaJasa(persenJasaDokterPA / 100, hargaJual, d, true); d.put("persenJasa", persenJasaDokterPA + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenJasaDokterPA / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (LABORATORIUM.equals(d.get("idDepartemen"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenLaboratorium / 100, hargaJual, d, true); d.put("persenJasa", persenLaboratorium + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenLaboratorium / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else { + RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d, true); d.put("persenJasa", persenTindakan + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenTindakan / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } } /* @@ -2518,115 +2584,140 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } if (CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien")) && Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))) { + RemunHargaJasa hargaJasa = hargaJasa(persenBPJS / 100, hargaJual, d, true); /* * Set persen jasa dokter luar yang klaim ffs dengan persen jasa * dari tarif total */ d.put("persenJasa", persenBPJS + "%"); + d.put("keterangan", hargaJasa.getKeterangan()); /* * Set harga jasa klaim jasa ffs pasien bpjs oleh dokter-dokter * tertentu */ - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenBPJS / 100 * hargaJual); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenJasaDokterUmumHD / 100, hargaJual, d, true); d.put("persenJasa", persenJasaDokterUmumHD + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenJasaDokterUmumHD / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")) && CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenOperatorIBS / 100, + (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d, + false); d.put("persenJasa", persenOperatorIBS + "%"); - d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) - + "% tarif" + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString()); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenOperatorIBS / 100 - * (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual))); + d.put("keterangan", + "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) + "% tarif" + + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString() + + hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana")) && CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenAsistenIBS / 100, + (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d, + false); d.put("persenJasa", persenAsistenIBS + "%"); - d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) - + "% tarif" + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString()); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenAsistenIBS / 100 - * (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual))); + d.put("keterangan", + "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) + "% tarif" + + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString() + + hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana")) && CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, + (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d, + false); d.put("persenJasa", persenAnestesi + "%"); - d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) - + "% tarif" + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString()); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenAnestesi / 100 - * (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual))); + d.put("keterangan", + "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) + "% tarif" + + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString() + + hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenOperatorIBS / 100, hargaJual, d, true); d.put("persenJasa", persenOperatorIBS + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenOperatorIBS / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenAsistenIBS / 100, hargaJual, d, true); d.put("persenJasa", persenAsistenIBS + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenAsistenIBS / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen")) || (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan")))) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d, true); d.put("persenJasa", persenAnestesi + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenAnestesi / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (RADIOLOGI.equals(d.get("idDepartemen"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenRadiologi / 100, hargaJual, d, true); d.put("persenJasa", persenRadiologi + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenRadiologi / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (REHAB_MEDIK.equals(d.get("idDepartemen"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenRehabMedik / 100, hargaJual, d, true); d.put("persenJasa", persenRehabMedik + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenRehabMedik / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (KONSULTASI.equals(d.get("idGolonganProduk"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenKonsultasi / 100, hargaJual, d, true); d.put("persenJasa", persenKonsultasi + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenKonsultasi / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (VISIT.equals(d.get("idGolonganProduk"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenVisite / 100, hargaJual, d, true); d.put("persenJasa", persenVisite + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenVisite / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (drAnastesiList.contains(idPegawai) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d, true); d.put("persenJasa", persenTindakan + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenTindakan / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (drAnastesiList.contains(idPegawai) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d, true); d.put("persenJasa", persenAnestesi + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenAnestesi / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKkGenetika.contains(idPegawai) && idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { + RemunHargaJasa hargaJasa = hargaJasa(persenJasaLabGenetika / 100, hargaJual, d, true); d.put("persenJasa", persenJasaLabGenetika + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenJasaLabGenetika / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (Arrays.asList(GENETIKA).contains(Integer.parseInt(d.get("idRuangan").toString()))) { + RemunHargaJasa hargaJasa = hargaJasa(persenJasaLabGenetika / 100, hargaJual, d, true); d.put("persenJasa", persenJasaLabGenetika + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenJasaLabGenetika / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKkPatologiAnatomiList.contains(idPegawai)) { + RemunHargaJasa hargaJasa = hargaJasa(persenJasaDokterPA / 100, hargaJual, d, true); d.put("persenJasa", persenJasaDokterPA + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenJasaDokterPA / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else if (LABORATORIUM.equals(d.get("idDepartemen"))) { + RemunHargaJasa hargaJasa = hargaJasa(persenLaboratorium / 100, hargaJual, d, true); d.put("persenJasa", persenLaboratorium + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenLaboratorium / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } else { + RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d, true); d.put("persenJasa", persenTindakan + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenTindakan / 100 * hargaJual); + d.put("keterangan", hargaJasa.getKeterangan()); + d.put("hargaJasa", hargaJasa.getNilai()); } } /* @@ -3522,4 +3613,206 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel }); return duplicateMapPetugasPegawai; } + + private RemunHargaJasa hargaJasa(double persenRemunerasi, double hargaJual, Map d, + boolean isFrontNote) { + Locale indonesia = new Locale("in", "ID"); + NumberFormat nf = NumberFormat.getCurrencyInstance(indonesia); + RemunHargaJasa.RemunHargaJasaBuilder builder = RemunHargaJasa.builder(); + if (KLINIK_KARYAWAN.equals(d.get("idRuangan")) || KLINIK_GIGI_KARYAWAN.equals(d.get("idRuangan"))) { + builder.nilai(0.0); + if (isFrontNote) { + builder.keterangan("Dari diskon klinik karyawan/klinik gigi karyawan"); + } else { + builder.keterangan(" dan dari diskon klinik karyawan/klinik gigi karyawan"); + } + return builder.build(); + } + if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD")) + && Double.parseDouble(d.get("totalDiskonD").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAs")) + && Double.parseDouble(d.get("totalDiskonAs").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAn")) + && Double.parseDouble(d.get("totalDiskonAn").toString()) > 0.0) { + double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()) + + Double.parseDouble(d.get("totalDiskonAs").toString()) + + Double.parseDouble(d.get("totalDiskonAn").toString()); + 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()); + double hargaJasaOperator = persenRemunOperator * hargaJasa / 100; + double hargaJasaAsisten = persenRemunAsisten * hargaJasa / 100; + double hargaJasaAnestesi = persenRemunAnestesi * hargaJasa / 100; + double hargaJasaRemun = hargaJasaOperator + hargaJasaAsisten + hargaJasaAnestesi; + builder.nilai(hargaJasaRemun); + if (isFrontNote) { + builder.keterangan("Dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) + + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator + + "% ditambah pengalian " + persenRemunAsisten + "% ditambah pengalian " + persenRemunAnestesi + + "% karena diskon komponen operator, asisten, dan anestesi berturut-turut " + + d.get("persenDiskonD").toString() + "%, " + d.get("persenDiskonAs").toString() + "%, dan " + + d.get("persenDiskonAn").toString() + "%"); + } else { + builder.keterangan(" dan dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) + + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator + + "% ditambah pengalian " + persenRemunAsisten + "% ditambah pengalian " + persenRemunAnestesi + + "% karena diskon komponen operator, asisten, dan anestesi berturut-turut " + + d.get("persenDiskonD").toString() + "%, " + d.get("persenDiskonAs").toString() + "%, dan " + + d.get("persenDiskonAn").toString() + "%"); + } + } else if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD")) + && Double.parseDouble(d.get("totalDiskonD").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAs")) + && Double.parseDouble(d.get("totalDiskonAs").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAn")) + || Double.parseDouble(d.get("totalDiskonAn").toString()) <= 0.0)) { + double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()) + + Double.parseDouble(d.get("totalDiskonAs").toString()); + 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; + double hargaJasaAsisten = persenRemunAsisten * hargaJasa / 100; + double hargaJasaRemun = hargaJasaOperator + hargaJasaAsisten; + builder.nilai(hargaJasaRemun); + if (isFrontNote) { + builder.keterangan("Dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) + + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator + + "% ditambah pengalian " + persenRemunAsisten + + "% karena diskon komponen operator dan asisten berturut-turut " + + d.get("persenDiskonD").toString() + "% dan " + d.get("persenDiskonAs").toString() + "%"); + } else { + builder.keterangan(" dan dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) + + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator + + "% ditambah pengalian " + persenRemunAsisten + + "% karena diskon komponen operator dan asisten berturut-turut " + + d.get("persenDiskonD").toString() + "% dan " + d.get("persenDiskonAs").toString() + "%"); + } + } else if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD")) + && Double.parseDouble(d.get("totalDiskonD").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAn")) + && Double.parseDouble(d.get("totalDiskonAn").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAs")) + || Double.parseDouble(d.get("totalDiskonAs").toString()) <= 0.0)) { + double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()) + + Double.parseDouble(d.get("totalDiskonAn").toString()); + 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; + double hargaJasaAnestesi = persenRemunAnestesi * hargaJasa / 100; + double hargaJasaRemun = hargaJasaOperator + hargaJasaAnestesi; + builder.nilai(hargaJasaRemun); + if (isFrontNote) { + builder.keterangan("Dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) + + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator + + "% ditambah pengalian " + persenRemunAnestesi + + "% karena diskon komponen operator dan anestesi berturut-turut " + + d.get("persenDiskonD").toString() + "% dan " + d.get("persenDiskonAn").toString() + "%"); + } else { + builder.keterangan(" dan dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) + + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator + + "% ditambah pengalian " + persenRemunAnestesi + + "% karena diskon komponen operator dan anestesi berturut-turut " + + d.get("persenDiskonD").toString() + "% dan " + d.get("persenDiskonAn").toString() + "%"); + } + } else if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAs")) + && Double.parseDouble(d.get("totalDiskonAs").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAn")) + && Double.parseDouble(d.get("totalDiskonAn").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(d.get("totalDiskonD")) + || Double.parseDouble(d.get("totalDiskonD").toString()) <= 0.0)) { + double totalDiskon = Double.parseDouble(d.get("totalDiskonAs").toString()) + + Double.parseDouble(d.get("totalDiskonAn").toString()); + 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; + double hargaJasaAnestesi = persenRemunAnestesi * hargaJasa / 100; + double hargaJasaRemun = hargaJasaAsisten + hargaJasaAnestesi; + builder.nilai(hargaJasaRemun); + if (isFrontNote) { + builder.keterangan("Dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) + + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunAsisten + + "% ditambah pengalian " + persenRemunAnestesi + + "% karena diskon komponen asisten dan anestesi berturut-turut " + + d.get("persenDiskonAs").toString() + "% dan " + d.get("persenDiskonAn").toString() + "%"); + } else { + builder.keterangan(" dan dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) + + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunAsisten + + "% ditambah pengalian " + persenRemunAnestesi + + "% karena diskon komponen asisten dan anestesi berturut-turut " + + d.get("persenDiskonAs").toString() + "% dan " + d.get("persenDiskonAn").toString() + "%"); + } + } else if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD")) + && Double.parseDouble(d.get("totalDiskonD").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAs")) + || Double.parseDouble(d.get("totalDiskonAs").toString()) <= 0.0) + && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAn")) + || Double.parseDouble(d.get("totalDiskonAn").toString()) <= 0.0)) { + double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()); + 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) { + builder.keterangan("Dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) + + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator + + "% karena diskon komponen operator " + d.get("persenDiskonD").toString() + "%"); + } else { + builder.keterangan(" dan dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) + + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator + + "% karena diskon komponen operator " + d.get("persenDiskonD").toString() + "%"); + } + } else if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAs")) + && Double.parseDouble(d.get("totalDiskonAs").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(d.get("totalDiskonD")) + || Double.parseDouble(d.get("totalDiskonD").toString()) <= 0.0) + && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAn")) + || Double.parseDouble(d.get("totalDiskonAn").toString()) <= 0.0)) { + double totalDiskon = Double.parseDouble(d.get("totalDiskonAs").toString()); + 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) { + builder.keterangan("Dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) + + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunAsisten + + "% karena diskon komponen asisten " + d.get("persenDiskonAs").toString() + "%"); + } else { + builder.keterangan(" dan dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) + + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunAsisten + + "% karena diskon komponen asisten " + d.get("persenDiskonAs").toString() + "%"); + } + } else if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAn")) + && Double.parseDouble(d.get("totalDiskonAn").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(d.get("totalDiskonD")) + || Double.parseDouble(d.get("totalDiskonD").toString()) <= 0.0) + && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAs")) + || Double.parseDouble(d.get("totalDiskonAs").toString()) <= 0.0)) { + double totalDiskon = Double.parseDouble(d.get("totalDiskonAn").toString()); + 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) { + builder.keterangan("Dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) + + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunAnestesi + + "% karena diskon komponen anestesi " + d.get("persenDiskonAn").toString() + "%"); + } else { + builder.keterangan(" dan dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) + + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunAnestesi + + "% karena diskon komponen anestesi " + d.get("persenDiskonAn").toString() + "%"); + } + } else { + builder.nilai(persenRemunerasi * hargaJual); + builder.keterangan(""); + } + return builder.build(); + } } \ No newline at end of file diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/RemunHargaJasa.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/RemunHargaJasa.java new file mode 100644 index 00000000..a3fee212 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/RemunHargaJasa.java @@ -0,0 +1,18 @@ +package com.jasamedika.medifirst2000.dto; + +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 26/02/2024 + */ +@Getter +@Setter +@Builder +public class RemunHargaJasa { + private Double nilai; + private String keterangan; +}