Skip to content

Commit

Permalink
get rid of legacy ImportTableDescriptor.tableUnique1, tableUnique2 etc
Browse files Browse the repository at this point in the history
  • Loading branch information
teosarca committed Sep 24, 2019
1 parent b8328e2 commit 05d04c0
Show file tree
Hide file tree
Showing 3 changed files with 0 additions and 138 deletions.
@@ -1,8 +1,5 @@
package de.metas.impexp;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

Expand Down Expand Up @@ -297,10 +294,6 @@ public TableRecordReference updateDB(

final String tableName = importTableDescriptor.getTableName();
final String keyColumnName = importTableDescriptor.getKeyColumnName();
final String tableUnique1 = importTableDescriptor.getTableUnique1();
final String tableUnique2 = importTableDescriptor.getTableUnique2();
final String tableUniqueParent = importTableDescriptor.getTableUniqueParent();
final String tableUniqueChild = importTableDescriptor.getTableUniqueChild();

//
// Re-use the same ID if we already imported this record
Expand All @@ -320,100 +313,6 @@ public TableRecordReference updateDB(
}
}

//
// Check if the record is already there (by looking up by unique keys)
if (importRecordId <= 0)
{
final StringBuilder sql = new StringBuilder("SELECT COUNT(*), MAX(")
.append(keyColumnName).append(") FROM ").append(tableName)
.append(" WHERE AD_Client_ID=").append(clientId.getRepoId()).append(" AND (");
//
String where1 = null;
String where2 = null;
String whereParentChild = null;
for (final ImpDataCell node : nodes)
{
if (node.isEmptyOrZero())
{
continue;
}

final String columnName = node.getColumnName();
if (columnName.equals(tableUnique1))
{
where1 = node.getColumnNameEqualsValueSql();
}
else if (columnName.equals(tableUnique2))
{
where2 = node.getColumnNameEqualsValueSql();
}
else if (columnName.equals(tableUniqueParent) || columnName.equals(tableUniqueChild))
{
if (whereParentChild == null)
{
whereParentChild = node.getColumnNameEqualsValueSql();
}
else
{
whereParentChild += " AND " + node.getColumnNameEqualsValueSql();
}
}
}

final StringBuilder sqlFindExistingRecord = new StringBuilder();
if (where1 != null)
{
sqlFindExistingRecord.append(where1);
}
if (where2 != null)
{
if (sqlFindExistingRecord.length() > 0)
{
sqlFindExistingRecord.append(" OR ");
}
sqlFindExistingRecord.append(where2);
}
if (whereParentChild != null && whereParentChild.indexOf(" AND ") != -1) // need to have both criteria
{
if (sqlFindExistingRecord.length() > 0)
{
sqlFindExistingRecord.append(" OR (").append(whereParentChild).append(")"); // may have only one
}
else
{
sqlFindExistingRecord.append(whereParentChild);
}
}
sql.append(sqlFindExistingRecord).append(")");
//
PreparedStatement pstmt = null;
ResultSet rs = null;
try
{
if (sqlFindExistingRecord.length() > 0)
{
pstmt = DB.prepareStatement(sql.toString(), ITrx.TRXNAME_ThreadInherited);
rs = pstmt.executeQuery();
if (rs.next())
{
final int count = rs.getInt(1);
if (count == 1)
{
importRecordId = rs.getInt(2);
}
}
}
}
catch (SQLException e)
{
throw new DBException(e, sql.toString());
}
finally
{
DB.close(rs, pstmt);
}
}

//
// Insert into import table (only mandatory columns)
if (importRecordId <= 0)
Expand Down
Expand Up @@ -35,11 +35,6 @@ public class ImportTableDescriptor
@NonNull
String keyColumnName;

String tableUnique1;
String tableUnique2;
String tableUniqueParent;
String tableUniqueChild;

String dataImportConfigIdColumnName;
String adIssueIdColumnName;
}
Expand Up @@ -7,9 +7,6 @@
import org.compiere.model.I_AD_Issue;
import org.compiere.model.I_AD_Table;
import org.compiere.model.I_C_DataImport;
import org.compiere.model.I_I_ElementValue;
import org.compiere.model.I_I_Product;
import org.compiere.model.I_I_ReportLine;
import org.compiere.model.POInfo;
import org.springframework.stereotype.Repository;

Expand Down Expand Up @@ -83,39 +80,10 @@ private ImportTableDescriptor retrieveByTableId(@NonNull final AdTableId adTable
? I_AD_Issue.COLUMNNAME_AD_Issue_ID
: null;

// Set Additional Table Info
String tableUnique1 = "";
String tableUnique2 = "";
String tableUniqueParent = "";
String tableUniqueChild = "";

if (I_I_Product.Table_Name.equals(tableName))
{
tableUnique1 = I_I_Product.COLUMNNAME_UPC; // UPC = unique
tableUnique2 = I_I_Product.COLUMNNAME_Value;
tableUniqueParent = I_I_Product.COLUMNNAME_BPartner_Value; // Makes it unique
tableUniqueChild = I_I_Product.COLUMNNAME_VendorProductNo; // Vendor No may not be unique !
}
else if (I_I_ElementValue.Table_Name.equals(tableName))
{
tableUniqueParent = I_I_ElementValue.COLUMNNAME_ElementName; // the parent key
tableUniqueChild = I_I_ElementValue.COLUMNNAME_Value; // the key
}
else if (I_I_ReportLine.Table_Name.equals(tableName))
{
tableUniqueParent = I_I_ReportLine.COLUMNNAME_ReportLineSetName; // the parent key
tableUniqueChild = I_I_ReportLine.COLUMNNAME_Name; // the key
}

return ImportTableDescriptor.builder()
.tableName(tableName)
.keyColumnName(keyColumnName)
//
.tableUnique1(tableUnique1)
.tableUnique2(tableUnique2)
.tableUniqueParent(tableUniqueParent)
.tableUniqueChild(tableUniqueChild)
//
.dataImportConfigIdColumnName(dataImportConfigIdColumnName)
.adIssueIdColumnName(adIssueIdColumnName)
//
Expand Down

0 comments on commit 05d04c0

Please sign in to comment.