Migrate SQL to Query Class
This commit is contained in:
parent
57cf011123
commit
3bc21ad93a
|
@ -19,6 +19,8 @@ package org.compiere.model;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
@ -66,133 +68,127 @@ public class MAccount extends X_C_ValidCombination
|
||||||
int C_Project_ID, int C_Campaign_ID, int C_Activity_ID,
|
int C_Project_ID, int C_Campaign_ID, int C_Activity_ID,
|
||||||
int User1_ID, int User2_ID, int UserElement1_ID, int UserElement2_ID)
|
int User1_ID, int User2_ID, int UserElement1_ID, int UserElement2_ID)
|
||||||
{
|
{
|
||||||
MAccount existingAccount = null;
|
|
||||||
//
|
|
||||||
StringBuffer info = new StringBuffer();
|
StringBuffer info = new StringBuffer();
|
||||||
StringBuffer sql = new StringBuffer("SELECT * FROM C_ValidCombination "
|
info.append("AD_Client_ID=").append(AD_Client_ID).append(",AD_Org_ID=").append(AD_Org_ID);
|
||||||
|
// Schema
|
||||||
|
info.append(",C_AcctSchema_ID=").append(C_AcctSchema_ID);
|
||||||
|
// Account
|
||||||
|
info.append(",Account_ID=").append(Account_ID).append(" ");
|
||||||
|
|
||||||
|
ArrayList<Object> params = new ArrayList<Object>();
|
||||||
// Mandatory fields
|
// Mandatory fields
|
||||||
+ "WHERE AD_Client_ID=?" // #1
|
StringBuffer whereClause = new StringBuffer("AD_Client_ID=?" // #1
|
||||||
+ " AND AD_Org_ID=?"
|
+ " AND AD_Org_ID=?"
|
||||||
+ " AND C_AcctSchema_ID=?"
|
+ " AND C_AcctSchema_ID=?"
|
||||||
+ " AND Account_ID=?"); // #4
|
+ " AND Account_ID=?"); // #4
|
||||||
|
|
||||||
// Optional fields
|
// Optional fields
|
||||||
if (C_SubAcct_ID == 0)
|
if (C_SubAcct_ID == 0)
|
||||||
sql.append(" AND C_SubAcct_ID IS NULL");
|
whereClause.append(" AND C_SubAcct_ID IS NULL");
|
||||||
else
|
else
|
||||||
sql.append(" AND C_SubAcct_ID=?");
|
{
|
||||||
|
whereClause.append(" AND C_SubAcct_ID=?");
|
||||||
|
params.add(C_SubAcct_ID);
|
||||||
|
}
|
||||||
if (M_Product_ID == 0)
|
if (M_Product_ID == 0)
|
||||||
sql.append(" AND M_Product_ID IS NULL");
|
whereClause.append(" AND M_Product_ID IS NULL");
|
||||||
else
|
else
|
||||||
sql.append(" AND M_Product_ID=?");
|
{
|
||||||
|
whereClause.append(" AND M_Product_ID=?");
|
||||||
|
params.add(M_Product_ID);
|
||||||
|
}
|
||||||
if (C_BPartner_ID == 0)
|
if (C_BPartner_ID == 0)
|
||||||
sql.append(" AND C_BPartner_ID IS NULL");
|
whereClause.append(" AND C_BPartner_ID IS NULL");
|
||||||
else
|
else
|
||||||
sql.append(" AND C_BPartner_ID=?");
|
{
|
||||||
|
whereClause.append(" AND C_BPartner_ID=?");
|
||||||
|
params.add(C_BPartner_ID);
|
||||||
|
}
|
||||||
if (AD_OrgTrx_ID == 0)
|
if (AD_OrgTrx_ID == 0)
|
||||||
sql.append(" AND AD_OrgTrx_ID IS NULL");
|
whereClause.append(" AND AD_OrgTrx_ID IS NULL");
|
||||||
else
|
else
|
||||||
sql.append(" AND AD_OrgTrx_ID=?");
|
{
|
||||||
|
whereClause.append(" AND AD_OrgTrx_ID=?");
|
||||||
|
params.add(AD_OrgTrx_ID);
|
||||||
|
}
|
||||||
if (C_LocFrom_ID == 0)
|
if (C_LocFrom_ID == 0)
|
||||||
sql.append(" AND C_LocFrom_ID IS NULL");
|
whereClause.append(" AND C_LocFrom_ID IS NULL");
|
||||||
else
|
else
|
||||||
sql.append(" AND C_LocFrom_ID=?");
|
{
|
||||||
|
whereClause.append(" AND C_LocFrom_ID=?");
|
||||||
|
params.add(C_LocFrom_ID);
|
||||||
|
}
|
||||||
if (C_LocTo_ID == 0)
|
if (C_LocTo_ID == 0)
|
||||||
sql.append(" AND C_LocTo_ID IS NULL");
|
whereClause.append(" AND C_LocTo_ID IS NULL");
|
||||||
else
|
else
|
||||||
sql.append(" AND C_LocTo_ID=?");
|
{
|
||||||
|
whereClause.append(" AND C_LocTo_ID=?");
|
||||||
|
params.add(C_LocTo_ID);
|
||||||
|
}
|
||||||
if (C_SalesRegion_ID == 0)
|
if (C_SalesRegion_ID == 0)
|
||||||
sql.append(" AND C_SalesRegion_ID IS NULL");
|
whereClause.append(" AND C_SalesRegion_ID IS NULL");
|
||||||
else
|
else
|
||||||
sql.append(" AND C_SalesRegion_ID=?");
|
{
|
||||||
|
whereClause.append(" AND C_SalesRegion_ID=?");
|
||||||
|
params.add(C_SalesRegion_ID);
|
||||||
|
}
|
||||||
if (C_Project_ID == 0)
|
if (C_Project_ID == 0)
|
||||||
sql.append(" AND C_Project_ID IS NULL");
|
whereClause.append(" AND C_Project_ID IS NULL");
|
||||||
else
|
else
|
||||||
sql.append(" AND C_Project_ID=?");
|
{
|
||||||
|
whereClause.append(" AND C_Project_ID=?");
|
||||||
|
params.add(C_Project_ID);
|
||||||
|
}
|
||||||
if (C_Campaign_ID == 0)
|
if (C_Campaign_ID == 0)
|
||||||
sql.append(" AND C_Campaign_ID IS NULL");
|
whereClause.append(" AND C_Campaign_ID IS NULL");
|
||||||
else
|
else
|
||||||
sql.append(" AND C_Campaign_ID=?");
|
{
|
||||||
|
whereClause.append(" AND C_Campaign_ID=?");
|
||||||
|
params.add(C_Campaign_ID);
|
||||||
|
}
|
||||||
if (C_Activity_ID == 0)
|
if (C_Activity_ID == 0)
|
||||||
sql.append(" AND C_Activity_ID IS NULL");
|
whereClause.append(" AND C_Activity_ID IS NULL");
|
||||||
else
|
else
|
||||||
sql.append(" AND C_Activity_ID=?");
|
{
|
||||||
|
whereClause.append(" AND C_Activity_ID=?");
|
||||||
|
params.add(C_Activity_ID);
|
||||||
|
}
|
||||||
if (User1_ID == 0)
|
if (User1_ID == 0)
|
||||||
sql.append(" AND User1_ID IS NULL");
|
whereClause.append(" AND User1_ID IS NULL");
|
||||||
else
|
else
|
||||||
sql.append(" AND User1_ID=?");
|
{
|
||||||
|
whereClause.append(" AND User1_ID=?");
|
||||||
|
params.add(User1_ID);
|
||||||
|
}
|
||||||
if (User2_ID == 0)
|
if (User2_ID == 0)
|
||||||
sql.append(" AND User2_ID IS NULL");
|
whereClause.append(" AND User2_ID IS NULL");
|
||||||
else
|
else
|
||||||
sql.append(" AND User2_ID=?");
|
{
|
||||||
|
whereClause.append(" AND User2_ID=?");
|
||||||
|
params.add(User2_ID);
|
||||||
|
}
|
||||||
if (UserElement1_ID == 0)
|
if (UserElement1_ID == 0)
|
||||||
sql.append(" AND UserElement1_ID IS NULL");
|
whereClause.append(" AND UserElement1_ID IS NULL");
|
||||||
else
|
else
|
||||||
sql.append(" AND UserElement1_ID=?");
|
{
|
||||||
|
whereClause.append(" AND UserElement1_ID=?");
|
||||||
|
params.add(UserElement1_ID);
|
||||||
|
}
|
||||||
if (UserElement2_ID == 0)
|
if (UserElement2_ID == 0)
|
||||||
sql.append(" AND UserElement2_ID IS NULL");
|
whereClause.append(" AND UserElement2_ID IS NULL");
|
||||||
else
|
else
|
||||||
sql.append(" AND UserElement2_ID=?");
|
|
||||||
sql.append(" AND IsActive='Y'");
|
|
||||||
// sql.append(" ORDER BY IsFullyQualified DESC");
|
|
||||||
PreparedStatement pstmt = null;
|
|
||||||
ResultSet rs = null;
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
pstmt = DB.prepareStatement(sql.toString(), null);
|
whereClause.append(" AND UserElement2_ID=?");
|
||||||
// -- Mandatory Accounting fields
|
params.add(UserElement2_ID);
|
||||||
int index = 1;
|
}
|
||||||
pstmt.setInt(index++, AD_Client_ID);
|
whereClause.append(" AND IsActive='Y'");
|
||||||
pstmt.setInt(index++, AD_Org_ID);
|
// whereClause.append(" ORDER BY IsFullyQualified DESC");
|
||||||
info.append("AD_Client_ID=").append(AD_Client_ID).append(",AD_Org_ID=").append(AD_Org_ID);
|
|
||||||
// Schema
|
|
||||||
pstmt.setInt(index++, C_AcctSchema_ID);
|
|
||||||
info.append(",C_AcctSchema_ID=").append(C_AcctSchema_ID);
|
MAccount existingAccount = new Query(ctx,MAccount.Table_Name,whereClause.toString(),null)
|
||||||
// Account
|
.setParameters(params).first();
|
||||||
pstmt.setInt(index++, Account_ID);
|
|
||||||
info.append(",Account_ID=").append(Account_ID).append(" ");
|
|
||||||
|
|
||||||
// -- Optional Accounting fields
|
|
||||||
if (C_SubAcct_ID != 0)
|
|
||||||
pstmt.setInt(index++, C_SubAcct_ID);
|
|
||||||
if (M_Product_ID != 0)
|
|
||||||
pstmt.setInt(index++, M_Product_ID);
|
|
||||||
if (C_BPartner_ID != 0)
|
|
||||||
pstmt.setInt(index++, C_BPartner_ID);
|
|
||||||
if (AD_OrgTrx_ID != 0)
|
|
||||||
pstmt.setInt(index++, AD_OrgTrx_ID);
|
|
||||||
if (C_LocFrom_ID != 0)
|
|
||||||
pstmt.setInt(index++, C_LocFrom_ID);
|
|
||||||
if (C_LocTo_ID != 0)
|
|
||||||
pstmt.setInt(index++, C_LocTo_ID);
|
|
||||||
if (C_SalesRegion_ID != 0)
|
|
||||||
pstmt.setInt(index++, C_SalesRegion_ID);
|
|
||||||
if (C_Project_ID != 0)
|
|
||||||
pstmt.setInt(index++, C_Project_ID);
|
|
||||||
if (C_Campaign_ID != 0)
|
|
||||||
pstmt.setInt(index++, C_Campaign_ID);
|
|
||||||
if (C_Activity_ID != 0)
|
|
||||||
pstmt.setInt(index++, C_Activity_ID);
|
|
||||||
if (User1_ID != 0)
|
|
||||||
pstmt.setInt(index++, User1_ID);
|
|
||||||
if (User2_ID != 0)
|
|
||||||
pstmt.setInt(index++, User2_ID);
|
|
||||||
if (UserElement1_ID != 0)
|
|
||||||
pstmt.setInt(index++, UserElement1_ID);
|
|
||||||
if (UserElement2_ID != 0)
|
|
||||||
pstmt.setInt(index++, UserElement2_ID);
|
|
||||||
//
|
|
||||||
rs = pstmt.executeQuery();
|
|
||||||
if (rs.next())
|
|
||||||
existingAccount = new MAccount (ctx, rs, null);
|
|
||||||
}
|
|
||||||
catch(SQLException e)
|
|
||||||
{
|
|
||||||
s_log.log(Level.SEVERE, info + "\n" + sql, e);
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
DB.close(rs, pstmt);
|
|
||||||
}
|
|
||||||
// Existing
|
// Existing
|
||||||
if (existingAccount != null)
|
if (existingAccount != null)
|
||||||
return existingAccount;
|
return existingAccount;
|
||||||
|
@ -236,28 +232,9 @@ public class MAccount extends X_C_ValidCombination
|
||||||
*/
|
*/
|
||||||
public static MAccount get (Properties ctx, int C_AcctSchema_ID, String alias)
|
public static MAccount get (Properties ctx, int C_AcctSchema_ID, String alias)
|
||||||
{
|
{
|
||||||
MAccount retValue = null;
|
String whereClause = "C_AcctSchema_ID=? AND Alias=?";
|
||||||
String sql = "SELECT * FROM C_ValidCombination WHERE C_AcctSchema_ID=? AND Alias=?";
|
MAccount retValue = new Query(ctx,MAccount.Table_Name,whereClause.toString(),null)
|
||||||
PreparedStatement pstmt = null;
|
.setParameters(new Object[]{C_AcctSchema_ID,alias}).first();
|
||||||
ResultSet rs = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
pstmt = DB.prepareStatement (sql, null);
|
|
||||||
pstmt.setInt(1, C_AcctSchema_ID);
|
|
||||||
pstmt.setString (2, alias);
|
|
||||||
rs = pstmt.executeQuery ();
|
|
||||||
if (rs.next ())
|
|
||||||
retValue = new MAccount (ctx, rs, null);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
s_log.log (Level.SEVERE, sql, e);
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
DB.close(rs, pstmt);
|
|
||||||
rs = null; pstmt = null;
|
|
||||||
}
|
|
||||||
return retValue;
|
return retValue;
|
||||||
} // get
|
} // get
|
||||||
|
|
||||||
|
@ -372,38 +349,14 @@ public class MAccount extends X_C_ValidCombination
|
||||||
*/
|
*/
|
||||||
public static void updateValueDescription (Properties ctx, String where, String trxName)
|
public static void updateValueDescription (Properties ctx, String where, String trxName)
|
||||||
{
|
{
|
||||||
String sql = "SELECT * FROM C_ValidCombination";
|
List<MAccount> accounts= new Query(ctx,MAccount.Table_Name,where,trxName)
|
||||||
if (where != null && where.length() > 0)
|
.setOrderBy(MAccount.COLUMNNAME_C_ValidCombination_ID).list();
|
||||||
sql += " WHERE " + where;
|
|
||||||
sql += " ORDER BY C_ValidCombination_ID";
|
for(MAccount account : accounts)
|
||||||
int count = 0;
|
|
||||||
int errors = 0;
|
|
||||||
PreparedStatement pstmt = null;
|
|
||||||
ResultSet rs = null;
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
pstmt = DB.prepareStatement (sql, trxName);
|
|
||||||
rs = pstmt.executeQuery ();
|
|
||||||
while (rs.next ())
|
|
||||||
{
|
|
||||||
MAccount account = new MAccount (ctx, rs, trxName);
|
|
||||||
account.setValueDescription();
|
account.setValueDescription();
|
||||||
if (account.save())
|
account.saveEx();
|
||||||
count++;
|
|
||||||
else
|
|
||||||
errors++;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
s_log.log(Level.SEVERE, sql, e);
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
DB.close(rs, pstmt);
|
|
||||||
rs = null; pstmt = null;
|
|
||||||
}
|
|
||||||
s_log.info(where + " #" + count + ", Errors=" + errors);
|
|
||||||
} // updateValueDescription
|
} // updateValueDescription
|
||||||
|
|
||||||
/** Logger */
|
/** Logger */
|
||||||
|
|
Loading…
Reference in New Issue