in fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/recurringdeposit/RecurringDepositImportHandler.java [114:272]
private RecurringDepositAccountData readSavings(final Workbook workbook, final Row row, final List<String> statuses,
final String locale, final String dateFormat) {
String productName = ImportHandlerUtils.readAsString(RecurringDepositConstants.PRODUCT_COL, row);
Long productId = ImportHandlerUtils.getIdByName(workbook.getSheet(TemplatePopulateImportConstants.PRODUCT_SHEET_NAME), productName);
String fieldOfficerName = ImportHandlerUtils.readAsString(RecurringDepositConstants.FIELD_OFFICER_NAME_COL, row);
Long fieldOfficerId = ImportHandlerUtils.getIdByName(workbook.getSheet(TemplatePopulateImportConstants.STAFF_SHEET_NAME),
fieldOfficerName);
LocalDate submittedOnDate = ImportHandlerUtils.readAsDate(RecurringDepositConstants.SUBMITTED_ON_DATE_COL, row);
String interestCompoundingPeriodType = ImportHandlerUtils.readAsString(RecurringDepositConstants.INTEREST_COMPOUNDING_PERIOD_COL,
row);
Long interestCompoundingPeriodTypeId = null;
EnumOptionData interestCompoundingPeriodTypeEnum = null;
if (interestCompoundingPeriodType != null) {
if (interestCompoundingPeriodType.equalsIgnoreCase("Daily")) {
interestCompoundingPeriodTypeId = 1L;
} else if (interestCompoundingPeriodType.equalsIgnoreCase("Monthly")) {
interestCompoundingPeriodTypeId = 4L;
} else if (interestCompoundingPeriodType.equalsIgnoreCase("Quarterly")) {
interestCompoundingPeriodTypeId = 5L;
} else if (interestCompoundingPeriodType.equalsIgnoreCase("Semi-Annual")) {
interestCompoundingPeriodTypeId = 6L;
} else if (interestCompoundingPeriodType.equalsIgnoreCase("Annually")) {
interestCompoundingPeriodTypeId = 7L;
}
interestCompoundingPeriodTypeEnum = new EnumOptionData(interestCompoundingPeriodTypeId, null, null);
}
String interestPostingPeriodType = ImportHandlerUtils.readAsString(RecurringDepositConstants.INTEREST_POSTING_PERIOD_COL, row);
Long interestPostingPeriodTypeId = null;
EnumOptionData interestPostingPeriodTypeEnum = null;
if (interestPostingPeriodType != null) {
if (interestPostingPeriodType.equalsIgnoreCase("Monthly")) {
interestPostingPeriodTypeId = 4L;
} else if (interestPostingPeriodType.equalsIgnoreCase("Quarterly")) {
interestPostingPeriodTypeId = 5L;
} else if (interestPostingPeriodType.equalsIgnoreCase("Annually")) {
interestPostingPeriodTypeId = 7L;
} else if (interestPostingPeriodType.equalsIgnoreCase("BiAnnual")) {
interestPostingPeriodTypeId = 6L;
}
interestPostingPeriodTypeEnum = new EnumOptionData(interestPostingPeriodTypeId, null, null);
}
String interestCalculationType = ImportHandlerUtils.readAsString(RecurringDepositConstants.INTEREST_CALCULATION_COL, row);
Long interestCalculationTypeId = null;
EnumOptionData interestCalculationTypeEnum = null;
if (interestCalculationType != null) {
if (interestCalculationType.equalsIgnoreCase("Daily Balance")) {
interestCalculationTypeId = 1L;
} else if (interestCalculationType.equalsIgnoreCase("Average Daily Balance")) {
interestCalculationTypeId = 2L;
}
interestCalculationTypeEnum = new EnumOptionData(interestCalculationTypeId, null, null);
}
String interestCalculationDaysInYearType = ImportHandlerUtils
.readAsString(RecurringDepositConstants.INTEREST_CALCULATION_DAYS_IN_YEAR_COL, row);
EnumOptionData interestCalculationDaysInYearTypeEnum = null;
Long interestCalculationDaysInYearTypeId = null;
if (interestCalculationDaysInYearType != null) {
if (interestCalculationDaysInYearType.equalsIgnoreCase("360 Days")) {
interestCalculationDaysInYearTypeId = 360L;
} else if (interestCalculationDaysInYearType.equalsIgnoreCase("365 Days")) {
interestCalculationDaysInYearTypeId = 365L;
}
interestCalculationDaysInYearTypeEnum = new EnumOptionData(interestCalculationDaysInYearTypeId, null, null);
}
Integer lockinPeriodFrequency = ImportHandlerUtils.readAsInt(RecurringDepositConstants.LOCKIN_PERIOD_COL, row);
String lockinPeriodFrequencyType = ImportHandlerUtils.readAsString(RecurringDepositConstants.LOCKIN_PERIOD_FREQUENCY_COL, row);
Long lockinPeriodFrequencyTypeId = null;
EnumOptionData lockinPeriodFrequencyTypeEnum = null;
if (lockinPeriodFrequencyType != null) {
if (lockinPeriodFrequencyType.equalsIgnoreCase(DAYS)) {
lockinPeriodFrequencyTypeId = 0L;
} else if (lockinPeriodFrequencyType.equalsIgnoreCase(WEEKS)) {
lockinPeriodFrequencyTypeId = 1L;
} else if (lockinPeriodFrequencyType.equalsIgnoreCase(MONTHS)) {
lockinPeriodFrequencyTypeId = 2L;
} else if (lockinPeriodFrequencyType.equalsIgnoreCase(YEARS)) {
lockinPeriodFrequencyTypeId = 3L;
}
lockinPeriodFrequencyTypeEnum = new EnumOptionData(lockinPeriodFrequencyTypeId, null, null);
}
BigDecimal depositAmount = null;
if (ImportHandlerUtils.readAsDouble(RecurringDepositConstants.RECURRING_DEPOSIT_AMOUNT_COL, row) != null) {
depositAmount = BigDecimal
.valueOf(ImportHandlerUtils.readAsDouble(RecurringDepositConstants.RECURRING_DEPOSIT_AMOUNT_COL, row));
}
Integer depositPeriod = ImportHandlerUtils.readAsInt(RecurringDepositConstants.DEPOSIT_PERIOD_COL, row);
String depositPeriodFrequency = ImportHandlerUtils.readAsString(RecurringDepositConstants.DEPOSIT_PERIOD_FREQUENCY_COL, row);
Long depositPeriodFrequencyId = null;
if (depositPeriodFrequency != null) {
if (depositPeriodFrequency.equalsIgnoreCase(DAYS)) {
depositPeriodFrequencyId = 0L;
} else if (depositPeriodFrequency.equalsIgnoreCase(WEEKS)) {
depositPeriodFrequencyId = 1L;
} else if (depositPeriodFrequency.equalsIgnoreCase(MONTHS)) {
depositPeriodFrequencyId = 2L;
} else if (depositPeriodFrequency.equalsIgnoreCase(YEARS)) {
depositPeriodFrequencyId = 3L;
}
}
Integer recurringFrequency = ImportHandlerUtils.readAsInt(RecurringDepositConstants.DEPOSIT_FREQUENCY_COL, row);
String recurringFrequencyType = ImportHandlerUtils.readAsString(RecurringDepositConstants.DEPOSIT_FREQUENCY_TYPE_COL, row);
Long recurringFrequencyTypeId = null;
EnumOptionData recurringFrequencyTypeEnum = null;
if (recurringFrequencyType != null) {
if (recurringFrequencyType.equalsIgnoreCase(DAYS)) {
recurringFrequencyTypeId = 0L;
} else if (recurringFrequencyType.equalsIgnoreCase(WEEKS)) {
recurringFrequencyTypeId = 1L;
} else if (recurringFrequencyType.equalsIgnoreCase(MONTHS)) {
recurringFrequencyTypeId = 2L;
} else if (recurringFrequencyType.equalsIgnoreCase(YEARS)) {
recurringFrequencyTypeId = 3L;
}
recurringFrequencyTypeEnum = new EnumOptionData(recurringFrequencyTypeId, null, null);
}
LocalDate depositStartDate = ImportHandlerUtils.readAsDate(RecurringDepositConstants.DEPOSIT_START_DATE_COL, row);
Boolean allowWithdrawal = ImportHandlerUtils.readAsBoolean(RecurringDepositConstants.ALLOW_WITHDRAWAL_COL, row);
Boolean isMandatoryDeposit = ImportHandlerUtils.readAsBoolean(RecurringDepositConstants.IS_MANDATORY_DEPOSIT_COL, row);
Boolean inheritCalendar = ImportHandlerUtils.readAsBoolean(RecurringDepositConstants.FREQ_SAME_AS_GROUP_CENTER_COL, row);
Boolean adjustAdvancePayments = ImportHandlerUtils.readAsBoolean(RecurringDepositConstants.ADJUST_ADVANCE_PAYMENTS_COL, row);
String clientName = ImportHandlerUtils.readAsString(RecurringDepositConstants.CLIENT_NAME_COL, row);
String externalId = ImportHandlerUtils.readAsString(RecurringDepositConstants.EXTERNAL_ID_COL, row);
List<SavingsAccountChargeData> charges = new ArrayList<>();
String charge1 = ImportHandlerUtils.readAsString(RecurringDepositConstants.CHARGE_ID_1, row);
String charge2 = ImportHandlerUtils.readAsString(RecurringDepositConstants.CHARGE_ID_2, row);
if (charge1 != null) {
if (ImportHandlerUtils.readAsDouble(RecurringDepositConstants.CHARGE_AMOUNT_1, row) != null) {
charges.add(new SavingsAccountChargeData(ImportHandlerUtils.readAsLong(RecurringDepositConstants.CHARGE_ID_1, row),
BigDecimal.valueOf(ImportHandlerUtils.readAsDouble(RecurringDepositConstants.CHARGE_AMOUNT_1, row)),
ImportHandlerUtils.readAsDate(RecurringDepositConstants.CHARGE_DUE_DATE_1, row)));
} else {
charges.add(new SavingsAccountChargeData(ImportHandlerUtils.readAsLong(RecurringDepositConstants.CHARGE_ID_1, row), null,
ImportHandlerUtils.readAsDate(RecurringDepositConstants.CHARGE_DUE_DATE_1, row)));
}
}
if (charge2 != null) {
if (ImportHandlerUtils.readAsDouble(RecurringDepositConstants.CHARGE_AMOUNT_2, row) != null) {
charges.add(new SavingsAccountChargeData(ImportHandlerUtils.readAsLong(RecurringDepositConstants.CHARGE_ID_2, row),
BigDecimal.valueOf(ImportHandlerUtils.readAsDouble(RecurringDepositConstants.CHARGE_AMOUNT_2, row)),
ImportHandlerUtils.readAsDate(RecurringDepositConstants.CHARGE_DUE_DATE_2, row)));
} else {
charges.add(new SavingsAccountChargeData(ImportHandlerUtils.readAsLong(RecurringDepositConstants.CHARGE_ID_2, row), null,
ImportHandlerUtils.readAsDate(RecurringDepositConstants.CHARGE_DUE_DATE_2, row)));
}
}
String status = ImportHandlerUtils.readAsString(RecurringDepositConstants.STATUS_COL, row);
statuses.add(status);
Long clientId = ImportHandlerUtils.getIdByName(workbook.getSheet(TemplatePopulateImportConstants.CLIENT_SHEET_NAME), clientName);
return RecurringDepositAccountData.importInstance(clientId, productId, fieldOfficerId, submittedOnDate,
interestCompoundingPeriodTypeEnum, interestPostingPeriodTypeEnum, interestCalculationTypeEnum,
interestCalculationDaysInYearTypeEnum, lockinPeriodFrequency, lockinPeriodFrequencyTypeEnum, depositAmount, depositPeriod,
depositPeriodFrequencyId, depositStartDate, recurringFrequency, recurringFrequencyTypeEnum, inheritCalendar,
isMandatoryDeposit, allowWithdrawal, adjustAdvancePayments, externalId, charges, row.getRowNum(), locale, dateFormat);
}