Oracle EBS AR 其他API

DECLARE 
  L_CR_ID            NUMBER;
  L_ATTRIBUTE_REC    AR_RECEIPT_API_PUB.ATTRIBUTE_REC_TYPE;
  L_GLOBAL_ATT_REC   AR_RECEIPT_API_PUB.global_attribute_rec_type;
  
  L_RETURN_STATUS    VARCHAR2(100);
  L_MSG_COUNT        NUMBER;
  L_MSG_DATA         VARCHAR2(2000);
  
  I                  NUMBER;
  L_MESSAGE_LIST     VARCHAR2(1000);
  L_MSG_INDEX_OUT    NUMBER;
BEGIN
  FND_GLOBAL.APPS_INITIALIZE(USER_ID      => 1111,
                             RESP_ID      => 50737 ,
                             RESP_APPL_ID => 50737);
   mo_global.set_policy_context('S', 142);
  
  AR_RECEIPT_API_PUB.REVERSE(
                             P_API_VERSION                => 1.0,
                             P_COMMIT                     => 'F',
                             P_VALIDATION_LEVEL           => 100,
                             P_CASH_RECEIPT_ID            => 1000,
                             P_REVERSAL_DATE              => fnd_conc_date.string_to_date('2017-03-31'),
                             P_REVERSAL_GL_DATE           => fnd_conc_date.string_to_date('2017-03-31'),
                             P_REVERSAL_CATEGORY_CODE     => 'REV',
                             P_REVERSAL_REASON_CODE       => 'PAYMENT REVERSAL',
                             P_REVERSAL_COMMENTS          => 'TEST',
                             X_RETURN_STATUS              => L_RETURN_STATUS,
                             X_MSG_COUNT                  => L_MSG_COUNT,
                             X_MSG_DATA                   => L_MSG_DATA);
  IF L_RETURN_STATUS <> FND_API.G_RET_STS_SUCCESS THEN
        FOR I IN 1..L_MSG_COUNT LOOP
          FND_MSG_PUB.GET(P_MSG_INDEX => I
                         ,P_DATA => L_MESSAGE_LIST
                         ,P_MSG_INDEX_OUT => L_MSG_INDEX_OUT);
          DBMS_OUTPUT.PUT_LINE(L_MESSAGE_LIST);
        END LOOP;
  ELSE
      DBMS_OUTPUT.PUT_LINE(L_CR_ID);
      DBMS_OUTPUT.PUT_LINE(L_RETURN_STATUS);
      DBMS_OUTPUT.PUT_LINE('L_MSG_DATA  '||L_MSG_DATA);
  END IF;
END;
--set serveroutput on size 1000000

DECLARE

   l_return_status VARCHAR2(1);
   l_msg_count NUMBER;
   l_msg_data VARCHAR2(240);
   l_cash_receipt_id NUMBER;
   p_count number := 0;

BEGIN

    -- 1) Set the applications context
    fnd_global.apps_initialize(1011902, 50559, 222,0);
    mo_global.init('AR');
    mo_global.set_policy_context('S','204');


    -- 2) Call the API
    AR_RECEIPT_API_PUB.CREATE_CASH
    ( p_api_version => 1.0,
      p_init_msg_list => FND_API.G_TRUE,
      p_commit => FND_API.G_TRUE,
      p_validation_level => FND_API.G_VALID_LEVEL_FULL,
      x_return_status => l_return_status,
      x_msg_count => l_msg_count,
      x_msg_data => l_msg_data,
      p_currency_code => 'USD',
      p_amount => 1005.65,
      p_receipt_number => 'rct-api1',
      p_receipt_date => '22-JUL-2011',
      p_gl_date => '22-JUL-2011',
      p_customer_number => '1007',
      p_receipt_method_id => 1001,
      p_cr_id => l_cash_receipt_id );

    -- 3) Review the API output
    dbms_output.put_line('Status ' || l_return_status);
    dbms_output.put_line('Cash Receipt id ' || l_cash_receipt_id );
    dbms_output.put_line('Message count ' || l_msg_count);

    if l_msg_count = 1 Then
       dbms_output.put_line('l_msg_data '||l_msg_data);
    elsif l_msg_count > 1 Then
       loop
          p_count := p_count + 1;
          l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
          if l_msg_data is NULL then
              exit;
          end if;
          dbms_output.put_line('Message ' || p_count ||'. '||l_msg_data);
       end loop;
    end if; 
