From 3c9696db4b7455ae0e2f2b578ed5127b2877fe51 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Fri, 14 Jun 2013 13:09:51 -0500 Subject: [PATCH] IDEMPIERE-994 Model afterSave and afterDelete must check success flag when doing DB work / based on patch from Carlos Sanchez --- .../compiere/model/MAcctSchemaElement.java | 4 ++ .../src/org/compiere/model/MAssetUse.java | 5 +- .../src/org/compiere/model/MAttribute.java | 2 + .../src/org/compiere/model/MAttributeSet.java | 2 + .../src/org/compiere/model/MClientShare.java | 4 +- .../src/org/compiere/model/MColumn.java | 2 + .../org/compiere/model/MCommissionAmt.java | 2 + .../org/compiere/model/MCommissionDetail.java | 2 + .../src/org/compiere/model/MCostDetail.java | 16 +---- .../org/compiere/model/MDepositBatchLine.java | 4 ++ .../org/compiere/model/MDistributionLine.java | 2 + .../org/compiere/model/MDunningRunLine.java | 8 ++- .../src/org/compiere/model/MElementValue.java | 2 + .../src/org/compiere/model/MForm.java | 2 + .../src/org/compiere/model/MInfoWindow.java | 2 + .../org/compiere/model/MInventoryLine.java | 24 +++---- .../compiere/model/MInvoicePaySchedule.java | 2 + .../src/org/compiere/model/MLanguage.java | 2 + .../src/org/compiere/model/MLocation.java | 2 + .../src/org/compiere/model/MMenu.java | 2 + .../org/compiere/model/MOrderPaySchedule.java | 2 + .../src/org/compiere/model/MPInstance.java | 2 + .../src/org/compiere/model/MPaySchedule.java | 2 + .../org/compiere/model/MPaySelectionLine.java | 8 ++- .../src/org/compiere/model/MPeriod.java | 2 + .../src/org/compiere/model/MProcess.java | 2 + .../src/org/compiere/model/MProductBOM.java | 2 + .../compiere/model/MProductCategoryAcct.java | 2 + .../src/org/compiere/model/MProjectLine.java | 4 ++ .../compiere/model/MResourceAssignment.java | 66 ++++++++++--------- .../model/MRevenueRecognitionPlan.java | 63 +++++++++--------- .../org/compiere/model/MRfQResponseLine.java | 4 +- .../src/org/compiere/model/MRole.java | 4 +- .../src/org/compiere/model/MTable.java | 2 + .../src/org/compiere/model/MTask.java | 2 + .../src/org/compiere/model/MTree_Base.java | 2 + .../src/org/compiere/model/MWindow.java | 2 + .../src/org/compiere/model/M_Element.java | 4 +- 38 files changed, 167 insertions(+), 99 deletions(-) diff --git a/org.adempiere.base/src/org/compiere/model/MAcctSchemaElement.java b/org.adempiere.base/src/org/compiere/model/MAcctSchemaElement.java index 2462891928..f58bf0007c 100644 --- a/org.adempiere.base/src/org/compiere/model/MAcctSchemaElement.java +++ b/org.adempiere.base/src/org/compiere/model/MAcctSchemaElement.java @@ -470,6 +470,8 @@ public final class MAcctSchemaElement extends X_C_AcctSchema_Element @Override protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; // Default Value if (isMandatory() && is_ValueChanged(COLUMNNAME_IsMandatory)) { @@ -535,6 +537,8 @@ public final class MAcctSchemaElement extends X_C_AcctSchema_Element @Override protected boolean afterDelete (boolean success) { + if (!success) + return success; // Update Account Info StringBuilder msguvd = new StringBuilder("AD_Client_ID=").append(getAD_Client_ID()); MAccount.updateValueDescription(getCtx(),msguvd.toString(), get_TrxName()); diff --git a/org.adempiere.base/src/org/compiere/model/MAssetUse.java b/org.adempiere.base/src/org/compiere/model/MAssetUse.java index 126918d73e..2c4dc96745 100644 --- a/org.adempiere.base/src/org/compiere/model/MAssetUse.java +++ b/org.adempiere.base/src/org/compiere/model/MAssetUse.java @@ -41,7 +41,8 @@ public class MAssetUse extends X_A_Asset_Use protected boolean afterSave (boolean newRecord,boolean success) { log.info ("afterSave"); - + if (!success) + return success; int p_A_Asset_ID = 0; int total_unitsused = 0; p_A_Asset_ID = getA_Asset_ID(); @@ -64,7 +65,7 @@ protected boolean afterSave (boolean newRecord,boolean success) change.setUseUnits(getUseUnits()); change.saveEx(); - return true; + return success; } // afterSave diff --git a/org.adempiere.base/src/org/compiere/model/MAttribute.java b/org.adempiere.base/src/org/compiere/model/MAttribute.java index ad8212af46..e2a38ac83c 100644 --- a/org.adempiere.base/src/org/compiere/model/MAttribute.java +++ b/org.adempiere.base/src/org/compiere/model/MAttribute.java @@ -241,6 +241,8 @@ public class MAttribute extends X_M_Attribute */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; // Changed to Instance Attribute if (!newRecord && is_ValueChanged("IsInstanceAttribute") && isInstanceAttribute()) { diff --git a/org.adempiere.base/src/org/compiere/model/MAttributeSet.java b/org.adempiere.base/src/org/compiere/model/MAttributeSet.java index 234badba8a..292a0071b8 100644 --- a/org.adempiere.base/src/org/compiere/model/MAttributeSet.java +++ b/org.adempiere.base/src/org/compiere/model/MAttributeSet.java @@ -397,6 +397,8 @@ public class MAttributeSet extends X_M_AttributeSet protected boolean afterSave (boolean newRecord, boolean success) { // Set Instance Attribute + if (!success) + return success; if (!isInstanceAttribute()) { StringBuilder sql = new StringBuilder("UPDATE M_AttributeSet mas") diff --git a/org.adempiere.base/src/org/compiere/model/MClientShare.java b/org.adempiere.base/src/org/compiere/model/MClientShare.java index 3aa9cf2a2a..69f0cf8c2e 100644 --- a/org.adempiere.base/src/org/compiere/model/MClientShare.java +++ b/org.adempiere.base/src/org/compiere/model/MClientShare.java @@ -191,12 +191,14 @@ public class MClientShare extends X_AD_ClientShare */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; if (isActive()) { setDataToLevel(); listChildRecords(); } - return true; + return success; } // afterSave /** diff --git a/org.adempiere.base/src/org/compiere/model/MColumn.java b/org.adempiere.base/src/org/compiere/model/MColumn.java index f4e867ac9a..ee49d68bfe 100644 --- a/org.adempiere.base/src/org/compiere/model/MColumn.java +++ b/org.adempiere.base/src/org/compiere/model/MColumn.java @@ -345,6 +345,8 @@ public class MColumn extends X_AD_Column */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; // Update Fields if (!newRecord) { diff --git a/org.adempiere.base/src/org/compiere/model/MCommissionAmt.java b/org.adempiere.base/src/org/compiere/model/MCommissionAmt.java index b9d2d54240..5a2173f688 100644 --- a/org.adempiere.base/src/org/compiere/model/MCommissionAmt.java +++ b/org.adempiere.base/src/org/compiere/model/MCommissionAmt.java @@ -139,6 +139,8 @@ public class MCommissionAmt extends X_C_CommissionAmt */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; if (!newRecord) updateRunHeader(); return success; diff --git a/org.adempiere.base/src/org/compiere/model/MCommissionDetail.java b/org.adempiere.base/src/org/compiere/model/MCommissionDetail.java index 43780c54fd..421470ffcb 100644 --- a/org.adempiere.base/src/org/compiere/model/MCommissionDetail.java +++ b/org.adempiere.base/src/org/compiere/model/MCommissionDetail.java @@ -115,6 +115,8 @@ public class MCommissionDetail extends X_C_CommissionDetail */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; if (!newRecord) updateAmtHeader(); return success; diff --git a/org.adempiere.base/src/org/compiere/model/MCostDetail.java b/org.adempiere.base/src/org/compiere/model/MCostDetail.java index faa9bbeef8..caa83f3bd8 100644 --- a/org.adempiere.base/src/org/compiere/model/MCostDetail.java +++ b/org.adempiere.base/src/org/compiere/model/MCostDetail.java @@ -49,7 +49,7 @@ public class MCostDetail extends X_M_CostDetail /** * */ - private static final long serialVersionUID = -7882724307127281675L; + private static final long serialVersionUID = -448632684360931078L; /** * Create New Order Cost Detail for Purchase Orders. @@ -686,19 +686,7 @@ public class MCostDetail extends X_M_CostDetail return !(getDeltaAmt().signum() == 0 && getDeltaQty().signum() == 0); } // isDelta - - - /** - * After Save - * @param newRecord new - * @param success success - * @return true - */ - protected boolean afterSave (boolean newRecord, boolean success) - { - return true; - } // afterSave - + /** * Before Delete * @return false if processed diff --git a/org.adempiere.base/src/org/compiere/model/MDepositBatchLine.java b/org.adempiere.base/src/org/compiere/model/MDepositBatchLine.java index 59de5a017a..1344acb23a 100644 --- a/org.adempiere.base/src/org/compiere/model/MDepositBatchLine.java +++ b/org.adempiere.base/src/org/compiere/model/MDepositBatchLine.java @@ -152,6 +152,8 @@ import org.compiere.util.Env; */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; updateHeader(); return success; } // afterSave @@ -163,6 +165,8 @@ import org.compiere.util.Env; */ protected boolean afterDelete (boolean success) { + if (!success) + return success; updateHeader(); if (getC_Payment_ID() != 0 ) { diff --git a/org.adempiere.base/src/org/compiere/model/MDistributionLine.java b/org.adempiere.base/src/org/compiere/model/MDistributionLine.java index 5013a8a9e6..a620e32bb4 100644 --- a/org.adempiere.base/src/org/compiere/model/MDistributionLine.java +++ b/org.adempiere.base/src/org/compiere/model/MDistributionLine.java @@ -270,6 +270,8 @@ public class MDistributionLine extends X_GL_DistributionLine */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; getParent(); m_parent.validate(); m_parent.saveEx(); diff --git a/org.adempiere.base/src/org/compiere/model/MDunningRunLine.java b/org.adempiere.base/src/org/compiere/model/MDunningRunLine.java index 756fbfbf1a..3f9655accd 100644 --- a/org.adempiere.base/src/org/compiere/model/MDunningRunLine.java +++ b/org.adempiere.base/src/org/compiere/model/MDunningRunLine.java @@ -317,7 +317,9 @@ public class MDunningRunLine extends X_C_DunningRunLine * @return success */ protected boolean afterSave (boolean newRecord, boolean success) - { + { + if (!success) + return success; updateEntry(); return success; } // afterSave @@ -328,7 +330,9 @@ public class MDunningRunLine extends X_C_DunningRunLine * @return success */ protected boolean afterDelete (boolean success) - { + { + if (!success) + return success; updateEntry(); return success; } // afterDelete diff --git a/org.adempiere.base/src/org/compiere/model/MElementValue.java b/org.adempiere.base/src/org/compiere/model/MElementValue.java index 2c7b5ca682..ef12535d3e 100644 --- a/org.adempiere.base/src/org/compiere/model/MElementValue.java +++ b/org.adempiere.base/src/org/compiere/model/MElementValue.java @@ -244,6 +244,8 @@ public class MElementValue extends X_C_ElementValue @Override protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; if (newRecord) { // afalcone [Bugs #1837219] diff --git a/org.adempiere.base/src/org/compiere/model/MForm.java b/org.adempiere.base/src/org/compiere/model/MForm.java index ab74fe5df5..4f58748a63 100644 --- a/org.adempiere.base/src/org/compiere/model/MForm.java +++ b/org.adempiere.base/src/org/compiere/model/MForm.java @@ -66,6 +66,8 @@ public class MForm extends X_AD_Form */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; if (newRecord) { int AD_Role_ID = Env.getAD_Role_ID(getCtx()); diff --git a/org.adempiere.base/src/org/compiere/model/MInfoWindow.java b/org.adempiere.base/src/org/compiere/model/MInfoWindow.java index 6b7c9b7570..54c0e7ed07 100644 --- a/org.adempiere.base/src/org/compiere/model/MInfoWindow.java +++ b/org.adempiere.base/src/org/compiere/model/MInfoWindow.java @@ -130,6 +130,8 @@ public class MInfoWindow extends X_AD_InfoWindow @Override protected boolean afterSave(boolean newRecord, boolean success) { + if (!success) + return success; if (newRecord) // Add to all automatic roles { MRole[] roles = MRole.getOf(getCtx(), "IsManual='N'"); diff --git a/org.adempiere.base/src/org/compiere/model/MInventoryLine.java b/org.adempiere.base/src/org/compiere/model/MInventoryLine.java index 5badb4c46a..7cc5183b91 100644 --- a/org.adempiere.base/src/org/compiere/model/MInventoryLine.java +++ b/org.adempiere.base/src/org/compiere/model/MInventoryLine.java @@ -39,7 +39,7 @@ public class MInventoryLine extends X_M_InventoryLine /** * */ - private static final long serialVersionUID = -3513145563716006099L; + private static final long serialVersionUID = -3864175464877913555L; /** * Get Inventory Line with parameters @@ -365,17 +365,17 @@ public class MInventoryLine extends X_M_InventoryLine * @param success success * @return true */ - protected boolean afterSave (boolean newRecord, boolean success) - { - if (!success) - return false; - - // Create MA - //if (newRecord && success - // && m_isManualEntry && getM_AttributeSetInstance_ID() == 0) - // createMA(); - return true; - } // afterSave + //protected boolean afterSave (boolean newRecord, boolean success) + //{ + // if (!success) + // return false; + // + // // Create MA + // //if (newRecord && success + // // && m_isManualEntry && getM_AttributeSetInstance_ID() == 0) + // // createMA(); + // return true; + //} // afterSave /** * Create Material Allocations for new Instances diff --git a/org.adempiere.base/src/org/compiere/model/MInvoicePaySchedule.java b/org.adempiere.base/src/org/compiere/model/MInvoicePaySchedule.java index 2006a6a74c..d50d3ac3e9 100644 --- a/org.adempiere.base/src/org/compiere/model/MInvoicePaySchedule.java +++ b/org.adempiere.base/src/org/compiere/model/MInvoicePaySchedule.java @@ -227,6 +227,8 @@ public class MInvoicePaySchedule extends X_C_InvoicePaySchedule */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; if (is_ValueChanged("DueAmt")) { log.fine("afterSave"); diff --git a/org.adempiere.base/src/org/compiere/model/MLanguage.java b/org.adempiere.base/src/org/compiere/model/MLanguage.java index 8572d7f313..7b9d40fae7 100644 --- a/org.adempiere.base/src/org/compiere/model/MLanguage.java +++ b/org.adempiere.base/src/org/compiere/model/MLanguage.java @@ -318,6 +318,8 @@ public class MLanguage extends X_AD_Language */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; int no = TranslationTable.getActiveLanguages(true); if (log.isLoggable(Level.FINE)) log.fine("Active Languages=" + no); return true; diff --git a/org.adempiere.base/src/org/compiere/model/MLocation.java b/org.adempiere.base/src/org/compiere/model/MLocation.java index c44caac593..bc189f1dde 100644 --- a/org.adempiere.base/src/org/compiere/model/MLocation.java +++ b/org.adempiere.base/src/org/compiere/model/MLocation.java @@ -675,6 +675,8 @@ public class MLocation extends X_C_Location implements Comparator */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; // Value/Name change in Account if (!newRecord && ("Y".equals(Env.getContext(getCtx(), "$Element_LF")) diff --git a/org.adempiere.base/src/org/compiere/model/MMenu.java b/org.adempiere.base/src/org/compiere/model/MMenu.java index 941f2b737b..2bacdfca28 100644 --- a/org.adempiere.base/src/org/compiere/model/MMenu.java +++ b/org.adempiere.base/src/org/compiere/model/MMenu.java @@ -143,6 +143,8 @@ public class MMenu extends X_AD_Menu */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; if (newRecord) insert_Tree(MTree_Base.TREETYPE_Menu); return success; diff --git a/org.adempiere.base/src/org/compiere/model/MOrderPaySchedule.java b/org.adempiere.base/src/org/compiere/model/MOrderPaySchedule.java index c02a527aa2..e5d85adf9d 100644 --- a/org.adempiere.base/src/org/compiere/model/MOrderPaySchedule.java +++ b/org.adempiere.base/src/org/compiere/model/MOrderPaySchedule.java @@ -227,6 +227,8 @@ public class MOrderPaySchedule extends X_C_OrderPaySchedule */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; if (is_ValueChanged("DueAmt")) { log.fine("afterSave"); diff --git a/org.adempiere.base/src/org/compiere/model/MPInstance.java b/org.adempiere.base/src/org/compiere/model/MPInstance.java index 38c9ea8c76..6909333f64 100644 --- a/org.adempiere.base/src/org/compiere/model/MPInstance.java +++ b/org.adempiere.base/src/org/compiere/model/MPInstance.java @@ -289,6 +289,8 @@ public class MPInstance extends X_AD_PInstance */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; // Update Statistics if (!newRecord && !isProcessing() diff --git a/org.adempiere.base/src/org/compiere/model/MPaySchedule.java b/org.adempiere.base/src/org/compiere/model/MPaySchedule.java index 6cbf767a97..aefec3540f 100644 --- a/org.adempiere.base/src/org/compiere/model/MPaySchedule.java +++ b/org.adempiere.base/src/org/compiere/model/MPaySchedule.java @@ -110,6 +110,8 @@ public class MPaySchedule extends X_C_PaySchedule */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; if (newRecord || is_ValueChanged("Percentage") || is_ValueChanged("IsActive")) { log.fine("afterSave"); diff --git a/org.adempiere.base/src/org/compiere/model/MPaySelectionLine.java b/org.adempiere.base/src/org/compiere/model/MPaySelectionLine.java index c917142cc1..df9e9c0ce8 100644 --- a/org.adempiere.base/src/org/compiere/model/MPaySelectionLine.java +++ b/org.adempiere.base/src/org/compiere/model/MPaySelectionLine.java @@ -137,7 +137,9 @@ public class MPaySelectionLine extends X_C_PaySelectionLine * @return success */ protected boolean afterSave (boolean newRecord, boolean success) - { + { + if (!success) + return success; setHeader(); return success; } // afterSave @@ -148,7 +150,9 @@ public class MPaySelectionLine extends X_C_PaySelectionLine * @return sucess */ protected boolean afterDelete (boolean success) - { + { + if (!success) + return success; setHeader(); return success; } // afterDelete diff --git a/org.adempiere.base/src/org/compiere/model/MPeriod.java b/org.adempiere.base/src/org/compiere/model/MPeriod.java index 83241110d0..a93227c3d2 100644 --- a/org.adempiere.base/src/org/compiere/model/MPeriod.java +++ b/org.adempiere.base/src/org/compiere/model/MPeriod.java @@ -613,6 +613,8 @@ public class MPeriod extends X_C_Period */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; if (newRecord) { // SELECT Value FROM AD_Ref_List WHERE AD_Reference_ID=183 diff --git a/org.adempiere.base/src/org/compiere/model/MProcess.java b/org.adempiere.base/src/org/compiere/model/MProcess.java index 25623c5985..a3f87f95ee 100644 --- a/org.adempiere.base/src/org/compiere/model/MProcess.java +++ b/org.adempiere.base/src/org/compiere/model/MProcess.java @@ -358,6 +358,8 @@ public class MProcess extends X_AD_Process */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; if (newRecord) // Add to all automatic roles { MRole[] roles = MRole.getOf(getCtx(), "IsManual='N'"); diff --git a/org.adempiere.base/src/org/compiere/model/MProductBOM.java b/org.adempiere.base/src/org/compiere/model/MProductBOM.java index 8ca171faf8..1533d5946f 100644 --- a/org.adempiere.base/src/org/compiere/model/MProductBOM.java +++ b/org.adempiere.base/src/org/compiere/model/MProductBOM.java @@ -157,6 +157,8 @@ public class MProductBOM extends X_M_Product_BOM */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; // Product Line was changed if (newRecord || is_ValueChanged("M_ProductBOM_ID")) { diff --git a/org.adempiere.base/src/org/compiere/model/MProductCategoryAcct.java b/org.adempiere.base/src/org/compiere/model/MProductCategoryAcct.java index 638573ac43..29cfd71efe 100644 --- a/org.adempiere.base/src/org/compiere/model/MProductCategoryAcct.java +++ b/org.adempiere.base/src/org/compiere/model/MProductCategoryAcct.java @@ -105,6 +105,8 @@ public class MProductCategoryAcct extends X_M_Product_Category_Acct */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; checkCosting(); return success; } // afterSave diff --git a/org.adempiere.base/src/org/compiere/model/MProjectLine.java b/org.adempiere.base/src/org/compiere/model/MProjectLine.java index e43a2025bc..c01137b648 100644 --- a/org.adempiere.base/src/org/compiere/model/MProjectLine.java +++ b/org.adempiere.base/src/org/compiere/model/MProjectLine.java @@ -240,6 +240,8 @@ public class MProjectLine extends X_C_ProjectLine */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; updateHeader(); return success; } // afterSave @@ -252,6 +254,8 @@ public class MProjectLine extends X_C_ProjectLine */ protected boolean afterDelete (boolean success) { + if (!success) + return success; updateHeader(); return success; } // afterDelete diff --git a/org.adempiere.base/src/org/compiere/model/MResourceAssignment.java b/org.adempiere.base/src/org/compiere/model/MResourceAssignment.java index ea4c182df5..96fa152652 100644 --- a/org.adempiere.base/src/org/compiere/model/MResourceAssignment.java +++ b/org.adempiere.base/src/org/compiere/model/MResourceAssignment.java @@ -34,7 +34,7 @@ public class MResourceAssignment extends X_S_ResourceAssignment /** * */ - private static final long serialVersionUID = 3024759545660161137L; + private static final long serialVersionUID = 4230793339153210998L; /** * Stnadard Constructor @@ -72,37 +72,39 @@ public class MResourceAssignment extends X_S_ResourceAssignment * @param success success * @return true */ - protected boolean afterSave (boolean newRecord, boolean success) - { - /* - v_Description := :new.Name; - IF (:new.Description IS NOT NULL AND LENGTH(:new.Description) > 0) THEN - v_Description := v_Description || ' (' || :new.Description || ')'; - END IF; - - -- Update Expense Line - UPDATE S_TimeExpenseLine - SET Description = v_Description, - Qty = :new.Qty - WHERE S_ResourceAssignment_ID = :new.S_ResourceAssignment_ID - AND (Description <> v_Description OR Qty <> :new.Qty); - - -- Update Order Line - UPDATE C_OrderLine - SET Description = v_Description, - QtyOrdered = :new.Qty - WHERE S_ResourceAssignment_ID = :new.S_ResourceAssignment_ID - AND (Description <> v_Description OR QtyOrdered <> :new.Qty); - - -- Update Invoice Line - UPDATE C_InvoiceLine - SET Description = v_Description, - QtyInvoiced = :new.Qty - WHERE S_ResourceAssignment_ID = :new.S_ResourceAssignment_ID - AND (Description <> v_Description OR QtyInvoiced <> :new.Qty); - */ - return success; - } // afterSave +// protected boolean afterSave (boolean newRecord, boolean success) +// { +// /* +// if (!success) +// return success; +// v_Description := :new.Name; +// IF (:new.Description IS NOT NULL AND LENGTH(:new.Description) > 0) THEN +// v_Description := v_Description || ' (' || :new.Description || ')'; +// END IF; +// +// -- Update Expense Line +// UPDATE S_TimeExpenseLine +// SET Description = v_Description, +// Qty = :new.Qty +// WHERE S_ResourceAssignment_ID = :new.S_ResourceAssignment_ID +// AND (Description <> v_Description OR Qty <> :new.Qty); +// +// -- Update Order Line +// UPDATE C_OrderLine +// SET Description = v_Description, +// QtyOrdered = :new.Qty +// WHERE S_ResourceAssignment_ID = :new.S_ResourceAssignment_ID +// AND (Description <> v_Description OR QtyOrdered <> :new.Qty); +// +// -- Update Invoice Line +// UPDATE C_InvoiceLine +// SET Description = v_Description, +// QtyInvoiced = :new.Qty +// WHERE S_ResourceAssignment_ID = :new.S_ResourceAssignment_ID +// AND (Description <> v_Description OR QtyInvoiced <> :new.Qty); +// */ +// return success; +// } // afterSave /** * String Representation diff --git a/org.adempiere.base/src/org/compiere/model/MRevenueRecognitionPlan.java b/org.adempiere.base/src/org/compiere/model/MRevenueRecognitionPlan.java index 91e5400ada..b55cea821d 100644 --- a/org.adempiere.base/src/org/compiere/model/MRevenueRecognitionPlan.java +++ b/org.adempiere.base/src/org/compiere/model/MRevenueRecognitionPlan.java @@ -32,8 +32,7 @@ public class MRevenueRecognitionPlan extends X_C_RevenueRecognition_Plan /** * */ - private static final long serialVersionUID = -6748195415080148091L; - + private static final long serialVersionUID = -8437258098744762898L; /** * Standard Constructor @@ -74,33 +73,35 @@ public class MRevenueRecognitionPlan extends X_C_RevenueRecognition_Plan * @param success success * @return success */ - protected boolean afterSave (boolean newRecord, boolean success) - { - if (newRecord) - { - MRevenueRecognition rr = new MRevenueRecognition(getCtx(), getC_RevenueRecognition_ID(), get_TrxName()); - if (rr.isTimeBased()) - { - /** Get InvoiveQty - SELECT QtyInvoiced, M_Product_ID - INTO v_Qty, v_M_Product_ID - FROM C_InvoiceLine - WHERE C_InvoiceLine_ID=:new.C_InvoiceLine_ID; - -- Insert - AD_Sequence_Next ('C_ServiceLevel', :new.AD_Client_ID, v_NextNo); - INSERT INTO C_ServiceLevel - (C_ServiceLevel_ID, C_RevenueRecognition_Plan_ID, - AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy, - M_Product_ID, Description, ServiceLevelInvoiced, ServiceLevelProvided, - Processing,Processed) - VALUES - (v_NextNo, :new.C_RevenueRecognition_Plan_ID, - :new.AD_Client_ID,:new.AD_Org_ID,'Y',SysDate,:new.CreatedBy,SysDate,:new.UpdatedBy, - v_M_Product_ID, NULL, v_Qty, 0, - 'N', 'N'); - **/ - } - } - return success; - } // afterSave +// protected boolean afterSave (boolean newRecord, boolean success) +// { +// if (!success) +// return success; +// if (newRecord) +// { +// MRevenueRecognition rr = new MRevenueRecognition(getCtx(), getC_RevenueRecognition_ID(), get_TrxName()); +// if (rr.isTimeBased()) +// { +// /** Get InvoiveQty +// SELECT QtyInvoiced, M_Product_ID +// INTO v_Qty, v_M_Product_ID +// FROM C_InvoiceLine +// WHERE C_InvoiceLine_ID=:new.C_InvoiceLine_ID; +// -- Insert +// AD_Sequence_Next ('C_ServiceLevel', :new.AD_Client_ID, v_NextNo); +// INSERT INTO C_ServiceLevel +// (C_ServiceLevel_ID, C_RevenueRecognition_Plan_ID, +// AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy, +// M_Product_ID, Description, ServiceLevelInvoiced, ServiceLevelProvided, +// Processing,Processed) +// VALUES +// (v_NextNo, :new.C_RevenueRecognition_Plan_ID, +// :new.AD_Client_ID,:new.AD_Org_ID,'Y',SysDate,:new.CreatedBy,SysDate,:new.UpdatedBy, +// v_M_Product_ID, NULL, v_Qty, 0, +// 'N', 'N'); +// **/ +// } +// } +// return success; +// } // afterSave } // MRevenueRecognitionPlan diff --git a/org.adempiere.base/src/org/compiere/model/MRfQResponseLine.java b/org.adempiere.base/src/org/compiere/model/MRfQResponseLine.java index 56c23f4c53..24802ba9f7 100644 --- a/org.adempiere.base/src/org/compiere/model/MRfQResponseLine.java +++ b/org.adempiere.base/src/org/compiere/model/MRfQResponseLine.java @@ -204,7 +204,9 @@ public class MRfQResponseLine extends X_C_RfQResponseLine * @return success */ protected boolean afterSave (boolean newRecord, boolean success) - { + { + if (!success) + return success; if (!isActive()) { getQtys (false); diff --git a/org.adempiere.base/src/org/compiere/model/MRole.java b/org.adempiere.base/src/org/compiere/model/MRole.java index 6de63b210f..87032e941c 100644 --- a/org.adempiere.base/src/org/compiere/model/MRole.java +++ b/org.adempiere.base/src/org/compiere/model/MRole.java @@ -362,7 +362,9 @@ public final class MRole extends X_AD_Role * @return success */ protected boolean afterSave (boolean newRecord, boolean success) - { + { + if (!success) + return success; if (newRecord && success) { // Add Role to SuperUser diff --git a/org.adempiere.base/src/org/compiere/model/MTable.java b/org.adempiere.base/src/org/compiere/model/MTable.java index ed8563babc..e27ff2fe32 100644 --- a/org.adempiere.base/src/org/compiere/model/MTable.java +++ b/org.adempiere.base/src/org/compiere/model/MTable.java @@ -510,6 +510,8 @@ public class MTable extends X_AD_Table */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; // Sync Table ID MSequence seq = MSequence.get(getCtx(), getTableName(), get_TrxName()); if (seq == null || seq.get_ID() == 0) diff --git a/org.adempiere.base/src/org/compiere/model/MTask.java b/org.adempiere.base/src/org/compiere/model/MTask.java index e687b84b87..2c8d705d2d 100644 --- a/org.adempiere.base/src/org/compiere/model/MTask.java +++ b/org.adempiere.base/src/org/compiere/model/MTask.java @@ -153,6 +153,8 @@ public class MTask extends X_AD_Task protected boolean afterSave (boolean newRecord, boolean success) { if (log.isLoggable(Level.FINE)) log.fine("Success=" + success); + if (!success) + return success; if (! newRecord) { // Menu/Workflow diff --git a/org.adempiere.base/src/org/compiere/model/MTree_Base.java b/org.adempiere.base/src/org/compiere/model/MTree_Base.java index a16673d6bb..c9c4be663c 100644 --- a/org.adempiere.base/src/org/compiere/model/MTree_Base.java +++ b/org.adempiere.base/src/org/compiere/model/MTree_Base.java @@ -353,6 +353,8 @@ public class MTree_Base extends X_AD_Tree */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; if (newRecord) // Base Node { if (TREETYPE_BPartner.equals(getTreeType())) diff --git a/org.adempiere.base/src/org/compiere/model/MWindow.java b/org.adempiere.base/src/org/compiere/model/MWindow.java index c59ab2cc82..9e032c22a8 100644 --- a/org.adempiere.base/src/org/compiere/model/MWindow.java +++ b/org.adempiere.base/src/org/compiere/model/MWindow.java @@ -118,6 +118,8 @@ public class MWindow extends X_AD_Window */ protected boolean afterSave (boolean newRecord, boolean success) { + if (!success) + return success; if (newRecord) // Add to all automatic roles { MRole[] roles = MRole.getOf(getCtx(), "IsManual='N'"); diff --git a/org.adempiere.base/src/org/compiere/model/M_Element.java b/org.adempiere.base/src/org/compiere/model/M_Element.java index c1f53048a7..0cd8e50b68 100644 --- a/org.adempiere.base/src/org/compiere/model/M_Element.java +++ b/org.adempiere.base/src/org/compiere/model/M_Element.java @@ -207,7 +207,9 @@ public class M_Element extends X_AD_Element * @return success */ protected boolean afterSave (boolean newRecord, boolean success) - { + { + if (!success) + return success; // Update Columns, Fields, Parameters, Print Info if (!newRecord) {