1 PACKAGE BODY GL_FORMSINFO AS
2 /* $Header: gligcfib.pls 120.19 2005/07/29 16:58:51 djogg ship $ */
3
4 PROCEDURE get_coa_info (x_chart_of_accounts_id IN NUMBER,
5 x_segment_delimiter IN OUT NOCOPY VARCHAR2,
6 x_enabled_segment_count IN OUT NOCOPY NUMBER,
7 x_segment_order_by IN OUT NOCOPY VARCHAR2,
8 x_accseg_segment_num IN OUT NOCOPY NUMBER,
9 x_accseg_app_col_name IN OUT NOCOPY VARCHAR2,
10 x_accseg_left_prompt IN OUT NOCOPY VARCHAR2,
11 x_balseg_segment_num IN OUT NOCOPY NUMBER,
12 x_balseg_app_col_name IN OUT NOCOPY VARCHAR2,
13 x_balseg_left_prompt IN OUT NOCOPY VARCHAR2,
14 x_mgtseg_segment_num IN OUT NOCOPY NUMBER,
15 x_mgtseg_app_col_name IN OUT NOCOPY VARCHAR2,
16 x_mgtseg_left_prompt IN OUT NOCOPY VARCHAR2,
17 x_ieaseg_segment_num IN OUT NOCOPY NUMBER,
18 x_ieaseg_app_col_name IN OUT NOCOPY VARCHAR2,
19 x_ieaseg_left_prompt IN OUT NOCOPY VARCHAR2) IS
20
21 CURSOR seg_count IS
22 SELECT segment_num, application_column_name
23 FROM fnd_id_flex_segments
24 WHERE application_id = 101
25 AND id_flex_code = 'GL#'
26 AND enabled_flag = 'Y'
27 AND id_flex_num = x_chart_of_accounts_id
28 ORDER BY segment_num;
29 dumdum BOOLEAN := FALSE;
30
31 x_seg_name VARCHAR2(30);
32 x_value_set VARCHAR2(60);
33 BEGIN
34
35 -- Identify the natural account and balancing segments
36 dumdum := FND_FLEX_APIS.get_qualifier_segnum(
37 101, 'GL#', x_chart_of_accounts_id,
38 'GL_ACCOUNT', x_accseg_segment_num);
39 dumdum := FND_FLEX_APIS.get_qualifier_segnum(
40 101, 'GL#', x_chart_of_accounts_id,
41 'GL_BALANCING', x_balseg_segment_num);
42 dumdum := FND_FLEX_APIS.get_qualifier_segnum(
43 101, 'GL#', x_chart_of_accounts_id,
44 'GL_MANAGEMENT', x_mgtseg_segment_num);
45 dumdum := FND_FLEX_APIS.get_qualifier_segnum(
46 101, 'GL#', x_chart_of_accounts_id,
47 'GL_INTERCOMPANY', x_ieaseg_segment_num);
48
49 -- Get the segment delimiter
50 x_segment_delimiter := FND_FLEX_APIS.get_segment_delimiter(
51 101, 'GL#', x_chart_of_accounts_id);
52
53 -- Count 'em up and string 'em together
54 x_enabled_segment_count := 0;
55 FOR r IN seg_count LOOP
56 -- How many enabled segs are there?
57 x_enabled_segment_count := seg_count%ROWCOUNT;
58 -- Record the order by string
59 IF seg_count%ROWCOUNT = 1 THEN
60 x_segment_order_by := r.application_column_name;
61 ELSE
62 x_segment_order_by := x_segment_order_by||
63 ','||
64 r.application_column_name;
65 END IF;
66 -- If this is either the accseg or balseg, get more info
67 IF r.segment_num = x_accseg_segment_num THEN
68 IF (FND_FLEX_APIS.get_segment_info(
69 101, 'GL#', x_chart_of_accounts_id,
70 r.segment_num, x_accseg_app_col_name,
71 x_seg_name, x_accseg_left_prompt, x_value_set)) THEN
72 null;
73 END IF;
74 ELSIF r.segment_num = x_balseg_segment_num THEN
75 IF (FND_FLEX_APIS.get_segment_info(
76 101, 'GL#', x_chart_of_accounts_id,
77 r.segment_num, x_balseg_app_col_name,
78 x_seg_name, x_balseg_left_prompt, x_value_set)) THEN
79 null;
80 END IF;
81 ELSIF r.segment_num = x_mgtseg_segment_num THEN
82 IF (FND_FLEX_APIS.get_segment_info(
83 101, 'GL#', x_chart_of_accounts_id,
84 r.segment_num, x_mgtseg_app_col_name,
85 x_seg_name, x_mgtseg_left_prompt, x_value_set)) THEN
86 null;
87 END IF;
88 ELSIF r.segment_num = x_ieaseg_segment_num THEN
89 IF (FND_FLEX_APIS.get_segment_info(
90 101, 'GL#', x_chart_of_accounts_id,
91 r.segment_num, x_ieaseg_app_col_name,
92 x_seg_name, x_ieaseg_left_prompt, x_value_set)) THEN
93 null;
94 END IF;
95 END IF;
96 END LOOP;
97
98 EXCEPTION
99 WHEN OTHERS THEN
100 app_exception.raise_exception;
101 END get_coa_info;
102
103
104 PROCEDURE get_access_info (x_access_set_id IN NUMBER,
105 x_name IN OUT NOCOPY VARCHAR2,
106 x_enabled_flag IN OUT NOCOPY VARCHAR2,
107 x_security_segment_code IN OUT NOCOPY VARCHAR2,
108 x_chart_of_accounts_id IN OUT NOCOPY NUMBER,
109 x_period_set_name IN OUT NOCOPY VARCHAR2,
110 x_accounted_period_type IN OUT NOCOPY VARCHAR2,
111 x_automatically_created_flag IN OUT NOCOPY VARCHAR2 ) IS
112 CURSOR access_info_curr IS
113 SELECT
114 name,
115 enabled_flag,
116 security_segment_code,
117 chart_of_accounts_id,
118 period_set_name,
119 accounted_period_type,
120 automatically_created_flag
121 FROM
122 GL_ACCESS_SETS
123 WHERE
124 access_set_id = X_access_set_id;
125 BEGIN
126 OPEN access_info_curr;
127 FETCH access_info_curr INTO
128 X_name,
129 X_enabled_flag,
130 X_security_segment_code,
131 X_chart_of_accounts_id,
132 X_period_set_name,
133 X_accounted_period_type,
134 X_automatically_created_flag;
135 CLOSE access_info_curr;
136
137 EXCEPTION
138 WHEN NO_DATA_FOUND THEN
139 fnd_message.set_name('SQLGL', 'GL_SHRD_INVALID_ACCESSID');
140 fnd_message.set_token('ACCESSID', to_char(X_access_set_id), FALSE);
141 app_exception.raise_exception;
142 WHEN OTHERS THEN
143 app_exception.raise_exception;
144
145 END;
146
147 FUNCTION check_access ( X_access_set_id IN NUMBER,
148 X_ledger_id IN NUMBER,
149 X_segment_value IN VARCHAR2,
150 X_edate IN DATE) RETURN VARCHAR2 IS
151
152 CURSOR check_access_ledger IS
153 SELECT access_privilege_code
154 FROM gl_access_set_ledgers
155 WHERE access_set_id = X_access_set_id
156 AND ledger_id = X_ledger_id
157 AND ( (X_edate IS NULL)
158 OR (trunc(X_edate) BETWEEN nvl(trunc(start_date), trunc(X_edate)-1)
159 AND nvl(trunc(end_date), trunc(X_edate)+1)));
160
161 CURSOR check_access_segment IS
162 SELECT decode(max(decode(access_privilege_code, 'B', 2, 1)), 1, 'R', 2, 'B', 'N')
163 FROM gl_access_set_assignments
164 WHERE access_set_id = X_access_set_id
165 AND segment_value = X_segment_value
166 AND ( (X_edate IS NULL)
167 OR (trunc(X_edate) BETWEEN nvl(trunc(start_date), trunc(X_edate)-1)
168 AND nvl(trunc(end_date), trunc(X_edate)+1)));
169
170 CURSOR check_access_ls IS
171 SELECT access_privilege_code
172 FROM gl_access_set_assignments
173 WHERE access_set_id = X_access_set_id
174 AND ledger_id = X_ledger_id
175 AND segment_value = X_segment_value
176 AND ( (X_edate IS NULL)
177 OR (trunc(X_edate) BETWEEN nvl(trunc(start_date), trunc(X_edate)-1)
178 AND nvl(trunc(end_date), trunc(X_edate)+1)));
179
180 X_access_privilege_code VARCHAR2(1);
181
182 BEGIN
183 IF (X_ledger_id IS NULL) THEN
184 IF (X_segment_value IS NULL) THEN
185 RETURN('B');
186 ELSE
187 OPEN check_access_segment;
188 FETCH check_access_segment INTO X_access_privilege_code;
189 IF NOT check_access_segment%FOUND THEN
190 X_access_privilege_code := gl_formsinfo.NO_ACCESS;
191 END IF;
192 CLOSE check_access_segment;
193 END IF;
194 ELSIF (X_segment_value IS NULL) THEN
195 OPEN check_access_ledger;
196 FETCH check_access_ledger INTO X_access_privilege_code;
197 IF NOT check_access_ledger%FOUND THEN
198 X_access_privilege_code := gl_formsinfo.NO_ACCESS;
199 END IF;
200 CLOSE check_access_ledger;
201 ELSE
202 OPEN check_access_ls;
203 FETCH check_access_ls INTO X_access_privilege_code;
204 IF NOT check_access_ls%FOUND THEN
205 X_access_privilege_code := gl_formsinfo.NO_ACCESS;
206 END IF;
207 CLOSE check_access_ls;
208 END IF;
209
210 return( X_access_privilege_code);
211
212 EXCEPTION
213 WHEN OTHERS THEN
214 app_exception.raise_exception;
215 END check_access;
216
217
218 FUNCTION get_ledger_type ( X_ledger_id IN NUMBER ) RETURN VARCHAR2 IS
219
220 CURSOR gsi IS
221 SELECT object_type_code
222 FROM gl_ledgers
223 WHERE ledger_id = X_ledger_id;
224
225 X_ledger_type VARCHAR2(1);
226
227 BEGIN
228 OPEN gsi;
229 FETCH gsi INTO X_ledger_type;
230 CLOSE gsi;
231
232 return( X_ledger_type );
233
234 EXCEPTION
235 WHEN NO_DATA_FOUND THEN
236 fnd_message.set_name('SQLGL', 'GL_SHRD_INVALID_LEDGERID');
237 fnd_message.set_token('LEDGERID', to_char(X_ledger_id), FALSE);
238 app_exception.raise_exception;
239 WHEN OTHERS THEN
240 app_exception.raise_exception;
241 END;
242
243
244 FUNCTION get_default_ledger ( X_access_set_id IN NUMBER,
245 X_access_privilege_code IN VARCHAR2,
246 X_edate IN DATE) RETURN NUMBER IS
247
248 -- This cursor is used to find out if the default ledger specified in the
249 -- access set satisfies the access privilege and date requested.
250 CURSOR sdl IS
251 SELECT asl.ledger_id
252 FROM gl_access_set_ledgers asl
253 WHERE asl.access_set_id = X_access_set_id
254 AND asl.ledger_id = (select gas.default_ledger_id
255 from gl_access_sets gas
256 where gas.access_set_id = asl.access_set_id)
257 AND ( ( (X_access_privilege_code = 'F')
258 AND (asl.access_privilege_code = 'F'))
259 OR ( (X_access_privilege_code = 'B')
260 AND (asl.access_privilege_code IN ('F', 'B')))
261 OR ( X_access_privilege_code = 'R'))
262 AND ( (X_edate IS NULL)
263 OR (trunc(X_edate) BETWEEN nvl(trunc(asl.start_date),trunc(X_edate)-1)
264 AND nvl(trunc(asl.end_date), trunc(X_edate)+1)));
265
266 CURSOR gdl IS
267 SELECT distinct ledger_id
268 FROM gl_access_set_ledgers
269 WHERE access_set_id = X_access_set_id
270 AND ( ( (X_access_privilege_code = 'F')
271 AND (access_privilege_code = 'F'))
272 OR ( (X_access_privilege_code = 'B')
273 AND (access_privilege_code IN ('F', 'B')))
274 OR ( X_access_privilege_code = 'R'))
275 AND ( (X_edate IS NULL)
276 OR (trunc(X_edate) BETWEEN nvl(trunc(start_date), trunc(X_edate)-1)
277 AND nvl(trunc(end_date), trunc(X_edate)+1)));
278
279 X_ledger_id NUMBER;
280 X_ledger_id2 NUMBER;
281
282 BEGIN
283 IF (X_access_privilege_code NOT IN
284 (gl_formsinfo.FULL_ACCESS,
285 gl_formsinfo.WRITE_ACCESS,
286 gl_formsinfo.READ_ACCESS)) THEN
287 RETURN(-1);
288 END IF;
289
290 -- First check if there is a default ledger assigned to the access set
291 -- that satisfies the given access privilege level. If a default ledger
292 -- is found here, we can return the default ledger ID.
293 OPEN sdl;
294 FETCH sdl INTO X_ledger_id;
295 IF sdl%FOUND THEN
296 CLOSE sdl;
297 return( X_ledger_id );
298 END IF;
299
300 CLOSE sdl;
301
302 -- Since there is no default ledger set up for this access set
303 -- or the default ledger specified does not satisfy the access privilege
304 -- or date requested,
305 -- now check if there is one and only one ledger assigned to this access
306 -- set that satisfies the access prilege level and date requested
307 OPEN gdl;
308 FETCH gdl INTO X_ledger_id;
309 IF gdl%FOUND THEN
310 FETCH gdl INTO X_ledger_id2;
311 IF gdl%FOUND THEN
312 X_ledger_id := -1;
313 END IF;
314 ELSE
315 X_ledger_id := -1;
316 END IF;
317
318 CLOSE gdl;
319
320 return( X_ledger_id );
321
322 EXCEPTION
323 WHEN OTHERS THEN
324 app_exception.raise_exception;
325 END get_default_ledger;
326
327 FUNCTION has_single_ledger ( X_access_set_id IN NUMBER ) RETURN BOOLEAN IS
328 CURSOR ledger_curr IS
329 SELECT count(*)
330 FROM gl_access_set_ledgers
331 WHERE access_set_id = X_access_set_id
332 AND rownum < 3;
333
334 ledger_count NUMBER;
335 BEGIN
336 OPEN ledger_curr;
337 FETCH ledger_curr INTO ledger_count;
338 IF (ledger_count = 1) THEN
339 return(TRUE);
340 ELSE
341 return(FALSE);
342 END IF;
343 END has_single_ledger;
344
345 FUNCTION write_any_ledger ( X_access_set_id IN NUMBER ) RETURN BOOLEAN IS
346 CURSOR ledger_access_curr IS
347 SELECT nvl(max(1),0)
348 FROM gl_access_set_ledgers
349 WHERE access_set_id = X_access_set_id
350 AND access_privilege_code in ('W', 'F')
351 AND rownum < 2;
352
353 ledger_access NUMBER;
354 BEGIN
355 OPEN ledger_access_curr;
356 FETCH ledger_access_curr INTO ledger_access;
357 IF (ledger_access = 1) THEN
358 return(TRUE);
359 ELSE
360 return(FALSE);
361 END IF;
362 END write_any_ledger;
363
364 PROCEDURE get_ledger_info (
365 X_ledger_id IN NUMBER,
366 X_name IN OUT NOCOPY VARCHAR2,
367 X_short_name IN OUT NOCOPY VARCHAR2,
368 X_chart_of_accounts_id IN OUT NOCOPY NUMBER,
369 X_currency_code IN OUT NOCOPY VARCHAR2,
370 X_period_set_name IN OUT NOCOPY VARCHAR2,
371 X_accounted_period_type IN OUT NOCOPY VARCHAR2,
372 X_ret_earn_ccid IN OUT NOCOPY NUMBER,
373 X_suspense_allowed_flag IN OUT NOCOPY VARCHAR2,
374 X_allow_intercompany_post_flag IN OUT NOCOPY VARCHAR2,
375 X_enable_average_balances_flag IN OUT NOCOPY VARCHAR2,
376 X_enable_bc_flag IN OUT NOCOPY VARCHAR2,
377 X_require_budget_journals_flag IN OUT NOCOPY VARCHAR2,
378 X_enable_je_approval_flag IN OUT NOCOPY VARCHAR2,
379 X_enable_automatic_tax_flag IN OUT NOCOPY VARCHAR2,
380 X_consolidation_ledger_flag IN OUT NOCOPY VARCHAR2,
381 X_translate_eod_flag IN OUT NOCOPY VARCHAR2,
382 X_translate_qatd_flag IN OUT NOCOPY VARCHAR2,
383 X_translate_yatd_flag IN OUT NOCOPY VARCHAR2,
384 X_automatically_created_flag IN OUT NOCOPY VARCHAR2,
385 X_track_rnd_imbalance_flag IN OUT NOCOPY VARCHAR2,
386 X_alc_ledger_type_code IN OUT NOCOPY VARCHAR2,
387 X_reconciliation_flag IN OUT NOCOPY VARCHAR2,
388 X_object_type_code IN OUT NOCOPY VARCHAR2,
389 X_le_ledger_type_code IN OUT NOCOPY VARCHAR2,
390 X_bal_seg_value_option_code IN OUT NOCOPY VARCHAR2,
391 X_bal_seg_column_name IN OUT NOCOPY VARCHAR2,
392 X_mgt_seg_value_option_code IN OUT NOCOPY VARCHAR2,
393 X_mgt_seg_column_name IN OUT NOCOPY VARCHAR2,
394 X_description IN OUT NOCOPY VARCHAR2,
395 X_latest_opened_period_name IN OUT NOCOPY VARCHAR2,
396 X_latest_encumbrance_year IN OUT NOCOPY NUMBER,
397 X_future_enterable_periods IN OUT NOCOPY NUMBER,
398 X_cum_trans_ccid IN OUT NOCOPY NUMBER,
399 X_res_encumb_ccid IN OUT NOCOPY NUMBER,
400 X_net_income_ccid IN OUT NOCOPY NUMBER,
401 X_rounding_ccid IN OUT NOCOPY NUMBER,
402 X_transaction_calendar_id IN OUT NOCOPY NUMBER,
403 X_daily_translation_rate_type IN OUT NOCOPY VARCHAR2,
404 X_legal_entity_id IN OUT NOCOPY NUMBER,
405 X_period_average_rate_type IN OUT NOCOPY VARCHAR2,
406 X_period_end_rate_type IN OUT NOCOPY VARCHAR2,
407 X_ledger_Category_code IN OUT NOCOPY VARCHAR2) IS
408
409 CURSOR gsi IS
410 SELECT
411 name,
412 short_name,
413 chart_of_accounts_id,
414 currency_code,
415 period_set_name,
416 accounted_period_type,
417 ret_earn_code_combination_id,
418 suspense_allowed_flag,
419 allow_intercompany_post_flag,
420 enable_average_balances_flag,
421 enable_budgetary_control_flag,
422 require_budget_journals_flag,
423 enable_je_approval_flag,
424 enable_automatic_tax_flag,
425 consolidation_ledger_flag,
426 translate_eod_flag,
427 translate_qatd_flag,
428 translate_yatd_flag,
429 automatically_created_flag,
430 track_rounding_imbalance_flag,
431 enable_reconciliation_flag,
432 alc_ledger_type_code,
433 object_type_code,
434 le_ledger_type_code,
435 bal_seg_value_option_code,
436 bal_seg_column_name,
437 mgt_seg_value_option_code,
438 mgt_seg_column_name,
439 description,
440 latest_opened_period_name,
441 latest_encumbrance_year,
442 future_enterable_periods_limit,
443 cum_trans_code_combination_id,
444 res_encumb_code_combination_id,
445 net_income_code_combination_id,
446 rounding_code_combination_id,
447 transaction_calendar_id,
448 daily_translation_rate_type,
449 period_average_rate_type,
450 period_end_rate_type,
451 ledger_category_code
452 FROM
453 GL_LEDGERS
454 WHERE
455 ledger_id = X_ledger_id;
456
457 BEGIN
458 OPEN gsi;
459 FETCH gsi INTO
460 X_name,
461 X_short_name,
462 X_chart_of_accounts_id,
463 X_currency_code,
464 X_period_set_name,
465 X_accounted_period_type,
466 X_ret_earn_ccid,
467 X_suspense_allowed_flag,
468 X_allow_intercompany_post_flag,
469 X_enable_average_balances_flag,
470 X_enable_bc_flag,
471 X_require_budget_journals_flag,
472 X_enable_je_approval_flag,
473 X_enable_automatic_tax_flag,
474 X_consolidation_ledger_flag,
475 X_translate_eod_flag,
476 X_translate_qatd_flag,
477 X_translate_yatd_flag,
478 X_automatically_created_flag,
479 X_track_rnd_imbalance_flag,
480 X_reconciliation_flag,
481 X_alc_ledger_type_code,
482 X_object_type_code,
483 X_le_ledger_type_code,
484 X_bal_seg_value_option_code,
485 X_bal_seg_column_name,
486 X_mgt_seg_value_option_code,
487 X_mgt_seg_column_name,
488 X_description,
489 X_latest_opened_period_name,
490 X_latest_encumbrance_year,
491 X_future_enterable_periods,
492 X_cum_trans_ccid,
493 X_res_encumb_ccid,
494 X_net_income_ccid,
495 X_rounding_ccid,
496 X_transaction_calendar_id,
497 X_daily_translation_rate_type,
498 X_period_average_rate_type,
499 X_period_end_rate_type,
500 X_ledger_category_code;
501 CLOSE gsi;
502
503 EXCEPTION
504 WHEN NO_DATA_FOUND THEN
505 fnd_message.set_name('SQLGL', 'GL_SHRD_INVALID_LEDGERID');
506 fnd_message.set_token('LEDGERID', to_char(X_ledger_id), FALSE);
507 app_exception.raise_exception;
508 WHEN OTHERS THEN
509 app_exception.raise_exception;
510
511 END get_ledger_info;
512
513
514
515 FUNCTION valid_bsv ( X_ledger_id IN NUMBER,
516 X_bsv IN VARCHAR2,
517 X_edate IN DATE) RETURN VARCHAR2 IS
518
519 CURSOR has_all IS
520 SELECT bal_seg_value_option_code
521 FROM gl_ledgers
522 WHERE ledger_id = X_ledger_id;
523
524 CURSOR is_valid IS
525 SELECT 'Valid'
526 FROM gl_ledger_segment_values
527 WHERE ledger_id = X_ledger_id
528 AND segment_type_code = 'B'
529 AND segment_value = X_bsv
530 AND ( (X_edate IS NULL)
531 OR (trunc(X_edate) BETWEEN nvl(trunc(start_date), trunc(X_edate)-1)
532 AND nvl(trunc(end_date), trunc(X_edate)+1)));
533
534 Dummy VARCHAR2(30);
535 bsv_option VARCHAR2(1);
536 BEGIN
537 OPEN has_all;
538 FETCH has_all INTO bsv_option;
539 CLOSE has_all;
540
541 -- If all bsvs are allowed, then return Yes
542 IF (nvl(bsv_option,'I') = 'A') THEN
543 RETURN('Y');
544 ELSE
545 OPEN is_valid;
546 FETCH is_valid INTO Dummy;
547 IF is_valid%FOUND THEN
548 CLOSE is_valid;
549 RETURN('Y');
550 ELSE
551 CLOSE is_valid;
552 RETURN('N');
553 END IF;
554 END IF;
555 EXCEPTION
556 WHEN OTHERS THEN
557 app_exception.raise_exception;
558 END valid_bsv;
559
560
561 FUNCTION valid_msv ( X_ledger_id IN NUMBER,
562 X_msv IN VARCHAR2,
563 X_edate IN DATE) RETURN VARCHAR2 IS
564
565 CURSOR has_all IS
566 SELECT mgt_seg_value_option_code
567 FROM gl_ledgers
568 WHERE ledger_id = X_ledger_id;
569
570 CURSOR is_valid IS
571 SELECT 'Valid'
572 FROM gl_ledger_segment_values
573 WHERE ledger_id = X_ledger_id
574 AND segment_type_code = 'M'
575 AND segment_value = X_msv
576 AND ( (X_edate IS NULL)
577 OR (trunc(X_edate) BETWEEN nvl(trunc(start_date), trunc(X_edate)-1)
578 AND nvl(trunc(end_date), trunc(X_edate)+1)));
579
580 Dummy VARCHAR2(30);
581 msv_option VARCHAR2(1);
582 BEGIN
583 OPEN has_all;
584 FETCH has_all INTO msv_option;
585 CLOSE has_all;
586
587 -- If all bsvs are allowed, then return Yes
588 IF (nvl(msv_option,'I') = 'A') THEN
589 RETURN('Y');
590 ELSE
591 OPEN is_valid;
592 FETCH is_valid INTO Dummy;
593 IF is_valid%FOUND THEN
594 CLOSE is_valid;
595 RETURN('Y');
596 ELSE
597 CLOSE is_valid;
598 RETURN('N');
599 END IF;
600 END IF;
601 EXCEPTION
602 WHEN OTHERS THEN
603 app_exception.raise_exception;
604 END valid_msv;
605
606 FUNCTION multi_org RETURN BOOLEAN IS
607 CURSOR is_multi IS
608 SELECT nvl(multi_org_flag, 'N')
609 FROM fnd_product_groups;
610 dummy VARCHAR2(1);
611 BEGIN
612 OPEN is_multi;
613 FETCH is_multi INTO dummy;
614
615 IF is_multi%FOUND THEN
616 CLOSE is_multi;
617
618 IF (dummy = 'N') THEN
619 RETURN (FALSE);
620 ELSE
621 RETURN (TRUE);
622 END IF;
623
624 ELSE
625 CLOSE is_multi;
626 RETURN(FALSE);
627 END IF;
628 END multi_org;
629
630 FUNCTION install_info(appl_id IN NUMBER,
631 dep_appl_id IN NUMBER,
632 status OUT NOCOPY VARCHAR2) RETURN BOOLEAN IS
633 industry VARCHAR2(1);
634 BEGIN
635 RETURN(fnd_installation.get(appl_id, dep_appl_id, status, industry));
636 END install_info;
637
638 PROCEDURE get_iea_info(x_subsidiary_id NUMBER,
639 x_name IN OUT NOCOPY VARCHAR2,
640 x_chart_of_accounts_id IN OUT NOCOPY NUMBER,
641 x_ledger_id IN OUT NOCOPY NUMBER,
642 x_enabled_flag IN OUT NOCOPY VARCHAR2,
643 x_subsidiary_type_code IN OUT NOCOPY VARCHAR2,
644 x_company_value IN OUT NOCOPY VARCHAR2,
645 x_currency_code IN OUT NOCOPY VARCHAR2,
646 x_autoapprove_flag IN OUT NOCOPY VARCHAR2,
647 x_view_partner_lines_flag IN OUT NOCOPY VARCHAR2,
648 x_conversion_type_code IN OUT NOCOPY VARCHAR2,
649 x_conversion_type IN OUT NOCOPY VARCHAR2,
650 x_remote_instance_flag IN OUT NOCOPY VARCHAR2,
651 x_transfer_ledger_id IN OUT NOCOPY NUMBER,
652 x_transfer_currency_code IN OUT NOCOPY VARCHAR2,
653 x_contact IN OUT NOCOPY VARCHAR2,
654 x_notification_threshold IN OUT NOCOPY NUMBER) IS
655 BEGIN
656
657
658 /* GL_IEA_SUBSIDIARY_PKG dropped in Ledger Architecture.
659 gl_iea_subsidiary_pkg.select_columns(
660 x_subsidiary_id,
661 x_name,
662 x_chart_of_accounts_id,
663 x_ledger_id,
664 x_enabled_flag,
665 x_subsidiary_type_code,
666 x_company_value,
667 x_currency_code,
668 x_autoapprove_flag,
669 x_view_partner_lines_flag,
670 x_conversion_type_code,
671 x_conversion_type,
672 x_remote_instance_flag,
673 x_transfer_ledger_id,
674 x_transfer_currency_code,
675 x_contact,
676 x_notification_threshold);
677 */
678
679 x_chart_of_accounts_id := NULL;
680
681 END get_iea_info;
682
683 PROCEDURE get_usage_info(
684 x_average_balances_flag IN OUT NOCOPY VARCHAR2,
685 x_consolidation_ledger_flag IN OUT NOCOPY VARCHAR2) IS
686 BEGIN
687 gl_system_usages_pkg.select_columns(x_average_balances_flag,
688 x_consolidation_ledger_flag);
689 END get_usage_info;
690
691 PROCEDURE get_business_days_pattern(X_transaction_cal_id IN NUMBER,
692 X_start_date IN DATE,
693 X_end_date IN DATE,
694 X_bus_days_pattern IN OUT NOCOPY VARCHAR2
695 ) IS
696 BEGIN
697 gl_trans_dates_pkg.get_business_days_pattern(
698 X_transaction_cal_id,
699 X_start_date,
700 X_end_date,
701 X_bus_days_pattern);
702 END get_business_days_pattern;
703
704 FUNCTION iea_disabled_subsidiary(X_Subsidiary_Id IN NUMBER) RETURN BOOLEAN IS
705 dummy VARCHAR2(1);
706 BEGIN
707 /*
708 IF X_Subsidiary_Id IS NOT NULL THEN
709 SELECT 'x' INTO dummy
710 FROM gl_iea_subsidiaries
711 WHERE subsidiary_id = X_Subsidiary_Id
712 AND enabled_flag = 'Y';
713 END IF;
714 */
715
716 return(FALSE);
717 EXCEPTION
718 WHEN NO_DATA_FOUND THEN
719 return(TRUE);
720 WHEN OTHERS THEN
721 fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
722 fnd_message.set_token('PROCEDURE',
723 'GL_FORMSINFO.iea_disabled_subsidiary');
724 APP_EXCEPTION.Raise_Exception;
725 END iea_disabled_subsidiary;
726
727 FUNCTION get_industry_message(Message_Name IN VARCHAR2,
728 Application_Shortname IN VARCHAR2)
729 RETURN VARCHAR2 IS
730 BEGIN
731 RETURN(gl_public_sector.get_message_name(Message_Name,
732 Application_Shortname));
733 END get_industry_message;
734
735 FUNCTION session_id RETURN NUMBER IS
736 sid NUMBER;
737 BEGIN
738 SELECT s.sid
739 INTO sid
740 FROM v$session s, v$process p
741 WHERE s.paddr = p.addr
742 AND audsid = USERENV('SESSIONID');
743
744 RETURN sid;
745 END session_id;
746
747 FUNCTION serial_id RETURN NUMBER IS
748 sid NUMBER;
749 BEGIN
750 SELECT s.serial#
751 INTO sid
752 FROM v$session s, v$process p
753 WHERE s.paddr = p.addr
754 AND audsid = USERENV('SESSIONID');
755
756 RETURN sid;
757 END serial_id;
758
759 END GL_FORMSINFO;