DBA Data[Home] [Help]

PACKAGE BODY: APPS.AR_MO_GLOBAL_CACHE

Source


1 PACKAGE BODY ar_mo_global_cache as
2 /*$Header: ARMOGLCB.pls 120.11.12010000.2 2008/11/05 06:26:50 ankuagar ship $ */
3  PG_DEBUG varchar2(1) := NVL(FND_PROFILE.value('AFLOG_ENABLED'), 'N');
4 
5   /* ----------------------------------------------------------------------------
6      This index-by table is used to store rows of operating unit
7      attributes.
8      ----------------------------------------------------------------------------- */
9 
10       TYPE GlobalsCache IS TABLE OF ar_mo_cache_utils.GlobalsRecord  INDEX BY BINARY_INTEGER;
11 
12    /* ---------------------------------------------------------------------------
13       This private variable is used as the cache.
14       ---------------------------------------------------------------------------  */
15        g_cache GlobalsCache;
16 
17    /* ---------------------------------------------------------------------------
18       This procedure retrieves operating unit attributes and
19       stores them in the cache.
20       ---------------------------------------------------------------------------  */
21 
22      PROCEDURE  populate(p_org_id IN NUMBER DEFAULT NULL) IS
23         i    PLS_INTEGER;
24         l_gt  ar_mo_cache_utils.GlobalsTable;
25 
26         l_count              PLS_INTEGER;
27         l_default_org_id     NUMBER;
28         l_default_ou_name    mo_glob_org_access_tmp.organization_name%type;      --Bug Fix 6814490
29 
30    BEGIN
31 
32     IF PG_DEBUG in ('Y', 'C') THEN
33        arp_util.debug('get_org_attributes: ' || 'ar_mo_global_cache.populate()+');
34     END IF;
35 
36    IF p_org_id is not null and g_cache.exists(p_org_id) THEN
37      RETURN;
38    END IF;
39 
40    /* ---------------------------------------------------------------------------
41         First, remove existing records (if any):
42       ---------------------------------------------------------------------------  */
43         g_cache.delete;
44 
45    /* ---------------------------------------------------------------------------
46       Next, get the data from the server:
47       ---------------------------------------------------------------------------  */
48 
49            ar_mo_cache_utils.retrieve_globals(l_gt,p_org_id);
50 
51    /* ---------------------------------------------------------------------------
52        Finally, store the data in the cache:
53       ---------------------------------------------------------------------------  */
54 
55     FOR i IN 1..l_gt.org_id_t.LAST LOOP
56       g_cache(l_gt.org_id_t(i)).chart_of_accounts_id := l_gt.chart_of_accounts_id_t(i);
57       g_cache(l_gt.org_id_t(i)).set_of_books_id      := l_gt.set_of_books_id_t(i);
58       g_cache(l_gt.org_id_t(i)).set_of_books_name    := l_gt.set_of_books_name_t(i);
59       g_cache(l_gt.org_id_t(i)).currency_code        := l_gt.currency_code_t(i);
60       g_cache(l_gt.org_id_t(i)).org_id               := l_gt.org_id_t(i);
61 
62      /*-----------------------------------------------------------------------------
63         Begin AR-specific assignments
64        -----------------------------------------------------------------------------*/
65       g_cache(l_gt.org_id_t(i)).accounting_method        := l_gt.accounting_method_t(i);
66       g_cache(l_gt.org_id_t(i)).accrue_interest	         := l_gt.accrue_interest_t(i);
67       g_cache(l_gt.org_id_t(i)).unearned_discount 	 := l_gt.unearned_discount_t(i);
68       g_cache(l_gt.org_id_t(i)).partial_discount_flag  	 := l_gt.partial_discount_flag_t(i);
69       g_cache(l_gt.org_id_t(i)).print_remit_to    	 := l_gt.print_remit_to_t(i);
70       g_cache(l_gt.org_id_t(i)).default_cb_due_date  	 := l_gt.default_cb_due_date_t(i);
71       g_cache(l_gt.org_id_t(i)).auto_site_numbering 	 := l_gt.auto_site_numbering_t(i);
72 
73       g_cache(l_gt.org_id_t(i)).cash_basis_set_of_books_id := l_gt.cash_basis_set_of_books_id_t(i);
74       g_cache(l_gt.org_id_t(i)).code_combination_id_gain   := l_gt.code_combination_id_gain_t(i);
75       g_cache(l_gt.org_id_t(i)).autocash_hierarchy_id      := l_gt.autocash_hierarchy_id_t(i);
76       g_cache(l_gt.org_id_t(i)).run_gl_journal_import_flag := l_gt.run_gl_journal_import_flag_t(i);
77       g_cache(l_gt.org_id_t(i)).cer_split_amount           := l_gt.cer_split_amount_t(i);
78       g_cache(l_gt.org_id_t(i)).cer_dso_days 	           := l_gt.cer_dso_days_t(i);
79       g_cache(l_gt.org_id_t(i)).posting_days_per_cycle     := l_gt.posting_days_per_cycle_t(i);
80       g_cache(l_gt.org_id_t(i)).address_validation 	   := l_gt.address_validation_t(i);
81       g_cache(l_gt.org_id_t(i)).calc_discount_on_lines_flag:= l_gt.calc_discount_on_lines_flag_t(i);
82       g_cache(l_gt.org_id_t(i)).change_printed_invoice_flag:= l_gt.change_printed_invoice_flag_t(i);
83 
84       g_cache(l_gt.org_id_t(i)).code_combination_id_loss   := l_gt.code_combination_id_loss_t(i);
85       g_cache(l_gt.org_id_t(i)).create_reciprocal_flag     := l_gt.create_reciprocal_flag_t(i);
86       g_cache(l_gt.org_id_t(i)).default_country   	   := l_gt.default_country_t(i);
87       g_cache(l_gt.org_id_t(i)).default_territory 	   := l_gt.default_territory_t(i);
88       g_cache(l_gt.org_id_t(i)).generate_customer_number   := l_gt.generate_customer_number_t(i);
89       g_cache(l_gt.org_id_t(i)).invoice_deletion_flag      := l_gt.invoice_deletion_flag_t(i);
90       g_cache(l_gt.org_id_t(i)).location_structure_id      := l_gt.location_structure_id_t(i);
91       g_cache(l_gt.org_id_t(i)).site_required_flag	   := l_gt.site_required_flag_t(i);
92       g_cache(l_gt.org_id_t(i)).tax_allow_compound_flag    := l_gt.tax_allow_compound_flag_t(i);
93       g_cache(l_gt.org_id_t(i)).tax_header_level_flag      := l_gt.tax_header_level_flag_t(i);
94 
95       g_cache(l_gt.org_id_t(i)).tax_rounding_allow_override  := l_gt.tax_rounding_allow_override_t(i);
96       g_cache(l_gt.org_id_t(i)).tax_invoice_print            := l_gt.tax_invoice_print_t(i);
97       g_cache(l_gt.org_id_t(i)).tax_method  	             := l_gt.tax_method_t(i);
98       g_cache(l_gt.org_id_t(i)).tax_use_customer_exempt_flag := l_gt.tax_use_customer_exempt_flag_t(i);
99       g_cache(l_gt.org_id_t(i)).tax_use_cust_exc_rate_flag   := l_gt.tax_use_cust_exc_rate_flag_t(i);
100       g_cache(l_gt.org_id_t(i)).tax_use_loc_exc_rate_flag    := l_gt.tax_use_loc_exc_rate_flag_t(i);
101       g_cache(l_gt.org_id_t(i)).tax_use_product_exempt_flag  := l_gt.tax_use_product_exempt_flag_t(i);
102       g_cache(l_gt.org_id_t(i)).tax_use_prod_exc_rate_flag   := l_gt.tax_use_prod_exc_rate_flag_t(i);
103       g_cache(l_gt.org_id_t(i)).tax_use_site_exc_rate_flag   := l_gt.tax_use_site_exc_rate_flag_t(i);
104       g_cache(l_gt.org_id_t(i)).ai_log_file_message_level    := l_gt.ai_log_file_message_level_t(i);
105       g_cache(l_gt.org_id_t(i)).ai_max_memory_in_bytes       := l_gt.ai_max_memory_in_bytes_t(i);
106       g_cache(l_gt.org_id_t(i)).ai_acct_flex_key_left_prompt := l_gt.ai_acct_flex_key_left_prompt_t(i);
107       g_cache(l_gt.org_id_t(i)).ai_mtl_items_key_left_prompt := l_gt.ai_mtl_items_key_left_prompt_t(i);
108       g_cache(l_gt.org_id_t(i)).ai_territory_key_left_prompt := l_gt.ai_territory_key_left_prompt_t(i);
109       g_cache(l_gt.org_id_t(i)).ai_purge_int_tables_flag     := l_gt.ai_purge_int_tables_flag_t(i);
110       g_cache(l_gt.org_id_t(i)).ai_activate_sql_trace_flag   := l_gt.ai_activate_sql_trace_flag_t(i);
111       g_cache(l_gt.org_id_t(i)).default_grouping_rule_id     := l_gt.default_grouping_rule_id_t(i);
112       g_cache(l_gt.org_id_t(i)).salesrep_required_flag       := l_gt.salesrep_required_flag_t(i);
113       g_cache(l_gt.org_id_t(i)).auto_rec_invoices_per_commit := l_gt.auto_rec_invoices_per_commit_t(i);
114       g_cache(l_gt.org_id_t(i)).auto_rec_receipts_per_commit := l_gt.auto_rec_receipts_per_commit_t(i);
115       g_cache(l_gt.org_id_t(i)).pay_unrelated_invoices_flag  := l_gt.pay_unrelated_invoices_flag_t(i);
116 
117       g_cache(l_gt.org_id_t(i)).print_home_country_flag  := l_gt.print_home_country_flag_t(i);
118       g_cache(l_gt.org_id_t(i)).location_tax_account     := l_gt.location_tax_account_t(i);
119       g_cache(l_gt.org_id_t(i)).from_postal_code  	 := l_gt.from_postal_code_t(i);
120       g_cache(l_gt.org_id_t(i)).to_postal_code   	 := l_gt.to_postal_code_t(i);
121       g_cache(l_gt.org_id_t(i)).tax_registration_number  := l_gt.tax_registration_number_t(i);
122       g_cache(l_gt.org_id_t(i)).populate_gl_segments_flag:= l_gt.populate_gl_segments_flag_t(i);
123       g_cache(l_gt.org_id_t(i)).unallocated_revenue_ccid := l_gt.unallocated_revenue_ccid_t(i);
124       g_cache(l_gt.org_id_t(i)).period_set_name   	 := l_gt.period_set_name_t(i);
125       g_cache(l_gt.org_id_t(i)).base_precision   	 := l_gt.base_precision_t(i);
126       g_cache(l_gt.org_id_t(i)).base_EXTENDED_PRECISION  := l_gt.base_EXTENDED_PRECISION_t(i);
127       g_cache(l_gt.org_id_t(i)).base_MIN_ACCOUNTABLE_UNIT:= l_gt.base_MIN_ACCOUNTABLE_UNIT_t(i);
128       g_cache(l_gt.org_id_t(i)).salescredit_name         := l_gt.salescredit_name_t(i);
129       g_cache(l_gt.org_id_t(i)).yes_meaning 	         := l_gt.yes_meaning_t(i);
130       g_cache(l_gt.org_id_t(i)).no_meaning  	         := l_gt.no_meaning_t(i);
131       g_cache(l_gt.org_id_t(i)).tax_exempt_flag_meaning  := l_gt.tax_exempt_flag_meaning_t(i);
132       g_cache(l_gt.org_id_t(i)).inclusive_tax_used	 := l_gt.inclusive_tax_used_t(i);
133       g_cache(l_gt.org_id_t(i)).tax_enforce_account_flag := l_gt.tax_enforce_account_flag_t(i);
134       g_cache(l_gt.org_id_t(i)).ta_installed_flag 	 := l_gt.ta_installed_flag_t(i);
135       g_cache(l_gt.org_id_t(i)).br_enabled_flag   	 := l_gt.br_enabled_flag_t(i);
136 
137 -- new begin
138 
139       g_cache(l_gt.org_id_t(i)).attribute_category:= l_gt.attribute_category_t(i);
140       g_cache(l_gt.org_id_t(i)).attribute1	  := l_gt.attribute1_t(i);
141       g_cache(l_gt.org_id_t(i)).attribute2	  := l_gt.attribute2_t(i);
142       g_cache(l_gt.org_id_t(i)).attribute3	  := l_gt.attribute3_t(i);
143       g_cache(l_gt.org_id_t(i)).attribute4	  := l_gt.attribute4_t(i);
144       g_cache(l_gt.org_id_t(i)).attribute5	  := l_gt.attribute5_t(i);
145       g_cache(l_gt.org_id_t(i)).attribute6	  := l_gt.attribute6_t(i);
146       g_cache(l_gt.org_id_t(i)).attribute7	  := l_gt.attribute7_t(i);
147       g_cache(l_gt.org_id_t(i)).attribute8	  := l_gt.attribute8_t(i);
148       g_cache(l_gt.org_id_t(i)).attribute9	  := l_gt.attribute9_t(i);
149       g_cache(l_gt.org_id_t(i)).attribute10	  := l_gt.attribute10_t(i);
150       g_cache(l_gt.org_id_t(i)).attribute11	  := l_gt.attribute11_t(i);
151       g_cache(l_gt.org_id_t(i)).attribute12	  := l_gt.attribute12_t(i);
152       g_cache(l_gt.org_id_t(i)).attribute13	  := l_gt.attribute13_t(i);
153       g_cache(l_gt.org_id_t(i)).attribute14	  := l_gt.attribute14_t(i);
154       g_cache(l_gt.org_id_t(i)).attribute15	  := l_gt.attribute15_t(i);
155 
156       g_cache(l_gt.org_id_t(i)).created_by	  := l_gt.created_by_t(i);
157       g_cache(l_gt.org_id_t(i)).creation_date	  := l_gt.creation_date_t(i);
158       g_cache(l_gt.org_id_t(i)).last_updated_by	  := l_gt.last_updated_by_t(i);
159       g_cache(l_gt.org_id_t(i)).last_update_date  := l_gt.last_update_date_t(i);
160       g_cache(l_gt.org_id_t(i)).last_update_login := l_gt.last_update_login_t(i);
161 
162       g_cache(l_gt.org_id_t(i)).tax_code	            := l_gt.tax_code_t(i);
163       g_cache(l_gt.org_id_t(i)).tax_currency_code           := l_gt.tax_currency_code_t(i);
164       g_cache(l_gt.org_id_t(i)).tax_minimum_accountable_unit:= l_gt.tax_minimum_accountable_unit_t(i);
165       g_cache(l_gt.org_id_t(i)).tax_precision	            := l_gt.tax_precision_t(i);
166       g_cache(l_gt.org_id_t(i)).tax_rounding_rule           := l_gt.tax_rounding_rule_t(i);
167       g_cache(l_gt.org_id_t(i)).tax_use_acc_exc_rate_flag   := l_gt.tax_use_acc_exc_rate_flag_t(i);
168       g_cache(l_gt.org_id_t(i)).tax_use_system_exc_rate_flag:= l_gt.tax_use_system_exc_rate_flag_t(i);
169       g_cache(l_gt.org_id_t(i)).tax_hier_site_exc_rate	    := l_gt.tax_hier_site_exc_rate_t(i);
170       g_cache(l_gt.org_id_t(i)).tax_hier_cust_exc_rate	    := l_gt.tax_hier_cust_exc_rate_t(i);
171       g_cache(l_gt.org_id_t(i)).tax_hier_prod_exc_rate	    := l_gt.tax_hier_prod_exc_rate_t(i);
172       g_cache(l_gt.org_id_t(i)).tax_hier_account_exc_rate   := l_gt.tax_hier_account_exc_rate_t(i);
173       g_cache(l_gt.org_id_t(i)).tax_hier_system_exc_rate    := l_gt.tax_hier_system_exc_rate_t(i);
174       g_cache(l_gt.org_id_t(i)).tax_database_view_set	    := l_gt.tax_database_view_set_t(i);
175 
176       g_cache(l_gt.org_id_t(i)).global_attribute1	  := l_gt.global_attribute1_t(i);
177       g_cache(l_gt.org_id_t(i)).global_attribute2	  := l_gt.global_attribute2_t(i);
178       g_cache(l_gt.org_id_t(i)).global_attribute3	  := l_gt.global_attribute3_t(i);
179       g_cache(l_gt.org_id_t(i)).global_attribute4	  := l_gt.global_attribute4_t(i);
180       g_cache(l_gt.org_id_t(i)).global_attribute5	  := l_gt.global_attribute5_t(i);
181       g_cache(l_gt.org_id_t(i)).global_attribute6	  := l_gt.global_attribute6_t(i);
182       g_cache(l_gt.org_id_t(i)).global_attribute7	  := l_gt.global_attribute7_t(i);
183       g_cache(l_gt.org_id_t(i)).global_attribute8	  := l_gt.global_attribute8_t(i);
184       g_cache(l_gt.org_id_t(i)).global_attribute9	  := l_gt.global_attribute9_t(i);
185       g_cache(l_gt.org_id_t(i)).global_attribute10	  := l_gt.global_attribute10_t(i);
186       g_cache(l_gt.org_id_t(i)).global_attribute11	  := l_gt.global_attribute11_t(i);
187       g_cache(l_gt.org_id_t(i)).global_attribute12	  := l_gt.global_attribute12_t(i);
188       g_cache(l_gt.org_id_t(i)).global_attribute13	  := l_gt.global_attribute13_t(i);
189       g_cache(l_gt.org_id_t(i)).global_attribute14	  := l_gt.global_attribute14_t(i);
190       g_cache(l_gt.org_id_t(i)).global_attribute15	  := l_gt.global_attribute15_t(i);
191       g_cache(l_gt.org_id_t(i)).global_attribute16	  := l_gt.global_attribute16_t(i);
192       g_cache(l_gt.org_id_t(i)).global_attribute17	  := l_gt.global_attribute17_t(i);
193       g_cache(l_gt.org_id_t(i)).global_attribute18	  := l_gt.global_attribute18_t(i);
194       g_cache(l_gt.org_id_t(i)).global_attribute19	  := l_gt.global_attribute19_t(i);
195       g_cache(l_gt.org_id_t(i)).global_attribute20	  := l_gt.global_attribute20_t(i);
196       g_cache(l_gt.org_id_t(i)).global_attribute_category := l_gt.global_attribute_category_t(i);
197 
198       g_cache(l_gt.org_id_t(i)).rule_set_id	             := l_gt.rule_set_id_t(i);
199       g_cache(l_gt.org_id_t(i)).code_combination_id_round    := l_gt.code_combination_id_round_t(i);
200       g_cache(l_gt.org_id_t(i)).trx_header_level_rounding    := l_gt.trx_header_level_rounding_t(i);
201       g_cache(l_gt.org_id_t(i)).trx_header_round_ccid	     := l_gt.trx_header_round_ccid_t(i);
202       g_cache(l_gt.org_id_t(i)).finchrg_receivables_trx_id   := l_gt.finchrg_receivables_trx_id_t(i);
203       g_cache(l_gt.org_id_t(i)).sales_tax_geocode	     := l_gt.sales_tax_geocode_t(i);
204       g_cache(l_gt.org_id_t(i)).rev_transfer_clear_ccid	     := l_gt.rev_transfer_clear_ccid_t(i);
205       g_cache(l_gt.org_id_t(i)).sales_credit_pct_limit	     := l_gt.sales_credit_pct_limit_t(i);
206       g_cache(l_gt.org_id_t(i)).max_wrtoff_amount	     := l_gt.max_wrtoff_amount_t(i);
207       g_cache(l_gt.org_id_t(i)).irec_cc_receipt_method_id    := l_gt.irec_cc_receipt_method_id_t(i);
208       g_cache(l_gt.org_id_t(i)).show_billing_number_flag     := l_gt.show_billing_number_flag_t(i);
209       g_cache(l_gt.org_id_t(i)).cross_currency_rate_type     := l_gt.cross_currency_rate_type_t(i);
210       g_cache(l_gt.org_id_t(i)).document_seq_gen_level	     := l_gt.document_seq_gen_level_t(i);
211       g_cache(l_gt.org_id_t(i)).calc_tax_on_credit_memo_flag := l_gt.calc_tax_on_credit_memo_flag_t(i);
212       g_cache(l_gt.org_id_t(i)).irec_ba_receipt_method_id    := l_gt.irec_ba_receipt_method_id_t(i);
213       g_cache(l_gt.org_id_t(i)).tm_installed_flag            := l_gt.tm_installed_flag_t(i);
214       g_cache(l_gt.org_id_t(i)).tm_default_setup_flag        := l_gt.tm_default_setup_flag_t(i);
215       g_cache(l_gt.org_id_t(i)).payment_threshold            := l_gt.payment_threshold_t(i);
216       g_cache(l_gt.org_id_t(i)).standard_refund              := l_gt.standard_refund_t(i);
217       g_cache(l_gt.org_id_t(i)).credit_classification1       := l_gt.credit_classification1_t(i);
218       g_cache(l_gt.org_id_t(i)).credit_classification2       := l_gt.credit_classification2_t(i);
219       g_cache(l_gt.org_id_t(i)).credit_classification3       := l_gt.credit_classification3_t(i);
220       g_cache(l_gt.org_id_t(i)).unmtch_claim_creation_flag   := l_gt.unmtch_claim_creation_flag_t(i);
221       g_cache(l_gt.org_id_t(i)).matched_claim_creation_flag  := l_gt.matched_claim_creation_flag_t(i);
222       g_cache(l_gt.org_id_t(i)).matched_claim_excl_cm_flag   := l_gt.matched_claim_excl_cm_flag_t(i);
226 --new end
223       g_cache(l_gt.org_id_t(i)).min_wrtoff_amount            := l_gt.min_wrtoff_amount_t(i);
224       g_cache(l_gt.org_id_t(i)).min_refund_amount            := l_gt.min_refund_amount_t(i);
225 
227 
228     /* --------------------------------------------------------------------------
229         End AR-specific assignments
230        --------------------------------------------------------------------------- */
231      END LOOP;
232 
233     /* --------------------------------------------------------------------------
234           First, get the default org_id from MO: Default Operating Unit
235           and populate g_current_org_id
236        --------------------------------------------------------------------------- */
237 
238        mo_utils.get_default_ou(l_default_org_id,l_default_ou_name,l_count);
239        ar_mo_global_cache.set_current_org_id(l_default_org_id);
240 
241    IF PG_DEBUG in ('Y', 'C') THEN
242       arp_util.debug('get_org_attributes: ' || 'ar_mo_global_cache.populate()-');
243    END IF;
244 
245    END populate;
246 
247     /* --------------------------------------------------------------------------
248        This function returns one row of cached data.
249        --------------------------------------------------------------------------- */
250 
251         FUNCTION get_org_attributes(p_org_id  NUMBER)
252                 RETURN ar_mo_cache_utils.GlobalsRecord is
253         l_exp_flag   varchar2(1);
254        BEGIN
255             IF PG_DEBUG in ('Y', 'C') THEN
256                arp_util.debug('ar_mo_global_cache.get_org_attributes()');
257             END IF;
258        --Bug 4517382 : On demand caching of OU information.
259           IF NOT(g_cache.exists(p_org_id))  THEN
260              ar_mo_global_cache.populate(p_org_id);
261           END IF;
262 
263             RETURN g_cache(p_org_id);
264        EXCEPTION
265             WHEN no_data_found THEN
266                  -- Through an exception, org id attribute that you
267                  -- are trying to retrieve is not cached ever
268             /* ---------------------------------------------
269                Check row exists in ar_system_parameter
270                ---------------------------------------------- */
271                begin
272                   SELECT 'x' into l_exp_flag
273                   from ar_system_parameters
274                   where org_id = p_org_id;
275                exception
276                    WHEN NO_DATA_FOUND THEN
277                      IF PG_DEBUG in ('Y', 'C') THEN
278                         arp_util.debug('get_org_attributes: ' || 'EXCEPTION: NO_DATA_FOUND IN SYSTEM PARAMETERS
279                                       - ar_mo_global_cache.get_org_attributes' );
280                      END IF;
281                      FND_MESSAGE.set_name('AR','AR_NO_ROW_IN_SYSTEM_PARAMETERS');
282                      APP_EXCEPTION.raise_exception;
283                      RAISE;
284                end;
285             /* ---------------------------------------------
286                Check row exists in gl sets of books
287                ---------------------------------------------- */
288                begin
289                    SELECT 'x' into l_exp_flag
290                    from ar_system_parameters sp,
291                         gl_sets_of_books sob
292                    where sob.set_of_books_id = sp.set_of_books_id
293                          and sp.org_id = p_org_id;
294                exception
295                   when no_data_found then
296                       IF PG_DEBUG in ('Y', 'C') THEN
297                          arp_util.debug('get_org_attributes: ' || 'EXCEPTION: NO_DATA_FOUND IN SET OF BOOKS
298                                        -  ar_mo_global_cache.get_org_attributes' );
299                       END IF;
300                       FND_MESSAGE.set_name('AR','AR_NO_ROW_IN_GL_SET_OF_BOOKS');
301                       APP_EXCEPTION.raise_exception;
302                       RAISE;
303                end;
304              /* ---------------------------------------------
305                 Check row exists in fnd_currencies
306                 ---------------------------------------------- */
307                begin
308                       SELECT 'x' into l_exp_flag
309                       FROM   ar_system_parameters sp,
310                              gl_sets_of_books sob,
311                              fnd_currencies c
312                       WHERE  sob.set_of_books_id = sp.set_of_books_id
313                              and sp.org_id =  p_org_id
314                              and  sob.currency_code = c.currency_code;
315                exception
316                     when no_data_found then
317                          IF PG_DEBUG in ('Y', 'C') THEN
318                             arp_util.debug('get_org_attributes: ' || 'EXCEPTION: NO_DATA_FOUND IN CURRENCIES
319                                          - ar_mo_global_cache.get_org_attributes' );
320                          END IF;
321                          FND_MESSAGE.set_name('AR','AR_NO_ROW_IN_FND_CURRENCIES');
322                          APP_EXCEPTION.raise_exception;
323                          RAISE;
324                end;
325              WHEN value_error THEN
326                   RETURN null;
327        END get_org_attributes;
328 
329     /* --------------------------------------------------------------------------
330        This function returns current context org_id .
331        --------------------------------------------------------------------------- */
332 
333        FUNCTION get_current_org_id
334                 RETURN number is
335        BEGIN
336             arp_util.debug('ar_mo_global_cache.get_current_org_id()');
337             RETURN ar_mo_global_cache.g_current_org_id ;
338        END get_current_org_id;
339 
340 
341     /* --------------------------------------------------------------------------
342        This procedure set the current org_id
346         BEGIN
343        --------------------------------------------------------------------------- */
344 
345         PROCEDURE set_current_org_id(p_org_id number) is
347             IF PG_DEBUG in ('Y', 'C') THEN
348                arp_util.debug('ar_mo_global_cache.set_current_org_id()');
349             END IF;
350             ar_mo_global_cache.g_current_org_id  :=p_org_id;
351         END set_current_org_id;
352 
353 END ar_mo_global_cache;