zoukankan      html  css  js  c++  java
  • AR客户对账单(上月欠款)

    create or replace function amountfn
    (
        customernum 
    varchar2,
        startdate   date
    return char is
        v_amount         
    number;
        v_receipt_amount 
    number;
        refundamount     
    number;
        lastdebt         
    number;
    begin
        
    ---------------------------**********得到上月欠款**************-------------------------------
        select sum(nvl(rct.extended_amount_tax, 0)) extended_amount --当前参数日期之前的所有货款
          into v_amount
          
    from (select ctl.customer_trx_line_id,
                       ct.customer_trx_id,
                       ct.initial_customer_trx_id,
                       ct.trx_number,
                       nvl(cux_ar_utl_pkg.get_trx_gl_date(ct.customer_trx_id),
                           ct.trx_date) trx_date,
                       ct.bill_to_customer_id,
                       nvl(ctl.gross_extended_amount, ctl.extended_amount) extended_amount_tax
                  
    from ra_customer_trx_all       ct,
                       ra_customer_trx_lines_all ctl,
                       hz_parties                hpt,
                       hz_cust_accounts          hca,
                       ra_cust_trx_types_all     ctt,
                       mtl_units_of_measure      uom
                 
    where ct.customer_trx_id = ctl.customer_trx_id
                   
    and ct.org_id = ctl.org_id
                   
    and ct.bill_to_customer_id = hca.cust_account_id
                   
    and hca.party_id = hpt.party_id
                   
    and ctt.cust_trx_type_id = ct.cust_trx_type_id
                   
    and ctl.line_type != 'TAX'
                   
    and ctt.type in ('INV''CM')
                   
    and ctt.cust_trx_type_id !=
                       cux_ar_utl_pkg.get_return_commitment_type
                   
    and ctl.uom_code = uom.uom_code(+)) rct
         
    where 1 = 1
           
    and rct.bill_to_customer_id =
               (
    select a.customer_id
                  
    from ar_customers a
                 
    where a.customer_number = customernum)
           
    and rct.trx_date <= trunc(startdate, 'month'- 1;
        dbms_output.put_line(v_amount 
    ||
                             
    ':v_amountv_amountv_amountv_amountv_amount');
        
    select nvl(sum(acr.functional_amount), 0--当前参数日期之前的所有应付款
          into v_receipt_amount
          
    from ar_cash_receipts_v acr
         
    where acr.gl_date <= trunc(startdate, 'month'- 1
           
    and acr.state != 'REVERSED'
           
    and acr.customer_id =
               (
    select a.customer_id
                  
    from ar_customers a
                 
    where a.customer_number = customernum);
        dbms_output.put_line(v_receipt_amount 
    ||
                             
    ':v_receipt_amountv_receipt_amountv_receipt_amount');
        
    select nvl(sum(araa.amount_applied), 0--当前参数日期之前的所有退款
          into refundamount
          
    from ar_cash_receipt_history_all    acrh,
               ar_cash_receipts_all           acr,
               ar_receivable_applications_all araa
         
    where acrh.gl_date <= trunc(startdate, 'month'- 1
           
    and acrh.status != 'REVERSED'
           
    and acr.cash_receipt_id = acrh.cash_receipt_id
           
    and acrh.cash_receipt_history_id = araa.cash_receipt_history_id
           
    and araa.applied_customer_trx_id is null
           
    and acrh.org_id = acr.org_id
           
    and araa.display = 'Y'
           
    and araa.status = 'ACTIVITY'
           
    and acr.pay_from_customer =
               (
    select a.customer_id
                  
    from ar_customers a
                 
    where a.customer_number = customernum);
        dbms_output.put_line(refundamount 
    ||
                             
    ':refundAmountrefundAmountrefundAmount');
        lastdebt :
    = (v_amount - v_receipt_amount + refundamount); --小于当前日期之前的所有货款 减去 小于当前日期之前的所有应付帐款 加 小于当前日期之前的所有退款=上月欠款

        
    return lastdebt;
    end;


             

                成长

           /      |     \

        学习   总结   分享

    QQ交流群:122230156

  • 相关阅读:
    Linux的kobject机制
    利用内核模块添加系统调用
    register_sysctl_table实现内核数据交互
    设计模式17---享元模式
    设计模式16---中介者模式
    java实现PV操作
    设计模式15---桥接模式
    设计模式15---迭代器模式
    设计模式14---组合模式
    设计模式13---备忘录模式
  • 原文地址:https://www.cnblogs.com/benio/p/1923531.html
Copyright © 2011-2022 走看看