Merge branch 'dev/logbook/diskon' into dev/no-cron

This commit is contained in:
Salman Manoe 2024-09-26 17:01:47 +07:00
commit 98025620ed
4 changed files with 116 additions and 136 deletions

View File

@ -200,6 +200,7 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
+ "ppp.ObjectPegawaiId as idPegawai," + "pp.noRec as idPelayananPasien,coalesce(pp.jumlah,0) as jumlah,"
+ "coalesce(pp.hargaJual,0) as hargaJual,coalesce(pp.hargaDiscount,0) as hargaDiskon,"
+ "pp.voucherPaketId as idVoucherLayanan,coalesce(pp.isPaket,false) as isPaket,coalesce(pp.isSelisihPaket,false) as isSelisihPaket,"
+ "coalesce(pp.persenDiskonPegawai,0) as persenDiskonPegawai,"
+ "pp.tglPelayanan as tglPelayanan,to_char(pp.tglPelayanan,'yyyy-MM-dd') as tanggal,"
+ "pp.sayatanId as idSayatan,sy.urutan as urutanSayatan,"
+ "coalesce(sy.persen,0) as persenSayatan,coalesce(sy.nama,'') as keterangan,"
@ -255,10 +256,11 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
+ "when pp.kelasId = 21 then 7 " + "else 8 end," + "kls.namaKelas," + "ppp.noRec,"
+ "ppp.ObjectJenisPetugasPeId,ppp.ObjectPegawaiId,"
+ "pp.noRec,coalesce(pp.hargaJual,0),coalesce(pp.jumlah,0)," + "coalesce(pp.isPaket,false),"
+ "coalesce(pp.isSelisihPaket,false)," + "coalesce(pp.persenDiskonPegawai,0),"
+ "pp.tglPelayanan,to_char(pp.tglPelayanan,'yyyy-MM-dd')," + "pp.sayatanId,sy.urutan,"
+ "coalesce(sy.persen,0),coalesce(sy.nama,'')," + "apd.noRec,apd.pegawaiId," + "apd.ruanganId,"
+ "case when ru.kelompokRuangan = 'EKSEKUTIF' then 'Eksekutif' else 'Reguler' end,"
+ "ru.departemenId," + "pd.noRec ";
+ "case when ru.kelompokRuangan = 'EKSEKUTIF' then 'Eksekutif' else 'Reguler' end," + "ru.departemenId,"
+ "pd.noRec ";
String ORDER_LOGBOOK_DOKTER = "order by case when pd.kelompokPasienId = 2 then 1 "
+ "when pd.kelompokPasienId = 4 then 2 " + "when pd.kelompokPasienId = 8 then 3 "

View File

