Merge branch 'dev/remun/diskon-dokter' into dev/no-cron

This commit is contained in:
Salman Manoe 2024-02-27 14:19:45 +07:00
commit 125356bb30
6 changed files with 553 additions and 287 deletions

View File

@ -206,8 +206,12 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
+ "apd.noRec as idAntrianPasienDiperiksa,apd.pegawaiId as idDPJP," + "apd.ruanganId as idRuangan,"
+ "case when lower(ru.namaRuangan) like '%eksekutif%' then 'Eksekutif' else 'Reguler' end as jenisRuangan,"
+ "ru.departemenId as idDepartemen," + "pd.noRec as idPasienDaftar,pd.pasienId as pasienId,"
+ "sum(case when ppd.komponenHargaId = 35 then ppd.hargaDiscount else 0.0 end) as totalDiskon,"
+ "sum(case when ppd.komponenHargaId = 35 then ppd.hargaJual else 0.0 end) as totalKomponen) "
+ "sum(case when ppd.komponenHargaId = 35 then ppd.hargaDiscount else 0.0 end) as totalDiskonD,"
+ "sum(case when ppd.komponenHargaId = 35 then ppd.persenDiskon else 0.0 end) as persenDiskonD,"
+ "sum(case when ppd.komponenHargaId = 22 then ppd.hargaDiscount else 0.0 end) as totalDiskonAs,"
+ "sum(case when ppd.komponenHargaId = 22 then ppd.persenDiskon else 0.0 end) as persenDiskonAs,"
+ "sum(case when ppd.komponenHargaId = 21 then ppd.hargaDiscount else 0.0 end) as totalDiskonAn,"
+ "sum(case when ppd.komponenHargaId = 21 then ppd.persenDiskon else 0.0 end) as persenDiskonAn) "
+ "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

