zoukankan      html  css  js  c++  java
  • Oracle EBS AP 创建贷项通知单并核销到相应发票

    --1.0 生成与发票一样的贷项通知单 created by jenrry 20170423
    DECLARE 
      L_CUSTOMER_TRX_ID      NUMBER;
      L_INVOICE_NUMBER       VARCHAR2(30);
      
      L_BATCH_SOURCE_REC     AR_INVOICE_API_PUB.BATCH_SOURCE_REC_TYPE;
      L_TRX_HEADER_TBL       AR_INVOICE_API_PUB.TRX_HEADER_TBL_TYPE;
      L_TRX_LINES_TBL        AR_INVOICE_API_PUB.TRX_LINE_TBL_TYPE;
      L_TRX_DIST_TBL         AR_INVOICE_API_PUB.TRX_DIST_TBL_TYPE;
      L_TRX_SALESCREDITS_TBL AR_INVOICE_API_PUB.TRX_SALESCREDITS_TBL_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 => 20005);
      mo_global.init('AR');
      SELECT ra_customer_trx_s.nextval INTO I FROM DUAL;
      
      mo_global.set_policy_context(p_access_mode => 'S', p_org_id => 142);
      L_BATCH_SOURCE_REC.BATCH_SOURCE_ID      := 1001; --事务处理来源ID 
      L_TRX_HEADER_TBL(1).TRX_HEADER_ID       := I;
      L_TRX_HEADER_TBL(1).TRX_DATE            := fnd_conc_date.string_to_date('2017-03-31');
      L_TRX_HEADER_TBL(1).GL_DATE             := fnd_conc_date.string_to_date('2017-03-31');
      L_TRX_HEADER_TBL(1).TRX_CURRENCY        := 'CNY';
      --L_TRX_HEADER_TBL(1).EXCHANGE_RATE_TYPE  := 'Corporate';
      --L_TRX_HEADER_TBL(1).exchange_date       := SYSDATE+1;
      --L_TRX_HEADER_TBL(1).EXCHANGE_RATE       := 7;
      L_TRX_HEADER_TBL(1).trx_number            := '20170425002'; --创建的贷项通知单的trx_number
      L_TRX_HEADER_TBL(1).BILL_TO_CUSTOMER_ID := 1040; --客户
      L_TRX_HEADER_TBL(1).CUST_TRX_TYPE_ID    := 1001; --创建贷项通知单的类型
      L_TRX_HEADER_TBL(1).TERM_ID             := NULL;
      
      L_TRX_LINES_TBL(1).TRX_HEADER_ID        := I;
      L_TRX_LINES_TBL(1).TRX_LINE_ID          := ra_customer_trx_lines_s.nextval;
      L_TRX_LINES_TBL(1).LINE_NUMBER          := 1; --行
      L_TRX_LINES_TBL(1).DESCRIPTION          := '从高级全球公司间系统导入的发票';--行项目上的摘要
      L_TRX_LINES_TBL(1).QUANTITY_INVOICED    := 11; --开票数量
      L_TRX_LINES_TBL(1).UNIT_SELLING_PRICE   := -11; --开票单单价
      L_TRX_LINES_TBL(1).LINE_TYPE            := 'LINE';
      
      L_TRX_DIST_TBL(1).TRX_DIST_ID           := ra_cust_trx_line_gl_dist_s.nextval;
      L_TRX_DIST_TBL(1).TRX_HEADER_ID         := I;
      L_TRX_DIST_TBL(1).TRX_LINE_ID           := NULL; --账户类别=“应收账款”时,分配行上不能有TRX_LINE_ID
      L_TRX_DIST_TBL(1).ACCOUNT_CLASS         := 'REV';
      L_TRX_DIST_TBL(1).AMOUNT                := NULL;
      L_TRX_DIST_TBL(1).ACCTD_AMOUNT          := NULL;
      L_TRX_DIST_TBL(1).PERCENT               := 100; --指百分之百的核销
      L_TRX_DIST_TBL(1).CODE_COMBINATION_ID   := 3010; --应收账款的CCID
      
       L_TRX_DIST_TBL(2).TRX_DIST_ID           := ra_cust_trx_line_gl_dist_s.nextval;
      L_TRX_DIST_TBL(2).TRX_HEADER_ID         := I;
      --L_TRX_DIST_TBL(1).TRX_LINE_ID           := 100;
      L_TRX_DIST_TBL(2).ACCOUNT_CLASS         := 'REC';
      L_TRX_DIST_TBL(2).AMOUNT                := NULL;
      L_TRX_DIST_TBL(2).ACCTD_AMOUNT          := NULL;
      L_TRX_DIST_TBL(2).PERCENT               := 100;
      L_TRX_DIST_TBL(2).CODE_COMBINATION_ID   := 3004;--收入的CCID
      
      -- mo_global.set_policy_context('S', fnd_global.org_id);  --R12要单OU
    
      AR_INVOICE_API_PUB.CREATE_SINGLE_INVOICE(
                                    P_API_VERSION          => 1.0
                                   ,P_INIT_MSG_LIST        => 'F'
                                   ,P_COMMIT               => 'F'
                                   ,P_BATCH_SOURCE_REC     => L_BATCH_SOURCE_REC
                                   ,P_TRX_HEADER_TBL       => L_TRX_HEADER_TBL
                                   ,P_TRX_LINES_TBL        => L_TRX_LINES_TBL
                                   ,P_TRX_DIST_TBL         => L_TRX_DIST_TBL
                                   ,P_TRX_SALESCREDITS_TBL => L_TRX_SALESCREDITS_TBL
                                   ,X_CUSTOMER_TRX_ID      => L_CUSTOMER_TRX_ID
                                   ,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_ERROR OR L_RETURN_STATUS = FND_API.G_RET_STS_UNEXP_ERROR THEN
        DBMS_OUTPUT.PUT_LINE('UNEXPECTED ERRORS FOUND!');
      /*ELSE
          DBMS_OUTPUT.PUT_LINE(L_CUSTOMER_TRX_ID);
          
          SELECT TRX_NUMBER 
          INTO L_INVOICE_NUMBER
          FROM RA_CUSTOMER_TRX_ALL
          WHERE CUSTOMER_TRX_ID = L_CUSTOMER_TRX_ID;
          DBMS_OUTPUT.PUT_LINE(L_INVOICE_NUMBER);*/
      END IF;
      DBMS_OUTPUT.PUT_LINE(L_RETURN_STATUS);
      
      FOR l_r IN (SELECT * FROM ar_trx_errors_gt)
      LOOP
        DBMS_OUTPUT.PUT_LINE(l_r.error_message);
      END LOOP;
    END;
    /
    --2.0 贷项通知单和发票的核销
    
    DECLARE
      l_cm_app_rec                ar_cm_api_pub.cm_app_rec_type;
      l_out_rec_application_id    NUMBER;
      l_acctd_amount_applied_from NUMBER;
      l_acctd_amount_applied_to   NUMBER;
      l_return_status varchar2(1);
      l_msg_count number;
      l_msg_data varchar2(1000);
    BEGIN
      FND_GLOBAL.APPS_INITIALIZE(USER_ID      => 1111,
                                 RESP_ID      => 50737,
                                 RESP_APPL_ID => 20005);
      mo_global.init('AR');
      mo_global.set_policy_context(p_access_mode => 'S', p_org_id => 142);
    
      l_cm_app_rec.cm_customer_trx_id  := 3019;--贷项通知单customer_trx_id
      l_cm_app_rec.inv_customer_trx_id := 1001;--发票customer_trx_id
      l_cm_app_rec.amount_applied := 121;--金额
    
      --inv_line_number ra_customer_trx_lines.line_number%TYPE
      ar_cm_api_pub.apply_on_account(p_api_version               => 1,
                                     p_init_msg_list             => fnd_api.g_true,
                                     p_commit                    => fnd_api.g_false,
                                     p_cm_app_rec                => l_cm_app_rec,
                                     x_return_status             => l_return_status,
                                     x_msg_count                 => l_msg_count,
                                     x_msg_data                  => l_msg_data,
                                     x_out_rec_application_id    => l_out_rec_application_id,
                                     x_acctd_amount_applied_from => l_acctd_amount_applied_from,
                                     x_acctd_amount_applied_to   => l_acctd_amount_applied_to,
                                     p_org_id                    => 142);
      dbms_output.put_line('l_return_status:' || l_return_status);
      dbms_output.put_line('l_msg_count:' || l_msg_count);
      dbms_output.put_line('l_out_rec_application_id:' || l_out_rec_application_id);
    END;
    

      

    土豆君
  • 相关阅读:
    30分钟掌握ES6/ES2015的核心内容(上)
    rem 响应式用法
    angular框架MVVM
    vue3 + vite + elmentui
    vue3 + vite + elmentui
    vue3 + vite 开发新项目
    滚动条滚动加一个进度条
    jquery 截取页面 url ,切换新的url 跳转
    h5,css3
    前端模板预编译技术
  • 原文地址:https://www.cnblogs.com/jenrry/p/10020721.html
Copyright © 2011-2022 走看看