Merge branch 'dev/base' into dev/remun/logbook

This commit is contained in:
Salman Manoe 2024-04-22 09:49:24 +07:00
commit b185f903bd
10 changed files with 721 additions and 191 deletions

View File

@ -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<JumlahDiskonDokter, Long> {
}

View File

@ -209,7 +209,27 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
+ "sum(case when ppp.ObjectJenisPetugasPeId = 4 and ppd.komponenHargaId = 35 then ppd.hargaJual else 0.0 end) as hargaJasaD,"
+ "sum(case when ppp.ObjectJenisPetugasPeId = 13 and ppd.komponenHargaId = 22 then ppd.hargaJual else 0.0 end) as hargaJasaAs,"
+ "sum(case when ppp.ObjectJenisPetugasPeId = 6 and ppd.komponenHargaId = 21 then ppd.hargaJual else 0.0 end) as hargaJasaAn,"
+ "sum(case when ppd.komponenHargaId = 35 then ppd.hargaDiscount else 0.0 end) as totalDiskon) "
+ "sum(case when ppp.ObjectJenisPetugasPeId = 4 and ppd.komponenHargaId = 35 then ppd.hargaDiscount else 0.0 end) as diskonD,"
+ "sum(case when ppp.ObjectJenisPetugasPeId = 4 and ppd.komponenHargaId = 35 then ppd.persenDiskon else 0.0 end) as persenDiskonD,"
+ "sum(case when ppp.ObjectJenisPetugasPeId = 4 and ppd.komponenHargaId = 35 then ppd.persenDiskonSayatan else 0.0 end) as persenDiskonSayatanD,"
+ "sum(case when ppp.ObjectJenisPetugasPeId = 13 and ppd.komponenHargaId = 22 then ppd.hargaDiscount else 0.0 end) as diskonAs,"
+ "sum(case when ppp.ObjectJenisPetugasPeId = 13 and ppd.komponenHargaId = 22 then ppd.persenDiskon else 0.0 end) as persenDiskonAs,"
+ "sum(case when ppp.ObjectJenisPetugasPeId = 13 and ppd.komponenHargaId = 22 then ppd.persenDiskonSayatan else 0.0 end) as persenDiskonSayatanAs,"
+ "sum(case when ppp.ObjectJenisPetugasPeId = 6 and ppd.komponenHargaId = 21 then ppd.hargaDiscount else 0.0 end) as diskonAn,"
+ "sum(case when ppp.ObjectJenisPetugasPeId = 6 and ppd.komponenHargaId = 21 then ppd.persenDiskon else 0.0 end) as persenDiskonAn,"
+ "sum(case when ppp.ObjectJenisPetugasPeId = 6 and ppd.komponenHargaId = 21 then ppd.persenDiskonSayatan else 0.0 end) as persenDiskonSayatanAn,"
+ "sum(case when ppd.komponenHargaId = 35 then ppd.hargaDiscount else 0.0 end) as totalDiskonD,"
+ "sum(case when ppd.komponenHargaId = 35 then ppd.hargaJual else 0.0 end) as totalHargaD,"
+ "sum(case when ppd.komponenHargaId = 35 then ppd.persenDiskon else 0.0 end) as totalPersenDiskonD,"
+ "sum(case when ppd.komponenHargaId = 35 then ppd.persenDiskonSayatan else 0.0 end) as totalPersenDiskonSayatanD,"
+ "sum(case when ppd.komponenHargaId = 22 then ppd.hargaDiscount else 0.0 end) as totalDiskonAs,"
+ "sum(case when ppd.komponenHargaId = 22 then ppd.hargaJual else 0.0 end) as totalHargaAs,"
+ "sum(case when ppd.komponenHargaId = 22 then ppd.persenDiskon else 0.0 end) as totalPersenDiskonAs,"
+ "sum(case when ppd.komponenHargaId = 22 then ppd.persenDiskonSayatan else 0.0 end) as totalPersenDiskonSayatanAs,"
+ "sum(case when ppd.komponenHargaId = 21 then ppd.hargaDiscount else 0.0 end) as totalDiskonAn,"
+ "sum(case when ppd.komponenHargaId = 21 then ppd.hargaJual else 0.0 end) as totalHargaAn,"
+ "sum(case when ppd.komponenHargaId = 21 then ppd.persenDiskon else 0.0 end) as totalPersenDiskonAn,"
+ "sum(case when ppd.komponenHargaId = 21 then ppd.persenDiskonSayatan else 0.0 end) as totalPersenDiskonSayatanAn) "
+ "from PelayananPasienDetail ppd, PelayananPasienPetugas ppp " + "inner join ppp.pelayananPasien pp "
+ "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 apd.ruangan ru "

View File

@ -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<JumlahDiskonDokterDto> dtos);
}

View File

@ -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<JumlahDiskonDokterDto> dtos) {
List<JumlahDiskonDokter> 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);
}
}

View File

