Merge branch 'develop' of https://github.com/Kitzanos/GEPAFIN-BE into develop
This commit is contained in:
@@ -179,4 +179,9 @@ public class GepafinConstant {
|
|||||||
public static final String UNAUTHORIZED = "UNAUTHORIZED";
|
public static final String UNAUTHORIZED = "UNAUTHORIZED";
|
||||||
public static final String COMPANY_ID_MANDATORY = "company.id.mandatory";
|
public static final String COMPANY_ID_MANDATORY = "company.id.mandatory";
|
||||||
public static final String USER_ALREADY_CONNECTED_TO_COMPANY = "user.already.connected.to.company";
|
public static final String USER_ALREADY_CONNECTED_TO_COMPANY = "user.already.connected.to.company";
|
||||||
|
|
||||||
|
public static final String CALL_NOT_STARTED_YET = "call.not.started.yet";
|
||||||
|
public static final String CALL_ALREADY_ENDED = "call.already.ended";
|
||||||
|
public static final String APPLICATION_STATUS_UPDATED_SUCCESSFULLY = "application.status.updated.successfully";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -503,7 +503,7 @@ public class ApplicationDao {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateApplicationStatus(Long applicationId, ApplicationStatusTypeEnum status) {
|
public ApplicationResponse updateApplicationStatus(Long applicationId, ApplicationStatusTypeEnum status) {
|
||||||
ApplicationEntity applicationEntity = validateApplication(applicationId);
|
ApplicationEntity applicationEntity = validateApplication(applicationId);
|
||||||
|
|
||||||
if (status.equals(ApplicationStatusTypeEnum.SUBMIT)) {
|
if (status.equals(ApplicationStatusTypeEnum.SUBMIT)) {
|
||||||
@@ -529,7 +529,9 @@ public class ApplicationDao {
|
|||||||
} else {
|
} else {
|
||||||
applicationEntity.setStatus(status.getValue());
|
applicationEntity.setStatus(status.getValue());
|
||||||
}
|
}
|
||||||
saveApplicationEntity(applicationEntity);
|
applicationEntity = saveApplicationEntity(applicationEntity);
|
||||||
|
|
||||||
|
return getApplicationResponse(applicationEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer calculateProgress(Long totalSteps, Long completedSteps) {
|
public Integer calculateProgress(Long totalSteps, Long completedSteps) {
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package net.gepafin.tendermanagement.dao;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -673,6 +674,25 @@ public class CallDao {
|
|||||||
Status.NOT_FOUND,
|
Status.NOT_FOUND,
|
||||||
Translator.toLocale(GepafinConstant.CALL_NOT_PUBLISHED));
|
Translator.toLocale(GepafinConstant.CALL_NOT_PUBLISHED));
|
||||||
}
|
}
|
||||||
|
LocalDate currentDate = LocalDate.now();
|
||||||
|
LocalTime currentTime = LocalTime.now();
|
||||||
|
|
||||||
|
if (currentDate.isBefore(callEntity.getStartDate().toLocalDate()) ||
|
||||||
|
(currentDate.isEqual(callEntity.getStartDate().toLocalDate()) && currentTime.isBefore(callEntity.getStartTime()))) {
|
||||||
|
throw new CustomValidationException(
|
||||||
|
Status.BAD_REQUEST,
|
||||||
|
Translator.toLocale(GepafinConstant.CALL_NOT_STARTED_YET)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentDate.isAfter(callEntity.getEndDate().toLocalDate()) ||
|
||||||
|
(currentDate.isEqual(callEntity.getEndDate().toLocalDate()) && currentTime.isAfter(callEntity.getEndTime()))) {
|
||||||
|
throw new CustomValidationException(
|
||||||
|
Status.BAD_REQUEST,
|
||||||
|
Translator.toLocale(GepafinConstant.CALL_ALREADY_ENDED)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return callEntity;
|
return callEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package net.gepafin.tendermanagement.model.response;
|
|||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class UserSamlResponse {
|
public class UserSamlResponse {
|
||||||
|
|
||||||
@@ -10,4 +12,6 @@ public class UserSamlResponse {
|
|||||||
private String firstName;
|
private String firstName;
|
||||||
|
|
||||||
private String lastName;
|
private String lastName;
|
||||||
|
|
||||||
|
private LocalDateTime dateOfBirth;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,6 @@ public interface ApplicationService {
|
|||||||
|
|
||||||
public NextOrPreviousFormResponse getNextOrPreviousForm(HttpServletRequest request, Long applicationId, Long formId, FormActionEnum action);
|
public NextOrPreviousFormResponse getNextOrPreviousForm(HttpServletRequest request, Long applicationId, Long formId, FormActionEnum action);
|
||||||
|
|
||||||
public void updateApplicationStatus(HttpServletRequest request, Long applicationId, ApplicationStatusTypeEnum status);
|
public ApplicationResponse updateApplicationStatus(HttpServletRequest request, Long applicationId, ApplicationStatusTypeEnum status);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,8 +76,8 @@ public class ApplicationServiceImpl implements ApplicationService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateApplicationStatus(HttpServletRequest request, Long applicationId, ApplicationStatusTypeEnum status) {
|
public ApplicationResponse updateApplicationStatus(HttpServletRequest request, Long applicationId, ApplicationStatusTypeEnum status) {
|
||||||
applicationDao.updateApplicationStatus(applicationId, status);
|
return applicationDao.updateApplicationStatus(applicationId, status);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import org.springframework.security.core.context.SecurityContextHolder;
|
|||||||
import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;
|
import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -182,6 +183,13 @@ public class AuthenticationService {
|
|||||||
&& !userAttributes.get("cognome").isEmpty()) {
|
&& !userAttributes.get("cognome").isEmpty()) {
|
||||||
userSamlResponse.setLastName(userAttributes.get("cognome").get(0).toString());
|
userSamlResponse.setLastName(userAttributes.get("cognome").get(0).toString());
|
||||||
}
|
}
|
||||||
|
if (userAttributes.containsKey("dataNascita") && userAttributes.get("dataNascita") != null
|
||||||
|
&& !userAttributes.get("dataNascita").isEmpty()) {
|
||||||
|
String dateString =userAttributes.get("dataNascita").get(0).toString();
|
||||||
|
LocalDate dateOfBirth = LocalDate.parse(dateString);
|
||||||
|
LocalDateTime dateOfBirthWithTime = dateOfBirth.atStartOfDay();
|
||||||
|
userSamlResponse.setDateOfBirth(dateOfBirthWithTime);
|
||||||
|
}
|
||||||
userSamlResponse.setCodiceFiscale(cf);
|
userSamlResponse.setCodiceFiscale(cf);
|
||||||
return userSamlResponse;
|
return userSamlResponse;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ public interface ApplicationApi {
|
|||||||
@ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
@ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||||
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) })
|
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) })
|
||||||
@PutMapping(value = "/{applicationId}/status", produces = { "application/json" })
|
@PutMapping(value = "/{applicationId}/status", produces = { "application/json" })
|
||||||
ResponseEntity<Response<Void>> updateApplicationStatus(HttpServletRequest request,
|
ResponseEntity<Response<ApplicationResponse>> updateApplicationStatus(HttpServletRequest request,
|
||||||
@Parameter(description = "The application id", required = true) @PathVariable("applicationId") Long applicationId,
|
@Parameter(description = "The application id", required = true) @PathVariable("applicationId") Long applicationId,
|
||||||
@Parameter(description = "status", required = true)@RequestParam(value = "status", required = true) ApplicationStatusTypeEnum status);
|
@Parameter(description = "status", required = true)@RequestParam(value = "status", required = true) ApplicationStatusTypeEnum status);
|
||||||
|
|
||||||
|
|||||||
@@ -83,10 +83,10 @@ public class ApplicationApiController implements ApplicationApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> updateApplicationStatus(HttpServletRequest request, Long applicationId,
|
public ResponseEntity<Response<ApplicationResponse>> updateApplicationStatus(HttpServletRequest request, Long applicationId,
|
||||||
ApplicationStatusTypeEnum status) {
|
ApplicationStatusTypeEnum status) {
|
||||||
applicationService.updateApplicationStatus(request, applicationId, status);
|
ApplicationResponse applicationResponse = applicationService.updateApplicationStatus(request, applicationId, status);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_APPLICATION_SUCCESS_MSG)));
|
.body(new Response<>(applicationResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_STATUS_UPDATED_SUCCESSFULLY)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ spring.h2.console.enabled=true
|
|||||||
base-url=http://bandi-api.gepafin.it
|
base-url=http://bandi-api.gepafin.it
|
||||||
|
|
||||||
isVatCheckGloballyDisabled = false
|
isVatCheckGloballyDisabled = false
|
||||||
fe.base.url=http://gepafin-production-fe.s3-website.eu-central-1.amazonaws.com
|
#fe.base.url=http://gepafin-production-fe.s3-website.eu-central-1.amazonaws.com
|
||||||
|
fe.base.url=http://bandi.gepafin.it
|
||||||
#SPID configuration
|
#SPID configuration
|
||||||
spid.ipd.base.url=https://login.regione.umbria.it
|
spid.ipd.base.url=https://login.regione.umbria.it
|
||||||
active.profile.folder=production
|
active.profile.folder=production
|
||||||
@@ -206,3 +206,8 @@ vatnumber.already.exists=VatNumber already exists.
|
|||||||
invalid.email=Invalid email.
|
invalid.email=Invalid email.
|
||||||
company.id.mandatory=Company id is mandatory.
|
company.id.mandatory=Company id is mandatory.
|
||||||
user.already.connected.to.company=The user is already connected to this company.
|
user.already.connected.to.company=The user is already connected to this company.
|
||||||
|
|
||||||
|
call.not.started.yet = The call has not started yet. Please wait until the specified start date and time.
|
||||||
|
call.already.ended = The call has already ended. You cannot submit the application after the deadline.
|
||||||
|
status.updated.successfully=Status updated successfully.
|
||||||
|
application.status.updated.successfully = Application status updated successfully.
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ get_user_success_msg=Utente recuperato con successo.
|
|||||||
get_user_error_msg=Si <20> verificato un errore durante il recupero dell'utente.
|
get_user_error_msg=Si <20> verificato un errore durante il recupero dell'utente.
|
||||||
user.not.active=Utente non attivo. Si prega di contattare il supporto.
|
user.not.active=Utente non attivo. Si prega di contattare il supporto.
|
||||||
user.already.exist.msg=L'utente esiste gi<67> per questo codice fiscale.
|
user.already.exist.msg=L'utente esiste gi<67> per questo codice fiscale.
|
||||||
validate.email=L'email è obbligatoria e deve essere nel formato corretto. Si prega di verificare e riprovare.
|
validate.email=L'email <EFBFBD> obbligatoria e deve essere nel formato corretto. Si prega di verificare e riprovare.
|
||||||
validate.password=La password e confPassword sono obbligatorie. Verifica e riprova.
|
validate.password=La password e confPassword sono obbligatorie. Verifica e riprova.
|
||||||
# Role-related messages
|
# Role-related messages
|
||||||
role.created.success=Ruolo creato con successo.
|
role.created.success=Ruolo creato con successo.
|
||||||
@@ -20,7 +20,7 @@ create.role.error=Errore durante la creazione del ruolo.
|
|||||||
update.role.error=Errore durante l'aggiornamento del ruolo.
|
update.role.error=Errore durante l'aggiornamento del ruolo.
|
||||||
role.fetch.success=Ruolo recuperato con successo.
|
role.fetch.success=Ruolo recuperato con successo.
|
||||||
delete.role.error=Errore durante l'eliminazione del ruolo.
|
delete.role.error=Errore durante l'eliminazione del ruolo.
|
||||||
role.id.mandatory=L'ID del ruolo è obbligatorio.
|
role.id.mandatory=L'ID del ruolo <EFBFBD> obbligatorio.
|
||||||
|
|
||||||
# Region-related messages
|
# Region-related messages
|
||||||
region.created.success=Regione creata con successo.
|
region.created.success=Regione creata con successo.
|
||||||
@@ -194,8 +194,12 @@ company.get.success=Azienda recuperata con successo.
|
|||||||
company.not.found=Azienda non trovata.
|
company.not.found=Azienda non trovata.
|
||||||
check.vatnumber.success=Numero di partita IVA verificato con successo.
|
check.vatnumber.success=Numero di partita IVA verificato con successo.
|
||||||
invalid.vatnumber=Numero di partita IVA non valido.
|
invalid.vatnumber=Numero di partita IVA non valido.
|
||||||
vatnumber.mandatory=Il numero di partita IVA è obbligatorio.
|
vatnumber.mandatory=Il numero di partita IVA <EFBFBD> obbligatorio.
|
||||||
vatnumber.already.exists=Il numero di partita IVA esiste già.
|
vatnumber.already.exists=Il numero di partita IVA esiste gi<EFBFBD>.
|
||||||
invalid.email=Email non valida.
|
invalid.email=Email non valida.
|
||||||
company.id.mandatory=L'ID dell'azienda è obbligatorio.
|
company.id.mandatory=L'ID dell'azienda <EFBFBD> obbligatorio.
|
||||||
user.already.connected.to.company=L'utente è già collegato a questa azienda.
|
user.already.connected.to.company=L'utente <EFBFBD> gi<EFBFBD> collegato a questa azienda.
|
||||||
|
call.not.started.yet = La chiamata non <20> ancora iniziata. Attendere fino alla data e all'ora di inizio specificate.
|
||||||
|
call.already.ended = La chiamata <20> gi<67> terminata. Non <20> possibile inviare l'applicazione dopo la scadenza.
|
||||||
|
status.updated.successfully=Stato aggiornato con successo.
|
||||||
|
application.status.updated.successfully = Stato dell'applicazione aggiornato con successo.
|
||||||
|
|||||||
Reference in New Issue
Block a user