Implements the school fees gestion for a student and a payment table containing a history of all the financial transactions of the system
This commit is contained in:
		| @ -13,6 +13,7 @@ import ovh.herisson.Clyde.Tables.Role; | ||||
| import java.util.*; | ||||
|  | ||||
| @RestController | ||||
| @CrossOrigin(originPatterns = "*", allowCredentials = "true") | ||||
| public class MinervalController { | ||||
|     private final AuthenticatorService authServ; | ||||
|     private final MinervalRepository mr; | ||||
| @ -42,4 +43,14 @@ public class MinervalController { | ||||
|         Minerval m = mlist.get(0); | ||||
|         return new ResponseEntity<>(m, HttpStatus.OK); | ||||
|     } | ||||
|  | ||||
|     @PatchMapping("/minerval") | ||||
|     public ResponseEntity<Object> updateMinerval(@RequestBody Minerval updatedMinerval){ | ||||
|         Minerval minerval = mr.findById(updatedMinerval.getId()); | ||||
|  | ||||
|         minerval.setPaidAmount(updatedMinerval.getPaidAmount()); | ||||
|         minerval.setToPay(updatedMinerval.getToPay()); | ||||
|         mr.save(minerval); | ||||
|         return new ResponseEntity<>(HttpStatus.OK); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -2,6 +2,7 @@ package ovh.herisson.Clyde.EndPoints; | ||||
|  | ||||
| import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; | ||||
| import org.springframework.web.bind.annotation.*; | ||||
| import ovh.herisson.Clyde.Repositories.MinervalRepository; | ||||
| import ovh.herisson.Clyde.Repositories.TokenRepository; | ||||
| import ovh.herisson.Clyde.Repositories.UserCurriculumRepository; | ||||
| import ovh.herisson.Clyde.Repositories.UserRepository; | ||||
| @ -29,7 +30,9 @@ public class MockController { | ||||
|  | ||||
|     public final UserCurriculumRepository ucr; | ||||
|  | ||||
|     public MockController(UserRepository userRepo, TokenRepository tokenRepo, TokenService tokenService, CurriculumCourseService CurriculumCourseService, CurriculumService curriculumService, CourseService courseService, InscriptionService inscriptionService, UserCurriculumRepository ucr){ | ||||
|     public final MinervalRepository minervalRepository; | ||||
|  | ||||
|     public MockController(UserRepository userRepo, TokenRepository tokenRepo, TokenService tokenService, CurriculumCourseService CurriculumCourseService, CurriculumService curriculumService, CourseService courseService, InscriptionService inscriptionService, UserCurriculumRepository ucr, MinervalRepository minervalRepository){ | ||||
|         this.tokenRepo = tokenRepo; | ||||
|         this.userRepo = userRepo; | ||||
|         this.tokenService = tokenService; | ||||
| @ -38,6 +41,7 @@ public class MockController { | ||||
|         this.courseService = courseService; | ||||
|         this.inscriptionService = inscriptionService; | ||||
|         this.ucr = ucr; | ||||
|         this.minervalRepository = minervalRepository; | ||||
|     } | ||||
|  | ||||
|     /** Saves an example of each user type by : | ||||
| @ -61,6 +65,8 @@ public class MockController { | ||||
|  | ||||
|         userRepo.saveAll(mockUsers); | ||||
|  | ||||
|         Minerval minerval = new Minerval(joe.getRegNo(), 0, 852, 2023); | ||||
|         minervalRepository.save(minerval); | ||||
|         // Course / Curriculum part | ||||
|  | ||||
|         Curriculum infoBab1 = new Curriculum(1,"info"); | ||||
|  | ||||
| @ -0,0 +1,42 @@ | ||||
| package ovh.herisson.Clyde.EndPoints; | ||||
|  | ||||
|  | ||||
| import org.springframework.http.HttpStatus; | ||||
| import org.springframework.http.ResponseEntity; | ||||
| import org.springframework.web.bind.annotation.*; | ||||
| import ovh.herisson.Clyde.Repositories.PaymentRepository; | ||||
| import ovh.herisson.Clyde.Responses.UnauthorizedResponse; | ||||
| import ovh.herisson.Clyde.Tables.Minerval; | ||||
| import ovh.herisson.Clyde.Tables.Payment; | ||||
| import ovh.herisson.Clyde.Tables.Role; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.Calendar; | ||||
| import java.util.GregorianCalendar; | ||||
|  | ||||
| @RestController | ||||
| @CrossOrigin(originPatterns = "*", allowCredentials = "true") | ||||
| public class PaymentController { | ||||
|  | ||||
|     private final PaymentRepository paymentRepository; | ||||
|  | ||||
|     public PaymentController(PaymentRepository paymentRepository){ | ||||
|         this.paymentRepository = paymentRepository; | ||||
|     } | ||||
|  | ||||
|     //Post a payment record | ||||
|     @PostMapping("/payment") | ||||
|     public ResponseEntity<Object> postPayment(@RequestBody Payment payment){ | ||||
|         paymentRepository.save(payment); | ||||
|         return new ResponseEntity<>(HttpStatus.OK); | ||||
|     } | ||||
|  | ||||
|  | ||||
|     //Get all payment records of a student | ||||
|     @GetMapping("/payment/{studentRegNo}") | ||||
|     public ResponseEntity<ArrayList<Payment>> getPaymentsByUser(@PathVariable long studentRegNo){ | ||||
|         ArrayList<Payment> toReturn = paymentRepository.getPaymentsByStudentRegNo(studentRegNo); | ||||
|         return new ResponseEntity<>(toReturn, HttpStatus.OK); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @ -7,4 +7,6 @@ import java.util.ArrayList; | ||||
|  | ||||
| public interface MinervalRepository extends CrudRepository<Minerval, Long> { | ||||
|     public ArrayList<Minerval> getMinervalsByStudentRegNoOrderByYearDesc(Long studentRegNo); | ||||
|  | ||||
|     public Minerval findById(long id); | ||||
| } | ||||
|  | ||||
| @ -0,0 +1,10 @@ | ||||
| package ovh.herisson.Clyde.Repositories; | ||||
|  | ||||
| import org.springframework.data.repository.CrudRepository; | ||||
| import ovh.herisson.Clyde.Tables.Payment; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
|  | ||||
| public interface PaymentRepository extends CrudRepository<Payment, Long> { | ||||
|     public ArrayList<Payment> getPaymentsByStudentRegNo(long regNo); | ||||
| } | ||||
| @ -2,14 +2,8 @@ package ovh.herisson.Clyde.Services; | ||||
|  | ||||
| import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; | ||||
| import org.springframework.stereotype.Service; | ||||
| import ovh.herisson.Clyde.Repositories.CurriculumRepository; | ||||
| import ovh.herisson.Clyde.Repositories.InscriptionRepository; | ||||
| import ovh.herisson.Clyde.Repositories.UserCurriculumRepository; | ||||
| import ovh.herisson.Clyde.Repositories.UserRepository; | ||||
| import ovh.herisson.Clyde.Tables.InscriptionRequest; | ||||
| import ovh.herisson.Clyde.Tables.RequestState; | ||||
| import ovh.herisson.Clyde.Tables.User; | ||||
| import ovh.herisson.Clyde.Tables.UserCurriculum; | ||||
| import ovh.herisson.Clyde.Repositories.*; | ||||
| import ovh.herisson.Clyde.Tables.*; | ||||
|  | ||||
| @Service | ||||
| public class InscriptionService { | ||||
| @ -22,14 +16,16 @@ public class InscriptionService { | ||||
|  | ||||
|     private final CurriculumRepository curriculumRepo; | ||||
|  | ||||
|     private final MinervalRepository minervalRepository; | ||||
|     private final BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); | ||||
|  | ||||
|  | ||||
|     public InscriptionService(InscriptionRepository inscriptionRepo, UserRepository userRepo, UserCurriculumRepository userCurriculumRepo, CurriculumRepository curriculumRepo){ | ||||
|     public InscriptionService(InscriptionRepository inscriptionRepo, UserRepository userRepo, UserCurriculumRepository userCurriculumRepo, CurriculumRepository curriculumRepo, MinervalRepository minervalRepository){ | ||||
|         this.inscriptionRepo = inscriptionRepo; | ||||
|         this.userRepo = userRepo; | ||||
|         this.userCurriculumRepo = userCurriculumRepo; | ||||
|         this.curriculumRepo = curriculumRepo; | ||||
|         this.minervalRepository = minervalRepository; | ||||
|     } | ||||
|  | ||||
|     public InscriptionRequest save(InscriptionRequest inscriptionRequest){ | ||||
| @ -82,6 +78,11 @@ public class InscriptionService { | ||||
|  | ||||
|             userRepo.save(userFromRequest); | ||||
|             userCurriculumRepo.save(new UserCurriculum(userFromRequest, curriculumRepo.findById(inscrRequest.getCurriculumId()),0)); | ||||
|  | ||||
|             //Create a minerval for the new student | ||||
|             Minerval minerval = new Minerval(userFromRequest.getRegNo(), 0, 852, 2023); | ||||
|             minervalRepository.save(minerval); | ||||
|  | ||||
|         } | ||||
|         inscrRequest.setState(requestState); | ||||
|         save(inscrRequest); | ||||
|  | ||||
							
								
								
									
										84
									
								
								backend/src/main/java/ovh/herisson/Clyde/Tables/Payment.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								backend/src/main/java/ovh/herisson/Clyde/Tables/Payment.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,84 @@ | ||||
| package ovh.herisson.Clyde.Tables; | ||||
|  | ||||
| import jakarta.persistence.Entity; | ||||
| import jakarta.persistence.GeneratedValue; | ||||
| import jakarta.persistence.GenerationType; | ||||
| import jakarta.persistence.Id; | ||||
|  | ||||
| import java.util.Date; | ||||
|  | ||||
| @Entity | ||||
| public class Payment { | ||||
|     @Id | ||||
|     @GeneratedValue(strategy = GenerationType.AUTO) | ||||
|     private long id; | ||||
|  | ||||
|     private long studentRegNo; | ||||
|     private String card; | ||||
|     private String client; | ||||
|     private Date expDate; | ||||
|     private int amount; | ||||
|     private Date date; | ||||
|     public Payment(){} | ||||
|  | ||||
|     public Payment(long studentRegNo, String card, String client, Date expDate, int amount, Date date){ | ||||
|         this.studentRegNo = studentRegNo; | ||||
|         this.card = card; | ||||
|         this.client = client; | ||||
|         this.expDate = expDate; | ||||
|         this.amount = amount; | ||||
|         this.date = date; | ||||
|     } | ||||
|  | ||||
|     public long getStudentRegNo() { | ||||
|         return studentRegNo; | ||||
|     } | ||||
|  | ||||
|     public void setStudentRegNo(long studentRegNo) { | ||||
|         this.studentRegNo = studentRegNo; | ||||
|     } | ||||
|  | ||||
|     public String getCard() { | ||||
|         return card; | ||||
|     } | ||||
|  | ||||
|     public void setCard(String card) { | ||||
|         this.card = card; | ||||
|     } | ||||
|  | ||||
|     public String getClient() { | ||||
|         return client; | ||||
|     } | ||||
|  | ||||
|     public void setClient(String client) { | ||||
|         this.client = client; | ||||
|     } | ||||
|  | ||||
|     public Date getExpDate() { | ||||
|         return expDate; | ||||
|     } | ||||
|  | ||||
|     public void setExpDate(Date expDate) { | ||||
|         this.expDate = expDate; | ||||
|     } | ||||
|  | ||||
|     public int getAmount() { | ||||
|         return amount; | ||||
|     } | ||||
|  | ||||
|     public void setAmount(int amount) { | ||||
|         this.amount = amount; | ||||
|     } | ||||
|  | ||||
|     public long getId() { | ||||
|         return id; | ||||
|     } | ||||
|  | ||||
|     public Date getDate() { | ||||
|         return date; | ||||
|     } | ||||
|  | ||||
|     public void setDate(Date date) { | ||||
|         this.date = date; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user