From 0ba6489e67549e484c37aa59213a08510b7cea80 Mon Sep 17 00:00:00 2001 From: Mahidhar Mullapudi Date: Tue, 11 Sep 2018 22:43:12 -0400 Subject: [PATCH] Major Commit: Added code for saving the Immigration details information and validations for Immigration details page. --- .../constants/ApplicationConstants.java | 8 +++++ .../EmployeeDetailsController.java | 5 +++ .../ImmigrationDetailsValidator.java | 33 +++++++++++++++---- src/main/resources/messages.properties | 6 ++++ .../WEB-INF/jsp/staff/immigrationDetails.jsp | 13 ++++---- 5 files changed, 52 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/tutorialq/constants/ApplicationConstants.java b/src/main/java/com/tutorialq/constants/ApplicationConstants.java index 9f957bc..25acbeb 100644 --- a/src/main/java/com/tutorialq/constants/ApplicationConstants.java +++ b/src/main/java/com/tutorialq/constants/ApplicationConstants.java @@ -104,4 +104,12 @@ public class ApplicationConstants implements Serializable { .put("monthly", "Monthly") .build(); + public static final Map immiStatusMap = ImmutableMap.builder() + .put("CPT", "CPT") + .put("OPT", "OPT") + .put("H1B", "H1B") + .put("GREENCARD", "GREENCARD") + .put("CITIZEN", "CITIZEN") + .build(); + } diff --git a/src/main/java/com/tutorialq/web/controllers/EmployeeDetailsController.java b/src/main/java/com/tutorialq/web/controllers/EmployeeDetailsController.java index af26a85..b67c14c 100644 --- a/src/main/java/com/tutorialq/web/controllers/EmployeeDetailsController.java +++ b/src/main/java/com/tutorialq/web/controllers/EmployeeDetailsController.java @@ -249,4 +249,9 @@ public Map invoiceFrequencyMap() { return ApplicationConstants.invoiceFrequencyMap; } + @ModelAttribute("immiStatusMap") + public Map immigrtationStatusMap() { + return ApplicationConstants.immiStatusMap; + } + } diff --git a/src/main/java/com/tutorialq/web/validators/ImmigrationDetailsValidator.java b/src/main/java/com/tutorialq/web/validators/ImmigrationDetailsValidator.java index e12e788..8266bd0 100644 --- a/src/main/java/com/tutorialq/web/validators/ImmigrationDetailsValidator.java +++ b/src/main/java/com/tutorialq/web/validators/ImmigrationDetailsValidator.java @@ -2,31 +2,50 @@ import com.tutorialq.entities.ImmigrationDetail; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.validation.Errors; +import org.springframework.validation.ValidationUtils; import org.springframework.validation.Validator; +import java.math.BigDecimal; + @Component @Slf4j public class ImmigrationDetailsValidator implements Validator { - @Autowired - EmailValidator emailValidator; - @Autowired - PhoneNumberValidator phoneValidator; - @Override public boolean supports(Class clazz) { return ImmigrationDetail.class.equals(clazz); } /* - * This validate() method checks for all the validations related to Registration Information. + * This validate() method checks for all the validations related to Immigration Details. */ @Override public void validate(Object target, Errors errors) { + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "currentStatus", "NotEmpty.immigration.currentStatus"); + + ImmigrationDetail immigrationDetail = (ImmigrationDetail) target; + + BigDecimal currentWage = immigrationDetail.getCurrentWage(); + if (currentWage.compareTo(BigDecimal.ZERO) == 0) { + errors.rejectValue("currentWage", "NotEmpty.immigration.currentWage"); + } else { + if (currentWage.compareTo(BigDecimal.valueOf(40000)) < 0 + || currentWage.compareTo(BigDecimal.valueOf(300000)) > 0) { + errors.rejectValue("currentWage", "NotValid.immigration.currentWage"); + } + } + + if (immigrationDetail.getStartDate() == null) { + errors.rejectValue("startDate", "NotEmpty.immigration.startDate"); + } + + if (immigrationDetail.getEndDate() == null) { + errors.rejectValue("endDate", "NotEmpty.immigration.endDate"); + } + } } diff --git a/src/main/resources/messages.properties b/src/main/resources/messages.properties index cc3ef05..bc7ceea 100644 --- a/src/main/resources/messages.properties +++ b/src/main/resources/messages.properties @@ -30,6 +30,12 @@ NotEmpty.clientDetails.vendorEmail=Please enter Vendor Email Address. NotEmpty.clientDetails.invoiceFrequency=Please select Invoice Frequency. NotValid.clientDetails.email=Email is not valid. Please enter a valid Email Address. NotValid.clientDetails.phoneNum=Please enter a valid Phone Number. +### Immigration Details Page Validation Messages### +NotEmpty.immigration.currentStatus=Please select a valid Immigration Status. +NotEmpty.immigration.currentWage=Please enter your current wage. +NotValid.immigration.currentWage=Please enter a valid Wage. +NotEmpty.immigration.startDate=Please enter a valid Start Date for Current Status. +NotEmpty.immigration.endDate=Please enter a valid End Date for Current Status. ### Login page Empty Messages ### NotEmpty.login.email=Please enter a valid Email Address. NotEmpty.login.password=Please enter your password. diff --git a/src/main/webapp/WEB-INF/jsp/staff/immigrationDetails.jsp b/src/main/webapp/WEB-INF/jsp/staff/immigrationDetails.jsp index 1ea7966..589bd44 100644 --- a/src/main/webapp/WEB-INF/jsp/staff/immigrationDetails.jsp +++ b/src/main/webapp/WEB-INF/jsp/staff/immigrationDetails.jsp @@ -127,7 +127,7 @@
-
+
@@ -137,7 +137,8 @@ data-animation="false" class="form-control ${status.error ? 'form-control-danger' : ''}" id="currentStatus"> - + +