BF [ 2521199 ] Aging is not working - checking account date flag
https://sourceforge.net/tracker/index.php?func=detail&aid=2521199&group_id=176962&atid=879332 * improve code readability * better exception handling
This commit is contained in:
parent
ff883217d6
commit
5ed7fcaafd
|
@ -19,9 +19,11 @@ package org.compiere.process;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.DBException;
|
||||||
import org.compiere.model.MAging;
|
import org.compiere.model.MAging;
|
||||||
import org.compiere.model.MRole;
|
import org.compiere.model.MRole;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
|
@ -103,37 +105,56 @@ public class Aging extends SvrProcess
|
||||||
+ "oi.C_Currency_ID, oi.IsSOTrx, " // 5..6
|
+ "oi.C_Currency_ID, oi.IsSOTrx, " // 5..6
|
||||||
+ "oi.DateInvoiced, oi.NetDays,oi.DueDate,oi.DaysDue, "); // 7..10
|
+ "oi.DateInvoiced, oi.NetDays,oi.DueDate,oi.DaysDue, "); // 7..10
|
||||||
if (p_C_Currency_ID == 0)
|
if (p_C_Currency_ID == 0)
|
||||||
|
{
|
||||||
if (!p_DateAcct)//FR 1933937
|
if (!p_DateAcct)//FR 1933937
|
||||||
sql.append("oi.GrandTotal, oi.PaidAmt, oi.OpenAmt "); // 11..13
|
{
|
||||||
|
sql.append(" oi.GrandTotal, oi.PaidAmt, oi.OpenAmt "); // 11..13
|
||||||
|
}
|
||||||
else
|
else
|
||||||
sql.append("oi.GrandTotal, invoicePaidToDate(oi.C_Invoice_ID, oi.C_Currency_ID, 1,"+dateacct+") AS PaidAmt, invoiceOpenToDate(oi.C_Invoice_ID,oi.C_InvoicePaySchedule_ID,"+dateacct+") AS OpenAmt "); // 11..13
|
{
|
||||||
|
sql.append(" oi.GrandTotal, invoicePaidToDate(oi.C_Invoice_ID, oi.C_Currency_ID, 1,"+dateacct+") AS PaidAmt, invoiceOpenToDate(oi.C_Invoice_ID,oi.C_InvoicePaySchedule_ID,"+dateacct+") AS OpenAmt "); // 11..13
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
String s = ",oi.C_Currency_ID," + p_C_Currency_ID + ",oi.DateAcct,oi.C_ConversionType_ID,oi.AD_Client_ID,oi.AD_Org_ID)";
|
String s = ",oi.C_Currency_ID," + p_C_Currency_ID + ",oi.DateAcct,oi.C_ConversionType_ID,oi.AD_Client_ID,oi.AD_Org_ID)";
|
||||||
sql.append("currencyConvert(oi.GrandTotal").append(s); // 11..
|
sql.append("currencyConvert(oi.GrandTotal").append(s); // 11..
|
||||||
if (!p_DateAcct)
|
if (!p_DateAcct)
|
||||||
|
{
|
||||||
sql.append(", currencyConvert(oi.PaidAmt").append(s)
|
sql.append(", currencyConvert(oi.PaidAmt").append(s)
|
||||||
.append(", currencyConvert(oi.OpenAmt").append(s);
|
.append(", currencyConvert(oi.OpenAmt").append(s);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
sql.append(", currencyConvert(invoicePaidToDate(oi.C_Invoice_ID, oi.C_Currency_ID, 1,"+dateacct+")").append(s)
|
sql.append(", currencyConvert(invoicePaidToDate(oi.C_Invoice_ID, oi.C_Currency_ID, 1,"+dateacct+")").append(s)
|
||||||
.append(", currencyConvert(invoiceOpenToDate(oi.C_Invoice_ID,oi.C_InvoicePaySchedule_ID,"+dateacct+")").append(s);
|
.append(", currencyConvert(invoiceOpenToDate(oi.C_Invoice_ID,oi.C_InvoicePaySchedule_ID,"+dateacct+")").append(s);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
sql.append(",oi.C_Activity_ID,oi.C_Campaign_ID,oi.C_Project_ID "); // 14
|
sql.append(",oi.C_Activity_ID,oi.C_Campaign_ID,oi.C_Project_ID "); // 14
|
||||||
if (!p_DateAcct)//FR 1933937
|
if (!p_DateAcct)//FR 1933937
|
||||||
sql.append( "FROM RV_OpenItem oi");
|
{
|
||||||
else
|
sql.append(" FROM RV_OpenItem oi");
|
||||||
sql.append( "FROM RV_OpenItemToDate oi");
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sql.append(" FROM RV_OpenItemToDate oi");
|
||||||
|
}
|
||||||
|
|
||||||
sql.append(" INNER JOIN C_BPartner bp ON (oi.C_BPartner_ID=bp.C_BPartner_ID) "
|
sql.append(" INNER JOIN C_BPartner bp ON (oi.C_BPartner_ID=bp.C_BPartner_ID) "
|
||||||
+ "WHERE oi.ISSoTrx=").append(p_IsSOTrx ? "'Y'" : "'N'");
|
+ "WHERE oi.ISSoTrx=").append(p_IsSOTrx ? "'Y'" : "'N'");
|
||||||
if (p_C_BPartner_ID > 0)
|
if (p_C_BPartner_ID > 0)
|
||||||
|
{
|
||||||
sql.append(" AND oi.C_BPartner_ID=").append(p_C_BPartner_ID);
|
sql.append(" AND oi.C_BPartner_ID=").append(p_C_BPartner_ID);
|
||||||
|
}
|
||||||
else if (p_C_BP_Group_ID > 0)
|
else if (p_C_BP_Group_ID > 0)
|
||||||
|
{
|
||||||
sql.append(" AND bp.C_BP_Group_ID=").append(p_C_BP_Group_ID);
|
sql.append(" AND bp.C_BP_Group_ID=").append(p_C_BP_Group_ID);
|
||||||
|
}
|
||||||
|
|
||||||
if (p_DateAcct)//FR 1933937
|
if (p_DateAcct)//FR 1933937
|
||||||
sql.append("AND invoiceOpenToDate(oi.C_Invoice_ID,oi.C_InvoicePaySchedule_ID,"+dateacct+") <> 0 ");
|
{
|
||||||
|
sql.append(" AND invoiceOpenToDate(oi.C_Invoice_ID,oi.C_InvoicePaySchedule_ID,"+dateacct+") <> 0 ");
|
||||||
|
}
|
||||||
|
|
||||||
sql.append(" ORDER BY oi.C_BPartner_ID, oi.C_Currency_ID, oi.C_Invoice_ID");
|
sql.append(" ORDER BY oi.C_BPartner_ID, oi.C_Currency_ID, oi.C_Invoice_ID");
|
||||||
|
|
||||||
|
@ -143,6 +164,7 @@ public class Aging extends SvrProcess
|
||||||
log.finer(finalSql);
|
log.finer(finalSql);
|
||||||
|
|
||||||
PreparedStatement pstmt = null;
|
PreparedStatement pstmt = null;
|
||||||
|
ResultSet rs = null;
|
||||||
//
|
//
|
||||||
MAging aging = null;
|
MAging aging = null;
|
||||||
int counter = 0;
|
int counter = 0;
|
||||||
|
@ -152,7 +174,7 @@ public class Aging extends SvrProcess
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
pstmt = DB.prepareStatement(finalSql, get_TrxName());
|
pstmt = DB.prepareStatement(finalSql, get_TrxName());
|
||||||
ResultSet rs = pstmt.executeQuery();
|
rs = pstmt.executeQuery();
|
||||||
while (rs.next())
|
while (rs.next())
|
||||||
{
|
{
|
||||||
int C_BP_Group_ID = rs.getInt(1);
|
int C_BP_Group_ID = rs.getInt(1);
|
||||||
|
@ -188,13 +210,8 @@ public class Aging extends SvrProcess
|
||||||
{
|
{
|
||||||
if (aging != null)
|
if (aging != null)
|
||||||
{
|
{
|
||||||
if (aging.save())
|
aging.saveEx();
|
||||||
log.fine("#" + ++counter + " - " + aging);
|
log.fine("#" + ++counter + " - " + aging);
|
||||||
else
|
|
||||||
{
|
|
||||||
log.log(Level.SEVERE, "Not saved " + aging);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
aging = new MAging (getCtx(), AD_PInstance_ID, p_StatementDate,
|
aging = new MAging (getCtx(), AD_PInstance_ID, p_StatementDate,
|
||||||
C_BPartner_ID, C_Currency_ID,
|
C_BPartner_ID, C_Currency_ID,
|
||||||
|
@ -210,28 +227,19 @@ public class Aging extends SvrProcess
|
||||||
}
|
}
|
||||||
if (aging != null)
|
if (aging != null)
|
||||||
{
|
{
|
||||||
if (aging.save())
|
aging.saveEx();
|
||||||
log.fine("#" + ++counter + " - " + aging);
|
counter++;
|
||||||
else
|
log.fine("#" + counter + " - " + aging);
|
||||||
log.log(Level.SEVERE, "Not saved " + aging);
|
|
||||||
}
|
}
|
||||||
rs.close();
|
|
||||||
pstmt.close();
|
|
||||||
pstmt = null;
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (SQLException e)
|
||||||
{
|
{
|
||||||
log.log(Level.SEVERE, finalSql, e);
|
throw new DBException(e, finalSql);
|
||||||
}
|
}
|
||||||
try
|
finally
|
||||||
{
|
{
|
||||||
if (pstmt != null)
|
DB.close(rs, pstmt);
|
||||||
pstmt.close();
|
rs = null; pstmt = null;
|
||||||
pstmt = null;
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
pstmt = null;
|
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
log.info("#" + counter + " - rows=" + rows);
|
log.info("#" + counter + " - rows=" + rows);
|
||||||
|
|
Loading…
Reference in New Issue