[
https://issues.apache.org/jira/browse/FINERACT-656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16672895#comment-16672895
]
ASF GitHub Bot commented on FINERACT-656:
-----------------------------------------
ShruthiRajaram closed pull request #487: FINERACT-656 unable to import client
via bulk import when address is …
URL: https://github.com/apache/fineract/pull/487
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
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 36fb4cdb8..e70ad31bd 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
@@ -18,7 +18,10 @@
*/
package org.apache.fineract.infrastructure.bulkimport.importhandler.client;
-import com.google.gson.GsonBuilder;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
import org.apache.fineract.commands.domain.CommandWrapper;
import org.apache.fineract.commands.service.CommandWrapperBuilder;
import
org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformService;
@@ -29,17 +32,19 @@
import
org.apache.fineract.infrastructure.bulkimport.importhandler.ImportHandlerUtils;
import
org.apache.fineract.infrastructure.bulkimport.importhandler.helper.DateSerializer;
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
-import org.apache.fineract.infrastructure.core.exception.*;
import org.apache.fineract.portfolio.address.data.AddressData;
import org.apache.fineract.portfolio.client.data.ClientData;
import org.apache.fineract.portfolio.client.data.ClientNonPersonData;
-import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.IndexedColors;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
import org.joda.time.LocalDate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import java.util.ArrayList;
-import java.util.List;
+import com.google.gson.GsonBuilder;
@Service
public class ClientEntityImportHandler implements ImportHandler {
@@ -169,8 +174,9 @@ private ClientData readClient(Row row,final String locale,
final String dateForm
city, postalCode, isActiveAddress, stateProvinceId,
countryId);
}
return
ClientData.importClientEntityInstance(legalFormId,row.getRowNum(),name,officeId,clientTypeId,clientClassicationId,
- staffId,active,activationDate,submittedOn,
externalId,incorportionDate,mobileNo,clientNonPersonData,addressDataObj,locale,dateFormat);
- }
+ staffId, active, activationDate, submittedOn,
externalId, incorportionDate, mobileNo,
+ clientNonPersonData, new
ArrayList<AddressData>(Arrays.asList(addressDataObj)), locale, dateFormat);
+ }
public Count importEntity(String dateFormat) {
Sheet
clientSheet=workbook.getSheet(TemplatePopulateImportConstants.CLIENT_ENTITY_SHEET_NAME);
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 34e0fae47..611544790 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
@@ -18,7 +18,10 @@
*/
package org.apache.fineract.infrastructure.bulkimport.importhandler.client;
-import com.google.gson.GsonBuilder;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
import org.apache.fineract.commands.domain.CommandWrapper;
import org.apache.fineract.commands.service.CommandWrapperBuilder;
import
org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformService;
@@ -28,17 +31,18 @@
import
org.apache.fineract.infrastructure.bulkimport.importhandler.ImportHandler;
import
org.apache.fineract.infrastructure.bulkimport.importhandler.ImportHandlerUtils;
import
org.apache.fineract.infrastructure.bulkimport.importhandler.helper.DateSerializer;
-import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
-import org.apache.fineract.infrastructure.core.exception.*;
import org.apache.fineract.portfolio.address.data.AddressData;
import org.apache.fineract.portfolio.client.data.ClientData;
-import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.IndexedColors;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
import org.joda.time.LocalDate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import java.util.ArrayList;
-import java.util.List;
+import com.google.gson.GsonBuilder;
@Service
public class ClientPersonImportHandler implements ImportHandler {
@@ -156,9 +160,10 @@ private ClientData readClient(Row row,final String locale,
final String dateForm
city, postalCode, isActiveAddress, stateProvinceId,
countryId);
}
return
ClientData.importClientPersonInstance(legalFormId,row.getRowNum(),firstName,lastName,middleName,submittedOn,activationDate,active,externalId,
-
officeId,staffId,mobileNo,dob,clientTypeId,genderId,clientClassicationId,isStaff,addressDataObj,locale,dateFormat);
+ officeId, staffId, mobileNo, dob, clientTypeId,
genderId, clientClassicationId, isStaff,
+ new
ArrayList<AddressData>(Arrays.asList(addressDataObj)), locale, dateFormat);
- }
+ }
public Count importEntity(String dateFormat) {
Sheet
clientSheet=workbook.getSheet(TemplatePopulateImportConstants.CLIENT_PERSON_SHEET_NAME);
@@ -174,7 +179,7 @@ public Count importEntity(String dateFormat) {
.createClient() //
.withJson(payload) //
.build(); //
- final CommandProcessingResult result =
commandsSourceWritePlatformService.logCommandSource(commandRequest);
+
commandsSourceWritePlatformService.logCommandSource(commandRequest);
successCount++;
Cell statusCell =
clientSheet.getRow(client.getRowIndex()).createCell(ClientPersonConstants.STATUS_COL);
statusCell.setCellValue(TemplatePopulateImportConstants.STATUS_CELL_IMPORTED);
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/data/AddressData.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/data/AddressData.java
index 61bd88946..d4de82bbe 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/data/AddressData.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/data/AddressData.java
@@ -24,7 +24,9 @@
import org.apache.fineract.infrastructure.codes.data.CodeValueData;
+@SuppressWarnings("unused")
public class AddressData {
+
private final Long client_id;
private final String addressType;
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientData.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientData.java
index 96f136db6..c25730569 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientData.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientData.java
@@ -21,12 +21,10 @@
import java.util.Collection;
import java.util.List;
-
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.CompareToBuilder;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
-import
org.apache.fineract.infrastructure.bulkimport.constants.TemplatePopulateImportConstants;
import org.apache.fineract.infrastructure.codes.data.CodeValueData;
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
import org.apache.fineract.infrastructure.dataqueries.data.DatatableData;
@@ -41,6 +39,7 @@
/**
* Immutable data object representing client data.
*/
+@SuppressWarnings("unused")
final public class ClientData implements Comparable<ClientData> {
private final Long id;
@@ -50,7 +49,6 @@
private final EnumOptionData status;
private final CodeValueData subStatus;
- @SuppressWarnings("unused")
private final Boolean active;
private final LocalDate activationDate;
@@ -103,11 +101,12 @@
private final ClientNonPersonData clientNonPersonDetails;
- private final AddressData address;
+ private final Collection<AddressData> address;
private final Boolean isAddressEnabled;
- private final List<DatatableData> datatables;
+
+ private final List<DatatableData> datatables;
//import fields
private transient Integer rowIndex;
@@ -122,7 +121,7 @@
public static ClientData importClientEntityInstance(Long
legalFormId,Integer rowIndex,String fullname,Long officeId, Long clientTypeId,
Long clientClassificationId,Long staffId,Boolean active,LocalDate
activationDate,LocalDate submittedOnDate,
String externalId,LocalDate dateOfBirth,String
mobileNo,ClientNonPersonData clientNonPersonDetails,
- AddressData address,String locale,String dateFormat){
+ Collection<AddressData> address,String locale,String dateFormat){
return new ClientData(legalFormId,rowIndex,fullname, null, null,
null, submittedOnDate,activationDate,active, externalId,
officeId, staffId,mobileNo,dateOfBirth,clientTypeId,
null,clientClassificationId,null,
address,clientNonPersonDetails, locale,dateFormat);
@@ -131,7 +130,7 @@ public static ClientData importClientEntityInstance(Long
legalFormId,Integer row
public static ClientData importClientPersonInstance(Long
legalFormId,Integer rowIndex,String firstName,String lastName,String middleName,
LocalDate submittedOn,LocalDate activationDate,Boolean
active,String externalId,Long officeId,
Long staffId,String mobileNo, LocalDate dob,Long clientTypeId,Long
genderId,
- Long clientClassificationId, Boolean isStaff, AddressData
address,String locale,String dateFormat){
+ Long clientClassificationId, Boolean isStaff,
Collection<AddressData> address,String locale,String dateFormat){
return new ClientData(legalFormId,rowIndex, null,
firstName,lastName,middleName,submittedOn,activationDate,active,externalId,
officeId,staffId,mobileNo,dob,clientTypeId,genderId,clientClassificationId,isStaff,address,
null, locale,dateFormat);
@@ -144,7 +143,7 @@ public static ClientData emptyInstance(Long clientId) {
private ClientData(Long legalFormId,Integer rowIndex, String fullname,
String firstname,String lastname,String middlename,
LocalDate submittedOn,LocalDate activationDate,Boolean
active,String externalId,Long officeId,
Long staffId,String mobileNo, LocalDate dob,Long clientTypeId,Long
genderId,
- Long clientClassificationId,Boolean isStaff, AddressData address,
ClientNonPersonData clientNonPersonDetails,
+ Long clientClassificationId,Boolean isStaff,
Collection<AddressData> address, ClientNonPersonData clientNonPersonDetails,
String locale,String dateFormat ) {
this.rowIndex=rowIndex;
this.dateFormat=dateFormat;
@@ -225,7 +224,7 @@ public static ClientData template(final Long officeId,
final LocalDate joinedDat
final Collection<StaffData> staffOptions, final
Collection<CodeValueData> narrations,
final Collection<CodeValueData> genderOptions, final
Collection<SavingsProductData> savingProductOptions,
final Collection<CodeValueData> clientTypeOptions, final
Collection<CodeValueData> clientClassificationOptions, final
Collection<CodeValueData> clientNonPersonConstitutionOptions,
- final Collection<CodeValueData>
clientNonPersonMainBusinessLineOptions, final List<EnumOptionData>
clientLegalFormOptions,final ClientFamilyMembersData familyMemberOptions, final
AddressData address,
+ final Collection<CodeValueData>
clientNonPersonMainBusinessLineOptions, final List<EnumOptionData>
clientLegalFormOptions,final ClientFamilyMembersData familyMemberOptions, final
Collection<AddressData> address,
final Boolean isAddressEnabled, final List<DatatableData>
datatables) {
final String accountNo = null;
final EnumOptionData status = null;
@@ -456,7 +455,7 @@ private ClientData(final String accountNo, final
EnumOptionData status, final Co
final CodeValueData clientClassification, final
Collection<CodeValueData> clientTypeOptions,
final Collection<CodeValueData> clientClassificationOptions, final
Collection<CodeValueData> clientNonPersonConstitutionOptions,
final Collection<CodeValueData>
clientNonPersonMainBusinessLineOptions, final ClientNonPersonData
clientNonPerson,
- final List<EnumOptionData> clientLegalFormOptions,final
ClientFamilyMembersData familyMemberOptions, final EnumOptionData legalForm,
final AddressData address,
+ final List<EnumOptionData> clientLegalFormOptions,final
ClientFamilyMembersData familyMemberOptions, final EnumOptionData legalForm,
final Collection<AddressData> address,
final Boolean isAddressEnabled, final List<DatatableData>
datatables, final Boolean isStaff) {
this.accountNo = accountNo;
this.status = status;
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientReadPlatformServiceImpl.java
index 4b1313b44..9d1babd8a 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientReadPlatformServiceImpl.java
@@ -169,8 +169,9 @@ public ClientData retrieveTemplate(final Long officeId,
final boolean staffInSel
return ClientData.template(defaultOfficeId, new LocalDate(), offices,
staffOptions, null, genderOptions, savingsProductDatas,
clientTypeOptions, clientClassificationOptions,
clientNonPersonConstitutionOptions, clientNonPersonMainBusinessLineOptions,
-
clientLegalFormOptions,familyMemberOptions,address,isAddressEnabled,
datatableTemplates);
- }
+ clientLegalFormOptions, familyMemberOptions,
new ArrayList<AddressData>(Arrays.asList(address)),
+ isAddressEnabled, datatableTemplates);
+ }
@Override
// @Transactional(readOnly=true)
@@ -427,7 +428,7 @@ public String schema() {
}
@Override
- public ClientData mapRow(final ResultSet rs,
@SuppressWarnings("unused") final int rowNum) throws SQLException {
+ public ClientData mapRow(final ResultSet rs, final int rowNum) throws
SQLException {
final String accountNo = rs.getString("accountNo");
@@ -612,7 +613,7 @@ public String schema() {
}
@Override
- public ClientData mapRow(final ResultSet rs,
@SuppressWarnings("unused") final int rowNum) throws SQLException {
+ public ClientData mapRow(final ResultSet rs, final int rowNum) throws
SQLException {
final String accountNo = rs.getString("accountNo");
@@ -714,7 +715,7 @@ public String parentGroupsSchema() {
}
@Override
- public GroupGeneralData mapRow(final ResultSet rs,
@SuppressWarnings("unused") final int rowNum) throws SQLException {
+ public GroupGeneralData mapRow(final ResultSet rs, final int rowNum)
throws SQLException {
final Long groupId = JdbcSupport.getLong(rs, "groupId");
final String groupName = rs.getString("groupName");
@@ -744,7 +745,7 @@ public String schema() {
}
@Override
- public ClientData mapRow(final ResultSet rs,
@SuppressWarnings("unused") final int rowNum) throws SQLException {
+ public ClientData mapRow(final ResultSet rs, final int rowNum) throws
SQLException {
final Long id = rs.getLong("id");
final String displayName = rs.getString("displayName");
@@ -778,7 +779,7 @@ public String clientLookupByIdentifierSchema() {
}
@Override
- public ClientData mapRow(final ResultSet rs,
@SuppressWarnings("unused") final int rowNum) throws SQLException {
+ public ClientData mapRow(final ResultSet rs, final int rowNum) throws
SQLException {
final Long id = rs.getLong("id");
final String accountNo = rs.getString("accountNo");
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> Not able to import clients when address is enabled.
> ---------------------------------------------------
>
> Key: FINERACT-656
> URL: https://issues.apache.org/jira/browse/FINERACT-656
> Project: Apache Fineract
> Issue Type: Bug
> Components: Client
> Affects Versions: 1.1.0
> Reporter: Santosh Math
> Assignee: Shruthi M R
> Priority: Critical
> Labels: gsoc,, p1
> Fix For: 1.2.0
>
> Attachments: OutputCLIENTS_PERSON2018-10-10 (1).xls
>
>
> Go to system>Configuration , then enable address.
> Go to clients and click on "Import Clients' Try to upload the excel file
> attached with this ticket.
> Shows the error, 'This is not the json array'
> Go to system>Configuration , then disable address.
> Go to clients and click on "Import Clients' Try to upload the excel file
> attached with this ticket.
> Successfully uploads but the address is not getting updated.
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)