From 4d526e9c6fcc3ae96b0c7f8e52f034e9bf08d0d8 Mon Sep 17 00:00:00 2001
From: Guillermo Gil <guillermo.gil@openbravo.com>
Date: Fri, 16 Oct 2020 10:55:13 +0200
Subject: [PATCH] [PATCH] Included Data Quality Management data in Copy store
 process

---
 .../copystore/process/CopyStoreProcess.java   |  8 ++++++-
 .../process/DefaultPropertiesHandler.java     | 23 +++++++++++++++----
 2 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/src/org/openbravo/retail/copystore/process/CopyStoreProcess.java b/src/org/openbravo/retail/copystore/process/CopyStoreProcess.java
index b98730b..a3e1d04 100644
--- a/src/org/openbravo/retail/copystore/process/CopyStoreProcess.java
+++ b/src/org/openbravo/retail/copystore/process/CopyStoreProcess.java
@@ -189,6 +189,8 @@ public class CopyStoreProcess {
 
   public String originalStorePrefix;
 
+  public OrganizationStructureProvider osp;
+
   public void init(JSONObject _params, CopyStoreFile _copyStoreFile) {
     params = _params;
     copyStoreFile = _copyStoreFile;
@@ -296,7 +298,12 @@ public class CopyStoreProcess {
       OBDal.getInstance().flush();
       clonedOrg = newStore;
 
+      setOrgInTree();
       processAnonymousCustomer();
+      osp = OBContext.getOBContext()
+          .getOrganizationStructureProvider(((Organization) originalStore).getClient().getId());
+      osp.reInitialize();
+
       processFKOrganizationProperties();
       orgInfo();
       copyFinancialAccounts();
@@ -321,7 +328,6 @@ public class CopyStoreProcess {
 
       postProcess();
 
-      setOrgInTree();
       setOrgReady();
       addLog(LogLevel.WARN, OBMessageUtils.messageBD("OBPOSCS_LogoutLogin"));
     } catch (Exception e) {
diff --git a/src/org/openbravo/retail/copystore/process/DefaultPropertiesHandler.java b/src/org/openbravo/retail/copystore/process/DefaultPropertiesHandler.java
index 2661cc3..08344c1 100644
--- a/src/org/openbravo/retail/copystore/process/DefaultPropertiesHandler.java
+++ b/src/org/openbravo/retail/copystore/process/DefaultPropertiesHandler.java
@@ -21,7 +21,6 @@ import org.openbravo.base.provider.OBProvider;
 import org.openbravo.base.structure.BaseOBObject;
 import org.openbravo.base.structure.OrganizationEnabled;
 import org.openbravo.client.kernel.ComponentProvider.Qualifier;
-import org.openbravo.dal.core.OBContext;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.erpCommon.utility.OBMessageUtils;
 import org.openbravo.model.common.businesspartner.BusinessPartner;
@@ -197,10 +196,8 @@ public class DefaultPropertiesHandler {
       @Override
       public void handleProperty(BaseOBObject originalObject, BaseOBObject newObject,
           CopyStoreProcess process) {
-        if (OBContext.getOBContext()
-            .getOrganizationStructureProvider(((Organization) originalObject).getClient().getId())
-            .isInNaturalTree(((Organization) originalObject).getObretcoDbpOrgid(),
-                process.newStore)) {
+        if (originalObject.get("obretcoDbpOrgid") != null && process.osp.isInNaturalTree(
+            ((Organization) originalObject).getObretcoDbpOrgid(), process.newStore)) {
           newObject.set("obretcoDbpOrgid", originalObject.get("obretcoDbpOrgid"));
         } else {
           newObject.set("obretcoDbpOrgid", null);
@@ -208,6 +205,22 @@ public class DefaultPropertiesHandler {
       }
     }
 
+    @Qualifier("Organization.oBRETCOCrossStoreOrganization")
+    public static class CrossStoreOrg extends PropertyHandler {
+      @Override
+      public void handleProperty(BaseOBObject originalObject, BaseOBObject newObject,
+          CopyStoreProcess process) {
+        if (originalObject.get("oBRETCOCrossStoreOrganization") != null && process.osp
+            .isInNaturalTree(((Organization) originalObject).getOBRETCOCrossStoreOrganization(),
+                process.newStore)) {
+          newObject.set("oBRETCOCrossStoreOrganization",
+              originalObject.get("oBRETCOCrossStoreOrganization"));
+        } else {
+          newObject.set("oBRETCOCrossStoreOrganization", null);
+        }
+      }
+    }
+
     @Qualifier("Organization.obposCDoctype")
     public static class CDoctype extends PropertyHandler {
       @Override
-- 
2.20.1

