FLA_PRESENT_VALUES_V
Details
-
Schema: FUSION
-
Object owner: FUN
-
Object type: VIEW
Columns
Name |
---|
LEASE_ID LEASE_DETAIL_ID VERSION_TYPE_CODE VERSION_NUM TRANSACTION_TYPE_CODE SCHEDULE_HEADER_ID REGIME_CODE PAYMENT_NUMBER ACTIVE_FLAG LEASE_CLASSIFICATION_CODE AMORTIZATION_PRORATION_CODE AMORTIZATION_START_DATE AMORTIZATION_END_DATE NUMBER_OF_AMORTIZATION_DAYS INTEREST_RATE ADDER_RATE MONTHLY_COMPOUNDING_RATE DAILY_COMPOUNDING_RATE CURRENCY_CODE DUE_DATE ACTUAL_AMOUNT NO_OF_DAYS PRESENT_VALUE AMEND_PURPOSE_FLAG INCREASE_AMOUNT CONTINGENT_AMOUNT CUMULATIVE_INCREASE_AMOUNT CUMULATIVE_CONTINGENT_AMOUNT TOTAL_INCREASE_AMOUNT TOTAL_CONTINGENT_AMOUNT NEXT_ACCRUAL_START_DATE LAST_PAYMENT_DATE END_OF_DAY_PAYMENT_FLAG INTEREST_COMPOUNDING_DAYS SIMPLE_INTEREST_RATE INTEREST_COMPOUNDING_CODE FORECASTED_LIABILITY_AMOUNT TOT_FORECAST_LIABILITY_AMOUNT TAX_AMOUNT |
Query
SQL_Statement |
---|
SELECT a.lease_id, a.lease_detail_id, a.version_type_code, a.version_num, a.transaction_type_code, a.schedule_header_id, a.regime_code, a.payment_number, a.active_flag, a.lease_classification_code, a.amortization_proration_code, a.amortization_start_date, a.amortization_end_date, a.number_of_amortization_days, a.interest_rate, a.adder_rate, CASE WHEN a.amortization_start_date = a.due_date THEN a.interest_rate + a.adder_rate ELSE ROUND(12 * (POWER(a.actual_amount/NULLIF(a.present_value, 0), 30/NULLIF(a.no_of_days, 0)) - 1)*100, 2) END monthly_compounding_rate, a.daily_compounding_rate, a.currency_code, a.due_date, a.actual_amount, a.no_of_days, a.present_value, a.amend_purpose_flag, a.increase_amount, a.contingent_amount, a.cumulative_increase_amount, a.cumulative_contingent_amount, a.total_increase_amount, a.total_contingent_amount, a.next_accrual_start_date, a.last_payment_date, a.end_of_day_payment_flag, a.interest_compounding_days, a.simple_interest_rate, a.interest_compounding_code, a.forecasted_liability_amount, a.tot_forecast_liability_amount, a.tax_amount FROM ( SELECT pv.lease_id, pv.lease_detail_id, pv.version_type_code, pv.version_num, pv.transaction_type_code, pv.schedule_header_id, pv.regime_code, pv.payment_number, pv.active_flag, pv.lease_classification_code, pv.amortization_proration_code, pv.amortization_start_date, pv.amortization_end_date, pv.number_of_amortization_days, pv.interest_rate, pv.adder_rate, pv.daily_compounding_rate, pv.currency_code, pv.due_date, pv.actual_amount, pv.no_of_days, CASE WHEN pv.interest_compounding_code = 'DAILY' THEN pv.actual_amount*power((1+pv.daily_compounding_rate),(-1*pv.no_of_days)) ELSE pv.actual_amount/power((1+pv.daily_compounding_rate), (pv.no_of_days/pv.interest_compounding_days)) END present_value, amend_purpose_flag, pv.increase_amount, pv.contingent_amount, pv.cumulative_increase_amount, pv.cumulative_contingent_amount, pv.total_increase_amount, pv.total_contingent_amount, pv.next_accrual_start_date, pv.last_payment_date, pv.end_of_day_payment_flag, pv.interest_compounding_days, pv.simple_interest_rate, pv.interest_compounding_code, pv.forecasted_liability_amount, pv.tot_forecast_liability_amount, pv.tax_amount FROM( SELECT sh.lease_id, sh.lease_detail_id, sh.version_type_code, sh.version_num, sh.transaction_type_code, sh.schedule_header_id, sh.regime_code, sh.payment_number, sh.active_flag, sh.lease_classification_code, sh.amortization_proration_code, sh.amortization_start_date, sh.amortization_end_date, sh.number_of_amortization_days, sh.interest_rate, sh.adder_rate, sh.daily_compounding_rate, sh.last_payment_date, sh.end_of_day_payment_flag, sh.interest_compounding_days, sh.simple_interest_rate, sh.interest_compounding_code, sh.currency_code, sh.due_date, CASE WHEN sh.regime_code = 'ASC842' AND sh.lease_classification_code <> 'EXEMPT' THEN (NVL(sh.actual_amount,0) - NVL(sh.total_contingent_amount,0)) ELSE NVL(sh.actual_amount,0) END actual_amount, CASE WHEN sh.amortization_proration_code = '999' THEN(sh.due_date - sh.amortization_start_date) + DECODE(sh.end_of_day_payment_flag, 'Y', 1, 0) WHEN sh.scheduling_version_num >= 3 THEN (CASE WHEN TRUNC(sh.amortization_start_date, 'MM') = TRUNC(sh.due_date, 'MM') THEN CASE WHEN TO_NUMBER(TO_CHAR(sh.amortization_start_date, 'DD')) = 31 THEN 0 WHEN TO_NUMBER(TO_CHAR(sh.due_date, 'DD')) = 31 THEN 31 - TO_NUMBER(TO_CHAR(sh.amortization_start_date, 'DD')) WHEN LAST_DAY(sh.due_date) = sh.due_date THEN 30 - TO_NUMBER(TO_CHAR(sh.amortization_start_date, 'DD')) ELSE TO_NUMBER(TO_CHAR(sh.due_date, 'DD')) - TO_NUMBER(TO_CHAR(sh.amortization_start_date, 'DD')) END WHEN TRUNC(sh.amortization_start_date, 'MM') = sh.amortization_start_date THEN 30 ELSE 31 - TO_NUMBER(TO_CHAR(sh.amortization_start_date, 'DD')) END) + (CASE WHEN TRUNC(sh.amortization_start_date, 'MM') = TRUNC(sh.due_date, 'MM') THEN 0 ELSE MONTHS_BETWEEN(TRUNC(sh.due_date, 'MM'), LAST_DAY(sh.amortization_start_date) + 1) * 30 END) + (CASE WHEN TRUNC(sh.amortization_start_date, 'MM') = TRUNC(sh.due_date, 'MM') THEN 0 WHEN TO_NUMBER(TO_CHAR(sh.due_date, 'DD')) = 31 THEN 30 WHEN LAST_DAY(sh.due_date) = sh.due_date THEN 29 ELSE TO_NUMBER(TO_CHAR(sh.due_date, 'DD')-1) END) + /*Below case ment for end of day pv enhancement*/ (CASE WHEN sh.end_of_day_payment_flag = 'Y' AND TO_NUMBER(TO_CHAR(sh.due_date, 'DD')) < 31 THEN 1 ELSE 0 END) ELSE (CASE WHEN TRUNC(sh.amortization_start_date, 'MM') = TRUNC(sh.due_date, 'MM') THEN DECODE(LAST_DAY(sh.due_date), sh.due_date, 30, TO_NUMBER(TO_CHAR(sh.due_date, 'DD'))) - TO_NUMBER(TO_CHAR(sh.amortization_start_date, 'DD')) + 1 WHEN TRUNC(sh.amortization_start_date, 'MM') = sh.amortization_start_date THEN 30 ELSE 31 - TO_NUMBER(TO_CHAR(sh.amortization_start_date, 'DD')) END) + (CASE WHEN TRUNC(sh.amortization_start_date, 'MM') = TRUNC(sh.due_date, 'MM') THEN 0 ELSE MONTHS_BETWEEN(TRUNC(sh.due_date, 'MM'), LAST_DAY(sh.amortization_start_date) + 1) * 30 END) + (CASE WHEN TRUNC(sh.amortization_start_date, 'MM') = TRUNC(sh.due_date, 'MM') THEN 0 WHEN LAST_DAY(sh.due_date) = sh.due_date THEN 30 ELSE DECODE(LAST_DAY(sh.due_date), sh.due_date, 30, TO_NUMBER(TO_CHAR(sh.due_date, 'DD'))) END) - 1 END no_of_days, sh.amend_purpose_flag, NVL(sh.increase_amount,0) increase_amount, CASE WHEN sh.regime_code = 'ASC842' AND sh.lease_classification_code <> 'EXEMPT' THEN NVL(sh.contingent_amount,0) ELSE 0 END contingent_amount, NVL(sh.cumulative_increase_amount,0) cumulative_increase_amount, CASE WHEN sh.regime_code = 'ASC842' AND sh.lease_classification_code <> 'EXEMPT' THEN NVL(sh.cumulative_contingent_amount,0) ELSE 0 END cumulative_contingent_amount, NVL(sh.total_increase_amount,0) total_increase_amount, CASE WHEN sh.regime_code = 'ASC842' AND sh.lease_classification_code <> 'EXEMPT' THEN NVL(sh.total_contingent_amount,0) ELSE 0 END total_contingent_amount, NVL(sh.last_accrued_date+1,sh.amortization_start_date) next_accrual_start_date, sh.forecasted_liability_amount, sh.tot_forecast_liability_amount, NVL(sh.tax_amount,0) tax_amount FROM ( SELECT ash.lease_id, ash.lease_detail_id, ash.version_type_code, ash.version_num, ash.transaction_type_code, ash.schedule_header_id, ash.regime_code, ash.payment_number, ash.active_flag, ash.lease_classification_code, ash.amortization_proration_code, ash.amortization_start_date, ash.amortization_end_date, ash.number_of_amortization_days, ash.interest_rate, ash.adder_rate, ash.daily_compounding_rate, ash.last_payment_date, ash.end_of_day_payment_flag, ash.interest_compounding_days, ash.simple_interest_rate, ash.interest_compounding_code, ash.scheduling_version_num, ash.amend_purpose_flag, ash.forecasted_liability_amount, ash.tot_forecast_liability_amount, ash.last_accrued_date, pi.currency_code, pi.due_date, SUM(NVL(pi.actual_amount,0)) actual_amount, SUM(CASE WHEN NVL(pi.payment_increase_flag, 'N') = 'Y' AND NVL(pi.cumulative_increase_flag, 'N') = 'N' THEN NVL(pi.actual_amount,0) ELSE 0 END) increase_amount, SUM(CASE WHEN NVL(pi.payment_increase_flag, 'N') = 'Y' AND NVL(pi.cumulative_increase_flag, 'N') = 'N' THEN NVL(pi.contingent_amount,0) ELSE 0 END) contingent_amount, SUM(CASE WHEN NVL(pi.payment_increase_flag, 'N') = 'Y' AND NVL(pi.cumulative_increase_flag, 'N') = 'Y' THEN NVL(pi.actual_amount,0) ELSE 0 END) cumulative_increase_amount, SUM(CASE WHEN NVL(pi.payment_increase_flag, 'N') = 'Y' AND NVL(pi.cumulative_increase_flag, 'N') = 'Y' THEN NVL(pi.contingent_amount,0) ELSE 0 END) cumulative_contingent_amount, SUM(CASE WHEN NVL(pi.payment_increase_flag, 'N') = 'Y' THEN NVL(pi.actual_amount,0) ELSE 0 END) total_increase_amount, SUM(CASE WHEN NVL(pi.payment_increase_flag, 'N') = 'Y' THEN NVL(pi.contingent_amount,0) ELSE 0 END) total_contingent_amount, SUM(CASE WHEN pi.tax_transaction_id IS NOT NULL THEN NVL(pi.actual_amount,0) ELSE 0 END) tax_amount FROM fla_active_schedule_headers_v ash, fla_payment_items pi WHERE ash.payment_lease_detail_id = pi.lease_detail_id AND ash.lease_id = pi.lease_id AND ash.payment_number = pi.payment_number AND ash.amortization_start_date <= pi.due_date AND ash.amortization_end_date >= pi.due_date AND NVL(pi.reversal_flag,'N')= 'N' AND pi.parent_payment_item_id IS NULL AND NVL(pi.payment_item_type_code,'~') <> 'RECOVERABLE' GROUP BY ash.lease_id, ash.lease_detail_id, ash.version_type_code, ash.version_num, ash.transaction_type_code, ash.schedule_header_id, ash.regime_code, ash.payment_number, ash.active_flag, ash.lease_classification_code, ash.amortization_proration_code, ash.amortization_start_date, ash.amortization_end_date, ash.number_of_amortization_days, ash.interest_rate, ash.adder_rate, ash.daily_compounding_rate, ash.last_payment_date, ash.end_of_day_payment_flag, ash.interest_compounding_days, ash.simple_interest_rate, ash.interest_compounding_code, ash.scheduling_version_num, ash.amend_purpose_flag, ash.forecasted_liability_amount, ash.tot_forecast_liability_amount, ash.last_accrued_date, pi.currency_code, pi.due_date ) sh ) pv )a |