END;
/


--set serveroutput on size 1000000

DECLARE
   l_return_status varchar2(1);
   l_msg_count number;
   l_msg_data varchar2(240);
   p_count number :=0;

BEGIN

    -- 1) Set the applications context
    fnd_global.apps_initialize(1011902, 50559, 222,0);
    mo_global.init('AR');
    mo_global.set_policy_context('S','204');
   

    -- 2) Call the API
    AR_RECEIPT_API_PUB.APPLY
   ( p_api_version => 1.0,
     p_init_msg_list => FND_API.G_TRUE,
     p_commit => FND_API.G_TRUE,
     p_validation_level => FND_API.G_VALID_LEVEL_FULL,
     p_cash_receipt_id => 83989,
     p_customer_trx_id => 527928,
     x_return_status => l_return_status,
     x_msg_count => l_msg_count,
     x_msg_data => l_msg_data);

   -- 3) Review the API output
   dbms_output.put_line('Status ' || l_return_status);
   dbms_output.put_line('Message count ' || l_msg_count);

   if l_msg_count = 1 Then
      dbms_output.put_line('l_msg_data '|| l_msg_data);
   elsif l_msg_count > 1 Then
      loop
         p_count := p_count + 1;
         l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
         if l_msg_data is NULL Then
            exit;
         end if;
         dbms_output.put_line('Message ' || p_count ||'. '||l_msg_data);
      end loop;
   end if;
end;
/


set serveroutput on size 1000000

DECLARE
   l_return_status VARCHAR2(1);
   l_msg_count NUMBER;
   l_msg_data VARCHAR2(240);
   l_cash_receipt_id NUMBER;
   p_count number := 0;

BEGIN
     -- 1) Set the applications context
    fnd_global.apps_initialize(1011902, 50559, 222,0);
    mo_global.init('AR');
    mo_global.set_policy_context('S','204');
   
    AR_RECEIPT_API_PUB.create_and_apply
   ( p_api_version => 1.0,
     p_init_msg_list => FND_API.G_TRUE,
     p_commit => FND_API.G_TRUE,
     p_validation_level => FND_API.G_VALID_LEVEL_FULL,
     x_return_status => l_return_status,
     x_msg_count => l_msg_count,
     x_msg_data => l_msg_data,
     p_amount => 2000.00,
     p_receipt_number => 'rct-api2',
     p_receipt_date => '22-JUL-2011',
     p_gl_date => '22-JUL-2011',
     p_customer_number => 1007,
     p_receipt_method_id => 1001,
     p_trx_number => '102317',
     p_cr_id => l_cash_receipt_id );

    -- 3) Review the API output
    dbms_output.put_line('Status ' || l_return_status);
    dbms_output.put_line('Message count ' || l_msg_count);
    dbms_output.put_line('Cash Receipt ID ' || l_cash_receipt_id );

    if l_msg_count = 1 Then
       dbms_output.put_line('l_msg_data '|| l_msg_data);
    elsif l_msg_count > 1 Then
       loop
          p_count := p_count + 1;
          l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
          if l_msg_data is NULL Then
             exit;
          end if;
          dbms_output.put_line('Message ' || p_count ||'. '||l_msg_data);
       end loop;
    end if;
END;
/


DECLARE
   l_return_status VARCHAR2(1);
   l_msg_count NUMBER;
   l_msg_data VARCHAR2(240);
   p_count number := 0;
