Merge pull request #166 from Kitzanos/end-date-validation-prod
Cherry-pick(Added end date validation)
This commit is contained in:
@@ -367,7 +367,6 @@ public class GepafinConstant {
|
||||
public static final String COUNT="count";
|
||||
public static final String APPLICATION_PER_CALL="applicationPerCall";
|
||||
public static final String APPLICATION_PER_STATUS="applicationPerStatus";
|
||||
|
||||
|
||||
public static final String CALL_EXPIRED="call.expired";
|
||||
}
|
||||
|
||||
|
||||
@@ -49,7 +49,9 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.MessageFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.zip.ZipEntry;
|
||||
@@ -184,6 +186,7 @@ public class ApplicationDao {
|
||||
// callService.validatePublishedCall(formEntity.getCall().getId());
|
||||
validateFormFields(applicationRequestBean,formEntity);
|
||||
ApplicationEntity applicationEntity = validateApplication(applicationId);
|
||||
checkCallEndDate(applicationEntity.getCall());
|
||||
validator.validateUserWithCompany(request, applicationEntity.getCompanyId());
|
||||
if(Boolean.FALSE.equals(applicationEntity.getStatus().equals(ApplicationStatusTypeEnum.DRAFT.getValue()))) {
|
||||
throw new CustomValidationException(Status.BAD_REQUEST,Translator.toLocale(GepafinConstant.APPLICATION_NOT_IN_DRAFT_STATUS));
|
||||
@@ -403,6 +406,7 @@ public class ApplicationDao {
|
||||
responseBean.setProgress(progress);
|
||||
responseBean.setCallTitle(applicationEntity.getCall().getName());
|
||||
responseBean.setCallEndDate(applicationEntity.getCall().getEndDate());
|
||||
responseBean.setCallEndTime(applicationEntity.getCall().getEndTime());
|
||||
responseBean.setModifiedDate(applicationEntity.getCall().getUpdatedDate());
|
||||
responseBean.setCallId(applicationEntity.getCall().getId());
|
||||
responseBean.setSubmissionDate(applicationEntity.getSubmissionDate());
|
||||
@@ -870,7 +874,7 @@ public class ApplicationDao {
|
||||
ApplicationRequest applicationRequest, Long callId, UserEntity userEntity) {
|
||||
CallEntity call = callService.validateCall(callId);
|
||||
UserWithCompanyEntity userWithCompanyEntity=companyService.getUserWithCompany(userEntity.getId(),companyEntity.getId());
|
||||
|
||||
checkCallEndDate(call);
|
||||
// call = callService.validatePublishedCall(call.getId());
|
||||
// checkIfApplicationExists(call, userWithCompanyEntity, userEntity);
|
||||
ApplicationEntity applicationEntity = createApplicationEntity(userEntity, call, userWithCompanyEntity);
|
||||
@@ -888,7 +892,7 @@ public class ApplicationDao {
|
||||
public ApplicationResponse updateApplicationStatus(HttpServletRequest request, Long applicationId, ApplicationStatusTypeEnum status) {
|
||||
|
||||
ApplicationEntity applicationEntity = validateApplication(applicationId);
|
||||
|
||||
checkCallEndDate(applicationEntity.getCall());
|
||||
//cloned entity for old application data
|
||||
ApplicationEntity oldApplicationEntity = Utils.getClonedEntityForData(applicationEntity);
|
||||
|
||||
@@ -1117,7 +1121,7 @@ public class ApplicationDao {
|
||||
public ApplicationSignedDocumentResponse uploadSignedDocument(HttpServletRequest request, Long applicationId,
|
||||
MultipartFile file) {
|
||||
ApplicationEntity applicationEntity = validateApplication(applicationId);
|
||||
|
||||
checkCallEndDate(applicationEntity.getCall());
|
||||
//cloned entity for old data
|
||||
ApplicationEntity oldApplicationData = Utils.getClonedEntityForData(applicationEntity);
|
||||
|
||||
@@ -1250,7 +1254,8 @@ public class ApplicationDao {
|
||||
|
||||
ApplicationEntity applicationEntity = validateApplication(applicationId);
|
||||
ApplicationEntity oldApplicationEntity = Utils.getClonedEntityForData(applicationEntity);
|
||||
|
||||
checkCallEndDate(applicationEntity.getCall());
|
||||
|
||||
UserEntity userEntity = userService.validateUser(applicationEntity.getUserId());
|
||||
validator.validateUserWithCompany(request, applicationEntity.getCompanyId());
|
||||
if (Boolean.FALSE.equals(ApplicationStatusTypeEnum.DRAFT.getValue().equals(applicationEntity.getStatus()))) {
|
||||
@@ -1391,4 +1396,21 @@ public class ApplicationDao {
|
||||
throw new RuntimeException("Error while creating ZIP file", e);
|
||||
}
|
||||
}
|
||||
public void checkCallEndDate(CallEntity call) {
|
||||
LocalDateTime now = DateTimeUtil.DateServerToUTC(LocalDateTime.now());
|
||||
|
||||
LocalDateTime callEndDateTime = LocalDateTime.of(
|
||||
call.getEndDate().toLocalDate(),
|
||||
call.getEndTime()
|
||||
);
|
||||
|
||||
if (now.isAfter(callEndDateTime)) {
|
||||
throw new CustomValidationException(
|
||||
Status.BAD_REQUEST,
|
||||
Translator.toLocale(GepafinConstant.CALL_EXPIRED)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -296,6 +296,8 @@ public class FlowFormDao {
|
||||
applicationDao.processForm(formEntity, applicationEntity));
|
||||
nextOrPreviousFormResponse.setCallId(applicationEntity.getCall().getId());
|
||||
nextOrPreviousFormResponse.setCallTitle(applicationEntity.getCall().getName());
|
||||
nextOrPreviousFormResponse.setCallEndDate(applicationEntity.getCall().getEndDate());
|
||||
nextOrPreviousFormResponse.setCallEndTime(applicationEntity.getCall().getEndTime());
|
||||
nextOrPreviousFormResponse.setCompanyId(applicationEntity.getCompanyId());
|
||||
nextOrPreviousFormResponse.setCompanyName(company.getCompanyName());
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import net.gepafin.tendermanagement.model.response.ApplicationFormFieldResponseB
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@@ -18,6 +19,8 @@ public class ApplicationResponse{
|
||||
|
||||
private LocalDateTime callEndDate;
|
||||
|
||||
private LocalTime callEndTime;
|
||||
|
||||
private LocalDateTime modifiedDate;
|
||||
|
||||
private Integer progress;
|
||||
|
||||
@@ -5,6 +5,7 @@ import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
|
||||
@Data
|
||||
public class NextOrPreviousFormResponse {
|
||||
@@ -20,6 +21,10 @@ public class NextOrPreviousFormResponse {
|
||||
private Long completedSteps;
|
||||
|
||||
private Long currentStep;
|
||||
|
||||
private LocalDateTime callEndDate;
|
||||
|
||||
private LocalTime callEndTime;
|
||||
|
||||
private Long companyId;
|
||||
|
||||
|
||||
@@ -347,3 +347,4 @@ notification.deleted.successfully=Notification deleted successfully.
|
||||
notification.updated.successfully=Notification updated successfully.
|
||||
user.with.company.not.found = User with company not found for user or company.
|
||||
amount.accepted.required=Amount accepted is required while approving the application.
|
||||
call.expired=Call has been expired.
|
||||
|
||||
@@ -304,7 +304,6 @@ beneficiary.call.duplicate = Una chiamata preferita con questo ID di chiamata e
|
||||
user.must.be.associated.with.company.to.create.application=Devi essere associato a un'azienda per poter presentare domanda per questa applicazione.
|
||||
company.id.required.for.preferred.call=ID azienda obbligatorio quando si richiedono solo chiamate preferite.
|
||||
response.days.not.null=I giorni di risposta non devono essere nulli e maggiori di zero.
|
||||
application.cannot.approved.or.rejected=La domanda non pu� essere approvata o rifiutata perch� l'emendamento � attivo.
|
||||
valid.vatnumber.message=Il numero di partita IVA <20> valido.
|
||||
application.cannot.approved.or.rejected=La domanda non pu? essere approvata o rifiutata perch? l'emendamento ? attivo.
|
||||
|
||||
@@ -338,4 +337,9 @@ notification.sent.successfully=Notifica inviata con successo.
|
||||
notification.deleted.successfully=Notifica eliminata con successo.
|
||||
notification.updated.successfully=Notifica aggiornata con successo.
|
||||
user.with.company.not.found = Utente con azienda non trovato per utente o azienda.
|
||||
amount.accepted.required=L'importo accettato è obbligatorio durante l'approvazione della domanda.
|
||||
amount.accepted.required=L'importo accettato <EFBFBD> obbligatorio durante l'approvazione della domanda.
|
||||
|
||||
user.action.fetched.successfully = Dettagli sull'azione dell'utente recuperati correttamente.
|
||||
action.context.labels.fetched.successfully = Etichette del contesto dell'azione recuperate correttamente.
|
||||
amount.accepted.required=L'importo accettato <20> obbligatorio durante l'approvazione della domanda.
|
||||
call.expired=La chiamata <20> scaduta.
|
||||
|
||||
Reference in New Issue
Block a user