@ -771,7 +771,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
d.put("hargaJual", d.get("komponenTotalTarif"));
d.put("isTermasukProporsi", true);
double hargaJual = Double.parseDouble(d.get("hargaJual").toString());
if (Boolean.parseBoolean(d.get("isSelisihPaket").toString()))
if (Boolean.parseBoolean(d.get("isSelisihPaket").toString())
|| Double.parseDouble(d.get("persenDiskonPegawai").toString()) > 0.0)
hargaJual -= Double.parseDouble(d.get("hargaDiskon").toString());
if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenRemunDokterUmumHD / 100, hargaJual, d, false);
@ -1963,8 +1964,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
SimpleDateFormat month = new SimpleDateFormat("MMM-yyyy", new Locale("in", "ID"));
listData.forEach(d -> {
if (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")))
d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString()))
+ "% komponen tarif, sayatan ke-" + d.get("urutanSayatan").toString());
d.put("keterangan", "Diskon sayatan ke-" + d.get("urutanSayatan").toString() + " ("
+ d.get("persenSayatan").toString() + "%)");
});
List<MapProdukPaket> paketList = mapProdukPaketDao.findAll();
List<Integer> allProdukEntriId = paketList.stream().map(MapProdukPaket::getProdukEntriId)
@ -2163,8 +2164,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
private List<Map<String, Object>> transformPelayananKepalaPaketFixedPay(List<Map<String, Object>> listData) {
listData.forEach(d -> {
if (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")))
d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString()))
+ "% komponen tarif, sayatan ke-" + d.get("urutanSayatan").toString());
d.put("keterangan", "Diskon sayatan ke-" + d.get("urutanSayatan").toString() + " ("
+ d.get("persenSayatan").toString() + "%)");
});
listData.forEach(d -> {
double hargaJasa = Double.parseDouble(d.get("hargaJasaD").toString())
@ -2247,8 +2248,12 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
String keteranganTambahan = "";
if (Boolean.parseBoolean(d.get("isSelisihPaket").toString())) {
hargaJual -= Double.parseDouble(d.get("hargaDiskon").toString());
keteranganTambahan = " dan selisih paket karena diskon "
+ nf.format(Double.parseDouble(d.get("hargaDiskon").toString()));
keteranganTambahan = " + diskon selisih paket ("
+ nf.format(Double.parseDouble(d.get("hargaDiskon").toString())) + ")";
}
if (Double.parseDouble(d.get("persenDiskonPegawai").toString()) > 0.0) {
hargaJual -= Double.parseDouble(d.get("hargaDiskon").toString());
keteranganTambahan = " + diskon pegawai (" + d.get("persenDiskonPegawai").toString() + "%)";
}
if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenRemunDokterUmumHD / 100, hargaJual, d, true);
@ -2268,8 +2273,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
double persenJasa = persenOperator / 100;
RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifIBS, hargaJual, d, false);
d.put("persenJasa", persenOperator + "%");
d.put("keterangan",
"Dari " + persenTarifJasaBedah + "% tarif" + hargaJasa.getKeterangan() + keteranganTambahan);
d.put("keterangan", "Tarif jasa bedah (" + persenTarifJasaBedah + "%) " + 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"))))
@ -2279,8 +2284,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
double persenJasa = persenAsistenIBS / 100;
RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifIBS, hargaJual, d, false);
d.put("persenJasa", persenAsistenIBS + "%");
d.put("keterangan",
"Dari " + persenTarifJasaBedah + "% tarif" + hargaJasa.getKeterangan() + keteranganTambahan);
d.put("keterangan", "Tarif jasa bedah (" + persenTarifJasaBedah + "%) " + 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"))))
@ -2290,8 +2295,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
double persenJasa = persenAnestesi / 100;
RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifIBS, hargaJual, d, false);
d.put("persenJasa", persenAnestesi + "%");
d.put("keterangan",
"Dari " + persenTarifJasaBedah + "% tarif" + hargaJasa.getKeterangan() + keteranganTambahan);
d.put("keterangan", "Tarif jasa bedah (" + persenTarifJasaBedah + "%) " + 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"))))
@ -2301,10 +2306,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
(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()
+ hargaJasa.getKeterangan());
d.put("keterangan", "Diskon sayatan ke-" + d.get("urutanSayatan").toString() + " ("
+ d.get("persenSayatan").toString() + "%) " + keteranganTambahan + 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"))))
@ -2314,10 +2317,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
(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()
+ hargaJasa.getKeterangan());
d.put("keterangan", "Diskon sayatan ke-" + d.get("urutanSayatan").toString() + " ("
+ d.get("persenSayatan").toString() + "%) " + keteranganTambahan + 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"))))
@ -2327,10 +2328,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
(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()
+ hargaJasa.getKeterangan());
d.put("keterangan", "Diskon sayatan ke-" + d.get("urutanSayatan").toString() + " ("
+ d.get("persenSayatan").toString() + "%) " + keteranganTambahan + 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"))))
@ -2410,8 +2409,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
double persenJasa = persenTindakan / 100;
RemunHargaJasa hargaJasa = hargaJasa(persenJasa * persenTarifICU, hargaJual, d, false);
d.put("persenJasa", persenTindakan + "%");
d.put("keterangan",
"Dari " + persenTarifJasaICU + "% tarif" + hargaJasa.getKeterangan() + keteranganTambahan);
d.put("keterangan", "Tarif jasa ICU (" + persenTarifJasaICU + "%) " + hargaJasa.getKeterangan()
+ keteranganTambahan);
d.put("hargaJasa", hargaJasa.getNilai());
} else {
RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d, true);
@ -2635,8 +2634,12 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
String keteranganTambahan = "";
if (Boolean.parseBoolean(d.get("isSelisihPaket").toString())) {
hargaJual -= Double.parseDouble(d.get("hargaDiskon").toString());
keteranganTambahan = " dan selisih paket karena diskon "
+ nf.format(Double.parseDouble(d.get("hargaDiskon").toString()));
keteranganTambahan = " + diskon selisih paket ("
+ nf.format(Double.parseDouble(d.get("hargaDiskon").toString())) + ")";
}
if (Double.parseDouble(d.get("persenDiskonPegawai").toString()) > 0.0) {
hargaJual -= Double.parseDouble(d.get("hargaDiskon").toString());
keteranganTambahan = " + diskon pegawai (" + d.get("persenDiskonPegawai").toString() + "%)";
}
if (CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))) {
@ -2670,10 +2673,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
(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()
+ hargaJasa.getKeterangan());
d.put("keterangan", "Diskon sayatan ke-" + d.get("urutanSayatan").toString() + " ("
+ d.get("persenSayatan").toString() + "%) " + keteranganTambahan + 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"))))
@ -2683,10 +2684,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
(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()
+ hargaJasa.getKeterangan());
d.put("keterangan", "Diskon sayatan ke-" + d.get("urutanSayatan").toString() + " ("
+ d.get("persenSayatan").toString() + "%) " + keteranganTambahan + 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"))))
@ -2696,10 +2695,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
(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()
+ hargaJasa.getKeterangan());
d.put("keterangan", "Diskon sayatan ke-" + d.get("urutanSayatan").toString() + " ("
+ d.get("persenSayatan").toString() + "%) " + keteranganTambahan + 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"))))
@ -2904,8 +2901,12 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
String keteranganTambahan = "";
if (Boolean.parseBoolean(d.get("isSelisihPaket").toString())) {
hargaJual -= Double.parseDouble(d.get("hargaDiskon").toString());
keteranganTambahan = " dan selisih paket karena diskon "
+ nf.format(Double.parseDouble(d.get("hargaDiskon").toString()));
keteranganTambahan = " + diskon selisih paket ("
+ nf.format(Double.parseDouble(d.get("hargaDiskon").toString())) + ")";
}
if (Double.parseDouble(d.get("persenDiskonPegawai").toString()) > 0.0) {
hargaJual -= Double.parseDouble(d.get("hargaDiskon").toString());
keteranganTambahan = " + diskon pegawai (" + d.get("persenDiskonPegawai").toString() + "%)";
}
if (CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))) {
@ -2945,10 +2946,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
(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()
+ hargaJasa.getKeterangan());
d.put("keterangan", "Diskon sayatan ke-" + d.get("urutanSayatan").toString() + " ("
+ d.get("persenSayatan").toString() + "%) " + keteranganTambahan + 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"))))
@ -2958,10 +2957,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
(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()
+ hargaJasa.getKeterangan());
d.put("keterangan", "Diskon sayatan ke-" + d.get("urutanSayatan").toString() + " ("
+ d.get("persenSayatan").toString() + "%) " + keteranganTambahan + 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"))))
@ -2971,10 +2968,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
(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()
+ hargaJasa.getKeterangan());
d.put("keterangan", "Diskon sayatan ke-" + d.get("urutanSayatan").toString() + " ("
+ d.get("persenSayatan").toString() + "%) " + keteranganTambahan + 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"))))
@ -3273,8 +3268,12 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
String keteranganTambahan = "";
if (Boolean.parseBoolean(d.get("isSelisihPaket").toString())) {
hargaJual -= Double.parseDouble(d.get("hargaDiskon").toString());
keteranganTambahan = " dan selisih paket karena diskon "
+ nf.format(Double.parseDouble(d.get("hargaDiskon").toString()));
keteranganTambahan = " + diskon selisih paket ("
+ nf.format(Double.parseDouble(d.get("hargaDiskon").toString())) + ")";
}
if (Double.parseDouble(d.get("persenDiskonPegawai").toString()) > 0.0) {
hargaJual -= Double.parseDouble(d.get("hargaDiskon").toString());
keteranganTambahan = " + diskon pegawai (" + d.get("persenDiskonPegawai").toString() + "%)";
}
if (CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))) {
@ -3303,10 +3302,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
(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()
+ hargaJasa.getKeterangan());
d.put("keterangan", "Diskon sayatan ke-" + d.get("urutanSayatan").toString() + " ("
+ d.get("persenSayatan").toString() + "%) " + keteranganTambahan + 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"))))
@ -3316,10 +3313,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
(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()
+ hargaJasa.getKeterangan());
d.put("keterangan", "Diskon sayatan ke-" + d.get("urutanSayatan").toString() + " ("
+ d.get("persenSayatan").toString() + "%) " + keteranganTambahan + 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"))))
@ -3329,10 +3324,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
(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()
+ hargaJasa.getKeterangan());
d.put("keterangan", "Diskon sayatan ke-" + d.get("urutanSayatan").toString() + " ("
+ d.get("persenSayatan").toString() + "%) " + keteranganTambahan + 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"))))
@ -4343,9 +4336,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
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");
builder.keterangan("Diskon klinik karyawan/klinik gigi karyawan (100%)");
} else {
builder.keterangan(" dan dari diskon klinik karyawan/klinik gigi karyawan");
builder.keterangan(" + diskon klinik karyawan/klinik gigi karyawan (100%)");
}
return builder.build();
}
@ -4388,7 +4381,10 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
totalDiskon += totalDiskonAn - (totalPersenDiskonSayatanAn * totalHargaAn / 100);
double hargaJualSetelahDiskon = hargaJual - totalDiskon;
double hargaJasa = persenRemunerasi * hargaJualSetelahDiskon;
if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD"))
if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonPegawai"))) {
builder.nilai(persenRemunerasi * hargaJual);
builder.keterangan("");
} else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD"))
&& Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0
&& CommonUtil.isNotNullOrEmpty(d.get("diskonD"))
&& Double.parseDouble(d.get("diskonD").toString()) >= 0.0
@ -4419,19 +4415,15 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
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() + "%");
builder.keterangan("Total diskon jasa (" + nf.format(totalDiskon) + ") + diskon jasa operator ("
+ d.get("persenDiskonD").toString() + "%) + diskon jasa asisten ("
+ d.get("persenDiskonAs").toString() + "%) + diskon jasa anestesi ("
+ 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() + "%");
builder.keterangan(" + total diskon jasa (" + nf.format(totalDiskon) + ") + diskon jasa operator ("
+ d.get("persenDiskonD").toString() + "%) + diskon jasa asisten ("
+ d.get("persenDiskonAs").toString() + "%) + diskon jasa anestesi ("
+ d.get("persenDiskonAn").toString() + "%)");
}
} else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD"))
&& Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0
@ -4459,17 +4451,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
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() + "%");
builder.keterangan("Total diskon jasa (" + nf.format(totalDiskon) + ") + diskon jasa operator ("
+ d.get("persenDiskonD").toString() + "%) + diskon jasa asisten ("
+ 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() + "%");
builder.keterangan(" + total diskon jasa (" + nf.format(totalDiskon) + ") + diskon jasa operator ("
+ d.get("persenDiskonD").toString() + "%) + diskon jasa asisten ("
+ d.get("persenDiskonAs").toString() + "%)");
}
} else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD"))
&& Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0
@ -4497,17 +4485,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
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() + "%");
builder.keterangan("Total diskon jasa (" + nf.format(totalDiskon) + ") + diskon jasa operator ("
+ d.get("persenDiskonD").toString() + "%) + diskon jasa anestesi ("
+ 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() + "%");
builder.keterangan(" + total diskon jasa (" + nf.format(totalDiskon) + ") + diskon jasa operator ("
+ d.get("persenDiskonD").toString() + "%) + diskon jasa anestesi ("
+ d.get("persenDiskonAn").toString() + "%)");
}
} else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs"))
&& Double.parseDouble(d.get("persenDiskonAs").toString()) > 0.0
@ -4535,17 +4519,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
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() + "%");
builder.keterangan("Total diskon jasa (" + nf.format(totalDiskon) + ") + diskon jasa asisten ("
+ d.get("persenDiskonAs").toString() + "%) + diskon jasa anestesi ("
+ 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() + "%");
builder.keterangan(" + total diskon jasa (" + nf.format(totalDiskon) + ") + diskon jasa asisten ("
+ d.get("persenDiskonAs").toString() + "%) + diskon jasa anestesi ("
+ d.get("persenDiskonAn").toString() + "%)");
}
} else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD"))
&& Double.parseDouble(d.get("persenDiskonD").toString()) > 0.0
@ -4566,13 +4546,11 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
? Double.parseDouble(d.get("persenDiskonD").toString()) : 0.0);
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() + "%");
builder.keterangan("Total diskon jasa (" + nf.format(totalDiskon) + ") + diskon jasa 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() + "%");
builder.keterangan(" + total diskon jasa (" + nf.format(totalDiskon) + ") + diskon jasa operator ("
+ d.get("persenDiskonD").toString() + "%)");
}
} else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs"))
&& Double.parseDouble(d.get("persenDiskonAs").toString()) > 0.0
@ -4593,13 +4571,11 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
? Double.parseDouble(d.get("persenDiskonAs").toString()) : 0.0);
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() + "%");
builder.keterangan("Total diskon jasa (" + nf.format(totalDiskon) + ") + diskon jasa 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() + "%");
builder.keterangan(" + total diskon jasa (" + nf.format(totalDiskon) + ") + diskon jasa asisten ("
+ d.get("persenDiskonAs").toString() + "%)");
}
} else if (CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn"))
&& Double.parseDouble(d.get("persenDiskonAn").toString()) > 0.0
@ -4620,19 +4596,16 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
? Double.parseDouble(d.get("persenDiskonAn").toString()) : 0.0);
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() + "%");
builder.keterangan("Total diskon jasa (" + nf.format(totalDiskon) + ") + diskon jasa 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() + "%");
builder.keterangan(" + total diskon jasa (" + nf.format(totalDiskon) + ") + diskon jasa 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");
builder.keterangan(" + total diskon jasa (" + nf.format(totalDiskon) + ")");
} else {
builder.keterangan("");
}

View File

@ -290,4 +290,7 @@ public class PelayananPasien extends MedicalRecordTransaction {
@Column(name = "aturanpakaisignafk", columnDefinition = "CHAR(32)", insertable = false, updatable = false)
private String aturanPakaiSignaId;
@Column(name = "persendiskonpegawai")
private Double persenDiskonPegawai;
}

View File

@ -162,4 +162,6 @@ public class PelayananPasienVO extends MedicalRecordTransactionVO {
private AturanPakaiSignaVO aturanPakaiSigna;
private String aturanPakaiSignaId;
private Double persenDiskonPegawai;
}