Update PelayananPasienServiceImpl.java

Pemasangan validasi pemisahan layanan harus karena diskon paket
This commit is contained in:
Salman Manoe 2023-09-01 13:10:37 +07:00
parent 70ae4b1f5d
commit 83560eed53

View File

@ -2270,14 +2270,11 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
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());
if (CommonUtil.isNullOrEmpty(norecPelayananChecked))
norecPelayananChecked = dtoList.stream().map(TagihanPendaftaranDto::getNoRec).collect(Collectors.toList());
List<PelayananPasien> pelayananChecked;
List<String> norecPelayanan = dtoList.stream().map(TagihanPendaftaranDto::getNoRec)
.collect(Collectors.toList());
List<PelayananPasien> byNorecPelayanan = pelayananPasienDao.findAll(norecPelayanan);
{
pelayananChecked = pelayananPasienDao.findAll(norecPelayananChecked);
Optional<PasienDaftar> pendaftaran = pelayananChecked.stream().map(p -> p.getPasien().getPasienDaftar())
Optional<PasienDaftar> pendaftaran = byNorecPelayanan.stream().map(p -> p.getPasien().getPasienDaftar())
.findFirst();
pendaftaran.ifPresent(p -> {
Integer pasienId = p.getPasien().getId();
@ -2346,7 +2343,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
{
List<PelayananPasien> pelayanan = new ArrayList<>();
dtoList.forEach(dto -> {
Optional<PelayananPasien> pelayananFixedQty = pelayananChecked.stream()
Optional<PelayananPasien> pelayananFixedQty = byNorecPelayanan.stream()
.filter(p -> p.getNoRec().equals(dto.getNoRec()))
.filter(p -> p.getJumlah().equals(dto.getJumlah())).findFirst();
pelayananFixedQty.ifPresent(p -> {
@ -2368,10 +2365,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
List<RacikanDetail> racikanDetail = new ArrayList<>();
List<MapPelayananPasienPetugasToPegawai> mapPetugasPegawai = new ArrayList<>();
dtoList.forEach(dto -> {
Optional<PelayananPasien> pelayananReducedQty = pelayananChecked.stream()
Optional<PelayananPasien> pelayananReducedQty = byNorecPelayanan.stream()
.filter(p -> p.getNoRec().equals(dto.getNoRec()))
.filter(p -> !p.getJumlah().equals(dto.getJumlah())).findFirst();
pelayananReducedQty.ifPresent(p -> {
if (!dto.getIsPaket())
throw new ServiceVOException("Pemisahan layanan " + dto.getNamaProduk()
+ " tanpa tanda diskon tidak dapat dilakukan!");
List<PelayananPasienDetail> splitDetailPelayanan = new ArrayList<>();
List<PelayananPasienPetugas> splitPetugasPelayanan = new ArrayList<>();
List<PelayananPasienTidakTerklaim> splitPelayananTidakTerklaim = new ArrayList<>();