From 300edd61667dc6ac5dfcafc4ba1616b0b8012335 Mon Sep 17 00:00:00 2001 From: metas-rc Date: Fri, 10 Jan 2020 18:40:20 +0200 Subject: [PATCH] #6024 add bpartnerName in the olcand json https://github.com/metasfresh/metasfresh/issues/6024 --- .../bpartnercomposite/JsonRetrieverService.java | 3 +++ .../jsonpersister/JsonPersisterService.java | 10 ++++++++++ .../impl/BPartnerMasterDataProvider.java | 3 +++ .../bpartner/request/JsonRequestLocation.java | 11 ++++++++--- .../bpartner/response/JsonResponseLocation.java | 7 +++++++ .../bpartner/composite/BPartnerLocation.java | 15 +++++++++++++++ .../repository/BPartnerCompositeSaver.java | 1 + .../composite/repository/ChangeLogUtil.java | 1 + 8 files changed, 48 insertions(+), 3 deletions(-) diff --git a/de.metas.business.rest-api-impl/src/main/java/de/metas/rest_api/bpartner/impl/bpartnercomposite/JsonRetrieverService.java b/de.metas.business.rest-api-impl/src/main/java/de/metas/rest_api/bpartner/impl/bpartnercomposite/JsonRetrieverService.java index 026801ec98f..34e9bf5ad69 100644 --- a/de.metas.business.rest-api-impl/src/main/java/de/metas/rest_api/bpartner/impl/bpartnercomposite/JsonRetrieverService.java +++ b/de.metas.business.rest-api-impl/src/main/java/de/metas/rest_api/bpartner/impl/bpartnercomposite/JsonRetrieverService.java @@ -13,6 +13,7 @@ import org.adempiere.ad.table.RecordChangeLogEntry; import org.adempiere.ad.table.RecordChangeLogRepository; import org.adempiere.exceptions.AdempiereException; + import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -146,6 +147,7 @@ public class JsonRetrieverService .put(BPartnerLocation.ID, JsonResponseLocation.METASFRESH_ID) .put(BPartnerLocation.ACTIVE, JsonResponseLocation.ACTIVE) .put(BPartnerLocation.NAME, JsonResponseLocation.NAME) + .put(BPartnerLocation.BPARTNERNAME, JsonResponseLocation.BPARTNERNAME) .put(BPartnerLocation.ADDRESS_1, JsonResponseLocation.ADDRESS_1) .put(BPartnerLocation.ADDRESS_2, JsonResponseLocation.ADDRESS_2) .put(BPartnerLocation.ADDRESS_3, JsonResponseLocation.ADDRESS_3) @@ -368,6 +370,7 @@ private static JsonResponseLocation toJson(@NonNull final BPartnerLocation locat return JsonResponseLocation.builder() .active(location.isActive()) .name(location.getName()) + .bpartnerName(location.getBpartnerName()) .address1(location.getAddress1()) .address2(location.getAddress2()) .address3(location.getAddress3()) diff --git a/de.metas.business.rest-api-impl/src/main/java/de/metas/rest_api/bpartner/impl/bpartnercomposite/jsonpersister/JsonPersisterService.java b/de.metas.business.rest-api-impl/src/main/java/de/metas/rest_api/bpartner/impl/bpartnercomposite/jsonpersister/JsonPersisterService.java index 78d0f45648c..c3c8aaa6b4d 100644 --- a/de.metas.business.rest-api-impl/src/main/java/de/metas/rest_api/bpartner/impl/bpartnercomposite/jsonpersister/JsonPersisterService.java +++ b/de.metas.business.rest-api-impl/src/main/java/de/metas/rest_api/bpartner/impl/bpartnercomposite/jsonpersister/JsonPersisterService.java @@ -1049,6 +1049,16 @@ else if (isUpdateRemove) location.setName(null); } + // bpartnerName + if (!isEmpty(jsonBPartnerLocation.getBpartnerName(), true)) + { + location.setBpartnerName(jsonBPartnerLocation.getBpartnerName().trim()); + } + else if (isUpdateRemove) + { + location.setBpartnerName(null); + } + // address1 if (!isEmpty(jsonBPartnerLocation.getAddress1(), true)) { diff --git a/de.metas.business.rest-api-impl/src/main/java/de/metas/rest_api/ordercandidates/impl/BPartnerMasterDataProvider.java b/de.metas.business.rest-api-impl/src/main/java/de/metas/rest_api/ordercandidates/impl/BPartnerMasterDataProvider.java index 1df3655e7be..e4d5ebab013 100644 --- a/de.metas.business.rest-api-impl/src/main/java/de/metas/rest_api/ordercandidates/impl/BPartnerMasterDataProvider.java +++ b/de.metas.business.rest-api-impl/src/main/java/de/metas/rest_api/ordercandidates/impl/BPartnerMasterDataProvider.java @@ -594,6 +594,8 @@ private void updateBPartnerLocationRecord( bpLocationRecord.setIsShipTo(true); bpLocationRecord.setIsBillTo(true); + bpLocationRecord.setBPartnerName(from.getBpartnerName()); + bpLocationRecord.setGLN(from.getGln()); if (from.getExternalId() != null) { @@ -655,6 +657,7 @@ private JsonResponseLocation toJsonBPartnerLocation(@NonNull final I_C_BPartner_ .city(location.getCity()) .region(location.getRegionName()) .countryCode(countryCode) + .bpartnerName(record.getBPartnerName()) // .active(record.isActive()) // diff --git a/de.metas.business.rest-api/src/main/java/de/metas/rest_api/bpartner/request/JsonRequestLocation.java b/de.metas.business.rest-api/src/main/java/de/metas/rest_api/bpartner/request/JsonRequestLocation.java index 6a3e4608490..990e8ae35f3 100644 --- a/de.metas.business.rest-api/src/main/java/de/metas/rest_api/bpartner/request/JsonRequestLocation.java +++ b/de.metas.business.rest-api/src/main/java/de/metas/rest_api/bpartner/request/JsonRequestLocation.java @@ -1,17 +1,16 @@ package de.metas.rest_api.bpartner.request; import static de.metas.rest_api.bpartner.SwaggerDocConstants.PARENT_SYNC_ADVISE_DOC; + import javax.annotation.Nullable; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonProperty; import de.metas.rest_api.common.JsonExternalId; import de.metas.rest_api.common.SyncAdvise; - -import com.fasterxml.jackson.annotation.JsonProperty; - import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Builder; @@ -56,6 +55,9 @@ public class JsonRequestLocation @JsonInclude(Include.NON_EMPTY) String name; + @JsonInclude(Include.NON_EMPTY) + String bpartnerName; + @JsonInclude(Include.NON_EMPTY) String address1; @@ -132,6 +134,7 @@ private JsonRequestLocation( @JsonProperty("gln") @Nullable final String gln, @JsonProperty("externalId") @Nullable final JsonExternalId externalId, @JsonProperty("name") @Nullable final String name, + @JsonProperty("bpartnerName") @Nullable final String bpartnerName, @JsonProperty("active") @Nullable final Boolean active, @JsonProperty("address1") @Nullable final String address1, @JsonProperty("address2") @Nullable final String address2, @@ -154,6 +157,8 @@ private JsonRequestLocation( this.name = name; + this.bpartnerName = bpartnerName; + this.active = active; this.address1 = address1; diff --git a/de.metas.business.rest-api/src/main/java/de/metas/rest_api/bpartner/response/JsonResponseLocation.java b/de.metas.business.rest-api/src/main/java/de/metas/rest_api/bpartner/response/JsonResponseLocation.java index 9e0c017c62b..30748cbfe41 100644 --- a/de.metas.business.rest-api/src/main/java/de/metas/rest_api/bpartner/response/JsonResponseLocation.java +++ b/de.metas.business.rest-api/src/main/java/de/metas/rest_api/bpartner/response/JsonResponseLocation.java @@ -43,6 +43,7 @@ public class JsonResponseLocation public static final String METASFRESH_ID = "metasfreshId"; public static final String EXTERNAL_ID = "externalId"; public static final String NAME = "name"; + public static final String BPARTNERNAME = "bpartnerName"; public static final String ADDRESS_1 = "address1"; public static final String ADDRESS_2 = "address2"; public static final String ADDRESS_3 = "address3"; @@ -76,6 +77,9 @@ public class JsonResponseLocation @ApiModelProperty(allowEmptyValue = false) String name; + @ApiModelProperty(allowEmptyValue = false) + String bpartnerName; + @JsonInclude(Include.NON_EMPTY) String address1; @@ -128,6 +132,7 @@ private JsonResponseLocation( @JsonProperty(METASFRESH_ID) @NonNull final MetasfreshId metasfreshId, @JsonProperty(EXTERNAL_ID) @Nullable final JsonExternalId externalId, @JsonProperty(NAME) @Nullable final String name, + @JsonProperty(BPARTNERNAME) @Nullable final String bpartnerName, @JsonProperty(ACTIVE) @NonNull final Boolean active, @JsonProperty(ADDRESS_1) @Nullable final String address1, @JsonProperty(ADDRESS_2) @Nullable final String address2, @@ -155,6 +160,8 @@ private JsonResponseLocation( this.name = name; + this.bpartnerName = bpartnerName; + this.address1 = address1; this.address2 = address2; this.address3 = address3; diff --git a/de.metas.business/src/main/java/de/metas/bpartner/composite/BPartnerLocation.java b/de.metas.business/src/main/java/de/metas/bpartner/composite/BPartnerLocation.java index c8649ce80fc..757d49c6ad7 100644 --- a/de.metas.business/src/main/java/de/metas/bpartner/composite/BPartnerLocation.java +++ b/de.metas.business/src/main/java/de/metas/bpartner/composite/BPartnerLocation.java @@ -57,6 +57,7 @@ public class BPartnerLocation public static final String EXTERNAL_ID = "externalId"; public static final String GLN = "gln"; public static final String NAME = "name"; + public static final String BPARTNERNAME = " bpartnerName"; public static final String ACTIVE = "active"; public static final String ADDRESS_1 = "address1"; public static final String ADDRESS_2 = "address2"; @@ -78,6 +79,8 @@ public class BPartnerLocation private String name; + private String bpartnerName; + private boolean active; private String address1; @@ -121,6 +124,7 @@ private BPartnerLocation( @Nullable final GLN gln, @Nullable final Boolean active, @Nullable final String name, + @Nullable final String bpartnerName, @Nullable final String address1, @Nullable final String address2, @Nullable final String address3, @@ -142,6 +146,8 @@ private BPartnerLocation( this.active = coalesce(active, true); this.name = name; + + this.bpartnerName = bpartnerName; this.address1 = address1; this.address2 = address2; this.address3 = address3; @@ -216,6 +222,15 @@ public void setName(@Nullable final String name) this.name = name; } + public void setBpartnerName(@Nullable final String bpartnerName) + { + if (!Objects.equals(this.bpartnerName, bpartnerName)) + { + createOriginalIfNotExists(); + } + this.bpartnerName = bpartnerName; + } + public void setActive(@Nullable final boolean active) { if (!Objects.equals(this.active, active)) diff --git a/de.metas.business/src/main/java/de/metas/bpartner/composite/repository/BPartnerCompositeSaver.java b/de.metas.business/src/main/java/de/metas/bpartner/composite/repository/BPartnerCompositeSaver.java index 8157362d6cb..9c4192afdb5 100644 --- a/de.metas.business/src/main/java/de/metas/bpartner/composite/repository/BPartnerCompositeSaver.java +++ b/de.metas.business/src/main/java/de/metas/bpartner/composite/repository/BPartnerCompositeSaver.java @@ -177,6 +177,7 @@ private void saveBPartnerLocation( bpartnerLocationRecord.setIsActive(bpartnerLocation.isActive()); bpartnerLocationRecord.setC_BPartner_ID(bpartnerId.getRepoId()); bpartnerLocationRecord.setName(bpartnerLocation.getName()); + bpartnerLocationRecord.setBPartnerName(bpartnerLocation.getBpartnerName()); final BPartnerLocationType locationType = bpartnerLocation.getLocationType(); if (locationType != null) diff --git a/de.metas.business/src/main/java/de/metas/bpartner/composite/repository/ChangeLogUtil.java b/de.metas.business/src/main/java/de/metas/bpartner/composite/repository/ChangeLogUtil.java index 55ba70abee3..f753c691f07 100644 --- a/de.metas.business/src/main/java/de/metas/bpartner/composite/repository/ChangeLogUtil.java +++ b/de.metas.business/src/main/java/de/metas/bpartner/composite/repository/ChangeLogUtil.java @@ -115,6 +115,7 @@ final class ChangeLogUtil .put(I_C_BPartner_Location.COLUMNNAME_GLN, BPartnerLocation.GLN) .put(I_C_BPartner_Location.COLUMNNAME_C_BPartner_Location_ID, BPartnerLocation.ID) .put(I_C_BPartner_Location.COLUMNNAME_Name, BPartnerLocation.NAME) + .put(I_C_BPartner_Location.COLUMNNAME_BPartnerName, BPartnerLocation.BPARTNERNAME) .put(I_C_BPartner_Location.COLUMNNAME_IsBillToDefault, BPartnerLocationType.BILL_TO_DEFAULT) .put(I_C_BPartner_Location.COLUMNNAME_IsBillTo, BPartnerLocationType.BILL_TO) .put(I_C_BPartner_Location.COLUMNNAME_IsShipToDefault, BPartnerLocationType.SHIP_TO_DEFAULT)