Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Snap expedited application #547

Merged
merged 3 commits into from
Jan 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
package org.ladocuploader.app.preparers;

import static java.util.Collections.emptyList;

import formflow.library.data.Submission;
import formflow.library.pdf.PdfMap;
import formflow.library.pdf.SingleField;
import formflow.library.pdf.SubmissionField;
import formflow.library.pdf.SubmissionFieldPreparer;
import java.util.HashMap;
import java.util.Map;
import org.springframework.stereotype.Component;

@Component
public class ExpeditedSnapPreparer implements SubmissionFieldPreparer {

@Override
public Map<String, SubmissionField> prepareSubmissionFields(Submission submission, PdfMap pdfMap) {
Map<String, SubmissionField> results = new HashMap<>();

String isEligibleForExpeditedSnap = submission.getInputData().get("isEligibleForExpeditedSnap").toString();
if (isEligibleForExpeditedSnap.equals("true")) {
String householdIncomeLast30Days = submission.getInputData().getOrDefault("householdIncomeLast30Days", "0").toString();
results.put("expeditedSnapIncome", new SingleField("expeditedSnapIncome", householdIncomeLast30Days, null));

String moneyOnHandString = submission.getInputData().getOrDefault("expeditedMoneyOnHandAmount", "0").toString();
results.put("expeditedSnapMoneyOnHand", new SingleField("expeditedSnapMoneyOnHand", moneyOnHandString, null));

String householdRentAmount = submission.getInputData().getOrDefault("householdRentAmount", "0").toString();
results.put("expeditedSnapHousingCost", new SingleField("expeditedSnapHousingCost", householdRentAmount, null));

results.put("expeditedSnapHouseholdExpensesBool",
new SingleField("expeditedSnapHouseholdExpensesBool", hasHouseholdExpenses(submission) ? "Yes" : "No", null));
results.put("expeditedSnapHeatingBool",
new SingleField("expeditedSnapHeatingBool", hasHeatingExpenses(submission) ? "Yes" : "No", null));

String householdPhoneExpenses = submission.getInputData()
.getOrDefault("householdUtilitiesExpenseAmount_wildcard_phone", "0").toString();
boolean hasPhoneExpenses = !householdPhoneExpenses.equals("0");
results.put("expeditedSnapPhoneExpensesBool",
new SingleField("expeditedSnapPhoneExpensesBool", hasPhoneExpenses ? "Yes" : "No", null));

String isMigrantOrSeasonalFarmWorker = submission.getInputData().get("migrantOrSeasonalFarmWorkerInd").toString();
results.put("expeditedMigrantOrSeasonalWorkerBool",
new SingleField("expeditedMigrantOrSeasonalWorkerBool", isMigrantOrSeasonalFarmWorker.equals("true") ? "Yes" : "No",
null));
}

return results;
}

private int parseInt(String intAsString) {
try {
return Integer.parseInt(intAsString);
} catch (NumberFormatException e) {
return 0;
}
}

private boolean hasHouseholdExpenses(Submission submission) {
String electricity = submission.getInputData().getOrDefault("householdUtilitiesExpenseAmount_wildcard_electricity", "0")
.toString();
String water = submission.getInputData().getOrDefault("householdUtilitiesExpenseAmount_wildcard_water", "0").toString();
String garbage = submission.getInputData().getOrDefault("householdUtilitiesExpenseAmount_wildcard_garbage", "0").toString();
String sewer = submission.getInputData().getOrDefault("householdUtilitiesExpenseAmount_wildcard_sewer", "0").toString();
String cookingFuel = submission.getInputData().getOrDefault("householdUtilitiesExpenseAmount_wildcard_cookingFuel", "0")
.toString();
String otherUtilitiesExpenses = submission.getInputData()
.getOrDefault("householdUtilitiesExpenseAmount_wildcard_otherUtilitiesExpenses", "0").toString();

return (parseInt(electricity) + parseInt(water) + parseInt(garbage) + parseInt(sewer) + parseInt(cookingFuel) + parseInt(
otherUtilitiesExpenses) > 0);
}

private boolean hasHeatingExpenses(Submission submission) {
String heating = submission.getInputData().getOrDefault("householdUtilitiesExpenseAmount_wildcard_heating", "0").toString();
String cooling = submission.getInputData().getOrDefault("householdUtilitiesExpenseAmount_wildcard_cooling", "0").toString();

return (parseInt(heating) + parseInt(cooling) > 0);
}
}

7 changes: 7 additions & 0 deletions src/main/resources/pdf-map.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,13 @@ inputFields:
mailingAddressCity: mailingAddressCity
mailingAddressStreetAddress2: mailingAddressStreetAddress2
mailingAddressStreetAddress1: mailingAddressStreetAddress1
expeditedSnapIncome: expeditedSnapIncome
expeditedSnapMoneyOnHand: expeditedSnapMoneyOnHand
expeditedSnapHousingCost: expeditedSnapHousingCost
expeditedSnapHouseholdExpensesBool: expeditedSnapHouseholdExpensesBool
expeditedSnapHeatingBool: expeditedSnapHeatingBool
expeditedSnapPhoneExpensesBool: expeditedSnapPhoneExpensesBool
expeditedMigrantOrSeasonalWorkerBool: expeditedMigrantOrSeasonalWorkerBool
signature: signature
applicantBirthdayFormatted: applicantBirthday
emailAddress: emailAddress
Expand Down
Binary file modified src/main/resources/pdfs/la_application_for_assistance.pdf
Binary file not shown.