AR_REVENUE_ASSIGNMENTS_V

Details

  • Schema: FUSION

  • Object owner: AR

  • Object type: VIEW

Columns

Name

SESSION_ID

CUSTOMER_TRX_LINE_ID

CUSTOMER_TRX_ID

PREVIOUS_CUSTOMER_TRX_LINE_ID

REQUEST_ID

QUANTITY

GL_DATE

AMOUNT

ACCOUNT_CLASS

PERIOD_SET_NAME

RULE_TYPE

Query

SQL_Statement

SELECT

/*+ ORDERED USE_NL(ctl,ragt,lgd,gps1,gps2,cma) INDEX RAGT (ar_revenue_assignments_gt_n1) */

RAGT.SESSION_ID ,

CTL.CUSTOMER_TRX_LINE_ID ,

CTL.CUSTOMER_TRX_ID ,

CTL.PREVIOUS_CUSTOMER_TRX_LINE_ID ,

CTL.REQUEST_ID ,

/* REQUEST_ID */

NVL(CTL.QUANTITY_CREDITED, CTL.QUANTITY_INVOICED) ,

NVL(LGD.ORIGINAL_GL_DATE, NVL(CMA.GL_DATE, NVL(RAGT.RULE_DATE, LEAST( (CTL.RULE_START_DATE - GPS1.START_DATE) + GPS2.START_DATE, GPS2.END_DATE , NVL(CTL.RULE_END_DATE, TO_DATE('31-12-4712','DD-MM-RRRR')) ) ) ) ),

/* GL DATE */

(CASE SUBSTR(RAGT.RULE_TYPE,1,1)

WHEN 'A'

THEN

/* normal fixed or variable duration rule */

TO_NUMBER(NVL(LGD.AMOUNT, NVL(CMA.AMOUNT, CTL.REVENUE_AMOUNT * (RAGT.PERCENT / 100))) * DECODE(RAGT.ACCOUNT_CLASS, 'REV',1 , 'UNEARN', decode (ar_revenue_management_pvt.is_inarrear_trx_cont_line(ctl.customer_trx_line_id),'Y',1,-1),- 1))

WHEN 'P'

THEN

/* PPRR rule */

RAGT.PPRR_AMOUNT

END) AMOUNT,

/* AMOUNT */

RAGT.ACCOUNT_CLASS,

/* ACCOUNT CLASS */

GPS1.PERIOD_SET_NAME,

/* PERIOD_SET NAME */

RAGT.RULE_TYPE

FROM ra_customer_trx_lines ctl,

ar_revenue_assignments_gt ragt,

ra_cust_trx_line_gl_dist lgd,

ar_periods gps1,

ar_periods gps2,

ar_credit_memo_amounts cma

WHERE ctl.customer_trx_line_id = ragt.customer_trx_line_id

AND ctl.customer_trx_line_id = cma.customer_trx_line_id(+)

AND DECODE(ctl.autorule_complete_flag, NULL, DECODE(ctl.autorule_duration_processed, -1, ctl.customer_trx_line_id, NULL), 'Y', DECODE(ctl.autorule_duration_processed, -1, ctl.customer_trx_line_id, NULL), NULL) = lgd.customer_trx_line_id(+)

AND 'N' = lgd.account_set_flag(+)

AND 'REV' = lgd.account_class(+)

AND DECODE(ctl.autorule_complete_flag, NULL, DECODE(ctl.autorule_duration_processed, -1, gps1.rowid, gps2.rowid), gps2.rowid) = gps2.rowid

AND DECODE(cma.gl_date, NULL, gps2.rowid, gps1.rowid) = gps2.rowid

AND gps2.period_set_name = gps1.period_set_name

AND ragt.period_type = gps1.period_type

AND gps2.period_type = gps1.period_type

AND ctl.rule_start_date BETWEEN gps1.start_date AND gps1.end_date

AND gps1.end_date BETWEEN ctl.rule_start_date AND ctl.rule_start_date + ragt.max_regular_period_length

AND gps2.new_period_num = gps1.new_period_num + (ragt.period_number - 1)