details: https://code.openbravo.com/erp/devel/pi/rev/0fe55503791b changeset: 30047:0fe55503791b user: Atul Gaware <atul.gaware <at> openbravo.com> date: Fri Sep 02 01:36:34 2016 +0530 summary: Fixes issue 33500: Wrong PSD Credit Memo invoices
In case of credit memo's invoiced amount as well as payment amount should be as per the variable multipler arc. Sign of quantities in case of credit memo APC / ARC are opposite so skip the check done in other related issue. diffstat: modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_INV.xml | 17 +++++---- 1 files changed, 10 insertions(+), 7 deletions(-) diffs (54 lines): diff -r 7cbdcc419167 -r 0fe55503791b modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_INV.xml --- a/modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_INV.xml Wed Sep 07 12:06:09 2016 -0400 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_INV.xml Fri Sep 02 01:36:34 2016 +0530 @@ -226,16 +226,19 @@ fin_payment_scheduledetail.fin_payment_detail_id, fin_payment_scheduledetail.isinvoicepaid AS paid, CASE WHEN fin_payment_scheduledetail.fin_payment_detail_id is not null THEN 0 ELSE 1 END AS priority - FROM c_invoiceline, c_orderline, fin_payment_schedule, + FROM c_invoice, c_doctype, c_invoiceline, c_orderline, fin_payment_schedule, fin_payment_scheduledetail LEFT JOIN fin_payment_detail ON fin_payment_scheduledetail.fin_payment_detail_id = fin_payment_detail.fin_payment_detail_id LEFT JOIN fin_payment ON fin_payment_detail.fin_payment_id = fin_payment.fin_payment_id - WHERE c_invoiceline.c_orderline_id = c_orderline.c_orderline_id + WHERE c_invoice.c_doctype_id = c_doctype.c_doctype_id + AND c_invoice.c_invoice_id = c_invoiceline.c_invoice_id + AND c_invoiceline.c_orderline_id = c_orderline.c_orderline_id AND c_orderline.c_order_id = fin_payment_schedule.c_order_id AND fin_payment_schedule.fin_payment_schedule_id = fin_payment_scheduledetail.fin_payment_schedule_order AND fin_payment_scheduledetail.fin_payment_schedule_invoice is null AND fin_payment_scheduledetail.ISCANCELED <> 'Y' - AND c_invoiceline.c_invoice_id = invoice_id - AND sign(c_invoiceline.qtyinvoiced) = sign(c_orderline.qtyordered) + AND c_invoice.c_invoice_id = invoice_id + AND ((c_doctype.isreversal='N' AND sign(c_invoiceline.qtyinvoiced) = sign(c_orderline.qtyordered)) + OR (c_doctype.isreversal='Y' AND sign(-c_invoiceline.qtyinvoiced) = sign(c_orderline.qtyordered))) ORDER BY CASE WHEN fin_payment_scheduledetail.fin_payment_detail_id is not null THEN 0 ELSE 1 END, c_orderline.c_order_id; order_schdet cur_order_schdet%ROWTYPE; @@ -332,7 +335,7 @@ END IF; v_pendingamount := v_pendingamount - v_paymentamount; v_scheduledamount := C_Currency_Round((v_paymentamount * v_multiplierarc), v_currency_id, NULL); - IF (v_scheduledamount < 0) THEN + IF (v_scheduledamount < 0 OR v_MultiplierARC = -1) THEN v_negativeps := -1; ELSE v_negativeps := 1; @@ -388,7 +391,7 @@ IF (v_IsSOTrx = 'Y') THEN SELECT COALESCE(COUNT(*),0) INTO v_Count FROM c_orderline - WHERE qtyinvoiced<>qtyordered + WHERE qtyordered <> (qtyinvoiced*v_MultiplierARC) AND c_order_id = order_schdet.order_id; ELSE SELECT count(*) INTO v_count @@ -399,7 +402,7 @@ AND mpo.c_invoiceline_id IS NOT NULL WHERE ol.c_order_id = order_schdet.order_id GROUP BY ol.c_orderline_id, ol.qtyordered) a - WHERE a.matchedqty != a.qtyordered; + WHERE a.qtyordered != (a.matchedqty*v_MultiplierARC); END IF; END IF; ------------------------------------------------------------------------------ _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits