DBA Data[Home] [Help]

PACKAGE BODY: APPS.PQH_BUDGETS_API

Source


1 Package Body pqh_budgets_api as
2 /* $Header: pqbgtapi.pkb 120.1 2005/11/18 11:06:21 srajakum noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := '  pqh_budgets_api.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |------------------------< create_budget >----------------------|
10 -- ----------------------------------------------------------------------------
11 --
12 procedure create_budget
13   (p_validate                       in  boolean   default false
14   ,p_budget_id                      out nocopy number
15   ,p_business_group_id              in  number    default null
16   ,p_start_organization_id          in  number    default null
17   ,p_org_structure_version_id       in  number    default null
18   ,p_budgeted_entity_cd             in  varchar2  default null
19   ,p_budget_style_cd                in  varchar2  default null
20   ,p_budget_name                    in  varchar2  default null
21   ,p_period_set_name                in  varchar2  default null
22   ,p_budget_start_date              in  date      default null
23   ,p_budget_end_date                in  date      default null
24   ,p_gl_budget_name                 in  varchar2  default null
25   ,p_psb_budget_flag                in  varchar2  default 'N'
26   ,p_transfer_to_gl_flag            in  varchar2  default null
27   ,p_transfer_to_grants_flag        in  varchar2  default null
28   ,p_status                         in  varchar2  default null
29   ,p_object_version_number          out nocopy number
30   ,p_budget_unit1_id                in  number    default null
31   ,p_budget_unit2_id                in  number    default null
32   ,p_budget_unit3_id                in  number    default null
33   ,p_gl_set_of_books_id             in  number    default null
34   ,p_budget_unit1_aggregate         in varchar2   default null
35   ,p_budget_unit2_aggregate         in varchar2   default null
36   ,p_budget_unit3_aggregate         in varchar2   default null
37   ,p_position_control_flag          in varchar2   default null
38   ,p_valid_grade_reqd_flag          in varchar2   default null
39   ,p_currency_code                  in varchar2   default null
40   ,p_dflt_budget_set_id             in number     default null
41   ,p_effective_date                 in  date
42   ) is
43   --
44   -- Declare cursors and local variables
45   --
46   l_budget_id pqh_budgets.budget_id%TYPE;
47   l_proc varchar2(72) := g_package||'create_budget';
48   l_object_version_number pqh_budgets.object_version_number%TYPE;
49   --
50 begin
51   --
52   hr_utility.set_location('Entering:'|| l_proc, 10);
53   --
54   -- Issue a savepoint if operating in validation only mode
55   --
56   savepoint create_budget;
57   --
58   hr_utility.set_location(l_proc, 20);
59   --
60   -- Process Logic
61   --
62   begin
63     --
64     -- Start of API User Hook for the before hook of create_budget
65     --
66     pqh_budgets_bk1.create_budget_b
67       (
68        p_business_group_id              =>  p_business_group_id
69       ,p_start_organization_id          =>  p_start_organization_id
70       ,p_org_structure_version_id       =>  p_org_structure_version_id
71       ,p_budgeted_entity_cd             =>  p_budgeted_entity_cd
72       ,p_budget_style_cd                =>  p_budget_style_cd
73       ,p_budget_name                    =>  p_budget_name
74       ,p_period_set_name                =>  p_period_set_name
75       ,p_budget_start_date              =>  p_budget_start_date
76       ,p_budget_end_date                =>  p_budget_end_date
77       ,p_gl_budget_name                 =>  p_gl_budget_name
78       ,p_psb_budget_flag                =>  p_psb_budget_flag
79       ,p_transfer_to_gl_flag            =>  p_transfer_to_gl_flag
80       ,p_transfer_to_grants_flag        =>  p_transfer_to_grants_flag
81       ,p_status                         =>  p_status
82       ,p_budget_unit1_id                =>  p_budget_unit1_id
83       ,p_budget_unit2_id                =>  p_budget_unit2_id
84       ,p_budget_unit3_id                =>  p_budget_unit3_id
85       ,p_gl_set_of_books_id             =>  p_gl_set_of_books_id
86       ,p_budget_unit1_aggregate         =>  p_budget_unit1_aggregate
87       ,p_budget_unit2_aggregate         =>  p_budget_unit2_aggregate
88       ,p_budget_unit3_aggregate         =>  p_budget_unit3_aggregate
89       ,p_position_control_flag          =>  p_position_control_flag
90       ,p_valid_grade_reqd_flag          =>  p_valid_grade_reqd_flag
91       ,p_currency_code                  =>  p_currency_code
92       ,p_dflt_budget_set_id             =>  p_dflt_budget_set_id
93       ,p_effective_date                 =>  trunc(p_effective_date)
94       );
95   exception
96     when hr_api.cannot_find_prog_unit then
97       hr_api.cannot_find_prog_unit_error
98         (
99          p_module_name => 'create_budget'
100         ,p_hook_type   => 'BP'
101         );
102     --
103     -- End of API User Hook for the before hook of create_budget
104     --
105   end;
106   --
107   PQH_BGT_ins.ins
108     (
109      p_budget_id                     => l_budget_id
110     ,p_business_group_id             => p_business_group_id
111     ,p_start_organization_id         => p_start_organization_id
112     ,p_org_structure_version_id      => p_org_structure_version_id
113     ,p_budgeted_entity_cd            => p_budgeted_entity_cd
114     ,p_budget_style_cd               => p_budget_style_cd
115     ,p_budget_name                   => p_budget_name
116     ,p_period_set_name               => p_period_set_name
117     ,p_budget_start_date             => p_budget_start_date
118     ,p_budget_end_date               => p_budget_end_date
119     ,p_gl_budget_name                => p_gl_budget_name
120     ,p_psb_budget_flag                =>  p_psb_budget_flag
121     ,p_transfer_to_gl_flag           => p_transfer_to_gl_flag
122     ,p_transfer_to_grants_flag       => p_transfer_to_grants_flag
123     ,p_status                        => p_status
124     ,p_object_version_number         => l_object_version_number
125     ,p_budget_unit1_id               => p_budget_unit1_id
126     ,p_budget_unit2_id               => p_budget_unit2_id
127     ,p_budget_unit3_id               => p_budget_unit3_id
128     ,p_gl_set_of_books_id            => p_gl_set_of_books_id
129     ,p_budget_unit1_aggregate        => p_budget_unit1_aggregate
130     ,p_budget_unit2_aggregate        => p_budget_unit2_aggregate
131     ,p_budget_unit3_aggregate        => p_budget_unit3_aggregate
132     ,p_position_control_flag         => p_position_control_flag
133     ,p_valid_grade_reqd_flag         => p_valid_grade_reqd_flag
134     ,p_currency_code                 => p_currency_code
135     ,p_dflt_budget_set_id            => p_dflt_budget_set_id
136     ,p_effective_date                => trunc(p_effective_date)
137     );
138   --
139   begin
140     --
141     -- Start of API User Hook for the after hook of create_budget
142     --
143     pqh_budgets_bk1.create_budget_a
144       (
145        p_budget_id                      =>  l_budget_id
146       ,p_business_group_id              =>  p_business_group_id
147       ,p_start_organization_id          =>  p_start_organization_id
148       ,p_org_structure_version_id       =>  p_org_structure_version_id
149       ,p_budgeted_entity_cd             =>  p_budgeted_entity_cd
150       ,p_budget_style_cd                =>  p_budget_style_cd
151       ,p_budget_name                    =>  p_budget_name
152       ,p_period_set_name                =>  p_period_set_name
153       ,p_budget_start_date              =>  p_budget_start_date
154       ,p_budget_end_date                =>  p_budget_end_date
155       ,p_gl_budget_name                 =>  p_gl_budget_name
156       ,p_psb_budget_flag                =>  p_psb_budget_flag
157       ,p_transfer_to_gl_flag            =>  p_transfer_to_gl_flag
158       ,p_transfer_to_grants_flag        =>  p_transfer_to_grants_flag
159       ,p_status                         =>  p_status
160       ,p_object_version_number          =>  l_object_version_number
161       ,p_budget_unit1_id                =>  p_budget_unit1_id
162       ,p_budget_unit2_id                =>  p_budget_unit2_id
163       ,p_budget_unit3_id                =>  p_budget_unit3_id
164       ,p_gl_set_of_books_id             =>  p_gl_set_of_books_id
165       ,p_budget_unit1_aggregate         =>  p_budget_unit1_aggregate
166       ,p_budget_unit2_aggregate         =>  p_budget_unit2_aggregate
167       ,p_budget_unit3_aggregate         =>  p_budget_unit3_aggregate
168       ,p_position_control_flag          =>  p_position_control_flag
169       ,p_valid_grade_reqd_flag          =>  p_valid_grade_reqd_flag
170       ,p_currency_code                  =>  p_currency_code
171       ,p_dflt_budget_set_id             =>  p_dflt_budget_set_id
172       ,p_effective_date                 =>  trunc(p_effective_date)
173       );
174   exception
175     when hr_api.cannot_find_prog_unit then
176       hr_api.cannot_find_prog_unit_error
177         (p_module_name => 'create_budget'
178         ,p_hook_type   => 'AP'
179         );
180     --
181     -- End of API User Hook for the after hook of create_budget
182     --
183   end;
184   --
185   hr_utility.set_location(l_proc, 60);
186   --
187   -- When in validation only mode raise the Validate_Enabled exception
188   --
189   if p_validate then
190     raise hr_api.validate_enabled;
191   end if;
192   --
193   -- Set all output arguments
194   --
195   p_budget_id := l_budget_id;
196   p_object_version_number := l_object_version_number;
197   --
198   hr_utility.set_location(' Leaving:'||l_proc, 70);
199   --
200 exception
201   --
202   when hr_api.validate_enabled then
203     --
204     -- As the Validate_Enabled exception has been raised
205     -- we must rollback to the savepoint
206     --
207     ROLLBACK TO create_budget;
208     --
209     -- Only set output warning arguments
210     -- (Any key or derived arguments must be set to null
211     -- when validation only mode is being used.)
212     --
213     p_budget_id := null;
214     p_object_version_number  := null;
215     hr_utility.set_location(' Leaving:'||l_proc, 80);
216     --
217   when others then
218     p_budget_id := null;
219     p_object_version_number  := null;
220     --
221     -- A validation or unexpected error has occured
222     --
223     ROLLBACK TO create_budget;
224     raise;
225     --
226 end create_budget;
227 -- ----------------------------------------------------------------------------
228 -- |------------------------< update_budget >--- ------------------|
229 -- ----------------------------------------------------------------------------
230 --
231 procedure update_budget
232   (p_validate                       in  boolean   default false
233   ,p_budget_id                      in  number
234   ,p_business_group_id              in  number    default hr_api.g_number
235   ,p_start_organization_id          in  number    default hr_api.g_number
236   ,p_org_structure_version_id       in  number    default hr_api.g_number
237   ,p_budgeted_entity_cd             in  varchar2  default hr_api.g_varchar2
238   ,p_budget_style_cd                in  varchar2  default hr_api.g_varchar2
239   ,p_budget_name                    in  varchar2  default hr_api.g_varchar2
240   ,p_period_set_name                in  varchar2  default hr_api.g_varchar2
241   ,p_budget_start_date              in  date      default hr_api.g_date
242   ,p_budget_end_date                in  date      default hr_api.g_date
243   ,p_gl_budget_name                 in  varchar2  default hr_api.g_varchar2
244   ,p_psb_budget_flag                in  varchar2  default hr_api.g_varchar2
245   ,p_transfer_to_gl_flag            in  varchar2  default hr_api.g_varchar2
246   ,p_transfer_to_grants_flag        in  varchar2  default hr_api.g_varchar2
247   ,p_status                         in  varchar2  default hr_api.g_varchar2
248   ,p_object_version_number          in out nocopy number
249   ,p_budget_unit1_id                in  number    default hr_api.g_number
250   ,p_budget_unit2_id                in  number    default hr_api.g_number
251   ,p_budget_unit3_id                in  number    default hr_api.g_number
252   ,p_gl_set_of_books_id             in  number    default hr_api.g_number
253   ,p_budget_unit1_aggregate         in  varchar2  default hr_api.g_varchar2
254   ,p_budget_unit2_aggregate         in  varchar2  default hr_api.g_varchar2
255   ,p_budget_unit3_aggregate         in  varchar2  default hr_api.g_varchar2
256   ,p_position_control_flag          in  varchar2  default hr_api.g_varchar2
257   ,p_valid_grade_reqd_flag          in  varchar2  default hr_api.g_varchar2
258   ,p_currency_code                  in  varchar2  default hr_api.g_varchar2
259   ,p_dflt_budget_set_id             in  number    default hr_api.g_number
260   ,p_effective_date                 in  date
261   ) is
262   --
263   -- Declare cursors and local variables
264   --
265   l_proc varchar2(72) := g_package||'update_budget';
266   l_object_version_number pqh_budgets.object_version_number%TYPE;
267   --
268 begin
269   --
270   hr_utility.set_location('Entering:'|| l_proc, 10);
271   --
272   -- Issue a savepoint if operating in validation only mode
273   --
274   savepoint update_budget;
275   --
276   hr_utility.set_location(l_proc, 20);
277   --
278   -- Process Logic
279   --
280   l_object_version_number := p_object_version_number;
281   --
282   begin
283     --
284     -- Start of API User Hook for the before hook of update_budget
285     --
286     pqh_budgets_bk2.update_budget_b
287       (
288        p_budget_id                      =>  p_budget_id
289       ,p_business_group_id              =>  p_business_group_id
290       ,p_start_organization_id          =>  p_start_organization_id
291       ,p_org_structure_version_id       =>  p_org_structure_version_id
292       ,p_budgeted_entity_cd             =>  p_budgeted_entity_cd
293       ,p_budget_style_cd                =>  p_budget_style_cd
294       ,p_budget_name                    =>  p_budget_name
295       ,p_period_set_name                =>  p_period_set_name
296       ,p_budget_start_date              =>  p_budget_start_date
297       ,p_budget_end_date                =>  p_budget_end_date
298       ,p_gl_budget_name                 =>  p_gl_budget_name
299       ,p_psb_budget_flag                =>  p_psb_budget_flag
300       ,p_transfer_to_gl_flag            =>  p_transfer_to_gl_flag
301       ,p_transfer_to_grants_flag        =>  p_transfer_to_grants_flag
302       ,p_status                         =>  p_status
303       ,p_object_version_number          =>  p_object_version_number
304       ,p_budget_unit1_id                =>  p_budget_unit1_id
305       ,p_budget_unit2_id                =>  p_budget_unit2_id
306       ,p_budget_unit3_id                =>  p_budget_unit3_id
307       ,p_gl_set_of_books_id             =>  p_gl_set_of_books_id
308       ,p_budget_unit1_aggregate         =>  p_budget_unit1_aggregate
309       ,p_budget_unit2_aggregate         =>  p_budget_unit2_aggregate
310       ,p_budget_unit3_aggregate         =>  p_budget_unit3_aggregate
311       ,p_position_control_flag          =>  p_position_control_flag
312       ,p_valid_grade_reqd_flag          =>  p_valid_grade_reqd_flag
313       ,p_currency_code                  =>  p_currency_code
314       ,p_dflt_budget_set_id             =>  p_dflt_budget_set_id
315       ,p_effective_date                 =>  trunc(p_effective_date)
316       );
317   exception
318     when hr_api.cannot_find_prog_unit then
319       hr_api.cannot_find_prog_unit_error
320         (p_module_name => 'update_budget'
321         ,p_hook_type   => 'BP'
322         );
323     --
324     -- End of API User Hook for the before hook of update_budget
325     --
326   end;
327   --
328   PQH_BGT_upd.upd
329     (
330      p_budget_id                     => p_budget_id
331     ,p_business_group_id             => p_business_group_id
332     ,p_start_organization_id         => p_start_organization_id
333     ,p_org_structure_version_id      => p_org_structure_version_id
334     ,p_budgeted_entity_cd            => p_budgeted_entity_cd
335     ,p_budget_style_cd               => p_budget_style_cd
336     ,p_budget_name                   => p_budget_name
337     ,p_period_set_name               => p_period_set_name
338     ,p_budget_start_date             => p_budget_start_date
339     ,p_budget_end_date               => p_budget_end_date
340     ,p_gl_budget_name                => p_gl_budget_name
341     ,p_psb_budget_flag               => p_psb_budget_flag
342     ,p_transfer_to_gl_flag           => p_transfer_to_gl_flag
343     ,p_transfer_to_grants_flag       => p_transfer_to_grants_flag
344     ,p_status                        => p_status
345     ,p_object_version_number         => l_object_version_number
346     ,p_budget_unit1_id               => p_budget_unit1_id
347     ,p_budget_unit2_id               => p_budget_unit2_id
348     ,p_budget_unit3_id               => p_budget_unit3_id
349     ,p_gl_set_of_books_id            => p_gl_set_of_books_id
350     ,p_budget_unit1_aggregate        => p_budget_unit1_aggregate
351     ,p_budget_unit2_aggregate        => p_budget_unit2_aggregate
352     ,p_budget_unit3_aggregate        => p_budget_unit3_aggregate
353     ,p_position_control_flag         => p_position_control_flag
354     ,p_valid_grade_reqd_flag         => p_valid_grade_reqd_flag
355     ,p_currency_code                 => p_currency_code
356     ,p_dflt_budget_set_id            => p_dflt_budget_set_id
357     ,p_effective_date                => trunc(p_effective_date)
358     );
359   --
360   begin
361     --
362     -- Start of API User Hook for the after hook of update_budget
363     --
364     pqh_budgets_bk2.update_budget_a
365       (
366        p_budget_id                      =>  p_budget_id
367       ,p_business_group_id              =>  p_business_group_id
368       ,p_start_organization_id          =>  p_start_organization_id
369       ,p_org_structure_version_id       =>  p_org_structure_version_id
370       ,p_budgeted_entity_cd             =>  p_budgeted_entity_cd
371       ,p_budget_style_cd                =>  p_budget_style_cd
372       ,p_budget_name                    =>  p_budget_name
373       ,p_period_set_name                =>  p_period_set_name
374       ,p_budget_start_date              =>  p_budget_start_date
375       ,p_budget_end_date                =>  p_budget_end_date
376       ,p_gl_budget_name                 =>  p_gl_budget_name
377       ,p_psb_budget_flag                =>  p_psb_budget_flag
378       ,p_transfer_to_gl_flag            =>  p_transfer_to_gl_flag
379       ,p_transfer_to_grants_flag        =>  p_transfer_to_grants_flag
380       ,p_status                         =>  p_status
381       ,p_object_version_number          =>  l_object_version_number
382       ,p_budget_unit1_id                =>  p_budget_unit1_id
383       ,p_budget_unit2_id                =>  p_budget_unit2_id
384       ,p_budget_unit3_id                =>  p_budget_unit3_id
385       ,p_gl_set_of_books_id             =>  p_gl_set_of_books_id
386       ,p_budget_unit1_aggregate         =>  p_budget_unit1_aggregate
387       ,p_budget_unit2_aggregate         =>  p_budget_unit2_aggregate
388       ,p_budget_unit3_aggregate         =>  p_budget_unit3_aggregate
389       ,p_position_control_flag          =>  p_position_control_flag
390       ,p_valid_grade_reqd_flag          =>  p_valid_grade_reqd_flag
391       ,p_currency_code                  =>  p_currency_code
392       ,p_dflt_budget_set_id             =>  p_dflt_budget_set_id
393       ,p_effective_date                 =>  trunc(p_effective_date)
394       );
395   exception
396     when hr_api.cannot_find_prog_unit then
397       hr_api.cannot_find_prog_unit_error
398         (p_module_name => 'update_budget'
399         ,p_hook_type   => 'AP'
400         );
401     --
402     -- End of API User Hook for the after hook of update_budget
403     --
404   end;
405   --
406   hr_utility.set_location(l_proc, 60);
407   --
408   -- When in validation only mode raise the Validate_Enabled exception
409   --
410   if p_validate then
411     raise hr_api.validate_enabled;
412   end if;
413   --
414   -- Set all output arguments
415   --
416   p_object_version_number := l_object_version_number;
417   --
418   hr_utility.set_location(' Leaving:'||l_proc, 70);
419   --
420 exception
421   --
422   when hr_api.validate_enabled then
423     --
424     -- As the Validate_Enabled exception has been raised
425     -- we must rollback to the savepoint
426     --
427     ROLLBACK TO update_budget;
428     --
429     -- Only set output warning arguments
430     -- (Any key or derived arguments must be set to null
431     -- when validation only mode is being used.)
432     --
433     hr_utility.set_location(' Leaving:'||l_proc, 80);
434     --
435   when others then
436 p_object_version_number := l_object_version_number;
437     --
438     -- A validation or unexpected error has occured
439     --
440     ROLLBACK TO update_budget;
441     raise;
442     --
443 end update_budget;
444 -- ----------------------------------------------------------------------------
445 -- |------------------------< delete_budget >----------------------|
446 -- ----------------------------------------------------------------------------
447 --
448 procedure delete_budget
449   (p_validate                       in  boolean  default false
450   ,p_budget_id                      in  number
451   ,p_object_version_number          in number
452   ,p_effective_date                 in  date
453   ) is
454   --
455   -- Declare cursors and local variables
456   --
457   l_proc varchar2(72) := g_package||'delete_budget';
458   l_object_version_number pqh_budgets.object_version_number%TYPE;
459   --
460 begin
461   --
462   hr_utility.set_location('Entering:'|| l_proc, 10);
463   --
464   -- Issue a savepoint if operating in validation only mode
465   --
466   savepoint delete_budget;
467   --
468   hr_utility.set_location(l_proc, 20);
469   --
470   -- Process Logic
471   --
472   l_object_version_number := p_object_version_number;
473   --
474   --
475   begin
476     --
477     -- Start of API User Hook for the before hook of delete_budget
478     --
479     pqh_budgets_bk3.delete_budget_b
480       (
481        p_budget_id                      =>  p_budget_id
482       ,p_object_version_number          =>  p_object_version_number
483     ,p_effective_date                      => trunc(p_effective_date)
484       );
485   exception
486     when hr_api.cannot_find_prog_unit then
487       hr_api.cannot_find_prog_unit_error
488         (p_module_name => 'delete_budget'
489         ,p_hook_type   => 'BP'
490         );
491     --
492     -- End of API User Hook for the before hook of delete_budget
493     --
494   end;
495   --
496   PQH_BGT_del.del
497     (
498      p_budget_id                     => p_budget_id
499     ,p_object_version_number         => l_object_version_number
500     ,p_effective_date                => p_effective_date
501     );
502   --
503   begin
504     --
505     -- Start of API User Hook for the after hook of delete_budget
506     --
507     pqh_budgets_bk3.delete_budget_a
508       (
509        p_budget_id                      =>  p_budget_id
510       ,p_object_version_number          =>  l_object_version_number
511     ,p_effective_date                      => trunc(p_effective_date)
512       );
513   exception
514     when hr_api.cannot_find_prog_unit then
515       hr_api.cannot_find_prog_unit_error
516         (p_module_name => 'delete_budget'
517         ,p_hook_type   => 'AP'
518         );
519     --
520     -- End of API User Hook for the after hook of delete_budget
521     --
522   end;
523   --
524   hr_utility.set_location(l_proc, 60);
525   --
526   -- When in validation only mode raise the Validate_Enabled exception
527   --
528   if p_validate then
529     raise hr_api.validate_enabled;
530   end if;
531   --
532   hr_utility.set_location(' Leaving:'||l_proc, 70);
533   --
534 exception
535   --
536   when hr_api.validate_enabled then
537     --
538     -- As the Validate_Enabled exception has been raised
539     -- we must rollback to the savepoint
540     --
541     ROLLBACK TO delete_budget;
542     --
543     -- Only set output warning arguments
544     -- (Any key or derived arguments must be set to null
545     -- when validation only mode is being used.)
546     --
547     --
548   when others then
549     --
550     -- A validation or unexpected error has occured
551     --
552     ROLLBACK TO delete_budget;
553     raise;
554     --
555 end delete_budget;
556 --
557 -- ----------------------------------------------------------------------------
558 -- |-------------------------------< lck >------------------------------------|
559 -- ----------------------------------------------------------------------------
560 --
561 procedure lck
562   (
563    p_budget_id                   in     number
564   ,p_object_version_number          in     number
565   ) is
566   --
567   --
568   -- Declare cursors and local variables
569   --
570   l_proc varchar2(72) := g_package||'lck';
571   --
572 begin
573   --
574   hr_utility.set_location('Entering:'|| l_proc, 10);
575   --
576   PQH_BGT_shd.lck
577     (
578       p_budget_id                 => p_budget_id
579      ,p_object_version_number      => p_object_version_number
580     );
581   --
582   hr_utility.set_location(' Leaving:'||l_proc, 70);
583   --
584 end lck;
585 --
586 end pqh_budgets_api;