diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java index 02d7e852..06b7636d 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java @@ -2269,16 +2269,31 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel VoucherPaket voucher = getVoucher(kodeVoucher, false); List norecPelayananChecked = dtoList.stream().filter(TagihanPendaftaranDto::getIsPaket) .map(TagihanPendaftaranDto::getNoRec).collect(Collectors.toList()); - List pelayananChecked = pelayananPasienDao.findAll(norecPelayananChecked); - Optional pendaftaran = pelayananChecked.stream().map(p -> p.getPasien().getPasienDaftar()) - .findFirst(); - pendaftaran.ifPresent(p -> { - Integer pasienId = p.getPasien().getId(); - if (!voucher.getPasienId().equals(pasienId)) - throw new ServiceVOException("Kode voucher tidak sesuai dengan pasien yang diperuntukkan"); - p.setVoucherPaket(voucher); - pasienDaftarDao.save(p); - }); + List pelayananChecked; + if (CommonUtil.isNotNullOrEmpty(norecPelayananChecked)) { + pelayananChecked = pelayananPasienDao.findAll(norecPelayananChecked); + Optional pendaftaran = pelayananChecked.stream().map(p -> p.getPasien().getPasienDaftar()) + .findFirst(); + pendaftaran.ifPresent(p -> { + Integer pasienId = p.getPasien().getId(); + if (!voucher.getPasienId().equals(pasienId)) + throw new ServiceVOException("Kode voucher tidak sesuai dengan pasien yang diperuntukkan"); + p.setVoucherPaket(voucher); + pasienDaftarDao.save(p); + }); + } else { + norecPelayananChecked = dtoList.stream().map(TagihanPendaftaranDto::getNoRec).collect(Collectors.toList()); + pelayananChecked = pelayananPasienDao.findAll(norecPelayananChecked); + Optional pendaftaran = pelayananChecked.stream().map(p -> p.getPasien().getPasienDaftar()) + .findFirst(); + pendaftaran.ifPresent(p -> { + Integer pasienId = p.getPasien().getId(); + if (!voucher.getPasienId().equals(pasienId)) + throw new ServiceVOException("Kode voucher tidak sesuai dengan pasien yang diperuntukkan"); + p.setVoucherPaket(voucher); + pasienDaftarDao.save(p); + }); + } { List mappingProdukPaket = mapProdukPaketToProdukDao .findAllByPaketId(voucher.getPaket().getId()); @@ -2416,7 +2431,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } Optional duplicate = splitPelayanan.stream().filter(cp -> cp.getNoRec() == null) .findFirst(); - if (duplicate.isPresent()) { + if (duplicate.isPresent() && origin.isPresent()) { duplicate.get().setJumlah(duplicate.get().getJumlah() - origin.get().getJumlah()); duplicate.get().setIsPaket(false); duplicate.get().setVoucherPaket(voucher); diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/VoucherPaket.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/VoucherPaket.java index b8d6e30c..5ec2ca28 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/VoucherPaket.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/VoucherPaket.java @@ -66,4 +66,6 @@ public class VoucherPaket extends BaseTransaction { private Date tglKedaluwarsa; private Boolean isBatal; + + private Boolean isSelesai; } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/VoucherPaketVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/VoucherPaketVO.java index 2cecfd15..4193cb3a 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/VoucherPaketVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/VoucherPaketVO.java @@ -42,4 +42,6 @@ public class VoucherPaketVO extends BaseTransactionVO { private Date tglKedaluwarsa; private Boolean isBatal; + + private Boolean isSelesai; } \ No newline at end of file