📄 trialbalance.java
字号:
}
String sql = "SELECT StartDate, EndDate FROM C_Period WHERE C_Period_ID=?";
PreparedStatement pstmt = null;
try
{
pstmt = DB.prepareStatement(sql, null);
pstmt.setInt(1, p_C_Period_ID);
ResultSet rs = pstmt.executeQuery();
if (rs.next())
{
p_DateAcct_From = rs.getTimestamp(1);
p_DateAcct_To = rs.getTimestamp(2);
}
rs.close();
pstmt.close();
pstmt = null;
}
catch (Exception e)
{
log.log(Level.SEVERE, sql, e);
}
finally
{
try
{
if (pstmt != null)
pstmt.close ();
}
catch (Exception e)
{}
pstmt = null;
}
} // setDateAcct
/**************************************************************************
* Perform process.
* @return Message to be translated
*/
protected String doIt()
{
createBalanceLine();
createDetailLines();
// int AD_PrintFormat_ID = 134;
// getProcessInfo().setTransientObject (MPrintFormat.get (getCtx(), AD_PrintFormat_ID, false));
log.fine((System.currentTimeMillis() - m_start) + " ms");
return "";
} // doIt
/**
* Create Beginning Balance Line
*/
private void createBalanceLine()
{
StringBuffer sql = new StringBuffer (s_insert);
// (AD_PInstance_ID, Fact_Acct_ID,
sql.append("SELECT ").append(getAD_PInstance_ID()).append(",0,");
// AD_Client_ID, AD_Org_ID, Created,CreatedBy, Updated,UpdatedBy,
sql.append(getAD_Client_ID()).append(",");
if (p_AD_Org_ID == 0)
sql.append("0");
else
sql.append(p_AD_Org_ID);
sql.append(", SysDate,").append(getAD_User_ID())
.append(",SysDate,").append(getAD_User_ID()).append(",");
// C_AcctSchema_ID, Account_ID, AccountValue, DateTrx, DateAcct, C_Period_ID,
sql.append(p_C_AcctSchema_ID).append(",");
if (p_Account_ID == 0)
sql.append ("null");
else
sql.append (p_Account_ID);
if (p_AccountValue_From != null)
sql.append(",").append(DB.TO_STRING(p_AccountValue_From));
else if (p_AccountValue_To != null)
sql.append(",' '");
else
sql.append(",null");
Timestamp balanceDay = p_DateAcct_From; // TimeUtil.addDays(p_DateAcct_From, -1);
sql.append(",null,").append(DB.TO_DATE(balanceDay, true)).append(",");
if (p_C_Period_ID == 0)
sql.append("null");
else
sql.append(p_C_Period_ID);
sql.append(",");
// AD_Table_ID, Record_ID, Line_ID,
sql.append("null,null,null,");
// GL_Category_ID, GL_Budget_ID, C_Tax_ID, M_Locator_ID, PostingType,
sql.append("null,null,null,null,'").append(p_PostingType).append("',");
// C_Currency_ID, AmtSourceDr, AmtSourceCr, AmtSourceBalance,
sql.append("null,null,null,null,");
// AmtAcctDr, AmtAcctCr, AmtAcctBalance, C_UOM_ID, Qty,
sql.append(" COALESCE(SUM(AmtAcctDr),0),COALESCE(SUM(AmtAcctCr),0),"
+ "COALESCE(SUM(AmtAcctDr),0)-COALESCE(SUM(AmtAcctCr),0),"
+ " null,COALESCE(SUM(Qty),0),");
// M_Product_ID, C_BPartner_ID, AD_OrgTrx_ID, C_LocFrom_ID,C_LocTo_ID,
if (p_M_Product_ID == 0)
sql.append ("null");
else
sql.append (p_M_Product_ID);
sql.append(",");
if (p_C_BPartner_ID == 0)
sql.append ("null");
else
sql.append (p_C_BPartner_ID);
sql.append(",");
if (p_AD_OrgTrx_ID == 0)
sql.append ("null");
else
sql.append (p_AD_OrgTrx_ID);
sql.append(",");
if (p_C_LocFrom_ID == 0)
sql.append ("null");
else
sql.append (p_C_LocFrom_ID);
sql.append(",");
if (p_C_LocTo_ID == 0)
sql.append ("null");
else
sql.append (p_C_LocTo_ID);
sql.append(",");
// C_SalesRegion_ID, C_Project_ID, C_Campaign_ID, C_Activity_ID,
if (p_C_SalesRegion_ID == 0)
sql.append ("null");
else
sql.append (p_C_SalesRegion_ID);
sql.append(",");
if (p_C_Project_ID == 0)
sql.append ("null");
else
sql.append (p_C_Project_ID);
sql.append(",");
if (p_C_Campaign_ID == 0)
sql.append ("null");
else
sql.append (p_C_Campaign_ID);
sql.append(",");
if (p_C_Activity_ID == 0)
sql.append ("null");
else
sql.append (p_C_Activity_ID);
sql.append(",");
// User1_ID, User2_ID, A_Asset_ID, Description)
if (p_User1_ID == 0)
sql.append ("null");
else
sql.append (p_User1_ID);
sql.append(",");
if (p_User2_ID == 0)
sql.append ("null");
else
sql.append (p_User2_ID);
sql.append(", null,null");
//
sql.append(" FROM Fact_Acct WHERE AD_Client_ID=").append(getAD_Client_ID())
.append (" AND ").append(m_parameterWhere)
.append(" AND DateAcct < ").append(DB.TO_DATE(p_DateAcct_From, true));
// Start Beginning of Year
if (p_Account_ID > 0)
{
m_acct = new MElementValue (getCtx(), p_Account_ID, get_TrxName());
if (!m_acct.isBalanceSheet())
{
MPeriod first = MPeriod.getFirstInYear (getCtx(), p_DateAcct_From);
if (first != null)
sql.append(" AND DateAcct >= ").append(DB.TO_DATE(first.getStartDate(), true));
else
log.log(Level.SEVERE, "first period not found");
}
}
//
int no = DB.executeUpdate(sql.toString(), get_TrxName());
if (no == 0)
log.fine(sql.toString());
log.fine("#" + no + " (Account_ID=" + p_Account_ID + ")");
} // createBalanceLine
/**
* Create Beginning Balance Line
*/
private void createDetailLines()
{
StringBuffer sql = new StringBuffer (s_insert);
// (AD_PInstance_ID, Fact_Acct_ID,
sql.append("SELECT ").append(getAD_PInstance_ID()).append(",Fact_Acct_ID,");
// AD_Client_ID, AD_Org_ID, Created,CreatedBy, Updated,UpdatedBy,
sql.append(getAD_Client_ID()).append(",AD_Org_ID,Created,CreatedBy, Updated,UpdatedBy,");
// C_AcctSchema_ID, Account_ID, DateTrx, AccountValue, DateAcct, C_Period_ID,
sql.append("C_AcctSchema_ID, Account_ID, null, DateTrx, DateAcct, C_Period_ID,");
// AD_Table_ID, Record_ID, Line_ID,
sql.append("AD_Table_ID, Record_ID, Line_ID,");
// GL_Category_ID, GL_Budget_ID, C_Tax_ID, M_Locator_ID, PostingType,
sql.append("GL_Category_ID, GL_Budget_ID, C_Tax_ID, M_Locator_ID, PostingType,");
// C_Currency_ID, AmtSourceDr, AmtSourceCr, AmtSourceBalance,
sql.append("C_Currency_ID, AmtSourceDr,AmtSourceCr, AmtSourceDr-AmtSourceCr,");
// AmtAcctDr, AmtAcctCr, AmtAcctBalance, C_UOM_ID, Qty,
sql.append(" AmtAcctDr,AmtAcctCr, AmtAcctDr-AmtAcctCr, C_UOM_ID,Qty,");
// M_Product_ID, C_BPartner_ID, AD_OrgTrx_ID, C_LocFrom_ID,C_LocTo_ID,
sql.append ("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,
sql.append ("C_SalesRegion_ID, C_Project_ID, C_Campaign_ID, C_Activity_ID,");
// User1_ID, User2_ID, A_Asset_ID, Description)
sql.append ("User1_ID, User2_ID, A_Asset_ID, Description");
//
sql.append(" FROM Fact_Acct WHERE AD_Client_ID=").append(getAD_Client_ID())
.append (" AND ").append(m_parameterWhere)
.append(" AND DateAcct >= ").append(DB.TO_DATE(p_DateAcct_From, true))
.append(" AND TRUNC(DateAcct) <= ").append(DB.TO_DATE(p_DateAcct_To, true));
//
int no = DB.executeUpdate(sql.toString(), get_TrxName());
if (no == 0)
log.fine(sql.toString());
log.fine("#" + no + " (Account_ID=" + p_Account_ID + ")");
// Update AccountValue
String sql2 = "UPDATE T_TrialBalance tb SET AccountValue = "
+ "(SELECT Value FROM C_ElementValue ev WHERE ev.C_ElementValue_ID=tb.Account_ID) "
+ "WHERE tb.Account_ID IS NOT NULL";
no = DB.executeUpdate(sql2, get_TrxName());
if (no > 0)
log.fine("Set AccountValue #" + no);
} // createDetailLines
} // TrialBalance
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -