diff --git a/SpringTkApap/src/main/java/spring/TK/SpringTkApap/user/controller/DokterRestController.java b/SpringTkApap/src/main/java/spring/TK/SpringTkApap/user/controller/DokterRestController.java index 3f7f265c3344377f8f41ec36a0870817e7e5e2dc..5ffd7d0117e808d537db11de680c441a6ce94299 100644 --- a/SpringTkApap/src/main/java/spring/TK/SpringTkApap/user/controller/DokterRestController.java +++ b/SpringTkApap/src/main/java/spring/TK/SpringTkApap/user/controller/DokterRestController.java @@ -1,4 +1,4 @@ -package spring.TK.SpringTkApap.user.controller; +package spring.tk.springtkapap.user.controller; import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; @@ -8,9 +8,9 @@ import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import spring.TK.SpringTkApap.appointment.AppointmentRestController; -import spring.TK.SpringTkApap.user.model.DokterDTO; -import spring.TK.SpringTkApap.user.service.DokterService; +import spring.tk.springtkapap.appointment.AppointmentRestController; +import spring.tk.springtkapap.user.model.DokterDTO; +import spring.tk.springtkapap.user.service.DokterService; import java.util.List; diff --git a/SpringTkApap/src/main/java/spring/tk/springtkapap/appointment/AppointmentServiceImpl.java b/SpringTkApap/src/main/java/spring/tk/springtkapap/appointment/AppointmentServiceImpl.java index a95004bfd6fd3c8bdd5aaaefb7431548cc88106f..fe12341954572a67dba668e4a405629c6f02d2e1 100644 --- a/SpringTkApap/src/main/java/spring/tk/springtkapap/appointment/AppointmentServiceImpl.java +++ b/SpringTkApap/src/main/java/spring/tk/springtkapap/appointment/AppointmentServiceImpl.java @@ -1,7 +1,7 @@ package spring.tk.springtkapap.appointment; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service;<< +import org.springframework.stereotype.Service; import spring.tk.springtkapap.appointment.model.AppointmentModel; import spring.tk.springtkapap.user.model.DokterModel; diff --git a/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/CreateTagihanDTO.java b/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/CreateTagihanDTO.java index e4a86d112a50502af56f0304555a414127cee903..b917b3f3713924053da4e08a6c9f678d66822865 100644 --- a/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/CreateTagihanDTO.java +++ b/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/CreateTagihanDTO.java @@ -7,7 +7,6 @@ import lombok.NoArgsConstructor; import lombok.Setter; import java.io.Serializable; -import java.time.LocalDateTime; @Setter @Getter diff --git a/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/TagihanDTO.java b/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/TagihanDTO.java index d82f68bee6e6cad1cbaf055805bb73f0789f5f10..8590c8d03c038ca699ce74a1110a64d2cce2dc87 100644 --- a/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/TagihanDTO.java +++ b/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/TagihanDTO.java @@ -6,7 +6,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; -import java.time.LocalDateTime; + @Setter @Getter diff --git a/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/TagihanServiceImpl.java b/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/TagihanServiceImpl.java index 30d4c1345039c905f36d093113bdabf37f33ad33..53526634be817265f1dbddacc66d7a77b6a700a6 100644 --- a/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/TagihanServiceImpl.java +++ b/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/TagihanServiceImpl.java @@ -29,7 +29,6 @@ public class TagihanServiceImpl implements TagihanService{ int kode = + (int) (tagihanDB.count() + 1); var strKode = Integer.toString(kode); tagihan.setKode("BILL-" + strKode); -// List<ObatModel> listObat = appointment.getListResep().g tagihan.setAppointment(appointment); tagihanDB.save(tagihan); appointment.setListTagihan(new ArrayList<>()); diff --git a/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/controller/TagihanRestController.java b/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/controller/TagihanRestController.java index a829542c810b16334bb059df7f4e8c97452d211f..1529de89680d5326350d0a4cf2ac813edf39740f 100644 --- a/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/controller/TagihanRestController.java +++ b/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/controller/TagihanRestController.java @@ -1,18 +1,14 @@ package spring.tk.springtkapap.tagihan.controller; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.server.ResponseStatusException; -import spring.tk.springtkapap.appointment.model.AppointmentModel; -import spring.tk.springtkapap.appointment.model.CreateAppointmentDTO; -import spring.tk.springtkapap.appointment.model.DetailDTO; -import spring.tk.springtkapap.appointment.model.GetAptDTO; import spring.tk.springtkapap.tagihan.CreateTagihanDTO; import spring.tk.springtkapap.tagihan.TagihanDTO; -import spring.tk.springtkapap.tagihan.TagihanModel; import spring.tk.springtkapap.tagihan.service.TagihanServiceRest; import spring.tk.springtkapap.user.model.PasienModel; import spring.tk.springtkapap.user.service.PasienService; @@ -23,6 +19,7 @@ import java.util.List; @RestController @CrossOrigin(origins = "*") @RequestMapping("/api/tagihan") +@Slf4j public class TagihanRestController { @Autowired private PasienService pasienService; @@ -33,27 +30,33 @@ public class TagihanRestController { @GetMapping(value = "/all") public List<TagihanDTO> getAllTagihan(Principal principal) { PasienModel pasien = pasienService.getPasienByUsername(principal.getName()); + log.info("berhasil get semua tagihan"); return tagihanServiceRest.listTagihan(pasien); } @PostMapping(value = "/bayar") public ResponseEntity<String> createAppointmentSubmit(@RequestBody CreateTagihanDTO tagihan, BindingResult bindingResult, Principal principal) { if (bindingResult.hasFieldErrors()) { + log.warn("terdapat field yang tidak valid"); throw new ResponseStatusException( HttpStatus.BAD_REQUEST, "Request body has invalid type or missing field." ); } else { - TagihanModel newAppointment = tagihanServiceRest.bayar(tagihan.getKode(),pasienService.getPasienByUsername(principal.getName())); - if (newAppointment == null) { - throw new ResponseStatusException( - HttpStatus.INTERNAL_SERVER_ERROR, "saldo tidak cukup." - ); + int newTagihan = tagihanServiceRest.bayar(tagihan.getKode(),pasienService.getPasienByUsername(principal.getName())); + if (newTagihan == 0) { + log.warn("saldo pasien tidak cukup"); + return ResponseEntity.internalServerError().body("saldo tidak cukup"); } + else if(newTagihan == -1){ + log.warn("tagihan sudah berstatus lunas"); + return ResponseEntity.internalServerError().body("sudah lunas sebelumnya"); + } + log.info("berhasil melakukan pembayaran"); return ResponseEntity.ok("pembayaran berhasil"); } } @GetMapping(value = "/detail/{kodeApt}") public TagihanDTO getDetailApt(@PathVariable(name = "kodeApt") String kode) { - System.out.println(kode); + log.info("berhasil get tagihan"); return tagihanServiceRest.getTagihan(kode); } } diff --git a/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/service/TagihanServiceRest.java b/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/service/TagihanServiceRest.java index f0e3880779b33f6f04adf2213d0d3713451b881b..2e2a9c427e21939e6ca5a21bd8e1398e5758c5a8 100644 --- a/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/service/TagihanServiceRest.java +++ b/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/service/TagihanServiceRest.java @@ -1,7 +1,7 @@ package spring.tk.springtkapap.tagihan.service; -import spring.tk.springtkapap.tagihan.TagihanModel; + import spring.tk.springtkapap.tagihan.TagihanDTO; import spring.tk.springtkapap.user.model.PasienModel; @@ -11,5 +11,5 @@ public interface TagihanServiceRest { List<TagihanDTO> listTagihan(PasienModel pasien); TagihanDTO getTagihan(String kode); - TagihanModel bayar(String kode,PasienModel pasien); + int bayar(String kode,PasienModel pasien); } diff --git a/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/service/TagihanServiceRestImpl.java b/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/service/TagihanServiceRestImpl.java index 63fea8d8950f27d25b6bd2d983bac16de4d647bf..b86b3c68f9685b65612814fae0fb8661d1c4adb0 100644 --- a/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/service/TagihanServiceRestImpl.java +++ b/SpringTkApap/src/main/java/spring/tk/springtkapap/tagihan/service/TagihanServiceRestImpl.java @@ -2,17 +2,14 @@ package spring.tk.springtkapap.tagihan.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import spring.tk.springtkapap.appointment.AppointmentService; import spring.tk.springtkapap.appointment.model.AppointmentModel; -import spring.tk.springtkapap.appointment.model.DetailDTO; -import spring.tk.springtkapap.appointment.model.GetAptDTO; import spring.tk.springtkapap.tagihan.TagihanDB; import spring.tk.springtkapap.tagihan.TagihanDTO; import spring.tk.springtkapap.tagihan.TagihanModel; import spring.tk.springtkapap.user.model.PasienModel; import javax.transaction.Transactional; -import javax.validation.constraints.Null; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.NoSuchElementException; @@ -32,9 +29,7 @@ public class TagihanServiceRestImpl implements TagihanServiceRest { for (AppointmentModel appointment : listAppointment) { if (appointment.getListTagihan().get(0) != null) { TagihanModel tagihan = appointment.getListTagihan().get(0); - System.out.println(tagihan.getKode()); TagihanDTO dto = new TagihanDTO(); - System.out.println(tagihan.getKode()); dto.setTanggalTerbuat(tagihan.getTanggalTerbuat().toString()); if(tagihan.getIsPaid()) { dto.setTanggalBayar(tagihan.getTanggalBayar().toString()); @@ -55,7 +50,6 @@ public class TagihanServiceRestImpl implements TagihanServiceRest { } @Override public TagihanDTO getTagihan(String kode) { - System.out.println(kode); Optional<TagihanModel> tagihan = tagihanDB.findByKode(kode); TagihanModel tag; if (tagihan.isPresent()) { @@ -74,11 +68,28 @@ public class TagihanServiceRestImpl implements TagihanServiceRest { newTagihan.setTanggalTerbuat(tag.getTanggalTerbuat().toString()); newTagihan.setIsPaid(done); newTagihan.setDokter(tag.getAppointment().getDokter().getNama()); + if(tag.getTanggalBayar() != null){ + newTagihan.setTanggalBayar(tag.getTanggalBayar().toString()); + } + else { + newTagihan.setTanggalBayar("-"); + } + newTagihan.setJumlahTagihan(tag.getJumlahTagihan().toString()); return newTagihan; } @Override - public TagihanModel bayar(String kode,PasienModel pasien){ + public int bayar(String kode,PasienModel pasien){ Optional<TagihanModel> tagihan = tagihanDB.findByKode(kode); - return tagihan.orElse(null); + TagihanModel tagihan1 = tagihan.get(); + if(tagihan1.getIsPaid()){ + return -1; + } + if((pasien.getSaldo() - tagihan1.getJumlahTagihan()) < 0){ + return 0; + } + pasien.setSaldo(pasien.getSaldo() - tagihan1.getJumlahTagihan()); + tagihan1.setIsPaid(true); + tagihan1.setTanggalBayar(LocalDateTime.now()); + return 1; } } diff --git a/tk_apap_flutter/lib/pages/detailTagihan.dart b/tk_apap_flutter/lib/pages/detailTagihan.dart index bdc54d2563cd5c5dc7b1b42593648986333e5082..28849d12aa8623412e411a9906566960a60da48f 100644 --- a/tk_apap_flutter/lib/pages/detailTagihan.dart +++ b/tk_apap_flutter/lib/pages/detailTagihan.dart @@ -129,23 +129,9 @@ class DetailTagihan extends StatelessWidget { ], ), ); - } else { - showDialog<String>( - context: context, - builder: (BuildContext context) => AlertDialog( - title: Text(response.reasonPhrase), - actions: <Widget>[ - TextButton( - onPressed: () => - Navigator.pop(context, 'OK'), - child: Text('${response.statusCode}'), - ) - ], - ), - ); } }, - ), + child: Text('bayar'),), ], ), ),