From 6a849250346e2efbb45ed09dc6ceef81bf6645c0 Mon Sep 17 00:00:00 2001
From: jay pratap singh <jaypratap.singh@tarento.com>
Date: Thu, 24 Aug 2023 04:19:16 +0530
Subject: [PATCH] changes for verified and rejected case

---
 .../controller/StudentController.java              | 10 +++-------
 .../upsmf/examsAndAdmissions/model/Student.java    |  1 +
 .../examsAndAdmissions/model/dto/StudentDto.java   |  1 +
 .../examsAndAdmissions/service/StudentService.java | 14 ++++++++++++++
 4 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/upsmf-entity/src/main/java/com/tarento/upsmf/examsAndAdmissions/controller/StudentController.java b/upsmf-entity/src/main/java/com/tarento/upsmf/examsAndAdmissions/controller/StudentController.java
index 0283a43..2a2c797 100644
--- a/upsmf-entity/src/main/java/com/tarento/upsmf/examsAndAdmissions/controller/StudentController.java
+++ b/upsmf-entity/src/main/java/com/tarento/upsmf/examsAndAdmissions/controller/StudentController.java
@@ -91,13 +91,9 @@ public class StudentController {
     }
 
     @PutMapping("/{studentId}/verify")
-    public ResponseEntity<Student> verifyStudent(@PathVariable Long studentId, @RequestParam("status") VerificationStatus status, @RequestParam("remarks") String remarks,@RequestParam("verificationDate") LocalDate verificationDate) {
-        Student student = studentService.findById(studentId);
-        student.setVerificationStatus(status);
-        student.setAdminRemarks(remarks);
-        student.setVerificationDate(verificationDate);
-        studentService.save(student);
-        return ResponseEntity.ok(student);
+    public ResponseEntity<Student> verifyStudent(@PathVariable Long studentId, @RequestParam("status") VerificationStatus status, @RequestParam("remarks") String remarks, @RequestParam("verificationDate") LocalDate verificationDate) {
+        Student updatedStudent = studentService.verifyStudent(studentId, status, remarks, verificationDate);
+        return ResponseEntity.ok(updatedStudent);
     }
     @GetMapping("/pendingVerification")
     public ResponseEntity<List<Student>> getStudentsPendingVerification() {
diff --git a/upsmf-entity/src/main/java/com/tarento/upsmf/examsAndAdmissions/model/Student.java b/upsmf-entity/src/main/java/com/tarento/upsmf/examsAndAdmissions/model/Student.java
index 4a25628..9a07595 100644
--- a/upsmf-entity/src/main/java/com/tarento/upsmf/examsAndAdmissions/model/Student.java
+++ b/upsmf-entity/src/main/java/com/tarento/upsmf/examsAndAdmissions/model/Student.java
@@ -57,6 +57,7 @@ public class Student {
     private String adminRemarks;
     private LocalDate enrollmentDate;
     private LocalDate verificationDate;
+    private boolean requiresRevision;
 
     @ManyToOne
     @JoinColumn(name = "course_id")
diff --git a/upsmf-entity/src/main/java/com/tarento/upsmf/examsAndAdmissions/model/dto/StudentDto.java b/upsmf-entity/src/main/java/com/tarento/upsmf/examsAndAdmissions/model/dto/StudentDto.java
index bb21d8c..f74c9ae 100644
--- a/upsmf-entity/src/main/java/com/tarento/upsmf/examsAndAdmissions/model/dto/StudentDto.java
+++ b/upsmf-entity/src/main/java/com/tarento/upsmf/examsAndAdmissions/model/dto/StudentDto.java
@@ -43,6 +43,7 @@ public class StudentDto {
     private String adminRemarks;
     private LocalDate enrollmentDate;
     private LocalDate verificationDate;
+    private boolean requiresRevision;
 
     private MultipartFile highSchoolMarksheet;
     private MultipartFile highSchoolCertificate;
diff --git a/upsmf-entity/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/StudentService.java b/upsmf-entity/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/StudentService.java
index e42c308..a845ec9 100644
--- a/upsmf-entity/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/StudentService.java
+++ b/upsmf-entity/src/main/java/com/tarento/upsmf/examsAndAdmissions/service/StudentService.java
@@ -189,6 +189,20 @@ public class StudentService {
         student.setVerificationStatus(status);
         return studentRepository.save(student);
     }
+    public Student verifyStudent(Long studentId, VerificationStatus status, String remarks, LocalDate verificationDate) {
+        Student student = this.findById(studentId);
+        student.setVerificationStatus(status);
+        student.setAdminRemarks(remarks);
+        student.setVerificationDate(verificationDate);
+
+        if (status == VerificationStatus.VERIFIED) {
+            String enrollmentNumber = "EN" + LocalDate.now().getYear() + student.getCenterCode() + student.getId();
+            student.setProvisionalEnrollmentNumber(enrollmentNumber);
+        } else if (status == VerificationStatus.REJECTED) {
+            student.setRequiresRevision(true);
+        }
+        return this.save(student);
+    }
     public List<Student> findByVerificationStatus(VerificationStatus status) {
         return studentRepository.findByVerificationStatus(status);
     }
-- 
GitLab