您的位置:首页 > 其它

EBS采购订单创建发票

2017-09-08 00:10 615 查看

--初始化

/*

begin

  fnd_global.apps_initialize(user_id      => 8162,

                             resp_id      => 50692,

                             resp_appl_id => 20003);

  mo_global.init('M');

end;

*/

--注意,以下产生的发票会产生差异,需要手动调整发票,然后重新手工验证发票即可验证

declare

    l_api_name       CONSTANT VARCHAR2(30) := 'insert_ap_tmp';

    l_savepoint_name CONSTANT VARCHAR2(30) := '';

 

    l_iface_rec         ap_invoices_interface%ROWTYPE;

    l_iface_lines_rec   ap_invoice_lines_interface%ROWTYPE;

    l_ip_invoice_amount NUMBER;

    l_ip_tax_amount     NUMBER;

    l_stmt_amount       NUMBER;

    l_tax_code          VARCHAR2(30);

    l_line_num          NUMBER;

    l_vendor_site_id    NUMBER;

 

    l_ccid      NUMBER;

    l_seg24     VARCHAR2(100) := '/0/';

    l_seg678910 VARCHAR2(100) := '/0/0/0/0/0';

   

    l_wait       BOOLEAN;

    x_phase      VARCHAR2(80);

    x_status     VARCHAR2(80);

    x_dev_phase  VARCHAR2(80);

    x_dev_status VARCHAR2(80);

    x_message    VARCHAR2(80); 

    x_group_id number; 

    x_request_id number;

 

  BEGIN

 

 

    x_group_id := NULL;

 

   

      IF x_group_id IS NULL THEN

        x_group_id := cux_ap_statement_imp_group_s.nextval;

      END IF;

      l_vendor_site_id := NULL;

      l_iface_rec      := NULL;

   

      l_iface_rec.last_updated_by   := 8162;

      l_iface_rec.creation_date     := SYSDATE;

      l_iface_rec.created_by        := 8162;

      l_iface_rec.last_update_login := -1;

      l_iface_rec.last_update_date  := SYSDATE;

   

      l_iface_rec.invoice_id := ap_invoices_interface_s.nextval;

      l_iface_rec.group_id   := x_group_id;

      l_iface_rec.org_id     := 295;--c_invc.org_id;

      l_iface_rec.source     := 'INVOICE GATEWAY';

      l_iface_rec.attribute6 := 'ZP';--ZP增值税专票--QT其他票据--PP增值税普票--c_invc.vat_invoice_type; ---发票类型

   

      select 'zsxcdf1234'

        INTO l_iface_rec.invoice_num

      from dual;

   

      select 0.1,0.01--含税金额和不含税金额

        INTO l_ip_invoice_amount, l_ip_tax_amount

      from dual;

   

      select 0.11--对账单金额

        INTO l_stmt_amount

      from dual;

   

      select 0.11

        INTO l_iface_rec.invoice_amount

      from dual;

   

/*      fnd_file.put_line(fnd_file.log,

                        'l_iface_rec.invoice_amount:' ||

                        l_iface_rec.invoice_amount);*/

   

      l_iface_rec.invoice_type_lookup_code := 'STANDARD';--STANDARD标准、CREDIT贷项通知单、MIXED混合发票

      select 598395--供应商地点ID

        INTO l_vendor_site_id

      from dual;

   

      SELECT 326957,'8707','供应商名称',598395,'材料','CNY',226875,'E-Bank'

        INTO l_iface_rec.vendor_id,

             l_iface_rec.vendor_num,

             l_iface_rec.vendor_name,

             l_iface_rec.vendor_site_id,

             l_iface_rec.vendor_site_code,

             l_iface_rec.invoice_currency_code,

             l_iface_rec.accts_pay_code_combination_id,

             l_iface_rec.payment_method_code

   

     FROM DUAL;

     

/*

      SELECT 326957,

             asv.segment1 vendor_num,

             asv.vendor_name,

             asvs.vendor_site_id,

             asvs.vendor_site_code,

             'CNY',

             asvs.accts_pay_code_combination_id,

             cux_ap_stmt_imp_invoice_pkg.get_payment_method(p_org_id        => 295,

                                                            p_party_site_id => asvs.party_site_id,

                                                            p_party_id      => asv.party_id) payment_method_lookup_code

        FROM ap_suppliers          asv,

             ap_supplier_sites_all     asvs

       WHERE 1 = 1

         AND asv.vendor_id = 326957

         AND asvs.vendor_id = asv.vendor_id

         AND asv.end_date_active IS NULL

         AND asvs.vendor_site_id = 598395

         AND rownum = 1;

*/     

   

      SELECT TO_DATE('2017-09-07','YYYY-MM-DD'),TO_DATE('2017-09-07','YYYY-MM-DD'),

             TO_DATE('2017-09-07','YYYY-MM-DD'),1,'User','','测试','VAT17'

        INTO l_iface_rec.invoice_date,

             l_iface_rec.gl_date,

             l_iface_rec.exchange_date,

             l_iface_rec.exchange_rate,

             l_iface_rec.exchange_rate_type,

             l_iface_rec.attribute1,

             l_iface_rec.description,

             l_tax_code

      from dual;

   

      SELECT t.term_id INTO l_iface_rec.terms_id FROM ap_terms_vl t WHERE t.name = 'immediately';

       

      l_iface_rec.terms_date
b781
:= l_iface_rec.invoice_date;

      INSERT INTO ap_invoices_interface VALUES l_iface_rec;

   

      l_line_num := 0;