BEGIN
    -- 1) Set the applications context
    fnd_global.apps_initialize(1011902, 50559, 222,0);
    mo_global.init('AR');
    mo_global.set_policy_context('S','204');

   AR_RECEIPT_API_PUB.UNAPPLY
   ( p_api_version => 1.0,
     p_init_msg_list => FND_API.G_TRUE,
     p_commit => FND_API.G_TRUE,
     p_validation_level => FND_API.G_VALID_LEVEL_FULL,
     x_return_status => l_return_status,
     x_msg_count => l_msg_count,
     x_msg_data => l_msg_data,
     p_cash_receipt_id => 83989,
     p_applied_payment_schedule_id => 182804,
     p_reversal_gl_date => '23-JUL-2011'
   );

    -- 3) Review the API output
    dbms_output.put_line('Status ' || l_return_status);
    dbms_output.put_line('Message count ' || l_msg_count);

    if l_msg_count = 1 Then
       dbms_output.put_line('l_msg_data '|| l_msg_data);
    elsif l_msg_count > 1 Then
       loop
          p_count := p_count + 1;
          l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
          if l_msg_data is NULL Then
             exit;
          end if;
          dbms_output.put_line('Message ' || p_count ||'. '||l_msg_data);
       end loop;
    end if;
END;
/

--set serveroutput on size 1000000

DECLARE
   l_return_status VARCHAR2(1);
   l_msg_count NUMBER;
   l_msg_data VARCHAR2(240);
   l_cash_receipt_id NUMBER;
   p_count number := 0;
BEGIN
    -- 1) Set the applications context
    fnd_global.apps_initialize(1011902, 50559, 222,0);
    mo_global.init('AR');
    mo_global.set_policy_context('S','204');

   AR_RECEIPT_API_PUB.APPLY_ON_ACCOUNT
   ( p_api_version => 1.0,
     p_init_msg_list => FND_API.G_TRUE,
     p_commit => FND_API.G_TRUE,
     p_validation_level => FND_API.G_VALID_LEVEL_FULL,
     x_return_status => l_return_status,
     x_msg_count => l_msg_count,
     x_msg_data => l_msg_data,
     p_cash_receipt_id => 83992);

    -- 3) Review the API output
    dbms_output.put_line('Status ' || l_return_status);
    dbms_output.put_line('Message count ' || l_msg_count);

    if l_msg_count = 1 Then
       dbms_output.put_line('l_msg_data '|| l_msg_data);
    elsif l_msg_count > 1 Then
       loop
          p_count := p_count + 1;
          l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
          if l_msg_data is NULL Then
             exit;
          end if;
          dbms_output.put_line('Message ' || p_count ||'. '||l_msg_data);
       end loop;
    end if;
END;
/

--set serveroutput on size 1000000

DECLARE
   l_return_status VARCHAR2(1);
   l_msg_count NUMBER;
   l_msg_data VARCHAR2(240);
   l_cash_receipt_id NUMBER;
   p_count number := 0;
BEGIN
    -- 1) Set the applications context
    fnd_global.apps_initialize(1011902, 50559, 222,0);
    mo_global.init('AR');
    mo_global.set_policy_context('S','204');

   AR_RECEIPT_API_PUB.UNAPPLY_ON_ACCOUNT
   ( p_api_version => 1.0,
     p_init_msg_list => FND_API.G_TRUE,
     p_commit => FND_API.G_TRUE,
     p_validation_level => FND_API.G_VALID_LEVEL_FULL,
     x_return_status => l_return_status,
     x_msg_count => l_msg_count,
     x_msg_data => l_msg_data,
     p_cash_receipt_id => 83992,
     P_reversal_gl_date => '23-JUL-2011');

    -- 3) Review the API output
    dbms_output.put_line('Status ' || l_return_status);
    dbms_output.put_line('Message count ' || l_msg_count);

    if l_msg_count = 1 Then
       dbms_output.put_line('l_msg_data '|| l_msg_data);
    elsif l_msg_count > 1 Then
       loop
          p_count := p_count + 1;
          l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
          if l_msg_data is NULL Then
             exit;
          end if;
          dbms_output.put_line('Message ' || p_count ||'. '||l_msg_data);
       end loop;
    end if;
END;
/


--set serveroutput on size 1000000

