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