diff --git a/base/src/org/compiere/model/MAllocationHdr.java b/base/src/org/compiere/model/MAllocationHdr.java
index 2312e862f7..f29176d049 100644
--- a/base/src/org/compiere/model/MAllocationHdr.java
+++ b/base/src/org/compiere/model/MAllocationHdr.java
@@ -307,8 +307,7 @@ public final class MAllocationHdr extends X_C_AllocationHdr implements DocAction
return false;
}
setPosted(false);
- if (MFactAcct.delete (Table_ID, get_ID(), trxName) < 0)
- return false;
+ MFactAcct.deleteEx (Table_ID, get_ID(), trxName);
}
// Mark as Inactive
setIsActive(false); // updated DB for line delete/process
@@ -721,8 +720,7 @@ public final class MAllocationHdr extends X_C_AllocationHdr implements DocAction
throw new IllegalStateException("Cannot de-activate allocation");
// Delete Posting
- int no = MFactAcct.delete(MAllocationHdr.Table_ID, getC_AllocationHdr_ID(), get_TrxName());
- log.fine("Fact_Acct deleted #" + no);
+ MFactAcct.deleteEx(MAllocationHdr.Table_ID, getC_AllocationHdr_ID(), get_TrxName());
// Unlink Invoices
getLines(true);
diff --git a/base/src/org/compiere/model/MBankStatement.java b/base/src/org/compiere/model/MBankStatement.java
index 1844862d5e..c6808e0b44 100644
--- a/base/src/org/compiere/model/MBankStatement.java
+++ b/base/src/org/compiere/model/MBankStatement.java
@@ -466,8 +466,7 @@ public class MBankStatement extends X_C_BankStatement implements DocAction
m_processMsg = "@PeriodClosed@";
return false;
}
- if (MFactAcct.delete(Table_ID, getC_BankStatement_ID(), get_TrxName()) < 0)
- return false; // could not delete
+ MFactAcct.deleteEx(Table_ID, getC_BankStatement_ID(), get_TrxName());
}
//Added Lines by AZ Goodwill
diff --git a/base/src/org/compiere/model/MCash.java b/base/src/org/compiere/model/MCash.java
index d2c08161db..8dd569b46d 100644
--- a/base/src/org/compiere/model/MCash.java
+++ b/base/src/org/compiere/model/MCash.java
@@ -680,10 +680,8 @@ public class MCash extends X_C_Cash implements DocAction
throw new IllegalStateException("Cannot save journal cash");
// Delete Posting
- String sql = "DELETE FROM Fact_Acct WHERE AD_Table_ID=" + MCash.Table_ID
- + " AND Record_ID=" + getC_Cash_ID();
- int no = DB.executeUpdate(sql, get_TrxName());
- log.fine("Fact_Acct deleted #" + no);
+ MFactAcct.deleteEx(Table_ID, getC_Cash_ID(), get_TrxName());
+
return true;
} // reverse
diff --git a/base/src/org/compiere/model/MFactAcct.java b/base/src/org/compiere/model/MFactAcct.java
index 0805224d26..b01126dc7f 100644
--- a/base/src/org/compiere/model/MFactAcct.java
+++ b/base/src/org/compiere/model/MFactAcct.java
@@ -16,10 +16,13 @@
*****************************************************************************/
package org.compiere.model;
-import java.sql.*;
-import java.util.*;
-import java.util.logging.*;
-import org.compiere.util.*;
+import java.sql.ResultSet;
+import java.util.Properties;
+import java.util.logging.Level;
+
+import org.adempiere.exceptions.DBException;
+import org.compiere.util.CLogger;
+import org.compiere.util.DB;
/**
@@ -27,29 +30,51 @@ import org.compiere.util.*;
*
* @author Jorg Janke
* @version $Id: MFactAcct.java,v 1.3 2006/07/30 00:51:03 jjanke Exp $
+ *
+ * @author Teo Sarca, http://www.arhipac.ro
+ *
FR [ 2079083 ] Add MFactAcct.deleteEx method
*/
public class MFactAcct extends X_Fact_Acct
{
+ private static final long serialVersionUID = 1L;
+
/**
- * Delete Accounting
- * @param AD_Table_ID table
- * @param Record_ID record
- * @param trxName transaction
- * @return number of rows or -1 for error
+ * Delete Accounting
+ * @param AD_Table_ID table
+ * @param Record_ID record
+ * @param trxName transaction
+ * @return number of rows or -1 for error
+ * @deprecated Since ADempiere 3.5.2a; please use {@link #deleteEx(int, int, String)} instead.
*/
- public static int delete (int AD_Table_ID, int Record_ID, String trxName)
+ public static int delete00 (int AD_Table_ID, int Record_ID, String trxName)
{
- StringBuffer sb = new StringBuffer();
- sb.append("DELETE Fact_Acct WHERE AD_Table_ID=").append(AD_Table_ID)
- .append(" AND Record_ID=").append(Record_ID);
- int no = DB.executeUpdate(sb.toString(), trxName);
- if (no == -1)
- s_log.log(Level.SEVERE, "failed: AD_Table_ID=" + AD_Table_ID + ", Record_ID" + Record_ID);
- else
- s_log.fine("delete - AD_Table_ID=" + AD_Table_ID
- + ", Record_ID=" + Record_ID + " - #" + no);
+ int no = -1;
+ try {
+ no = deleteEx(AD_Table_ID, Record_ID, trxName);
+ }
+ catch (DBException e) {
+ s_log.log(Level.SEVERE, "failed: AD_Table_ID=" + AD_Table_ID + ", Record_ID" + Record_ID, e);
+ no = -1;
+ }
return no;
} // delete
+
+ /**
+ * Delete Accounting
+ * @param AD_Table_ID table
+ * @param Record_ID record
+ * @param trxName transaction
+ * @return number of rows deleted
+ * @throws DBException on database exception
+ */
+ public static int deleteEx(int AD_Table_ID, int Record_ID, String trxName)
+ throws DBException
+ {
+ final String sql = "DELETE Fact_Acct WHERE AD_Table_ID=? AND Record_ID=?";
+ int no = DB.executeUpdateEx(sql, new Object[]{AD_Table_ID, Record_ID}, trxName);
+ s_log.fine("delete - AD_Table_ID=" + AD_Table_ID + ", Record_ID=" + Record_ID + " - #" + no);
+ return no;
+ }
/** Static Logger */
private static CLogger s_log = CLogger.getCLogger (MFactAcct.class);
diff --git a/base/src/org/compiere/model/MMatchInv.java b/base/src/org/compiere/model/MMatchInv.java
index 0908b4dbb6..1b9b7a2962 100644
--- a/base/src/org/compiere/model/MMatchInv.java
+++ b/base/src/org/compiere/model/MMatchInv.java
@@ -39,6 +39,9 @@ import org.compiere.util.Env;
*/
public class MMatchInv extends X_M_MatchInv
{
+ private static final long serialVersionUID = 1L;
+
+
/**
* Get InOut-Invoice Matches
* @param ctx context
@@ -356,10 +359,9 @@ public class MMatchInv extends X_M_MatchInv
{
if (isPosted())
{
- if (!MPeriod.isOpen(getCtx(), getDateTrx(), MDocType.DOCBASETYPE_MatchInvoice))
- return false;
+ MPeriod.testPeriodOpen(getCtx(), getDateTrx(), MDocType.DOCBASETYPE_MatchInvoice);
setPosted(false);
- return MFactAcct.delete (Table_ID, get_ID(), get_TrxName()) >= 0;
+ MFactAcct.deleteEx (Table_ID, get_ID(), get_TrxName());
}
return true;
} // beforeDelete
diff --git a/base/src/org/compiere/model/MMatchPO.java b/base/src/org/compiere/model/MMatchPO.java
index 554511fb7b..eb44fd905a 100644
--- a/base/src/org/compiere/model/MMatchPO.java
+++ b/base/src/org/compiere/model/MMatchPO.java
@@ -658,10 +658,9 @@ public class MMatchPO extends X_M_MatchPO
{
if (isPosted())
{
- if (!MPeriod.isOpen(getCtx(), getDateTrx(), MDocType.DOCBASETYPE_MatchPO))
- return false;
+ MPeriod.testPeriodOpen(getCtx(), getDateTrx(), MDocType.DOCBASETYPE_MatchPO);
setPosted(false);
- return MFactAcct.delete (Table_ID, get_ID(), get_TrxName()) >= 0;
+ MFactAcct.deleteEx (Table_ID, get_ID(), get_TrxName());
}
return true;
} // beforeDelete