首页  ·  知识 ·  生产制造
AR帐龄报表功能实现办法
网友   http://erplife.blog.sohu.com/116419339.html    编辑:德仔   图片来源:网络
公司财务要求实现AR应收款帐龄报表功能 (七时段:Current 0~30到期 31~60到期 61~90到期 91~180到期 181~

公司财务要求实现AR应收款帐龄报表功能
(七时段:Current 0~30到期  31~60到期 61~90到期 91~180到期 181~360到期 361以上到期)

办法大概步骤如下:
1. 根据帐龄七时段要求设置付款条件(确认时间数,如30天,60天等)
2. 将现客户地址收单方的付款条件根据对客户合同的实际情况进行设置
3. 新事务处理发生时,根据各付款条件系统自动得出到期日期(如:当前时间:15-MAY-2009,付款条件:30天,那么到期日期:14-JUN-2009)
4. 得出数据的要求(应收帐款未被核销完成的,根据到期时间和当前时间对比后得出各时段未付金额,其中体现延迟天数,未付%等)
    (* Oracle EBS AR Module Standard Program:帐龄 - 7 时段报表,注意确认其中的Parameter)
5. 适用SQL可以做成View,以便以后快速应用
--=====================================================================================================
 

--AR帐龄报表VIEW SQL CODE (AR AGING Report)
=========================================
CREATE OR REPLACE VIEW ar_aging_report_v
AS
   SELECT   rct.trx_number, rtt.NAME AS trx_name, rc.customer_number,
            rc.customer_name, rt.NAME AS term_name,
            NVL (rct.term_due_date, app.gl_date) AS term_due_date,
            ROUND (SYSDATE - NVL (rct.term_due_date, app.gl_date),
                   0
                  ) AS defer_date,
                 ROUND (  (app.amount - NVL (app.amount_applied, 0))
                        / app.amount,
                        2
                       )
               * 100
            || '%' AS non_pay_percent,
            app.amount - NVL (app.amount_applied, 0) AS non_pay_amount,
            DECODE (SIGN (SYSDATE - NVL (rct.term_due_date, app.gl_date)),
                    -1, app.amount - NVL (app.amount_applied, 0),
                    SIGN (SYSDATE - NVL (rct.term_due_date, app.gl_date)), 0,
                    app.amount - NVL (app.amount_applied, 0), 0
                   ) AS curr_amount,
            (CASE
                WHEN ROUND (SYSDATE - NVL (rct.term_due_date, app.gl_date), 0) >
                                                                             0
                AND ROUND (SYSDATE - NVL (rct.term_due_date, app.gl_date), 0) <
                                                                            31
                   THEN app.amount - NVL (app.amount_applied, 0)
                ELSE 0
             END
            ) AS 到期two,
            (CASE
                WHEN ROUND (SYSDATE - NVL (rct.term_due_date, app.gl_date), 0) >=
                                                                            31
                AND ROUND (SYSDATE - NVL (rct.term_due_date, app.gl_date), 0) <
                                                                            61
                   THEN app.amount - NVL (app.amount_applied, 0)
                ELSE 0
             END
            ) AS 到期three,
            (CASE
                WHEN ROUND (SYSDATE - NVL (rct.term_due_date, app.gl_date), 0) >=
                                                                            61
                AND ROUND (SYSDATE - NVL (rct.term_due_date, app.gl_date), 0) <
                                                                            91
                   THEN app.amount - NVL (app.amount_applied, 0)
                ELSE 0
             END
            ) AS 到期four,
            (CASE
                WHEN ROUND (SYSDATE - NVL (rct.term_due_date, app.gl_date), 0) >=
                                                                            91
                AND ROUND (SYSDATE - NVL (rct.term_due_date, app.gl_date), 0) <
                                                                           181
                   THEN app.amount - NVL (app.amount_applied, 0)
                ELSE 0
             END
            ) AS 到期five,
            (CASE
                WHEN ROUND (SYSDATE - NVL (rct.term_due_date, app.gl_date), 0) >=
                                                                           181
                AND ROUND (SYSDATE - NVL (rct.term_due_date, app.gl_date), 0) <
                                                                           361
                   THEN app.amount - NVL (app.amount_applied, 0)
                ELSE 0
             END
            ) AS 到期six,
            (CASE
                WHEN ROUND (SYSDATE - NVL (rct.term_due_date, app.gl_date), 0) >=
                                                                           361
                   THEN app.amount - NVL (app.amount_applied, 0)
                ELSE 0
             END
            ) AS 到期seven,
            rct.invoice_currency_code, rct.complete_flag, app.*
       FROM ar.ra_customer_trx_all rct,
            ar.ra_cust_trx_types_all rtt,
            apps.ra_customers rc,
            ar.ra_terms_tl rt,
            (SELECT a.*,                           --b.gl_date AS app_gl_date,
                        b.applied_customer_trx_id, b.amount_applied,
                    b.segment3 AS app_account
               FROM (
/* 应收帐款全部*/
                     SELECT lgd.customer_trx_id, lgd.amount, lgd.gl_date,
                            gcc.segment3
                       FROM ar.ra_cust_trx_line_gl_dist_all lgd,
                            gl.gl_code_combinations gcc
                      WHERE lgd.code_combination_id = gcc.code_combination_id
                        AND lgd.account_class = 'REC') a,
                    (
/* 应收帐款被核销*/
                     SELECT                                     --raa.gl_date,
                              raa.applied_customer_trx_id,
                              SUM (raa.amount_applied) AS amount_applied,
                              gcc.segment3
                         FROM ar_receivable_applications_all raa,
                              gl.gl_code_combinations gcc
                        WHERE raa.code_combination_id =
                                                       gcc.code_combination_id
                          AND raa.status = 'APP'
                     GROUP BY                                   --raa.gl_date,
                              raa.applied_customer_trx_id, gcc.segment3) b
              WHERE a.customer_trx_id = b.applied_customer_trx_id(+)) app
      WHERE rct.customer_trx_id = app.customer_trx_id
        AND rct.cust_trx_type_id = rtt.cust_trx_type_id
        AND rct.bill_to_customer_id = rc.customer_id
        AND rct.term_id = rt.term_id
        AND rt.LANGUAGE = 'ZHS'
        AND app.amount != 0
        AND app.amount - NVL (app.amount_applied, 0) != 0
   ORDER BY rct.creation_date DESC
 
本文作者:网友 来源: http://erplife.blog.sohu.com/116419339.html
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读