# HG changeset patch
# User Shankar Balachandran <shankar.balachandran@openbravo.com>
# Date 1387877776 -19800
#      Tue Dec 24 15:06:16 2013 +0530
# Node ID 8c06e95300b57d20dc670e127ae42e94b607936b
# Parent  45f454a1d15f2d4cec0c9fede7a40335487222cf
Fixes Issue 0025347: Parent record is not retrieved correctly under some circumstances

The getParentRecord method computes the parent record only from the parent tab instead of comparing all the tabs of the window.

diff -r 45f454a1d15f -r 8c06e95300b5 modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelUtils.java
--- a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelUtils.java	Mon Dec 23 14:13:08 2013 +0530
+++ b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelUtils.java	Tue Dec 24 15:06:16 2013 +0530
@@ -357,17 +357,16 @@
    * @return The BaseOBObject of the parent record
    */
   public BaseOBObject getParentRecord(BaseOBObject object, Tab tab) {
-    List<Tab> tabsOfWindow = tab.getWindow().getADTabList();
-    ArrayList<Entity> entities = new ArrayList<Entity>();
-    for (Tab aTab : tabsOfWindow) {
-      Entity entity = ModelProvider.getInstance().getEntityByTableName(
-          aTab.getTable().getDBTableName());
-      entities.add(entity);
+    Entity parentEntity = null;
+    Tab parentTab = getParentTab(tab);
+    if (parentTab != null) {
+      parentEntity = parentTab.getEntity();
     }
     Property fkProp = null;
     for (Property property : object.getEntity().getProperties()) {
       if (property.isParent()) {
-        if (property.getTargetEntity() != null && entities.contains(property.getTargetEntity())) {
+        if (property.getTargetEntity() != null && parentEntity != null
+            && parentEntity == property.getTargetEntity()) {
           fkProp = property;
         }
       }
