📄 trialbalance.java
字号:
/******************************************************************************
* The contents of this file are subject to the Compiere License Version 1.1
* ("License"); You may not use this file except in compliance with the License
* You may obtain a copy of the License at http://www.compiere.org/license.html
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
* The Original Code is Compiere ERP & CRM Smart Business Solution. The Initial
* Developer of the Original Code is Jorg Janke. Portions created by Jorg Janke
* are Copyright (C) 1999-2005 Jorg Janke.
* All parts are Copyright (C) 1999-2005 ComPiere, Inc. All Rights Reserved.
* Contributor(s): ______________________________________.
*****************************************************************************/
package org.compiere.report;
import java.math.*;
import java.sql.*;
import java.util.*;
import org.compiere.model.*;
import org.compiere.process.*;
import java.util.logging.*;
import org.compiere.util.*;
/**
* Trial Balance
*
* @author Jorg Janke
* @version $Id: TrialBalance.java,v 1.10 2005/11/01 16:36:41 jjanke Exp $
*/
public class TrialBalance extends SvrProcess
{
/** AcctSchame Parameter */
private int p_C_AcctSchema_ID = 0;
/** Period Parameter */
private int p_C_Period_ID = 0;
private Timestamp p_DateAcct_From = null;
private Timestamp p_DateAcct_To = null;
/** Org Parameter */
private int p_AD_Org_ID = 0;
/** Account Parameter */
private int p_Account_ID = 0;
private String p_AccountValue_From = null;
private String p_AccountValue_To = null;
/** BPartner Parameter */
private int p_C_BPartner_ID = 0;
/** Product Parameter */
private int p_M_Product_ID = 0;
/** Project Parameter */
private int p_C_Project_ID = 0;
/** Activity Parameter */
private int p_C_Activity_ID = 0;
/** SalesRegion Parameter */
private int p_C_SalesRegion_ID = 0;
/** Campaign Parameter */
private int p_C_Campaign_ID = 0;
/** Posting Type */
private String p_PostingType = "A";
/** Hierarchy */
private int p_PA_Hierarchy_ID = 0;
private int p_AD_OrgTrx_ID = 0;
private int p_C_LocFrom_ID = 0;
private int p_C_LocTo_ID = 0;
private int p_User1_ID = 0;
private int p_User2_ID = 0;
/** Parameter Where Clause */
private StringBuffer m_parameterWhere = new StringBuffer();
/** Account */
private MElementValue m_acct = null;
/** Start Time */
private long m_start = System.currentTimeMillis();
/** Insert Statement */
private static String s_insert = "INSERT INTO T_TrialBalance "
+ "(AD_PInstance_ID, Fact_Acct_ID,"
+ " AD_Client_ID, AD_Org_ID, Created,CreatedBy, Updated,UpdatedBy,"
+ " C_AcctSchema_ID, Account_ID, AccountValue, DateTrx, DateAcct, C_Period_ID,"
+ " AD_Table_ID, Record_ID, Line_ID,"
+ " GL_Category_ID, GL_Budget_ID, C_Tax_ID, M_Locator_ID, PostingType,"
+ " C_Currency_ID, AmtSourceDr, AmtSourceCr, AmtSourceBalance,"
+ " AmtAcctDr, AmtAcctCr, AmtAcctBalance, C_UOM_ID, Qty,"
+ " M_Product_ID, C_BPartner_ID, AD_OrgTrx_ID, C_LocFrom_ID,C_LocTo_ID,"
+ " C_SalesRegion_ID, C_Project_ID, C_Campaign_ID, C_Activity_ID,"
+ " User1_ID, User2_ID, A_Asset_ID, Description)";
/**
* Prepare - e.g., get Parameters.
*/
protected void prepare()
{
StringBuffer sb = new StringBuffer ("AD_PInstance_ID=")
.append(getAD_PInstance_ID());
// Parameter
ProcessInfoParameter[] para = getParameter();
for (int i = 0; i < para.length; i++)
{
String name = para[i].getParameterName();
if (para[i].getParameter() == null)
;
else if (name.equals("C_AcctSchema_ID"))
p_C_AcctSchema_ID = ((BigDecimal)para[i].getParameter()).intValue();
else if (name.equals("C_Period_ID"))
p_C_Period_ID = ((BigDecimal)para[i].getParameter()).intValue();
else if (name.equals("DateAcct"))
{
p_DateAcct_From = (Timestamp)para[i].getParameter();
p_DateAcct_To = (Timestamp)para[i].getParameter_To();
}
else if (name.equals("PA_Hierarchy_ID"))
p_PA_Hierarchy_ID = para[i].getParameterAsInt();
else if (name.equals("AD_Org_ID"))
p_AD_Org_ID = ((BigDecimal)para[i].getParameter()).intValue();
else if (name.equals("Account_ID"))
p_Account_ID = ((BigDecimal)para[i].getParameter()).intValue();
else if (name.equals("AccountValue"))
{
p_AccountValue_From = (String)para[i].getParameter();
p_AccountValue_To = (String)para[i].getParameter_To();
}
else if (name.equals("C_BPartner_ID"))
p_C_BPartner_ID = ((BigDecimal)para[i].getParameter()).intValue();
else if (name.equals("M_Product_ID"))
p_M_Product_ID = ((BigDecimal)para[i].getParameter()).intValue();
else if (name.equals("C_Project_ID"))
p_C_Project_ID = ((BigDecimal)para[i].getParameter()).intValue();
else if (name.equals("C_Activity_ID"))
p_C_Activity_ID = ((BigDecimal)para[i].getParameter()).intValue();
else if (name.equals("C_SalesRegion_ID"))
p_C_SalesRegion_ID = ((BigDecimal)para[i].getParameter()).intValue();
else if (name.equals("C_Campaign_ID"))
p_C_Campaign_ID = ((BigDecimal)para[i].getParameter()).intValue();
else if (name.equals("PostingType"))
p_PostingType = (String)para[i].getParameter();
else
log.log(Level.SEVERE, "Unknown Parameter: " + name);
}
// Mandatory C_AcctSchema_ID
m_parameterWhere.append("C_AcctSchema_ID=").append(p_C_AcctSchema_ID);
// Optional Account_ID
if (p_Account_ID != 0)
m_parameterWhere.append(" AND ").append(MReportTree.getWhereClause(getCtx(),
p_PA_Hierarchy_ID,MAcctSchemaElement.ELEMENTTYPE_Account, p_Account_ID));
if (p_AccountValue_From != null && p_AccountValue_From.length() == 0)
p_AccountValue_From = null;
if (p_AccountValue_To != null && p_AccountValue_To.length() == 0)
p_AccountValue_To = null;
if (p_AccountValue_From != null && p_AccountValue_To != null)
m_parameterWhere.append(" AND (Account_ID IS NULL OR EXISTS (SELECT * FROM C_ElementValue ev ")
.append("WHERE Account_ID=ev.C_ElementValue_ID AND ev.Value >= ")
.append(DB.TO_STRING(p_AccountValue_From)).append(" AND ev.Value <= ")
.append(DB.TO_STRING(p_AccountValue_To)).append("))");
else if (p_AccountValue_From != null && p_AccountValue_To == null)
m_parameterWhere.append(" AND (Account_ID IS NULL OR EXISTS (SELECT * FROM C_ElementValue ev ")
.append("WHERE Account_ID=ev.C_ElementValue_ID AND ev.Value >= ")
.append(DB.TO_STRING(p_AccountValue_From)).append("))");
else if (p_AccountValue_From == null && p_AccountValue_To != null)
m_parameterWhere.append(" AND (Account_ID IS NULL OR EXISTS (SELECT * FROM C_ElementValue ev ")
.append("WHERE Account_ID=ev.C_ElementValue_ID AND ev.Value <= ")
.append(DB.TO_STRING(p_AccountValue_To)).append("))");
// Optional Org
if (p_AD_Org_ID != 0)
m_parameterWhere.append(" AND ").append(MReportTree.getWhereClause(getCtx(),
p_PA_Hierarchy_ID, MAcctSchemaElement.ELEMENTTYPE_Organization, p_AD_Org_ID));
// Optional BPartner
if (p_C_BPartner_ID != 0)
m_parameterWhere.append(" AND ").append(MReportTree.getWhereClause(getCtx(),
p_PA_Hierarchy_ID, MAcctSchemaElement.ELEMENTTYPE_BPartner, p_C_BPartner_ID));
// Optional Product
if (p_M_Product_ID != 0)
m_parameterWhere.append(" AND ").append(MReportTree.getWhereClause(getCtx(),
p_PA_Hierarchy_ID, MAcctSchemaElement.ELEMENTTYPE_Product, p_M_Product_ID));
// Optional Project
if (p_C_Project_ID != 0)
m_parameterWhere.append(" AND ").append(MReportTree.getWhereClause(getCtx(),
p_PA_Hierarchy_ID, MAcctSchemaElement.ELEMENTTYPE_Project, p_C_Project_ID));
// Optional Activity
if (p_C_Activity_ID != 0)
m_parameterWhere.append(" AND ").append(MReportTree.getWhereClause(getCtx(),
p_PA_Hierarchy_ID, MAcctSchemaElement.ELEMENTTYPE_Activity, p_C_Activity_ID));
// Optional Campaign
if (p_C_Campaign_ID != 0)
m_parameterWhere.append(" AND C_Campaign_ID=").append(p_C_Campaign_ID);
// m_parameterWhere.append(" AND ").append(MReportTree.getWhereClause(getCtx(),
// MAcctSchemaElement.ELEMENTTYPE_Campaign, p_C_Campaign_ID));
// Optional Sales Region
if (p_C_SalesRegion_ID != 0)
m_parameterWhere.append(" AND ").append(MReportTree.getWhereClause(getCtx(),
p_PA_Hierarchy_ID, MAcctSchemaElement.ELEMENTTYPE_SalesRegion, p_C_SalesRegion_ID));
// Mandatory Posting Type
m_parameterWhere.append(" AND PostingType='").append(p_PostingType).append("'");
//
setDateAcct();
sb.append(" - DateAcct ").append(p_DateAcct_From).append("-").append(p_DateAcct_To);
sb.append(" - Where=").append(m_parameterWhere);
log.fine(sb.toString());
} // prepare
/**
* Set Start/End Date of Report - if not defined current Month
*/
private void setDateAcct()
{
// Date defined
if (p_DateAcct_From != null)
{
if (p_DateAcct_To == null)
p_DateAcct_To = new Timestamp (System.currentTimeMillis());
return;
}
// Get Date from Period
if (p_C_Period_ID == 0)
{
GregorianCalendar cal = new GregorianCalendar(Language.getLoginLanguage().getLocale());
cal.setTimeInMillis(System.currentTimeMillis());
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
cal.set(Calendar.DAY_OF_MONTH, 1); // set to first of month
p_DateAcct_From = new Timestamp (cal.getTimeInMillis());
cal.add(Calendar.MONTH, 1);
cal.add(Calendar.DAY_OF_YEAR, -1); // last of month
p_DateAcct_To = new Timestamp (cal.getTimeInMillis());
return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -