1. Get rid of all advertisements and get unlimited access to documents by upgrading to Premium Membership. Upgrade to Premium Now and also get a Premium Badge!

API to Apply AR Receipts

Discussion in 'Oracle Apps Technical' started by yowancristo, Dec 18, 2014.

  1. yowancristo

    yowancristo Forum Advisor

    Messages:
    103
    Likes Received:
    10
    Trophy Points:
    305
    Location:
    Bangalore
    Introduction

    API to Apply AR Receipts


    The code

    This script is used to Apply an AR Receipt that is already created to a Customer Transaction.

    Code (SQL):


    DECLARE
        --local Variables
        g_loc                       NUMBER :=0;
        g_msg                       VARCHAR2(500);
        g_sysdate                   DATE  := SYSDATE;
        l_apl_return_status         VARCHAR2 (1);
        l_apl_msg_count             NUMBER;
        l_apl_msg_data              VARCHAR2 (240);
        l_org_id                    NUMBER := FND_PROFILE.VALUE('ORG_ID') ;
        l_receipt_id            ar_cash_receipts_all.cash_receipt_id%TYPE;
        l_rcpt_method_name          VARCHAR2(20);
        l_customer_trx_id           NUMBER ;
        l_amount_applied            NUMBER;
       
    BEGIN
     
        l_receipt_id          := 402941;
        l_customer_trx_id     := 12312;
        l_amount_applied      := 100
       
        FND_GLOBAL.APPS_INITIALIZE(0, 50259, 222);
        MO_GLOBAL.SET_POLICY_CONTEXT('S',l_org_id);
       

        AR_RECEIPT_API_PUB.APPLY( p_api_version     => 1.0,
                                 p_init_msg_list    => fnd_api.g_false,
                                 p_commit           => fnd_api.g_false,
                                 p_validation_level => fnd_api.g_valid_level_full,
                                 x_return_status    => l_apl_return_status,
                                 x_msg_count        => l_apl_msg_count,
                                 x_msg_data         => l_apl_msg_data,
                                 p_cash_receipt_id  => l_receipt_id,
                                 p_customer_trx_id  => l_customer_trx_id,
                                 p_applied_payment_schedule_id => NULL ,
                                 p_amount_applied    => l_amount_applied ,
                                 p_show_closed_invoices => 'Y',
                                 p_apply_date        => SYSDATE,
                                 p_apply_gl_date     => NULL,
                                 p_line_number       => NULL
                                 );
                                 
            IF l_apl_msg_count = 1 THEN
                DBMS_OUTPUT.put_line('l_apl_msg_data '|| l_apl_msg_data);
            ELSIF l_apl_msg_count > 1 THEN
                LOOP
                    l_apl_msg_data    := fnd_msg_pub.GET(fnd_msg_pub.g_next, fnd_api.g_false);
                    IF l_apl_msg_data IS NULL THEN
                      EXIT;
                    END IF;
                    DBMS_OUTPUT.put_line('Message'|| '---' ||' ---'|| l_apl_msg_data);
                END LOOP;
            END IF; -- l_apl_msg_count = 1
           
            IF l_apl_return_status = 'S' THEN
           
                DBMS_OUTPUT.put_line('Receipt applied successfully for customer trx id '||l_customer_trx_id);
            ELSE       
                DBMS_OUTPUT.put_line('Apply Receipt Failed for customer trx id '||l_customer_trx_id);
                           
            END IF;                
               
    COMMIT;

    EXCEPTION
        WHEN OTHERS THEN
            dbms_output.put_line('Error in procedure '||SQLERRM);
    END ;
    /

     
    Thanks,
    Yowan Cristo