diff --git a/src/main/java/org/ladocuploader/app/inputs/LaDigitalAssister.java b/src/main/java/org/ladocuploader/app/inputs/LaDigitalAssister.java index af86fe196..02b2e0f78 100644 --- a/src/main/java/org/ladocuploader/app/inputs/LaDigitalAssister.java +++ b/src/main/java/org/ladocuploader/app/inputs/LaDigitalAssister.java @@ -1,9 +1,14 @@ package org.ladocuploader.app.inputs; import formflow.library.data.FlowInputs; +import formflow.library.data.validators.Money; +import jakarta.validation.constraints.Digits; +import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; +import org.hibernate.validator.constraints.Range; +import org.springframework.format.annotation.NumberFormat; import java.util.List; @@ -94,6 +99,18 @@ public class LaDigitalAssister extends FlowInputs { private String citizenshipInd; + private String selfEmploymentIncome; + + @NotBlank + private String householdMemberJobAdd; + + @NotBlank + private String employerName; + + private String selfEmployed; + + private String jobPaidByHour; + private String nonCitizens; private String citizenshipNumber; @@ -150,6 +167,25 @@ public class LaDigitalAssister extends FlowInputs { private String personalSituationDisability; + + @Money + @NotBlank + private String hourlyWage; + + @Range(min=1, max=100) + @NotBlank + private String hoursPerWeek; + + @NotBlank + private String payPeriod; + + @Money + @NotBlank + private String payPeriodAmount; + private String moneyOnHand; + + private String monthlyHouseholdIncome; + } diff --git a/src/main/java/org/ladocuploader/app/submission/conditions/AbstractSubflowCondition.java b/src/main/java/org/ladocuploader/app/submission/conditions/AbstractSubflowCondition.java new file mode 100644 index 000000000..487f06d41 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/submission/conditions/AbstractSubflowCondition.java @@ -0,0 +1,24 @@ +package org.ladocuploader.app.submission.conditions; + +import formflow.library.config.submission.Condition; +import formflow.library.data.Submission; + +import java.util.ArrayList; +import java.util.Map; + +public abstract class AbstractSubflowCondition implements Condition { + + protected Map currentSubflowItem(Submission submission, String subflow, String uuid) { + var inputData = submission.getInputData(); + var items = (ArrayList>) inputData.getOrDefault(subflow, new ArrayList>()); + return items + .stream() + .filter(item -> item.get("uuid").equals(uuid)) + .findFirst() + .orElse(null); + } + + protected Map currentIncomeSubflowItem(Submission submission, String uuid) { + return currentSubflowItem(submission, "income", uuid); + } +} diff --git a/src/main/java/org/ladocuploader/app/submission/conditions/JobPaidByTheHour.java b/src/main/java/org/ladocuploader/app/submission/conditions/JobPaidByTheHour.java new file mode 100644 index 000000000..1f9e475ed --- /dev/null +++ b/src/main/java/org/ladocuploader/app/submission/conditions/JobPaidByTheHour.java @@ -0,0 +1,14 @@ +package org.ladocuploader.app.submission.conditions; +import formflow.library.data.Submission; +import org.springframework.stereotype.Component; + +@Component +public class JobPaidByTheHour extends AbstractSubflowCondition { + @Override + public Boolean run(Submission submission, String uuid) { + var item = currentIncomeSubflowItem(submission, uuid); + + return item != null && + item.getOrDefault("jobPaidByHour", "false").equals("true"); + } +} diff --git a/src/main/java/org/ladocuploader/app/utils/IncomeCalculator.java b/src/main/java/org/ladocuploader/app/utils/IncomeCalculator.java new file mode 100644 index 000000000..172e2899b --- /dev/null +++ b/src/main/java/org/ladocuploader/app/utils/IncomeCalculator.java @@ -0,0 +1,52 @@ +package org.ladocuploader.app.utils; + +import formflow.library.data.Submission; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +@Slf4j +public class IncomeCalculator { + Submission submission; + public IncomeCalculator(Submission submission) { + this.submission = submission; + } + + public Double totalFutureEarnedIncome() { + // TODO: check for annualIncome key and use that if it is entered? +// if submission.getInputData(). + var jobs = (List>) submission.getInputData().getOrDefault("income", new ArrayList>()); + var total = jobs.stream() + .map(IncomeCalculator::futureIncomeForJob) + .reduce(0.0d, Double::sum); + + return total; + } + + public static double futureIncomeForJob(Map job) throws NumberFormatException { + if (job.getOrDefault("jobPaidByHour", "false").toString().equals("true")) { + var hoursPerWeek = Double.parseDouble(job.get("hoursPerWeek").toString()); + var hourlyWage = Double.parseDouble(job.get("hourlyWage").toString()); + log.info("Returning hourly wage"); + return hoursPerWeek * hourlyWage * (52.0 / 12); + } else { + var payPeriod = job.getOrDefault("payPeriod", "It varies").toString(); + var payPeriodAmount = Double.parseDouble(job.get("payPeriodAmount").toString()); + if (Objects.equals(payPeriod, "Every week")){ + return payPeriodAmount * (52.0 / 12); + } else if (Objects.equals(payPeriod, "Every 2 weeks")){ + return (payPeriodAmount * ((52.0 / 2) / 12)); + } else if (Objects.equals(payPeriod, "Twice a month")){ + return payPeriodAmount * 2; + } else if (Objects.equals(payPeriod, "Every month")){ + return payPeriodAmount; + } + log.info("Using 30D estimate"); + // based on 30D estimate + return payPeriodAmount; + } + } +} diff --git a/src/main/java/org/ladocuploader/app/utils/SubmissionUtilities.java b/src/main/java/org/ladocuploader/app/utils/SubmissionUtilities.java new file mode 100644 index 000000000..f1031160e --- /dev/null +++ b/src/main/java/org/ladocuploader/app/utils/SubmissionUtilities.java @@ -0,0 +1,108 @@ +package org.ladocuploader.app.utils; + +import formflow.library.data.Submission; + +import java.text.DecimalFormat; +import java.util.*; + +public class SubmissionUtilities { + + public static String formatMoney(String value) { + if (value == null) { + return ""; + } + + double numericVal; + try { + numericVal = Double.parseDouble(value); + } catch (NumberFormatException _e) { + return value; + } + + return formatMoney(numericVal); + } + + public static String formatMoney(Double value) { + DecimalFormat decimalFormat = new DecimalFormat("###.##"); + return "$" + decimalFormat.format(value); + } + + public static String householdMemberFullName(Map householdMember) { + return householdMember.get("householdMemberFirstName") + " " + householdMember.get("householdMemberLastName"); + } + + public static List getHouseholdMemberNames(Submission submission) { + ArrayList names = new ArrayList<>(); + + var applicantName = submission.getInputData().get("firstName") + " " + submission.getInputData().get("lastName"); + var householdMembers = (List>) submission.getInputData().getOrDefault("household", new ArrayList>()); + + names.add(applicantName); + householdMembers.forEach(hh -> names.add(householdMemberFullName(hh))); + + return names; + } + + public static ArrayList> getHouseholdIncomeReviewItems(Submission submission) { + var applicantFullName = submission.getInputData().getOrDefault("firstName", "") + " " + submission.getInputData().getOrDefault("lastName", ""); + var notYetShownNames = getHouseholdMemberNames(submission); + ArrayList> items = new ArrayList<>(); + + for (var job : (List>) submission.getInputData().getOrDefault("income", new ArrayList>())) { + var item = new HashMap(); + var name = job.get("householdMemberJobAdd").equals("you") ? applicantFullName : job.get("householdMemberJobAdd"); + item.put("name", name); + item.put("itemType", "job"); + item.put("jobName", job.get("employerName")); + item.put("isApplicant", name.equals(applicantFullName)); + // TODO: handle income types - hourly vs. non hourly + var payPeriod = job.getOrDefault("jobPaidByHour", "false").equals("true") ? "Hourly, " + job.get("hoursPerWeek").toString() + " hours per week" : job.getOrDefault("payPeriod", "It varies").toString(); + item.put("payPeriod", payPeriod); + + // TODO: add wage amount and not future income + var payAmount = job.getOrDefault("jobPaidByHour", "false").equals("true") ? job.get("hourlyWage").toString() : job.get("payPeriodAmount").toString(); + item.put("income", formatMoney(payAmount)); + item.put("uuid", job.get("uuid")); + + notYetShownNames.remove(name); + items.add(item); + } + + // Add any household members that didn't have income entries + notYetShownNames.forEach(name -> { + var item = new HashMap(); + item.put("name", name); + item.put("itemType", "no-jobs-added"); + item.put("isApplicant", name.equals(applicantFullName)); + + items.add(item); + }); + + // Sort the list so the applicant shows up first and the rest of the names are alphabetical + items.sort(Comparator.comparing( + job -> (String)job.get("name"), + (a, b) -> { + if (a.equals(applicantFullName) && !b.equals(applicantFullName)) { + return -1; + } else if (b.equals(applicantFullName) && !a.equals(applicantFullName)) { + return 1; + } else { + return a.compareTo(b); + } + })); + + // Set combineWithPrevious on items after the first one for the same person + for (var i = 0; i < items.size(); i++) { + var combineWithPrevious = (i > 0) && items.get(i - 1).get("name").equals(items.get(i).get("name")); + items.get(i).put("combineWithPrevious", combineWithPrevious); + } + + items.add(new HashMap() {{ + put("name", null); + put("itemType", "household-total"); + put("income", formatMoney(new IncomeCalculator(submission).totalFutureEarnedIncome())); + }}); + + return items; + } +} diff --git a/src/main/resources/flows-config.yaml b/src/main/resources/flows-config.yaml index b4b46b19b..df1d8dcb0 100644 --- a/src/main/resources/flows-config.yaml +++ b/src/main/resources/flows-config.yaml @@ -239,37 +239,42 @@ flow: nextScreens: - name: householdIncomeWho householdIncomeWho: + subflow: income + nextScreens: + - name: householdEmployerName + householdIncomeDeleteConfirmation: nextScreens: null - householdAnnualIncome: + householdMonthlyIncome: nextScreens: - name: householdIncomeList householdEmployerName: - nextScreens: null + subflow: income + nextScreens: + - name: householdSelfEmployment householdSelfEmployment: - nextScreens: null + subflow: income + nextScreens: + - name: jobPaidByHour jobPaidByHour: - nextScreens: null + subflow: income + nextScreens: + - name: jobHourlyWage + condition: JobPaidByTheHour + - name: jobPayPeriod jobHourlyWage: + subflow: income nextScreens: - name: jobHoursPerWeek jobHoursPerWeek: + subflow: income nextScreens: - name: householdIncomeConfirmation jobPayPeriod: - nextScreens: null - jobWeeklyPay: + subflow: income nextScreens: - - name: householdIncomeConfirmation - jobBiWeeklyPay: - nextScreens: - - name: householdIncomeConfirmation - jobBiMonthlyPay: - nextScreens: - - name: householdIncomeConfirmation - jobMonthlyPay: - nextScreens: - - name: householdIncomeConfirmation - jobVariablePay: + - name: jobPayAmount + jobPayAmount: + subflow: income nextScreens: - name: householdIncomeConfirmation householdIncomeConfirmation: @@ -289,6 +294,9 @@ flow: expensesSignPost: nextScreens: - name: householdHomeExpenses + householdHomeExpenses: + nextScreens: + - name: householdEmployerName expensesHome: nextScreens: - name: utilities @@ -402,4 +410,9 @@ subflows: entryScreen: multiplePersonHousehold iterationStartScreen: householdInfo reviewScreen: householdList - deleteConfirmationScreen: householdDeleteConfirmation \ No newline at end of file + deleteConfirmationScreen: householdDeleteConfirmation + income: + entryScreen: householdIncomeByJob + iterationStartScreen: householdIncomeWho + reviewScreen: householdIncomeList + deleteConfirmationScreen: householdIncomeDeleteConfirmation \ No newline at end of file diff --git a/src/main/resources/messages.properties b/src/main/resources/messages.properties index a659d3174..2b0a999dc 100644 --- a/src/main/resources/messages.properties +++ b/src/main/resources/messages.properties @@ -374,13 +374,6 @@ contact-info.phone-number.help=Optional. A caseworker may use this number to con contact-info.email-address=What is your email address? contact-info.email-address.help=Optional. -# Phone number nudge -phone-number-nudge.title=Phone number nudge -phone-number-nudge.header=Are you sure you don't want to provide your phone number? -phone-number-nudge.p1=A caseworker may need to contact you by phone about your application. If you don't have a phone number, you can enter a friend or family member's phone number instead. -phone-number-nudge.add-phone-number=Add a phone number -phone-number-nudge.skip-phone-number=Continue without it - # Shared Household Messages # Multiple person household @@ -561,6 +554,70 @@ homeless.header=Is anyone in your household currently experiencing homelessness? homeless-who.title=Homelessness who homeless-who.header=Who in your household is currently experiencing homelessness? + +# Phone number nudge +phone-number-nudge.title=Phone number nudge +phone-number-nudge.header=Are you sure you don't want to provide your phone number? +phone-number-nudge.p1=A caseworker may need to contact you by phone about your application. If you don't have a phone number, you can enter a friend or family member's phone number instead. +phone-number-nudge.add-phone-number=Add a phone number +phone-number-nudge.skip-phone-number=Continue without it + +# Employment income questions +employment-status.title=Employment status +employment-status.header=Is anyone in your household making money from a job or self-employment? +employment-status.p1=Self-employment examples include: +employment-status.li1=Driving for Uber, Lyft, Doordash, etc +employment-status.li2=Running your own business +employment-status.li3=Having an online store +employment-status.li4=Getting a 1099-MISC form at the end of the year +employment-status.li5=Working as a barber, dog walker, or other independent service provider +employment-status.more-info=More info on self-employment +employment-status.more-info.expanded.p1=A person may be considered self-employed if: +employment-status.more-info.expanded.li1=They have business expenses that aren't paid back by anyone they work for. +employment-status.more-info.expanded.li2=They receive tax form 1099-MISC from a company or individual at the end of the year. +employment-status.more-info.expanded.li3=They own or run their own business. +employment-status.more-info.expanded.li4=They do not get employment benefits or tax contributions from the individual or company they work for. +employment-status.more-info.expanded.p2=We recommend: if you think someone on your application might be considered self-employed, answer YES and go over these details with your worker during your interview. + +# Income by job +income-by-job.title=Income by job +income-by-job.header=Let's add up your monthly household income +income-by-job.subheader=Include all money from jobs, gifts, loans, and cash benefits like Social Security, disability, retirement or pensions, and unemployment. +income-by-job.enter-directly=I already know my monthly household pre-tax income - I prefer to enter it directly. + +# Household annual income +household-annual-income.title=Monthly household income +household-annual-income.header=What's your household's monthly pre-tax income? +household-annual-income.subheader=Provide income before taxes. We know this can be hard to calculate. If you don't know the exact amount, just estimate. + +# Income who +income-who.title=Income who +income-who.header=Which household member would you like to add income for? + +# Employer name +employer-name.title=Employer name +employer-name.householdMember.header=Add a job {0} has +employer-name.self.header=Add a job you have +employer-name.question=What is the employer's name? +employer-name.question.helptext=If the job is self-employed, add a description of the work (ex: "Babysitting"). + +# Self employment +self-employment.title=Self-employment +self-employment.header=Is {0} job here considered freelance or self-employment? +self-employment.p1=Self-employment examples include: +self-employment.li1=Driving for Uber, Lyft, Doordash, etc +self-employment.li2=Running your own business +self-employment.li3=Having an online store +self-employment.li4=Getting a 1099-MISC form at the end of the year +self-employment.li5=Working as a barber, dog walker, or other independent service provider +self-employment.more-info=More info on self-employment + +# Job paid by hour +job-paid-by-hour.title=Paid by the hour +job-paid-by-hour-self.header=Do you get paid by the hour? +job-paid-by-hour-househould.header=Does {0} get paid by the hour? +job-paid-by-hour.link=I don't know these details + # Room rental household-room-rental.title=Room rental household-room-rental.header=Does anyone in your household rent a room? @@ -641,7 +698,54 @@ criminal-justice-content.l1=Have been convicted of breaking rules for SNAP, cash criminal-justice-content.l2=Have been convicted of a felony criminal-justice-content.l3=Currently on probation or parole +job-hourly-wage.title=Hourly wage +job-hourly-wage.header=What is {0} hourly wage? + +job-hours-per-week.title=Hours a week +job-hours-per-week-self.header=How many hours a week do you work? +job-hours-per-week-household.header=How many hours a week does {0} work? +job-hours-per-week-household.subtext=We know this can be hard to answer, so just estimate based on {0}'s work over the last 30 days. +job-hours-per-week-self.subtext=We know this can be hard to answer, so just estimate based on your work over the last 30 days. + +job-pay-period.title=Pay period +job-pay-period-self.header=How often do you get paid? +job-pay-period-household.header=How often does {0} get paid? +job-pay-period.every-week=Every week +job-pay-period.every-two-weeks=Every 2 weeks +job-pay-period.twice-a-month=Twice a month +job-pay-period.every-month=Every month +job-pay-period.it-varies=It varies + +job-pay-amount.title=Pay period amount +job-pay-amount.fixed.header=How much money does this job pay {0}? +job-pay-amount.variable.header=How much has this job paid in the last 30 days? +job-pay-amount.subtext=Provide income before taxes. We know this can be hard to calculate. If you don?t know the exact amount, just estimate. + +income-confirmation.title=Income confirmation +income-confirmation.header=Got it! You're almost done with the income section. +income-confirmation.subtext=Do you want to add another job for your household? + +income-list.title=Income list +income-list.header=Great! Any other jobs in the household to add? + # Income money-on-hand.title=Money on hand money-on-hand.header=How much money do the people on your application have on hand? -money-on-hand.subtext=

This includes any cash or money in checking or savings accounts.

This won't affect your benefit amount. It's only used to see if you qualify for expedited service.

Type '0' if you don't have any.

\ No newline at end of file +money-on-hand.subtext=

This includes any cash or money in checking or savings accounts.

This won't affect your benefit amount. It's only used to see if you qualify for expedited service.

Type '0' if you don't have any.

+ +income-list.subtext=We need self-employment, freelance, contract, full and part-time work for everyone, including students. +income-list.monthly-income=Your monthly household income +income-list.continue=I'm done adding jobs +income-list.box-title=Your monthly household income +income-list.total-income=Total monthly household income +income-list.total-monthly-pay=Total monthly household income +income-list.no-jobs-added=No jobs added +income-list.thats-you=(that's you!) +income-list.delete-job=delete job +income-list.edit-job=edit job +income-list.add-job=+ Add a job + +income-delete-confirmation.header=Are you sure you want to delete {0} from {1}''s jobs? +income-delete-confirmation.no=No, keep it +income-delete-confirmation.title=Delete household member income +income-delete-confirmation.yes=Yes, delete it diff --git a/src/main/resources/static/assets/css/custom.css b/src/main/resources/static/assets/css/custom.css index f1cbbbd37..58cf324a1 100644 --- a/src/main/resources/static/assets/css/custom.css +++ b/src/main/resources/static/assets/css/custom.css @@ -11,10 +11,110 @@ body { background-color: var(--light); } +.subflow-list__item-actions { + margin-left: 3rem; + font-size: 16px; +} + +.icon-person-outline::before { + content: "\e7ff"; +} + +.icon-house-outline::before { + content: "\e7ff" +} + +.subflow-edit { + color: #008060 !important; +} + +.subflow-delete { + color: #D13F00 !important; +} + +.subflow-list__item-actions a:not(:last-child) { + border-right: 1px solid #CFC5BF; + padding-right: 2rem; + margin-right: 2rem; +} + +.boxed-content { + padding: 2.5rem 1rem 2.5rem 1rem; + margin: 2.5rem auto; + border: 2px solid #AAAAAA; + border-radius: 3px; + max-width: 35rem; +} + +.boxed-content hr { + margin: 2.5rem 0 3rem 0; +} + +.subflow-list { + text-align: left; +} + +.subflow-list--bulleted { + text-align: left; + padding-left: 3rem; + list-style: disc; +} + +.subflow-list__item { + position: relative; + margin-bottom: 1.5em; +} + +.subflow-list__subitem { + font-weight: bold; + font-size: 16px; +} + +.vertical { + border-left: 6px solid blue; + height: 200px; + position: absolute; + left: 50%; + margin-left: -3px; +} + +.subflow-list__icon { + position: absolute; + line-height: 2.5rem; +} + +.subflow-list__item-title { + font-weight: bold; + margin-bottom: 1rem; + margin-left: 3rem; +} + +.subflow-list__item-body { + margin-left: 3rem; + font-size: 16px; +} + +.subflow-list__action-delete, +.subflow-list__action-delete:focus, +.subflow-list__action-delete:hover, +.subflow-list__action-delete:visited, +.subflow-list__action-delete:active { + color: #D13F00; +} + .spacing-left-1_5 { padding-left: 1.5em; } +.spacing-left-10 { + margin-left: 15px; +} + +.job-item > p { + text-transform:uppercase; + !important color:grey; +} + .spacing-right-10 { margin-right: 10px; } @@ -209,6 +309,11 @@ input[type="number"] { color: var(--dark-grey) } +.button--add-job { + color: black; + background-color: white; +} + /* TODO Consider pulling these out into variables in FFL itself */ .toolbar__wrapper, .main-footer, .button--primary, .dz-button { @@ -294,6 +399,10 @@ input[type="number"] { top: 0; } +p.employer-name { + color: #5F5854; +} + .privacy-policy-choices { color: #388081 } @@ -309,4 +418,8 @@ input[type="number"] { .clipboard-icon { position: relative; bottom: -1px; +} + +.text-input-group__postfix { + color: #5F5854; } \ No newline at end of file diff --git a/src/main/resources/templates/fragments/icons.html b/src/main/resources/templates/fragments/icons.html index 7e2af7e65..173f6f925 100644 --- a/src/main/resources/templates/fragments/icons.html +++ b/src/main/resources/templates/fragments/icons.html @@ -2204,6 +2204,18 @@

Icons

+ + + iconHouseOutlineTiny + + + + + + + diff --git a/src/main/resources/templates/fragments/inputs/money.html b/src/main/resources/templates/fragments/inputs/money.html new file mode 100644 index 000000000..5aaef7b31 --- /dev/null +++ b/src/main/resources/templates/fragments/inputs/money.html @@ -0,0 +1,34 @@ + +
+
+
\ No newline at end of file diff --git a/src/main/resources/templates/fragments/inputs/number.html b/src/main/resources/templates/fragments/inputs/number.html index 6951b383b..9be87c09b 100644 --- a/src/main/resources/templates/fragments/inputs/number.html +++ b/src/main/resources/templates/fragments/inputs/number.html @@ -15,15 +15,18 @@ th:if="${hasHelpText}" th:id="${inputName + '-help-text'}" th:text="${helpText}">

- +
+ +
+
diff --git a/src/main/resources/templates/laDigitalAssister/householdEmployerName.html b/src/main/resources/templates/laDigitalAssister/householdEmployerName.html new file mode 100644 index 000000000..925c5ce37 --- /dev/null +++ b/src/main/resources/templates/laDigitalAssister/householdEmployerName.html @@ -0,0 +1,36 @@ + + + + + +
+
+
+
+
+
+ + + +
+ + +
+ +
+
+
+
+
+
+ + + + diff --git a/src/main/resources/templates/laDigitalAssister/householdEmploymentStatus.html b/src/main/resources/templates/laDigitalAssister/householdEmploymentStatus.html index 066329814..646a68886 100644 --- a/src/main/resources/templates/laDigitalAssister/householdEmploymentStatus.html +++ b/src/main/resources/templates/laDigitalAssister/householdEmploymentStatus.html @@ -1,6 +1,6 @@ - +
@@ -8,14 +8,47 @@
- - + +
+

+
    +
  • +
  • +
  • +
  • +
  • +
+ + + + + + + +

+
    +
  • +
  • +
  • +
  • +
+

+
+
diff --git a/src/main/resources/templates/laDigitalAssister/householdHomeExpenses.html b/src/main/resources/templates/laDigitalAssister/householdHomeExpenses.html deleted file mode 100644 index 066329814..000000000 --- a/src/main/resources/templates/laDigitalAssister/householdHomeExpenses.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - -
-
-
-
-
-
- - - - -
- -
- -
-
-
-
-
-
- - - \ No newline at end of file diff --git a/src/main/resources/templates/laDigitalAssister/householdIncomeByJob.html b/src/main/resources/templates/laDigitalAssister/householdIncomeByJob.html index 066329814..206de57ab 100644 --- a/src/main/resources/templates/laDigitalAssister/householdIncomeByJob.html +++ b/src/main/resources/templates/laDigitalAssister/householdIncomeByJob.html @@ -1,6 +1,6 @@ - +
@@ -8,18 +8,13 @@
- - - - -
+ -
- -
-
+ + + +
diff --git a/src/main/resources/templates/laDigitalAssister/householdIncomeConfirmation.html b/src/main/resources/templates/laDigitalAssister/householdIncomeConfirmation.html index 165b4d846..0b3afed97 100644 --- a/src/main/resources/templates/laDigitalAssister/householdIncomeConfirmation.html +++ b/src/main/resources/templates/laDigitalAssister/householdIncomeConfirmation.html @@ -1,169 +1,22 @@ - - + +
-
+
-
+
- - - - -
- -
- -
-
+ + + +
- + - - - - -
-
-
-
-
-
- - - - -
- -
- -
-
-
-
-
-
- - - - - - -
-
-
-
-
-
- - - - -
- -
- -
-
-
-
-
-
- - - - - - -
-
-
-
-
-
- - - - -
- -
- -
-
-
-
-
-
- - - - - - -
-
-
-
-
-
- - - - -
- -
- -
-
-
-
-
-
- - - - - - -
-
-
-
-
-
- - - - -
- -
- -
-
-
-
-
-
- - - \ No newline at end of file + diff --git a/src/main/resources/templates/laDigitalAssister/householdIncomeDeleteConfirmation.html b/src/main/resources/templates/laDigitalAssister/householdIncomeDeleteConfirmation.html new file mode 100644 index 000000000..b153ccfa1 --- /dev/null +++ b/src/main/resources/templates/laDigitalAssister/householdIncomeDeleteConfirmation.html @@ -0,0 +1,48 @@ + + + + + +
+
+
+
+
+
+ + + hello + + + +
+ +

+
+ +
+
+
+
+
+ + + + diff --git a/src/main/resources/templates/laDigitalAssister/householdIncomeList.html b/src/main/resources/templates/laDigitalAssister/householdIncomeList.html index 449899f0f..1a6eb6432 100644 --- a/src/main/resources/templates/laDigitalAssister/householdIncomeList.html +++ b/src/main/resources/templates/laDigitalAssister/householdIncomeList.html @@ -1,6 +1,6 @@ - +
@@ -8,43 +8,85 @@
- - + +
+
+ -
- - - -
-
- -
- - - - - - -
-
-
-
-
-
- - - - -
+ +
+ + +
+ +
+
+
+
+
+ +
+ + + +
+ + + + +
+ + + + +
+ +
+ +
+
+ + +
+ + + + + + +
+ +
+ +
+
+
+
+ + + + + +
@@ -53,5 +95,4 @@
- - \ No newline at end of file + \ No newline at end of file diff --git a/src/main/resources/templates/laDigitalAssister/householdIncomeWho.html b/src/main/resources/templates/laDigitalAssister/householdIncomeWho.html index 066329814..033498e61 100644 --- a/src/main/resources/templates/laDigitalAssister/householdIncomeWho.html +++ b/src/main/resources/templates/laDigitalAssister/householdIncomeWho.html @@ -1,6 +1,6 @@ - +
@@ -8,14 +8,30 @@
- - +
+ + + + + + + +
diff --git a/src/main/resources/templates/laDigitalAssister/householdMonthlyIncome.html b/src/main/resources/templates/laDigitalAssister/householdMonthlyIncome.html new file mode 100644 index 000000000..eb52ad02f --- /dev/null +++ b/src/main/resources/templates/laDigitalAssister/householdMonthlyIncome.html @@ -0,0 +1,33 @@ + + + + +
+
+
+
+
+
+ + + +
+ + +
+ +
+
+
+
+
+
+ + + diff --git a/src/main/resources/templates/laDigitalAssister/householdSchool.html b/src/main/resources/templates/laDigitalAssister/householdSchool.html index 6cc014f40..c1ec34d69 100644 --- a/src/main/resources/templates/laDigitalAssister/householdSchool.html +++ b/src/main/resources/templates/laDigitalAssister/householdSchool.html @@ -25,6 +25,7 @@ +
diff --git a/src/main/resources/templates/laDigitalAssister/householdSelfEmployment.html b/src/main/resources/templates/laDigitalAssister/householdSelfEmployment.html new file mode 100644 index 000000000..304656af8 --- /dev/null +++ b/src/main/resources/templates/laDigitalAssister/householdSelfEmployment.html @@ -0,0 +1,60 @@ + + + + + +
+
+
+
+
+
+

+ + + +

+
    +
  • +
  • +
  • +
  • +
  • +
+ + + + + + +

+
    +
  • +
  • +
  • +
  • +
+

+
+
+ + +
+
+
+
+
+
+ + + + diff --git a/src/main/resources/templates/laDigitalAssister/jobHourlyWage.html b/src/main/resources/templates/laDigitalAssister/jobHourlyWage.html new file mode 100644 index 000000000..6162252f7 --- /dev/null +++ b/src/main/resources/templates/laDigitalAssister/jobHourlyWage.html @@ -0,0 +1,37 @@ + + + + + +
+
+
+
+
+
+

+ + + +
+ + +
+ +
+
+
+
+
+
+ + + + + diff --git a/src/main/resources/templates/laDigitalAssister/jobHoursPerWeek.html b/src/main/resources/templates/laDigitalAssister/jobHoursPerWeek.html index 066329814..a12aa770e 100644 --- a/src/main/resources/templates/laDigitalAssister/jobHoursPerWeek.html +++ b/src/main/resources/templates/laDigitalAssister/jobHoursPerWeek.html @@ -1,29 +1,36 @@ - - - -
-
-
-
-
-
- - - - -
+ + + + +
+
+
+
+
+
+

+ + + +
+ -
- +
+ + - -
-
-
-
- - +
+
+ +
+ + + \ No newline at end of file diff --git a/src/main/resources/templates/laDigitalAssister/jobPaidByHour.html b/src/main/resources/templates/laDigitalAssister/jobPaidByHour.html new file mode 100644 index 000000000..c99cb2157 --- /dev/null +++ b/src/main/resources/templates/laDigitalAssister/jobPaidByHour.html @@ -0,0 +1,34 @@ + + + + + +
+
+
+
+
+
+

+ + + +
+ +
+
+ +
+
+
+
+
+
+
+ + + + diff --git a/src/main/resources/templates/laDigitalAssister/jobPayAmount.html b/src/main/resources/templates/laDigitalAssister/jobPayAmount.html new file mode 100644 index 000000000..6f641940a --- /dev/null +++ b/src/main/resources/templates/laDigitalAssister/jobPayAmount.html @@ -0,0 +1,39 @@ + + + + + +
+
+
+
+
+
+

+ + + +
+ + +
+ +
+
+
+
+
+
+ + + + \ No newline at end of file diff --git a/src/main/resources/templates/laDigitalAssister/jobPayPeriod.html b/src/main/resources/templates/laDigitalAssister/jobPayPeriod.html new file mode 100644 index 000000000..8afec73a5 --- /dev/null +++ b/src/main/resources/templates/laDigitalAssister/jobPayPeriod.html @@ -0,0 +1,54 @@ + + + + + +
+
+
+
+
+
+

+ + + +
+ + + + + + + + + + + +
+ +
+
+
+
+
+
+ + + + \ No newline at end of file diff --git a/src/main/resources/templates/laDigitalAssister/mailingAddress.html b/src/main/resources/templates/laDigitalAssister/mailingAddress.html index d215320e6..e5f2fb0e5 100644 --- a/src/main/resources/templates/laDigitalAssister/mailingAddress.html +++ b/src/main/resources/templates/laDigitalAssister/mailingAddress.html @@ -24,7 +24,6 @@ )}"/>