diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/data/CalendarData.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/data/CalendarData.java index 476a9a309..8830421cf 100644 --- a/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/data/CalendarData.java +++ b/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/data/CalendarData.java @@ -116,7 +116,7 @@ public final class CalendarData implements Serializable { this.dateFormat = dateFormat; this.locale = locale; this.description = ""; - this.typeId = "1"; + this.typeId = "4"; this.id = null; this.calendarInstanceId = null; this.entityId = null; diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/client/data/ClientData.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/client/data/ClientData.java index 4bf87374f..e0f0dc3be 100644 --- a/fineract-core/src/main/java/org/apache/fineract/portfolio/client/data/ClientData.java +++ b/fineract-core/src/main/java/org/apache/fineract/portfolio/client/data/ClientData.java @@ -269,7 +269,7 @@ public final class ClientData implements Comparable, Serializable { this.clientNonPersonConstitutionOptions = null; this.clientNonPersonMainBusinessLineOptions = null; this.clientLegalFormOptions = null; - this.clientNonPersonDetails = null; + this.clientNonPersonDetails = clientNonPersonDetails; this.isAddressEnabled = null; this.datatables = null; this.familyMemberOptions = null; diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionData.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionData.java index 8aa9a5868..bf1028b5f 100644 --- a/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionData.java +++ b/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionData.java @@ -72,7 +72,7 @@ public final class SavingsAccountTransactionData implements Serializable { private final LocalDate submittedOnDate; private final boolean interestedPostedAsOn; private final String submittedByUsername; - private final String note; + private String note; private final boolean isManualTransaction; private final Boolean isReversal; private final Long originalTransactionId; @@ -255,8 +255,8 @@ public final class SavingsAccountTransactionData implements Serializable { } public static SavingsAccountTransactionData importInstance(BigDecimal transactionAmount, LocalDate transactionDate, Long paymentTypeId, - String accountNumber, String checkNumber, String routingCode, String receiptNumber, String bankNumber, Long savingsAccountId, - SavingsAccountTransactionEnumData transactionType, Integer rowIndex, String locale, String dateFormat) { + String accountNumber, String checkNumber, String routingCode, String receiptNumber, String bankNumber, String note, + Long savingsAccountId, SavingsAccountTransactionEnumData transactionType, Integer rowIndex, String locale, String dateFormat) { SavingsAccountTransactionData data = createImport(transactionType, null, savingsAccountId, accountNumber, transactionDate, transactionAmount, false, transactionDate, false, false); data.rowIndex = rowIndex; @@ -265,6 +265,7 @@ public final class SavingsAccountTransactionData implements Serializable { data.routingCode = routingCode; data.receiptNumber = receiptNumber; data.bankNumber = bankNumber; + data.note = note; data.locale = locale; data.dateFormat = dateFormat; return data; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/TransactionConstants.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/TransactionConstants.java index 650eda36f..d5e20bd5f 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/TransactionConstants.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/TransactionConstants.java @@ -38,10 +38,11 @@ public final class TransactionConstants { public static final int ROUTING_CODE_COL = 11; public static final int RECEIPT_NO_COL = 12; public static final int BANK_NO_COL = 13; - public static final int STATUS_COL = 14; - public static final int LOOKUP_CLIENT_NAME_COL = 15; - public static final int LOOKUP_ACCOUNT_NO_COL = 16; - public static final int LOOKUP_PRODUCT_COL = 17; - public static final int LOOKUP_OPENING_BALANCE_COL = 18; - public static final int LOOKUP_SAVINGS_ACTIVATION_DATE_COL = 19; + public static final int NOTE_COL = 14; + public static final int STATUS_COL = 15; + public static final int LOOKUP_CLIENT_NAME_COL = 16; + public static final int LOOKUP_ACCOUNT_NO_COL = 17; + public static final int LOOKUP_PRODUCT_COL = 18; + public static final int LOOKUP_OPENING_BALANCE_COL = 19; + public static final int LOOKUP_SAVINGS_ACTIVATION_DATE_COL = 20; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/client/ClientEntityImportHandler.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/client/ClientEntityImportHandler.java index 66f73d581..9b08efaa0 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/client/ClientEntityImportHandler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/client/ClientEntityImportHandler.java @@ -89,9 +89,9 @@ public class ClientEntityImportHandler implements ImportHandler { officeId = null; } String staffName = ImportHandlerUtils.readAsString(ClientEntityConstants.STAFF_NAME_COL, row); - Long staffId = ImportHandlerUtils.getIdByName(workbook.getSheet(TemplatePopulateImportConstants.STAFF_SHEET_NAME), staffName); - if (staffId == 0L) { - staffId = null; + Long staffId = null; + if (staffName != null) { + staffId = ImportHandlerUtils.getIdByName(workbook.getSheet(TemplatePopulateImportConstants.STAFF_SHEET_NAME), staffName); } LocalDate incorportionDate = ImportHandlerUtils.readAsDate(ClientEntityConstants.INCOPORATION_DATE_COL, row); LocalDate incorporationTill = ImportHandlerUtils.readAsDate(ClientEntityConstants.INCOPORATION_VALID_TILL_COL, row); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/client/ClientPersonImportHandler.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/client/ClientPersonImportHandler.java index 2e6ddce85..e35027a19 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/client/ClientPersonImportHandler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/client/ClientPersonImportHandler.java @@ -90,9 +90,9 @@ public class ClientPersonImportHandler implements ImportHandler { officeId = null; } String staffName = ImportHandlerUtils.readAsString(ClientPersonConstants.STAFF_NAME_COL, row); - Long staffId = ImportHandlerUtils.getIdByName(workbook.getSheet(TemplatePopulateImportConstants.STAFF_SHEET_NAME), staffName); - if (staffId == 0L) { - staffId = null; + Long staffId = null; + if (staffName != null) { + staffId = ImportHandlerUtils.getIdByName(workbook.getSheet(TemplatePopulateImportConstants.STAFF_SHEET_NAME), staffName); } ExternalId externalId = externalIdFactory.create(ImportHandlerUtils.readAsString(ClientPersonConstants.EXTERNAL_ID_COL, row)); LocalDate submittedOn = ImportHandlerUtils.readAsDate(ClientPersonConstants.SUBMITTED_ON_COL, row); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/fixeddeposits/FixedDepositTransactionImportHandler.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/fixeddeposits/FixedDepositTransactionImportHandler.java index 8df781e54..1a56ab944 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/fixeddeposits/FixedDepositTransactionImportHandler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/fixeddeposits/FixedDepositTransactionImportHandler.java @@ -110,8 +110,9 @@ public class FixedDepositTransactionImportHandler implements ImportHandler { String routingCode = ImportHandlerUtils.readAsString(TransactionConstants.ROUTING_CODE_COL, row); String receiptNumber = ImportHandlerUtils.readAsString(TransactionConstants.RECEIPT_NO_COL, row); String bankNumber = ImportHandlerUtils.readAsString(TransactionConstants.BANK_NO_COL, row); + String note = ImportHandlerUtils.readAsString(TransactionConstants.NOTE_COL, row); return SavingsAccountTransactionData.importInstance(amount, transactionDate, paymentTypeId, accountNumber, checkNumber, routingCode, - receiptNumber, bankNumber, savingsAccountId, savingsAccountTransactionEnumData, row.getRowNum(), locale, dateFormat); + receiptNumber, bankNumber, note, savingsAccountId, savingsAccountTransactionEnumData, row.getRowNum(), locale, dateFormat); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/group/GroupImportHandler.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/group/GroupImportHandler.java index 85cccce8a..227da531c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/group/GroupImportHandler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/group/GroupImportHandler.java @@ -244,11 +244,20 @@ public class GroupImportHandler implements ImportHandler { gsonBuilder.registerTypeAdapter(LocalDate.class, new DateSerializer(dateFormat, meetings.get(rowIndex).getLocale())); gsonBuilder.registerTypeAdapter(EnumOptionData.class, new EnumOptionDataValueSerializer()); - CalendarData modifiedCalendarData = new CalendarData(calendarData.getTitle(), calendarData.getDescription(), - calendarData.getStartDate(), calendarData.isRepeating(), calendarData.getFrequency(), calendarData.getInterval(), - calendarData.getRepeatsOnDay(), calendarData.getDateFormat(), calendarData.getLocale(), calendarData.getTypeId()); + String payload; + CalendarData modifiedCalendarData; + if (calendarData.isRepeating() == false) { + modifiedCalendarData = new CalendarData(calendarData.getTitle(), calendarData.getDescription(), calendarData.getStartDate(), + calendarData.isRepeating(), null, calendarData.getInterval(), calendarData.getRepeatsOnDay(), + calendarData.getDateFormat(), calendarData.getLocale(), calendarData.getTypeId()); - String payload = gsonBuilder.create().toJson(modifiedCalendarData); + } else { + modifiedCalendarData = new CalendarData(calendarData.getTitle(), calendarData.getDescription(), calendarData.getStartDate(), + calendarData.isRepeating(), calendarData.getFrequency(), calendarData.getInterval(), calendarData.getRepeatsOnDay(), + calendarData.getDateFormat(), calendarData.getLocale(), calendarData.getTypeId()); + + } + payload = gsonBuilder.create().toJson(modifiedCalendarData); CommandWrapper commandWrapper = new CommandWrapper(result.getOfficeId(), result.getGroupId(), result.getClientId(), result.getLoanId(), result.getSavingsId(), null, null, null, null, null, payload, result.getTransactionId(), diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/recurringdeposit/RecurringDepositTransactionImportHandler.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/recurringdeposit/RecurringDepositTransactionImportHandler.java index cb438237d..e4c01756d 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/recurringdeposit/RecurringDepositTransactionImportHandler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/recurringdeposit/RecurringDepositTransactionImportHandler.java @@ -106,8 +106,9 @@ public class RecurringDepositTransactionImportHandler implements ImportHandler { String routingCode = ImportHandlerUtils.readAsString(TransactionConstants.ROUTING_CODE_COL, row); String receiptNumber = ImportHandlerUtils.readAsString(TransactionConstants.RECEIPT_NO_COL, row); String bankNumber = ImportHandlerUtils.readAsString(TransactionConstants.BANK_NO_COL, row); + String note = ImportHandlerUtils.readAsString(TransactionConstants.NOTE_COL, row); return SavingsAccountTransactionData.importInstance(amount, transactionDate, paymentTypeId, accountNumber, checkNumber, routingCode, - receiptNumber, bankNumber, savingsAccountId, savingsAccountTransactionEnumData, row.getRowNum(), locale, dateFormat); + receiptNumber, bankNumber, note, savingsAccountId, savingsAccountTransactionEnumData, row.getRowNum(), locale, dateFormat); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/savings/SavingsTransactionImportHandler.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/savings/SavingsTransactionImportHandler.java index 42a2c87c7..49c9534ce 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/savings/SavingsTransactionImportHandler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/savings/SavingsTransactionImportHandler.java @@ -109,8 +109,9 @@ public class SavingsTransactionImportHandler implements ImportHandler { String routingCode = ImportHandlerUtils.readAsString(TransactionConstants.ROUTING_CODE_COL, row); String receiptNumber = ImportHandlerUtils.readAsString(TransactionConstants.RECEIPT_NO_COL, row); String bankNumber = ImportHandlerUtils.readAsString(TransactionConstants.BANK_NO_COL, row); + String note = ImportHandlerUtils.readAsString(TransactionConstants.NOTE_COL, row); return SavingsAccountTransactionData.importInstance(amount, transactionDate, paymentTypeId, accountNumber, checkNumber, routingCode, - receiptNumber, bankNumber, savingsAccountId, savingsAccountTransactionEnumData, row.getRowNum(), locale, dateFormat); + receiptNumber, bankNumber, note, savingsAccountId, savingsAccountTransactionEnumData, row.getRowNum(), locale, dateFormat); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/chartofaccounts/ChartOfAccountsWorkbook.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/chartofaccounts/ChartOfAccountsWorkbook.java index 42b373818..463065bb6 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/chartofaccounts/ChartOfAccountsWorkbook.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/chartofaccounts/ChartOfAccountsWorkbook.java @@ -217,16 +217,32 @@ public class ChartOfAccountsWorkbook extends AbstractWorkbookPopulator { List accountNameAndTagAr = Splitter.on('-').splitToList(accountNameandTag); writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_NAME_COL, row, accountNameAndTagAr.get(0)); writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_ID_COL, row, accountNameAndTagAr.get(1)); - writeString(ChartOfAcountsConstants.LOOKUP_TAG_COL, row, accountNameAndTagAr.get(2)); - writeString(ChartOfAcountsConstants.LOOKUP_TAG_ID_COL, row, accountNameAndTagAr.get(3)); + if (accountNameAndTagAr.get(2).equals("null")) { + writeString(ChartOfAcountsConstants.LOOKUP_TAG_COL, row, ""); + } else { + writeString(ChartOfAcountsConstants.LOOKUP_TAG_COL, row, accountNameAndTagAr.get(2)); + } + if (accountNameAndTagAr.get(3).equals("0")) { + writeString(ChartOfAcountsConstants.LOOKUP_TAG_ID_COL, row, ""); + } else { + writeString(ChartOfAcountsConstants.LOOKUP_TAG_ID_COL, row, accountNameAndTagAr.get(3)); + } rowIndex++; } else { row = chartOfAccountsSheet.createRow(rowIndex); List accountNameAndTagAr = Splitter.on('-').splitToList(accountNameandTag); writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_NAME_COL, row, accountNameAndTagAr.get(0)); writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_ID_COL, row, accountNameAndTagAr.get(1)); - writeString(ChartOfAcountsConstants.LOOKUP_TAG_COL, row, accountNameAndTagAr.get(2)); - writeString(ChartOfAcountsConstants.LOOKUP_TAG_ID_COL, row, accountNameAndTagAr.get(3)); + if (accountNameAndTagAr.get(2).equals("null")) { + writeString(ChartOfAcountsConstants.LOOKUP_TAG_COL, row, ""); + } else { + writeString(ChartOfAcountsConstants.LOOKUP_TAG_COL, row, accountNameAndTagAr.get(2)); + } + if (accountNameAndTagAr.get(3).equals("0")) { + writeString(ChartOfAcountsConstants.LOOKUP_TAG_ID_COL, row, ""); + } else { + writeString(ChartOfAcountsConstants.LOOKUP_TAG_ID_COL, row, accountNameAndTagAr.get(3)); + } rowIndex++; } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/client/ClientEntityWorkbookPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/client/ClientEntityWorkbookPopulator.java index e8219042f..985d209f8 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/client/ClientEntityWorkbookPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/client/ClientEntityWorkbookPopulator.java @@ -94,6 +94,8 @@ public class ClientEntityWorkbookPopulator extends AbstractWorkbookPopulator { setFormatActivationAndSubmittedDate(row, ClientEntityConstants.ACTIVATION_DATE_COL, dateCellStyle); setFormatActivationAndSubmittedDate(row, ClientEntityConstants.SUBMITTED_ON_COL, dateCellStyle); + setFormatActivationAndSubmittedDate(row, ClientEntityConstants.INCOPORATION_VALID_TILL_COL, dateCellStyle); + setFormatActivationAndSubmittedDate(row, ClientEntityConstants.INCOPORATION_DATE_COL, dateCellStyle); } } @@ -221,7 +223,7 @@ public class ClientEntityWorkbookPopulator extends AbstractWorkbookPopulator { writeString(ClientEntityConstants.CLIENT_CLASSIFICATION_COL, rowHeader, "Client Classification "); writeString(ClientEntityConstants.INCOPORATION_NUMBER_COL, rowHeader, "Incorporation Number"); writeString(ClientEntityConstants.MAIN_BUSINESS_LINE, rowHeader, "Main Business Line"); - writeString(ClientEntityConstants.CONSTITUTION_COL, rowHeader, "Constitution"); + writeString(ClientEntityConstants.CONSTITUTION_COL, rowHeader, "Constitution*"); writeString(ClientEntityConstants.REMARKS_COL, rowHeader, "Remarks"); writeString(ClientEntityConstants.EXTERNAL_ID_COL, rowHeader, "External ID "); writeString(ClientEntityConstants.SUBMITTED_ON_COL, rowHeader, "Submitted On Date"); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/fixeddeposits/FixedDepositTransactionWorkbookPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/fixeddeposits/FixedDepositTransactionWorkbookPopulator.java index 3c6abea74..b656567a7 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/fixeddeposits/FixedDepositTransactionWorkbookPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/fixeddeposits/FixedDepositTransactionWorkbookPopulator.java @@ -32,7 +32,10 @@ import org.apache.fineract.portfolio.savings.data.SavingsAccountData; import org.apache.poi.hssf.usermodel.HSSFDataValidationHelper; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.ss.SpreadsheetVersion; +import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.CreationHelper; import org.apache.poi.ss.usermodel.DataValidation; import org.apache.poi.ss.usermodel.DataValidationConstraint; import org.apache.poi.ss.usermodel.DataValidationHelper; @@ -68,6 +71,7 @@ public class FixedDepositTransactionWorkbookPopulator extends AbstractWorkbookPo populateSavingsTable(savingsTransactionSheet, dateFormat); setRules(savingsTransactionSheet, dateFormat); setDefaults(savingsTransactionSheet); + setTextFormatStyle(workbook, savingsTransactionSheet, TransactionConstants.SAVINGS_ACCOUNT_NO_COL); } private void setDefaults(Sheet worksheet) { @@ -77,11 +81,33 @@ public class FixedDepositTransactionWorkbookPopulator extends AbstractWorkbookPo row = worksheet.createRow(rowNo); } writeFormula(TransactionConstants.PRODUCT_COL, row, - "IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",2,FALSE)),\"\",VLOOKUP($C" - + (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",2,FALSE))"); + "IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$R$2:$S$" + (savingsAccounts.size() + 1) + ",2,FALSE)),\"\",VLOOKUP($C" + + (rowNo + 1) + ",$R$2:$T$" + (savingsAccounts.size() + 1) + ",2,FALSE))"); writeFormula(TransactionConstants.OPENING_BALANCE_COL, row, - "IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",3,FALSE)),\"\",VLOOKUP($C" - + (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",3,FALSE))"); + "IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$R$2:$T$" + (savingsAccounts.size() + 1) + ",3,FALSE)),\"\",VLOOKUP($C" + + (rowNo + 1) + ",$R$2:$T$" + (savingsAccounts.size() + 1) + ",3,FALSE))"); + } + } + + private void setTextFormatStyle(Workbook workbook, Sheet worksheet, int... textCols) { + CellStyle textCellStyle = workbook.createCellStyle(); + CreationHelper createHelper = workbook.getCreationHelper(); + short textFmt = createHelper.createDataFormat().getFormat("@"); + textCellStyle.setDataFormat(textFmt); + + for (int rowIndex = 1; rowIndex < SpreadsheetVersion.EXCEL97.getMaxRows(); rowIndex++) { + Row row = worksheet.getRow(rowIndex); + if (row == null) { + row = worksheet.createRow(rowIndex); + } + for (int col : textCols) { + Cell cell = row.getCell(col); + if (cell == null) { + cell = row.createCell(col); + } + cell.setCellType(CellType.STRING); + cell.setCellStyle(textCellStyle); + } } } @@ -113,7 +139,7 @@ public class FixedDepositTransactionWorkbookPopulator extends AbstractWorkbookPo DataValidationConstraint paymentTypeConstraint = validationHelper.createFormulaListConstraint("PaymentTypes"); DataValidationConstraint transactionDateConstraint = validationHelper.createDateConstraint( DataValidationConstraint.OperatorType.BETWEEN, - "=DATEVALUE(VLOOKUP($C1,$Q$2:$T$" + (savingsAccounts.size() + 1) + ",4,FALSE))", "=TODAY()", dateFormat); + "=DATEVALUE(VLOOKUP($C1,$R$2:$T$" + (savingsAccounts.size() + 1) + ",4,FALSE))", "=TODAY()", dateFormat); DataValidation officeValidation = validationHelper.createValidation(officeNameConstraint, officeNameRange); DataValidation clientValidation = validationHelper.createValidation(clientNameConstraint, clientNameRange); @@ -179,8 +205,8 @@ public class FixedDepositTransactionWorkbookPopulator extends AbstractWorkbookPo for (int j = 0; j < clientsWithActiveSavings.size(); j++) { Name name = savingsTransactionWorkbook.createName(); setSanitized(name, "Account_" + clientsWithActiveSavings.get(j) + "_" + clientIdsWithActiveSavings.get(j) + "_"); - name.setRefersToFormula(TemplatePopulateImportConstants.FIXED_DEPOSIT_TRANSACTION_SHEET_NAME + "!$Q$" - + clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[0] + ":$Q$" + name.setRefersToFormula(TemplatePopulateImportConstants.FIXED_DEPOSIT_TRANSACTION_SHEET_NAME + "!$R$" + + clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[0] + ":$R$" + clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[1]); } @@ -233,6 +259,7 @@ public class FixedDepositTransactionWorkbookPopulator extends AbstractWorkbookPo worksheet.setColumnWidth(TransactionConstants.RECEIPT_NO_COL, 3000); worksheet.setColumnWidth(TransactionConstants.ROUTING_CODE_COL, 3000); worksheet.setColumnWidth(TransactionConstants.BANK_NO_COL, 3000); + worksheet.setColumnWidth(TransactionConstants.NOTE_COL, 3000); worksheet.setColumnWidth(TransactionConstants.LOOKUP_CLIENT_NAME_COL, 5000); worksheet.setColumnWidth(TransactionConstants.LOOKUP_ACCOUNT_NO_COL, 3000); worksheet.setColumnWidth(TransactionConstants.LOOKUP_PRODUCT_COL, 3000); @@ -252,6 +279,7 @@ public class FixedDepositTransactionWorkbookPopulator extends AbstractWorkbookPo writeString(TransactionConstants.RECEIPT_NO_COL, rowHeader, "Receipt No"); writeString(TransactionConstants.ROUTING_CODE_COL, rowHeader, "Routing Code"); writeString(TransactionConstants.BANK_NO_COL, rowHeader, "Bank No"); + writeString(TransactionConstants.NOTE_COL, rowHeader, "Note"); writeString(TransactionConstants.LOOKUP_CLIENT_NAME_COL, rowHeader, "Lookup Client"); writeString(TransactionConstants.LOOKUP_ACCOUNT_NO_COL, rowHeader, "Lookup Account"); writeString(TransactionConstants.LOOKUP_PRODUCT_COL, rowHeader, "Lookup Product"); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/group/GroupsWorkbookPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/group/GroupsWorkbookPopulator.java index 338edad73..b8ea7b871 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/group/GroupsWorkbookPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/group/GroupsWorkbookPopulator.java @@ -207,7 +207,7 @@ public class GroupsWorkbookPopulator extends AbstractWorkbookPopulator { DataValidationConstraint submittedOnDateConstraint = validationHelper .createDateConstraint(DataValidationConstraint.OperatorType.LESS_OR_EQUAL, "=TODAY()", null, dateFormat); DataValidationConstraint meetingStartDateConstraint = validationHelper - .createDateConstraint(DataValidationConstraint.OperatorType.BETWEEN, "=$G1", "=TODAY()", dateFormat); + .createDateConstraint(DataValidationConstraint.OperatorType.BETWEEN, "=$H1", "=TODAY()", dateFormat); DataValidationConstraint repeatsConstraint = validationHelper.createExplicitListConstraint( new String[] { TemplatePopulateImportConstants.FREQUENCY_DAILY, TemplatePopulateImportConstants.FREQUENCY_WEEKLY, TemplatePopulateImportConstants.FREQUENCY_MONTHLY, TemplatePopulateImportConstants.FREQUENCY_YEARLY }); @@ -261,6 +261,15 @@ public class GroupsWorkbookPopulator extends AbstractWorkbookPopulator { Name repeatsOnWeekly = centerWorkbook.createName(); repeatsOnWeekly.setNameName("Weekly_Days"); repeatsOnWeekly.setRefersToFormula(TemplatePopulateImportConstants.GROUP_SHEET_NAME + "!$IV$2:$IV$8"); + Name repeatsOnDaily = centerWorkbook.createName(); + repeatsOnDaily.setNameName("Daily_Days"); + repeatsOnDaily.setRefersToFormula(TemplatePopulateImportConstants.GROUP_SHEET_NAME + "!$IV$2:$IV$8"); + Name repeatOnYearly = centerWorkbook.createName(); + repeatOnYearly.setNameName("Yearly_Days"); + repeatOnYearly.setRefersToFormula(TemplatePopulateImportConstants.GROUP_SHEET_NAME + "!$IV$2:$IV$8"); + Name repeatsOnMonthly = centerWorkbook.createName(); + repeatsOnMonthly.setNameName("Monthly_Days"); + repeatsOnMonthly.setRefersToFormula(TemplatePopulateImportConstants.GROUP_SHEET_NAME + "!$IV$2:$IV$8"); // Staff Names for each office & center Names for each office for (Integer i = 0; i < offices.size(); i++) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/recurringdeposit/RecurringDepositTransactionWorkbookPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/recurringdeposit/RecurringDepositTransactionWorkbookPopulator.java index 400e8fc9c..a35c963bc 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/recurringdeposit/RecurringDepositTransactionWorkbookPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/recurringdeposit/RecurringDepositTransactionWorkbookPopulator.java @@ -32,7 +32,10 @@ import org.apache.fineract.portfolio.savings.data.SavingsAccountData; import org.apache.poi.hssf.usermodel.HSSFDataValidationHelper; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.ss.SpreadsheetVersion; +import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.CreationHelper; import org.apache.poi.ss.usermodel.DataValidation; import org.apache.poi.ss.usermodel.DataValidationConstraint; import org.apache.poi.ss.usermodel.DataValidationHelper; @@ -69,6 +72,7 @@ public class RecurringDepositTransactionWorkbookPopulator extends AbstractWorkbo populateSavingsTable(savingsTransactionSheet, dateFormat); setRules(savingsTransactionSheet, dateFormat); setDefaults(savingsTransactionSheet); + setTextFormatStyle(workbook, savingsTransactionSheet, TransactionConstants.SAVINGS_ACCOUNT_NO_COL); } private void setDefaults(Sheet worksheet) { @@ -78,11 +82,33 @@ public class RecurringDepositTransactionWorkbookPopulator extends AbstractWorkbo row = worksheet.createRow(rowNo); } writeFormula(TransactionConstants.PRODUCT_COL, row, - "IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",2,FALSE)),\"\",VLOOKUP($C" - + (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",2,FALSE))"); + "IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$R$2:$S$" + (savingsAccounts.size() + 1) + ",2,FALSE)),\"\",VLOOKUP($C" + + (rowNo + 1) + ",$R$2:$T$" + (savingsAccounts.size() + 1) + ",2,FALSE))"); writeFormula(TransactionConstants.OPENING_BALANCE_COL, row, - "IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",3,FALSE)),\"\",VLOOKUP($C" - + (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",3,FALSE))"); + "IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$R$2:$T$" + (savingsAccounts.size() + 1) + ",3,FALSE)),\"\",VLOOKUP($C" + + (rowNo + 1) + ",$R$2:$T$" + (savingsAccounts.size() + 1) + ",3,FALSE))"); + } + } + + private void setTextFormatStyle(Workbook workbook, Sheet worksheet, int... textCols) { + CellStyle textCellStyle = workbook.createCellStyle(); + CreationHelper createHelper = workbook.getCreationHelper(); + short textFmt = createHelper.createDataFormat().getFormat("@"); + textCellStyle.setDataFormat(textFmt); + + for (int rowIndex = 1; rowIndex < SpreadsheetVersion.EXCEL97.getMaxRows(); rowIndex++) { + Row row = worksheet.getRow(rowIndex); + if (row == null) { + row = worksheet.createRow(rowIndex); + } + for (int col : textCols) { + Cell cell = row.getCell(col); + if (cell == null) { + cell = row.createCell(col); + } + cell.setCellType(CellType.STRING); + cell.setCellStyle(textCellStyle); + } } } @@ -114,7 +140,7 @@ public class RecurringDepositTransactionWorkbookPopulator extends AbstractWorkbo DataValidationConstraint paymentTypeConstraint = validationHelper.createFormulaListConstraint("PaymentTypes"); DataValidationConstraint transactionDateConstraint = validationHelper.createDateConstraint( DataValidationConstraint.OperatorType.BETWEEN, - "=DATEVALUE(VLOOKUP($C1,$Q$2:$T$" + (savingsAccounts.size() + 1) + ",4,FALSE))", "=TODAY()", dateFormat); + "=DATEVALUE(VLOOKUP($C1,$R$2:$T$" + (savingsAccounts.size() + 1) + ",4,FALSE))", "=TODAY()", dateFormat); DataValidation officeValidation = validationHelper.createValidation(officeNameConstraint, officeNameRange); DataValidation clientValidation = validationHelper.createValidation(clientNameConstraint, clientNameRange); @@ -180,8 +206,8 @@ public class RecurringDepositTransactionWorkbookPopulator extends AbstractWorkbo for (int j = 0; j < clientsWithActiveSavings.size(); j++) { Name name = savingsTransactionWorkbook.createName(); setSanitized(name, "Account_" + clientsWithActiveSavings.get(j) + "_" + clientIdsWithActiveSavings.get(j) + "_"); - name.setRefersToFormula(TemplatePopulateImportConstants.SAVINGS_TRANSACTION_SHEET_NAME + "!$Q$" - + clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[0] + ":$Q$" + name.setRefersToFormula(TemplatePopulateImportConstants.SAVINGS_TRANSACTION_SHEET_NAME + "!$R$" + + clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[0] + ":$R$" + clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[1]); } @@ -234,6 +260,7 @@ public class RecurringDepositTransactionWorkbookPopulator extends AbstractWorkbo worksheet.setColumnWidth(TransactionConstants.RECEIPT_NO_COL, 3000); worksheet.setColumnWidth(TransactionConstants.ROUTING_CODE_COL, 3000); worksheet.setColumnWidth(TransactionConstants.BANK_NO_COL, 3000); + worksheet.setColumnWidth(TransactionConstants.NOTE_COL, 3000); worksheet.setColumnWidth(TransactionConstants.LOOKUP_CLIENT_NAME_COL, 5000); worksheet.setColumnWidth(TransactionConstants.LOOKUP_ACCOUNT_NO_COL, 3000); worksheet.setColumnWidth(TransactionConstants.LOOKUP_PRODUCT_COL, 3000); @@ -253,6 +280,7 @@ public class RecurringDepositTransactionWorkbookPopulator extends AbstractWorkbo writeString(TransactionConstants.RECEIPT_NO_COL, rowHeader, "Receipt No"); writeString(TransactionConstants.ROUTING_CODE_COL, rowHeader, "Routing Code"); writeString(TransactionConstants.BANK_NO_COL, rowHeader, "Bank No"); + writeString(TransactionConstants.NOTE_COL, rowHeader, "Note"); writeString(TransactionConstants.LOOKUP_CLIENT_NAME_COL, rowHeader, "Lookup Client"); writeString(TransactionConstants.LOOKUP_ACCOUNT_NO_COL, rowHeader, "Lookup Account"); writeString(TransactionConstants.LOOKUP_PRODUCT_COL, rowHeader, "Lookup Product"); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/savings/SavingsTransactionsWorkbookPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/savings/SavingsTransactionsWorkbookPopulator.java index ce47a7ac5..8210d8b5e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/savings/SavingsTransactionsWorkbookPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/savings/SavingsTransactionsWorkbookPopulator.java @@ -32,7 +32,10 @@ import org.apache.fineract.portfolio.savings.data.SavingsAccountData; import org.apache.poi.hssf.usermodel.HSSFDataValidationHelper; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.ss.SpreadsheetVersion; +import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.CreationHelper; import org.apache.poi.ss.usermodel.DataValidation; import org.apache.poi.ss.usermodel.DataValidationConstraint; import org.apache.poi.ss.usermodel.DataValidationHelper; @@ -68,6 +71,7 @@ public class SavingsTransactionsWorkbookPopulator extends AbstractWorkbookPopula populateSavingsTable(savingsTransactionSheet, dateFormat); setRules(savingsTransactionSheet, dateFormat); setDefaults(savingsTransactionSheet); + setTextFormatStyle(workbook, savingsTransactionSheet, TransactionConstants.SAVINGS_ACCOUNT_NO_COL); } private void setDefaults(Sheet worksheet) { @@ -77,11 +81,33 @@ public class SavingsTransactionsWorkbookPopulator extends AbstractWorkbookPopula row = worksheet.createRow(rowNo); } writeFormula(TransactionConstants.PRODUCT_COL, row, - "IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",2,FALSE)),\"\",VLOOKUP($C" - + (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",2,FALSE))"); + "IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$R$2:$S$" + (savingsAccounts.size() + 1) + ",2,FALSE)),\"\",VLOOKUP($C" + + (rowNo + 1) + ",$R$2:$T$" + (savingsAccounts.size() + 1) + ",2,FALSE))"); writeFormula(TransactionConstants.OPENING_BALANCE_COL, row, - "IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",3,FALSE)),\"\",VLOOKUP($C" - + (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",3,FALSE))"); + "IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$R$2:$T$" + (savingsAccounts.size() + 1) + ",3,FALSE)),\"\",VLOOKUP($C" + + (rowNo + 1) + ",$R$2:$T$" + (savingsAccounts.size() + 1) + ",3,FALSE))"); + } + } + + private void setTextFormatStyle(Workbook workbook, Sheet worksheet, int... textCols) { + CellStyle textCellStyle = workbook.createCellStyle(); + CreationHelper createHelper = workbook.getCreationHelper(); + short textFmt = createHelper.createDataFormat().getFormat("@"); + textCellStyle.setDataFormat(textFmt); + + for (int rowIndex = 1; rowIndex < SpreadsheetVersion.EXCEL97.getMaxRows(); rowIndex++) { + Row row = worksheet.getRow(rowIndex); + if (row == null) { + row = worksheet.createRow(rowIndex); + } + for (int col : textCols) { + Cell cell = row.getCell(col); + if (cell == null) { + cell = row.createCell(col); + } + cell.setCellType(CellType.STRING); + cell.setCellStyle(textCellStyle); + } } } @@ -113,7 +139,7 @@ public class SavingsTransactionsWorkbookPopulator extends AbstractWorkbookPopula DataValidationConstraint paymentTypeConstraint = validationHelper.createFormulaListConstraint("PaymentTypes"); DataValidationConstraint transactionDateConstraint = validationHelper.createDateConstraint( DataValidationConstraint.OperatorType.BETWEEN, - "=DATEVALUE(VLOOKUP($C1,$Q$2:$T$" + (savingsAccounts.size() + 1) + ",4,FALSE))", "=TODAY()", dateFormat); + "=DATEVALUE(VLOOKUP($C1,$R$2:$T$" + (savingsAccounts.size() + 1) + ",4,FALSE))", "=TODAY()", dateFormat); DataValidation officeValidation = validationHelper.createValidation(officeNameConstraint, officeNameRange); DataValidation clientValidation = validationHelper.createValidation(clientNameConstraint, clientNameRange); @@ -179,8 +205,8 @@ public class SavingsTransactionsWorkbookPopulator extends AbstractWorkbookPopula for (int j = 0; j < clientsWithActiveSavings.size(); j++) { Name name = savingsTransactionWorkbook.createName(); setSanitized(name, "Account_" + clientsWithActiveSavings.get(j) + "_" + clientIdsWithActiveSavings.get(j) + "_"); - name.setRefersToFormula(TemplatePopulateImportConstants.SAVINGS_TRANSACTION_SHEET_NAME + "!$Q$" - + clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[0] + ":$Q$" + name.setRefersToFormula(TemplatePopulateImportConstants.SAVINGS_TRANSACTION_SHEET_NAME + "!$R$" + + clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[0] + ":$R$" + clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[1]); } @@ -235,6 +261,7 @@ public class SavingsTransactionsWorkbookPopulator extends AbstractWorkbookPopula worksheet.setColumnWidth(TransactionConstants.RECEIPT_NO_COL, 3000); worksheet.setColumnWidth(TransactionConstants.ROUTING_CODE_COL, 3000); worksheet.setColumnWidth(TransactionConstants.BANK_NO_COL, 3000); + worksheet.setColumnWidth(TransactionConstants.NOTE_COL, 3000); worksheet.setColumnWidth(TransactionConstants.LOOKUP_CLIENT_NAME_COL, 5000); worksheet.setColumnWidth(TransactionConstants.LOOKUP_ACCOUNT_NO_COL, 3000); worksheet.setColumnWidth(TransactionConstants.LOOKUP_PRODUCT_COL, 3000); @@ -254,6 +281,7 @@ public class SavingsTransactionsWorkbookPopulator extends AbstractWorkbookPopula writeString(TransactionConstants.RECEIPT_NO_COL, rowHeader, "Receipt No"); writeString(TransactionConstants.ROUTING_CODE_COL, rowHeader, "Routing Code"); writeString(TransactionConstants.BANK_NO_COL, rowHeader, "Bank No"); + writeString(TransactionConstants.NOTE_COL, rowHeader, "Note"); writeString(TransactionConstants.LOOKUP_CLIENT_NAME_COL, rowHeader, "Lookup Client"); writeString(TransactionConstants.LOOKUP_ACCOUNT_NO_COL, rowHeader, "Lookup Account"); writeString(TransactionConstants.LOOKUP_PRODUCT_COL, rowHeader, "Lookup Product"); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/savings/SavingsWorkbookPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/savings/SavingsWorkbookPopulator.java index 5e4e3df55..9607177f0 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/savings/SavingsWorkbookPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/savings/SavingsWorkbookPopulator.java @@ -31,6 +31,7 @@ import org.apache.fineract.portfolio.savings.data.SavingsProductData; import org.apache.poi.hssf.usermodel.HSSFDataValidationHelper; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.ss.SpreadsheetVersion; +import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.DataValidation; import org.apache.poi.ss.usermodel.DataValidationConstraint; @@ -158,6 +159,7 @@ public class SavingsWorkbookPopulator extends AbstractWorkbookPopulator { dateCellStyle.setDataFormat(df); for (Integer rowNo = 1; rowNo < 1000; rowNo++) { Row row = worksheet.createRow(rowNo); + setFormatStyle(worksheet, row); writeFormula(SavingsConstants.CURRENCY_COL, row, "IF(ISERROR(INDIRECT(CONCATENATE(\"Currency_\",$D" + (rowNo + 1) + "))),\"\",INDIRECT(CONCATENATE(\"Currency_\",$D" + (rowNo + 1) + ")))"); writeFormula(SavingsConstants.DECIMAL_PLACES_COL, row, "IF(ISERROR(INDIRECT(CONCATENATE(\"Decimal_Places_\",$D" + (rowNo + 1) @@ -190,6 +192,18 @@ public class SavingsWorkbookPopulator extends AbstractWorkbookPopulator { } } + private void setFormatStyle(Sheet worksheet, Row row) { + Workbook workbook = worksheet.getWorkbook(); + CellStyle dateCellStyle = workbook.createCellStyle(); + short df = workbook.createDataFormat().getFormat("dd/MM/yyyy"); + dateCellStyle.setDataFormat(df); + Cell submittedOnCell = row.getCell(SavingsConstants.SUBMITTED_ON_DATE_COL); + if (submittedOnCell == null) { + submittedOnCell = row.createCell(SavingsConstants.SUBMITTED_ON_DATE_COL); + } + submittedOnCell.setCellStyle(dateCellStyle); + } + private void setRules(Sheet worksheet, String dateFormat) { CellRangeAddressList officeNameRange = new CellRangeAddressList(1, SpreadsheetVersion.EXCEL97.getLastRowIndex(), SavingsConstants.OFFICE_NAME_COL, SavingsConstants.OFFICE_NAME_COL); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientDataValidator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientDataValidator.java index 9460eff7a..0aa7f4745 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientDataValidator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientDataValidator.java @@ -265,8 +265,8 @@ public final class ClientDataValidator { if (this.fromApiJsonHelper.parameterExists(ClientApiConstants.constitutionIdParamName, element)) { final Integer constitution = this.fromApiJsonHelper.extractIntegerSansLocaleNamed(ClientApiConstants.constitutionIdParamName, element); - baseDataValidator.reset().parameter(ClientApiConstants.constitutionIdParamName).value(constitution).ignoreIfNull() - .integerGreaterThanZero(); + baseDataValidator.reset().parameter(ClientApiConstants.constitutionIdParamName).value(constitution).integerGreaterThanZero() + .notBlank(); } if (this.fromApiJsonHelper.parameterExists(ClientApiConstants.mainBusinessLineIdParamName, element)) { @@ -561,8 +561,8 @@ public final class ClientDataValidator { atLeastOneParameterPassedForUpdate = true; final Integer constitutionId = this.fromApiJsonHelper.extractIntegerSansLocaleNamed(ClientApiConstants.constitutionIdParamName, element); - baseDataValidator.reset().parameter(ClientApiConstants.constitutionIdParamName).value(constitutionId).ignoreIfNull() - .integerGreaterThanZero(); + baseDataValidator.reset().parameter(ClientApiConstants.constitutionIdParamName).value(constitutionId).integerGreaterThanZero() + .notBlank(); } if (this.fromApiJsonHelper.parameterExists(ClientApiConstants.mainBusinessLineIdParamName, element)) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountTransactionDataValidator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountTransactionDataValidator.java index 25c6d1005..fa09ace7b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountTransactionDataValidator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountTransactionDataValidator.java @@ -66,7 +66,8 @@ public class DepositAccountTransactionDataValidator { transactionAmountParamName, paymentTypeIdParamName, transactionAccountNumberParamName, checkNumberParamName, routingCodeParamName, receiptNumberParamName, bankNumberParamName, DepositsApiConstants.amountParamName, DepositsApiConstants.accountIdParamName, DepositsApiConstants.dateParamName, DepositsApiConstants.submittedOnDateParamName, - DepositsApiConstants.lienTransaction, DepositsApiConstants.isManualTransaction, DepositsApiConstants.chargesPaidByData)); + DepositsApiConstants.lienTransaction, DepositsApiConstants.isManualTransaction, DepositsApiConstants.chargesPaidByData, + DepositsApiConstants.accountNoParamName, DepositsApiConstants.noteParamName)); private static final Set DEPOSIT_ACCOUNT_RECOMMENDED_DEPOSIT_AMOUNT_UPDATE_REQUEST_DATA_PARAMETERS = new HashSet<>( Arrays.asList(DepositsApiConstants.localeParamName, DepositsApiConstants.dateFormatParamName, diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountConstant.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountConstant.java index 2265a80b9..4c7dc9a9f 100644 --- a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountConstant.java +++ b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountConstant.java @@ -50,7 +50,7 @@ public class SavingsAccountConstant extends SavingsApiConstants { dateFormatParamName, transactionDateParamName, transactionAmountParamName, paymentTypeIdParamName, transactionAccountNumberParamName, checkNumberParamName, routingCodeParamName, receiptNumberParamName, bankNumberParamName, retailEntriesParamName, childAccountIdParamName, noteParamName, amountParamName, dateParamName, isManualTransaction, - lienTransaction, chargesPaidByData, submittedOnDateParamName, accountIdParamName)); + lienTransaction, chargesPaidByData, submittedOnDateParamName, accountIdParamName, accountNoParamName)); protected static final Set SAVINGS_ACCOUNT_TRANSACTION_RESPONSE_DATA_PARAMETERS = new HashSet<>( Arrays.asList(idParamName, accountNoParamName)); diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataValidator.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataValidator.java index b43c78bc5..d9b662c09 100644 --- a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataValidator.java +++ b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataValidator.java @@ -186,7 +186,7 @@ public class SavingsAccountDataValidator { if (lockinPeriodFrequency != null) { final Integer lockinPeriodFrequencyType = this.fromApiJsonHelper .extractIntegerSansLocaleNamed(lockinPeriodFrequencyTypeParamName, element); - baseDataValidator.reset().parameter(lockinPeriodFrequencyTypeParamName).value(lockinPeriodFrequencyType).notNull() + baseDataValidator.reset().parameter(lockinPeriodFrequencyTypeParamName).value(lockinPeriodFrequencyType).ignoreIfNull() .inMinMaxRange(0, 3); } }