DECLARE
   l_return_status VARCHAR2(1);
   l_msg_count NUMBER;
   l_msg_data VARCHAR2(240);
   l_cash_receipt_id NUMBER;
   p_count number := 0;
BEGIN
    -- 1) Set the applications context
    fnd_global.apps_initialize(1011902, 50559, 222,0);
    mo_global.init('AR');
    mo_global.set_policy_context('S','204');

   AR_RECEIPT_API_PUB.reverse
   ( p_api_version => 1.0,
     p_init_msg_list => FND_API.G_TRUE,
     p_commit => FND_API.G_TRUE,
     p_validation_level => FND_API.G_VALID_LEVEL_FULL,
     x_return_status => l_return_status,
     x_msg_count => l_msg_count,
     x_msg_data => l_msg_data,
     p_cash_receipt_id => 83993,
     p_reversal_category_code => 'REV',
     p_reversal_reason_code => 'WRONG INVOICE');

    -- 3) Review the API output
    dbms_output.put_line('Status ' || l_return_status);
    dbms_output.put_line('Message count ' || l_msg_count);

    if l_msg_count = 1 Then
       dbms_output.put_line('l_msg_data '|| l_msg_data);
    elsif l_msg_count > 1 Then
       loop
          p_count := p_count + 1;
          l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
          if l_msg_data is NULL Then
             exit;
          end if;
          dbms_output.put_line('Message ' || p_count ||'. '||l_msg_data);
       end loop;
    end if;
END;
/

--set serveroutput on size 1000000

DECLARE
   l_return_status VARCHAR2(1);
   l_msg_count NUMBER;
   l_msg_data VARCHAR2(240);
   l_cash_receipt_id NUMBER;
   p_count number := 0;
   l_application_ref_type ar_receivable_applications.application_ref_type%TYPE;
   l_application_ref_id ar_receivable_applications.application_ref_id%TYPE;
   l_application_ref_num ar_receivable_applications.application_ref_num%TYPE;
   l_secondary_application_ref_id ar_receivable_applications.secondary_application_ref_id%TYPE;
   l_receivable_application_id ar_receivable_applications.receivable_application_id%TYPE;

BEGIN
    -- 1) Set the applications context
    fnd_global.apps_initialize(1011902, 50559, 222,0);
    mo_global.init('AR');
    mo_global.set_policy_context('S','204');

   AR_RECEIPT_API_PUB.ACTIVITY_APPLICATION
   ( p_api_version => 1.0,
     p_init_msg_list => FND_API.G_TRUE,
     p_commit => FND_API.G_TRUE,
     p_validation_level => FND_API.G_VALID_LEVEL_FULL,
     x_return_status => l_return_status,
     x_msg_count => l_msg_count,
     x_msg_data => l_msg_data,
     p_cash_receipt_id => 83994,
     p_applied_payment_schedule_id => -3,
     p_receivables_trx_id => 2536,
     p_receivable_application_id => l_receivable_application_id
     p_application_ref_type => l_application_ref_type,
     p_application_ref_id => l_application_ref_id,
     p_application_ref_num => l_application_ref_num,
     p_secondary_application_ref_id => l_secondary_application_ref_id);

    -- 3) Review the API output
    dbms_output.put_line('Status ' || l_return_status);
    dbms_output.put_line('Message count ' || l_msg_count);
    dbms_output.put_line('Application ID ' || l_receivable_application_id;

    if l_msg_count = 1 Then
       dbms_output.put_line('l_msg_data '|| l_msg_data);
    elsif l_msg_count > 1 Then
       loop
          p_count := p_count + 1;
          l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
          if l_msg_data is NULL Then
             exit;
          end if;
          dbms_output.put_line('Message ' || p_count ||'. '||l_msg_data);
       end loop;
    end if;
END;
/


--set serveroutput on size 1000000

DECLARE
   l_return_status VARCHAR2(1);
   l_msg_count NUMBER;
   l_msg_data VARCHAR2(240);
   l_cash_receipt_id NUMBER;
   p_count number := 0;
   l_receipt_number varchar(10);

BEGIN
    -- 1) Set the applications context
    fnd_global.apps_initialize(1011902, 50559, 222,0);
    mo_global.init('AR');
    mo_global.set_policy_context('S','204');

   l_receipt_number := 'misc-api1';

   AR_RECEIPT_API_PUB.CREATE_MISC
   ( p_api_version => 1.0,
     p_init_msg_list => FND_API.G_TRUE,
     p_commit => FND_API.G_TRUE,
     p_validation_level => FND_API.G_VALID_LEVEL_FULL,
     x_return_status => l_return_status,
     x_msg_count => l_msg_count,
     x_msg_data => l_msg_data,
     p_amount => 4560.00,
     p_receipt_date => '22-JUL-2011',
     p_gl_date => '22-JUL-2011',
     p_receipt_method_id => 1001,
     p_activity => 'Interest Income',
     p_misc_receipt_id => l_cash_receipt_id ,
     p_receipt_number => l_receipt_number);

    -- 3) Review the API output
    dbms_output.put_line('Status ' || l_return_status);
    dbms_output.put_line('Message count ' || l_msg_count);
    dbms_output.put_line('Cash Receipt ID ' || l_cash_receipt_id );

    if l_msg_count = 1 Then
       dbms_output.put_line('l_msg_data '|| l_msg_data);
    elsif l_msg_count > 1 Then
       loop
          p_count := p_count + 1;
          l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
          if l_msg_data is NULL Then
             exit;
          end if;
          dbms_output.put_line('Message ' || p_count ||'. '||l_msg_data);
       end loop;
    end if;
