Update PelayananPasienServiceImpl.java

Perbaikan split jumlah pelayanan dan simpan ke database
This commit is contained in:
Salman Manoe 2023-08-25 16:20:33 +07:00
parent 20b38c760f
commit 691ce8418f

View File

@ -2221,6 +2221,23 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
throw new ServiceVOException("Tidak memiliki akses diskon total");
}
if (CommonUtil.isNotNullOrEmpty(kodeVoucher)) {
diskonPaket(kodeVoucher, dtoList);
} else {
List<String> listNoRec = dtoList.stream().map(TagihanPendaftaranDto::getNoRec).collect(Collectors.toList());
List<PelayananPasien> listPelayanan = pelayananPasienDao.findAll(listNoRec);
listPelayanan.forEach(p -> {
Optional<TagihanPendaftaranDto> dto = dtoList.stream().filter(d -> d.getNoRec().equals(p.getNoRec()))
.findFirst();
dto.ifPresent(tagihanPendaftaranDto -> {
p.setHargaDiscount(tagihanPendaftaranDto.getHargaDiskon());
p.setJasa(tagihanPendaftaranDto.getHargaJasa());
});
});
pelayananPasienDao.save(listPelayanan);
}
}
private void diskonPaket(String kodeVoucher, List<TagihanPendaftaranDto> dtoList) {
VoucherPaket voucher = getVoucher(kodeVoucher, false);
List<String> norecPelayananChecked = dtoList.stream().filter(TagihanPendaftaranDto::getIsPaket)
.map(TagihanPendaftaranDto::getNoRec).collect(Collectors.toList());
@ -2322,7 +2339,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
splitDetailPelayanan = copyPelayananDetailSplitQty(detailOrigin);
List<PelayananPasienDetail> originDetail = splitDetailPelayanan.stream()
.filter(d -> d.getNoRec() != null).collect(Collectors.toList());
detailOrigin.addAll(originDetail);
detailPelayanan.addAll(originDetail);
}
pelayanan.add(origin.get());
}
@ -2347,19 +2364,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
pelayananPasienDetailDao.save(detailPelayanan);
}
}
} else {
List<String> listNoRec = dtoList.stream().map(TagihanPendaftaranDto::getNoRec).collect(Collectors.toList());
List<PelayananPasien> listPelayanan = pelayananPasienDao.findAll(listNoRec);
listPelayanan.forEach(p -> {
Optional<TagihanPendaftaranDto> dto = dtoList.stream().filter(d -> d.getNoRec().equals(p.getNoRec()))
.findFirst();
dto.ifPresent(tagihanPendaftaranDto -> {
p.setHargaDiscount(tagihanPendaftaranDto.getHargaDiskon());
p.setJasa(tagihanPendaftaranDto.getHargaJasa());
});
});
pelayananPasienDao.save(listPelayanan);
}
}
@Override