Update RemunerasiServiceImpl.java
Perbaikan keterangan dan hitung harga jasa fixed pay dan diskon pegawai
This commit is contained in:
parent
dc2971fd3c
commit
2e10986727
@ -1539,12 +1539,6 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
private List<Map<String, Object>> transformPelayananPaket(Integer idPegawai, List<Map<String, Object>> listData) {
|
||||
List<Integer> drKsmObgyn = pegawaiDao.getDokterByKsm(KSM_OBGYN);
|
||||
SimpleDateFormat month = new SimpleDateFormat("MMM-yyyy", new Locale("in", "ID"));
|
||||
listData.forEach(d -> {
|
||||
if (CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))
|
||||
&& Integer.parseInt(d.get("urutanSayatan").toString()) != 1)
|
||||
d.put("keterangan", "Diskon Sayatan ke-" + d.get("urutanSayatan").toString() + " ("
|
||||
+ Double.parseDouble(d.get("persenSayatan").toString()) + "%)");
|
||||
});
|
||||
List<MapProdukPaket> paketList = mapProdukPaketDao.findAll();
|
||||
List<Integer> allProdukEntriId = paketList.stream().map(MapProdukPaket::getProdukEntriId)
|
||||
.collect(Collectors.toList());
|
||||
@ -1736,6 +1730,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
: byDetailTarifNonKelas.get().getHargaSatuan()));
|
||||
}
|
||||
});
|
||||
listData.forEach(d -> {
|
||||
RemunHargaJasa hargaJasa = hargaJasaFixedPay(d);
|
||||
d.put("hargaJasa", hargaJasa.getNilai());
|
||||
d.put("keterangan", hargaJasa.getKeterangan());
|
||||
});
|
||||
return listData;
|
||||
}
|
||||
|
||||
@ -1866,12 +1865,6 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> transformPelayananKepalaPaketFixedPay(List<Map<String, Object>> listData) {
|
||||
listData.forEach(d -> {
|
||||
if (CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))
|
||||
&& Integer.parseInt(d.get("urutanSayatan").toString()) != 1)
|
||||
d.put("keterangan", "Diskon Sayatan ke-" + d.get("urutanSayatan").toString() + " ("
|
||||
+ Double.parseDouble(d.get("persenSayatan").toString()) + "%)");
|
||||
});
|
||||
listData.forEach(d -> {
|
||||
double hargaJasa = Double.parseDouble(d.get("hargaJasaD").toString())
|
||||
+ Double.parseDouble(d.get("hargaJasaAs").toString())
|
||||
@ -1881,6 +1874,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
d.put("hargaJasa", hargaJasa);
|
||||
d.put("isBatalPaket", false);
|
||||
});
|
||||
listData.forEach(d -> {
|
||||
RemunHargaJasa hargaJasa = hargaJasaFixedPay(d);
|
||||
d.put("hargaJasa", hargaJasa.getNilai());
|
||||
d.put("keterangan", hargaJasa.getKeterangan());
|
||||
});
|
||||
return listData;
|
||||
}
|
||||
|
||||
@ -3300,4 +3298,87 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
private RemunHargaJasa hargaJasaFixedPay(Map<String, Object> d) {
|
||||
String keterangan = "";
|
||||
RemunHargaJasa.RemunHargaJasaBuilder builder = RemunHargaJasa.builder();
|
||||
if (KLINIK_KARYAWAN.equals(d.get("idRuangan")) || KLINIK_GIGI_KARYAWAN.equals(d.get("idRuangan"))) {
|
||||
builder.nilai(0.0);
|
||||
builder.keterangan("Diskon Klinik Karyawan (100%)");
|
||||
return builder.build();
|
||||
}
|
||||
double hargaJasa = Double.parseDouble(d.get("hargaJasa").toString());
|
||||
double hargaDiskon = Double.parseDouble(d.get("hargaDiskon").toString());
|
||||
double persenDiskonPegawai = Double.parseDouble(d.get("persenDiskonPegawai").toString());
|
||||
double persenDiskonJasa = 0.0;
|
||||
if (DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")) && CommonUtil.isNotNullOrEmpty(d.get("persenDiskonD"))) {
|
||||
persenDiskonJasa = Double.parseDouble(d.get("persenDiskonD").toString());
|
||||
} else if (ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))
|
||||
&& CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAs"))) {
|
||||
persenDiskonJasa = Double.parseDouble(d.get("persenDiskonAs").toString());
|
||||
} else if (DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))
|
||||
&& CommonUtil.isNotNullOrEmpty(d.get("persenDiskonAn"))) {
|
||||
persenDiskonJasa = Double.parseDouble(d.get("persenDiskonAn").toString());
|
||||
}
|
||||
if (Boolean.parseBoolean(d.get("isSelisihPaket").toString())) {
|
||||
builder.nilai(hargaJasa - hargaDiskon);
|
||||
} else {
|
||||
builder.nilai(hargaJasa * (1 - persenDiskonPegawai / 100) * (1 - persenDiskonJasa / 100));
|
||||
}
|
||||
if (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && CommonUtil.isNotNullOrEmpty("urutanSayatan")
|
||||
&& Integer.parseInt(d.get("urutanSayatan").toString()) != 1)
|
||||
keterangan = keterangan + "Diskon Sayatan ke-" + d.get("urutanSayatan").toString() + " ("
|
||||
+ Double.parseDouble(d.get("persenSayatan").toString() + "%");
|
||||
if (Boolean.parseBoolean(d.get("isSelisihPaket").toString())) {
|
||||
if (persenDiskonPegawai > 0.0 && persenDiskonJasa > 0.0) {
|
||||
if (keterangan.isEmpty()) {
|
||||
builder.keterangan("Selisih Paket + Diskon Pegawai (" + persenDiskonPegawai
|
||||
+ "%) + Diskon Jasa Medis Dokter (" + persenDiskonJasa + "%)");
|
||||
} else {
|
||||
builder.keterangan(keterangan + " + Selisih Paket + Diskon Pegawai (" + persenDiskonPegawai
|
||||
+ "%) + Diskon Jasa Medis Dokter (" + persenDiskonJasa + "%)");
|
||||
}
|
||||
} else if (persenDiskonPegawai > 0.0 && persenDiskonJasa <= 0.0) {
|
||||
if (keterangan.isEmpty()) {
|
||||
builder.keterangan("Selisih Paket + Diskon Pegawai (" + persenDiskonPegawai + "%)");
|
||||
} else {
|
||||
builder.keterangan(keterangan + " + Selisih Paket + Diskon Pegawai (" + persenDiskonPegawai + "%)");
|
||||
}
|
||||
} else if (persenDiskonPegawai <= 0.0 && persenDiskonJasa > 0.0) {
|
||||
if (keterangan.isEmpty()) {
|
||||
builder.keterangan("Selisih Paket + Diskon Jasa Medis Dokter (" + persenDiskonJasa + "%)");
|
||||
} else {
|
||||
builder.keterangan(
|
||||
keterangan + " + Selisih Paket + Diskon Jasa Medis Dokter (" + persenDiskonJasa + "%)");
|
||||
}
|
||||
} else {
|
||||
builder.keterangan(keterangan);
|
||||
}
|
||||
} else {
|
||||
if (persenDiskonPegawai > 0.0 && persenDiskonJasa > 0.0) {
|
||||
if (keterangan.isEmpty()) {
|
||||
builder.keterangan("Diskon Pegawai (" + persenDiskonPegawai + "%) + Diskon Jasa Medis Dokter ("
|
||||
+ persenDiskonJasa + "%)");
|
||||
} else {
|
||||
builder.keterangan(keterangan + " + Diskon Pegawai (" + persenDiskonPegawai
|
||||
+ "%) + Diskon Jasa Medis Dokter (" + persenDiskonJasa + "%)");
|
||||
}
|
||||
} else if (persenDiskonPegawai > 0.0 && persenDiskonJasa <= 0.0) {
|
||||
if (keterangan.isEmpty()) {
|
||||
builder.keterangan("Diskon Pegawai (" + persenDiskonPegawai + "%)");
|
||||
} else {
|
||||
builder.keterangan(keterangan + " + Diskon Pegawai (" + persenDiskonPegawai + "%)");
|
||||
}
|
||||
} else if (persenDiskonPegawai <= 0.0 && persenDiskonJasa > 0.0) {
|
||||
if (keterangan.isEmpty()) {
|
||||
builder.keterangan("Diskon Jasa Medis Dokter (" + persenDiskonJasa + "%)");
|
||||
} else {
|
||||
builder.keterangan(keterangan + " + Diskon Jasa Medis Dokter (" + persenDiskonJasa + "%)");
|
||||
}
|
||||
} else {
|
||||
builder.keterangan(keterangan);
|
||||
}
|
||||
}
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user