From 29b36f84e23ca9a8021a8d407bce07c9ddfafab7 Mon Sep 17 00:00:00 2001 From: hengsin Date: Thu, 4 Apr 2024 23:43:19 +0800 Subject: [PATCH] IDEMPIERE-6081 Import Csv by Template: Allow import from a detail tab into different parents (#2289) --- .../src/org/adempiere/impexp/GridTabCSVImporter.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/org.adempiere.base/src/org/adempiere/impexp/GridTabCSVImporter.java b/org.adempiere.base/src/org/adempiere/impexp/GridTabCSVImporter.java index 3d0e22d5f7..df5cd9deac 100644 --- a/org.adempiere.base/src/org/adempiere/impexp/GridTabCSVImporter.java +++ b/org.adempiere.base/src/org/adempiere/impexp/GridTabCSVImporter.java @@ -1348,10 +1348,10 @@ public class GridTabCSVImporter implements IGridTabImporter } boolean checkParentKey = parentColumns.size()!=gridTab.getParentColumnNames().size(); - if(isThereRow && logMsg==null && masterRecord!=null && checkParentKey){ + if(isThereRow && logMsg==null && (masterRecord!=null||gridTab.getParentTab()!=null) && checkParentKey){ for(String linkColumn : gridTab.getParentColumnNames()){ String columnName = linkColumn; - Object setValue = masterRecord.get_Value(linkColumn); + Object setValue = masterRecord != null ? masterRecord.get_Value(linkColumn) : gridTab.getParentTab().getValue(linkColumn); //resolve missing key if(setValue==null){ columnName = null; @@ -1493,7 +1493,9 @@ public class GridTabCSVImporter implements IGridTabImporter if (gridTab.isDetail()){ for(String linkColumn : gridTab.getParentColumnNames()){ if(!pquery.getWhereClause().contains(linkColumn)){ - Object value = masterRecord!=null?masterRecord.get_Value(linkColumn):null; + Object value = masterRecord!=null + ? masterRecord.get_Value(linkColumn) + : gridTab.getParentTab() != null ? gridTab.getParentTab().getValue(linkColumn) : null; //resolve key if(value==null){ String columnName = null;