DBA Data[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;