END;
/

  --  set serveroutput on size 1000000

    DECLARE
       l_return_status VARCHAR2(1);
       l_msg_count NUMBER;
       l_msg_data VARCHAR2(240);
       p_count NUMBER;
       x_receivable_application_id NUMBER;
       x_application_ref_id NUMBER;
       x_application_ref_num VARCHAR2(30);
       x_secondary_application_ref_id NUMBER;

    BEGIN
        -- 1) Set the applications context
        fnd_global.apps_initialize(1011902, 50559, 222,0);
        mo_global.init('AR');
        mo_global.set_policy_context('S','204');
       -- 2) Call the API
       AR_RECEIPT_API_PUB.apply_other_account
       ( p_api_version => 1.0,
         p_init_msg_list => FND_API.G_TRUE,
         p_commit => FND_API.G_TRUE,
         p_validation_level => FND_API.G_VALID_LEVEL_FULL,
         x_return_status => l_return_status,
         x_msg_count => l_msg_count,
         x_msg_data => l_msg_data,
         p_receivable_application_id => x_receivable_application_id,
         p_cash_receipt_id => 83997,
         p_receivables_trx_id => 1747,
         p_applied_payment_schedule_id => -4,
         p_amount_applied => 500.00,
         p_application_ref_id => x_application_ref_id,
         p_application_ref_num => x_application_ref_num,
         p_secondary_application_ref_id => x_secondary_application_ref_id,
         p_called_from => null);

        -- 3) Review the API output
        dbms_output.put_line('Status ' || l_return_status);
        dbms_output.put_line('Message count ' || l_msg_count);
        dbms_output.put_line('Receivable Application Id ' || x_receivable_application_id);

        if l_msg_count = 1 Then
           dbms_output.put_line('l_msg_data '|| l_msg_data);
        elsif l_msg_count > 1 Then
           loop
              p_count := p_count + 1;
              l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
              if l_msg_data is NULL Then
                 exit;
              end if;
              dbms_output.put_line('Message ' || p_count ||'. '||l_msg_data);
           end loop;
        end if;
    END;
    /

   -- Note that several parameters are similar to those 


--set serveroutput on size 1000000

DECLARE
   l_return_status VARCHAR2(1);
   l_msg_count NUMBER;
   l_msg_data VARCHAR2(240);
   p_count NUMBER;
   x_receivable_application_id NUMBER;
   x_application_ref_id NUMBER;
   x_application_ref_num VARCHAR2(30);
   x_secondary_application_ref_id NUMBER;

