[Home] [Help]
PACKAGE BODY: APPS.XLA_DESCRIPT_DETAILS_PKG
Source
1 PACKAGE BODY xla_descript_details_pkg AS
2 /* $Header: xlaamdpd.pkb 120.5 2005/02/26 02:03:31 weshen ship $ */
3 /*======================================================================+
4 | Copyright (c) 1995-2002 Oracle Corporation |
5 | Redwood Shores, CA, USA |
6 | All rights reserved. |
7 +=======================================================================+
8 | PACKAGE NAME |
9 | xla_descript_details_pkg |
10 | |
11 | DESCRIPTION |
12 | XLA Description Priority Details Package |
13 | |
14 | HISTORY |
15 | 01-May-01 Dimple Shah Created |
16 | |
17 +======================================================================*/
18
19 /*======================================================================+
20 | |
21 | Public Procedure |
22 | |
23 | delete_desc_prio_details |
24 | |
25 | Deletes all details attached to the priority |
26 | |
27 +======================================================================*/
28
29 PROCEDURE delete_desc_prio_details
30 (p_description_prio_id IN NUMBER)
31
32 IS
33 CURSOR c_desc_prio_details
34 IS
35 SELECT description_detail_id
36 FROM xla_descript_details_b
37 WHERE description_prio_id = p_description_prio_id;
38
39 l_description_detail_id NUMBER(38);
40
41 BEGIN
42
43 xla_utility_pkg.trace('> xla_descript_details_pkg.delete_desc_prio_details' , 10);
44
45 xla_utility_pkg.trace('description_prio_id = '||p_description_prio_id , 20);
46
47 OPEN c_desc_prio_details;
48 LOOP
49 FETCH c_desc_prio_details
50 INTO l_description_detail_id;
51 EXIT WHEN c_desc_prio_details%notfound;
52
53 xla_descript_details_f_pkg.delete_row
54 (x_description_detail_id => l_description_detail_id);
55
56 END LOOP;
57 CLOSE c_desc_prio_details;
58
59 xla_utility_pkg.trace('< xla_descript_details_pkg.delete_desc_prio_details' , 10);
60
61 EXCEPTION
62 WHEN xla_exceptions_pkg.application_exception THEN
63 IF c_desc_prio_details%ISOPEN THEN
64 CLOSE c_desc_prio_details;
65 END IF;
66 RAISE;
67 WHEN OTHERS THEN
68 IF c_desc_prio_details%ISOPEN THEN
69 CLOSE c_desc_prio_details;
70 END IF;
71 xla_exceptions_pkg.raise_message
72 (p_location => 'xla_descript_details_pkg.delete_desc_prio_details');
73
74 END delete_desc_prio_details;
75
76 /*======================================================================+
77 | |
78 | Public Function |
79 | |
80 | display_desc_prio_details |
81 | |
82 | Returns details for the priority |
83 | |
84 +======================================================================*/
85
86 FUNCTION display_desc_prio_details
87 (p_description_prio_id IN NUMBER
88 ,p_chart_of_accounts_id IN NUMBER)
89
90 RETURN VARCHAR2
91
92 IS
93
94 CURSOR c_desc_prio_details
95 IS
96 SELECT user_sequence, value_type_code,
97 source_application_id, source_type_code, source_code, source_name,
98 source_flex_appl_id, source_id_flex_code,
99 flexfield_segment_code, literal
100 FROM xla_descript_details_fvl
101 WHERE description_prio_id = p_description_prio_id
102 ORDER BY user_sequence;
103
104 --
105 -- Local variables
106 --
107 l_desc_prio_detail c_desc_prio_details%rowtype;
108
109 l_desc_detail_dsp VARCHAR2(2000) := NULL;
110 l_flexfield_segment_name VARCHAR2(80);
111 l_source_id_flex_num NUMBER(15);
112
113 BEGIN
114
115 xla_utility_pkg.trace('> xla_descript_details_pkg.display_desc_prio_details' , 10);
116
117 xla_utility_pkg.trace('description_prio_id = '||p_description_prio_id , 20);
118 xla_utility_pkg.trace('description_prio_id = '||p_chart_of_accounts_id , 20);
119
120 OPEN c_desc_prio_details;
121 LOOP
122 FETCH c_desc_prio_details
123 INTO l_desc_prio_detail;
124 EXIT WHEN c_desc_prio_details%notfound;
125
126 BEGIN
127 IF l_desc_prio_detail.value_type_code = 'L' THEN
128
129 l_desc_detail_dsp := rtrim(l_desc_detail_dsp)||
130 l_desc_prio_detail.literal;
131 ELSE
132 l_desc_detail_dsp := rtrim(l_desc_detail_dsp)||
133 l_desc_prio_detail.source_name;
134
135 END IF;
136 --
137 -- Get flexfield_segment_name
138 --
139 IF l_desc_prio_detail.flexfield_segment_code is not null THEN
140
141 IF l_desc_prio_detail.source_flex_appl_id = 101 and l_desc_prio_detail.source_id_flex_code = 'GL#' THEN
142 l_flexfield_segment_name := xla_flex_pkg.get_flexfield_segment_name
143 (p_application_id => 101
144 ,p_flex_code => 'GL#'
145 ,p_chart_of_accounts_id => p_chart_of_accounts_id
146 ,p_flexfield_segment_code => l_desc_prio_detail.flexfield_segment_code);
147
148 IF l_flexfield_segment_name is null THEN
149 l_flexfield_segment_name := xla_flex_pkg.get_qualifier_name
150 (p_application_id => 101
151 ,p_id_flex_code => 'GL#'
152 ,p_qualifier_segment => l_desc_prio_detail.flexfield_segment_code);
153
154
155 END IF;
156 ELSE
157
158 l_source_id_flex_num := xla_flex_pkg.get_flexfield_structure
159 (p_application_id => l_desc_prio_detail.source_flex_appl_id
160 ,p_id_flex_code => l_desc_prio_detail.source_id_flex_code);
161
162 l_flexfield_segment_name := xla_flex_pkg.get_flexfield_segment_name
163 (p_application_id => l_desc_prio_detail.source_flex_appl_id
164 ,p_flex_code => l_desc_prio_detail.source_id_flex_code
165 ,p_chart_of_accounts_id => l_source_id_flex_num
166 ,p_flexfield_segment_code => l_desc_prio_detail.flexfield_segment_code);
167 END IF;
168
169 l_desc_detail_dsp := rtrim(l_desc_detail_dsp)||','||
170 l_flexfield_segment_name;
171 END IF;
172
173 EXCEPTION
174 WHEN VALUE_ERROR THEN
175 xla_exceptions_pkg.raise_message
176 ('XLA'
177 ,'XLA_AB_DESC_TOO_LONG'
178 ,'PROCEDURE'
179 ,'xla_descript_details_pkg.display_desc_prio_details'
180 ,'ERROR'
181 ,sqlerrm
182 );
183 END;
184
185 END LOOP;
186 CLOSE c_desc_prio_details;
187
188 xla_utility_pkg.trace('< xla_descript_details_pkg.display_desc_prio_details' , 10);
189
190 RETURN l_desc_detail_dsp;
191
192 EXCEPTION
193 WHEN xla_exceptions_pkg.application_exception THEN
194 IF c_desc_prio_details%ISOPEN THEN
195 CLOSE c_desc_prio_details;
196 END IF;
197 RAISE;
198 WHEN OTHERS THEN
199 IF c_desc_prio_details%ISOPEN THEN
200 CLOSE c_desc_prio_details;
201 END IF;
202 xla_exceptions_pkg.raise_message
203 (p_location => 'xla_descript_details_pkg.display_desc_prio_details');
204
205 END display_desc_prio_details;
206
207 END xla_descript_details_pkg;