Search Results get_project_types_dflt
Overview
APPS.PA_MULTI_CURRENCY_BILLING (internally referenced as PAXMULTS.pls, version 120.2) is the core PL/SQL package within Oracle Projects that governs multi-currency billing (MCB) behavior across the Oracle E-Business Suite. In EBS 12.1.1 and 12.2.2, this package supplies the business logic, validation, and inquiry APIs required to determine whether a project, operating unit, or implementation is configured to invoice customers in a currency other than the functional currency, and to control how exchange rates, rate sharing, and cross-operating-unit funding behave during billing.
The package exposes public declarations for two PL/SQL record types — curr_attr and curr_prec — and their associated associative array types (curr_attr_tab, curr_prec_tab), along with the global variables CurrAttrTab and CurrPrecTab. These structures cache currency conversion attributes (conversion type, from/to currency, numerator, denominator, conversion date, and rate) and currency precision data (currency code, minimum accountable unit, standard precision, and extended precision) for reuse across a session. This caching mechanism reduces repetitive lookups against FND_CURRENCIES and related rate tables during large billing runs.
Key Procedures and Functions
The ETRM repository documents twenty-one callable units. Those most central to MCB determination include:
- IS_PROJECT_MCB_ENABLED — the function matched by the search term; determines whether multi-currency billing is enabled for a specific project. It is the canonical entry point used by forms and billing concurrent programs to branch logic.
- IS_OU_MCB_ENABLED and CHECK_UPDATE_OU_MCB_FLAG — evaluate and validate the operating-unit-level MCB flag.
- IS_SHARING_BILL_RATES_ALLOWED and IS_FUNDING_ACROSS_OU_ALLOWED — return the implementation-level flags controlling whether bill rates may be shared and funding permitted across operating units.
- IS_BASELINE_FUNDING_ENABLED — reports the baseline funding setting for a project.
- GET_IMP_DEFAULTS — retrieves implementation-wide defaults, including the multi-currency billing flag, sharing and funding flags, default exchange rate type, functional currency, and the competence, availability, and job-level match weights.
- GET_PROJECT_DEFAULTS — retrieves project-specific billing defaults such as the MCB flag, baseline funding flag, revenue and invoice processing currency codes and types, project currency, billing rate date code, rate type, rate date, and exchange rate.
- GET_INVOICE_PROCESSING_CUR, GET_TRANS_CURRENCY_INFO, GET_CURRENCY, and PROJ_CUST_CURR — return currency context for transactions, projects, and customers.
- CONVERT_AMOUNT_BULK and ROUND_TRANS_CURRENCY_AMT — perform conversion and rounding of transaction amounts using the cached currency attributes and precision.
- INIT_CACHE — populates the global cache tables before bulk processing.
- CHECK_MCB_TRANS_EXIST, CHECK_CROSS_OU_BILLRATE_EXIST, CHECK_MCB_SETUP_EXISTS, and MCB_FLAG_REQUIRED — perform existence and prerequisite checks against transactions and setups.
- GET_PROJECT_TYPES_DFLT — returns default values associated with project types.
Tables Accessed
Through APPS synonyms, the package reads configuration and transactional data including: PA_IMPLEMENTATIONS_ALL and PA_IMPLEMENTATIONS (implementation-level MCB and funding flags); PA_PROJECTS_ALL and PA_PROJECTS (project attributes and currency settings); PA_PROJECT_FUNDINGS and PA_AGREEMENTS (funding and agreement terms); PA_BILLING_ASSIGNMENTS, PA_EMP_BILL_RATE_OVERRIDES, PA_JOB_BILL_RATE_OVERRIDES, and PA_NL_BILL_RATE_OVERRIDES (bill rate determination); PA_DRAFT_INVOICES_ALL and PA_EVENTS (invoice and event data); PA_EXPENDITURE_ITEMS_ALL (expenditure transactions); PA_PROJECT_CUSTOMERS (customer associations); and FND_CURRENCIES (currency definitions and precision).
Usage Notes
PA_MULTI_CURRENCY_BILLING is invoked by Oracle Projects forms (project setup, billing setup, and implementation options), by billing concurrent programs such as invoice generation, and by more than twenty-three other PL/SQL packages within the Projects schema. Custom extensions that need to test MCB enablement or convert amounts should call the public functions rather than query the underlying tables directly, ensuring consistency with Oracle's caching and validation logic. Because the package relies on session-level global caches (CurrAttrTab, CurrPrecTab), INIT_CACHE should be invoked before bulk conversion operations in custom code.