Update PelayananPasienServiceImpl.java

Perbaikan service reset klaim diskon
This commit is contained in:
salmanoe 2022-06-14 08:33:48 +07:00
parent c38df4ac9d
commit e1900ae6c2

View File

@ -303,58 +303,23 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
public String resetKlaimDiskon(String noRegistrasi) {
String result = "";
/*
* Update Pelayanan Pasien
*/
List<PelayananPasienDetail> detailLayanan = pelayananPasienDao.findDetail(noRegistrasi);
List<PelayananPasien> layanan = pelayananPasienDao.findAll(noRegistrasi);
double jasaObat = 800.00;
for (PelayananPasien pp : layanan) {
/*
* Get diskon jasamedis
*/
double diskonJasamedis = 0.0;
for (PelayananPasienDetail ppd : detailLayanan) {
if (pp.getNoRec().equals(ppd.getPelayananPasienId())
&& CommonUtil.isNotNullOrEmpty(ppd.getHargaDiscount()) && ppd.getHargaDiscount() > 0.0) {
diskonJasamedis += ppd.getHargaDiscount();
}
}
/*
* Set diskon layanan
*/
if (CommonUtil.isNotNullOrEmpty(pp.getHargaDiscount()) && pp.getHargaDiscount() > 0.0) {
if (diskonJasamedis > 0.0 && pp.getHargaDiscount() >= diskonJasamedis) {
pp.setHargaDiscount(diskonJasamedis);
if (CommonUtil.isNotNullOrEmpty(pp.getStrukResepId())) {
pp.setJasa(jasaObat);
}
} else {
pp.setHargaDiscount(0.0);
}
}
}
/*
* Update Flag Jenis Diskon Pasien Daftar
*/
List<PasienDaftar> pendaftaran = pasienDaftarDao.findAll(noRegistrasi);
for (PasienDaftar pd : pendaftaran) {
pd.setDiskonPegawai(0);
}
boolean exception = false;
for (PasienDaftar pd : pendaftaran) {
if (CommonUtil.isNotNullOrEmpty(pd.getStrukPelayananId())
&& CommonUtil.isNotNullOrEmpty(pd.getStrukBuktiPenerimaanId())) {
if (CommonUtil.isNotNullOrEmpty(pd.getStrukPelayanan())
&& CommonUtil.isNotNullOrEmpty(pd.getStrukPelayanan().getNoRec())
&& CommonUtil.isNotNullOrEmpty(pd.getStrukBuktiPenerimaan())
&& CommonUtil.isNotNullOrEmpty(pd.getStrukBuktiPenerimaan().getNoRec())) {
exception = true;
result = "Batal diskon gagal, tagihan layanan sudah lunas!";
break;
} else if (CommonUtil.isNotNullOrEmpty(pd.getStrukPelayananId())
&& CommonUtil.isNullOrEmpty(pd.getStrukBuktiPenerimaanId())) {
} else if (CommonUtil.isNotNullOrEmpty(pd.getStrukPelayanan())
&& CommonUtil.isNotNullOrEmpty(pd.getStrukPelayanan().getNoRec())
&& CommonUtil.isNullOrEmpty(pd.getStrukBuktiPenerimaan())) {
exception = true;
result = "Batal diskon gagal, pelayanan sudah terverifikasi!";
@ -368,7 +333,48 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
}
if (!exception) {
/*
* Update Pelayanan Pasien
*/
double jasaObat = 800.00;
for (PelayananPasien pp : layanan) {
/*
* Get diskon jasamedis
*/
double diskonJasamedis = 0.0;
for (PelayananPasienDetail ppd : detailLayanan) {
if (pp.getNoRec().equals(ppd.getPelayananPasien().getNoRec())
&& CommonUtil.isNotNullOrEmpty(ppd.getHargaDiscount()) && ppd.getHargaDiscount() > 0.0) {
diskonJasamedis += ppd.getHargaDiscount();
}
}
if (CommonUtil.isNotNullOrEmpty(pp.getHargaDiscount()) && pp.getHargaDiscount() > 0.0) {
/*
* Set diskon layanan
*/
if (diskonJasamedis > 0.0 && pp.getHargaDiscount() >= diskonJasamedis) {
pp.setHargaDiscount(diskonJasamedis);
} else {
pp.setHargaDiscount(0.0);
}
/*
* Set diskon obat
*/
if (CommonUtil.isNotNullOrEmpty(pp.getStrukResep())
&& CommonUtil.isNotNullOrEmpty(pp.getStrukResep().getNoRec())) {
pp.setJasa(jasaObat);
}
}
}
pelayananPasienDao.save(layanan);
/*
* Update Flag Jenis Diskon Pasien Daftar
*/
for (PasienDaftar pd : pendaftaran) {
pd.setDiskonPegawai(0);
}
pasienDaftarDao.save(pendaftaran);
result = "Batal diskon berhasil!";