BEGIN
    -- 1) Set the applications context
    fnd_global.apps_initialize(1011902, 50559, 222,0);
    mo_global.init('AR');
    mo_global.set_policy_context('S','204');
   -- 2) Call the API
   AR_RECEIPT_API_PUB.apply_other_account
   ( p_api_version => 1.0,
     p_init_msg_list => FND_API.G_TRUE,
     p_commit => FND_API.G_TRUE,
     p_validation_level => FND_API.G_VALID_LEVEL_FULL,
     x_return_status => l_return_status,
     x_msg_count => l_msg_count,
     x_msg_data => l_msg_data,
     p_receivable_application_id => x_receivable_application_id,
     p_cash_receipt_id => 83997,
     p_receivables_trx_id => 1747,
     p_applied_payment_schedule_id => -4,
     p_amount_applied => 500.00,
     p_application_ref_id => x_application_ref_id,
     p_application_ref_num => x_application_ref_num,
     p_secondary_application_ref_id => x_secondary_application_ref_id,
     p_called_from => null);

    -- 3) Review the API output
    dbms_output.put_line('Status ' || l_return_status);
    dbms_output.put_line('Message count ' || l_msg_count);
    dbms_output.put_line('Receivable Application Id ' || x_receivable_application_id);

    if l_msg_count = 1 Then
       dbms_output.put_line('l_msg_data '|| l_msg_data);
    elsif l_msg_count > 1 Then
       loop
          p_count := p_count + 1;
          l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
          if l_msg_data is NULL Then
             exit;
          end if;
          dbms_output.put_line('Message ' || p_count ||'. '||l_msg_data);
       end loop;
    end if;
END;
/


--set serveroutput on size 1000000

DECLARE
   l_return_status VARCHAR2(1);
   l_msg_count NUMBER;
   l_msg_data VARCHAR2(240);
   p_count number := 0;

BEGIN
    -- 1) Set the applications context
    fnd_global.apps_initialize(1011902, 50559, 222,0);
    mo_global.init('AR');
    mo_global.set_policy_context('S','204');

   AR_RECEIPT_API_PUB.UNAPPLY_OTHER_ACCOUNT
   ( p_api_version => 1.0,
     p_init_msg_list => FND_API.G_TRUE,
     p_commit => FND_API.G_TRUE,
     p_validation_level => FND_API.G_VALID_LEVEL_FULL,
     x_return_status => l_return_status,
     x_msg_count => l_msg_count,
     x_msg_data => l_msg_data,
     p_cash_receipt_id => 83997,
     p_reversal_gl_date => '26-SEP-2011',
     p_receivable_application_id => 285776,
     p_cancel_claim_flag => 'Y',
     p_called_from => NULL);


    -- 3) Review the API output
    dbms_output.put_line('Status ' || l_return_status);
    dbms_output.put_line('Message count ' || l_msg_count);

    if l_msg_count = 1 Then
       dbms_output.put_line('l_msg_data '|| l_msg_data);
    elsif l_msg_count > 1 Then
       loop
          p_count := p_count + 1;
          l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
          if l_msg_data is NULL Then
             exit;
          end if;
          dbms_output.put_line('Message ' || p_count ||'. '||l_msg_data);
       end loop;
    end if;
END;
/

--set serveroutput on size 1000000

DECLARE
    l_return_status VARCHAR2(1);
    l_msg_count NUMBER;
    l_msg_data VARCHAR2(240);
    p_count number := 0;
    l_application_ref_num VARCHAR2(30);
    l_receivable_application_id NUMBER;
    l_applied_rec_app_id NUMBER;
    l_acctd_amount_applied_from NUMBER;
    l_acctd_amount_applied_to VARCHAR2(30);