@ -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;
@ -154,8 +155,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
Map<String, Object> result = new HashMap<>();
PelayananPasien model = new PelayananPasien();
model = pelayananPasienConverter.transferVOToModel(vo, model);
model.setPasien(antrianPasienDiPeriksaDao.finByNoIdAndTglRegistrasi(Short.parseShort("0"),
vo.getPasien().getId(), vo.getTglRegistrasi()));
model.setPasien(antrianPasienDiPeriksaDao.finByNoIdAndTglRegistrasi((short) 0, vo.getPasien().getId(),
vo.getTglRegistrasi()));
if (CommonUtil.isNotNullOrEmpty(vo.getJenisObat())) {
model.setJenisObat(jenisObatConverter.transferVOToModel(vo.getJenisObat(), new JenisObat()));
}
@ -587,100 +588,112 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
double hargaJual = Double.parseDouble(d.get("hargaJual").toString());
if (Boolean.parseBoolean(d.get("isSelisihPaket").toString()))
hargaJual -= Double.parseDouble(d.get("hargaDiskon").toString());
if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskon"))
&& Double.parseDouble(d.get("totalDiskon").toString()) > 0.0
&& CommonUtil.isNullOrEmpty(d.get("idSayatan"))) {
/*
* Untuk diskon jasa medis oleh dokter
*/
d.put("hargaJasa", Double.parseDouble(d.get("totalKomponen").toString())
- Double.parseDouble(d.get("totalDiskon").toString()));
} else if (KLINIK_KARYAWAN.equals(d.get("idRuangan")) || KLINIK_GIGI_KARYAWAN.equals(d.get("idRuangan"))) {
/*
* Untuk semua klaim di ruangan klinik karyawan
*/
d.put("hargaJasa", 0.0);
} else if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa", persenRemunDokterUmumHD / 100 * hargaJual);
if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenRemunDokterUmumHD / 100, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
&& DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
double persenJasa = persenOperator / 100;
d.put("hargaJasa", persenJasa * persenTarifIBS * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifIBS, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
&& ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
double persenJasa = persenAsistenIBS / 100;
d.put("hargaJasa", persenJasa * persenTarifIBS * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifIBS, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
&& DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
double persenJasa = persenAnestesi / 100;
d.put("hargaJasa", persenJasa * persenTarifIBS * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifIBS, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))
&& CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) {
d.put("hargaJasa", persenOperator / 100
* (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)));
RemunHargaJasa hargaJasa = hargaJasa(persenOperator / 100,
(hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d,
false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))
&& CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) {
d.put("hargaJasa", persenAsistenIBS / 100
* (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)));
RemunHargaJasa hargaJasa = hargaJasa(persenAsistenIBS / 100,
(hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d,
false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))
&& CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) {
d.put("hargaJasa", persenAnestesi / 100
* (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)));
RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100,
(hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d,
false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa", persenOperator / 100 * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenOperator / 100, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa", persenAsistenIBS / 100 * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenAsistenIBS / 100, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa", persenAnestesi / 100 * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if (RADIOLOGI.equals(d.get("idDepartemen"))) {
d.put("hargaJasa", persenRadiologi / 100 * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenRadiologi / 100, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if (REHAB_MEDIK.equals(d.get("idDepartemen"))) {
d.put("hargaJasa", persenRehabMedik / 100 * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenRehabMedik / 100, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if (KONSULTASI.equals(d.get("idGolonganProduk"))) {
d.put("hargaJasa", persenKonsultasi / 100 * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenKonsultasi / 100, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if (VISIT.equals(d.get("idGolonganProduk"))) {
d.put("hargaJasa", persenVisite / 100 * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenVisite / 100, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drAnastesiList.contains(idPegawai) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa", persenTindakan / 100 * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drAnastesiList.contains(idPegawai) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa", persenAnestesi / 100 * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drKkGenetika.contains(idPegawai)
&& idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString()))
&& (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) {
d.put("hargaJasa", persenRemunLabGenetika / 100 * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenRemunLabGenetika / 100, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if (Arrays.asList(GENETIKA).contains(Integer.parseInt(d.get("idRuangan").toString()))) {
d.put("hargaJasa", persenRemunLabGenetika / 100 * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenRemunLabGenetika / 100, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drKkPatologiAnatomiList.contains(idPegawai)) {
d.put("hargaJasa", persenRemunDokterPA / 100 * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenRemunDokterPA / 100, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if (LABORATORIUM.equals(d.get("idDepartemen"))) {
d.put("hargaJasa", persenLaboratorium / 100 * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenLaboratorium / 100, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
} else if (CommonUtil.isNotNullOrEmpty(d.get("idRuangan"))
&& Arrays.asList(ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString()))) {
double persenJasa = persenTindakan / 100;
d.put("hargaJasa", persenJasa * persenTarifICU * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifICU, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
} else {
d.put("hargaJasa", persenTindakan / 100 * hargaJual);
RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d, false);
d.put("hargaJasa", hargaJasa.getNilai());
}
}
/*
@ -1840,140 +1853,168 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
+ nf.format(Double.parseDouble(d.get("hargaDiskon").toString()));
}
if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenRemunDokterUmumHD / 100, hargaJual, d, true);
d.put("persenJasa", persenRemunDokterUmumHD + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenRemunDokterUmumHD / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
&& DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
double persenJasa = persenOperator / 100;
RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifIBS, hargaJual, d, false);
d.put("persenJasa", persenOperator + "%");
d.put("keterangan", "Dari " + persenTarifJasaBedah + "% tarif" + keteranganTambahan);
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenJasa * persenTarifIBS * hargaJual);
d.put("keterangan",
"Dari " + persenTarifJasaBedah + "% tarif" + hargaJasa.getKeterangan() + keteranganTambahan);
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
&& ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
double persenJasa = persenAsistenIBS / 100;
RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifIBS, hargaJual, d, false);
d.put("persenJasa", persenAsistenIBS + "%");
d.put("keterangan", "Dari " + persenTarifJasaBedah + "% tarif" + keteranganTambahan);
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenJasa * persenTarifIBS * hargaJual);
d.put("keterangan",
"Dari " + persenTarifJasaBedah + "% tarif" + hargaJasa.getKeterangan() + keteranganTambahan);
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
&& DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
double persenJasa = persenAnestesi / 100;
RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifIBS, hargaJual, d, false);
d.put("persenJasa", persenAnestesi + "%");
d.put("keterangan", "Dari " + persenTarifJasaBedah + "% tarif" + keteranganTambahan);
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenJasa * persenTarifIBS * hargaJual);
d.put("keterangan",
"Dari " + persenTarifJasaBedah + "% tarif" + hargaJasa.getKeterangan() + keteranganTambahan);
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))
&& CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenOperator / 100,
(hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d,
false);
d.put("persenJasa", persenOperator + "%");
d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString()))
+ "% tarif" + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString());
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenOperator / 100
* (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)));
d.put("keterangan",
"Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) + "% tarif"
+ keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString()
+ hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))
&& CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenAsistenIBS / 100,
(hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d,
false);
d.put("persenJasa", persenAsistenIBS + "%");
d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString()))
+ "% tarif" + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString());
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenAsistenIBS / 100
* (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)));
d.put("keterangan",
"Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) + "% tarif"
+ keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString()
+ hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))
&& CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100,
(hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d,
false);
d.put("persenJasa", persenAnestesi + "%");
d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString()))
+ "% tarif" + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString());
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenAnestesi / 100
* (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)));
d.put("keterangan",
"Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) + "% tarif"
+ keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString()
+ hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenOperator / 100, hargaJual, d, true);
d.put("persenJasa", persenOperator + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenOperator / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenAsistenIBS / 100, hargaJual, d, true);
d.put("persenJasa", persenAsistenIBS + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenAsistenIBS / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d, true);
d.put("persenJasa", persenAnestesi + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenAnestesi / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (RADIOLOGI.equals(d.get("idDepartemen"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenRadiologi / 100, hargaJual, d, true);
d.put("persenJasa", persenRadiologi + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenRadiologi / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (REHAB_MEDIK.equals(d.get("idDepartemen"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenRehabMedik / 100, hargaJual, d, true);
d.put("persenJasa", persenRehabMedik + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenRehabMedik / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (KONSULTASI.equals(d.get("idGolonganProduk"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenKonsultasi / 100, hargaJual, d, true);
d.put("persenJasa", persenKonsultasi + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenKonsultasi / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (VISIT.equals(d.get("idGolonganProduk"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenVisite / 100, hargaJual, d, true);
d.put("persenJasa", persenVisite + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenVisite / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drAnastesiList.contains(idPegawai) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d, true);
d.put("persenJasa", persenTindakan + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenTindakan / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drAnastesiList.contains(idPegawai) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d, true);
d.put("persenJasa", persenAnestesi + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenAnestesi / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drKkGenetika.contains(idPegawai)
&& idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString()))
&& (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) {
RemunHargaJasa hargaJasa = hargaJasa(persenRemunLabGenetika / 100, hargaJual, d, true);
d.put("persenJasa", persenRemunLabGenetika + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenRemunLabGenetika / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (Arrays.asList(GENETIKA).contains(Integer.parseInt(d.get("idRuangan").toString()))) {
RemunHargaJasa hargaJasa = hargaJasa(persenRemunLabGenetika / 100, hargaJual, d, true);
d.put("persenJasa", persenRemunLabGenetika + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenRemunLabGenetika / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drKkPatologiAnatomiList.contains(idPegawai)) {
RemunHargaJasa hargaJasa = hargaJasa(persenRemunDokterPA / 100, hargaJual, d, true);
d.put("persenJasa", persenRemunDokterPA + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenRemunDokterPA / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (LABORATORIUM.equals(d.get("idDepartemen"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenLaboratorium / 100, hargaJual, d, true);
d.put("persenJasa", persenLaboratorium + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenLaboratorium / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (CommonUtil.isNotNullOrEmpty(d.get("idRuangan"))
&& Arrays.asList(ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString()))) {
double persenJasa = persenTindakan / 100;
RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifICU, hargaJual, d, false);
d.put("persenJasa", persenTindakan + "%");
d.put("keterangan", "Dari " + persenTarifJasaICU + "% tarif" + keteranganTambahan);
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenJasa * persenTarifICU * hargaJual);
d.put("keterangan",
"Dari " + persenTarifJasaICU + "% tarif" + hargaJasa.getKeterangan() + keteranganTambahan);
d.put("hargaJasa", hargaJasa.getNilai());
} else {
RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d, true);
d.put("persenJasa", persenTindakan + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenTindakan / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
}
}
/*
@ -2189,115 +2230,140 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
}
if (CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))) {
RemunHargaJasa hargaJasa = hargaJasa(persenBPJS / 100, hargaJual, d, true);
/*
* Set persen jasa dokter luar yang klaim ffs dengan persen jasa
* dari tarif total
*/
d.put("persenJasa", persenBPJS + "%");
d.put("keterangan", hargaJasa.getKeterangan());
/*
* Set harga jasa klaim jasa ffs pasien bpjs oleh dokter-dokter
* tertentu
*/
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenBPJS / 100 * hargaJual);
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenJasaDokterUmumHD / 100, hargaJual, d, true);
d.put("persenJasa", persenJasaDokterUmumHD + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenJasaDokterUmumHD / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))
&& CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenOperator / 100,
(hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d,
false);
d.put("persenJasa", persenOperator + "%");
d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString()))
+ "% tarif" + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString());
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenOperator / 100
* (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)));
d.put("keterangan",
"Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) + "% tarif"
+ keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString()
+ hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))
&& CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenAsistenIBS / 100,
(hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d,
false);
d.put("persenJasa", persenAsistenIBS + "%");
d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString()))
+ "% tarif" + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString());
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenAsistenIBS / 100
* (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)));
d.put("keterangan",
"Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) + "% tarif"
+ keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString()
+ hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))
&& CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100,
(hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d,
false);
d.put("persenJasa", persenAnestesi + "%");
d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString()))
+ "% tarif" + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString());
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenAnestesi / 100
* (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)));
d.put("keterangan",
"Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) + "% tarif"
+ keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString()
+ hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenOperator / 100, hargaJual, d, true);
d.put("persenJasa", persenOperator + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenOperator / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenAsistenIBS / 100, hargaJual, d, true);
d.put("persenJasa", persenAsistenIBS + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenAsistenIBS / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d, true);
d.put("persenJasa", persenAnestesi + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenAnestesi / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (RADIOLOGI.equals(d.get("idDepartemen"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenRadiologi / 100, hargaJual, d, true);
d.put("persenJasa", persenRadiologi + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenRadiologi / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (REHAB_MEDIK.equals(d.get("idDepartemen"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenRehabMedik / 100, hargaJual, d, true);
d.put("persenJasa", persenRehabMedik + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenRehabMedik / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (KONSULTASI.equals(d.get("idGolonganProduk"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenKonsultasi / 100, hargaJual, d, true);
d.put("persenJasa", persenKonsultasi + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenKonsultasi / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (VISIT.equals(d.get("idGolonganProduk"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenVisite / 100, hargaJual, d, true);
d.put("persenJasa", persenVisite + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenVisite / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drAnastesiList.contains(idPegawai) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d, true);
d.put("persenJasa", persenTindakan + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenTindakan / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drAnastesiList.contains(idPegawai) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d, true);
d.put("persenJasa", persenAnestesi + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenAnestesi / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drKkGenetika.contains(idPegawai)
&& idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString()))
&& (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) {
RemunHargaJasa hargaJasa = hargaJasa(persenJasaLabGenetika / 100, hargaJual, d, true);
d.put("persenJasa", persenJasaLabGenetika + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenJasaLabGenetika / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (Arrays.asList(GENETIKA).contains(Integer.parseInt(d.get("idRuangan").toString()))) {
RemunHargaJasa hargaJasa = hargaJasa(persenJasaLabGenetika / 100, hargaJual, d, true);
d.put("persenJasa", persenJasaLabGenetika + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenJasaLabGenetika / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drKkPatologiAnatomiList.contains(idPegawai)) {
RemunHargaJasa hargaJasa = hargaJasa(persenJasaDokterPA / 100, hargaJual, d, true);
d.put("persenJasa", persenJasaDokterPA + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenJasaDokterPA / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (LABORATORIUM.equals(d.get("idDepartemen"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenLaboratorium / 100, hargaJual, d, true);
d.put("persenJasa", persenLaboratorium + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenLaboratorium / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else {
RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d, true);
d.put("persenJasa", persenTindakan + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenTindakan / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
}
}
/*
@ -2518,115 +2584,140 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
}
if (CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))) {
RemunHargaJasa hargaJasa = hargaJasa(persenBPJS / 100, hargaJual, d, true);
/*
* Set persen jasa dokter luar yang klaim ffs dengan persen jasa
* dari tarif total
*/
d.put("persenJasa", persenBPJS + "%");
d.put("keterangan", hargaJasa.getKeterangan());
/*
* Set harga jasa klaim jasa ffs pasien bpjs oleh dokter-dokter
* tertentu
*/
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenBPJS / 100 * hargaJual);
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenJasaDokterUmumHD / 100, hargaJual, d, true);
d.put("persenJasa", persenJasaDokterUmumHD + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenJasaDokterUmumHD / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))
&& CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenOperatorIBS / 100,
(hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d,
false);
d.put("persenJasa", persenOperatorIBS + "%");
d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString()))
+ "% tarif" + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString());
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenOperatorIBS / 100
* (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)));
d.put("keterangan",
"Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) + "% tarif"
+ keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString()
+ hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))
&& CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenAsistenIBS / 100,
(hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d,
false);
d.put("persenJasa", persenAsistenIBS + "%");
d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString()))
+ "% tarif" + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString());
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenAsistenIBS / 100
* (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)));
d.put("keterangan",
"Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) + "% tarif"
+ keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString()
+ hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))
&& CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100,
(hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)), d,
false);
d.put("persenJasa", persenAnestesi + "%");
d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString()))
+ "% tarif" + keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString());
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenAnestesi / 100
* (hargaJual - (Double.parseDouble(d.get("persenSayatan").toString()) / 100 * hargaJual)));
d.put("keterangan",
"Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) + "% tarif"
+ keteranganTambahan + ", sayatan ke-" + d.get("urutanSayatan").toString()
+ hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenOperatorIBS / 100, hargaJual, d, true);
d.put("persenJasa", persenOperatorIBS + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenOperatorIBS / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenAsistenIBS / 100, hargaJual, d, true);
d.put("persenJasa", persenAsistenIBS + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenAsistenIBS / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
&& DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d, true);
d.put("persenJasa", persenAnestesi + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenAnestesi / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (RADIOLOGI.equals(d.get("idDepartemen"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenRadiologi / 100, hargaJual, d, true);
d.put("persenJasa", persenRadiologi + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenRadiologi / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (REHAB_MEDIK.equals(d.get("idDepartemen"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenRehabMedik / 100, hargaJual, d, true);
d.put("persenJasa", persenRehabMedik + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenRehabMedik / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (KONSULTASI.equals(d.get("idGolonganProduk"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenKonsultasi / 100, hargaJual, d, true);
d.put("persenJasa", persenKonsultasi + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenKonsultasi / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (VISIT.equals(d.get("idGolonganProduk"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenVisite / 100, hargaJual, d, true);
d.put("persenJasa", persenVisite + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenVisite / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drAnastesiList.contains(idPegawai) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d, true);
d.put("persenJasa", persenTindakan + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenTindakan / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drAnastesiList.contains(idPegawai) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d, true);
d.put("persenJasa", persenAnestesi + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenAnestesi / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drKkGenetika.contains(idPegawai)
&& idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString()))
&& (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) {
RemunHargaJasa hargaJasa = hargaJasa(persenJasaLabGenetika / 100, hargaJual, d, true);
d.put("persenJasa", persenJasaLabGenetika + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenJasaLabGenetika / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (Arrays.asList(GENETIKA).contains(Integer.parseInt(d.get("idRuangan").toString()))) {
RemunHargaJasa hargaJasa = hargaJasa(persenJasaLabGenetika / 100, hargaJual, d, true);
d.put("persenJasa", persenJasaLabGenetika + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenJasaLabGenetika / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drKkPatologiAnatomiList.contains(idPegawai)) {
RemunHargaJasa hargaJasa = hargaJasa(persenJasaDokterPA / 100, hargaJual, d, true);
d.put("persenJasa", persenJasaDokterPA + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenJasaDokterPA / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else if (LABORATORIUM.equals(d.get("idDepartemen"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenLaboratorium / 100, hargaJual, d, true);
d.put("persenJasa", persenLaboratorium + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenLaboratorium / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
} else {
RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d, true);
d.put("persenJasa", persenTindakan + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenTindakan / 100 * hargaJual);
d.put("keterangan", hargaJasa.getKeterangan());
d.put("hargaJasa", hargaJasa.getNilai());
}
}
/*
@ -3522,4 +3613,206 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
});
return duplicateMapPetugasPegawai;
}
private RemunHargaJasa hargaJasa(double persenRemunerasi, double hargaJual, Map<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();
}
if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD"))
&& Double.parseDouble(d.get("totalDiskonD").toString()) > 0.0
&& CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAs"))
&& Double.parseDouble(d.get("totalDiskonAs").toString()) > 0.0
&& CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAn"))
&& Double.parseDouble(d.get("totalDiskonAn").toString()) > 0.0) {
double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString())
+ Double.parseDouble(d.get("totalDiskonAs").toString())
+ Double.parseDouble(d.get("totalDiskonAn").toString());
double hargaJualSetelahDiskon = hargaJual - totalDiskon;
double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon;
double persenRemunOperator = 100.00 - Double.parseDouble(d.get("persenDiskonD").toString());
double persenRemunAsisten = 100.00 - Double.parseDouble(d.get("persenDiskonAs").toString());
double persenRemunAnestesi = 100.00 - Double.parseDouble(d.get("persenDiskonAn").toString());
double hargaJasaOperator = persenRemunOperator * hargaJasa / 100;
double hargaJasaAsisten = persenRemunAsisten * hargaJasa / 100;
double hargaJasaAnestesi = persenRemunAnestesi * hargaJasa / 100;
double hargaJasaRemun = hargaJasaOperator + hargaJasaAsisten + hargaJasaAnestesi;
builder.nilai(hargaJasaRemun);
if (isFrontNote) {
builder.keterangan("Dari pengurangan tarif dengan diskon " + nf.format(totalDiskon)
+ " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator
+ "% ditambah pengalian " + persenRemunAsisten + "% ditambah pengalian " + persenRemunAnestesi
+ "% karena diskon komponen operator, asisten, dan anestesi berturut-turut "
+ d.get("persenDiskonD").toString() + "%, " + d.get("persenDiskonAs").toString() + "%, dan "
+ d.get("persenDiskonAn").toString() + "%");
} else {
builder.keterangan(" dan dari pengurangan tarif dengan diskon " + nf.format(totalDiskon)
+ " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator
+ "% ditambah pengalian " + persenRemunAsisten + "% ditambah pengalian " + persenRemunAnestesi
+ "% karena diskon komponen operator, asisten, dan anestesi berturut-turut "
+ d.get("persenDiskonD").toString() + "%, " + d.get("persenDiskonAs").toString() + "%, dan "
+ d.get("persenDiskonAn").toString() + "%");
}
} else if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD"))
&& Double.parseDouble(d.get("totalDiskonD").toString()) > 0.0
&& CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAs"))
&& Double.parseDouble(d.get("totalDiskonAs").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(d.get("totalDiskonAn"))
|| Double.parseDouble(d.get("totalDiskonAn").toString()) <= 0.0)) {
double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString())
+ Double.parseDouble(d.get("totalDiskonAs").toString());
double hargaJualSetelahDiskon = hargaJual - totalDiskon;
double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon;
double persenRemunOperator = 100.00 - Double.parseDouble(d.get("persenDiskonD").toString());
double persenRemunAsisten = 100.00 - Double.parseDouble(d.get("persenDiskonAs").toString());
double hargaJasaOperator = persenRemunOperator * hargaJasa / 100;
double hargaJasaAsisten = persenRemunAsisten * hargaJasa / 100;
double hargaJasaRemun = hargaJasaOperator + hargaJasaAsisten;
builder.nilai(hargaJasaRemun);
if (isFrontNote) {
builder.keterangan("Dari pengurangan tarif dengan diskon " + nf.format(totalDiskon)
+ " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator
+ "% ditambah pengalian " + persenRemunAsisten
+ "% karena diskon komponen operator dan asisten berturut-turut "
+ d.get("persenDiskonD").toString() + "% dan " + d.get("persenDiskonAs").toString() + "%");
} else {
builder.keterangan(" dan dari pengurangan tarif dengan diskon " + nf.format(totalDiskon)
+ " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator
+ "% ditambah pengalian " + persenRemunAsisten
+ "% karena diskon komponen operator dan asisten berturut-turut "
+ d.get("persenDiskonD").toString() + "% dan " + d.get("persenDiskonAs").toString() + "%");
}
} else if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD"))
&& Double.parseDouble(d.get("totalDiskonD").toString()) > 0.0
&& CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAn"))
&& Double.parseDouble(d.get("totalDiskonAn").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(d.get("totalDiskonAs"))
|| Double.parseDouble(d.get("totalDiskonAs").toString()) <= 0.0)) {
double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString())
+ Double.parseDouble(d.get("totalDiskonAn").toString());
double hargaJualSetelahDiskon = hargaJual - totalDiskon;
double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon;
double persenRemunOperator = 100.00 - Double.parseDouble(d.get("persenDiskonD").toString());
double persenRemunAnestesi = 100.00 - Double.parseDouble(d.get("persenDiskonAn").toString());
double hargaJasaOperator = persenRemunOperator * hargaJasa / 100;
double hargaJasaAnestesi = persenRemunAnestesi * hargaJasa / 100;
double hargaJasaRemun = hargaJasaOperator + hargaJasaAnestesi;
builder.nilai(hargaJasaRemun);
if (isFrontNote) {
builder.keterangan("Dari pengurangan tarif dengan diskon " + nf.format(totalDiskon)
+ " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator
+ "% ditambah pengalian " + persenRemunAnestesi
+ "% karena diskon komponen operator dan anestesi berturut-turut "
+ d.get("persenDiskonD").toString() + "% dan " + d.get("persenDiskonAn").toString() + "%");
} else {
builder.keterangan(" dan dari pengurangan tarif dengan diskon " + nf.format(totalDiskon)
+ " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator
+ "% ditambah pengalian " + persenRemunAnestesi
+ "% karena diskon komponen operator dan anestesi berturut-turut "
+ d.get("persenDiskonD").toString() + "% dan " + d.get("persenDiskonAn").toString() + "%");
}
} else if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAs"))
&& Double.parseDouble(d.get("totalDiskonAs").toString()) > 0.0
&& CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAn"))
&& Double.parseDouble(d.get("totalDiskonAn").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(d.get("totalDiskonD"))
|| Double.parseDouble(d.get("totalDiskonD").toString()) <= 0.0)) {
double totalDiskon = Double.parseDouble(d.get("totalDiskonAs").toString())
+ Double.parseDouble(d.get("totalDiskonAn").toString());
double hargaJualSetelahDiskon = hargaJual - totalDiskon;
double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon;
double persenRemunAsisten = 100.00 - Double.parseDouble(d.get("persenDiskonAs").toString());
double persenRemunAnestesi = 100.00 - Double.parseDouble(d.get("persenDiskonAn").toString());
double hargaJasaAsisten = persenRemunAsisten * hargaJasa / 100;
double hargaJasaAnestesi = persenRemunAnestesi * hargaJasa / 100;
double hargaJasaRemun = hargaJasaAsisten + hargaJasaAnestesi;
builder.nilai(hargaJasaRemun);
if (isFrontNote) {
builder.keterangan("Dari pengurangan tarif dengan diskon " + nf.format(totalDiskon)
+ " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunAsisten
+ "% ditambah pengalian " + persenRemunAnestesi
+ "% karena diskon komponen asisten dan anestesi berturut-turut "
+ d.get("persenDiskonAs").toString() + "% dan " + d.get("persenDiskonAn").toString() + "%");
} else {
builder.keterangan(" dan dari pengurangan tarif dengan diskon " + nf.format(totalDiskon)
+ " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunAsisten
+ "% ditambah pengalian " + persenRemunAnestesi
+ "% karena diskon komponen asisten dan anestesi berturut-turut "
+ d.get("persenDiskonAs").toString() + "% dan " + d.get("persenDiskonAn").toString() + "%");
}
} else if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonD"))
&& Double.parseDouble(d.get("totalDiskonD").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(d.get("totalDiskonAs"))
|| Double.parseDouble(d.get("totalDiskonAs").toString()) <= 0.0)
&& (CommonUtil.isNullOrEmpty(d.get("totalDiskonAn"))
|| Double.parseDouble(d.get("totalDiskonAn").toString()) <= 0.0)) {
double totalDiskon = Double.parseDouble(d.get("totalDiskonD").toString());
double hargaJualSetelahDiskon = hargaJual - totalDiskon;
double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon;
double persenRemunOperator = 100.00 - Double.parseDouble(d.get("persenDiskonD").toString());
builder.nilai(persenRemunOperator * hargaJasa / 100);
if (isFrontNote) {
builder.keterangan("Dari pengurangan tarif dengan diskon " + nf.format(totalDiskon)
+ " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator
+ "% karena diskon komponen operator " + d.get("persenDiskonD").toString() + "%");
} else {
builder.keterangan(" dan dari pengurangan tarif dengan diskon " + nf.format(totalDiskon)
+ " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunOperator
+ "% karena diskon komponen operator " + d.get("persenDiskonD").toString() + "%");
}
} else if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAs"))
&& Double.parseDouble(d.get("totalDiskonAs").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(d.get("totalDiskonD"))
|| Double.parseDouble(d.get("totalDiskonD").toString()) <= 0.0)
&& (CommonUtil.isNullOrEmpty(d.get("totalDiskonAn"))
|| Double.parseDouble(d.get("totalDiskonAn").toString()) <= 0.0)) {
double totalDiskon = Double.parseDouble(d.get("totalDiskonAs").toString());
double hargaJualSetelahDiskon = hargaJual - totalDiskon;
double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon;
double persenRemunAsisten = 100.00 - Double.parseDouble(d.get("persenDiskonAs").toString());
builder.nilai(persenRemunAsisten * hargaJasa / 100);
if (isFrontNote) {
builder.keterangan("Dari pengurangan tarif dengan diskon " + nf.format(totalDiskon)
+ " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunAsisten
+ "% karena diskon komponen asisten " + d.get("persenDiskonAs").toString() + "%");
} else {
builder.keterangan(" dan dari pengurangan tarif dengan diskon " + nf.format(totalDiskon)
+ " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunAsisten
+ "% karena diskon komponen asisten " + d.get("persenDiskonAs").toString() + "%");
}
} else if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskonAn"))
&& Double.parseDouble(d.get("totalDiskonAn").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(d.get("totalDiskonD"))
|| Double.parseDouble(d.get("totalDiskonD").toString()) <= 0.0)
&& (CommonUtil.isNullOrEmpty(d.get("totalDiskonAs"))
|| Double.parseDouble(d.get("totalDiskonAs").toString()) <= 0.0)) {
double totalDiskon = Double.parseDouble(d.get("totalDiskonAn").toString());
double hargaJualSetelahDiskon = hargaJual - totalDiskon;
double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon;
double persenRemunAnestesi = 100.00 - Double.parseDouble(d.get("persenDiskonAn").toString());
builder.nilai(persenRemunAnestesi * hargaJasa / 100);
if (isFrontNote) {
builder.keterangan("Dari pengurangan tarif dengan diskon " + nf.format(totalDiskon)
+ " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunAnestesi
+ "% karena diskon komponen anestesi " + d.get("persenDiskonAn").toString() + "%");
} else {
builder.keterangan(" dan dari pengurangan tarif dengan diskon " + nf.format(totalDiskon)
+ " terlebih dahulu dan diakhiri dengan pengalian " + persenRemunAnestesi
+ "% karena diskon komponen anestesi " + d.get("persenDiskonAn").toString() + "%");
}
} else {
builder.nilai(persenRemunerasi * hargaJual);
builder.keterangan("");
}
return builder.build();
}
}

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

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

View File

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

View File

@ -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<RacikanDetailVO> racikan = new ArrayList<RacikanDetailVO>();
private List<RacikanDetailVO> 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;
}