details: https://code.openbravo.com/erp/devel/pi/rev/1124bbf1942d changeset: 28600:1124bbf1942d user: Víctor Martínez Romanos <victor.martinez <at> openbravo.com> date: Thu Feb 11 13:42:35 2016 +0100 summary: Fixed bug 32100: Reactivation control of a prepaid cash vat invoice
When an invoice is linked to a payment, the system currently avoids to reactivate it. You first need to reactivate the payment, so the cash vat information is deleted, and then you can reactivate the invoice. However for prepaid invoices, the system does allow to reactivate the invoice, but the cash vat information is wrongly kept. Now we delete all the cash vat info records linked to a prepayment for this invoice at invoice reactivation time. When the invoice is latter on processed, the cash vat records will be calculated again. details: https://code.openbravo.com/erp/devel/pi/rev/5543dcdb0d5f changeset: 28601:5543dcdb0d5f user: Víctor Martínez Romanos <victor.martinez <at> openbravo.com> date: Thu Feb 11 15:59:45 2016 +0100 summary: Fixed bug 32206: Invoice reactivation with Manual Cash VAT Settlement Avoid to reactivate an invoice linked to a Manual Cash VAT Settlement diffstat: modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_INV.xml | 28 ++++++++++ modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml | 12 ++++ 2 files changed, 40 insertions(+), 0 deletions(-) diffs (67 lines): diff -r 43feadf21bf7 -r 5543dcdb0d5f 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 Fri Feb 12 11:04:34 2016 +0100 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_INV.xml Thu Feb 11 15:59:45 2016 +0100 @@ -1070,6 +1070,20 @@ IF (v_count <> 0) THEN RAISE_APPLICATION_ERROR(-20000, '@APRM_InvoiceWithPayments@' || ' ' || v_documentno); END IF; + + SELECT count(*) + INTO v_count + FROM DUAL + WHERE EXISTS (SELECT 1 + FROM C_InvoiceTax_CashVAT itcv + INNER JOIN C_InvoiceTax it on (it.C_InvoiceTax_ID = itcv.C_InvoiceTax_ID) + WHERE it.C_Invoice_ID = p_record_id + AND itcv.IsManualSettlement = 'Y' + ); + IF (v_count > 0) THEN + RAISE_APPLICATION_ERROR(-20000, '@APRM_InvoiceWithManualCashVATSettlement@'); + END IF; + SELECT count(*), max(p.documentno) INTO v_count, v_documentno FROM fin_payment_schedule ps, fin_payment_scheduledetail psd, fin_payment_prop_detail pd, fin_payment_proposal p @@ -1121,6 +1135,20 @@ UPDATE C_BPARTNER SET SO_CREDITUSED = COALESCE(SO_CREDITUSED,0) - v_convertedAmount WHERE C_BPARTNER_ID = v_BPartner_ID; + + -- Delete C_InvoiceTax_CashVAT records for this invoice + -- this only happens for prepayments, which are bypassed by the previous check + DELETE FROM C_InvoiceTax_CashVAT itcv + WHERE EXISTS (SELECT 1 + FROM C_InvoiceTax it + WHERE it.C_InvoiceTax_ID = itcv.C_InvoiceTax_ID + AND it.C_Invoice_ID = p_record_id + ) + AND EXISTS (SELECT 1 + FROM FIN_Payment_Detail fpd + WHERE fpd.FIN_Payment_Detail_ID = itcv.FIN_Payment_Detail_ID + AND fpd.IsPrepayment = 'Y') + AND itcv.IsManualSettlement = 'N'; END; ELSIF (p_docaction = 'RC') THEN diff -r 43feadf21bf7 -r 5543dcdb0d5f modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml --- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml Fri Feb 12 11:04:34 2016 +0100 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml Thu Feb 11 15:59:45 2016 +0100 @@ -1309,6 +1309,18 @@ <!--D0F129E2F69F4D199DAE68813D2327A2--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N> <!--D0F129E2F69F4D199DAE68813D2327A2--></AD_MESSAGE> +<!--D1CF6692476E409DBACAC1809BBC1788--><AD_MESSAGE> +<!--D1CF6692476E409DBACAC1809BBC1788--> <AD_MESSAGE_ID><![CDATA[D1CF6692476E409DBACAC1809BBC1788]]></AD_MESSAGE_ID> +<!--D1CF6692476E409DBACAC1809BBC1788--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--D1CF6692476E409DBACAC1809BBC1788--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--D1CF6692476E409DBACAC1809BBC1788--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--D1CF6692476E409DBACAC1809BBC1788--> <VALUE><![CDATA[APRM_InvoiceWithManualCashVATSettlement]]></VALUE> +<!--D1CF6692476E409DBACAC1809BBC1788--> <MSGTEXT><![CDATA[The invoice is already included into a Manual Cash VAT Settlement]]></MSGTEXT> +<!--D1CF6692476E409DBACAC1809BBC1788--> <MSGTYPE><![CDATA[E]]></MSGTYPE> +<!--D1CF6692476E409DBACAC1809BBC1788--> <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID> +<!--D1CF6692476E409DBACAC1809BBC1788--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N> +<!--D1CF6692476E409DBACAC1809BBC1788--></AD_MESSAGE> + <!--D2585EEAC94945C7B3CF79C209FD7650--><AD_MESSAGE> <!--D2585EEAC94945C7B3CF79C209FD7650--> <AD_MESSAGE_ID><![CDATA[D2585EEAC94945C7B3CF79C209FD7650]]></AD_MESSAGE_ID> <!--D2585EEAC94945C7B3CF79C209FD7650--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits