IDEMPIERE-236 Centralization of hardcoded IDs
This commit is contained in:
parent
98712527bd
commit
a5fda83899
|
@ -0,0 +1,31 @@
|
||||||
|
/******************************************************************************
|
||||||
|
* Product: Adempiere ERP & CRM Smart Business Solution *
|
||||||
|
* Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. *
|
||||||
|
* This program is free software; you can redistribute it and/or modify it *
|
||||||
|
* under the terms version 2 of the GNU General Public License as published *
|
||||||
|
* by the Free Software Foundation. This program is distributed in the hope *
|
||||||
|
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
|
||||||
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||||
|
* See the GNU General Public License for more details. *
|
||||||
|
* You should have received a copy of the GNU General Public License along *
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc., *
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||||
|
* For the text or an alternative of this public license, you may reach us *
|
||||||
|
* ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA *
|
||||||
|
* or via info@compiere.org or http://www.compiere.org/license.html *
|
||||||
|
*****************************************************************************/
|
||||||
|
package org.compiere.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* List all hardcoded ID used in the code
|
||||||
|
* @author Carlos Ruiz, Nicolas Micoud, ...
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class HardCodedIDs {
|
||||||
|
|
||||||
|
public static int referencePostingType = 125;
|
||||||
|
|
||||||
|
|
||||||
|
public static int windowMyRequests = 237;
|
||||||
|
|
||||||
|
}
|
|
@ -3,19 +3,19 @@
|
||||||
* Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. *
|
* Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. *
|
||||||
* This program is free software; you can redistribute it and/or modify it *
|
* This program is free software; you can redistribute it and/or modify it *
|
||||||
* under the terms version 2 of the GNU General Public License as published *
|
* under the terms version 2 of the GNU General Public License as published *
|
||||||
* by the Free Software Foundation. This program is distributed in the hope *
|
* by the Free Software Foundation. This program is distributed in the hope *
|
||||||
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
|
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
|
||||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||||
* See the GNU General Public License for more details. *
|
* See the GNU General Public License for more details. *
|
||||||
* You should have received a copy of the GNU General Public License along *
|
* You should have received a copy of the GNU General Public License along *
|
||||||
* with this program; if not, write to the Free Software Foundation, Inc., *
|
* with this program; if not, write to the Free Software Foundation, Inc., *
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||||
* For the text or an alternative of this public license, you may reach us *
|
* For the text or an alternative of this public license, you may reach us *
|
||||||
* ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA *
|
* ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA *
|
||||||
* or via info@compiere.org or http://www.compiere.org/license.html *
|
* or via info@compiere.org or http://www.compiere.org/license.html *
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
package org.compiere.acct;
|
package org.compiere.acct;
|
||||||
|
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
@ -29,6 +29,7 @@ import java.util.logging.Level;
|
||||||
|
|
||||||
import javax.swing.JComboBox;
|
import javax.swing.JComboBox;
|
||||||
|
|
||||||
|
import org.compiere.model.HardCodedIDs;
|
||||||
import org.compiere.model.MAcctSchema;
|
import org.compiere.model.MAcctSchema;
|
||||||
import org.compiere.model.MAcctSchemaElement;
|
import org.compiere.model.MAcctSchemaElement;
|
||||||
import org.compiere.model.MFactAcct;
|
import org.compiere.model.MFactAcct;
|
||||||
|
@ -44,439 +45,439 @@ import org.compiere.util.KeyNamePair;
|
||||||
import org.compiere.util.Language;
|
import org.compiere.util.Language;
|
||||||
import org.compiere.util.Msg;
|
import org.compiere.util.Msg;
|
||||||
import org.compiere.util.ValueNamePair;
|
import org.compiere.util.ValueNamePair;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Account Viewer State - maintains State information for the Account Viewer
|
* Account Viewer State - maintains State information for the Account Viewer
|
||||||
*
|
*
|
||||||
* @author Jorg Janke
|
* @author Jorg Janke
|
||||||
* @version $Id: AcctViewerData.java,v 1.3 2006/08/10 01:00:27 jjanke Exp $
|
* @version $Id: AcctViewerData.java,v 1.3 2006/08/10 01:00:27 jjanke Exp $
|
||||||
*
|
*
|
||||||
* @author Teo Sarca, SC ARHIPAC SERVICE SRL
|
* @author Teo Sarca, SC ARHIPAC SERVICE SRL
|
||||||
* <li>BF [ 1748449 ] Info Account - Posting Type is not translated
|
* <li>BF [ 1748449 ] Info Account - Posting Type is not translated
|
||||||
* <li>BF [ 1778373 ] AcctViewer: data is not sorted proper
|
* <li>BF [ 1778373 ] AcctViewer: data is not sorted proper
|
||||||
*/
|
*/
|
||||||
class AcctViewerData
|
class AcctViewerData
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
* @param ctx context
|
* @param ctx context
|
||||||
* @param windowNo window no
|
* @param windowNo window no
|
||||||
* @param ad_Client_ID client
|
* @param ad_Client_ID client
|
||||||
* @param ad_Table_ID table
|
* @param ad_Table_ID table
|
||||||
*/
|
*/
|
||||||
public AcctViewerData (Properties ctx, int windowNo, int ad_Client_ID, int ad_Table_ID)
|
public AcctViewerData (Properties ctx, int windowNo, int ad_Client_ID, int ad_Table_ID)
|
||||||
{
|
{
|
||||||
WindowNo = windowNo;
|
WindowNo = windowNo;
|
||||||
AD_Client_ID = ad_Client_ID;
|
AD_Client_ID = ad_Client_ID;
|
||||||
if (AD_Client_ID == 0)
|
if (AD_Client_ID == 0)
|
||||||
AD_Client_ID = Env.getContextAsInt(Env.getCtx(), WindowNo, "AD_Client_ID");
|
AD_Client_ID = Env.getContextAsInt(Env.getCtx(), WindowNo, "AD_Client_ID");
|
||||||
if (AD_Client_ID == 0)
|
if (AD_Client_ID == 0)
|
||||||
AD_Client_ID = Env.getContextAsInt(Env.getCtx(), "AD_Client_ID");
|
AD_Client_ID = Env.getContextAsInt(Env.getCtx(), "AD_Client_ID");
|
||||||
AD_Table_ID = ad_Table_ID;
|
AD_Table_ID = ad_Table_ID;
|
||||||
//
|
//
|
||||||
ASchemas = MAcctSchema.getClientAcctSchema(ctx, AD_Client_ID);
|
ASchemas = MAcctSchema.getClientAcctSchema(ctx, AD_Client_ID);
|
||||||
ASchema = ASchemas[0];
|
ASchema = ASchemas[0];
|
||||||
} // AcctViewerData
|
} // AcctViewerData
|
||||||
|
|
||||||
/** Window */
|
/** Window */
|
||||||
public int WindowNo;
|
public int WindowNo;
|
||||||
/** Client */
|
/** Client */
|
||||||
public int AD_Client_ID;
|
public int AD_Client_ID;
|
||||||
/** All Acct Schema */
|
/** All Acct Schema */
|
||||||
public MAcctSchema[] ASchemas = null;
|
public MAcctSchema[] ASchemas = null;
|
||||||
/** This Acct Schema */
|
/** This Acct Schema */
|
||||||
public MAcctSchema ASchema = null;
|
public MAcctSchema ASchema = null;
|
||||||
|
|
||||||
// Selection Info
|
// Selection Info
|
||||||
/** Document Query */
|
/** Document Query */
|
||||||
public boolean documentQuery = false;
|
public boolean documentQuery = false;
|
||||||
/** Acct Schema */
|
/** Acct Schema */
|
||||||
public int C_AcctSchema_ID = 0;
|
public int C_AcctSchema_ID = 0;
|
||||||
/** Posting Type */
|
/** Posting Type */
|
||||||
public String PostingType = "";
|
public String PostingType = "";
|
||||||
/** Organization */
|
/** Organization */
|
||||||
public int AD_Org_ID = 0;
|
public int AD_Org_ID = 0;
|
||||||
/** Date From */
|
/** Date From */
|
||||||
public Timestamp DateFrom = null;
|
public Timestamp DateFrom = null;
|
||||||
/** Date To */
|
/** Date To */
|
||||||
public Timestamp DateTo = null;
|
public Timestamp DateTo = null;
|
||||||
|
|
||||||
// Document Table Selection Info
|
// Document Table Selection Info
|
||||||
/** Table ID */
|
/** Table ID */
|
||||||
public int AD_Table_ID;
|
public int AD_Table_ID;
|
||||||
/** Record */
|
/** Record */
|
||||||
public int Record_ID;
|
public int Record_ID;
|
||||||
|
|
||||||
/** Containing Column and Query */
|
/** Containing Column and Query */
|
||||||
public HashMap<String,String> whereInfo = new HashMap<String,String>();
|
public HashMap<String,String> whereInfo = new HashMap<String,String>();
|
||||||
/** Containing TableName and AD_Table_ID */
|
/** Containing TableName and AD_Table_ID */
|
||||||
public HashMap<String,Integer> tableInfo = new HashMap<String,Integer>();
|
public HashMap<String,Integer> tableInfo = new HashMap<String,Integer>();
|
||||||
|
|
||||||
// Display Info
|
// Display Info
|
||||||
/** Display Qty */
|
/** Display Qty */
|
||||||
boolean displayQty = false;
|
boolean displayQty = false;
|
||||||
/** Display Source Currency */
|
/** Display Source Currency */
|
||||||
boolean displaySourceAmt = false;
|
boolean displaySourceAmt = false;
|
||||||
/** Display Document info */
|
/** Display Document info */
|
||||||
boolean displayDocumentInfo = false;
|
boolean displayDocumentInfo = false;
|
||||||
//
|
//
|
||||||
String sortBy1 = "";
|
String sortBy1 = "";
|
||||||
String sortBy2 = "";
|
String sortBy2 = "";
|
||||||
String sortBy3 = "";
|
String sortBy3 = "";
|
||||||
String sortBy4 = "";
|
String sortBy4 = "";
|
||||||
//
|
//
|
||||||
boolean group1 = false;
|
boolean group1 = false;
|
||||||
boolean group2 = false;
|
boolean group2 = false;
|
||||||
boolean group3 = false;
|
boolean group3 = false;
|
||||||
boolean group4 = false;
|
boolean group4 = false;
|
||||||
|
|
||||||
/** Leasing Columns */
|
/** Leasing Columns */
|
||||||
private int m_leadingColumns = 0;
|
private int m_leadingColumns = 0;
|
||||||
/** UserElement1 Reference */
|
/** UserElement1 Reference */
|
||||||
private String m_ref1 = null;
|
private String m_ref1 = null;
|
||||||
/** UserElement2 Reference */
|
/** UserElement2 Reference */
|
||||||
private String m_ref2 = null;
|
private String m_ref2 = null;
|
||||||
/** Logger */
|
/** Logger */
|
||||||
private static CLogger log = CLogger.getCLogger(AcctViewerData.class);
|
private static CLogger log = CLogger.getCLogger(AcctViewerData.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dispose
|
* Dispose
|
||||||
*/
|
*/
|
||||||
public void dispose()
|
public void dispose()
|
||||||
{
|
{
|
||||||
ASchemas = null;
|
ASchemas = null;
|
||||||
ASchema = null;
|
ASchema = null;
|
||||||
//
|
//
|
||||||
whereInfo.clear();
|
whereInfo.clear();
|
||||||
whereInfo = null;
|
whereInfo = null;
|
||||||
//
|
//
|
||||||
Env.clearWinContext(WindowNo);
|
Env.clearWinContext(WindowNo);
|
||||||
} // dispose
|
} // dispose
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* Fill Accounting Schema
|
* Fill Accounting Schema
|
||||||
* @param cb JComboBox to be filled
|
* @param cb JComboBox to be filled
|
||||||
*/
|
*/
|
||||||
protected void fillAcctSchema (JComboBox cb)
|
protected void fillAcctSchema (JComboBox cb)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < ASchemas.length; i++)
|
for (int i = 0; i < ASchemas.length; i++)
|
||||||
cb.addItem(new KeyNamePair(ASchemas[i].getC_AcctSchema_ID(),
|
cb.addItem(new KeyNamePair(ASchemas[i].getC_AcctSchema_ID(),
|
||||||
ASchemas[i].getName()));
|
ASchemas[i].getName()));
|
||||||
} // fillAcctSchema
|
} // fillAcctSchema
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fill Posting Type
|
* Fill Posting Type
|
||||||
* @param cb JComboBox to be filled
|
* @param cb JComboBox to be filled
|
||||||
*/
|
*/
|
||||||
protected void fillPostingType (JComboBox cb)
|
protected void fillPostingType (JComboBox cb)
|
||||||
{
|
{
|
||||||
int AD_Reference_ID = 125;
|
int AD_Reference_ID = HardCodedIDs.referencePostingType;
|
||||||
ValueNamePair[] pt = MRefList.getList(Env.getCtx(), AD_Reference_ID, true);
|
ValueNamePair[] pt = MRefList.getList(Env.getCtx(), AD_Reference_ID, true);
|
||||||
for (int i = 0; i < pt.length; i++)
|
for (int i = 0; i < pt.length; i++)
|
||||||
cb.addItem(pt[i]);
|
cb.addItem(pt[i]);
|
||||||
} // fillPostingType
|
} // fillPostingType
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fill Table with
|
* Fill Table with
|
||||||
* ValueNamePair (TableName, translatedKeyColumnName)
|
* ValueNamePair (TableName, translatedKeyColumnName)
|
||||||
* and tableInfo with (TableName, AD_Table_ID)
|
* and tableInfo with (TableName, AD_Table_ID)
|
||||||
* and select the entry for AD_Table_ID
|
* and select the entry for AD_Table_ID
|
||||||
*
|
*
|
||||||
* @param cb JComboBox to be filled
|
* @param cb JComboBox to be filled
|
||||||
*/
|
*/
|
||||||
protected void fillTable (JComboBox cb)
|
protected void fillTable (JComboBox cb)
|
||||||
{
|
{
|
||||||
ValueNamePair select = null;
|
ValueNamePair select = null;
|
||||||
//
|
//
|
||||||
String sql = "SELECT AD_Table_ID, TableName FROM AD_Table t "
|
String sql = "SELECT AD_Table_ID, TableName FROM AD_Table t "
|
||||||
+ "WHERE EXISTS (SELECT * FROM AD_Column c"
|
+ "WHERE EXISTS (SELECT * FROM AD_Column c"
|
||||||
+ " WHERE t.AD_Table_ID=c.AD_Table_ID AND c.ColumnName='Posted')"
|
+ " WHERE t.AD_Table_ID=c.AD_Table_ID AND c.ColumnName='Posted')"
|
||||||
+ " AND IsView='N'";
|
+ " AND IsView='N'";
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
PreparedStatement pstmt = DB.prepareStatement(sql, null);
|
PreparedStatement pstmt = DB.prepareStatement(sql, null);
|
||||||
ResultSet rs = pstmt.executeQuery();
|
ResultSet rs = pstmt.executeQuery();
|
||||||
while (rs.next())
|
while (rs.next())
|
||||||
{
|
{
|
||||||
int id = rs.getInt(1);
|
int id = rs.getInt(1);
|
||||||
String tableName = rs.getString(2);
|
String tableName = rs.getString(2);
|
||||||
String name = Msg.translate(Env.getCtx(), tableName+"_ID");
|
String name = Msg.translate(Env.getCtx(), tableName+"_ID");
|
||||||
//
|
//
|
||||||
ValueNamePair pp = new ValueNamePair(tableName, name);
|
ValueNamePair pp = new ValueNamePair(tableName, name);
|
||||||
cb.addItem(pp);
|
cb.addItem(pp);
|
||||||
tableInfo.put (tableName, new Integer(id));
|
tableInfo.put (tableName, new Integer(id));
|
||||||
if (id == AD_Table_ID)
|
if (id == AD_Table_ID)
|
||||||
select = pp;
|
select = pp;
|
||||||
}
|
}
|
||||||
rs.close();
|
rs.close();
|
||||||
pstmt.close();
|
pstmt.close();
|
||||||
}
|
}
|
||||||
catch (SQLException e)
|
catch (SQLException e)
|
||||||
{
|
{
|
||||||
log.log(Level.SEVERE, sql, e);
|
log.log(Level.SEVERE, sql, e);
|
||||||
}
|
}
|
||||||
if (select != null)
|
if (select != null)
|
||||||
cb.setSelectedItem(select);
|
cb.setSelectedItem(select);
|
||||||
} // fillTable
|
} // fillTable
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fill Org
|
* Fill Org
|
||||||
*
|
*
|
||||||
* @param cb JComboBox to be filled
|
* @param cb JComboBox to be filled
|
||||||
*/
|
*/
|
||||||
protected void fillOrg (JComboBox cb)
|
protected void fillOrg (JComboBox cb)
|
||||||
{
|
{
|
||||||
KeyNamePair pp = new KeyNamePair(0, "");
|
KeyNamePair pp = new KeyNamePair(0, "");
|
||||||
cb.addItem(pp);
|
cb.addItem(pp);
|
||||||
String sql = "SELECT AD_Org_ID, Name FROM AD_Org WHERE AD_Client_ID=? ORDER BY Value";
|
String sql = "SELECT AD_Org_ID, Name FROM AD_Org WHERE AD_Client_ID=? ORDER BY Value";
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
PreparedStatement pstmt = DB.prepareStatement(sql, null);
|
PreparedStatement pstmt = DB.prepareStatement(sql, null);
|
||||||
pstmt.setInt(1, AD_Client_ID);
|
pstmt.setInt(1, AD_Client_ID);
|
||||||
ResultSet rs = pstmt.executeQuery();
|
ResultSet rs = pstmt.executeQuery();
|
||||||
while (rs.next())
|
while (rs.next())
|
||||||
cb.addItem(new KeyNamePair(rs.getInt(1), rs.getString(2)));
|
cb.addItem(new KeyNamePair(rs.getInt(1), rs.getString(2)));
|
||||||
rs.close();
|
rs.close();
|
||||||
pstmt.close();
|
pstmt.close();
|
||||||
}
|
}
|
||||||
catch (SQLException e)
|
catch (SQLException e)
|
||||||
{
|
{
|
||||||
log.log(Level.SEVERE, sql, e);
|
log.log(Level.SEVERE, sql, e);
|
||||||
}
|
}
|
||||||
} // fillOrg
|
} // fillOrg
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Button Text
|
* Get Button Text
|
||||||
*
|
*
|
||||||
* @param tableName table
|
* @param tableName table
|
||||||
* @param columnName column
|
* @param columnName column
|
||||||
* @param selectSQL sql
|
* @param selectSQL sql
|
||||||
* @return Text on button
|
* @return Text on button
|
||||||
*/
|
*/
|
||||||
protected String getButtonText (String tableName, String columnName, String selectSQL)
|
protected String getButtonText (String tableName, String columnName, String selectSQL)
|
||||||
{
|
{
|
||||||
// SELECT (<embedded>) FROM tableName avd WHERE avd.<selectSQL>
|
// SELECT (<embedded>) FROM tableName avd WHERE avd.<selectSQL>
|
||||||
StringBuffer sql = new StringBuffer ("SELECT (");
|
StringBuffer sql = new StringBuffer ("SELECT (");
|
||||||
Language language = Env.getLanguage(Env.getCtx());
|
Language language = Env.getLanguage(Env.getCtx());
|
||||||
sql.append(MLookupFactory.getLookup_TableDirEmbed(language, columnName, "avd"))
|
sql.append(MLookupFactory.getLookup_TableDirEmbed(language, columnName, "avd"))
|
||||||
.append(") FROM ").append(tableName).append(" avd WHERE avd.").append(selectSQL);
|
.append(") FROM ").append(tableName).append(" avd WHERE avd.").append(selectSQL);
|
||||||
String retValue = "<" + selectSQL + ">";
|
String retValue = "<" + selectSQL + ">";
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Statement stmt = DB.createStatement();
|
Statement stmt = DB.createStatement();
|
||||||
ResultSet rs = stmt.executeQuery(sql.toString());
|
ResultSet rs = stmt.executeQuery(sql.toString());
|
||||||
if (rs.next())
|
if (rs.next())
|
||||||
retValue = rs.getString(1);
|
retValue = rs.getString(1);
|
||||||
rs.close();
|
rs.close();
|
||||||
stmt.close();
|
stmt.close();
|
||||||
}
|
}
|
||||||
catch (SQLException e)
|
catch (SQLException e)
|
||||||
{
|
{
|
||||||
log.log(Level.SEVERE, sql.toString(), e);
|
log.log(Level.SEVERE, sql.toString(), e);
|
||||||
}
|
}
|
||||||
return retValue;
|
return retValue;
|
||||||
} // getButtonText
|
} // getButtonText
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create Query and submit
|
* Create Query and submit
|
||||||
* @return Report Model
|
* @return Report Model
|
||||||
*/
|
*/
|
||||||
protected RModel query()
|
protected RModel query()
|
||||||
{
|
{
|
||||||
// Set Where Clause
|
// Set Where Clause
|
||||||
StringBuffer whereClause = new StringBuffer();
|
StringBuffer whereClause = new StringBuffer();
|
||||||
// Add Organization
|
// Add Organization
|
||||||
if (C_AcctSchema_ID != 0)
|
if (C_AcctSchema_ID != 0)
|
||||||
whereClause.append(RModel.TABLE_ALIAS)
|
whereClause.append(RModel.TABLE_ALIAS)
|
||||||
.append(".C_AcctSchema_ID=").append(C_AcctSchema_ID);
|
.append(".C_AcctSchema_ID=").append(C_AcctSchema_ID);
|
||||||
|
|
||||||
// Posting Type Selected
|
// Posting Type Selected
|
||||||
if (PostingType != null && PostingType.length() > 0)
|
if (PostingType != null && PostingType.length() > 0)
|
||||||
{
|
{
|
||||||
if (whereClause.length() > 0)
|
if (whereClause.length() > 0)
|
||||||
whereClause.append(" AND ");
|
whereClause.append(" AND ");
|
||||||
whereClause.append(RModel.TABLE_ALIAS)
|
whereClause.append(RModel.TABLE_ALIAS)
|
||||||
.append(".PostingType='").append(PostingType).append("'");
|
.append(".PostingType='").append(PostingType).append("'");
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
if (documentQuery)
|
if (documentQuery)
|
||||||
{
|
{
|
||||||
if (whereClause.length() > 0)
|
if (whereClause.length() > 0)
|
||||||
whereClause.append(" AND ");
|
whereClause.append(" AND ");
|
||||||
whereClause.append(RModel.TABLE_ALIAS).append(".AD_Table_ID=").append(AD_Table_ID)
|
whereClause.append(RModel.TABLE_ALIAS).append(".AD_Table_ID=").append(AD_Table_ID)
|
||||||
.append(" AND ").append(RModel.TABLE_ALIAS).append(".Record_ID=").append(Record_ID);
|
.append(" AND ").append(RModel.TABLE_ALIAS).append(".Record_ID=").append(Record_ID);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// get values (Queries)
|
// get values (Queries)
|
||||||
Iterator<String> it = whereInfo.values().iterator();
|
Iterator<String> it = whereInfo.values().iterator();
|
||||||
while (it.hasNext())
|
while (it.hasNext())
|
||||||
{
|
{
|
||||||
String where = (String)it.next();
|
String where = (String)it.next();
|
||||||
if (where != null && where.length() > 0) // add only if not empty
|
if (where != null && where.length() > 0) // add only if not empty
|
||||||
{
|
{
|
||||||
if (whereClause.length() > 0)
|
if (whereClause.length() > 0)
|
||||||
whereClause.append(" AND ");
|
whereClause.append(" AND ");
|
||||||
whereClause.append(RModel.TABLE_ALIAS).append(".").append(where);
|
whereClause.append(RModel.TABLE_ALIAS).append(".").append(where);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (DateFrom != null || DateTo != null)
|
if (DateFrom != null || DateTo != null)
|
||||||
{
|
{
|
||||||
if (whereClause.length() > 0)
|
if (whereClause.length() > 0)
|
||||||
whereClause.append(" AND ");
|
whereClause.append(" AND ");
|
||||||
if (DateFrom != null && DateTo != null)
|
if (DateFrom != null && DateTo != null)
|
||||||
whereClause.append("TRUNC(").append(RModel.TABLE_ALIAS).append(".DateAcct) BETWEEN ")
|
whereClause.append("TRUNC(").append(RModel.TABLE_ALIAS).append(".DateAcct) BETWEEN ")
|
||||||
.append(DB.TO_DATE(DateFrom)).append(" AND ").append(DB.TO_DATE(DateTo));
|
.append(DB.TO_DATE(DateFrom)).append(" AND ").append(DB.TO_DATE(DateTo));
|
||||||
else if (DateFrom != null)
|
else if (DateFrom != null)
|
||||||
whereClause.append("TRUNC(").append(RModel.TABLE_ALIAS).append(".DateAcct) >= ")
|
whereClause.append("TRUNC(").append(RModel.TABLE_ALIAS).append(".DateAcct) >= ")
|
||||||
.append(DB.TO_DATE(DateFrom));
|
.append(DB.TO_DATE(DateFrom));
|
||||||
else // DateTo != null
|
else // DateTo != null
|
||||||
whereClause.append("TRUNC(").append(RModel.TABLE_ALIAS).append(".DateAcct) <= ")
|
whereClause.append("TRUNC(").append(RModel.TABLE_ALIAS).append(".DateAcct) <= ")
|
||||||
.append(DB.TO_DATE(DateTo));
|
.append(DB.TO_DATE(DateTo));
|
||||||
}
|
}
|
||||||
// Add Organization
|
// Add Organization
|
||||||
if (AD_Org_ID != 0)
|
if (AD_Org_ID != 0)
|
||||||
{
|
{
|
||||||
if (whereClause.length() > 0)
|
if (whereClause.length() > 0)
|
||||||
whereClause.append(" AND ");
|
whereClause.append(" AND ");
|
||||||
whereClause.append(RModel.TABLE_ALIAS).append(".AD_Org_ID=").append(AD_Org_ID);
|
whereClause.append(RModel.TABLE_ALIAS).append(".AD_Org_ID=").append(AD_Org_ID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RModel rm = getRModel();
|
RModel rm = getRModel();
|
||||||
|
|
||||||
// Set Order By Clause
|
// Set Order By Clause
|
||||||
StringBuffer orderClause = new StringBuffer();
|
StringBuffer orderClause = new StringBuffer();
|
||||||
if (sortBy1.length() > 0)
|
if (sortBy1.length() > 0)
|
||||||
{
|
{
|
||||||
RColumn col = rm.getRColumn(sortBy1);
|
RColumn col = rm.getRColumn(sortBy1);
|
||||||
if (col != null)
|
if (col != null)
|
||||||
orderClause.append(col.getDisplaySQL());
|
orderClause.append(col.getDisplaySQL());
|
||||||
else
|
else
|
||||||
orderClause.append(RModel.TABLE_ALIAS).append(".").append(sortBy1);
|
orderClause.append(RModel.TABLE_ALIAS).append(".").append(sortBy1);
|
||||||
}
|
}
|
||||||
if (sortBy2.length() > 0)
|
if (sortBy2.length() > 0)
|
||||||
{
|
{
|
||||||
if (orderClause.length() > 0)
|
if (orderClause.length() > 0)
|
||||||
orderClause.append(",");
|
orderClause.append(",");
|
||||||
RColumn col = rm.getRColumn(sortBy2);
|
RColumn col = rm.getRColumn(sortBy2);
|
||||||
if (col != null)
|
if (col != null)
|
||||||
orderClause.append(col.getDisplaySQL());
|
orderClause.append(col.getDisplaySQL());
|
||||||
else
|
else
|
||||||
orderClause.append(RModel.TABLE_ALIAS).append(".").append(sortBy2);
|
orderClause.append(RModel.TABLE_ALIAS).append(".").append(sortBy2);
|
||||||
}
|
}
|
||||||
if (sortBy3.length() > 0)
|
if (sortBy3.length() > 0)
|
||||||
{
|
{
|
||||||
if (orderClause.length() > 0)
|
if (orderClause.length() > 0)
|
||||||
orderClause.append(",");
|
orderClause.append(",");
|
||||||
RColumn col = rm.getRColumn(sortBy3);
|
RColumn col = rm.getRColumn(sortBy3);
|
||||||
if (col != null)
|
if (col != null)
|
||||||
orderClause.append(col.getDisplaySQL());
|
orderClause.append(col.getDisplaySQL());
|
||||||
else
|
else
|
||||||
orderClause.append(RModel.TABLE_ALIAS).append(".").append(sortBy3);
|
orderClause.append(RModel.TABLE_ALIAS).append(".").append(sortBy3);
|
||||||
}
|
}
|
||||||
if (sortBy4.length() > 0)
|
if (sortBy4.length() > 0)
|
||||||
{
|
{
|
||||||
if (orderClause.length() > 0)
|
if (orderClause.length() > 0)
|
||||||
orderClause.append(",");
|
orderClause.append(",");
|
||||||
RColumn col = rm.getRColumn(sortBy4);
|
RColumn col = rm.getRColumn(sortBy4);
|
||||||
if (col != null)
|
if (col != null)
|
||||||
orderClause.append(col.getDisplaySQL());
|
orderClause.append(col.getDisplaySQL());
|
||||||
else
|
else
|
||||||
orderClause.append(RModel.TABLE_ALIAS).append(".").append(sortBy4);
|
orderClause.append(RModel.TABLE_ALIAS).append(".").append(sortBy4);
|
||||||
}
|
}
|
||||||
if (orderClause.length() == 0)
|
if (orderClause.length() == 0)
|
||||||
orderClause.append(RModel.TABLE_ALIAS).append(".Fact_Acct_ID");
|
orderClause.append(RModel.TABLE_ALIAS).append(".Fact_Acct_ID");
|
||||||
|
|
||||||
// Groups
|
// Groups
|
||||||
if (group1 && sortBy1.length() > 0)
|
if (group1 && sortBy1.length() > 0)
|
||||||
rm.setGroup(sortBy1);
|
rm.setGroup(sortBy1);
|
||||||
if (group2 && sortBy2.length() > 0)
|
if (group2 && sortBy2.length() > 0)
|
||||||
rm.setGroup(sortBy2);
|
rm.setGroup(sortBy2);
|
||||||
if (group3 && sortBy3.length() > 0)
|
if (group3 && sortBy3.length() > 0)
|
||||||
rm.setGroup(sortBy3);
|
rm.setGroup(sortBy3);
|
||||||
if (group4 && sortBy4.length() > 0)
|
if (group4 && sortBy4.length() > 0)
|
||||||
rm.setGroup(sortBy4);
|
rm.setGroup(sortBy4);
|
||||||
|
|
||||||
// Totals
|
// Totals
|
||||||
rm.setFunction("AmtAcctDr", RModel.FUNCTION_SUM);
|
rm.setFunction("AmtAcctDr", RModel.FUNCTION_SUM);
|
||||||
rm.setFunction("AmtAcctCr", RModel.FUNCTION_SUM);
|
rm.setFunction("AmtAcctCr", RModel.FUNCTION_SUM);
|
||||||
|
|
||||||
rm.query (Env.getCtx(), whereClause.toString(), orderClause.toString());
|
rm.query (Env.getCtx(), whereClause.toString(), orderClause.toString());
|
||||||
|
|
||||||
return rm;
|
return rm;
|
||||||
} // query
|
} // query
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create Report Model (Columns)
|
* Create Report Model (Columns)
|
||||||
* @return Report Model
|
* @return Report Model
|
||||||
*/
|
*/
|
||||||
private RModel getRModel()
|
private RModel getRModel()
|
||||||
{
|
{
|
||||||
Properties ctx = Env.getCtx();
|
Properties ctx = Env.getCtx();
|
||||||
RModel rm = new RModel("Fact_Acct");
|
RModel rm = new RModel("Fact_Acct");
|
||||||
// Add Key (Lookups)
|
// Add Key (Lookups)
|
||||||
ArrayList<String> keys = createKeyColumns();
|
ArrayList<String> keys = createKeyColumns();
|
||||||
int max = m_leadingColumns;
|
int max = m_leadingColumns;
|
||||||
if (max == 0)
|
if (max == 0)
|
||||||
max = keys.size();
|
max = keys.size();
|
||||||
for (int i = 0; i < max; i++)
|
for (int i = 0; i < max; i++)
|
||||||
{
|
{
|
||||||
String column = (String)keys.get(i);
|
String column = (String)keys.get(i);
|
||||||
if (column != null && column.startsWith("Date"))
|
if (column != null && column.startsWith("Date"))
|
||||||
rm.addColumn(new RColumn(ctx, column, DisplayType.Date));
|
rm.addColumn(new RColumn(ctx, column, DisplayType.Date));
|
||||||
else if (column != null && column.endsWith("_ID"))
|
else if (column != null && column.endsWith("_ID"))
|
||||||
rm.addColumn(new RColumn(ctx, column, DisplayType.TableDir));
|
rm.addColumn(new RColumn(ctx, column, DisplayType.TableDir));
|
||||||
}
|
}
|
||||||
// Main Info
|
// Main Info
|
||||||
rm.addColumn(new RColumn(ctx, "AmtAcctDr", DisplayType.Amount));
|
rm.addColumn(new RColumn(ctx, "AmtAcctDr", DisplayType.Amount));
|
||||||
rm.addColumn(new RColumn(ctx, "AmtAcctCr", DisplayType.Amount));
|
rm.addColumn(new RColumn(ctx, "AmtAcctCr", DisplayType.Amount));
|
||||||
if (displaySourceAmt)
|
if (displaySourceAmt)
|
||||||
{
|
{
|
||||||
if (!keys.contains("DateTrx"))
|
if (!keys.contains("DateTrx"))
|
||||||
rm.addColumn(new RColumn(ctx, "DateTrx", DisplayType.Date));
|
rm.addColumn(new RColumn(ctx, "DateTrx", DisplayType.Date));
|
||||||
rm.addColumn(new RColumn(ctx, "C_Currency_ID", DisplayType.TableDir));
|
rm.addColumn(new RColumn(ctx, "C_Currency_ID", DisplayType.TableDir));
|
||||||
rm.addColumn(new RColumn(ctx, "AmtSourceDr", DisplayType.Amount));
|
rm.addColumn(new RColumn(ctx, "AmtSourceDr", DisplayType.Amount));
|
||||||
rm.addColumn(new RColumn(ctx, "AmtSourceCr", DisplayType.Amount));
|
rm.addColumn(new RColumn(ctx, "AmtSourceCr", DisplayType.Amount));
|
||||||
rm.addColumn(new RColumn(ctx, "Rate", DisplayType.Amount,
|
rm.addColumn(new RColumn(ctx, "Rate", DisplayType.Amount,
|
||||||
"CASE WHEN (AmtSourceDr + AmtSourceCr) = 0 THEN 0"
|
"CASE WHEN (AmtSourceDr + AmtSourceCr) = 0 THEN 0"
|
||||||
+ " ELSE (AmtAcctDr + AmtAcctCr) / (AmtSourceDr + AmtSourceCr) END"));
|
+ " ELSE (AmtAcctDr + AmtAcctCr) / (AmtSourceDr + AmtSourceCr) END"));
|
||||||
}
|
}
|
||||||
// Remaining Keys
|
// Remaining Keys
|
||||||
for (int i = max; i < keys.size(); i++)
|
for (int i = max; i < keys.size(); i++)
|
||||||
{
|
{
|
||||||
String column = (String)keys.get(i);
|
String column = (String)keys.get(i);
|
||||||
if (column != null && column.startsWith("Date"))
|
if (column != null && column.startsWith("Date"))
|
||||||
rm.addColumn(new RColumn(ctx, column, DisplayType.Date));
|
rm.addColumn(new RColumn(ctx, column, DisplayType.Date));
|
||||||
else if (column.startsWith("UserElement"))
|
else if (column.startsWith("UserElement"))
|
||||||
{
|
{
|
||||||
if (column.indexOf('1') != -1)
|
if (column.indexOf('1') != -1)
|
||||||
rm.addColumn(new RColumn(ctx, column, DisplayType.TableDir, null, 0, m_ref1));
|
rm.addColumn(new RColumn(ctx, column, DisplayType.TableDir, null, 0, m_ref1));
|
||||||
else
|
else
|
||||||
rm.addColumn(new RColumn(ctx, column, DisplayType.TableDir, null, 0, m_ref2));
|
rm.addColumn(new RColumn(ctx, column, DisplayType.TableDir, null, 0, m_ref2));
|
||||||
}
|
}
|
||||||
else if (column != null && column.endsWith("_ID"))
|
else if (column != null && column.endsWith("_ID"))
|
||||||
rm.addColumn(new RColumn(ctx, column, DisplayType.TableDir));
|
rm.addColumn(new RColumn(ctx, column, DisplayType.TableDir));
|
||||||
}
|
}
|
||||||
// Info
|
// Info
|
||||||
if (!keys.contains("DateAcct"))
|
if (!keys.contains("DateAcct"))
|
||||||
rm.addColumn(new RColumn(ctx, "DateAcct", DisplayType.Date));
|
rm.addColumn(new RColumn(ctx, "DateAcct", DisplayType.Date));
|
||||||
if (!keys.contains("C_Period_ID"))
|
if (!keys.contains("C_Period_ID"))
|
||||||
rm.addColumn(new RColumn(ctx, "C_Period_ID", DisplayType.TableDir));
|
rm.addColumn(new RColumn(ctx, "C_Period_ID", DisplayType.TableDir));
|
||||||
if (displayQty)
|
if (displayQty)
|
||||||
{
|
{
|
||||||
rm.addColumn(new RColumn(ctx, "C_UOM_ID", DisplayType.TableDir));
|
rm.addColumn(new RColumn(ctx, "C_UOM_ID", DisplayType.TableDir));
|
||||||
rm.addColumn(new RColumn(ctx, "Qty", DisplayType.Quantity));
|
rm.addColumn(new RColumn(ctx, "Qty", DisplayType.Quantity));
|
||||||
}
|
}
|
||||||
if (displayDocumentInfo)
|
if (displayDocumentInfo)
|
||||||
{
|
{
|
||||||
rm.addColumn(new RColumn(ctx, "AD_Table_ID", DisplayType.TableDir));
|
rm.addColumn(new RColumn(ctx, "AD_Table_ID", DisplayType.TableDir));
|
||||||
rm.addColumn(new RColumn(ctx, "Record_ID", DisplayType.ID));
|
rm.addColumn(new RColumn(ctx, "Record_ID", DisplayType.ID));
|
||||||
rm.addColumn(new RColumn(ctx, "Description", DisplayType.String));
|
rm.addColumn(new RColumn(ctx, "Description", DisplayType.String));
|
||||||
}
|
}
|
||||||
if (PostingType == null || PostingType.length() == 0)
|
if (PostingType == null || PostingType.length() == 0)
|
||||||
|
@ -486,46 +487,46 @@ class AcctViewerData
|
||||||
null));
|
null));
|
||||||
return rm;
|
return rm;
|
||||||
} // createRModel
|
} // createRModel
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create the key columns in sequence
|
* Create the key columns in sequence
|
||||||
* @return List of Key Columns
|
* @return List of Key Columns
|
||||||
*/
|
*/
|
||||||
private ArrayList<String> createKeyColumns()
|
private ArrayList<String> createKeyColumns()
|
||||||
{
|
{
|
||||||
ArrayList<String> columns = new ArrayList<String>();
|
ArrayList<String> columns = new ArrayList<String>();
|
||||||
m_leadingColumns = 0;
|
m_leadingColumns = 0;
|
||||||
// Sorting Fields
|
// Sorting Fields
|
||||||
columns.add(sortBy1); // may add ""
|
columns.add(sortBy1); // may add ""
|
||||||
if (!columns.contains(sortBy2))
|
if (!columns.contains(sortBy2))
|
||||||
columns.add(sortBy2);
|
columns.add(sortBy2);
|
||||||
if (!columns.contains(sortBy3))
|
if (!columns.contains(sortBy3))
|
||||||
columns.add(sortBy3);
|
columns.add(sortBy3);
|
||||||
if (!columns.contains(sortBy4))
|
if (!columns.contains(sortBy4))
|
||||||
columns.add(sortBy4);
|
columns.add(sortBy4);
|
||||||
|
|
||||||
// Add Account Segments
|
// Add Account Segments
|
||||||
MAcctSchemaElement[] elements = ASchema.getAcctSchemaElements();
|
MAcctSchemaElement[] elements = ASchema.getAcctSchemaElements();
|
||||||
for (int i = 0; i < elements.length; i++)
|
for (int i = 0; i < elements.length; i++)
|
||||||
{
|
{
|
||||||
if (m_leadingColumns == 0 && columns.contains("AD_Org_ID") && columns.contains("Account_ID"))
|
if (m_leadingColumns == 0 && columns.contains("AD_Org_ID") && columns.contains("Account_ID"))
|
||||||
m_leadingColumns = columns.size();
|
m_leadingColumns = columns.size();
|
||||||
//
|
//
|
||||||
MAcctSchemaElement ase = elements[i];
|
MAcctSchemaElement ase = elements[i];
|
||||||
String columnName = ase.getColumnName();
|
String columnName = ase.getColumnName();
|
||||||
if (columnName.startsWith("UserElement"))
|
if (columnName.startsWith("UserElement"))
|
||||||
{
|
{
|
||||||
if (columnName.indexOf('1') != -1)
|
if (columnName.indexOf('1') != -1)
|
||||||
m_ref1 = ase.getDisplayColumnName();
|
m_ref1 = ase.getDisplayColumnName();
|
||||||
else
|
else
|
||||||
m_ref2 = ase.getDisplayColumnName();
|
m_ref2 = ase.getDisplayColumnName();
|
||||||
}
|
}
|
||||||
if (!columns.contains(columnName))
|
if (!columns.contains(columnName))
|
||||||
columns.add(columnName);
|
columns.add(columnName);
|
||||||
}
|
}
|
||||||
if (m_leadingColumns == 0 && columns.contains("AD_Org_ID") && columns.contains("Account_ID"))
|
if (m_leadingColumns == 0 && columns.contains("AD_Org_ID") && columns.contains("Account_ID"))
|
||||||
m_leadingColumns = columns.size();
|
m_leadingColumns = columns.size();
|
||||||
return columns;
|
return columns;
|
||||||
} // createKeyColumns
|
} // createKeyColumns
|
||||||
|
|
||||||
} // AcctViewerData
|
} // AcctViewerData
|
||||||
|
|
|
@ -58,6 +58,7 @@ import org.compiere.apps.wf.WFActivity;
|
||||||
import org.compiere.apps.wf.WFPanel;
|
import org.compiere.apps.wf.WFPanel;
|
||||||
import org.compiere.db.CConnection;
|
import org.compiere.db.CConnection;
|
||||||
import org.compiere.grid.tree.VTreePanel;
|
import org.compiere.grid.tree.VTreePanel;
|
||||||
|
import org.compiere.model.HardCodedIDs;
|
||||||
import org.compiere.model.MRole;
|
import org.compiere.model.MRole;
|
||||||
import org.compiere.model.MSession;
|
import org.compiere.model.MSession;
|
||||||
import org.compiere.model.MSysConfig;
|
import org.compiere.model.MSysConfig;
|
||||||
|
@ -687,7 +688,7 @@ public final class AMenu extends CFrame
|
||||||
// + " INNER JOIN AD_TABLE t ON (t.AD_Window_ID=m.AD_Window_ID) "
|
// + " INNER JOIN AD_TABLE t ON (t.AD_Window_ID=m.AD_Window_ID) "
|
||||||
// + "WHERE t.AD_Table_ID=?", 417);
|
// + "WHERE t.AD_Table_ID=?", 417);
|
||||||
if (m_request_Menu_ID == 0)
|
if (m_request_Menu_ID == 0)
|
||||||
m_request_Menu_ID = 237; // My Requests
|
m_request_Menu_ID = HardCodedIDs.windowMyRequests; // My Requests
|
||||||
(new AMenuStartItem (m_request_Menu_ID, true, Msg.translate(m_ctx, "R_Request_ID"), this)).start(); // async load
|
(new AMenuStartItem (m_request_Menu_ID, true, Msg.translate(m_ctx, "R_Request_ID"), this)).start(); // async load
|
||||||
} // gotoRequests
|
} // gotoRequests
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue