details: https://code.openbravo.com/erp/devel/pi/rev/a1c3c8123501
changeset: 26101:a1c3c8123501
user: Atul Gaware <atul.gaware <at> openbravo.com>
date: Wed Feb 18 21:38:42 2015 +0530
summary: 28772: Commission payment details are duplicated if the invoice is
paid in two
different months
In case of BasisType = Fully Paid Documents and BasisAmt = NetAmount,
Commission detail amount is calculated as per percentage of invoice schedule
amount with respect to total invoice amount based on payment terms lines if
exists any.
diffstat:
src-db/database/model/functions/C_COMMISSION_PROCESS.xml | 41 +++++++++++----
1 files changed, 29 insertions(+), 12 deletions(-)
diffs (65 lines):
diff -r fc4236ca4ff7 -r a1c3c8123501
src-db/database/model/functions/C_COMMISSION_PROCESS.xml
--- a/src-db/database/model/functions/C_COMMISSION_PROCESS.xml Mon Mar 02
10:56:15 2015 +0100
+++ b/src-db/database/model/functions/C_COMMISSION_PROCESS.xml Wed Feb 18
21:38:42 2015 +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-2014 Openbravo S.L.U.
+ * Contributions are Copyright (C) 2001-2015 Openbravo S.L.U.
******************************************************************************/
-- Logistice
v_ResultStr VARCHAR2(2000):='';
@@ -248,12 +248,21 @@
ELSIF(v_DocBasisType='I') THEN
IF(v_ListDetails='Y' OR v_IsCascade='Y') THEN
IF(v_BasisAmt='N') THEN
- v_Cmd:='SELECT DISTINCT h.C_Currency_ID, CASE WHEN
dt.docbasetype IN (''ARC'',''APC'') THEN -1 ELSE 1 END * l.LineNetAmt,'
- || 'CASE WHEN dt.docbasetype IN (''ARC'',''APC'') THEN -1 ELSE 1
END * l.QtyInvoiced, '
- || 'NULL, l.C_InvoiceLine_ID, h.DocumentNo,
substr(COALESCE(prd.Name,l.Description),1,60), ''Y'' '
- || 'FROM C_Invoice h JOIN C_InvoiceLine l ON h.C_Invoice_ID =
l.C_Invoice_ID'
- || ' JOIN c_doctype dt ON h.c_doctype_id = dt.c_doctype_id'
- || ' LEFT JOIN M_Product prd ON l.M_Product_ID =
prd.M_Product_ID ';
+ IF(v_BasisStatus='F') THEN
+ v_Cmd:='SELECT DISTINCT h.C_Currency_ID, CASE WHEN
dt.docbasetype IN (''ARC'',''APC'') THEN -1 ELSE 1 END * l.LineNetAmt *
(psv.expected / h.grandtotal),'
+ || 'CASE WHEN dt.docbasetype IN (''ARC'',''APC'') THEN -1 ELSE
1 END * l.QtyInvoiced, '
+ || 'NULL, l.C_InvoiceLine_ID, h.DocumentNo,
substr(COALESCE(prd.Name,l.Description),1,60), ''Y'' '
+ || 'FROM C_Invoice h JOIN C_InvoiceLine l ON h.C_Invoice_ID =
l.C_Invoice_ID'
+ || ' JOIN c_doctype dt ON h.c_doctype_id = dt.c_doctype_id'
+ || ' LEFT JOIN M_Product prd ON l.M_Product_ID =
prd.M_Product_ID ';
+ ELSE
+ v_Cmd:='SELECT DISTINCT h.C_Currency_ID, CASE WHEN
dt.docbasetype IN (''ARC'',''APC'') THEN -1 ELSE 1 END * l.LineNetAmt,'
+ || 'CASE WHEN dt.docbasetype IN (''ARC'',''APC'') THEN -1 ELSE
1 END * l.QtyInvoiced, '
+ || 'NULL, l.C_InvoiceLine_ID, h.DocumentNo,
substr(COALESCE(prd.Name,l.Description),1,60), ''Y'' '
+ || 'FROM C_Invoice h JOIN C_InvoiceLine l ON h.C_Invoice_ID =
l.C_Invoice_ID'
+ || ' JOIN c_doctype dt ON h.c_doctype_id = dt.c_doctype_id'
+ || ' LEFT JOIN M_Product prd ON l.M_Product_ID =
prd.M_Product_ID ';
+ END IF;
ELSE
v_Cmd:='SELECT DISTINCT CASE WHEN cost.c_currency_id is null
THEN h.C_Currency_ID ELSE cost.c_currency_id END currency, '
|| 'CASE WHEN (COST.cost is null AND prd.ISSTOCKED=''Y'' AND
prd.PRODUCTTYPE=''I'') THEN 0 '
@@ -276,11 +285,19 @@
END IF;
ELSE
--v_BasisAmt = 'N'
- v_Cmd:='SELECT h.C_Currency_ID, SUM(CASE WHEN dt.docbasetype IN
(''ARC'',''APC'') THEN -1 ELSE 1 END * l.LineNetAmt) AS Amt,'
- || ' SUM(CASE WHEN dt.docbasetype IN (''ARC'',''APC'') THEN -1
ELSE 1 END * l.QtyInvoiced) AS Qty, '
- || 'NULL, NULL, NULL, NULL, ''Y'' '
- || 'FROM C_Invoice h JOIN C_InvoiceLine l ON h.C_Invoice_ID =
l.C_Invoice_ID'
- || ' JOIN c_doctype dt ON h.c_doctype_id = dt.c_doctype_id ';
+ IF(v_BasisStatus='F') THEN
+ v_Cmd:='SELECT h.C_Currency_ID, SUM(CASE WHEN dt.docbasetype IN
(''ARC'',''APC'') THEN -1 ELSE 1 END * l.LineNetAmt * (psv.expected /
h.grandtotal)) AS Amt,'
+ || ' SUM(CASE WHEN dt.docbasetype IN (''ARC'',''APC'') THEN -1
ELSE 1 END * l.QtyInvoiced) AS Qty, '
+ || 'NULL, NULL, NULL, NULL, ''Y'' '
+ || 'FROM C_Invoice h JOIN C_InvoiceLine l ON h.C_Invoice_ID =
l.C_Invoice_ID'
+ || ' JOIN c_doctype dt ON h.c_doctype_id = dt.c_doctype_id ';
+ ELSE
+ v_Cmd:='SELECT h.C_Currency_ID, SUM(CASE WHEN dt.docbasetype IN
(''ARC'',''APC'') THEN -1 ELSE 1 END * l.LineNetAmt) AS Amt,'
+ || ' SUM(CASE WHEN dt.docbasetype IN (''ARC'',''APC'') THEN -1
ELSE 1 END * l.QtyInvoiced) AS Qty, '
+ || 'NULL, NULL, NULL, NULL, ''Y'' '
+ || 'FROM C_Invoice h JOIN C_InvoiceLine l ON h.C_Invoice_ID =
l.C_Invoice_ID'
+ || ' JOIN c_doctype dt ON h.c_doctype_id = dt.c_doctype_id ';
+ END IF;
END IF;
IF (v_BasisStatus='F') THEN
v_Cmd:= v_Cmd || ' left join fin_payment_sched_inv_v psv ON
psv.C_Invoice_ID = h.C_Invoice_ID ';
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits