FINERACT-2202: Bulk import fix
This commit is contained in:
committed by
Adam Saghy
parent
5cd604df43
commit
24145ae308
+1
-1
@@ -116,7 +116,7 @@ public final class CalendarData implements Serializable {
|
|||||||
this.dateFormat = dateFormat;
|
this.dateFormat = dateFormat;
|
||||||
this.locale = locale;
|
this.locale = locale;
|
||||||
this.description = "";
|
this.description = "";
|
||||||
this.typeId = "1";
|
this.typeId = "4";
|
||||||
this.id = null;
|
this.id = null;
|
||||||
this.calendarInstanceId = null;
|
this.calendarInstanceId = null;
|
||||||
this.entityId = null;
|
this.entityId = null;
|
||||||
|
|||||||
+1
-1
@@ -269,7 +269,7 @@ public final class ClientData implements Comparable<ClientData>, Serializable {
|
|||||||
this.clientNonPersonConstitutionOptions = null;
|
this.clientNonPersonConstitutionOptions = null;
|
||||||
this.clientNonPersonMainBusinessLineOptions = null;
|
this.clientNonPersonMainBusinessLineOptions = null;
|
||||||
this.clientLegalFormOptions = null;
|
this.clientLegalFormOptions = null;
|
||||||
this.clientNonPersonDetails = null;
|
this.clientNonPersonDetails = clientNonPersonDetails;
|
||||||
this.isAddressEnabled = null;
|
this.isAddressEnabled = null;
|
||||||
this.datatables = null;
|
this.datatables = null;
|
||||||
this.familyMemberOptions = null;
|
this.familyMemberOptions = null;
|
||||||
|
|||||||
+4
-3
@@ -72,7 +72,7 @@ public final class SavingsAccountTransactionData implements Serializable {
|
|||||||
private final LocalDate submittedOnDate;
|
private final LocalDate submittedOnDate;
|
||||||
private final boolean interestedPostedAsOn;
|
private final boolean interestedPostedAsOn;
|
||||||
private final String submittedByUsername;
|
private final String submittedByUsername;
|
||||||
private final String note;
|
private String note;
|
||||||
private final boolean isManualTransaction;
|
private final boolean isManualTransaction;
|
||||||
private final Boolean isReversal;
|
private final Boolean isReversal;
|
||||||
private final Long originalTransactionId;
|
private final Long originalTransactionId;
|
||||||
@@ -255,8 +255,8 @@ public final class SavingsAccountTransactionData implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static SavingsAccountTransactionData importInstance(BigDecimal transactionAmount, LocalDate transactionDate, Long paymentTypeId,
|
public static SavingsAccountTransactionData importInstance(BigDecimal transactionAmount, LocalDate transactionDate, Long paymentTypeId,
|
||||||
String accountNumber, String checkNumber, String routingCode, String receiptNumber, String bankNumber, Long savingsAccountId,
|
String accountNumber, String checkNumber, String routingCode, String receiptNumber, String bankNumber, String note,
|
||||||
SavingsAccountTransactionEnumData transactionType, Integer rowIndex, String locale, String dateFormat) {
|
Long savingsAccountId, SavingsAccountTransactionEnumData transactionType, Integer rowIndex, String locale, String dateFormat) {
|
||||||
SavingsAccountTransactionData data = createImport(transactionType, null, savingsAccountId, accountNumber, transactionDate,
|
SavingsAccountTransactionData data = createImport(transactionType, null, savingsAccountId, accountNumber, transactionDate,
|
||||||
transactionAmount, false, transactionDate, false, false);
|
transactionAmount, false, transactionDate, false, false);
|
||||||
data.rowIndex = rowIndex;
|
data.rowIndex = rowIndex;
|
||||||
@@ -265,6 +265,7 @@ public final class SavingsAccountTransactionData implements Serializable {
|
|||||||
data.routingCode = routingCode;
|
data.routingCode = routingCode;
|
||||||
data.receiptNumber = receiptNumber;
|
data.receiptNumber = receiptNumber;
|
||||||
data.bankNumber = bankNumber;
|
data.bankNumber = bankNumber;
|
||||||
|
data.note = note;
|
||||||
data.locale = locale;
|
data.locale = locale;
|
||||||
data.dateFormat = dateFormat;
|
data.dateFormat = dateFormat;
|
||||||
return data;
|
return data;
|
||||||
|
|||||||
+7
-6
@@ -38,10 +38,11 @@ public final class TransactionConstants {
|
|||||||
public static final int ROUTING_CODE_COL = 11;
|
public static final int ROUTING_CODE_COL = 11;
|
||||||
public static final int RECEIPT_NO_COL = 12;
|
public static final int RECEIPT_NO_COL = 12;
|
||||||
public static final int BANK_NO_COL = 13;
|
public static final int BANK_NO_COL = 13;
|
||||||
public static final int STATUS_COL = 14;
|
public static final int NOTE_COL = 14;
|
||||||
public static final int LOOKUP_CLIENT_NAME_COL = 15;
|
public static final int STATUS_COL = 15;
|
||||||
public static final int LOOKUP_ACCOUNT_NO_COL = 16;
|
public static final int LOOKUP_CLIENT_NAME_COL = 16;
|
||||||
public static final int LOOKUP_PRODUCT_COL = 17;
|
public static final int LOOKUP_ACCOUNT_NO_COL = 17;
|
||||||
public static final int LOOKUP_OPENING_BALANCE_COL = 18;
|
public static final int LOOKUP_PRODUCT_COL = 18;
|
||||||
public static final int LOOKUP_SAVINGS_ACTIVATION_DATE_COL = 19;
|
public static final int LOOKUP_OPENING_BALANCE_COL = 19;
|
||||||
|
public static final int LOOKUP_SAVINGS_ACTIVATION_DATE_COL = 20;
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -89,9 +89,9 @@ public class ClientEntityImportHandler implements ImportHandler {
|
|||||||
officeId = null;
|
officeId = null;
|
||||||
}
|
}
|
||||||
String staffName = ImportHandlerUtils.readAsString(ClientEntityConstants.STAFF_NAME_COL, row);
|
String staffName = ImportHandlerUtils.readAsString(ClientEntityConstants.STAFF_NAME_COL, row);
|
||||||
Long staffId = ImportHandlerUtils.getIdByName(workbook.getSheet(TemplatePopulateImportConstants.STAFF_SHEET_NAME), staffName);
|
Long staffId = null;
|
||||||
if (staffId == 0L) {
|
if (staffName != null) {
|
||||||
staffId = null;
|
staffId = ImportHandlerUtils.getIdByName(workbook.getSheet(TemplatePopulateImportConstants.STAFF_SHEET_NAME), staffName);
|
||||||
}
|
}
|
||||||
LocalDate incorportionDate = ImportHandlerUtils.readAsDate(ClientEntityConstants.INCOPORATION_DATE_COL, row);
|
LocalDate incorportionDate = ImportHandlerUtils.readAsDate(ClientEntityConstants.INCOPORATION_DATE_COL, row);
|
||||||
LocalDate incorporationTill = ImportHandlerUtils.readAsDate(ClientEntityConstants.INCOPORATION_VALID_TILL_COL, row);
|
LocalDate incorporationTill = ImportHandlerUtils.readAsDate(ClientEntityConstants.INCOPORATION_VALID_TILL_COL, row);
|
||||||
|
|||||||
+3
-3
@@ -90,9 +90,9 @@ public class ClientPersonImportHandler implements ImportHandler {
|
|||||||
officeId = null;
|
officeId = null;
|
||||||
}
|
}
|
||||||
String staffName = ImportHandlerUtils.readAsString(ClientPersonConstants.STAFF_NAME_COL, row);
|
String staffName = ImportHandlerUtils.readAsString(ClientPersonConstants.STAFF_NAME_COL, row);
|
||||||
Long staffId = ImportHandlerUtils.getIdByName(workbook.getSheet(TemplatePopulateImportConstants.STAFF_SHEET_NAME), staffName);
|
Long staffId = null;
|
||||||
if (staffId == 0L) {
|
if (staffName != null) {
|
||||||
staffId = null;
|
staffId = ImportHandlerUtils.getIdByName(workbook.getSheet(TemplatePopulateImportConstants.STAFF_SHEET_NAME), staffName);
|
||||||
}
|
}
|
||||||
ExternalId externalId = externalIdFactory.create(ImportHandlerUtils.readAsString(ClientPersonConstants.EXTERNAL_ID_COL, row));
|
ExternalId externalId = externalIdFactory.create(ImportHandlerUtils.readAsString(ClientPersonConstants.EXTERNAL_ID_COL, row));
|
||||||
LocalDate submittedOn = ImportHandlerUtils.readAsDate(ClientPersonConstants.SUBMITTED_ON_COL, row);
|
LocalDate submittedOn = ImportHandlerUtils.readAsDate(ClientPersonConstants.SUBMITTED_ON_COL, row);
|
||||||
|
|||||||
+2
-1
@@ -110,8 +110,9 @@ public class FixedDepositTransactionImportHandler implements ImportHandler {
|
|||||||
String routingCode = ImportHandlerUtils.readAsString(TransactionConstants.ROUTING_CODE_COL, row);
|
String routingCode = ImportHandlerUtils.readAsString(TransactionConstants.ROUTING_CODE_COL, row);
|
||||||
String receiptNumber = ImportHandlerUtils.readAsString(TransactionConstants.RECEIPT_NO_COL, row);
|
String receiptNumber = ImportHandlerUtils.readAsString(TransactionConstants.RECEIPT_NO_COL, row);
|
||||||
String bankNumber = ImportHandlerUtils.readAsString(TransactionConstants.BANK_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,
|
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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+13
-4
@@ -244,11 +244,20 @@ public class GroupImportHandler implements ImportHandler {
|
|||||||
gsonBuilder.registerTypeAdapter(LocalDate.class, new DateSerializer(dateFormat, meetings.get(rowIndex).getLocale()));
|
gsonBuilder.registerTypeAdapter(LocalDate.class, new DateSerializer(dateFormat, meetings.get(rowIndex).getLocale()));
|
||||||
gsonBuilder.registerTypeAdapter(EnumOptionData.class, new EnumOptionDataValueSerializer());
|
gsonBuilder.registerTypeAdapter(EnumOptionData.class, new EnumOptionDataValueSerializer());
|
||||||
|
|
||||||
CalendarData modifiedCalendarData = new CalendarData(calendarData.getTitle(), calendarData.getDescription(),
|
String payload;
|
||||||
calendarData.getStartDate(), calendarData.isRepeating(), calendarData.getFrequency(), calendarData.getInterval(),
|
CalendarData modifiedCalendarData;
|
||||||
calendarData.getRepeatsOnDay(), calendarData.getDateFormat(), calendarData.getLocale(), calendarData.getTypeId());
|
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(),
|
CommandWrapper commandWrapper = new CommandWrapper(result.getOfficeId(), result.getGroupId(), result.getClientId(),
|
||||||
result.getLoanId(), result.getSavingsId(), null, null, null, null, null, payload, result.getTransactionId(),
|
result.getLoanId(), result.getSavingsId(), null, null, null, null, null, payload, result.getTransactionId(),
|
||||||
|
|||||||
+2
-1
@@ -106,8 +106,9 @@ public class RecurringDepositTransactionImportHandler implements ImportHandler {
|
|||||||
String routingCode = ImportHandlerUtils.readAsString(TransactionConstants.ROUTING_CODE_COL, row);
|
String routingCode = ImportHandlerUtils.readAsString(TransactionConstants.ROUTING_CODE_COL, row);
|
||||||
String receiptNumber = ImportHandlerUtils.readAsString(TransactionConstants.RECEIPT_NO_COL, row);
|
String receiptNumber = ImportHandlerUtils.readAsString(TransactionConstants.RECEIPT_NO_COL, row);
|
||||||
String bankNumber = ImportHandlerUtils.readAsString(TransactionConstants.BANK_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,
|
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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -109,8 +109,9 @@ public class SavingsTransactionImportHandler implements ImportHandler {
|
|||||||
String routingCode = ImportHandlerUtils.readAsString(TransactionConstants.ROUTING_CODE_COL, row);
|
String routingCode = ImportHandlerUtils.readAsString(TransactionConstants.ROUTING_CODE_COL, row);
|
||||||
String receiptNumber = ImportHandlerUtils.readAsString(TransactionConstants.RECEIPT_NO_COL, row);
|
String receiptNumber = ImportHandlerUtils.readAsString(TransactionConstants.RECEIPT_NO_COL, row);
|
||||||
String bankNumber = ImportHandlerUtils.readAsString(TransactionConstants.BANK_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,
|
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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+20
-4
@@ -217,16 +217,32 @@ public class ChartOfAccountsWorkbook extends AbstractWorkbookPopulator {
|
|||||||
List<String> accountNameAndTagAr = Splitter.on('-').splitToList(accountNameandTag);
|
List<String> accountNameAndTagAr = Splitter.on('-').splitToList(accountNameandTag);
|
||||||
writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_NAME_COL, row, accountNameAndTagAr.get(0));
|
writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_NAME_COL, row, accountNameAndTagAr.get(0));
|
||||||
writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_ID_COL, row, accountNameAndTagAr.get(1));
|
writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_ID_COL, row, accountNameAndTagAr.get(1));
|
||||||
writeString(ChartOfAcountsConstants.LOOKUP_TAG_COL, row, accountNameAndTagAr.get(2));
|
if (accountNameAndTagAr.get(2).equals("null")) {
|
||||||
writeString(ChartOfAcountsConstants.LOOKUP_TAG_ID_COL, row, accountNameAndTagAr.get(3));
|
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++;
|
rowIndex++;
|
||||||
} else {
|
} else {
|
||||||
row = chartOfAccountsSheet.createRow(rowIndex);
|
row = chartOfAccountsSheet.createRow(rowIndex);
|
||||||
List<String> accountNameAndTagAr = Splitter.on('-').splitToList(accountNameandTag);
|
List<String> accountNameAndTagAr = Splitter.on('-').splitToList(accountNameandTag);
|
||||||
writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_NAME_COL, row, accountNameAndTagAr.get(0));
|
writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_NAME_COL, row, accountNameAndTagAr.get(0));
|
||||||
writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_ID_COL, row, accountNameAndTagAr.get(1));
|
writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_ID_COL, row, accountNameAndTagAr.get(1));
|
||||||
writeString(ChartOfAcountsConstants.LOOKUP_TAG_COL, row, accountNameAndTagAr.get(2));
|
if (accountNameAndTagAr.get(2).equals("null")) {
|
||||||
writeString(ChartOfAcountsConstants.LOOKUP_TAG_ID_COL, row, accountNameAndTagAr.get(3));
|
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++;
|
rowIndex++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-1
@@ -94,6 +94,8 @@ public class ClientEntityWorkbookPopulator extends AbstractWorkbookPopulator {
|
|||||||
|
|
||||||
setFormatActivationAndSubmittedDate(row, ClientEntityConstants.ACTIVATION_DATE_COL, dateCellStyle);
|
setFormatActivationAndSubmittedDate(row, ClientEntityConstants.ACTIVATION_DATE_COL, dateCellStyle);
|
||||||
setFormatActivationAndSubmittedDate(row, ClientEntityConstants.SUBMITTED_ON_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.CLIENT_CLASSIFICATION_COL, rowHeader, "Client Classification ");
|
||||||
writeString(ClientEntityConstants.INCOPORATION_NUMBER_COL, rowHeader, "Incorporation Number");
|
writeString(ClientEntityConstants.INCOPORATION_NUMBER_COL, rowHeader, "Incorporation Number");
|
||||||
writeString(ClientEntityConstants.MAIN_BUSINESS_LINE, rowHeader, "Main Business Line");
|
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.REMARKS_COL, rowHeader, "Remarks");
|
||||||
writeString(ClientEntityConstants.EXTERNAL_ID_COL, rowHeader, "External ID ");
|
writeString(ClientEntityConstants.EXTERNAL_ID_COL, rowHeader, "External ID ");
|
||||||
writeString(ClientEntityConstants.SUBMITTED_ON_COL, rowHeader, "Submitted On Date");
|
writeString(ClientEntityConstants.SUBMITTED_ON_COL, rowHeader, "Submitted On Date");
|
||||||
|
|||||||
+35
-7
@@ -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.HSSFDataValidationHelper;
|
||||||
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
||||||
import org.apache.poi.ss.SpreadsheetVersion;
|
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.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.DataValidation;
|
||||||
import org.apache.poi.ss.usermodel.DataValidationConstraint;
|
import org.apache.poi.ss.usermodel.DataValidationConstraint;
|
||||||
import org.apache.poi.ss.usermodel.DataValidationHelper;
|
import org.apache.poi.ss.usermodel.DataValidationHelper;
|
||||||
@@ -68,6 +71,7 @@ public class FixedDepositTransactionWorkbookPopulator extends AbstractWorkbookPo
|
|||||||
populateSavingsTable(savingsTransactionSheet, dateFormat);
|
populateSavingsTable(savingsTransactionSheet, dateFormat);
|
||||||
setRules(savingsTransactionSheet, dateFormat);
|
setRules(savingsTransactionSheet, dateFormat);
|
||||||
setDefaults(savingsTransactionSheet);
|
setDefaults(savingsTransactionSheet);
|
||||||
|
setTextFormatStyle(workbook, savingsTransactionSheet, TransactionConstants.SAVINGS_ACCOUNT_NO_COL);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setDefaults(Sheet worksheet) {
|
private void setDefaults(Sheet worksheet) {
|
||||||
@@ -77,11 +81,33 @@ public class FixedDepositTransactionWorkbookPopulator extends AbstractWorkbookPo
|
|||||||
row = worksheet.createRow(rowNo);
|
row = worksheet.createRow(rowNo);
|
||||||
}
|
}
|
||||||
writeFormula(TransactionConstants.PRODUCT_COL, row,
|
writeFormula(TransactionConstants.PRODUCT_COL, row,
|
||||||
"IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",2,FALSE)),\"\",VLOOKUP($C"
|
"IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$R$2:$S$" + (savingsAccounts.size() + 1) + ",2,FALSE)),\"\",VLOOKUP($C"
|
||||||
+ (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",2,FALSE))");
|
+ (rowNo + 1) + ",$R$2:$T$" + (savingsAccounts.size() + 1) + ",2,FALSE))");
|
||||||
writeFormula(TransactionConstants.OPENING_BALANCE_COL, row,
|
writeFormula(TransactionConstants.OPENING_BALANCE_COL, row,
|
||||||
"IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",3,FALSE)),\"\",VLOOKUP($C"
|
"IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$R$2:$T$" + (savingsAccounts.size() + 1) + ",3,FALSE)),\"\",VLOOKUP($C"
|
||||||
+ (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",3,FALSE))");
|
+ (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 paymentTypeConstraint = validationHelper.createFormulaListConstraint("PaymentTypes");
|
||||||
DataValidationConstraint transactionDateConstraint = validationHelper.createDateConstraint(
|
DataValidationConstraint transactionDateConstraint = validationHelper.createDateConstraint(
|
||||||
DataValidationConstraint.OperatorType.BETWEEN,
|
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 officeValidation = validationHelper.createValidation(officeNameConstraint, officeNameRange);
|
||||||
DataValidation clientValidation = validationHelper.createValidation(clientNameConstraint, clientNameRange);
|
DataValidation clientValidation = validationHelper.createValidation(clientNameConstraint, clientNameRange);
|
||||||
@@ -179,8 +205,8 @@ public class FixedDepositTransactionWorkbookPopulator extends AbstractWorkbookPo
|
|||||||
for (int j = 0; j < clientsWithActiveSavings.size(); j++) {
|
for (int j = 0; j < clientsWithActiveSavings.size(); j++) {
|
||||||
Name name = savingsTransactionWorkbook.createName();
|
Name name = savingsTransactionWorkbook.createName();
|
||||||
setSanitized(name, "Account_" + clientsWithActiveSavings.get(j) + "_" + clientIdsWithActiveSavings.get(j) + "_");
|
setSanitized(name, "Account_" + clientsWithActiveSavings.get(j) + "_" + clientIdsWithActiveSavings.get(j) + "_");
|
||||||
name.setRefersToFormula(TemplatePopulateImportConstants.FIXED_DEPOSIT_TRANSACTION_SHEET_NAME + "!$Q$"
|
name.setRefersToFormula(TemplatePopulateImportConstants.FIXED_DEPOSIT_TRANSACTION_SHEET_NAME + "!$R$"
|
||||||
+ clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[0] + ":$Q$"
|
+ clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[0] + ":$R$"
|
||||||
+ clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[1]);
|
+ 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.RECEIPT_NO_COL, 3000);
|
||||||
worksheet.setColumnWidth(TransactionConstants.ROUTING_CODE_COL, 3000);
|
worksheet.setColumnWidth(TransactionConstants.ROUTING_CODE_COL, 3000);
|
||||||
worksheet.setColumnWidth(TransactionConstants.BANK_NO_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_CLIENT_NAME_COL, 5000);
|
||||||
worksheet.setColumnWidth(TransactionConstants.LOOKUP_ACCOUNT_NO_COL, 3000);
|
worksheet.setColumnWidth(TransactionConstants.LOOKUP_ACCOUNT_NO_COL, 3000);
|
||||||
worksheet.setColumnWidth(TransactionConstants.LOOKUP_PRODUCT_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.RECEIPT_NO_COL, rowHeader, "Receipt No");
|
||||||
writeString(TransactionConstants.ROUTING_CODE_COL, rowHeader, "Routing Code");
|
writeString(TransactionConstants.ROUTING_CODE_COL, rowHeader, "Routing Code");
|
||||||
writeString(TransactionConstants.BANK_NO_COL, rowHeader, "Bank No");
|
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_CLIENT_NAME_COL, rowHeader, "Lookup Client");
|
||||||
writeString(TransactionConstants.LOOKUP_ACCOUNT_NO_COL, rowHeader, "Lookup Account");
|
writeString(TransactionConstants.LOOKUP_ACCOUNT_NO_COL, rowHeader, "Lookup Account");
|
||||||
writeString(TransactionConstants.LOOKUP_PRODUCT_COL, rowHeader, "Lookup Product");
|
writeString(TransactionConstants.LOOKUP_PRODUCT_COL, rowHeader, "Lookup Product");
|
||||||
|
|||||||
+10
-1
@@ -207,7 +207,7 @@ public class GroupsWorkbookPopulator extends AbstractWorkbookPopulator {
|
|||||||
DataValidationConstraint submittedOnDateConstraint = validationHelper
|
DataValidationConstraint submittedOnDateConstraint = validationHelper
|
||||||
.createDateConstraint(DataValidationConstraint.OperatorType.LESS_OR_EQUAL, "=TODAY()", null, dateFormat);
|
.createDateConstraint(DataValidationConstraint.OperatorType.LESS_OR_EQUAL, "=TODAY()", null, dateFormat);
|
||||||
DataValidationConstraint meetingStartDateConstraint = validationHelper
|
DataValidationConstraint meetingStartDateConstraint = validationHelper
|
||||||
.createDateConstraint(DataValidationConstraint.OperatorType.BETWEEN, "=$G1", "=TODAY()", dateFormat);
|
.createDateConstraint(DataValidationConstraint.OperatorType.BETWEEN, "=$H1", "=TODAY()", dateFormat);
|
||||||
DataValidationConstraint repeatsConstraint = validationHelper.createExplicitListConstraint(
|
DataValidationConstraint repeatsConstraint = validationHelper.createExplicitListConstraint(
|
||||||
new String[] { TemplatePopulateImportConstants.FREQUENCY_DAILY, TemplatePopulateImportConstants.FREQUENCY_WEEKLY,
|
new String[] { TemplatePopulateImportConstants.FREQUENCY_DAILY, TemplatePopulateImportConstants.FREQUENCY_WEEKLY,
|
||||||
TemplatePopulateImportConstants.FREQUENCY_MONTHLY, TemplatePopulateImportConstants.FREQUENCY_YEARLY });
|
TemplatePopulateImportConstants.FREQUENCY_MONTHLY, TemplatePopulateImportConstants.FREQUENCY_YEARLY });
|
||||||
@@ -261,6 +261,15 @@ public class GroupsWorkbookPopulator extends AbstractWorkbookPopulator {
|
|||||||
Name repeatsOnWeekly = centerWorkbook.createName();
|
Name repeatsOnWeekly = centerWorkbook.createName();
|
||||||
repeatsOnWeekly.setNameName("Weekly_Days");
|
repeatsOnWeekly.setNameName("Weekly_Days");
|
||||||
repeatsOnWeekly.setRefersToFormula(TemplatePopulateImportConstants.GROUP_SHEET_NAME + "!$IV$2:$IV$8");
|
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
|
// Staff Names for each office & center Names for each office
|
||||||
for (Integer i = 0; i < offices.size(); i++) {
|
for (Integer i = 0; i < offices.size(); i++) {
|
||||||
|
|||||||
+35
-7
@@ -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.HSSFDataValidationHelper;
|
||||||
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
||||||
import org.apache.poi.ss.SpreadsheetVersion;
|
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.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.DataValidation;
|
||||||
import org.apache.poi.ss.usermodel.DataValidationConstraint;
|
import org.apache.poi.ss.usermodel.DataValidationConstraint;
|
||||||
import org.apache.poi.ss.usermodel.DataValidationHelper;
|
import org.apache.poi.ss.usermodel.DataValidationHelper;
|
||||||
@@ -69,6 +72,7 @@ public class RecurringDepositTransactionWorkbookPopulator extends AbstractWorkbo
|
|||||||
populateSavingsTable(savingsTransactionSheet, dateFormat);
|
populateSavingsTable(savingsTransactionSheet, dateFormat);
|
||||||
setRules(savingsTransactionSheet, dateFormat);
|
setRules(savingsTransactionSheet, dateFormat);
|
||||||
setDefaults(savingsTransactionSheet);
|
setDefaults(savingsTransactionSheet);
|
||||||
|
setTextFormatStyle(workbook, savingsTransactionSheet, TransactionConstants.SAVINGS_ACCOUNT_NO_COL);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setDefaults(Sheet worksheet) {
|
private void setDefaults(Sheet worksheet) {
|
||||||
@@ -78,11 +82,33 @@ public class RecurringDepositTransactionWorkbookPopulator extends AbstractWorkbo
|
|||||||
row = worksheet.createRow(rowNo);
|
row = worksheet.createRow(rowNo);
|
||||||
}
|
}
|
||||||
writeFormula(TransactionConstants.PRODUCT_COL, row,
|
writeFormula(TransactionConstants.PRODUCT_COL, row,
|
||||||
"IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",2,FALSE)),\"\",VLOOKUP($C"
|
"IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$R$2:$S$" + (savingsAccounts.size() + 1) + ",2,FALSE)),\"\",VLOOKUP($C"
|
||||||
+ (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",2,FALSE))");
|
+ (rowNo + 1) + ",$R$2:$T$" + (savingsAccounts.size() + 1) + ",2,FALSE))");
|
||||||
writeFormula(TransactionConstants.OPENING_BALANCE_COL, row,
|
writeFormula(TransactionConstants.OPENING_BALANCE_COL, row,
|
||||||
"IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",3,FALSE)),\"\",VLOOKUP($C"
|
"IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$R$2:$T$" + (savingsAccounts.size() + 1) + ",3,FALSE)),\"\",VLOOKUP($C"
|
||||||
+ (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",3,FALSE))");
|
+ (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 paymentTypeConstraint = validationHelper.createFormulaListConstraint("PaymentTypes");
|
||||||
DataValidationConstraint transactionDateConstraint = validationHelper.createDateConstraint(
|
DataValidationConstraint transactionDateConstraint = validationHelper.createDateConstraint(
|
||||||
DataValidationConstraint.OperatorType.BETWEEN,
|
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 officeValidation = validationHelper.createValidation(officeNameConstraint, officeNameRange);
|
||||||
DataValidation clientValidation = validationHelper.createValidation(clientNameConstraint, clientNameRange);
|
DataValidation clientValidation = validationHelper.createValidation(clientNameConstraint, clientNameRange);
|
||||||
@@ -180,8 +206,8 @@ public class RecurringDepositTransactionWorkbookPopulator extends AbstractWorkbo
|
|||||||
for (int j = 0; j < clientsWithActiveSavings.size(); j++) {
|
for (int j = 0; j < clientsWithActiveSavings.size(); j++) {
|
||||||
Name name = savingsTransactionWorkbook.createName();
|
Name name = savingsTransactionWorkbook.createName();
|
||||||
setSanitized(name, "Account_" + clientsWithActiveSavings.get(j) + "_" + clientIdsWithActiveSavings.get(j) + "_");
|
setSanitized(name, "Account_" + clientsWithActiveSavings.get(j) + "_" + clientIdsWithActiveSavings.get(j) + "_");
|
||||||
name.setRefersToFormula(TemplatePopulateImportConstants.SAVINGS_TRANSACTION_SHEET_NAME + "!$Q$"
|
name.setRefersToFormula(TemplatePopulateImportConstants.SAVINGS_TRANSACTION_SHEET_NAME + "!$R$"
|
||||||
+ clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[0] + ":$Q$"
|
+ clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[0] + ":$R$"
|
||||||
+ clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[1]);
|
+ 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.RECEIPT_NO_COL, 3000);
|
||||||
worksheet.setColumnWidth(TransactionConstants.ROUTING_CODE_COL, 3000);
|
worksheet.setColumnWidth(TransactionConstants.ROUTING_CODE_COL, 3000);
|
||||||
worksheet.setColumnWidth(TransactionConstants.BANK_NO_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_CLIENT_NAME_COL, 5000);
|
||||||
worksheet.setColumnWidth(TransactionConstants.LOOKUP_ACCOUNT_NO_COL, 3000);
|
worksheet.setColumnWidth(TransactionConstants.LOOKUP_ACCOUNT_NO_COL, 3000);
|
||||||
worksheet.setColumnWidth(TransactionConstants.LOOKUP_PRODUCT_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.RECEIPT_NO_COL, rowHeader, "Receipt No");
|
||||||
writeString(TransactionConstants.ROUTING_CODE_COL, rowHeader, "Routing Code");
|
writeString(TransactionConstants.ROUTING_CODE_COL, rowHeader, "Routing Code");
|
||||||
writeString(TransactionConstants.BANK_NO_COL, rowHeader, "Bank No");
|
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_CLIENT_NAME_COL, rowHeader, "Lookup Client");
|
||||||
writeString(TransactionConstants.LOOKUP_ACCOUNT_NO_COL, rowHeader, "Lookup Account");
|
writeString(TransactionConstants.LOOKUP_ACCOUNT_NO_COL, rowHeader, "Lookup Account");
|
||||||
writeString(TransactionConstants.LOOKUP_PRODUCT_COL, rowHeader, "Lookup Product");
|
writeString(TransactionConstants.LOOKUP_PRODUCT_COL, rowHeader, "Lookup Product");
|
||||||
|
|||||||
+35
-7
@@ -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.HSSFDataValidationHelper;
|
||||||
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
||||||
import org.apache.poi.ss.SpreadsheetVersion;
|
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.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.DataValidation;
|
||||||
import org.apache.poi.ss.usermodel.DataValidationConstraint;
|
import org.apache.poi.ss.usermodel.DataValidationConstraint;
|
||||||
import org.apache.poi.ss.usermodel.DataValidationHelper;
|
import org.apache.poi.ss.usermodel.DataValidationHelper;
|
||||||
@@ -68,6 +71,7 @@ public class SavingsTransactionsWorkbookPopulator extends AbstractWorkbookPopula
|
|||||||
populateSavingsTable(savingsTransactionSheet, dateFormat);
|
populateSavingsTable(savingsTransactionSheet, dateFormat);
|
||||||
setRules(savingsTransactionSheet, dateFormat);
|
setRules(savingsTransactionSheet, dateFormat);
|
||||||
setDefaults(savingsTransactionSheet);
|
setDefaults(savingsTransactionSheet);
|
||||||
|
setTextFormatStyle(workbook, savingsTransactionSheet, TransactionConstants.SAVINGS_ACCOUNT_NO_COL);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setDefaults(Sheet worksheet) {
|
private void setDefaults(Sheet worksheet) {
|
||||||
@@ -77,11 +81,33 @@ public class SavingsTransactionsWorkbookPopulator extends AbstractWorkbookPopula
|
|||||||
row = worksheet.createRow(rowNo);
|
row = worksheet.createRow(rowNo);
|
||||||
}
|
}
|
||||||
writeFormula(TransactionConstants.PRODUCT_COL, row,
|
writeFormula(TransactionConstants.PRODUCT_COL, row,
|
||||||
"IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",2,FALSE)),\"\",VLOOKUP($C"
|
"IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$R$2:$S$" + (savingsAccounts.size() + 1) + ",2,FALSE)),\"\",VLOOKUP($C"
|
||||||
+ (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",2,FALSE))");
|
+ (rowNo + 1) + ",$R$2:$T$" + (savingsAccounts.size() + 1) + ",2,FALSE))");
|
||||||
writeFormula(TransactionConstants.OPENING_BALANCE_COL, row,
|
writeFormula(TransactionConstants.OPENING_BALANCE_COL, row,
|
||||||
"IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",3,FALSE)),\"\",VLOOKUP($C"
|
"IF(ISERROR(VLOOKUP($C" + (rowNo + 1) + ",$R$2:$T$" + (savingsAccounts.size() + 1) + ",3,FALSE)),\"\",VLOOKUP($C"
|
||||||
+ (rowNo + 1) + ",$Q$2:$S$" + (savingsAccounts.size() + 1) + ",3,FALSE))");
|
+ (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 paymentTypeConstraint = validationHelper.createFormulaListConstraint("PaymentTypes");
|
||||||
DataValidationConstraint transactionDateConstraint = validationHelper.createDateConstraint(
|
DataValidationConstraint transactionDateConstraint = validationHelper.createDateConstraint(
|
||||||
DataValidationConstraint.OperatorType.BETWEEN,
|
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 officeValidation = validationHelper.createValidation(officeNameConstraint, officeNameRange);
|
||||||
DataValidation clientValidation = validationHelper.createValidation(clientNameConstraint, clientNameRange);
|
DataValidation clientValidation = validationHelper.createValidation(clientNameConstraint, clientNameRange);
|
||||||
@@ -179,8 +205,8 @@ public class SavingsTransactionsWorkbookPopulator extends AbstractWorkbookPopula
|
|||||||
for (int j = 0; j < clientsWithActiveSavings.size(); j++) {
|
for (int j = 0; j < clientsWithActiveSavings.size(); j++) {
|
||||||
Name name = savingsTransactionWorkbook.createName();
|
Name name = savingsTransactionWorkbook.createName();
|
||||||
setSanitized(name, "Account_" + clientsWithActiveSavings.get(j) + "_" + clientIdsWithActiveSavings.get(j) + "_");
|
setSanitized(name, "Account_" + clientsWithActiveSavings.get(j) + "_" + clientIdsWithActiveSavings.get(j) + "_");
|
||||||
name.setRefersToFormula(TemplatePopulateImportConstants.SAVINGS_TRANSACTION_SHEET_NAME + "!$Q$"
|
name.setRefersToFormula(TemplatePopulateImportConstants.SAVINGS_TRANSACTION_SHEET_NAME + "!$R$"
|
||||||
+ clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[0] + ":$Q$"
|
+ clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[0] + ":$R$"
|
||||||
+ clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[1]);
|
+ 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.RECEIPT_NO_COL, 3000);
|
||||||
worksheet.setColumnWidth(TransactionConstants.ROUTING_CODE_COL, 3000);
|
worksheet.setColumnWidth(TransactionConstants.ROUTING_CODE_COL, 3000);
|
||||||
worksheet.setColumnWidth(TransactionConstants.BANK_NO_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_CLIENT_NAME_COL, 5000);
|
||||||
worksheet.setColumnWidth(TransactionConstants.LOOKUP_ACCOUNT_NO_COL, 3000);
|
worksheet.setColumnWidth(TransactionConstants.LOOKUP_ACCOUNT_NO_COL, 3000);
|
||||||
worksheet.setColumnWidth(TransactionConstants.LOOKUP_PRODUCT_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.RECEIPT_NO_COL, rowHeader, "Receipt No");
|
||||||
writeString(TransactionConstants.ROUTING_CODE_COL, rowHeader, "Routing Code");
|
writeString(TransactionConstants.ROUTING_CODE_COL, rowHeader, "Routing Code");
|
||||||
writeString(TransactionConstants.BANK_NO_COL, rowHeader, "Bank No");
|
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_CLIENT_NAME_COL, rowHeader, "Lookup Client");
|
||||||
writeString(TransactionConstants.LOOKUP_ACCOUNT_NO_COL, rowHeader, "Lookup Account");
|
writeString(TransactionConstants.LOOKUP_ACCOUNT_NO_COL, rowHeader, "Lookup Account");
|
||||||
writeString(TransactionConstants.LOOKUP_PRODUCT_COL, rowHeader, "Lookup Product");
|
writeString(TransactionConstants.LOOKUP_PRODUCT_COL, rowHeader, "Lookup Product");
|
||||||
|
|||||||
+14
@@ -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.HSSFDataValidationHelper;
|
||||||
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
||||||
import org.apache.poi.ss.SpreadsheetVersion;
|
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.CellStyle;
|
||||||
import org.apache.poi.ss.usermodel.DataValidation;
|
import org.apache.poi.ss.usermodel.DataValidation;
|
||||||
import org.apache.poi.ss.usermodel.DataValidationConstraint;
|
import org.apache.poi.ss.usermodel.DataValidationConstraint;
|
||||||
@@ -158,6 +159,7 @@ public class SavingsWorkbookPopulator extends AbstractWorkbookPopulator {
|
|||||||
dateCellStyle.setDataFormat(df);
|
dateCellStyle.setDataFormat(df);
|
||||||
for (Integer rowNo = 1; rowNo < 1000; rowNo++) {
|
for (Integer rowNo = 1; rowNo < 1000; rowNo++) {
|
||||||
Row row = worksheet.createRow(rowNo);
|
Row row = worksheet.createRow(rowNo);
|
||||||
|
setFormatStyle(worksheet, row);
|
||||||
writeFormula(SavingsConstants.CURRENCY_COL, row, "IF(ISERROR(INDIRECT(CONCATENATE(\"Currency_\",$D" + (rowNo + 1)
|
writeFormula(SavingsConstants.CURRENCY_COL, row, "IF(ISERROR(INDIRECT(CONCATENATE(\"Currency_\",$D" + (rowNo + 1)
|
||||||
+ "))),\"\",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)
|
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) {
|
private void setRules(Sheet worksheet, String dateFormat) {
|
||||||
CellRangeAddressList officeNameRange = new CellRangeAddressList(1, SpreadsheetVersion.EXCEL97.getLastRowIndex(),
|
CellRangeAddressList officeNameRange = new CellRangeAddressList(1, SpreadsheetVersion.EXCEL97.getLastRowIndex(),
|
||||||
SavingsConstants.OFFICE_NAME_COL, SavingsConstants.OFFICE_NAME_COL);
|
SavingsConstants.OFFICE_NAME_COL, SavingsConstants.OFFICE_NAME_COL);
|
||||||
|
|||||||
+4
-4
@@ -265,8 +265,8 @@ public final class ClientDataValidator {
|
|||||||
if (this.fromApiJsonHelper.parameterExists(ClientApiConstants.constitutionIdParamName, element)) {
|
if (this.fromApiJsonHelper.parameterExists(ClientApiConstants.constitutionIdParamName, element)) {
|
||||||
final Integer constitution = this.fromApiJsonHelper.extractIntegerSansLocaleNamed(ClientApiConstants.constitutionIdParamName,
|
final Integer constitution = this.fromApiJsonHelper.extractIntegerSansLocaleNamed(ClientApiConstants.constitutionIdParamName,
|
||||||
element);
|
element);
|
||||||
baseDataValidator.reset().parameter(ClientApiConstants.constitutionIdParamName).value(constitution).ignoreIfNull()
|
baseDataValidator.reset().parameter(ClientApiConstants.constitutionIdParamName).value(constitution).integerGreaterThanZero()
|
||||||
.integerGreaterThanZero();
|
.notBlank();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.fromApiJsonHelper.parameterExists(ClientApiConstants.mainBusinessLineIdParamName, element)) {
|
if (this.fromApiJsonHelper.parameterExists(ClientApiConstants.mainBusinessLineIdParamName, element)) {
|
||||||
@@ -561,8 +561,8 @@ public final class ClientDataValidator {
|
|||||||
atLeastOneParameterPassedForUpdate = true;
|
atLeastOneParameterPassedForUpdate = true;
|
||||||
final Integer constitutionId = this.fromApiJsonHelper.extractIntegerSansLocaleNamed(ClientApiConstants.constitutionIdParamName,
|
final Integer constitutionId = this.fromApiJsonHelper.extractIntegerSansLocaleNamed(ClientApiConstants.constitutionIdParamName,
|
||||||
element);
|
element);
|
||||||
baseDataValidator.reset().parameter(ClientApiConstants.constitutionIdParamName).value(constitutionId).ignoreIfNull()
|
baseDataValidator.reset().parameter(ClientApiConstants.constitutionIdParamName).value(constitutionId).integerGreaterThanZero()
|
||||||
.integerGreaterThanZero();
|
.notBlank();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.fromApiJsonHelper.parameterExists(ClientApiConstants.mainBusinessLineIdParamName, element)) {
|
if (this.fromApiJsonHelper.parameterExists(ClientApiConstants.mainBusinessLineIdParamName, element)) {
|
||||||
|
|||||||
+2
-1
@@ -66,7 +66,8 @@ public class DepositAccountTransactionDataValidator {
|
|||||||
transactionAmountParamName, paymentTypeIdParamName, transactionAccountNumberParamName, checkNumberParamName,
|
transactionAmountParamName, paymentTypeIdParamName, transactionAccountNumberParamName, checkNumberParamName,
|
||||||
routingCodeParamName, receiptNumberParamName, bankNumberParamName, DepositsApiConstants.amountParamName,
|
routingCodeParamName, receiptNumberParamName, bankNumberParamName, DepositsApiConstants.amountParamName,
|
||||||
DepositsApiConstants.accountIdParamName, DepositsApiConstants.dateParamName, DepositsApiConstants.submittedOnDateParamName,
|
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<String> DEPOSIT_ACCOUNT_RECOMMENDED_DEPOSIT_AMOUNT_UPDATE_REQUEST_DATA_PARAMETERS = new HashSet<>(
|
private static final Set<String> DEPOSIT_ACCOUNT_RECOMMENDED_DEPOSIT_AMOUNT_UPDATE_REQUEST_DATA_PARAMETERS = new HashSet<>(
|
||||||
Arrays.asList(DepositsApiConstants.localeParamName, DepositsApiConstants.dateFormatParamName,
|
Arrays.asList(DepositsApiConstants.localeParamName, DepositsApiConstants.dateFormatParamName,
|
||||||
|
|||||||
+1
-1
@@ -50,7 +50,7 @@ public class SavingsAccountConstant extends SavingsApiConstants {
|
|||||||
dateFormatParamName, transactionDateParamName, transactionAmountParamName, paymentTypeIdParamName,
|
dateFormatParamName, transactionDateParamName, transactionAmountParamName, paymentTypeIdParamName,
|
||||||
transactionAccountNumberParamName, checkNumberParamName, routingCodeParamName, receiptNumberParamName, bankNumberParamName,
|
transactionAccountNumberParamName, checkNumberParamName, routingCodeParamName, receiptNumberParamName, bankNumberParamName,
|
||||||
retailEntriesParamName, childAccountIdParamName, noteParamName, amountParamName, dateParamName, isManualTransaction,
|
retailEntriesParamName, childAccountIdParamName, noteParamName, amountParamName, dateParamName, isManualTransaction,
|
||||||
lienTransaction, chargesPaidByData, submittedOnDateParamName, accountIdParamName));
|
lienTransaction, chargesPaidByData, submittedOnDateParamName, accountIdParamName, accountNoParamName));
|
||||||
|
|
||||||
protected static final Set<String> SAVINGS_ACCOUNT_TRANSACTION_RESPONSE_DATA_PARAMETERS = new HashSet<>(
|
protected static final Set<String> SAVINGS_ACCOUNT_TRANSACTION_RESPONSE_DATA_PARAMETERS = new HashSet<>(
|
||||||
Arrays.asList(idParamName, accountNoParamName));
|
Arrays.asList(idParamName, accountNoParamName));
|
||||||
|
|||||||
+1
-1
@@ -186,7 +186,7 @@ public class SavingsAccountDataValidator {
|
|||||||
if (lockinPeriodFrequency != null) {
|
if (lockinPeriodFrequency != null) {
|
||||||
final Integer lockinPeriodFrequencyType = this.fromApiJsonHelper
|
final Integer lockinPeriodFrequencyType = this.fromApiJsonHelper
|
||||||
.extractIntegerSansLocaleNamed(lockinPeriodFrequencyTypeParamName, element);
|
.extractIntegerSansLocaleNamed(lockinPeriodFrequencyTypeParamName, element);
|
||||||
baseDataValidator.reset().parameter(lockinPeriodFrequencyTypeParamName).value(lockinPeriodFrequencyType).notNull()
|
baseDataValidator.reset().parameter(lockinPeriodFrequencyTypeParamName).value(lockinPeriodFrequencyType).ignoreIfNull()
|
||||||
.inMinMaxRange(0, 3);
|
.inMinMaxRange(0, 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user