feat: auto fill certificate fields on add licence
All checks were successful
Deploy Production Server / if_merged (pull_request) Successful in 11m30s
All checks were successful
Deploy Production Server / if_merged (pull_request) Successful in 11m30s
This commit is contained in:
@@ -216,7 +216,7 @@ public class MembreService {
|
||||
public Uni<List<SimpleMembreInOutData>> getAllExport(String subject) {
|
||||
return repository.find("userId = ?1", subject).firstResult()
|
||||
.chain(membreModel -> repository.list("club = ?1", membreModel.getClub()))
|
||||
.chain(membres -> licenceRepository.list("saison = ?1 AND membre IN ?2", Utils.getSaison(), membres)
|
||||
.chain(membres -> licenceRepository.list("membre IN ?1", membres)
|
||||
.map(l -> membres.stream().map(m -> SimpleMembreInOutData.fromModel(m, l)).toList()));
|
||||
}
|
||||
|
||||
|
||||
@@ -2,10 +2,14 @@ package fr.titionfire.ffsaf.rest.data;
|
||||
|
||||
import fr.titionfire.ffsaf.data.model.LicenceModel;
|
||||
import fr.titionfire.ffsaf.data.model.MembreModel;
|
||||
import fr.titionfire.ffsaf.utils.Utils;
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@@ -24,7 +28,27 @@ public class SimpleMembreInOutData {
|
||||
|
||||
public static SimpleMembreInOutData fromModel(MembreModel membreModel, List<LicenceModel> lc) {
|
||||
LicenceModel currentLicence = lc.stream().filter(l -> l.getMembre().getId().equals(membreModel.getId()))
|
||||
.findFirst().orElse(null);
|
||||
.max(Comparator.comparingInt(LicenceModel::getSaison)).orElse(null);
|
||||
|
||||
String certif = null;
|
||||
if (currentLicence != null && currentLicence.getCertificate() != null) {
|
||||
String[] strings = currentLicence.getCertificate().split("¤");
|
||||
if (currentLicence.getSaison() == Utils.getSaison()) {
|
||||
certif = currentLicence.getCertificate();
|
||||
} else if (strings.length > 1) {
|
||||
try {
|
||||
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(strings[1]);
|
||||
Calendar max = Utils.getFirstDateOfSaison();
|
||||
max.add(Calendar.YEAR, -2);
|
||||
|
||||
if (max.getTime().compareTo(date) < 0) {
|
||||
certif = currentLicence.getCertificate();
|
||||
}
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return new SimpleMembreInOutData(
|
||||
membreModel.getLicence(),
|
||||
@@ -33,8 +57,8 @@ public class SimpleMembreInOutData {
|
||||
membreModel.getEmail(),
|
||||
membreModel.getGenre().str,
|
||||
membreModel.getBirth_date(),
|
||||
currentLicence != null,
|
||||
currentLicence == null ? null : currentLicence.getCertificate()
|
||||
currentLicence != null && currentLicence.getSaison() == Utils.getSaison(),
|
||||
certif
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -119,6 +119,15 @@ public class Utils {
|
||||
}
|
||||
}
|
||||
|
||||
public static Calendar getFirstDateOfSaison() {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
|
||||
calendar.set(getSaison(), Calendar.SEPTEMBER, 1, 0, 0, 0);
|
||||
calendar.set(Calendar.MILLISECOND, 0);
|
||||
|
||||
return calendar;
|
||||
}
|
||||
|
||||
public static Calendar toCalendar(Date date) {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(date);
|
||||
|
||||
Reference in New Issue
Block a user