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.14 2011/05/25 09:32:59 naneja 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);
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       g_cache(l_gt.org_id_t(i)).create_detailed_dist_flag    := l_gt.create_detailed_dist_flag_t(i);
226       g_cache(l_gt.org_id_t(i)).default_rct_mthd_for_lc_inv  := l_gt.default_rct_mthd_for_lc_inv_t(i);
227 
228 
229 --new end
230 
231     /* --------------------------------------------------------------------------
232         End AR-specific assignments
233        --------------------------------------------------------------------------- */
234      END LOOP;
235 
236     /* --------------------------------------------------------------------------
237           First, get the default org_id from MO: Default Operating Unit
238           and populate g_current_org_id
239        --------------------------------------------------------------------------- */
240 
241        mo_utils.get_default_ou(l_default_org_id,l_default_ou_name,l_count);
242        ar_mo_global_cache.set_current_org_id(l_default_org_id);
243 
244    IF PG_DEBUG in ('Y', 'C') THEN
245       arp_util.debug('get_org_attributes: ' || 'ar_mo_global_cache.populate()-');
246    END IF;
247 
248    END populate;
249 
250     /* --------------------------------------------------------------------------
251        This function returns one row of cached data.
252        --------------------------------------------------------------------------- */
253 
254         FUNCTION get_org_attributes(p_org_id  NUMBER)
255                 RETURN ar_mo_cache_utils.GlobalsRecord is
256         l_exp_flag   varchar2(1);
257        BEGIN
258             IF PG_DEBUG in ('Y', 'C') THEN
259                arp_util.debug('ar_mo_global_cache.get_org_attributes()');
260             END IF;
261        --Bug 4517382 : On demand caching of OU information.
262           IF NOT(g_cache.exists(p_org_id))  THEN
263              ar_mo_global_cache.populate(p_org_id);
264           END IF;
265 
266             RETURN g_cache(p_org_id);
267        EXCEPTION
268             WHEN no_data_found THEN
269                  -- Through an exception, org id attribute that you
270                  -- are trying to retrieve is not cached ever
271             /* ---------------------------------------------
272                Check row exists in ar_system_parameter
273                ---------------------------------------------- */
274                begin
275                   SELECT 'x' into l_exp_flag
276                   from ar_system_parameters
277                   where org_id = p_org_id;
278                exception
279                    WHEN NO_DATA_FOUND THEN
280                      IF PG_DEBUG in ('Y', 'C') THEN
281                         arp_util.debug('get_org_attributes: ' || 'EXCEPTION: NO_DATA_FOUND IN SYSTEM PARAMETERS
282                                       - ar_mo_global_cache.get_org_attributes' );
283                      END IF;
284                      FND_MESSAGE.set_name('AR','AR_NO_ROW_IN_SYSTEM_PARAMETERS');
285                      APP_EXCEPTION.raise_exception;
286                      RAISE;
287                end;
288             /* ---------------------------------------------
289                Check row exists in gl sets of books
290                ---------------------------------------------- */
291                begin
292                    SELECT 'x' into l_exp_flag
293                    from ar_system_parameters sp,
294                         gl_sets_of_books sob
295                    where sob.set_of_books_id = sp.set_of_books_id
296                          and sp.org_id = p_org_id;
297                exception
298                   when no_data_found then
299                       IF PG_DEBUG in ('Y', 'C') THEN
300                          arp_util.debug('get_org_attributes: ' || 'EXCEPTION: NO_DATA_FOUND IN SET OF BOOKS
301                                        -  ar_mo_global_cache.get_org_attributes' );
302                       END IF;
303                       FND_MESSAGE.set_name('AR','AR_NO_ROW_IN_GL_SET_OF_BOOKS');
304                       APP_EXCEPTION.raise_exception;
305                       RAISE;
306                end;
307              /* ---------------------------------------------
308                 Check row exists in fnd_currencies
309                 ---------------------------------------------- */
310                begin
311                       SELECT 'x' into l_exp_flag
312                       FROM   ar_system_parameters sp,
313                              gl_sets_of_books sob,
314                              fnd_currencies c
315                       WHERE  sob.set_of_books_id = sp.set_of_books_id
316                              and sp.org_id =  p_org_id
317                              and  sob.currency_code = c.currency_code;
318                exception
319                     when no_data_found then
320                          IF PG_DEBUG in ('Y', 'C') THEN
321                             arp_util.debug('get_org_attributes: ' || 'EXCEPTION: NO_DATA_FOUND IN CURRENCIES
322                                          - ar_mo_global_cache.get_org_attributes' );
323                          END IF;
324                          FND_MESSAGE.set_name('AR','AR_NO_ROW_IN_FND_CURRENCIES');
325                          APP_EXCEPTION.raise_exception;
326                          RAISE;
327                end;
328              WHEN value_error THEN
329                   RETURN null;
330        END get_org_attributes;
331 
332     /* --------------------------------------------------------------------------
333        This function returns current context org_id .
334        --------------------------------------------------------------------------- */
335 
336        FUNCTION get_current_org_id
337                 RETURN number is
338        BEGIN
339             arp_util.debug('ar_mo_global_cache.get_current_org_id()');
340             RETURN ar_mo_global_cache.g_current_org_id ;
341        END get_current_org_id;
342 
343 
344     /* --------------------------------------------------------------------------
345        This procedure set the current org_id
346        --------------------------------------------------------------------------- */
347 
348         PROCEDURE set_current_org_id(p_org_id number) is
349         BEGIN
350             IF PG_DEBUG in ('Y', 'C') THEN
351                arp_util.debug('ar_mo_global_cache.set_current_org_id()');
352             END IF;
353             ar_mo_global_cache.g_current_org_id  :=p_org_id;
354         END set_current_org_id;
355 
356 END ar_mo_global_cache;