@ -5,6 +5,7 @@ import com.jasamedika.medifirst2000.constants.Master;
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.dao.*;
import com.jasamedika.medifirst2000.dto.BatalPaketProdukDto;
import com.jasamedika.medifirst2000.dto.RemunHargaJasa;
import com.jasamedika.medifirst2000.dto.TagihanPendaftaranDto;
import com.jasamedika.medifirst2000.entities.*;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
@ -598,115 +599,131 @@ 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 (DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")) && CommonUtil.isNotNullOrEmpty(d.get("totalDiskon"))
&& Double.parseDouble(d.get("totalDiskon").toString()) > 0.0
&& CommonUtil.isNullOrEmpty(d.get("idSayatan"))) {
/*
* Untuk diskon jasa medis oleh dpjp
*/
d.put("hargaJasa", 0.0);
} 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());
if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")))
d.put("isTermasukProporsi", false);
} 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());
if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")))
d.put("isTermasukProporsi", false);
} 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());
if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")))
d.put("isTermasukProporsi", false);
} 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());
if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")))
d.put("isTermasukProporsi", false);
} 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);
/*
* A rule for claimed <= Jul 31th 2023
*/
RemunHargaJasa hargaJasa = hargaJasa(persenRemunLabGenetika / 100, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")))
d.put("isTermasukProporsi", false);
} 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());
if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")))
d.put("isTermasukProporsi", false);
} else if (drKkPatologiAnatomiList.contains(idPegawai)) {
d.put("hargaJasa", persenRemunDokterPA / 100 * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenRemunDokterPA / 100, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")))
d.put("isTermasukProporsi", false);
} 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());
if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")))
d.put("isTermasukProporsi", false);
} 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());
}
}
/*
@ -1935,140 +1952,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());
}
}
/*
@ -2284,115 +2329,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());
}
}
/*
@ -2613,115 +2683,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());
}
}
/*
@ -3617,4 +3712,223 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
});
return duplicateMapPetugasPegawai;
}
private RemunHargaJasa hargaJasa(double persenRemunerasi, double hargaJual, Map<String, Object> 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();
}
double totalDiskonD = Double.parseDouble(d.get("totalDiskonD").toString());
double totalPersenDiskonSayatanD = Double.parseDouble(d.get("totalPersenDiskonSayatanD").toString());
double totalHargaD = Double.parseDouble(d.get("totalHargaD").toString());
double totalDiskonAs = Double.parseDouble(d.get("totalDiskonAs").toString());
double totalPersenDiskonSayatanAs = Double.parseDouble(d.get("totalPersenDiskonSayatanAs").toString());
double totalHargaAs = Double.parseDouble(d.get("totalHargaAs").toString());
double totalDiskonAn = Double.parseDouble(d.get("totalDiskonAn").toString());
double totalPersenDiskonSayatanAn = Double.parseDouble(d.get("totalPersenDiskonSayatanAn").toString());
double totalHargaAn = Double.parseDouble(d.get("totalHargaAn").toString());
double 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
&& 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"))
&& Double.parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0 && Double
.parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0
&& Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) {
double persenRemunOperator = 100.00 - Double.parseDouble(d.get("persenDiskonD").toString());
double persenRemunAsisten = 100.00 - Double.parseDouble(d.get("persenDiskonAs").toString());
double persenRemunAnestesi = 100.00 - Double.parseDouble(d.get("persenDiskonAn").toString());
double 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 (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"))
&& Double.parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0 && Double
.parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0))) {
double persenRemunOperator = 100.00 - Double.parseDouble(d.get("persenDiskonD").toString());
double persenRemunAsisten = 100.00 - Double.parseDouble(d.get("persenDiskonAs").toString());
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 (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
&& 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"))
&& Double.parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0 && Double
.parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) {
double persenRemunOperator = 100.00 - Double.parseDouble(d.get("persenDiskonD").toString());
double persenRemunAnestesi = 100.00 - Double.parseDouble(d.get("persenDiskonAn").toString());
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 (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
&& 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"))
&& Double.parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0 && Double
.parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) {
double persenRemunAsisten = 100.00 - Double.parseDouble(d.get("persenDiskonAs").toString());
double persenRemunAnestesi = 100.00 - Double.parseDouble(d.get("persenDiskonAn").toString());
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 (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"))
&& Double.parseDouble(d.get("persenDiskonSayatanD").toString()) >= 0))) {
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 (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"))
&& Double.parseDouble(d.get("persenDiskonSayatanAs").toString()) >= 0))) {
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 (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"))
&& Double.parseDouble(d.get("persenDiskonSayatanAn").toString()) >= 0))) {
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 * hargaJualSetelahDiskon);
if (totalDiskon > 0.0) {
builder.keterangan(
" dan dari pengurangan tarif dengan diskon " + nf.format(totalDiskon) + " terlebih dahulu");
} else {
builder.keterangan("");
}
}
return builder.build();
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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(message = "Persen diskon tidak boleh kosong")
@Caption("Persen Diskon")
private BigDecimal persenDiskon;
}

View File

@ -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<List<JumlahDiskonDokterDto>> save(HttpServletRequest request,
@Valid @RequestBody List<JumlahDiskonDokterDto> 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);
}
}
}

View File

@ -15,7 +15,7 @@
</context-param>
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>localhost</param-value>
<param-value>web</param-value>
</context-param>
<listener>