DBA Data[Home] [Help]

PACKAGE BODY: APPS.JG_INFO

Source


1 package body jg_info as
2 /*  $Header: jgzzinfb.pls 120.2 2005/02/17 15:25:33 ahansen ship $ */
3   procedure jg_get_period_dates (app_id		  IN NUMBER,
4 				 tset_of_books_id IN NUMBER,
5                                  tperiod_name     IN VARCHAR2,
6                                  tstart_date      OUT NOCOPY DATE,
7                                  tend_date        OUT NOCOPY DATE,
8 				 errbuf	   	  OUT NOCOPY VARCHAR2)
9   IS
10   BEGIN
11  	select start_date, end_date
12  	into   tstart_date, tend_date
13  	from gl_period_statuses
14  	where period_name = tperiod_name
15  	and ledger_id = tset_of_books_id     -- 11ix
16  	and application_id = app_id ;
17   EXCEPTION
18   WHEN NO_DATA_FOUND THEN
19     fnd_message.set_name('SQLGL','GL_PLL_INVALID_PERIOD') ;
20     fnd_message.set_token('PERIOD',tperiod_name) ;
21     fnd_message.set_token('SOBID',to_char(tset_of_books_id)) ;
22     errbuf := fnd_message.get ;
23 
24   WHEN OTHERS THEN
25 	errbuf := SQLERRM;
26   END;
27   procedure jg_get_set_of_books_info ( sobid IN NUMBER,
28                                        coaid OUT NOCOPY NUMBER,
29                                        sobname OUT NOCOPY VARCHAR2,
30                                        func_curr OUT NOCOPY VARCHAR2,
31                                        errbuf OUT NOCOPY VARCHAR2)
32   IS
33   BEGIN
34     select name, chart_of_accounts_id, currency_code
35     into sobname, coaid, func_curr
36     from gl_sets_of_books
37     where set_of_books_id = sobid;
38   EXCEPTION
39     WHEN NO_DATA_FOUND THEN
40     fnd_message.set_name('SQLGL','GL_PLL_INVALID_SOB') ;
41     fnd_message.set_token('SOBID',to_char(sobid)) ;
42     errbuf := fnd_message.get ;
43     WHEN OTHERS THEN
44       errbuf := SQLERRM;
45   END;
46   procedure jg_get_bud_or_enc_name ( actual_type IN VARCHAR2,
47                                      type_id IN NUMBER,
48                                      name   OUT NOCOPY VARCHAR2,
49                                      errbuf OUT NOCOPY VARCHAR2)
50   IS
51   BEGIN
52     if (actual_type = 'B') then
53       select bv.budget_name
54       into name
55       from gl_budget_versions bv
56       where bv.budget_version_id = type_id;
57     elsif (actual_type = 'E') then
58       select e.encumbrance_type
59       into name
60       from gl_encumbrance_types e
61       where e.encumbrance_type_id = type_id;
62     end if;
63   EXCEPTION
64     WHEN NO_DATA_FOUND THEN
65       if (actual_type = 'B') then
66         /* There does not exist a budget with budget version id BUDID */
67         fnd_message.set_name('SQLGL','GL_PLL_INVALID_BUDGET_VERSION') ;
68         fnd_message.set_token('BUDID',to_char(type_id)) ;
69         errbuf := fnd_message.get ;
70       else
71         /* There does not exist an encumbrance type with id ENCID */
72         fnd_message.set_name('SQLGL','GL_PLL_INVALID_ENC_TYPE') ;
73         fnd_message.set_token('ENCID',to_char(type_id)) ;
74         errbuf := fnd_message.get ;
75       end if;
76     WHEN OTHERS THEN
77       errbuf := SQLERRM;
78   END;
79   procedure jg_get_lookup_value ( lmode VARCHAR2,
80                                   code  VARCHAR2,
81                                   type  VARCHAR2,
82                                   value OUT NOCOPY VARCHAR2,
83                                   errbuf OUT NOCOPY VARCHAR2)
84   IS
85   BEGIN
86     select decode(lmode, 'M', meaning, description)
87     into value
88     from gl_lookups
89     where lookup_code = code
90     and   lookup_type = type;
91   EXCEPTION
92     WHEN NO_DATA_FOUND THEN
93         /* The lookup code CODE of lookup type TYPE is missing */
94     fnd_message.set_name('SQLGL','GL_PLL_MISSING_LOOKUP') ;
95     fnd_message.set_token('CODE',code);
96     fnd_message.set_token('TYPE',type);
97     errbuf := fnd_message.get ;
98     WHEN OTHERS THEN
99       errbuf := SQLERRM;
100   END;
101   procedure jg_get_first_period(app_id		 IN NUMBER,
102 				tset_of_books_id IN NUMBER,
103                                 tperiod_name     IN VARCHAR2,
104                                 tfirst_period    OUT NOCOPY VARCHAR2,
105 				errbuf	   	 OUT NOCOPY VARCHAR2)
106   IS
107   BEGIN
108     SELECT  a.period_name
109     INTO    tfirst_period
110     FROM    gl_period_statuses a, gl_period_statuses b
111     WHERE   a.application_id = app_id
112     AND     b.application_id = app_id
113     AND     a.ledger_id = tset_of_books_id          -- 11ix
114     AND     b.ledger_id = tset_of_books_id          -- 11ix
115     AND     a.period_type = b.period_type
116     AND     a.period_year = b.period_year
117     AND     b.period_name = tperiod_name
118     AND     a.period_num =
119            (SELECT min(c.period_num)
120               FROM gl_period_statuses c
121              WHERE c.application_id = app_id
122                AND c.ledger_id = tset_of_books_id      -- 11ix
123                AND c.period_year = a.period_year
124                AND c.period_type = a.period_type
125           GROUP BY c.period_year);
126   EXCEPTION
127   WHEN NO_DATA_FOUND THEN
128     fnd_message.set_name('SQLGL','GL_PLL_INVALID_FIRST_PERIOD') ;
129     fnd_message.set_token('PERIOD',tperiod_name) ;
130     fnd_message.set_token('SOBID',to_char(tset_of_books_id)) ;
131     errbuf := fnd_message.get ;
132   WHEN OTHERS THEN
133 	errbuf := SQLERRM;
134   END;
135   procedure jg_get_first_period_of_quarter(app_id IN NUMBER,
136 				tset_of_books_id IN NUMBER,
137                                 tperiod_name     IN VARCHAR2,
138                                 tfirst_period    OUT NOCOPY VARCHAR2,
139 				errbuf	   	 OUT NOCOPY VARCHAR2)
140   IS
141   BEGIN
142     SELECT  a.period_name
143     INTO    tfirst_period
144     FROM    gl_period_statuses a, gl_period_statuses b
145     WHERE   a.application_id = app_id
146     AND     b.application_id = app_id
147     AND     a.ledger_id = tset_of_books_id                      -- 11ix
148     AND     b.ledger_id = tset_of_books_id                      -- 11ix
149     AND     a.period_type = b.period_type
150     AND     a.period_year = b.period_year
151     AND     a.quarter_num = b.quarter_num
152     AND     b.period_name = tperiod_name
153     AND     a.period_num =
154            (SELECT min(c.period_num)
155               FROM gl_period_statuses c
156              WHERE c.application_id = app_id
157                AND c.ledger_id = tset_of_books_id               -- 11ix
158                AND c.period_year = a.period_year
159 	       AND c.quarter_num = a.quarter_num
160                AND c.period_type = a.period_type
161           GROUP BY c.period_year,c.quarter_num);
162   EXCEPTION
163   WHEN NO_DATA_FOUND THEN
164     fnd_message.set_name('SQLGL','GL_PLL_INVALID_FIRST_PERIOD') ;
165     fnd_message.set_token('PERIOD',tperiod_name) ;
166     fnd_message.set_token('SOBID',to_char(tset_of_books_id)) ;
167     errbuf := fnd_message.get ;
168   WHEN OTHERS THEN
169 	errbuf := SQLERRM;
170   END;
171   procedure jg_get_consolidation_info(
172                            cons_id NUMBER, cons_name OUT NOCOPY VARCHAR2,
173                            method OUT NOCOPY VARCHAR2, curr_code OUT NOCOPY VARCHAR2,
174                            from_sobid OUT NOCOPY NUMBER, to_sobid OUT NOCOPY NUMBER,
175                            description OUT NOCOPY VARCHAR2, start_date OUT NOCOPY DATE,
176                            end_date OUT NOCOPY DATE, errbuf OUT NOCOPY VARCHAR2) is
177   begin
178     select glc.name, glc.method, glc.from_currency_code,
179            glc.from_ledger_id, glc.to_ledger_id,              -- 11ix
180            glc.description, glc.start_date_active_11i, glc.end_date_active_11i
181     into cons_name, method, curr_code, from_sobid, to_sobid,
182          description, start_date, end_date
183     from gl_consolidation glc
184     where glc.consolidation_id = cons_id;
185   EXCEPTION
186     WHEN NO_DATA_FOUND THEN
187     fnd_message.set_name('SQLGL','GL_PLL_INVALID_CONSOLID_ID') ;
188     fnd_message.set_token('CID', to_char(cons_id));
189     errbuf := fnd_message.get ;
190   end;
191 
192 FUNCTION jg_format_curr_amt(in_precision NUMBER,
193                             in_amount_disp VARCHAR2) return VARCHAR2
194 IS
195      char_str         VARCHAR2(1);
196      str_length       NUMBER;
197      new_string       VARCHAR2(40);
198      count_pos        NUMBER;
199      done             BOOLEAN;
200 
201   BEGIN
202 
203     done := FALSE;
204     IF ((in_precision > 0) AND (in_amount_disp IS NOT NULL)) THEN
205 
206        str_length :=  nvl(length(ltrim(rtrim(in_amount_disp))),0);
207        count_pos  := 0;
208 
209        WHILE ((NOT done) or (count_pos + str_length > 0)) LOOP
210              count_pos := count_pos - 1;
211              char_str := substrb(in_amount_disp,count_pos , 1);
212 
213              IF ((char_str = ',') and (NOT done)) THEN
214                 new_string := REPLACE(in_amount_disp,',','$');
215                 done := TRUE;
216             END IF;
217 
218              IF ((char_str = '.') AND (NOT done)) THEN
219                 new_string := TRANSLATE(in_amount_disp,'.,','$.');
220                 done := TRUE;
221              END IF;
222 
223         END LOOP;
224 
225    ELSE
226                 new_string := replace(in_amount_disp,',','.');
227 
228    END IF;
229 
230    RETURN(new_string);
231 
232    EXCEPTION WHEN OTHERS THEN
233         RETURN(in_amount_disp);
234 
235    END jg_format_curr_amt;
236 end jg_info;