BEGIN
    -- 1) Set the applications context
    fnd_global.apps_initialize(1011902, 50559, 222,0);
    mo_global.init('AR');
    mo_global.set_policy_context('S','204');

   AR_RECEIPT_API_PUB.APPLY_OPEN_RECEIPT
   ( p_api_version => 1.0,
     p_init_msg_list => FND_API.G_TRUE,
     p_commit => FND_API.G_TRUE,
     p_validation_level => FND_API.G_VALID_LEVEL_FULL,
     x_return_status => l_return_status,
     x_msg_count => l_msg_count,
     x_msg_data => l_msg_data,
     p_amount_applied => -20.00,
     p_receipt_number => 'rct-api11',
     p_open_receipt_number => 'rct-api10',
     x_application_ref_num => l_application_ref_num,
     x_receivable_application_id => l_receivable_application_id,
     x_applied_rec_app_id => l_applied_rec_app_id,
     x_acctd_amount_applied_from => l_acctd_amount_applied_from,
     x_acctd_amount_applied_to => l_acctd_amount_applied_to);


    -- 3) Review the API output
    dbms_output.put_line('Status ' || l_return_status);
    dbms_output.put_line('Message count ' || l_msg_count);
    dbms_output.put_line('Receivable Application Id ' || l_receivable_application_id);

    if l_msg_count = 1 Then
       dbms_output.put_line('l_msg_data '|| l_msg_data);
    elsif l_msg_count > 1 Then
       loop
          p_count := p_count + 1;
          l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
          if l_msg_data is NULL Then
             exit;
          end if;
          dbms_output.put_line('Message ' || p_count ||'. '||l_msg_data);
       end loop;
    end if;
END;
/


--set serveroutput on size 1000000

DECLARE
   l_return_status VARCHAR2(1);
   l_msg_count NUMBER;
   l_msg_data VARCHAR2(240);
   l_cash_receipt_id NUMBER;
   p_count number := 0;

BEGIN
    -- 1) Set the applications context
    fnd_global.apps_initialize(1011902, 50559, 222,0);
    mo_global.init('AR');
    mo_global.set_policy_context('S','204');

   AR_RECEIPT_API_PUB.CREATE_APPLY_ON_ACC
   ( p_api_version => 1.0,
     p_init_msg_list => FND_API.G_TRUE,
     p_commit => FND_API.G_TRUE,
     p_validation_level => FND_API.G_VALID_LEVEL_FULL,
     x_return_status => l_return_status,
     x_msg_count => l_msg_count,
     x_msg_data => l_msg_data,
     p_amount => 555.00,
     p_receipt_number => 'rct-api12',
     p_receipt_date => '22-JUL-2011',
     p_gl_date => '22-JUL-2011',
     p_customer_number => 1007,
     p_receipt_method_id => 1001,
     p_cr_id => l_cash_receipt_id );

    -- 3) Review the API output
    dbms_output.put_line('Status ' || l_return_status);
    dbms_output.put_line('Message count ' || l_msg_count);
    dbms_output.put_line('Cash Receipt Id ' || l_cash_receipt_id);

    if l_msg_count = 1 Then
       dbms_output.put_line('l_msg_data '|| l_msg_data);
    elsif l_msg_count > 1 Then
       loop
          p_count := p_count + 1;
          l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
          if l_msg_data is NULL Then
             exit;
          end if;
          dbms_output.put_line('Message ' || p_count ||'. '||l_msg_data);
       end loop;
    end if;
END;
/


--set serveroutput on size 1000000

DECLARE
   cursor c1 is
   select line.customer_trx_line_id,
          line.line_number,
          line.extended_amount line_amount,
          tax.extended_amount tax_amount
   from ra_customer_trx_lines line,
       (select link_to_cust_trx_line_id,
        sum(nvl(extended_amount,0)) extended_amount
        from ra_customer_trx_lines
        where customer_trx_id = 528349
        and line_type = 'TAX'
        group by link_to_cust_trx_line_id) tax
   where line.customer_trx_id = 528349
   and line.line_type = 'LINE'
   and line.customer_trx_line_id = tax.LINK_TO_CUST_TRX_LINE_ID(+);

   l_llca_trx_lines_tbl ar_receipt_api_pub.llca_trx_lines_tbl_type;
   l_return_status VARCHAR2(1);
   l_msg_count NUMBER;
   l_msg_data VARCHAR2(240);
   p_count NUMBER := 0;
   l_cnt NUMBER := 0;


