Search Results initialize_variable




Overview

JAI_PA_TAX_PKG is an Oracle E-Business Suite PL/SQL package owned by APPS that provides the tax determination and tax calculation engine for Oracle Projects Billing when the application is deployed under a country-specific localization (notably the India localization delivered through the JAI schema family). The package consolidates the logic required to apply default tax classifications to project draft invoice lines, to recalculate taxes on those lines when underlying data changes, and to synchronize those outcomes with the Project Billing tables. It is declared AUTHID CURRENT_USER, meaning that its unqualified references resolve through the calling user's schema and privileges, consistent with standard APPS-shared package design in Release 12.

The package header carries a change history entry indicating that the Projects Billing enhancement was forward-ported from Release 11i to Release 12 (bug 5876390 / 6012570, dated 24/04/2005, version 120.0). Two package-level constants, process_success and process_fail, standardize the return status values emitted by the concurrent entry points.

A notable design element is the use of an event parameter in the public driver procedures. Rather than exposing separate entry points for each operation, the package accepts an event code — jai_constants.default_taxes or jai_constants.recalculate_taxes — and dispatches internally. This is the mechanism that a database trigger or form trigger uses when it wants either to default taxes onto a line or to recalculate already-defaulted taxes.

Key Procedures and Functions

  • CALC_TAXES_FOR_INVOICES — Concurrent-callable driver that calculates taxes for a set of draft invoices. It accepts a request id, project id, and draft invoice number, and returns err_buf and retcode in the standard concurrent-program output convention.
  • CALCULATE_TAXES — Internal calculation routine that derives the applicable tax amounts for an invoice line.
  • DFLT_TAXES_FOR_INVOICE_LINES — Applies default tax classifications to a collection of draft invoice lines.
  • DEFAULT_TAXES — Entry point invoked when the default_taxes event is raised, performing defaultation across the relevant line set.
  • TAX_DEFAULTATION_LINE — Single-line specialization of the defaultation logic.
  • TAX_RECALCULATE_LINE — Recomputes taxes for an individual line when data has changed after the original default.
  • GET_TAX_CATEGORY — Retrieves the applicable tax category for a line.
  • GET_EVENT_TAX_CATEGORY — Resolves the tax category associated with the Project Billing event.
  • GET_PROJECT_TAX_CATEGORY — Resolves the tax category derived from project-level setup.
  • GET_CUST_TAX_CATEGORY — Resolves the tax category derived from the customer or customer site.
  • GET_EXPN_TAX_CATEGORY — Resolves the tax category derived from the expenditure type or expenditure category.
  • INSERT_LINE_INFO — Persists the computed tax detail into the localization invoice-line structures.
  • SYNC_DELETION — Propagates deletion of draft invoice lines to the corresponding localization tax rows.
  • INITIALIZE_VARIABLE — Resets package state before a new processing cycle.

Tables Accessed

Project Billing base tables are read and written through APPS synonyms: PA_DRAFT_INVOICES_ALL (the concurrent request and invoice header source), PA_DRAFT_INVOICE_ITEMS, PA_EVENTS, and PA_CUST_REV_DIST_LINES_ALL (which supply the revenue distribution and event context used for tax determination). Localization structures store the tax outcome: JAI_PA_DRAFT_INVOICES, JAI_PA_DRAFT_INVOICES_S, JAI_PA_DRAFT_INVOICE_LINES, and JAI_PA_DRAFT_INVOICE_LINES_S. Tax master and setup data drive the category lookups through JAI_CMN_TAX_CTGS_ALL, JAI_CMN_TAXES_ALL, JAI_CMN_DOCUMENT_TAXES, and JAI_CMN_DOCUMENT_TAXES_S. Configuration for how defaults are resolved comes from JAI_PA_SETUP_CONTEXTS, JAI_PA_SETUP_PREFERENCES, and JAI_PA_SETUP_VALUES.

Usage Notes

The package is invoked indirectly by forms, by database triggers on Project Billing tables, and by concurrent programs that process draft invoices; CALC_TAXES_FOR_INVOICES is the documented concurrent entry point. Because it is referenced by one other package, direct custom invocation is generally unnecessary, but custom code can call the public procedures safely as long as the jai_constants event values are supplied correctly and the caller passes standard err_buf/retcode output parameters. Package state must be initialized via INITIALIZE_VARIABLE when the routines are called repeatedly within a single session.