From ea623cafa1fd82783b5146be55cdf47f91bb5b76 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Wed, 7 Feb 2024 14:40:07 +0700 Subject: [PATCH 01/20] Update pelayanan pasien Perubahan diskon dpjp menjadi isian berdasarkan master persen diskon dokter --- .../jasamedika/medifirst2000/dao/PelayananPasienDao.java | 3 ++- .../service/impl/PelayananPasienServiceImpl.java | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) 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 45e721e0..6615bfc0 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,7 +206,8 @@ public interface PelayananPasienDao extends JpaRepository 0.0 && CommonUtil.isNullOrEmpty(d.get("idSayatan"))) { /* - * Untuk diskon jasa medis oleh dpjp + * Untuk diskon jasa medis oleh dokter */ - d.put("hargaJasa", 0.0); + 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 From 574b96ae069463e627b46febb68246200f7a8871 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Wed, 7 Feb 2024 14:41:42 +0700 Subject: [PATCH 02/20] Create service master jumlah diskon dokter --- .../dao/JumlahDiskonDokterDao.java | 12 +++++ .../service/JumlahDiskonDokterService.java | 15 ++++++ .../impl/JumlahDiskonDokterServiceImpl.java | 35 +++++++++++++ .../dto/JumlahDiskonDokterDto.java | 25 ++++++++++ .../entities/JumlahDiskonDokter.java | 42 ++++++++++++++++ .../JumlahDiskonDokterController.java | 49 +++++++++++++++++++ 6 files changed, 178 insertions(+) create mode 100644 jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/JumlahDiskonDokterDao.java create mode 100644 jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/JumlahDiskonDokterService.java create mode 100644 jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JumlahDiskonDokterServiceImpl.java create mode 100644 jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/JumlahDiskonDokterDto.java create mode 100644 jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/JumlahDiskonDokter.java create mode 100644 jasamedika-web/src/main/java/com/jasamedika/medifirst2000/controller/JumlahDiskonDokterController.java diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/JumlahDiskonDokterDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/JumlahDiskonDokterDao.java new file mode 100644 index 00000000..f97ad0a3 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/JumlahDiskonDokterDao.java @@ -0,0 +1,12 @@ +package com.jasamedika.medifirst2000.dao; + +import com.jasamedika.medifirst2000.entities.JumlahDiskonDokter; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 07/02/2024 + */ +public interface JumlahDiskonDokterDao extends JpaRepository { +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/JumlahDiskonDokterService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/JumlahDiskonDokterService.java new file mode 100644 index 00000000..e597ca7d --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/JumlahDiskonDokterService.java @@ -0,0 +1,15 @@ +package com.jasamedika.medifirst2000.service; + +import com.jasamedika.medifirst2000.dto.JumlahDiskonDokterDto; + +import java.util.List; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 07/02/2024 + */ +public interface JumlahDiskonDokterService { + + void save(List dtos); +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JumlahDiskonDokterServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JumlahDiskonDokterServiceImpl.java new file mode 100644 index 00000000..d44124af --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JumlahDiskonDokterServiceImpl.java @@ -0,0 +1,35 @@ +package com.jasamedika.medifirst2000.service.impl; + +import com.jasamedika.medifirst2000.dao.JumlahDiskonDokterDao; +import com.jasamedika.medifirst2000.dto.JumlahDiskonDokterDto; +import com.jasamedika.medifirst2000.entities.JumlahDiskonDokter; +import com.jasamedika.medifirst2000.service.JumlahDiskonDokterService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 07/02/2024 + */ +@Service +@Transactional +public class JumlahDiskonDokterServiceImpl implements JumlahDiskonDokterService { + + @Autowired + private JumlahDiskonDokterDao jumlahDiskonDokterDao; + + @Override + public void save(List dtos) { + List entities = new ArrayList<>(); + dtos.forEach( + dto -> entities.add(JumlahDiskonDokter.builder().persenDiskon(new BigDecimal(dto.getPersenDiskon())) + .statusEnabled(dto.getStatusEnabled()).kdProfile((short) 0).build())); + jumlahDiskonDokterDao.save(entities); + } +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/JumlahDiskonDokterDto.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/JumlahDiskonDokterDto.java new file mode 100644 index 00000000..1eb724df --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/JumlahDiskonDokterDto.java @@ -0,0 +1,25 @@ +package com.jasamedika.medifirst2000.dto; + +import com.jasamedika.medifirst2000.helper.Caption; +import lombok.Getter; +import lombok.Setter; +import org.hibernate.validator.constraints.NotBlank; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 07/02/2024 + */ +@Getter +@Setter +public class JumlahDiskonDokterDto { + protected Long id; + + private Boolean statusEnabled; + + private Short kdProfile; + + @NotBlank + @Caption("Persen Diskon") + private String persenDiskon; +} 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 new file mode 100644 index 00000000..82867069 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/JumlahDiskonDokter.java @@ -0,0 +1,42 @@ +package com.jasamedika.medifirst2000.entities; + +import com.jasamedika.medifirst2000.helper.Caption; +import lombok.*; +import org.hibernate.validator.constraints.NotBlank; + +import javax.persistence.*; +import java.io.Serializable; +import java.math.BigDecimal; + +import static javax.persistence.GenerationType.SEQUENCE; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 07/02/2024 + */ +@Entity +@Table(name = "jumlah_diskon_dokter_m") +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class JumlahDiskonDokter implements Serializable { + private static final long serialVersionUID = 7600189956745393785L; + + @Id + @GeneratedValue(strategy = SEQUENCE, generator = "sg_jumlah_diskon_dokter_m") + @SequenceGenerator(name = "sg_jumlah_diskon_dokter_m", sequenceName = "jumlah_diskon_dokter_m_seq", allocationSize = 1) + @Column(name = "id") + protected Long id; + + private Boolean statusEnabled; + + private Short kdProfile; + + @Column(nullable = false, unique = true, columnDefinition = "numeric(6,2)") + @NotBlank + @Caption("Persen Diskon") + private BigDecimal persenDiskon; +} diff --git a/jasamedika-web/src/main/java/com/jasamedika/medifirst2000/controller/JumlahDiskonDokterController.java b/jasamedika-web/src/main/java/com/jasamedika/medifirst2000/controller/JumlahDiskonDokterController.java new file mode 100644 index 00000000..758d1825 --- /dev/null +++ b/jasamedika-web/src/main/java/com/jasamedika/medifirst2000/controller/JumlahDiskonDokterController.java @@ -0,0 +1,49 @@ +package com.jasamedika.medifirst2000.controller; + +import com.jasamedika.medifirst2000.dto.JumlahDiskonDokterDto; +import com.jasamedika.medifirst2000.exception.ServiceVOException; +import com.jasamedika.medifirst2000.service.JumlahDiskonDokterService; +import com.jasamedika.medifirst2000.util.rest.RestUtil; +import org.apache.commons.collections4.map.SingletonMap; +import org.slf4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import javax.validation.Valid; +import java.util.List; + +import static org.slf4j.LoggerFactory.getLogger; +import static org.springframework.http.HttpStatus.CREATED; +import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; +import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; +import static org.springframework.web.bind.annotation.RequestMethod.POST; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 07/02/2024 + */ +@RestController +@RequestMapping("/master/dokter/jumlah-diskon") +public class JumlahDiskonDokterController { + private static final Logger LOGGER = getLogger(JumlahDiskonDokterController.class); + + @Autowired + private JumlahDiskonDokterService jumlahDiskonDokterService; + + @RequestMapping(method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE) + public ResponseEntity> save(HttpServletRequest request, + @Valid @RequestBody List dtos) { + try { + jumlahDiskonDokterService.save(dtos); + return RestUtil.getJsonResponse(dtos, CREATED, new SingletonMap<>("status", CREATED.getReasonPhrase())); + } catch (ServiceVOException e) { + LOGGER.error("Got exception {} when add jumlah diskon dokter", e.getMessage()); + return RestUtil.getJsonHttptatus(INTERNAL_SERVER_ERROR); + } + } +} From 7006035982b6401ea422d0f0a81b7594be97bfad Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Fri, 23 Feb 2024 10:58:19 +0700 Subject: [PATCH 03/20] 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 f5db5d61e9780e681b365272ac44b5b6b82cde19 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Fri, 23 Feb 2024 10:59:38 +0700 Subject: [PATCH 04/20] Update service pelayanan pasien Penerapan formula hitung harga jasa dampak diskon jasa medis dokter --- .../medifirst2000/dao/PelayananPasienDao.java | 8 +- .../impl/PelayananPasienServiceImpl.java | 684 +++++++++++++----- .../medifirst2000/dto/RemunHargaJasa.java | 18 + 3 files changed, 516 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,213 @@ 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 + && CommonUtil.isNullOrEmpty(d.get("idSayatan"))) { + 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) + && CommonUtil.isNullOrEmpty(d.get("idSayatan"))) { + 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) + && CommonUtil.isNullOrEmpty(d.get("idSayatan"))) { + 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) + && CommonUtil.isNullOrEmpty(d.get("idSayatan"))) { + 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) + && CommonUtil.isNullOrEmpty(d.get("idSayatan"))) { + 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) + && CommonUtil.isNullOrEmpty(d.get("idSayatan"))) { + 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) + && CommonUtil.isNullOrEmpty(d.get("idSayatan"))) { + 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; +} From 14e6be97ac3cdb9966f23efff9494dec2b6f468e Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Wed, 28 Feb 2024 14:43:12 +0700 Subject: [PATCH 05/20] Update model entity Penambahan field persen diskon sayatan --- .../medifirst2000/entities/PelayananPasienDetail.java | 4 ++++ .../jasamedika/medifirst2000/vo/PelayananPasienDetailVO.java | 3 +++ 2 files changed, 7 insertions(+) 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 c3d41f39..f4b39000 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 @@ -61,6 +61,10 @@ public class PelayananPasienDetail extends MedicalRecordTransaction { @Column(columnDefinition = "numeric(6,2)") @Caption("Persen Diskon") private BigDecimal persenDiskon; + + @Column(columnDefinition = "numeric(6,2)") + @Caption("Persen Diskon Sayatan") + private BigDecimal persenDiskonSayatan; @Caption(value = "Harga Discount") @Column(name = "hargaDiscount") 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 0392550e..0a9ae443 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 @@ -65,6 +65,9 @@ public class PelayananPasienDetailVO extends BaseTransactionVO { @Caption("Persen Diskon") private String persenDiskon; + @Caption("Persen Diskon Sayatan") + private String persenDiskonSayatan; + @Caption(value = "Nilai Normal") private Boolean nilaiNormal; From a92d15713720bee6dc97e5879f40c758b0ad585c Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Thu, 29 Feb 2024 10:21:15 +0700 Subject: [PATCH 06/20] Update service pelayanan pasien Penyesuaian logbook dokter atas kombinasi diskon jasa medis dan diskon sayatan --- .../medifirst2000/dao/PelayananPasienDao.java | 15 +++++--- .../impl/PelayananPasienServiceImpl.java | 38 +++++++++++++++---- 2 files changed, 40 insertions(+), 13 deletions(-) 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 3031335b..d63b0901 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,12 +206,15 @@ public interface PelayananPasienDao extends JpaRepository 0.0 && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAn")) && Double.parseDouble(d.get("totalDiskonAn").toString()) > 0.0 - && CommonUtil.isNullOrEmpty(d.get("idSayatan"))) { + && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) + && 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 totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()) + Double.parseDouble(d.get("totalDiskonAs").toString()) + Double.parseDouble(d.get("totalDiskonAn").toString()); @@ -3669,7 +3675,11 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel && Double.parseDouble(d.get("totalDiskonAs").toString()) > 0.0 && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAn")) || Double.parseDouble(d.get("totalDiskonAn").toString()) <= 0.0) - && CommonUtil.isNullOrEmpty(d.get("idSayatan"))) { + && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) + && 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 totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()) + Double.parseDouble(d.get("totalDiskonAs").toString()); double hargaJualSetelahDiskon = hargaJual - totalDiskon; @@ -3699,7 +3709,11 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel && Double.parseDouble(d.get("totalDiskonAn").toString()) > 0.0 && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAs")) || Double.parseDouble(d.get("totalDiskonAs").toString()) <= 0.0) - && CommonUtil.isNullOrEmpty(d.get("idSayatan"))) { + && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) + && 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 totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()) + Double.parseDouble(d.get("totalDiskonAn").toString()); double hargaJualSetelahDiskon = hargaJual - totalDiskon; @@ -3729,7 +3743,11 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel && 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("idSayatan"))) { + && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) + && 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 totalDiskon = Double.parseDouble(d.get("totalDiskonAs").toString()) + Double.parseDouble(d.get("totalDiskonAn").toString()); double hargaJualSetelahDiskon = hargaJual - totalDiskon; @@ -3759,7 +3777,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel || Double.parseDouble(d.get("totalDiskonAs").toString()) <= 0.0) && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAn")) || Double.parseDouble(d.get("totalDiskonAn").toString()) <= 0.0) - && CommonUtil.isNullOrEmpty(d.get("idSayatan"))) { + && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanD")) + && Double.parseDouble(d.get("persenDiskonSayatanD").toString()) > 0))) { double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()); double hargaJualSetelahDiskon = hargaJual - totalDiskon; double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon; @@ -3780,7 +3800,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel || Double.parseDouble(d.get("totalDiskonD").toString()) <= 0.0) && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAn")) || Double.parseDouble(d.get("totalDiskonAn").toString()) <= 0.0) - && CommonUtil.isNullOrEmpty(d.get("idSayatan"))) { + && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAs")) + && Double.parseDouble(d.get("persenDiskonSayatanAs").toString()) > 0))) { double totalDiskon = Double.parseDouble(d.get("totalDiskonAs").toString()); double hargaJualSetelahDiskon = hargaJual - totalDiskon; double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon; @@ -3801,7 +3823,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel || 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("idSayatan"))) { + && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAn")) + && Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) > 0))) { double totalDiskon = Double.parseDouble(d.get("totalDiskonAn").toString()); double hargaJualSetelahDiskon = hargaJual - totalDiskon; double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon; From 0f118d61440520b972bdfb19551f4d61242d2af1 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Mon, 4 Mar 2024 14:54:32 +0700 Subject: [PATCH 07/20] Update PelayananPasienServiceImpl.java Perbaikan kombinasi diskon sayatan + jasa medis --- .../impl/PelayananPasienServiceImpl.java | 107 ++++++++++++------ 1 file changed, 70 insertions(+), 37 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 6ae6dc78..395fb39c 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 @@ -3628,19 +3628,25 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } return builder.build(); } - if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD")) + if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD")) + && Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD")) && Double.parseDouble(d.get("totalDiskonD").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs")) + && Double.parseDouble(d.get("persenDiskonAs").toString()) > 0.0 && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAs")) && Double.parseDouble(d.get("totalDiskonAs").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn")) + && Double.parseDouble(d.get("persenDiskonAn").toString()) > 0.0 && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAn")) && Double.parseDouble(d.get("totalDiskonAn").toString()) > 0.0 && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanD")) - && Double.parseDouble(d.get("persenDiskonSayatanD").toString()) > 0 + && Double.parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0 && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAs")) - && Double.parseDouble(d.get("persenDiskonSayatanAs").toString()) > 0 + && Double.parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0 && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAn")) - && Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) > 0))) { + && Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) { double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()) + Double.parseDouble(d.get("totalDiskonAs").toString()) + Double.parseDouble(d.get("totalDiskonAn").toString()); @@ -3669,17 +3675,22 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel + d.get("persenDiskonD").toString() + "%, " + d.get("persenDiskonAs").toString() + "%, dan " + d.get("persenDiskonAn").toString() + "%"); } - } else if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD")) + } else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD")) + && Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD")) && Double.parseDouble(d.get("totalDiskonD").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs")) + && Double.parseDouble(d.get("persenDiskonAs").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.parseDouble(d.get("persenDiskonAn").toString()) == 0.0 + && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAn")) + || Double.parseDouble(d.get("totalDiskonAn").toString()) <= 0.0)) && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanD")) - && Double.parseDouble(d.get("persenDiskonSayatanD").toString()) > 0 + && Double.parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0 && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAs")) - && Double.parseDouble(d.get("persenDiskonSayatanAs").toString()) > 0))) { + && Double.parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0))) { double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()) + Double.parseDouble(d.get("totalDiskonAs").toString()); double hargaJualSetelahDiskon = hargaJual - totalDiskon; @@ -3703,17 +3714,22 @@ 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 (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD")) + } else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD")) + && Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD")) && Double.parseDouble(d.get("totalDiskonD").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn")) + && Double.parseDouble(d.get("persenDiskonAn").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.parseDouble(d.get("persenDiskonAs").toString()) == 0.0 + && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAs")) + || Double.parseDouble(d.get("totalDiskonAs").toString()) <= 0.0)) && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanD")) - && Double.parseDouble(d.get("persenDiskonSayatanD").toString()) > 0 + && Double.parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0 && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAn")) - && Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) > 0))) { + && Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) { double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()) + Double.parseDouble(d.get("totalDiskonAn").toString()); double hargaJualSetelahDiskon = hargaJual - totalDiskon; @@ -3737,17 +3753,22 @@ 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 (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAs")) + } else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs")) + && Double.parseDouble(d.get("persenDiskonAs").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAs")) && Double.parseDouble(d.get("totalDiskonAs").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn")) + && Double.parseDouble(d.get("persenDiskonAn").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.parseDouble(d.get("persenDiskonD").toString()) == 0.0 + && (CommonUtil.isNullOrEmpty(d.get("totalDiskonD")) + || Double.parseDouble(d.get("totalDiskonD").toString()) <= 0.0)) && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAs")) - && Double.parseDouble(d.get("persenDiskonSayatanAs").toString()) > 0 + && Double.parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0 && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAn")) - && Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) > 0))) { + && Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) { double totalDiskon = Double.parseDouble(d.get("totalDiskonAs").toString()) + Double.parseDouble(d.get("totalDiskonAn").toString()); double hargaJualSetelahDiskon = hargaJual - totalDiskon; @@ -3771,15 +3792,19 @@ 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 (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD")) + } else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD")) + && Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0 + && 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.parseDouble(d.get("persenDiskonAs").toString()) == 0.0 + && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAs")) + || Double.parseDouble(d.get("totalDiskonAs").toString()) <= 0.0)) + && (Double.parseDouble(d.get("persenDiskonAn").toString()) == 0.0 + && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAn")) + || Double.parseDouble(d.get("totalDiskonAn").toString()) <= 0.0)) && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanD")) - && Double.parseDouble(d.get("persenDiskonSayatanD").toString()) > 0))) { + && Double.parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0))) { double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()); double hargaJualSetelahDiskon = hargaJual - totalDiskon; double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon; @@ -3794,15 +3819,19 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator + "% karena diskon komponen operator " + d.get("persenDiskonD").toString() + "%"); } - } else if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAs")) + } else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs")) + && Double.parseDouble(d.get("persenDiskonAs").toString()) > 0.0 + && 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.parseDouble(d.get("persenDiskonD").toString()) == 0.0 + && (CommonUtil.isNullOrEmpty(d.get("totalDiskonD")) + || Double.parseDouble(d.get("totalDiskonD").toString()) <= 0.0)) + && (Double.parseDouble(d.get("persenDiskonAn").toString()) == 0.0 + && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAn")) + || Double.parseDouble(d.get("totalDiskonAn").toString()) <= 0.0)) && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAs")) - && Double.parseDouble(d.get("persenDiskonSayatanAs").toString()) > 0))) { + && Double.parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0))) { double totalDiskon = Double.parseDouble(d.get("totalDiskonAs").toString()); double hargaJualSetelahDiskon = hargaJual - totalDiskon; double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon; @@ -3817,15 +3846,19 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunAsisten + "% karena diskon komponen asisten " + d.get("persenDiskonAs").toString() + "%"); } - } else if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAn")) + } else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn")) + && Double.parseDouble(d.get("persenDiskonAn").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) - && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAs")) - || Double.parseDouble(d.get("totalDiskonAs").toString()) <= 0.0) + && (Double.parseDouble(d.get("persenDiskonD").toString()) == 0.0 + && (CommonUtil.isNullOrEmpty(d.get("totalDiskonD")) + || Double.parseDouble(d.get("totalDiskonD").toString()) <= 0.0)) + && (Double.parseDouble(d.get("persenDiskonAs").toString()) == 0.0 + && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAs")) + || Double.parseDouble(d.get("totalDiskonAs").toString()) <= 0.0)) && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAn")) - && Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) > 0))) { + && Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) { double totalDiskon = Double.parseDouble(d.get("totalDiskonAn").toString()); double hargaJualSetelahDiskon = hargaJual - totalDiskon; double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon; From 20af84e600340a464ca9a604b30993fa7196925a Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Wed, 6 Mar 2024 13:41:02 +0700 Subject: [PATCH 08/20] Update service pelayanan pasien Perbaikan selisih diskon di logbook dokter yang tidak memengaruhi logbook pada tindakan dengan beberapa dokter di komponen berbeda --- .../medifirst2000/dao/PelayananPasienDao.java | 9 +- .../impl/PelayananPasienServiceImpl.java | 103 ++++++++++-------- 2 files changed, 62 insertions(+), 50 deletions(-) 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 d63b0901..8a0b20d9 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,13 +206,16 @@ public interface PelayananPasienDao extends JpaRepository 0.0 - && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD")) - && Double.parseDouble(d.get("totalDiskonD").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("totalDiskonAs")) - && Double.parseDouble(d.get("totalDiskonAs").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("totalDiskonAn")) - && Double.parseDouble(d.get("totalDiskonAn").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")) && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanD")) && Double.parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0 @@ -3677,22 +3677,23 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } } else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD")) && Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0 - && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD")) - && Double.parseDouble(d.get("totalDiskonD").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("totalDiskonAs")) - && Double.parseDouble(d.get("totalDiskonAs").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAs")) + && Double.parseDouble(d.get("diskonAs").toString()) > 0.0 && (Double.parseDouble(d.get("persenDiskonAn").toString()) == 0.0 - && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAn")) - || Double.parseDouble(d.get("totalDiskonAn").toString()) <= 0.0)) + && (CommonUtil.isNullOrEmpty(d.get("diskonAn")) + || Double.parseDouble(d.get("diskonAn").toString()) <= 0.0)) && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && 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 totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()) - + Double.parseDouble(d.get("totalDiskonAs").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()); @@ -3716,21 +3717,22 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } } else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD")) && Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0 - && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD")) - && Double.parseDouble(d.get("totalDiskonD").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("totalDiskonAn")) - && Double.parseDouble(d.get("totalDiskonAn").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAn")) + && Double.parseDouble(d.get("diskonAn").toString()) > 0.0 && (Double.parseDouble(d.get("persenDiskonAs").toString()) == 0.0 - && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAs")) - || Double.parseDouble(d.get("totalDiskonAs").toString()) <= 0.0)) + && (CommonUtil.isNullOrEmpty(d.get("diskonAs")) + || Double.parseDouble(d.get("diskonAs").toString()) <= 0.0)) && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && 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 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; @@ -3755,21 +3757,22 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } } else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs")) && Double.parseDouble(d.get("persenDiskonAs").toString()) > 0.0 - && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAs")) - && Double.parseDouble(d.get("totalDiskonAs").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("totalDiskonAn")) - && Double.parseDouble(d.get("totalDiskonAn").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAn")) + && Double.parseDouble(d.get("diskonAn").toString()) > 0.0 && (Double.parseDouble(d.get("persenDiskonD").toString()) == 0.0 - && (CommonUtil.isNullOrEmpty(d.get("totalDiskonD")) - || Double.parseDouble(d.get("totalDiskonD").toString()) <= 0.0)) + && (CommonUtil.isNullOrEmpty(d.get("diskonD")) + || Double.parseDouble(d.get("diskonD").toString()) <= 0.0)) && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && 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 totalDiskon = Double.parseDouble(d.get("totalDiskonAs").toString()) + 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; @@ -3794,18 +3797,20 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } } else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD")) && Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0 - && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD")) - && Double.parseDouble(d.get("totalDiskonD").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonD")) + && Double.parseDouble(d.get("diskonD").toString()) > 0.0 && (Double.parseDouble(d.get("persenDiskonAs").toString()) == 0.0 - && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAs")) - || Double.parseDouble(d.get("totalDiskonAs").toString()) <= 0.0)) + && (CommonUtil.isNullOrEmpty(d.get("diskonAs")) + || Double.parseDouble(d.get("diskonAs").toString()) <= 0.0)) && (Double.parseDouble(d.get("persenDiskonAn").toString()) == 0.0 - && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAn")) - || Double.parseDouble(d.get("totalDiskonAn").toString()) <= 0.0)) + && (CommonUtil.isNullOrEmpty(d.get("diskonAn")) + || Double.parseDouble(d.get("diskonAn").toString()) <= 0.0)) && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanD")) && Double.parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0))) { - double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()); + 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()); @@ -3821,18 +3826,20 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } } else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs")) && Double.parseDouble(d.get("persenDiskonAs").toString()) > 0.0 - && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAs")) - && Double.parseDouble(d.get("totalDiskonAs").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAs")) + && Double.parseDouble(d.get("diskonAs").toString()) > 0.0 && (Double.parseDouble(d.get("persenDiskonD").toString()) == 0.0 - && (CommonUtil.isNullOrEmpty(d.get("totalDiskonD")) - || Double.parseDouble(d.get("totalDiskonD").toString()) <= 0.0)) + && (CommonUtil.isNullOrEmpty(d.get("diskonD")) + || Double.parseDouble(d.get("diskonD").toString()) <= 0.0)) && (Double.parseDouble(d.get("persenDiskonAn").toString()) == 0.0 - && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAn")) - || Double.parseDouble(d.get("totalDiskonAn").toString()) <= 0.0)) + && (CommonUtil.isNullOrEmpty(d.get("diskonAn")) + || Double.parseDouble(d.get("diskonAn").toString()) <= 0.0)) && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAs")) && Double.parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0))) { - double totalDiskon = Double.parseDouble(d.get("totalDiskonAs").toString()); + 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 persenRemunAsisten = 100.00 - Double.parseDouble(d.get("persenDiskonAs").toString()); @@ -3848,18 +3855,20 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } } else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn")) && Double.parseDouble(d.get("persenDiskonAn").toString()) > 0.0 - && CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAn")) - && Double.parseDouble(d.get("totalDiskonAn").toString()) > 0.0 + && CommonUtil.isNotNullOrEmpty(d.get("diskonAn")) + && Double.parseDouble(d.get("diskonAn").toString()) > 0.0 && (Double.parseDouble(d.get("persenDiskonD").toString()) == 0.0 - && (CommonUtil.isNullOrEmpty(d.get("totalDiskonD")) - || Double.parseDouble(d.get("totalDiskonD").toString()) <= 0.0)) + && (CommonUtil.isNullOrEmpty(d.get("diskonD")) + || Double.parseDouble(d.get("diskonD").toString()) <= 0.0)) && (Double.parseDouble(d.get("persenDiskonAs").toString()) == 0.0 - && (CommonUtil.isNullOrEmpty(d.get("totalDiskonAs")) - || Double.parseDouble(d.get("totalDiskonAs").toString()) <= 0.0)) + && (CommonUtil.isNullOrEmpty(d.get("diskonAs")) + || Double.parseDouble(d.get("diskonAs").toString()) <= 0.0)) && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAn")) && Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) { - double totalDiskon = Double.parseDouble(d.get("totalDiskonAn").toString()); + 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 persenRemunAnestesi = 100.00 - Double.parseDouble(d.get("persenDiskonAn").toString()); From bebc6a753db70a21d7150f01c4dceb3ee6fdfe0e Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Sat, 9 Mar 2024 00:17:20 +0700 Subject: [PATCH 09/20] Update PelayananPasienServiceImpl.java Perbaikan diskon di Rp0,- komponen tetapi tetap dapat kinerja dari aturan remun + kombinasi diskon --- .../impl/PelayananPasienServiceImpl.java | 145 ++++++------------ 1 file changed, 49 insertions(+), 96 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 e4585459..bddb592d 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 @@ -1522,19 +1522,18 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel { List> listPelayananFixedPay = new ArrayList<>(); if (CommonUtil.isNotNullOrEmpty(listFixedPay)) - listPelayananFixedPay = setPelayananPaket(idPegawai, bulan, listFixedPay); + listPelayananFixedPay = setPelayananPaket(idPegawai, listFixedPay); result.put("fixed-pay", listPelayananFixedPay); } return result; } - private List> setPelayananPaket(Integer idPegawai, String bulan, - List> listData) { + private List> setPelayananPaket(Integer idPegawai, List> listData) { /* * Transformasi data paket menggunakan mapprodukpaket dan * mapprodukpakettoproduk */ - List> listFixedPay = transformPelayananPaket(idPegawai, bulan, listData); + List> listFixedPay = transformPelayananPaket(idPegawai, listData); /* * Populate data filter */ @@ -1606,8 +1605,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel return groupingTanggalFixedPay(listFixedPay); } - private List> transformPelayananPaket(Integer idPegawai, String bulan, - List> listData) { + private List> transformPelayananPaket(Integer idPegawai, List> listData) { List drKsmObgyn = pegawaiDao.getDokterByKsm(KSM_OBGYN); SimpleDateFormat month = new SimpleDateFormat("MMM-yyyy", new Locale("in", "ID")); listData.forEach(d -> { @@ -3628,24 +3626,15 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } return builder.build(); } - 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")) + 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 - && CommonUtil.isNotNullOrEmpty(d.get("diskonAs")) - && Double.parseDouble(d.get("diskonAs").toString()) > 0.0 - && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn")) + && Double.parseDouble(d.get("diskonAs").toString()) >= 0.0 && Double.parseDouble(d.get("persenDiskonAn").toString()) > 0.0 - && CommonUtil.isNotNullOrEmpty(d.get("diskonAn")) - && Double.parseDouble(d.get("diskonAn").toString()) > 0.0 + && Double.parseDouble(d.get("diskonAn").toString()) >= 0.0 && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) - && 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("persenDiskonSayatanD").toString()) >= 0 && Double + .parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0 && Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) { double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()) + Double.parseDouble(d.get("totalDiskonAs").toString()) @@ -3675,22 +3664,15 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel + d.get("persenDiskonD").toString() + "%, " + d.get("persenDiskonAs").toString() + "%, dan " + d.get("persenDiskonAn").toString() + "%"); } - } 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")) + } else 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 - && CommonUtil.isNotNullOrEmpty(d.get("diskonAs")) - && Double.parseDouble(d.get("diskonAs").toString()) > 0.0 - && (Double.parseDouble(d.get("persenDiskonAn").toString()) == 0.0 - && (CommonUtil.isNullOrEmpty(d.get("diskonAn")) - || Double.parseDouble(d.get("diskonAn").toString()) <= 0.0)) + && Double.parseDouble(d.get("diskonAs").toString()) >= 0.0 + && Double.parseDouble(d.get("persenDiskonAn").toString()) == 0.0 + && Double.parseDouble(d.get("diskonAn").toString()) <= 0.0 && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) - && 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.parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0 && Double + .parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0))) { double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()) + Double.parseDouble(d.get("totalDiskonAs").toString()) + Double.parseDouble(d.get("totalDiskonAn").toString()); @@ -3715,22 +3697,15 @@ 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 (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")) + } else if (Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0 + && Double.parseDouble(d.get("diskonD").toString()) >= 0.0 && Double.parseDouble(d.get("persenDiskonAn").toString()) > 0.0 - && CommonUtil.isNotNullOrEmpty(d.get("diskonAn")) - && Double.parseDouble(d.get("diskonAn").toString()) > 0.0 - && (Double.parseDouble(d.get("persenDiskonAs").toString()) == 0.0 - && (CommonUtil.isNullOrEmpty(d.get("diskonAs")) - || Double.parseDouble(d.get("diskonAs").toString()) <= 0.0)) + && Double.parseDouble(d.get("diskonAn").toString()) >= 0.0 + && Double.parseDouble(d.get("persenDiskonAs").toString()) == 0.0 + && Double.parseDouble(d.get("diskonAs").toString()) <= 0.0 && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) - && 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.parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0 && Double + .parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) { double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()) + Double.parseDouble(d.get("totalDiskonAs").toString()) + Double.parseDouble(d.get("totalDiskonAn").toString()); @@ -3755,22 +3730,15 @@ 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 (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")) + } else if (Double.parseDouble(d.get("persenDiskonAs").toString()) > 0.0 + && Double.parseDouble(d.get("diskonAs").toString()) >= 0.0 && Double.parseDouble(d.get("persenDiskonAn").toString()) > 0.0 - && CommonUtil.isNotNullOrEmpty(d.get("diskonAn")) - && Double.parseDouble(d.get("diskonAn").toString()) > 0.0 - && (Double.parseDouble(d.get("persenDiskonD").toString()) == 0.0 - && (CommonUtil.isNullOrEmpty(d.get("diskonD")) - || Double.parseDouble(d.get("diskonD").toString()) <= 0.0)) + && Double.parseDouble(d.get("diskonAn").toString()) >= 0.0 + && Double.parseDouble(d.get("persenDiskonD").toString()) == 0.0 + && Double.parseDouble(d.get("diskonD").toString()) <= 0.0 && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) - && 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.parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0 && Double + .parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) { double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()) + Double.parseDouble(d.get("totalDiskonAs").toString()) + Double.parseDouble(d.get("totalDiskonAn").toString()); @@ -3795,18 +3763,13 @@ 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 (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 - && (Double.parseDouble(d.get("persenDiskonAs").toString()) == 0.0 - && (CommonUtil.isNullOrEmpty(d.get("diskonAs")) - || Double.parseDouble(d.get("diskonAs").toString()) <= 0.0)) - && (Double.parseDouble(d.get("persenDiskonAn").toString()) == 0.0 - && (CommonUtil.isNullOrEmpty(d.get("diskonAn")) - || Double.parseDouble(d.get("diskonAn").toString()) <= 0.0)) + } else 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 + && Double.parseDouble(d.get("diskonAs").toString()) <= 0.0 + && Double.parseDouble(d.get("persenDiskonAn").toString()) == 0.0 + && Double.parseDouble(d.get("diskonAn").toString()) <= 0.0 && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) - && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanD")) && Double.parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0))) { double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()) + Double.parseDouble(d.get("totalDiskonAs").toString()) @@ -3824,18 +3787,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator + "% karena diskon komponen operator " + d.get("persenDiskonD").toString() + "%"); } - } 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 - && (Double.parseDouble(d.get("persenDiskonD").toString()) == 0.0 - && (CommonUtil.isNullOrEmpty(d.get("diskonD")) - || Double.parseDouble(d.get("diskonD").toString()) <= 0.0)) - && (Double.parseDouble(d.get("persenDiskonAn").toString()) == 0.0 - && (CommonUtil.isNullOrEmpty(d.get("diskonAn")) - || Double.parseDouble(d.get("diskonAn").toString()) <= 0.0)) + } else if (Double.parseDouble(d.get("persenDiskonAs").toString()) > 0.0 + && Double.parseDouble(d.get("diskonAs").toString()) >= 0.0 + && Double.parseDouble(d.get("persenDiskonD").toString()) == 0.0 + && Double.parseDouble(d.get("diskonD").toString()) <= 0.0 + && Double.parseDouble(d.get("persenDiskonAn").toString()) == 0.0 + && Double.parseDouble(d.get("diskonAn").toString()) <= 0.0 && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) - && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAs")) && Double.parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0))) { double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()) + Double.parseDouble(d.get("totalDiskonAs").toString()) @@ -3853,18 +3811,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel + " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunAsisten + "% karena diskon komponen asisten " + d.get("persenDiskonAs").toString() + "%"); } - } 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 - && (Double.parseDouble(d.get("persenDiskonD").toString()) == 0.0 - && (CommonUtil.isNullOrEmpty(d.get("diskonD")) - || Double.parseDouble(d.get("diskonD").toString()) <= 0.0)) - && (Double.parseDouble(d.get("persenDiskonAs").toString()) == 0.0 - && (CommonUtil.isNullOrEmpty(d.get("diskonAs")) - || Double.parseDouble(d.get("diskonAs").toString()) <= 0.0)) + } else if (Double.parseDouble(d.get("persenDiskonAn").toString()) > 0.0 + && Double.parseDouble(d.get("diskonAn").toString()) >= 0.0 + && Double.parseDouble(d.get("persenDiskonD").toString()) == 0.0 + && Double.parseDouble(d.get("diskonD").toString()) <= 0.0 + && Double.parseDouble(d.get("persenDiskonAs").toString()) == 0.0 + && Double.parseDouble(d.get("diskonAs").toString()) <= 0.0 && (CommonUtil.isNullOrEmpty(d.get("idSayatan")) || (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) - && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonSayatanAn")) && Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) { double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString()) + Double.parseDouble(d.get("totalDiskonAs").toString()) From 605266891479fecc576b1109002dbe0df82db87d Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Sat, 9 Mar 2024 01:09:00 +0700 Subject: [PATCH 10/20] Update service pelayanan pasien Perbaikan diskon di Rp0,- komponen tetapi tetap dapat kinerja dari aturan remun + kombinasi diskon --- .../medifirst2000/dao/PelayananPasienDao.java | 17 +++- .../impl/PelayananPasienServiceImpl.java | 79 ++++++++++++++----- 2 files changed, 71 insertions(+), 25 deletions(-) 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 8a0b20d9..3614842b 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 @@ -207,17 +207,26 @@ public interface PelayananPasienDao extends JpaRepository 0.0 && Double.parseDouble(d.get("diskonD").toString()) >= 0.0 && Double.parseDouble(d.get("persenDiskonAs").toString()) > 0.0 @@ -3636,9 +3645,13 @@ 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 = Double.parseDouble(d.get("totalDiskonD").toString()) - + Double.parseDouble(d.get("totalDiskonAs").toString()) - + Double.parseDouble(d.get("totalDiskonAn").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; double persenRemunOperator = 100.00 - Double.parseDouble(d.get("persenDiskonD").toString()); @@ -3673,9 +3686,13 @@ 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 = Double.parseDouble(d.get("totalDiskonD").toString()) - + Double.parseDouble(d.get("totalDiskonAs").toString()) - + Double.parseDouble(d.get("totalDiskonAn").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; double persenRemunOperator = 100.00 - Double.parseDouble(d.get("persenDiskonD").toString()); @@ -3706,9 +3723,13 @@ 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 = Double.parseDouble(d.get("totalDiskonD").toString()) - + Double.parseDouble(d.get("totalDiskonAs").toString()) - + Double.parseDouble(d.get("totalDiskonAn").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; double persenRemunOperator = 100.00 - Double.parseDouble(d.get("persenDiskonD").toString()); @@ -3739,9 +3760,13 @@ 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 = Double.parseDouble(d.get("totalDiskonD").toString()) - + Double.parseDouble(d.get("totalDiskonAs").toString()) - + Double.parseDouble(d.get("totalDiskonAn").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; double persenRemunAsisten = 100.00 - Double.parseDouble(d.get("persenDiskonAs").toString()); @@ -3771,9 +3796,13 @@ 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 = Double.parseDouble(d.get("totalDiskonD").toString()) - + Double.parseDouble(d.get("totalDiskonAs").toString()) - + Double.parseDouble(d.get("totalDiskonAn").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; double persenRemunOperator = 100.00 - Double.parseDouble(d.get("persenDiskonD").toString()); @@ -3795,9 +3824,13 @@ 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 = Double.parseDouble(d.get("totalDiskonD").toString()) - + Double.parseDouble(d.get("totalDiskonAs").toString()) - + Double.parseDouble(d.get("totalDiskonAn").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; double persenRemunAsisten = 100.00 - Double.parseDouble(d.get("persenDiskonAs").toString()); @@ -3819,9 +3852,13 @@ 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 = Double.parseDouble(d.get("totalDiskonD").toString()) - + Double.parseDouble(d.get("totalDiskonAs").toString()) - + Double.parseDouble(d.get("totalDiskonAn").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; double persenRemunAnestesi = 100.00 - Double.parseDouble(d.get("persenDiskonAn").toString()); From ae38bc6eb72f8970cf6ae25ee3035c87226df5c7 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Fri, 15 Mar 2024 22:42:58 +0700 Subject: [PATCH 11/20] Update PelayananPasienServiceImpl.java Penyesuaian non-diskon jasa medis tetap dipengaruhi diskon jasa medis komponen lain karena tarif setelah diskon berubah --- .../impl/PelayananPasienServiceImpl.java | 74 +++---------------- 1 file changed, 10 insertions(+), 64 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..c3713a55 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,7 +3819,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel + "% karena diskon komponen anestesi " + d.get("persenDiskonAn").toString() + "%"); } } else { - builder.nilai(persenRemunerasi * hargaJual); + builder.nilai(persenRemunerasi * hargaJualSetelahDiskon); builder.keterangan(""); } return builder.build(); From 9bc7d6a4a6550addd07a70f10377a1f66589cc0b Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Fri, 15 Mar 2024 22:42:58 +0700 Subject: [PATCH 12/20] 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 0c61d7a8f210acf9ef5d4d76eb7f8339c19c9405 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Mon, 18 Mar 2024 10:30:01 +0700 Subject: [PATCH 13/20] Update PelayananPasienServiceImpl.java Perbaikan keterangan selisih tarif setelah diskon pada logbook dokter karna diskon komponen dokter lain --- .../service/impl/PelayananPasienServiceImpl.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 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..65c81570 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 @@ -675,6 +675,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } else if (drKkGenetika.contains(idPegawai) && idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { + /* + * A rule for claimed <= Jul 31th 2023 + */ 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()))) { @@ -3820,8 +3823,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(); } From 3c39935942aa0d7788b95c574b6e9886fddd3a21 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Thu, 28 Mar 2024 08:19:58 +0700 Subject: [PATCH 14/20] Update service logbook kinerja Penerapan setting data fixed untuk target indikator pemenuhan jam kerja --- .../com/jasamedika/medifirst2000/constants/Master.java | 2 -- .../service/impl/LogbookKinerjaServiceImpl.java | 9 ++++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java index 45f1766d..4f1bb3e2 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java @@ -9,8 +9,6 @@ public final class Master { public static final short KODE_PROFILE = 0; public static final String KONSUL = "konsul"; public static final String[] KONSUL_VISIT = { "konsul", "visit" }; - public static final Double MENIT_KERJA_HARIAN = 7.5 * 60.0; - public static final Double MENIT_KERJA_RAMADHAN = 6.0 * 60.0; public static final boolean STATUS_ENABLE_FALSE = false; public static final boolean STATUS_ENABLE_TRUE = true; public static final String TIDAK_ADA_PERUBAHAN_DATA = "Tidak Ada Perubahan Data!"; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java index eadff315..1581e4b4 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java @@ -152,6 +152,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb public LogbookKinerjaVO update(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException { DateFormat mf = new SimpleDateFormat("yyyy-MM"); + double menitKerjaHarian = Double.parseDouble(GetSettingDataFixed("menitKerjaHarian")); LogbookKinerja logbookKinerjaLama = logbookKinerjaDao.findOne(vo.getNoRec()); Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai()); @@ -165,7 +166,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb logbookKinerjaBaru.setIndikatorKinerja(indikatorKinerja); if (vo.getIndikatorKinerja().getId().equals(Master.IndikatorKinerja.PEMENUHAN_JAM_KERJA)) { Integer targetHariKerja = hitungTargetHariKerja(vo.getBulan()); - Double targetJamKerja = targetHariKerja.doubleValue() * Master.MENIT_KERJA_HARIAN; + Double targetJamKerja = targetHariKerja.doubleValue() * menitKerjaHarian; logbookKinerjaBaru.setTarget(targetJamKerja); } @@ -408,6 +409,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb Date start = DateUtil.startMonth(bulan); Date end = DateUtil.endMonth(bulan); + double menitKerjaHarian = Double.parseDouble(GetSettingDataFixed("menitKerjaHarian")); + double menitKerjaRamadhan = Double.parseDouble(GetSettingDataFixed("menitKerjaRamadhan")); List targetPresensi = kalenderDao.getTargetKerja(start, end); int jumlahHariKerjaHarian = 0; int jumlahHariKerjaRamadhan = 0; @@ -420,8 +423,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } } - result += (double) jumlahHariKerjaHarian * Master.MENIT_KERJA_HARIAN; - result += (double) jumlahHariKerjaRamadhan * Master.MENIT_KERJA_RAMADHAN; + result += (double) jumlahHariKerjaHarian * menitKerjaHarian; + result += (double) jumlahHariKerjaRamadhan * menitKerjaRamadhan; return result; } From 38f5664808ee4611d14022a2bbe11d39b34efe3a Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Mon, 22 Apr 2024 14:23:28 +0700 Subject: [PATCH 15/20] Update service pelayanan pasien Penerapan aturan paket bukan fixed-pay --- .../medifirst2000/constants/Master.java | 1 + .../medifirst2000/dao/PelayananPasienDao.java | 23 ++++++++-------- .../dao/PelayananPasienDetailDao.java | 11 +++++--- .../impl/PelayananPasienServiceImpl.java | 27 ++++++++++++++++--- 4 files changed, 43 insertions(+), 19 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java index 4f1bb3e2..39b9e5f4 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java @@ -246,6 +246,7 @@ public final class Master { public static final Integer[] JASA_SARANA = { 6, 38 }; public static final Integer SPOG_ASISTEN = 206; public static final Integer SPOG_OPERATOR = 201; + public static final Integer TOTAL_TARIF = 210; } public static final class KomponenIndex { 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 174bcdd2..a4d0cbce 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,6 +206,7 @@ public interface PelayananPasienDao extends JpaRepository> findPelayananPasienByPetugasAndTanggal(@Param("pegawaiId") Integer idPegawai, @Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir); - @Query("select new Map(jp.jenisPetugasPe as jenisPelaksana," + "pr.namaProduk as namaProduk," - + "coalesce(pp.hargaJual,0) as hargaJual," + "coalesce(pp.hargaDiscount,0) as diskon," - + "coalesce(pp.jumlah,0) as jumlah," + "kp.kelompokPasien as kelompokPasien," - + "kls.namaKelas as namaKelas," + "to_char(pp.tglPelayanan,'yyyy-MM-dd HH24:MI:ss') as tanggal," - + "ru.namaRuangan as namaRuangan," + "ps.namaPasien as namaPasien,ps.noCm as noCm," - + "pd.noRegistrasi as noRegistrasi) " + "from PelayananPasienPetugas ppp " - + "inner join ppp.pelayananPasien pp " + "inner join ppp.kdjenispetugaspe jp " - + "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd " + "left join pp.produk pr " - + "left join pp.kelas kls " + "left join pd.kelompokPasien kp " + "left join pd.pasien ps " - + "left join apd.ruangan ru " + "left join pr.detailJenisProduk djp " - + "where (ppp.statusEnabled is true or ppp.statusEnabled is null) " + @Query("select new Map(jp.jenisPetugasPe as jenisPelaksana," + "pr.id as idProduk, pr.namaProduk as namaProduk," + + "pp.noRec as idPelayanan," + "coalesce(pp.hargaJual,0) as hargaJual," + + "coalesce(pp.hargaDiscount,0) as diskon," + "coalesce(pp.jumlah,0) as jumlah," + + "kp.kelompokPasien as kelompokPasien," + "kls.namaKelas as namaKelas," + + "to_char(pp.tglPelayanan,'yyyy-MM-dd HH24:MI:ss') as tanggal," + "ru.namaRuangan as namaRuangan," + + "ps.namaPasien as namaPasien,ps.noCm as noCm," + "pd.noRegistrasi as noRegistrasi) " + + "from PelayananPasienPetugas ppp " + "inner join ppp.pelayananPasien pp " + + "inner join ppp.kdjenispetugaspe jp " + "inner join pp.pasienDaftar apd " + + "inner join apd.pasienDaftar pd " + "left join pp.produk pr " + "left join pp.kelas kls " + + "left join pd.kelompokPasien kp " + "left join pd.pasien ps " + "left join apd.ruangan ru " + + "left join pr.detailJenisProduk djp " + "where (ppp.statusEnabled is true or ppp.statusEnabled is null) " + "and (pp.statusEnabled is true or pp.statusEnabled is null) " + "and (pd.statusEnabled is true or pd.statusEnabled is null) " + "and ppp.ObjectPegawaiId = :pegawaiId " + "and ppp.noRec in (:norecs) " diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDetailDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDetailDao.java index a831dcf8..16ceaaeb 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDetailDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDetailDao.java @@ -1,10 +1,9 @@ package com.jasamedika.medifirst2000.dao; import com.jasamedika.medifirst2000.entities.PelayananPasienDetail; +import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.data.repository.query.Param; -import org.springframework.stereotype.Repository; import java.util.List; @@ -13,12 +12,16 @@ import java.util.List; * * @author Generator */ -@Repository("PelayananPasienDetailDao") -public interface PelayananPasienDetailDao extends PagingAndSortingRepository { +public interface PelayananPasienDetailDao extends JpaRepository { @Query("select model from PelayananPasienDetail model left join model.pelayananPasien a where a.noRec=:noRec") List findByPelayananPasien(@Param("noRec") String noRec); @Query("select sum(ppd.hargaDiscount) " + "from PelayananPasienDetail ppd " + "where ppd.pelayananPasienId = :noRec " + "and ppd.komponenHargaId = 35") Double totalDiskonJasamedis(@Param("noRec") String noRec); + + @Query("select ppd " + "from PelayananPasienDetail ppd " + "where ppd.pelayananPasienId in (:listIdPelayanan) " + + "and ppd.komponenHargaId = :idKomponenHarga") + List findByPelayananAndKomponenHarga(@Param("listIdPelayanan") List listIdPelayanan, + @Param("idKomponenHarga") Integer idKomponenHarga); } 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 c2e4bd82..5752b933 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 @@ -548,6 +548,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel "idMonitoringHemodinamikGagalOrgan"); List idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan"); List idProdukKecantikanFixedPay = splitDataSettingDatafixed("idProdukKecantikanFixedPay"); + List paketBukanFixedPay = splitDataSettingDatafixed("produkPaketBukanFixedPay"); if (drKkPatologiAnatomiList.contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; } else if (pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_KLINIK).contains(idPegawai)) { @@ -576,15 +577,17 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel .filter(d -> !idProdukKecantikanFixedPay.contains(Integer.parseInt(d.get("idProduk").toString()))) .collect(Collectors.toList()); List allPaketId = mapProdukPaketDao.findProdukEntriId(); + List revisedPaketId = allPaketId.stream().filter(p -> !paketBukanFixedPay.contains(p)) + .collect(Collectors.toList()); List> listFixedPay = listRatedPay.stream() - .filter(d -> allPaketId.contains(Integer.parseInt(d.get("idProduk").toString()))) + .filter(d -> revisedPaketId.contains(Integer.parseInt(d.get("idProduk").toString()))) .collect(Collectors.toList()); /* * Filtering selain logbook fixed pay */ - allPaketId.addAll(mapProdukPaketDao.findPaketId()); + revisedPaketId.addAll(mapProdukPaketDao.findPaketId()); listRatedPay = listRatedPay.stream() - .filter(d -> !allPaketId.contains(Integer.parseInt(d.get("idProduk").toString()))) + .filter(d -> !revisedPaketId.contains(Integer.parseInt(d.get("idProduk").toString()))) .collect(Collectors.toList()); /* * Set persen jasa dan harga jasa pasien bpjs di ibs, icu @@ -595,6 +598,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * Mapping set awal persentase jasa remunerasi dan harga jasa remunerasi */ for (Map d : listRatedPay) { + if (paketBukanFixedPay.contains(d.get("idProduk"))) + d.put("hargaJual", d.get("komponenTotalTarif")); d.put("isTermasukProporsi", true); double hargaJual = Double.parseDouble(d.get("hargaJual").toString()); if (Boolean.parseBoolean(d.get("isSelisihPaket").toString())) @@ -2985,7 +2990,21 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel @Override public List> detailLogbookTarifDokter(Integer idPegawai, List norecs) { - return pelayananPasienDao.findPelayananPasienByPetugasAndPelayananPasien(idPegawai, norecs); + List paketBukanFixedPay = splitDataSettingDatafixed("produkPaketBukanFixedPay"); + List> result = pelayananPasienDao.findPelayananPasienByPetugasAndPelayananPasien(idPegawai, + norecs); + List listIdPelayananPaketBukanFixedPay = result.stream() + .filter(r -> paketBukanFixedPay.contains(r.get("idProduk"))).map(r -> r.get("idPelayanan").toString()) + .collect(Collectors.toList()); + List detailPelayananPaketBukanFixedPay = pelayananPasienDetailDao + .findByPelayananAndKomponenHarga(listIdPelayananPaketBukanFixedPay, TOTAL_TARIF); + for (Map res : result) { + Optional detail = detailPelayananPaketBukanFixedPay.stream() + .filter(d -> d.getPelayananPasienId().equals(res.get("idPelayanan"))).findFirst(); + detail.ifPresent( + d -> res.put("hargaJual", CommonUtil.isNotNullOrEmpty(d.getHargaJual()) ? d.getHargaJual() : 0.00)); + } + return result; } @Override From b24754cd3d75dd5ffc9cfdaec58c877595ba7897 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Tue, 23 Apr 2024 08:22:13 +0700 Subject: [PATCH 16/20] Update service mapping produk paket Penyesuaian DDL isaktif di tabel mapping produk paket --- .../service/impl/MapProdukPaketServiceImpl.java | 1 + .../jasamedika/medifirst2000/entities/MapProdukPaket.java | 5 +++++ .../com/jasamedika/medifirst2000/vo/MapProdukPaketVO.java | 2 ++ 3 files changed, 8 insertions(+) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapProdukPaketServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapProdukPaketServiceImpl.java index 76b495c6..46518b64 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapProdukPaketServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapProdukPaketServiceImpl.java @@ -40,6 +40,7 @@ public class MapProdukPaketServiceImpl implements MapProdukPaketService { model.setProdukEntri(produkEntri); } model.setKdProfile((short) 0); + model.setIsAktif(true); models.add(model); }); mapProdukPaketDao.save(models); diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapProdukPaket.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapProdukPaket.java index f56dfbb1..d6b3f48e 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapProdukPaket.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapProdukPaket.java @@ -46,4 +46,9 @@ public class MapProdukPaket extends BaseTransaction { @Column(length = 100) @Enumerated(STRING) private JenisMappingProdukPaket jenisMapping; + + @Column(name = "isaktif", nullable = false) + @NotNull(message = "Status aktif tidak boleh kosong") + @Caption(value = "Status Aktif") + private Boolean isAktif; } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapProdukPaketVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapProdukPaketVO.java index 937bd5e2..733840cd 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapProdukPaketVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapProdukPaketVO.java @@ -38,4 +38,6 @@ public class MapProdukPaketVO extends BaseTransactionVO { private JenisMappingProdukPaket jenisMapping; + @Caption(value = "Status Aktif") + private Boolean isAktif; } From 99b70b68e23760670ee122b2a91ed9eb76df9c68 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Mon, 22 Apr 2024 14:23:28 +0700 Subject: [PATCH 17/20] Update service pelayanan pasien Penerapan aturan paket bukan fixed-pay --- .../medifirst2000/constants/Master.java | 1 + .../medifirst2000/dao/PelayananPasienDao.java | 23 ++++++++-------- .../dao/PelayananPasienDetailDao.java | 11 +++++--- .../impl/PelayananPasienServiceImpl.java | 27 ++++++++++++++++--- 4 files changed, 43 insertions(+), 19 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java index 4f1bb3e2..39b9e5f4 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java @@ -246,6 +246,7 @@ public final class Master { public static final Integer[] JASA_SARANA = { 6, 38 }; public static final Integer SPOG_ASISTEN = 206; public static final Integer SPOG_OPERATOR = 201; + public static final Integer TOTAL_TARIF = 210; } public static final class KomponenIndex { 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 174bcdd2..a4d0cbce 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,6 +206,7 @@ public interface PelayananPasienDao extends JpaRepository> findPelayananPasienByPetugasAndTanggal(@Param("pegawaiId") Integer idPegawai, @Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir); - @Query("select new Map(jp.jenisPetugasPe as jenisPelaksana," + "pr.namaProduk as namaProduk," - + "coalesce(pp.hargaJual,0) as hargaJual," + "coalesce(pp.hargaDiscount,0) as diskon," - + "coalesce(pp.jumlah,0) as jumlah," + "kp.kelompokPasien as kelompokPasien," - + "kls.namaKelas as namaKelas," + "to_char(pp.tglPelayanan,'yyyy-MM-dd HH24:MI:ss') as tanggal," - + "ru.namaRuangan as namaRuangan," + "ps.namaPasien as namaPasien,ps.noCm as noCm," - + "pd.noRegistrasi as noRegistrasi) " + "from PelayananPasienPetugas ppp " - + "inner join ppp.pelayananPasien pp " + "inner join ppp.kdjenispetugaspe jp " - + "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd " + "left join pp.produk pr " - + "left join pp.kelas kls " + "left join pd.kelompokPasien kp " + "left join pd.pasien ps " - + "left join apd.ruangan ru " + "left join pr.detailJenisProduk djp " - + "where (ppp.statusEnabled is true or ppp.statusEnabled is null) " + @Query("select new Map(jp.jenisPetugasPe as jenisPelaksana," + "pr.id as idProduk, pr.namaProduk as namaProduk," + + "pp.noRec as idPelayanan," + "coalesce(pp.hargaJual,0) as hargaJual," + + "coalesce(pp.hargaDiscount,0) as diskon," + "coalesce(pp.jumlah,0) as jumlah," + + "kp.kelompokPasien as kelompokPasien," + "kls.namaKelas as namaKelas," + + "to_char(pp.tglPelayanan,'yyyy-MM-dd HH24:MI:ss') as tanggal," + "ru.namaRuangan as namaRuangan," + + "ps.namaPasien as namaPasien,ps.noCm as noCm," + "pd.noRegistrasi as noRegistrasi) " + + "from PelayananPasienPetugas ppp " + "inner join ppp.pelayananPasien pp " + + "inner join ppp.kdjenispetugaspe jp " + "inner join pp.pasienDaftar apd " + + "inner join apd.pasienDaftar pd " + "left join pp.produk pr " + "left join pp.kelas kls " + + "left join pd.kelompokPasien kp " + "left join pd.pasien ps " + "left join apd.ruangan ru " + + "left join pr.detailJenisProduk djp " + "where (ppp.statusEnabled is true or ppp.statusEnabled is null) " + "and (pp.statusEnabled is true or pp.statusEnabled is null) " + "and (pd.statusEnabled is true or pd.statusEnabled is null) " + "and ppp.ObjectPegawaiId = :pegawaiId " + "and ppp.noRec in (:norecs) " diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDetailDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDetailDao.java index a831dcf8..16ceaaeb 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDetailDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDetailDao.java @@ -1,10 +1,9 @@ package com.jasamedika.medifirst2000.dao; import com.jasamedika.medifirst2000.entities.PelayananPasienDetail; +import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.data.repository.query.Param; -import org.springframework.stereotype.Repository; import java.util.List; @@ -13,12 +12,16 @@ import java.util.List; * * @author Generator */ -@Repository("PelayananPasienDetailDao") -public interface PelayananPasienDetailDao extends PagingAndSortingRepository { +public interface PelayananPasienDetailDao extends JpaRepository { @Query("select model from PelayananPasienDetail model left join model.pelayananPasien a where a.noRec=:noRec") List findByPelayananPasien(@Param("noRec") String noRec); @Query("select sum(ppd.hargaDiscount) " + "from PelayananPasienDetail ppd " + "where ppd.pelayananPasienId = :noRec " + "and ppd.komponenHargaId = 35") Double totalDiskonJasamedis(@Param("noRec") String noRec); + + @Query("select ppd " + "from PelayananPasienDetail ppd " + "where ppd.pelayananPasienId in (:listIdPelayanan) " + + "and ppd.komponenHargaId = :idKomponenHarga") + List findByPelayananAndKomponenHarga(@Param("listIdPelayanan") List listIdPelayanan, + @Param("idKomponenHarga") Integer idKomponenHarga); } 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 c2e4bd82..06d368f8 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 @@ -548,6 +548,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel "idMonitoringHemodinamikGagalOrgan"); List idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan"); List idProdukKecantikanFixedPay = splitDataSettingDatafixed("idProdukKecantikanFixedPay"); + List paketBukanFixedPay = splitDataSettingDatafixed("produkPaketBukanFixedPay"); if (drKkPatologiAnatomiList.contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; } else if (pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_KLINIK).contains(idPegawai)) { @@ -576,15 +577,17 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel .filter(d -> !idProdukKecantikanFixedPay.contains(Integer.parseInt(d.get("idProduk").toString()))) .collect(Collectors.toList()); List allPaketId = mapProdukPaketDao.findProdukEntriId(); + List revisedPaketId = allPaketId.stream().filter(p -> !paketBukanFixedPay.contains(p)) + .collect(Collectors.toList()); List> listFixedPay = listRatedPay.stream() - .filter(d -> allPaketId.contains(Integer.parseInt(d.get("idProduk").toString()))) + .filter(d -> revisedPaketId.contains(Integer.parseInt(d.get("idProduk").toString()))) .collect(Collectors.toList()); /* * Filtering selain logbook fixed pay */ - allPaketId.addAll(mapProdukPaketDao.findPaketId()); + revisedPaketId.addAll(mapProdukPaketDao.findPaketId()); listRatedPay = listRatedPay.stream() - .filter(d -> !allPaketId.contains(Integer.parseInt(d.get("idProduk").toString()))) + .filter(d -> !revisedPaketId.contains(Integer.parseInt(d.get("idProduk").toString()))) .collect(Collectors.toList()); /* * Set persen jasa dan harga jasa pasien bpjs di ibs, icu @@ -595,6 +598,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * Mapping set awal persentase jasa remunerasi dan harga jasa remunerasi */ for (Map d : listRatedPay) { + if (paketBukanFixedPay.contains(Integer.parseInt(d.get("idProduk").toString()))) + d.put("hargaJual", d.get("komponenTotalTarif")); d.put("isTermasukProporsi", true); double hargaJual = Double.parseDouble(d.get("hargaJual").toString()); if (Boolean.parseBoolean(d.get("isSelisihPaket").toString())) @@ -2985,7 +2990,21 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel @Override public List> detailLogbookTarifDokter(Integer idPegawai, List norecs) { - return pelayananPasienDao.findPelayananPasienByPetugasAndPelayananPasien(idPegawai, norecs); + List paketBukanFixedPay = splitDataSettingDatafixed("produkPaketBukanFixedPay"); + List> result = pelayananPasienDao.findPelayananPasienByPetugasAndPelayananPasien(idPegawai, + norecs); + List listIdPelayananPaketBukanFixedPay = result.stream() + .filter(r -> paketBukanFixedPay.contains(Integer.parseInt(r.get("idProduk").toString()))) + .map(r -> r.get("idPelayanan").toString()).collect(Collectors.toList()); + List detailPelayananPaketBukanFixedPay = pelayananPasienDetailDao + .findByPelayananAndKomponenHarga(listIdPelayananPaketBukanFixedPay, TOTAL_TARIF); + for (Map res : result) { + Optional detail = detailPelayananPaketBukanFixedPay.stream() + .filter(d -> d.getPelayananPasienId().equals(res.get("idPelayanan"))).findFirst(); + detail.ifPresent( + d -> res.put("hargaJual", CommonUtil.isNotNullOrEmpty(d.getHargaJual()) ? d.getHargaJual() : 0.00)); + } + return result; } @Override From 6ce2f2585a43a5b18703865cd1db42b0b28b724d Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Tue, 23 Apr 2024 13:51:56 +0700 Subject: [PATCH 18/20] Update service kontrak kinerja Penerapan kategori pegawai magang sebagai pegawai purna waktu --- .../medifirst2000/constants/Master.java | 4 - .../service/LogbookKinerjaService.java | 64 +++---- .../impl/LogbookKinerjaDetailServiceImpl.java | 2 +- .../impl/LogbookKinerjaServiceImpl.java | 170 +++++++++++------- .../impl/RekamDataPegawaiServiceImpl.java | 7 +- 5 files changed, 144 insertions(+), 103 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java index 39b9e5f4..f86b7e71 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java @@ -109,7 +109,6 @@ public final class Master { public static final class JenisAlamat { public static final Integer DOMISILI = 4; public static final Integer IDENTITAS = 3; - public static final Integer KANTOR = 2; public static final Integer RUMAH = 1; } @@ -151,7 +150,6 @@ public final class Master { public static final Integer[] PARUH_WAKTU = { 12, 19 }; public static final Integer PESERTA_DIDIK = 17; public static final Integer PNS = 1; - public static final Integer[] PURNA_WAKTU = { 1, 2, 10, 14, 21 }; public static final Integer[] REMUN = { 1, 10, 14, 21 }; } @@ -212,14 +210,12 @@ public final class Master { public static final Integer POTONGAN_OBAT = 16; public static final Integer POTONGAN_PPH = 8; public static final Integer POTONGAN_PPH_REMUNERASI = 36; - public static final Integer POTONGAN_PPH_REMUNERASI_OPERASIONAL = 37; public static final Integer POTONGAN_RAWAT_INAP = 17; public static final Integer POTONGAN_RAWAT_JALAN = 18; public static final Integer POTONGAN_UANG_MAKAN = 12; public static final Integer POTONGAN_PFK = 31; public static final Integer REMUNERASI_KINERJA = 2; public static final Integer REMUNERASI_MANAJERIAL = 44; - public static final Integer REMUNERASI_OPERASIONAL = 3; public static final Integer REMUNERASI_TAMBAHAN_DIKLITJAR = 22; public static final Integer REMUNERASI_TAMBAHAN_LAIN = 23; public static final Integer SEWA_RUMAH = 32; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java index 8a76af28..c5e79560 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java @@ -14,69 +14,69 @@ import com.jasamedika.medifirst2000.vo.SkorDokterVO; public interface LogbookKinerjaService extends BaseVoService { - public LogbookKinerjaVO verify(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException; + LogbookKinerjaVO verify(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException; - public LogbookKinerjaVO addPengajuanKontrakKinerja(LogbookKinerjaVO vo) + LogbookKinerjaVO addPengajuanKontrakKinerja(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException; - public LogbookKinerjaVO updatePengajuanKontrakKinerja(LogbookKinerjaVO vo) + LogbookKinerjaVO updatePengajuanKontrakKinerja(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException; - public List> findPengajuanKontrakKinerja(Integer idPegawai, Integer idJabatan) + List> findPengajuanKontrakKinerja(Integer idPegawai, Integer idJabatan) throws JpaSystemException; - public List> findDupKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan, - Integer idIndikator) throws JpaSystemException; + List> findDupKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan, + Integer idIndikator) throws JpaSystemException; - public Map findKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan) + Map findKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan) throws JpaSystemException; - public List> findKontrakKinerja(Integer idIndikator) throws JpaSystemException; + List> findKontrakKinerja(Integer idIndikator) throws JpaSystemException; - public Map findLogbookKinerja(Integer idPegawai, Integer idJabatan, Long bulan) + Map findLogbookKinerja(Integer idPegawai, Integer idJabatan, Long bulan) throws JpaSystemException; - public List> findAksesPegawai(Integer idPegawai, List listIdKelompokJabatan); + List> findAksesPegawai(Integer idPegawai, List listIdKelompokJabatan); - public List> findLogbookJamKerjaDokter(Integer idPegawai, Long bulan); + List> findLogbookJamKerjaDokter(Integer idPegawai, Long bulan); - public List> findLogbookLuarJamKerjaDokter(Integer idPegawai, Long bulan); + List> findLogbookLuarJamKerjaDokter(Integer idPegawai, Long bulan); - public List> findDetailLogbookJamKerjaDokter(Integer idPegawai, Integer idIndikator, - Integer idProduk, String tglPelayanan, Integer idJenisPetugas, Double skor); + List> findDetailLogbookJamKerjaDokter(Integer idPegawai, Integer idIndikator, + Integer idProduk, String tglPelayanan, Integer idJenisPetugas, Double skor); - public List> findDetailLogbookLuarJamKerjaDokter(Integer idPegawai, Integer idIndikator, - Integer idProduk, String tglPelayanan, Integer idJenisPetugas, Double skor); + List> findDetailLogbookLuarJamKerjaDokter(Integer idPegawai, Integer idIndikator, + Integer idProduk, String tglPelayanan, Integer idJenisPetugas, Double skor); - public Map findPenilaianKinerja(Integer idPegawai, Integer idJabatan, Long bulan) + Map findPenilaianKinerja(Integer idPegawai, Integer idJabatan, Long bulan) throws JpaSystemException; - public List> findRekapPenilaianKinerja(Long bulan, Integer idUnitKerja, Integer idSubunitKerja, - Integer idPegawai) throws JpaSystemException; + List> findRekapPenilaianKinerja(Long bulan, Integer idUnitKerja, Integer idSubunitKerja, + Integer idPegawai) throws JpaSystemException; - public void autoVerifKontrakJamKerjaDokter(Date bulan); + void autoVerifKontrakJamKerjaDokter(Date bulan); - public void autoVerifLogbookJamKerjaDokter(Date bulan); + void autoVerifLogbookJamKerjaDokter(Date bulan); - public List hitungTargetSkorLogbookDokter(String bulanAwal, String bulanAkhir) throws ParseException; + List hitungTargetSkorLogbookDokter(String bulanAwal, String bulanAkhir) throws ParseException; - public List findBobotJenisJabatan(Long periode, Integer idJabatan); + List findBobotJenisJabatan(Long periode, Integer idJabatan); - public List> findJabatanKontrakVerifKinerja(Integer idPegawai, Integer idPegawaiLogin); + List> findJabatanKontrakVerifKinerja(Integer idPegawai, Integer idPegawaiLogin); - public List> findLogbookPerawat(Integer idPegawai, Long bulan); + List> findLogbookPerawat(Integer idPegawai, Long bulan); - public List> findDetailLogbookPerawat(Integer idPegawai, Integer idProduk, String tglPelayanan); + List> findDetailLogbookPerawat(Integer idPegawai, Integer idProduk, String tglPelayanan); - public List> findLogbookNakes(Integer idPegawai, Long bulan); + List> findLogbookNakes(Integer idPegawai, Long bulan); - public List> findDetailLogbookNakes(Integer idPegawai, Integer idProduk, String tglPelayanan); + List> findDetailLogbookNakes(Integer idPegawai, Integer idProduk, String tglPelayanan); - public List> findLogbookFarmakologi(Integer idPegawai, Long bulan); + List> findLogbookFarmakologi(Integer idPegawai, Long bulan); - public List> findDetailLogbookFarmakologi(Integer idPegawai, Integer idProduk, - String tglPelayanan); + List> findDetailLogbookFarmakologi(Integer idPegawai, Integer idProduk, + String tglPelayanan); - public List> findJabatanByLogbookPegawai(Integer idPegawai, Long bulan); + List> findJabatanByLogbookPegawai(Integer idPegawai, Long bulan); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java index 4c65feb5..897fd670 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java @@ -216,7 +216,7 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement @Override public List> findAksesPegawai(Integer idPegawai) throws JpaSystemException { List> result = logbookKinerjaDao.findAksesPegawaiByAtasan(idPegawai, - Arrays.asList(Master.KategoryPegawai.PURNA_WAKTU)); + splitDataSettingDatafixed("kategoriPegawaiAksesAplikasiRemun")); if (CommonUtil.isNotNullOrEmpty(result)) { result.sort(Comparator.comparing(m -> (String) m.get("namaLengkap"), String.CASE_INSENSITIVE_ORDER)); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java index 1581e4b4..cebcbad7 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java @@ -211,9 +211,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } } else { List> existedWorkingRecord = findUsedWorkingRecordByKontrak(vo.getNoRec()); - if (existedWorkingRecord.size() > 0 && !vo.getStatusVerifikasi() && vo.getStatusEnabled()) { + if (!existedWorkingRecord.isEmpty() && !vo.getStatusVerifikasi() && vo.getStatusEnabled()) { resultVO.setResponseMessage("Catatan kegiatan kinerja sudah diisi, tidak dapat batal verifikasi!"); - } else if (existedWorkingRecord.size() > 0 && !vo.getStatusVerifikasi() && !vo.getStatusEnabled()) { + } else if (!existedWorkingRecord.isEmpty() && !vo.getStatusVerifikasi() && !vo.getStatusEnabled()) { resultVO.setResponseMessage("Catatan kegiatan kinerja sudah diisi, tidak dapat hapus kontrak!"); } else { LogbookKinerja resultModel = logbookKinerjaDao.save(logbookKinerjaBaru); @@ -463,7 +463,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } for (Map map : listMap) { - if (!listIdIndikator.contains(map.get("indikatorId"))) { + if (CommonUtil.isNotNullOrEmpty(map.get("indikatorId")) + && !listIdIndikator.contains(Integer.parseInt(map.get("indikatorId").toString()))) { listIdIndikator.add(Integer.valueOf(map.get("indikatorId").toString())); // Komponen target kuantitas indikator pelayanan medis @@ -527,7 +528,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } } for (Map map : data) { - if (!listIdIndikator.contains(map.get("indikatorId"))) { + if (CommonUtil.isNotNullOrEmpty(map.get("indikatorId")) + && !listIdIndikator.contains(Integer.parseInt(map.get("indikatorId").toString()))) { listIdIndikator.add(Integer.valueOf(map.get("indikatorId").toString())); listRes.add(map); } @@ -604,7 +606,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb Map result = new HashMap<>(); List> data = anggaranRemunerasiDao.findAnggaran(idPegawai, idJabatan, tahun); - if (CommonUtil.isNotNullOrEmpty(data) && data.size() > 0) { + if (CommonUtil.isNotNullOrEmpty(data) && !data.isEmpty()) { result = data.get(0); } @@ -660,7 +662,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb mf.format(new Date(bulan))); Map anggaran = findAnggaranRemunerasi(idPegawai, idJab, yf.format(new Date(bulan))); - if (CommonUtil.isNotNullOrEmpty(rs) && rs.size() > 0) { + if (CommonUtil.isNotNullOrEmpty(rs) && !rs.isEmpty()) { nilaiJabatan = Double.parseDouble(rs.get(0).get("nilaiJabatan").toString()); idKelompokJabatan = Integer.parseInt(rs.get(0).get("kelompokJabatanId").toString()); } @@ -880,7 +882,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List> aksesByAtasan; List> aksesByPenilai; - List listPurnaWaktu = Arrays.asList(Master.KategoryPegawai.PURNA_WAKTU); + List listPurnaWaktu = splitDataSettingDatafixed("kategoriPegawaiAksesAplikasiRemun"); List listIdSDM = pegawaiDao.getPegawaiSDMforCred(Master.UnitKerja.BAG_SDM); if (listIdSDM.contains(idPegawai)) { @@ -907,7 +909,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb if (CommonUtil.isNotNullOrEmpty(aksesByStaf) && CommonUtil.isNullOrEmpty(rsAll)) { for (Map map : aksesByStaf) { map.put("isGranted", false); - if (!listIdPegawai.contains(map.get("id"))) { + if (CommonUtil.isNotNullOrEmpty(map.get("id")) + && !listIdPegawai.contains(Integer.parseInt(map.get("id").toString()))) { listIdPegawai.add(Integer.parseInt(map.get("id").toString())); result.add(map); } @@ -917,7 +920,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb if (CommonUtil.isNullOrEmpty(rsAll)) { for (Map map : aksesByAtasan) { map.put("isGranted", true); - if (!listIdPegawai.contains(map.get("id"))) { + if (CommonUtil.isNotNullOrEmpty(map.get("id")) + && !listIdPegawai.contains(Integer.parseInt(map.get("id").toString()))) { listIdPegawai.add(Integer.parseInt(map.get("id").toString())); result.add(map); } @@ -936,7 +940,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb if (CommonUtil.isNotNullOrEmpty(aksesByPenilai) && CommonUtil.isNullOrEmpty(rsAll)) { for (Map map : aksesByPenilai) { map.put("isGranted", false); - if (!listIdPegawai.contains(map.get("id"))) { + if (CommonUtil.isNotNullOrEmpty(map.get("id")) + && !listIdPegawai.contains(Integer.parseInt(map.get("id").toString()))) { listIdPegawai.add(Integer.parseInt(map.get("id").toString())); result.add(map); } @@ -1133,8 +1138,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb // SCORE for (Map mapLayanan : dataLayanan) { for (Map mapSkor : dataSkor) { - if (!listIdPelayananAnestesi.contains(mapLayanan.get("noRec")) && !mapLayanan.containsKey("skor") - && mapLayanan.get("produkId").equals(mapSkor.get("produkId")) + if (CommonUtil.isNotNullOrEmpty(mapLayanan.get("noRec")) + && !listIdPelayananAnestesi.contains(mapLayanan.get("noRec").toString()) + && !mapLayanan.containsKey("skor") && mapLayanan.get("produkId").equals(mapSkor.get("produkId")) && (((Date) mapLayanan.get("tglPelayanan")).after((Date) mapSkor.get("tglMulaiBerlaku")) || mapLayanan.get("tglPelayanan").equals(mapSkor.get("tglMulaiBerlaku")))) { mapLayanan.put("skor", mapSkor.get("skor")); @@ -1158,7 +1164,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb mapLayanan.put("tSkor", 0.000); } else if (!mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL) && !mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT) - && listRuangEks.contains(mapLayanan.get("ruanganId"))) { + && CommonUtil.isNotNullOrEmpty(mapLayanan.get("ruanganId")) + && listRuangEks.contains(Integer.parseInt(mapLayanan.get("ruanganId").toString()))) { mapLayanan.put("skor", Double.parseDouble(decf.format(Double.parseDouble(mapLayanan.get("skor").toString()) * Master.Remunerasi.PERSEN_SKOR_EKSEKUTIF))); @@ -1183,13 +1190,15 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb // GROUPING_INDIKATOR for (Map mapLayanan : dataLayanan) { - if (listKonsulTapiVisit.contains(mapLayanan.get("produkId")) + if ((CommonUtil.isNotNullOrEmpty(mapLayanan.get("produkId")) + && listKonsulTapiVisit.contains(Integer.parseInt(mapLayanan.get("produkId").toString()))) || mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT)) { mapLayanan.put("indikatorId", Master.IndikatorKinerjaJamKerja.VISITE); mapLayanan.put("namaIndikator", indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaJamKerja.VISITE)); } else if (mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL) - && listRuangEks.contains(mapLayanan.get("ruanganId"))) { + && CommonUtil.isNotNullOrEmpty(mapLayanan.get("ruanganId")) + && listRuangEks.contains(Integer.parseInt(mapLayanan.get("ruanganId").toString()))) { mapLayanan.put("indikatorId", Master.IndikatorKinerjaJamKerja.KONSUL_EKS); mapLayanan.put("namaIndikator", indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaJamKerja.KONSUL_EKS)); @@ -1202,7 +1211,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb mapLayanan.put("indikatorId", Master.IndikatorKinerjaJamKerja.KONSUL_REG); mapLayanan.put("namaIndikator", indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaJamKerja.KONSUL_REG)); - } else if (listRuangEks.contains(mapLayanan.get("ruanganId"))) { + } else if (CommonUtil.isNotNullOrEmpty(mapLayanan.get("ruanganId")) + && listRuangEks.contains(Integer.parseInt(mapLayanan.get("ruanganId").toString()))) { mapLayanan.put("indikatorId", Master.IndikatorKinerjaJamKerja.TINDAKAN_EKS); mapLayanan.put("namaIndikator", indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaJamKerja.TINDAKAN_EKS)); @@ -1222,13 +1232,16 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } for (Map mapLayanan : dataLayanan) { - if (!listIdIndikator.contains(mapLayanan.get("indikatorId"))) { + if (CommonUtil.isNotNullOrEmpty(mapLayanan.get("indikatorId")) + && !listIdIndikator.contains(Integer.parseInt(mapLayanan.get("indikatorId").toString()))) { listIdIndikator.add(Integer.valueOf(mapLayanan.get("indikatorId").toString())); } - if (!listIdProduk.contains(mapLayanan.get("produkId"))) { + if (CommonUtil.isNotNullOrEmpty(mapLayanan.get("produkId")) + && !listIdProduk.contains(Integer.parseInt(mapLayanan.get("produkId").toString()))) { listIdProduk.add(Integer.valueOf(mapLayanan.get("produkId").toString())); } - if (!listSkor.contains(mapLayanan.get("skor"))) { + if (CommonUtil.isNotNullOrEmpty(mapLayanan.get("skor")) + && !listSkor.contains(Double.parseDouble(mapLayanan.get("skor").toString()))) { listSkor.add(Double.valueOf(mapLayanan.get("skor").toString())); } if (!listTglPelayanan.contains(df.format(((Date) mapLayanan.get("tglPelayanan"))))) { @@ -1460,7 +1473,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb // SCORE for (Map mapLayanan : dataLayanan) { for (Map mapSkor : dataSkor) { - if (!listIdPelayananAnestesi.contains(mapLayanan.get("noRec")) + if (CommonUtil.isNotNullOrEmpty(mapLayanan.get("noRec")) + && !listIdPelayananAnestesi.contains(mapLayanan.get("noRec").toString()) && mapLayanan.get("produkId").equals(mapSkor.get("produkId")) && (((Date) mapLayanan.get("tglPelayanan")).after((Date) mapSkor.get("tglMulaiBerlaku")) || mapLayanan.get("tglPelayanan").equals(mapSkor.get("tglMulaiBerlaku")))) { @@ -1485,7 +1499,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb mapLayanan.put("tSkor", 0.000); } else if (!mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL) && !mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT) - && listRuangEks.contains(mapLayanan.get("ruanganId"))) { + && CommonUtil.isNotNullOrEmpty(mapLayanan.get("ruanganId")) + && listRuangEks.contains(Integer.parseInt(mapLayanan.get("ruanganId").toString()))) { mapLayanan.put("skor", Double.parseDouble(decf.format(Double.parseDouble(mapLayanan.get("skor").toString()) * Master.Remunerasi.PERSEN_SKOR_LUAR_JAM_KERJA))); @@ -1512,13 +1527,15 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb // GROUPING_INDIKATOR for (Map mapLayanan : dataLayanan) { - if (listKonsulTapiVisit.contains(mapLayanan.get("produkId")) + if ((CommonUtil.isNotNullOrEmpty(mapLayanan.get("produkId")) + && listKonsulTapiVisit.contains(Integer.parseInt(mapLayanan.get("produkId").toString()))) || mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT)) { mapLayanan.put("indikatorId", Master.IndikatorKinerjaLuarJamKerja.VISITE); mapLayanan.put("namaIndikator", indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaLuarJamKerja.VISITE)); } else if (mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL) - && listRuangEks.contains(mapLayanan.get("ruanganId"))) { + && CommonUtil.isNotNullOrEmpty(mapLayanan.get("ruanganId")) + && listRuangEks.contains(Integer.parseInt(mapLayanan.get("ruanganId").toString()))) { mapLayanan.put("indikatorId", Master.IndikatorKinerjaLuarJamKerja.KONSUL_EKS); mapLayanan.put("namaIndikator", indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaLuarJamKerja.KONSUL_EKS)); @@ -1531,7 +1548,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb mapLayanan.put("indikatorId", Master.IndikatorKinerjaLuarJamKerja.KONSUL_REG); mapLayanan.put("namaIndikator", indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaLuarJamKerja.KONSUL_REG)); - } else if (listRuangEks.contains(mapLayanan.get("ruanganId"))) { + } else if (CommonUtil.isNotNullOrEmpty(mapLayanan.get("ruanganId")) + && listRuangEks.contains(Integer.parseInt(mapLayanan.get("ruanganId").toString()))) { mapLayanan.put("indikatorId", Master.IndikatorKinerjaLuarJamKerja.TINDAKAN_EKS); mapLayanan.put("namaIndikator", indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaLuarJamKerja.TINDAKAN_EKS)); @@ -1551,13 +1569,16 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } for (Map mapLayanan : dataLayanan) { - if (!listIdIndikator.contains(mapLayanan.get("indikatorId"))) { + if (CommonUtil.isNotNullOrEmpty(mapLayanan.get("indikatorId")) + && !listIdIndikator.contains(Integer.parseInt(mapLayanan.get("indikatorId").toString()))) { listIdIndikator.add(Integer.valueOf(mapLayanan.get("indikatorId").toString())); } - if (!listIdProduk.contains(mapLayanan.get("produkId"))) { + if (CommonUtil.isNotNullOrEmpty(mapLayanan.get("produkId")) + && !listIdProduk.contains(Integer.parseInt(mapLayanan.get("produkId").toString()))) { listIdProduk.add(Integer.valueOf(mapLayanan.get("produkId").toString())); } - if (!listSkor.contains(mapLayanan.get("skor"))) { + if (CommonUtil.isNotNullOrEmpty(mapLayanan.get("skor")) + && !listSkor.contains(Double.parseDouble(mapLayanan.get("skor").toString()))) { listSkor.add(Double.valueOf(mapLayanan.get("skor").toString())); } if (!listTglPelayanan.contains(df.format(((Date) mapLayanan.get("tglPelayanan"))))) { @@ -1812,8 +1833,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb // SCORE for (Map mapLayanan : dataLayanan) { for (Map mapSkor : dataSkor) { - if (!listIdPelayananAnestesi.contains(mapLayanan.get("noRec")) && !mapLayanan.containsKey("skor") - && mapLayanan.get("produkId").equals(mapSkor.get("produkId")) + if (CommonUtil.isNotNullOrEmpty(mapLayanan.get("noRec")) + && !listIdPelayananAnestesi.contains(mapLayanan.get("noRec").toString()) + && !mapLayanan.containsKey("skor") && mapLayanan.get("produkId").equals(mapSkor.get("produkId")) && (((Date) mapLayanan.get("tglPelayanan")).after((Date) mapSkor.get("tglMulaiBerlaku")) || mapLayanan.get("tglPelayanan").equals(mapSkor.get("tglMulaiBerlaku")))) { mapLayanan.put("skor", mapSkor.get("skor")); @@ -1836,7 +1858,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb // RULES for (Map mapLayanan : dataLayananFiltered) { if (idIndikator.equals(Master.IndikatorKinerjaJamKerja.VISITE) - && (listKonsulTapiVisit.contains(mapLayanan.get("produkId")) + && ((CommonUtil.isNotNullOrEmpty(mapLayanan.get("produkId")) + && CommonUtil.isNotNullOrEmpty(mapLayanan.get("produkId")) + && listKonsulTapiVisit.contains(Integer.parseInt(mapLayanan.get("produkId").toString()))) || mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT))) { if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) && mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { @@ -1879,7 +1903,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } } else if (idIndikator.equals(Master.IndikatorKinerjaJamKerja.KONSUL_EKS) && mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL) - && listRuangEks.contains(mapLayanan.get("ruanganId"))) { + && CommonUtil.isNotNullOrEmpty(mapLayanan.get("ruanganId")) + && listRuangEks.contains(Integer.parseInt(mapLayanan.get("ruanganId").toString()))) { if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) && mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { if (skor.equals(0.0) && Double.parseDouble(mapLayanan.get("hargaDiskon").toString()) > 0.0 @@ -2003,7 +2028,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } } } else if (idIndikator.equals(Master.IndikatorKinerjaJamKerja.TINDAKAN_EKS) - && listRuangEks.contains(mapLayanan.get("ruanganId"))) { + && CommonUtil.isNotNullOrEmpty(mapLayanan.get("ruanganId")) + && listRuangEks.contains(Integer.parseInt(mapLayanan.get("ruanganId").toString()))) { if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) && mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { if (skor.equals(0.0) && Double.parseDouble(mapLayanan.get("hargaDiskon").toString()) > 0.0 @@ -2126,10 +2152,12 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } } } else if (idIndikator.equals(Master.IndikatorKinerjaJamKerja.TINDAKAN_REG) - && !listKonsulTapiVisit.contains(mapLayanan.get("produkId")) + && CommonUtil.isNotNullOrEmpty(mapLayanan.get("produkId")) + && !listKonsulTapiVisit.contains(Integer.parseInt(mapLayanan.get("produkId").toString())) && !mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT) && !mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL) - && !listRuangEks.contains(mapLayanan.get("ruanganId")) + && CommonUtil.isNotNullOrEmpty(mapLayanan.get("ruanganId")) + && !listRuangEks.contains(Integer.parseInt(mapLayanan.get("ruanganId").toString())) && !mapLayanan.get("departemenId").equals(Master.Departemen.IGD) && !mapLayanan.get("ruanganId").equals(Master.Ruangan.OK)) { if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) @@ -2226,7 +2254,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb for (Map mapLayanan : dataLayanan) { if (idIndikator.equals(Master.IndikatorKinerjaLuarJamKerja.VISITE) - && (listKonsulTapiVisit.contains(mapLayanan.get("produkId")) + && ((CommonUtil.isNotNullOrEmpty(mapLayanan.get("produkId")) + && listKonsulTapiVisit.contains(Integer.parseInt(mapLayanan.get("produkId").toString()))) || mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT))) { if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) && mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { @@ -2269,7 +2298,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } } else if (idIndikator.equals(Master.IndikatorKinerjaLuarJamKerja.KONSUL_EKS) && mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL) - && listRuangEks.contains(mapLayanan.get("ruanganId"))) { + && CommonUtil.isNotNullOrEmpty(mapLayanan.get("ruanganId")) + && listRuangEks.contains(Integer.parseInt(mapLayanan.get("ruanganId").toString()))) { if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) && mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { if (skor.equals(0.0) && Double.parseDouble(mapLayanan.get("hargaDiskon").toString()) > 0.0 @@ -2393,7 +2423,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } } } else if (idIndikator.equals(Master.IndikatorKinerjaLuarJamKerja.TINDAKAN_EKS) - && listRuangEks.contains(mapLayanan.get("ruanganId"))) { + && CommonUtil.isNotNullOrEmpty(mapLayanan.get("ruanganId")) + && listRuangEks.contains(Integer.parseInt(mapLayanan.get("ruanganId").toString()))) { if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) && mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { if (skor.equals(0.0) && Double.parseDouble(mapLayanan.get("hargaDiskon").toString()) > 0.0 @@ -2516,10 +2547,12 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } } } else if (idIndikator.equals(Master.IndikatorKinerjaLuarJamKerja.TINDAKAN_REG) - && !listKonsulTapiVisit.contains(mapLayanan.get("produkId")) + && CommonUtil.isNotNullOrEmpty(mapLayanan.get("produkId")) + && !listKonsulTapiVisit.contains(Integer.parseInt(mapLayanan.get("produkId").toString())) && !mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT) && !mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL) - && !listRuangEks.contains(mapLayanan.get("ruanganId")) + && CommonUtil.isNotNullOrEmpty(mapLayanan.get("ruanganId")) + && !listRuangEks.contains(Integer.parseInt(mapLayanan.get("ruanganId").toString())) && !mapLayanan.get("departemenId").equals(Master.Departemen.IGD) && !mapLayanan.get("ruanganId").equals(Master.Ruangan.OK)) { if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) @@ -2581,7 +2614,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb mf.format(new Date(bulan))); Integer idKelompokJabatan = null; - if (CommonUtil.isNotNullOrEmpty(data) && data.size() > 0) { + if (CommonUtil.isNotNullOrEmpty(data) && !data.isEmpty()) { idKelompokJabatan = Integer.parseInt(data.get(0).get("kelompokJabatanId").toString()); } @@ -2718,16 +2751,20 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } for (Map map : data) { - if (!listIdUnitKerja.contains(map.get("unitKerjaId"))) { + if (CommonUtil.isNotNullOrEmpty(map.get("unitKerjaId")) + && !listIdUnitKerja.contains(Integer.parseInt(map.get("unitKerjaId").toString()))) { listIdUnitKerja.add(Integer.valueOf(map.get("unitKerjaId").toString())); } - if (!listIdSubunitKerja.contains(map.get("subunitKerjaId"))) { + if (CommonUtil.isNotNullOrEmpty(map.get("subunitKerjaId")) + && !listIdSubunitKerja.contains(Integer.parseInt(map.get("subunitKerjaId").toString()))) { listIdSubunitKerja.add(Integer.valueOf(map.get("subunitKerjaId").toString())); } - if (!listIdPegawai.contains(map.get("pegawaiId"))) { + if (CommonUtil.isNotNullOrEmpty(map.get("pegawaiId")) + && !listIdPegawai.contains(Integer.parseInt(map.get("pegawaiId").toString()))) { listIdPegawai.add(Integer.valueOf(map.get("pegawaiId").toString())); } - if (!listIdJabatan.contains(map.get("jabatanId"))) { + if (CommonUtil.isNotNullOrEmpty(map.get("jabatanId")) + && !listIdJabatan.contains(Integer.parseInt(map.get("jabatanId").toString()))) { listIdJabatan.add(Integer.valueOf(map.get("jabatanId").toString())); } } @@ -2935,7 +2972,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb mapLayanan.put("tSkor", 0.0); } else if (!mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL) && !mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT) - && listRuangEks.contains(mapLayanan.get("ruanganId"))) { + && CommonUtil.isNotNullOrEmpty(mapLayanan.get("ruanganId")) + && listRuangEks.contains(Integer.parseInt(mapLayanan.get("ruanganId").toString()))) { mapLayanan.put("skor", Double.parseDouble(decf.format(Double.parseDouble(mapLayanan.get("skor").toString()) * Master.Remunerasi.PERSEN_SKOR_EKSEKUTIF))); @@ -2994,10 +3032,17 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb double capaian = 0.0; for (Map mapLayanan : dataLayanan) { if (mapLayanan.get("pegawaiId").equals(idPegawai) - && (listDetailJenisProduk.contains(mapLayanan.get("detailJenisProdukId")) - || (!listDetailJenisProduk.contains(mapLayanan.get("detailJenisProdukId")) - && idsDokterUmumIGD.contains(mapLayanan.get("produkId")) - && drKsmUmumList.contains(mapLayanan.get("pegawaiId")) + && ((CommonUtil.isNotNullOrEmpty(mapLayanan.get("detailJenisProdukId")) && listDetailJenisProduk + .contains(Integer.parseInt(mapLayanan.get("detailJenisProdukId").toString()))) + || (CommonUtil.isNotNullOrEmpty(mapLayanan.get("detailJenisProdukId")) + && !listDetailJenisProduk.contains(Integer + .parseInt(mapLayanan.get("detailJenisProdukId").toString())) + && CommonUtil.isNotNullOrEmpty(mapLayanan.get("produkId")) + && idsDokterUmumIGD + .contains(Integer.parseInt(mapLayanan.get("produkId").toString())) + && CommonUtil.isNotNullOrEmpty(mapLayanan.get("pegawaiId")) + && drKsmUmumList + .contains(Integer.parseInt(mapLayanan.get("pegawaiId").toString())) && mapLayanan.get("departemenId").equals(Master.Departemen.IGD)))) { capaian += Double.parseDouble(mapLayanan.get("tSkor").toString()); } @@ -3018,8 +3063,6 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List listIdPegawai = new ArrayList<>(); List listIdJabatan = new ArrayList<>(); - List listJabatanIndikator = new ArrayList<>(); - List> listMapFilter = new ArrayList<>(); Date endMonth = DateUtil.endMonth(bulan); Date startYear = DateUtil.startYear(bulan); @@ -3037,12 +3080,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List> listMapIndikator = logbookKinerjaDao.findIndikatorByJabatan(listIdJabatan, mf.format(bulan)); - for (Map map : listMapIndikator) { - if (!listJabatanIndikator - .contains(map.get("jabatanId").toString() + "" + map.get("indikatorId").toString())) { - listMapFilter.add(map); - } - } + List> listMapFilter = new ArrayList<>(listMapIndikator); /* * Get All Dokter Mapped Indikator @@ -3343,10 +3381,12 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List listSkor = new ArrayList<>(); List listTglPelayanan = new ArrayList<>(); for (Map map : pelayananPerawat) { - if (!listIdProduk.contains(map.get("produkId"))) { + if (CommonUtil.isNotNullOrEmpty(map.get("produkId")) + && !listIdProduk.contains(Integer.parseInt(map.get("produkId").toString()))) { listIdProduk.add(Integer.parseInt(map.get("produkId").toString())); } - if (!listSkor.contains(map.get("skor"))) { + if (CommonUtil.isNotNullOrEmpty(map.get("skor")) + && !listSkor.contains(Double.parseDouble(map.get("skor").toString()))) { listSkor.add(Double.parseDouble(map.get("skor").toString())); } if (!listTglPelayanan.contains(df.format((Date) map.get("tglPelayanan")))) { @@ -3444,10 +3484,12 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List listSkor = new ArrayList<>(); List listTglPelayanan = new ArrayList<>(); for (Map map : pelayananNakes) { - if (!listIdProduk.contains(map.get("produkId"))) { + if (CommonUtil.isNotNullOrEmpty(map.get("produkId")) + && !listIdProduk.contains(Integer.parseInt(map.get("produkId").toString()))) { listIdProduk.add(Integer.parseInt(map.get("produkId").toString())); } - if (!listSkor.contains(map.get("skor"))) { + if (CommonUtil.isNotNullOrEmpty(map.get("skor")) + && !listSkor.contains(Double.parseDouble(map.get("skor").toString()))) { listSkor.add(Double.parseDouble(map.get("skor").toString())); } if (!listTglPelayanan.contains(df.format((Date) map.get("tglPelayanan")))) { @@ -3544,10 +3586,12 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List listSkor = new ArrayList<>(); List listTglPelayanan = new ArrayList<>(); for (Map map : pelayananFarmakologi) { - if (!listIdProduk.contains(map.get("produkId"))) { + if (CommonUtil.isNotNullOrEmpty(map.get("produkId")) + && !listIdProduk.contains(Integer.parseInt(map.get("produkId").toString()))) { listIdProduk.add(Integer.parseInt(map.get("produkId").toString())); } - if (!listSkor.contains(map.get("skor"))) { + if (CommonUtil.isNotNullOrEmpty(map.get("skor")) + && !listSkor.contains(Double.parseDouble(map.get("skor").toString()))) { listSkor.add(Double.parseDouble(map.get("skor").toString())); } if (!listTglPelayanan.contains(df.format((Date) map.get("tglPelayanan")))) { diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RekamDataPegawaiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RekamDataPegawaiServiceImpl.java index 3946da92..4b474efa 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RekamDataPegawaiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RekamDataPegawaiServiceImpl.java @@ -178,6 +178,7 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + List kategoriPegawaiAksesAplikasiRemun = splitDataSettingDatafixed("kategoriPegawaiAksesAplikasiRemun"); if (CommonUtil.isNotNullOrEmpty(vo.getId())) { pegawai = rekamDataPegawaiDao.findOne(vo.getId()); Integer idJabatanUtama = mapPegawaiJabatanToUnitkerjaDao.getIdJabatanInternalUtamaByIdPegawai(vo.getId()); @@ -650,7 +651,7 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re kategoryPegawaiConverter.transferVOToModel(vo.getKategoryPegawai(), new KategoryPegawai())); perubahan += "ubah kategory pegawai, "; - if (Arrays.asList(Master.KategoryPegawai.PURNA_WAKTU).contains(vo.getKategoryPegawai().getId())) { + if (kategoriPegawaiAksesAplikasiRemun.contains(vo.getKategoryPegawai().getId())) { TypePegawai typePegawai = new TypePegawai(); typePegawai.setId(Master.TipePegawai.PURNA_WAKTU); pegawai.setTypePegawai(typePegawai); @@ -667,7 +668,7 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re kategoryPegawaiConverter.transferVOToModel(vo.getKategoryPegawai(), new KategoryPegawai())); perubahan += "kategory pegawai, "; - if (Arrays.asList(Master.KategoryPegawai.PURNA_WAKTU).contains(vo.getKategoryPegawai().getId()) + if (kategoriPegawaiAksesAplikasiRemun.contains(vo.getKategoryPegawai().getId()) && CommonUtil.isNullOrEmpty(vo.getTypePegawai())) { JenisPegawai jenisPegawai = new JenisPegawai(); jenisPegawai.setId(Master.TipePegawai.PURNA_WAKTU); @@ -1382,7 +1383,7 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re kategoryPegawaiConverter.transferVOToModel(vo.getKategoryPegawai(), new KategoryPegawai())); perubahan += "kategory pegawai, "; - if (Arrays.asList(Master.KategoryPegawai.PURNA_WAKTU).contains(vo.getKategoryPegawai().getId()) + if (kategoriPegawaiAksesAplikasiRemun.contains(vo.getKategoryPegawai().getId()) && CommonUtil.isNullOrEmpty(vo.getTypePegawai())) { TypePegawai typePegawai = new TypePegawai(); typePegawai.setId(Master.TipePegawai.PURNA_WAKTU); From 7ca248415df43ead2f4b54b350a620ca6df60bc7 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Wed, 24 Apr 2024 12:53:41 +0700 Subject: [PATCH 19/20] Update PelayananPasienServiceImpl.java Perbaikan service jika data bukan paket non-fixed-pay di detail logbook dokter --- .../service/impl/PelayananPasienServiceImpl.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 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 06d368f8..4684ebf4 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 @@ -2996,13 +2996,15 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel List listIdPelayananPaketBukanFixedPay = result.stream() .filter(r -> paketBukanFixedPay.contains(Integer.parseInt(r.get("idProduk").toString()))) .map(r -> r.get("idPelayanan").toString()).collect(Collectors.toList()); - List detailPelayananPaketBukanFixedPay = pelayananPasienDetailDao - .findByPelayananAndKomponenHarga(listIdPelayananPaketBukanFixedPay, TOTAL_TARIF); - for (Map res : result) { - Optional detail = detailPelayananPaketBukanFixedPay.stream() - .filter(d -> d.getPelayananPasienId().equals(res.get("idPelayanan"))).findFirst(); - detail.ifPresent( - d -> res.put("hargaJual", CommonUtil.isNotNullOrEmpty(d.getHargaJual()) ? d.getHargaJual() : 0.00)); + if (!listIdPelayananPaketBukanFixedPay.isEmpty()) { + List detailPelayananPaketBukanFixedPay = pelayananPasienDetailDao + .findByPelayananAndKomponenHarga(listIdPelayananPaketBukanFixedPay, TOTAL_TARIF); + for (Map res : result) { + Optional detail = detailPelayananPaketBukanFixedPay.stream() + .filter(d -> d.getPelayananPasienId().equals(res.get("idPelayanan"))).findFirst(); + detail.ifPresent( + d -> res.put("hargaJual", CommonUtil.isNotNullOrEmpty(d.getHargaJual()) ? d.getHargaJual() : 0.00)); + } } return result; } From 41071bba4c58ee072a0bd65ec8d961bd3ab07988 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Mon, 13 May 2024 14:28:03 +0700 Subject: [PATCH 20/20] Update PelayananPasienDao.java Penerapan relasi unit kerja kepegawaian untuk nomenklatur master ruangan eksekutif --- .../com/jasamedika/medifirst2000/dao/PelayananPasienDao.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 a4d0cbce..21e6936e 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 @@ -204,7 +204,7 @@ public interface PelayananPasienDao extends JpaRepository