/*      FOR c_line IN csr_line(c_invc.org_id,

                             p_statement_batch_id => c_invc.statement_batch_id) LOOP*/

     

        l_line_num                              := l_line_num + 1;

        l_iface_lines_rec                       := NULL;

        l_iface_lines_rec.invoice_line_id       := ap_invoice_lines_interface_s.nextval;

        l_iface_lines_rec.invoice_id            := l_iface_rec.invoice_id;

        l_iface_lines_rec.org_id                := 295;--c_invc.org_id;

        l_iface_lines_rec.accounting_date       := l_iface_rec.gl_date;

        l_iface_lines_rec.line_number           := l_line_num;

        l_iface_lines_rec.line_type_lookup_code := 'ITEM';

        l_iface_lines_rec.amount                := 0.11;--c_line.amount;

        l_iface_lines_rec.po_header_id          := 529302;--c_line.po_header_id;

        l_iface_lines_rec.po_line_id            := 885818;--c_line.po_line_id;

        l_iface_lines_rec.po_line_location_id   := 1030063;--c_line.po_line_location_id;

        l_iface_lines_rec.po_distribution_id    := 779119;--c_line.po_distribution_id;

        l_iface_lines_rec.po_release_id         := null;--c_line.po_release_id;

/*        IF c_line.quantity > 0 THEN*/

          l_iface_lines_rec.rcv_transaction_id := 1266942;--c_line.rcv_transaction_id;

/*        ELSE

          l_iface_lines_rec.rcv_transaction_id := c_line.parent_transaction_id;

        END IF;*/

        l_iface_lines_rec.receipt_number      := '18';--c_line.receipt_num;

        l_iface_lines_rec.po_shipment_num     := '1';--c_line.shipment_num;

        l_iface_lines_rec.po_line_number      := '1';--c_line.po_line_num;

        l_iface_lines_rec.receipt_line_number := '1';--c_line.line_num;

        l_iface_lines_rec.quantity_invoiced   := 0.11;--c_line.quantity;

        l_iface_lines_rec.unit_price          := 1;--c_line.po_unit_price;

        l_iface_lines_rec.description         := '胶条(EPDM)黑色压块式胶条';--c_line.item_description;

        l_iface_lines_rec.attribute1          := '123';--c_line.statement_id;

        l_iface_lines_rec.attribute2          := '456';--c_line.statement_line_id;

        l_iface_lines_rec.attribute5          := '789';--c_line.attribute4; 

        l_iface_lines_rec.inventory_item_id   := 231102;--c_line.item_id;

        l_iface_lines_rec.prorate_across_flag := 'N';

     

        INSERT INTO ap_invoice_lines_interface VALUES l_iface_lines_rec;

     

     

        l_line_num                              := l_line_num + 1;

        l_iface_lines_rec                       := NULL;

        l_iface_lines_rec.invoice_line_id       := ap_invoice_lines_interface_s.nextval;

        l_iface_lines_rec.invoice_id            := l_iface_rec.invoice_id;

        l_iface_lines_rec.org_id                := 295;--c_invc.org_id;

        l_iface_lines_rec.accounting_date       := l_iface_rec.gl_date;

        l_iface_lines_rec.line_number           := l_line_num;

        l_iface_lines_rec.line_type_lookup_code := 'ITEM';

        l_iface_lines_rec.attribute1            := '123';--c_line.statement_id;

        l_iface_lines_rec.attribute2            := '456';--c_line.statement_line_id;

        l_iface_lines_rec.amount                := 0.01;--c_line.tax_amount;

        l_iface_lines_rec.description           := '增值税 ' || l_tax_code;

     

/*        IF c_line.new_tax_flag_code = 'Y' THEN

        

        

          l_ccid := cux_gl_utl.get_gl_coa_ccid(c_line.chart_of_accounts_id,

                                               c_line.seg_comp || l_seg24 ||

                                               g_vat_account_code_y ||

                                               l_seg24 || c_line.project_num ||

                                               l_seg678910);

       

        END IF;*/

     

      --  l_iface_lines_rec.dist_code_combination_id := l_ccid;

        l_iface_lines_rec.prorate_across_flag      := 'N';

     

        INSERT INTO ap_invoice_lines_interface VALUES l_iface_lines_rec;

     

 

    x_request_id := fnd_request.submit_request(application => 'SQLAP',

                                               program     => 'APXIIMPT',

                                               description => NULL,

                                               start_time  => NULL,

                                               sub_request => NULL,

                                               argument1   => NULL,

                                               argument2   => 'INVOICE GATEWAY', --'MANUAL INVOICE ENTRY',

                                               argument3   => x_group_id,

                                               argument4   => 'N/A',

                                               argument5   => NULL,

                                               argument6   => NULL,

                                               argument7   => NULL,

                                               argument8   => 'Y',

                                               argument9   => 'Y',

                                               argument10  => 'Y',

                                               argument11  => 'N');

                                              

    commit work;                                              

                                              

                                              

                                              

                                              

    l_wait := fnd_concurrent.wait_for_request(request_id => x_request_id,

                                              INTERVAL   => 10,

                                              max_wait   => 600,

                                              phase      => x_phase,

                                              status     => x_status,

                                              dev_phase  => x_dev_phase,

                                              dev_status => x_dev_status,

                                              message    => x_message);    

                                             

    IF (l_wait) THEN

      IF ((x_dev_phase <> 'COMPLETE') OR (x_dev_status <> 'NORMAL')) THEN

        dbms_output.put_line('ERROR1'||to_char(x_request_id)||':'||x_message);

      END IF;

    ELSE

      dbms_output.put_line('ERROR2'||to_char(x_request_id)||':'||x_message);

    END IF;                                                                                       

 

  EXCEPTION

    WHEN OTHERS THEN

      dbms_output.put_line('ERROROTHERS');

  END ;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: