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