Search Results pn_var_vol_hist




Overview

The APPS.PN_VARIABLE_AMOUNT_PKG package body is a core component of the Oracle E-Business Suite Property Manager (PN) module, delivering the calculation, invoicing, and reconciliation logic for variable rent in lease contracts. Variable rent is rent tied to a measurable variable such as sales volume, units sold, or other performance metrics rather than a fixed schedule. This package consolidates the business rules that determine when variable rent becomes applicable, how volume history is aggregated across group dates and periods, how breakpoints and deduction constraints are applied, and how the resulting amounts flow into receivables invoices.

The object is classified as an API/OTHER in the ETRM (E-Business Suite Technical Reference Manual) metadata and is listed under the owner schema APPS. It exposes 29 documented procedures and functions and is invoked by five other packages, positioning it as a foundational building block for the variable rent subledger. The business process it supports spans actual-versus-forecasted volume capture, period-based rent calculation, invoice generation, and post-invoice reconciliation of transferred amounts. The package reflects the standard ETRM source header revision PNVRAMTB.pls 120.13.12010000.2, indicating a 12.1-era production baseline carried into 12.2.2.

Key Procedures and Functions

Among the documented entry points, several support the calculation and invoicing cycle:

  • PROCESS_VARIABLE_RENT — orchestrates the end-to-end variable rent processing for a lease, driving calculation, application of constraints, and invoice generation within a single logical unit of work.
  • PROCESS_RENT — the rent-level driver that evaluates a specific rent line and determines the amount payable for the current period.
  • PROCESS_CALCULATE_TYPE — dispatches calculation by invoice type (actual versus forecasted), aligning the appropriate cursor to the invoicing mode.
  • CALCULATE_VAR_RENT — the core computation that translates aggregated volume into a variable rent amount by applying breakpoint thresholds and deduction rules.
  • GET_RENT_APPLICABLE — the searched procedure; it determines whether variable rent is applicable for a given lease line and period, serving as the gating check before calculation proceeds.
  • INSERT_INVOICE — writes the computed amount into the invoicing structures so that Accounts Receivables can create the corresponding transaction.
  • APPLY_CONSTRAINTS — enforces contractual constraints and limits declared in the variable constraints tables.

Reconciliation and status procedures include: GET_BKP_DETAILS, FIND_VARRENT_EXISTS, GET_VARRENT_DETAILS, GET_TRANSFERRED_FLAG, GET_PRIOR_TRANSFER_FLAG, GET_PREV_INV_AMT, FIND_IF_TERM_EXISTS, FIND_VOLUME_EXISTS, GET_PERCENT_OPEN, and FETCH-oriented helpers such as GET_CUM_VOL_BY_GRPDT and GET_CUMULATIVE_VOLUME, which aggregate volume history across group dates. GET_DEDUCTIONS retrieves deduction rules, while PUT_LOG provides diagnostic logging for troubleshooting. Together, these procedures form a reusable API surface for extending or diagnosing variable rent behavior.

Tables Accessed

The package reads and writes the central tables of the variable rent model. PN_LEASES, PN_LEASE_DETAILS_ALL, PN_LOCATIONS_ALL, and PN_PAYMENT_TERMS_ALL supply lease context, site information, and payment terms used to determine applicability and invoicing behavior. PN_VAR_LINES_ALL and PN_VAR_PERIODS_ALL (with PN_VAR_PERIODS) define the variable lines and their reporting periods, while PN_VAR_GRP_DATES_ALL (with PN_VAR_GRP_DATES) holds the group date windows used by the volume-history cursors. Volume aggregation draws from PN_VAR_VOL_HIST_ALL (implicit in the cursor definitions). Breakpoint and threshold logic references PN_VAR_BKPTS_HEAD, PN_VAR_BKPTS_HEAD_ALL, and PN_VAR_BKPTS_DET_ALL; deduction processing uses PN_VAR_DEDUCTIONS and PN_VAR_DEDUCTIONS_ALL; and contractual limits are stored in PN_VAR_CONSTRAINTS_ALL. All are accessed via APPS synonyms.

Usage Notes

This package is invoked during the periodic variable rent processing cycle, typically from the Property Manager concurrent programs that calculate and invoice variable rent, and from the variable rent entry forms when users submit calculation or reconciliation. Because it is referenced by five other packages, it functions as a shared service layer rather than a standalone program. Customizations should call the documented public procedures only, respecting the transactional boundaries of PROCESS_VARIABLE_RENT and PROCESS_RENT. The invoice date of each period must be validated for transferred forecasted rent before reconciliation is called, consistent with the assumptions noted in the source header comment. Debugging should leverage PUT_LOG, and any query against the historical tables should be filtered by LINE_ITEM_ID and PERIOD_ID to avoid cross-lease data leakage.