details: https://code.openbravo.com/erp/devel/pi/rev/fc4300d9862a changeset: 34961:fc4300d9862a user: Atul Gaware <atul.gaware <at> openbravo.com> date: Tue Nov 13 19:23:04 2018 +0530 summary: Fixes Issue 39474: Commission calculation error
When commission is set as Cascade = Yes, comission details with invoiceline or orderline are deleted before creating lines are same subsequent invoiceline or orderline. Hence the information about the amount is lost once such lines are deleted. To keep track amounts of the multiple invoiceline or orderline they are stored in variable and added to same subsequent invoiceline or orderline being created. diffstat: src-db/database/model/functions/C_COMMISSION_PROCESS.xml | 19 ++++++++++++++- 1 files changed, 17 insertions(+), 2 deletions(-) diffs (56 lines): diff -r e028e67c832c -r fc4300d9862a src-db/database/model/functions/C_COMMISSION_PROCESS.xml --- a/src-db/database/model/functions/C_COMMISSION_PROCESS.xml Tue Nov 13 13:40:29 2018 +0100 +++ b/src-db/database/model/functions/C_COMMISSION_PROCESS.xml Tue Nov 13 19:23:04 2018 +0530 @@ -16,7 +16,7 @@ * Portions created by Jorg Janke are Copyright (C) 1999-2001 Jorg Janke, parts * created by ComPiere are Copyright (C) ComPiere, Inc.; All Rights Reserved. * Contributor(s): Openbravo SLU - * Contributions are Copyright (C) 2001-2017 Openbravo S.L.U. + * Contributions are Copyright (C) 2001-2018 Openbravo S.L.U. ******************************************************************************/ -- Logistice v_ResultStr VARCHAR2(2000):=''; @@ -186,6 +186,7 @@ v_C_Currency_ID C_CommissionDetail.C_Currency_ID%TYPE; v_Amt C_CommissionDetail.ActualAmt%TYPE; v_Qty C_CommissionDetail.ActualQty%TYPE; + v_Amt_Deleted C_CommissionDetail.ActualAmt%TYPE; v_C_OrderLine_ID VARCHAR2(32) ; v_C_InvoiceLine_ID VARCHAR2(32) ; v_Reference C_CommissionDetail.Reference%TYPE; @@ -400,12 +401,26 @@ IF (v_isCascade = 'Y') THEN --DELETE DETAILS v_ResultStr:='DeletingDetail'; IF (v_DocBasisType='I') THEN --invoice + SELECT ActualAmt + INTO v_Amt_Deleted + FROM C_CommissionDetail + WHERE c_invoiceline_id = v_C_InvoiceLine_ID + AND EXISTS (SELECT 1 FROM c_commissionamt + WHERE c_commissionamt.c_commissionrun_id = v_C_CommissionRun_ID + AND C_CommissionDetail.c_commissionamt_id = c_commissionamt.c_commissionamt_id); DELETE FROM C_CommissionDetail WHERE c_commissionamt_id IN (select c_commissionamt_id from c_commissionamt where c_commissionamt.c_commissionrun_id = v_C_CommissionRun_ID) AND c_invoiceline_id = v_C_InvoiceLine_ID; ELSE --orders + SELECT ActualAmt + INTO v_Amt_Deleted + FROM C_CommissionDetail + WHERE c_orderline_id = v_C_OrderLine_ID + AND EXISTS (SELECT 1 FROM c_commissionamt + WHERE c_commissionamt.c_commissionrun_id = v_C_CommissionRun_ID + AND C_CommissionDetail.c_commissionamt_id = c_commissionamt.c_commissionamt_id); DELETE FROM C_CommissionDetail WHERE c_commissionamt_id IN (select c_commissionamt_id from c_commissionamt @@ -429,7 +444,7 @@ ( v_NextNo, v_C_CommissionAmt_ID, v_AD_Client_ID, v_AD_Org_ID, 'Y', now(), '0', now(), - '0', v_C_Currency_ID, v_Amt, 0, + '0', v_C_Currency_ID, v_Amt + COALESCE(v_Amt_Deleted, 0), 0, v_Qty, -- Conversion done by Trigger v_C_OrderLine_ID, v_C_InvoiceLine_ID, v_Reference, v_Info, v_isCostCalculated ) _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits