99: AND jrd.regime_code = 'SERVICE'
100: AND jrr.attribute_code = 'REVERSAL_AR_NUM'
101: AND jrr.registration_type = 'OTHERS';
102:
103: CURSOR c_standard_ap (cp_accrual_date DATE
104: , cp_organization_id NUMBER
105: , cp_location_id NUMBER
106: , cp_vendor_id NUMBER
107: , cp_vendor_site_id NUMBER
344: FROM ap_invoice_lines_all aila
345: WHERE aila.invoice_id = cp_invoice_id
346: AND aila.line_type_lookup_code = 'PREPAY';
347:
348: CURSOR c_sum_all_tax_amt_standard(cp_invoice_id NUMBER, cp_line_num NUMBER, cd_as_of_date DATE) IS
349: SELECT NVL(SUM(jcdt.tax_amt),0)
350: FROM jai_cmn_document_taxes jcdt
351: ,jai_cmn_taxes_all jcta
352: ,jai_ap_invoice_lines jail
364: --Added by Qiong for reverse charge bug#16001407, begin
365: AND jai_cmn_reverse_charge_pkg.is_reverse_charge_dist(aida.invoice_distribution_id)<> 'Y';
366: --Added by Qiong for reverse charge bug#16001407 begin
367:
368: CURSOR c_sum_rv_st_tax_amt_standard(cp_invoice_id NUMBER, cp_line_num NUMBER, cd_as_of_date DATE) IS
369: SELECT sum(jcdt.tax_amt)
370: FROM jai_cmn_document_taxes jcdt
371: ,jai_ap_invoice_lines jail
372: ,ap_invoice_distributions_all aida
503: ln_un_applied_amt NUMBER;
504: lv_reversal_flag VARCHAR2(1) := 'Y';
505: ln_reg_id number;
506: r_reversal_gt JAI_ST_INVOICE_REVERSAL_GT%ROWTYPE;
507: r_standard_ap c_standard_ap%ROWTYPE;
508: r_matched_ap c_matched_ap%ROWTYPE;
509: r_ar c_ar%ROWTYPE;
510: r_ar_rc_st_amount c_ar_rc_st_amount%ROWTYPE;
511:
591: ld_new_as_of_date := pd_as_of_date;
592: END IF;*/
593:
594: IF pv_source = 'AP' THEN
595: FOR r_standard_ap IN c_standard_ap( ld_accrual_date
596: ,pn_organization_id
597: ,pn_location_id
598: ,pn_vendor_id
599: ,pn_vendor_site_id
600: ,pv_invoice_number
601: ,pd_invoice_date
602: ,ld_new_as_of_date)
603: LOOP
604: jai_cmn_debug_contexts_pkg.print (ln_reg_id,'invoice_id='||r_standard_ap.invoice_id);
605: IF lv_reversal_unit = 'DAY' THEN
606: ld_grace_date := r_standard_ap.accounting_date + ln_reversal_num;
607: ELSE
608: SELECT add_months(r_standard_ap.accounting_date,ln_reversal_num) INTO ld_grace_date FROM dual;
602: ,ld_new_as_of_date)
603: LOOP
604: jai_cmn_debug_contexts_pkg.print (ln_reg_id,'invoice_id='||r_standard_ap.invoice_id);
605: IF lv_reversal_unit = 'DAY' THEN
606: ld_grace_date := r_standard_ap.accounting_date + ln_reversal_num;
607: ELSE
608: SELECT add_months(r_standard_ap.accounting_date,ln_reversal_num) INTO ld_grace_date FROM dual;
609: END IF;--calculate grace date
610: lv_reversal_flag := 'Y';
604: jai_cmn_debug_contexts_pkg.print (ln_reg_id,'invoice_id='||r_standard_ap.invoice_id);
605: IF lv_reversal_unit = 'DAY' THEN
606: ld_grace_date := r_standard_ap.accounting_date + ln_reversal_num;
607: ELSE
608: SELECT add_months(r_standard_ap.accounting_date,ln_reversal_num) INTO ld_grace_date FROM dual;
609: END IF;--calculate grace date
610: lv_reversal_flag := 'Y';
611: IF r_standard_ap.payment_status_flag = 'Y' THEN
612: OPEN c_max_payment_date(r_standard_ap.invoice_id);
607: ELSE
608: SELECT add_months(r_standard_ap.accounting_date,ln_reversal_num) INTO ld_grace_date FROM dual;
609: END IF;--calculate grace date
610: lv_reversal_flag := 'Y';
611: IF r_standard_ap.payment_status_flag = 'Y' THEN
612: OPEN c_max_payment_date(r_standard_ap.invoice_id);
613: FETCH c_max_payment_date INTO ld_max_payment_date;
614: CLOSE c_max_payment_date;
615:
608: SELECT add_months(r_standard_ap.accounting_date,ln_reversal_num) INTO ld_grace_date FROM dual;
609: END IF;--calculate grace date
610: lv_reversal_flag := 'Y';
611: IF r_standard_ap.payment_status_flag = 'Y' THEN
612: OPEN c_max_payment_date(r_standard_ap.invoice_id);
613: FETCH c_max_payment_date INTO ld_max_payment_date;
614: CLOSE c_max_payment_date;
615:
616: OPEN c_max_prepayment_date(r_standard_ap.invoice_id);
612: OPEN c_max_payment_date(r_standard_ap.invoice_id);
613: FETCH c_max_payment_date INTO ld_max_payment_date;
614: CLOSE c_max_payment_date;
615:
616: OPEN c_max_prepayment_date(r_standard_ap.invoice_id);
617: FETCH c_max_prepayment_date INTO ld_max_prepayment_date;
618: CLOSE c_max_prepayment_date;
619:
620: IF ld_max_prepayment_date IS NULL AND ld_max_payment_date IS NULL THEN
632: END IF;--this condition indicate that the payment has been done before grace date, no need to reversal.
633: END IF;--payment status flag is 'Y'
634:
635: IF lv_reversal_flag = 'Y' THEN
636: OPEN c_sum_all_tax_amt_standard(r_standard_ap.invoice_id, r_standard_ap.invoice_line_number,ld_new_as_of_date);
637: FETCH c_sum_all_tax_amt_standard INTO ln_sum_tax_amt;
638: CLOSE c_sum_all_tax_amt_standard;
639:
640: ln_original_line_amt := r_standard_ap.line_amount + ln_sum_tax_amt;
633: END IF;--payment status flag is 'Y'
634:
635: IF lv_reversal_flag = 'Y' THEN
636: OPEN c_sum_all_tax_amt_standard(r_standard_ap.invoice_id, r_standard_ap.invoice_line_number,ld_new_as_of_date);
637: FETCH c_sum_all_tax_amt_standard INTO ln_sum_tax_amt;
638: CLOSE c_sum_all_tax_amt_standard;
639:
640: ln_original_line_amt := r_standard_ap.line_amount + ln_sum_tax_amt;
641:
634:
635: IF lv_reversal_flag = 'Y' THEN
636: OPEN c_sum_all_tax_amt_standard(r_standard_ap.invoice_id, r_standard_ap.invoice_line_number,ld_new_as_of_date);
637: FETCH c_sum_all_tax_amt_standard INTO ln_sum_tax_amt;
638: CLOSE c_sum_all_tax_amt_standard;
639:
640: ln_original_line_amt := r_standard_ap.line_amount + ln_sum_tax_amt;
641:
642: jai_cmn_debug_contexts_pkg.print (ln_reg_id,'ln_sum_tax_amt='||ln_sum_tax_amt);
636: OPEN c_sum_all_tax_amt_standard(r_standard_ap.invoice_id, r_standard_ap.invoice_line_number,ld_new_as_of_date);
637: FETCH c_sum_all_tax_amt_standard INTO ln_sum_tax_amt;
638: CLOSE c_sum_all_tax_amt_standard;
639:
640: ln_original_line_amt := r_standard_ap.line_amount + ln_sum_tax_amt;
641:
642: jai_cmn_debug_contexts_pkg.print (ln_reg_id,'ln_sum_tax_amt='||ln_sum_tax_amt);
643: jai_cmn_debug_contexts_pkg.print (ln_reg_id,'ln_original_line_amt='||ln_original_line_amt);
644: OPEN c_sum_rv_st_tax_amt_standard(r_standard_ap.invoice_id, r_standard_ap.invoice_line_number,ld_new_as_of_date);
640: ln_original_line_amt := r_standard_ap.line_amount + ln_sum_tax_amt;
641:
642: jai_cmn_debug_contexts_pkg.print (ln_reg_id,'ln_sum_tax_amt='||ln_sum_tax_amt);
643: jai_cmn_debug_contexts_pkg.print (ln_reg_id,'ln_original_line_amt='||ln_original_line_amt);
644: OPEN c_sum_rv_st_tax_amt_standard(r_standard_ap.invoice_id, r_standard_ap.invoice_line_number,ld_new_as_of_date);
645: FETCH c_sum_rv_st_tax_amt_standard INTO ln_rcv_st_amt;
646: CLOSE c_sum_rv_st_tax_amt_standard;
647:
648: OPEN c_total_ap_amount(r_standard_ap.invoice_id);
641:
642: jai_cmn_debug_contexts_pkg.print (ln_reg_id,'ln_sum_tax_amt='||ln_sum_tax_amt);
643: jai_cmn_debug_contexts_pkg.print (ln_reg_id,'ln_original_line_amt='||ln_original_line_amt);
644: OPEN c_sum_rv_st_tax_amt_standard(r_standard_ap.invoice_id, r_standard_ap.invoice_line_number,ld_new_as_of_date);
645: FETCH c_sum_rv_st_tax_amt_standard INTO ln_rcv_st_amt;
646: CLOSE c_sum_rv_st_tax_amt_standard;
647:
648: OPEN c_total_ap_amount(r_standard_ap.invoice_id);
649: FETCH c_total_ap_amount INTO ln_total_amt;
642: jai_cmn_debug_contexts_pkg.print (ln_reg_id,'ln_sum_tax_amt='||ln_sum_tax_amt);
643: jai_cmn_debug_contexts_pkg.print (ln_reg_id,'ln_original_line_amt='||ln_original_line_amt);
644: OPEN c_sum_rv_st_tax_amt_standard(r_standard_ap.invoice_id, r_standard_ap.invoice_line_number,ld_new_as_of_date);
645: FETCH c_sum_rv_st_tax_amt_standard INTO ln_rcv_st_amt;
646: CLOSE c_sum_rv_st_tax_amt_standard;
647:
648: OPEN c_total_ap_amount(r_standard_ap.invoice_id);
649: FETCH c_total_ap_amount INTO ln_total_amt;
650: CLOSE c_total_ap_amount;
644: OPEN c_sum_rv_st_tax_amt_standard(r_standard_ap.invoice_id, r_standard_ap.invoice_line_number,ld_new_as_of_date);
645: FETCH c_sum_rv_st_tax_amt_standard INTO ln_rcv_st_amt;
646: CLOSE c_sum_rv_st_tax_amt_standard;
647:
648: OPEN c_total_ap_amount(r_standard_ap.invoice_id);
649: FETCH c_total_ap_amount INTO ln_total_amt;
650: CLOSE c_total_ap_amount;
651:
652: OPEN c_paid_amt(r_standard_ap.invoice_id,ld_grace_date);
648: OPEN c_total_ap_amount(r_standard_ap.invoice_id);
649: FETCH c_total_ap_amount INTO ln_total_amt;
650: CLOSE c_total_ap_amount;
651:
652: OPEN c_paid_amt(r_standard_ap.invoice_id,ld_grace_date);
653: FETCH c_paid_amt INTO ln_paid_amt;
654: CLOSE c_paid_amt;
655:
656: OPEN c_prepaid_amt(r_standard_ap.invoice_id,ld_grace_date);
652: OPEN c_paid_amt(r_standard_ap.invoice_id,ld_grace_date);
653: FETCH c_paid_amt INTO ln_paid_amt;
654: CLOSE c_paid_amt;
655:
656: OPEN c_prepaid_amt(r_standard_ap.invoice_id,ld_grace_date);
657: FETCH c_prepaid_amt INTO ln_prepaid_amt;
658: CLOSE c_prepaid_amt;
659:
660: ln_paid_amt := nvl(ln_paid_amt,0) + nvl (ln_prepaid_amt,0);
671: jai_cmn_debug_contexts_pkg.print (ln_reg_id,'ln_unpaid_pctg='||ln_unpaid_pctg);
672: jai_cmn_debug_contexts_pkg.print (ln_reg_id,'ln_open_amt='||ln_open_amt);
673: jai_cmn_debug_contexts_pkg.print (ln_reg_id,'ln_tax_to_be_adjusted='||ln_tax_to_be_adjusted);
674: r_reversal_gt.SERIAL_NUM := ln_serial_num;
675: r_reversal_gt.INVOICE_NUM := r_standard_ap.invoice_num;
676: r_reversal_gt.LINE_NUMBER := r_standard_ap.invoice_line_number;
677: r_reversal_gt.ACCOUNTING_DATE := r_standard_ap.accounting_date;
678: r_reversal_gt.ORIGINAL_LINE_AMT := ln_original_line_amt;
679: r_reversal_gt.RCV_SVC_TAX := ln_rcv_st_amt;
672: jai_cmn_debug_contexts_pkg.print (ln_reg_id,'ln_open_amt='||ln_open_amt);
673: jai_cmn_debug_contexts_pkg.print (ln_reg_id,'ln_tax_to_be_adjusted='||ln_tax_to_be_adjusted);
674: r_reversal_gt.SERIAL_NUM := ln_serial_num;
675: r_reversal_gt.INVOICE_NUM := r_standard_ap.invoice_num;
676: r_reversal_gt.LINE_NUMBER := r_standard_ap.invoice_line_number;
677: r_reversal_gt.ACCOUNTING_DATE := r_standard_ap.accounting_date;
678: r_reversal_gt.ORIGINAL_LINE_AMT := ln_original_line_amt;
679: r_reversal_gt.RCV_SVC_TAX := ln_rcv_st_amt;
680: r_reversal_gt.OPEN_AMT := ln_open_amt;
673: jai_cmn_debug_contexts_pkg.print (ln_reg_id,'ln_tax_to_be_adjusted='||ln_tax_to_be_adjusted);
674: r_reversal_gt.SERIAL_NUM := ln_serial_num;
675: r_reversal_gt.INVOICE_NUM := r_standard_ap.invoice_num;
676: r_reversal_gt.LINE_NUMBER := r_standard_ap.invoice_line_number;
677: r_reversal_gt.ACCOUNTING_DATE := r_standard_ap.accounting_date;
678: r_reversal_gt.ORIGINAL_LINE_AMT := ln_original_line_amt;
679: r_reversal_gt.RCV_SVC_TAX := ln_rcv_st_amt;
680: r_reversal_gt.OPEN_AMT := ln_open_amt;
681: r_reversal_gt.TAX_TO_BE_ADJUSTED := ln_tax_to_be_adjusted;
680: r_reversal_gt.OPEN_AMT := ln_open_amt;
681: r_reversal_gt.TAX_TO_BE_ADJUSTED := ln_tax_to_be_adjusted;
682:
683: r_reversal_gt.source := 'AP';
684: r_reversal_gt.invoice_id := r_standard_ap.invoice_id;
685: r_reversal_gt.party_id := r_standard_ap.vendor_id;
686: r_reversal_gt.party_site_id := r_standard_ap.vendor_site_id;
687: r_reversal_gt.DATE_OF_REVERSAL := ld_grace_date;
688:
681: r_reversal_gt.TAX_TO_BE_ADJUSTED := ln_tax_to_be_adjusted;
682:
683: r_reversal_gt.source := 'AP';
684: r_reversal_gt.invoice_id := r_standard_ap.invoice_id;
685: r_reversal_gt.party_id := r_standard_ap.vendor_id;
686: r_reversal_gt.party_site_id := r_standard_ap.vendor_site_id;
687: r_reversal_gt.DATE_OF_REVERSAL := ld_grace_date;
688:
689: insert_trxs(r_reversal_gt);
682:
683: r_reversal_gt.source := 'AP';
684: r_reversal_gt.invoice_id := r_standard_ap.invoice_id;
685: r_reversal_gt.party_id := r_standard_ap.vendor_id;
686: r_reversal_gt.party_site_id := r_standard_ap.vendor_site_id;
687: r_reversal_gt.DATE_OF_REVERSAL := ld_grace_date;
688:
689: insert_trxs(r_reversal_gt);
690: ln_serial_num := ln_serial_num + 1;