BEGIN
    -- 1) Set the applications context
    fnd_global.apps_initialize(1011902, 50559, 222,0);
    mo_global.init('AR');
    mo_global.set_policy_context('S','204');

   -- 2)  define the amounts to apply, for illustration purposes we will apply 10% of the original amounts
   for i in c1 loop
      l_cnt := l_cnt + 1;

      l_llca_trx_lines_tbl(l_cnt).customer_trx_line_id := i.customer_trx_line_id ;
      l_llca_trx_lines_tbl(l_cnt).line_amount := i.line_amount * .10;
      l_llca_trx_lines_tbl(l_cnt).amount_applied := i.line_amount * .10;
      l_llca_trx_lines_tbl(l_cnt).tax_amount := i.tax_amount *.10;
   end loop;

   AR_RECEIPT_API_PUB.APPLY_IN_DETAIL
   ( p_api_version => 1.0,
     p_init_msg_list => FND_API.G_TRUE,
     p_commit => FND_API.G_TRUE,
     p_validation_level => FND_API.G_VALID_LEVEL_FULL,
     x_return_status => l_return_status,
     x_msg_count => l_msg_count,
     x_msg_data => l_msg_data,
     p_cash_receipt_id => 84003,
     p_customer_trx_id => 528349,
     p_llca_type => 'L',
     p_org_id => 204,
     p_llca_trx_lines_tbl => l_llca_trx_lines_tbl );
      

    if l_msg_count = 1 Then
       dbms_output.put_line('l_msg_data '|| l_msg_data);
    elsif l_msg_count > 1 Then
       loop
          p_count := p_count + 1;
          l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
          if l_msg_data is NULL Then
             exit;
          end if;
          dbms_output.put_line('Message ' || p_count ||'. '||l_msg_data);
       end loop;
    end if;
END;
/


--set serveroutput on size 1000000

DECLARE
   l_count                       NUMBER;
   l_return_status VARCHAR2(1);
   l_msg_count NUMBER;
   l_msg_data VARCHAR2(240);
   l_status VARCHAR2(1);
   p_count number := 0;
   
BEGIN
    fnd_global.apps_initialize(1011902, 50559, 222,0);
    mo_global.init('AR');
    mo_global.set_policy_context('S','204');
    
   AR_RECEIPT_UPDATE_API_PUB.UPDATE_RECEIPT_UNID_TO_UNAPP
          (p_api_version                    => 1.0,
           p_init_msg_list                  => FND_API.G_TRUE,
           p_commit                         => FND_API.G_TRUE,
           p_validation_level               => FND_API.G_VALID_LEVEL_FULL,
           x_return_status                  => l_return_status,
           x_msg_count                      => l_msg_count,
           x_msg_data                       => l_msg_data,
           p_cash_receipt_id                => 177018,
           p_pay_from_customer              => 1290,
           p_comments                       => 'TEST RECEIPT API',
           x_status                         => l_status
          );
   DBMS_OUTPUT.put_line ('X_RETURN_STATUS = ' || l_return_status);
   DBMS_OUTPUT.put_line ('X_MSG_COUNT = ' || l_msg_count);
   DBMS_OUTPUT.put_line ('X_MSG_DATA = ' || l_msg_data);
   DBMS_OUTPUT.put_line ('X_STATUS = ' || l_status);

    if l_msg_count = 1 Then
       dbms_output.put_line('l_msg_data '|| l_msg_data);
    elsif l_msg_count > 1 Then
       loop
          p_count := p_count + 1;
          l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
          if l_msg_data is NULL Then
             exit;
          end if;
          dbms_output.put_line('Message ' || p_count ||'. '||l_msg_data);
       end loop;
    end if;
    
END;

  

猜你喜欢

转载自www.cnblogs.com/jenrry/p/10020712.html
今日推荐