DBA Data[Home] [Help]

PACKAGE BODY: APPS.PSB_WS_ACCT_PVT

Source


1 PACKAGE BODY PSB_WS_ACCT_PVT AS
2 /* $Header: PSBPWCAB.pls 120.6 2006/05/30 06:55:04 matthoma ship $ */
3 
4   G_PKG_NAME CONSTANT   VARCHAR2(30):= 'PSB_WS_ACCT_PVT';
5 
6 /* ----------------------------------------------------------------------- */
7 
8 PROCEDURE Check_CCID_Type
9 ( p_api_version       IN   NUMBER,
10   p_init_msg_list     IN   VARCHAR2 := FND_API.G_FALSE,
11   p_validation_level  IN   NUMBER  := FND_API.G_VALID_LEVEL_NONE,
12   p_return_status     OUT  NOCOPY  VARCHAR2,
13   p_msg_count         OUT  NOCOPY  NUMBER,
14   p_msg_data          OUT  NOCOPY  VARCHAR2,
15   p_ccid_type         OUT  NOCOPY  VARCHAR2,
16   p_flex_code         IN   NUMBER,
17   p_ccid              IN   NUMBER,
18   p_budget_group_id   IN   NUMBER
19 ) IS
20 
21   l_api_name          CONSTANT VARCHAR2(30)   := 'Check_CCID_Type';
22   l_api_version       CONSTANT NUMBER         := 1.0;
23 
24 BEGIN
25 
26   -- Standard call to check for call compatibility.
27 
28   if not FND_API.Compatible_API_Call (l_api_version,
29 				      p_api_version,
30 				      l_api_name,
31 				      G_PKG_NAME)
32   then
33     raise FND_API.G_EXC_UNEXPECTED_ERROR;
34   end if;
35 
36 
37   -- Initialize message list if p_init_msg_list is set to TRUE
38 
39   if FND_API.to_Boolean (p_init_msg_list) then
40     FND_MSG_PUB.initialize;
41   end if;
42 
43 
44   -- Call Private Function
45 
46   PSB_WS_ACCT1.Check_CCID_Type
47      (p_api_version => 1.0,
48       p_validation_level => p_validation_level,
49       p_return_status => p_return_status,
50       p_ccid_type => p_ccid_type,
51       p_flex_code => p_flex_code,
52       p_ccid => p_ccid,
53       p_budget_group_id => p_budget_group_id);
54 
55 
56   -- Standard call to get message count and if count is 1, get message info
57 
58   FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
59 			     p_data => p_msg_data);
60 
61 
62 EXCEPTION
63 
64    when FND_API.G_EXC_ERROR then
65      p_return_status := FND_API.G_RET_STS_ERROR;
66      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
67 				p_data => p_msg_data);
68 
69 
70    when FND_API.G_EXC_UNEXPECTED_ERROR then
71      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
72      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
73 				p_data => p_msg_data);
74 
75 
76    when OTHERS then
77      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
78 
79      if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
80        FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
81 				l_api_name);
82      end if;
83 
84      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
85 				p_data => p_msg_data);
86 
87 END Check_CCID_Type;
88 
89 /* ----------------------------------------------------------------------- */
90 
91 PROCEDURE Create_Account_Dist
92 ( p_api_version              IN   NUMBER,
93   p_init_msg_list            IN   VARCHAR2 := FND_API.G_FALSE,
94   p_commit                   IN   VARCHAR2 := FND_API.G_FALSE,
95   p_validation_level         IN   NUMBER  := FND_API.G_VALID_LEVEL_NONE,
96   p_return_status            OUT  NOCOPY  VARCHAR2,
97   p_account_line_id          OUT  NOCOPY  NUMBER,
98   p_msg_count                OUT  NOCOPY  NUMBER,
99   p_msg_data                 OUT  NOCOPY  VARCHAR2,
100   p_worksheet_id             IN   NUMBER,
101   p_check_spal_exists        IN   VARCHAR2 := FND_API.G_TRUE,
102   p_gl_cutoff_period         IN   DATE := FND_API.G_MISS_DATE,
103   p_allocrule_set_id         IN   NUMBER := FND_API.G_MISS_NUM,
104   p_budget_calendar_id       IN   NUMBER := FND_API.G_MISS_NUM,
105   p_rounding_factor          IN   NUMBER := FND_API.G_MISS_NUM,
106   p_stage_set_id             IN   NUMBER := FND_API.G_MISS_NUM,
107   p_budget_year_id           IN   NUMBER,
108   p_budget_group_id          IN   NUMBER,
109   p_ccid                     IN   NUMBER := FND_API.G_MISS_NUM,
110   p_flex_mapping_set_id      IN   NUMBER := FND_API.G_MISS_NUM,
111   p_map_accounts             IN   BOOLEAN := FALSE,
112   p_flex_code                IN   NUMBER := FND_API.G_MISS_NUM,
113   p_concatenated_segments    IN   VARCHAR2 := FND_API.G_MISS_CHAR,
114   p_startdate_pp             IN   DATE := FND_API.G_MISS_DATE,
115   p_template_id              IN   NUMBER := FND_API.G_MISS_NUM,
116   p_currency_code            IN   VARCHAR2,
117   p_balance_type             IN   VARCHAR2,
118   p_ytd_amount               IN   NUMBER,
119   p_distribute_flag          IN   VARCHAR2 := FND_API.G_FALSE,
120   p_annual_fte               IN   NUMBER := FND_API.G_MISS_NUM,
121   p_period_amount            IN   PSB_WS_ACCT1.g_prdamt_tbl_type,
122   p_position_line_id         IN   NUMBER := FND_API.G_MISS_NUM,
123   p_element_set_id           IN   NUMBER := FND_API.G_MISS_NUM,
124   p_salary_account_line      IN   VARCHAR2 := FND_API.G_FALSE,
125   p_service_package_id       IN   NUMBER := FND_API.G_MISS_NUM,
126   p_start_stage_seq          IN   NUMBER := FND_API.G_MISS_NUM,
127   p_current_stage_seq        IN   NUMBER := FND_API.G_MISS_NUM,
128   p_end_stage_seq            IN   NUMBER := FND_API.G_MISS_NUM,
129   p_copy_of_account_line_id  IN   NUMBER := FND_API.G_MISS_NUM
130 ) IS
131 
132   l_api_name                 CONSTANT VARCHAR2(30)   := 'Create_Account_Dist';
133   l_api_version              CONSTANT NUMBER         := 1.0;
134 
135 BEGIN
136 
137   -- Standard Start of API savepoint
138 
139   SAVEPOINT  Create_Account_Dist_Pvt;
140 
141 
142   -- Standard call to check for call compatibility.
143 
144   if not FND_API.Compatible_API_Call (l_api_version,
145 				      p_api_version,
146 				      l_api_name,
147 				      G_PKG_NAME)
148   then
149     raise FND_API.G_EXC_UNEXPECTED_ERROR;
150   end if;
151 
152 
153   -- Initialize message list if p_init_msg_list is set to TRUE
154 
155   if FND_API.to_Boolean (p_init_msg_list) then
156     FND_MSG_PUB.initialize;
157   end if;
158 
159 
160   -- Call Private Function
161 
162   PSB_WS_ACCT1.Create_Account_Dist
163      (p_api_version => 1.0,
164       p_validation_level => p_validation_level,
165       p_return_status => p_return_status,
166       p_account_line_id => p_account_line_id,
167       p_worksheet_id => p_worksheet_id,
168       p_check_spal_exists => p_check_spal_exists,
169       p_gl_cutoff_period => p_gl_cutoff_period,
170       p_allocrule_set_id => p_allocrule_set_id,
171       p_budget_calendar_id => p_budget_calendar_id,
172       p_rounding_factor => p_rounding_factor,
173       p_stage_set_id => p_stage_set_id,
174       p_budget_year_id => p_budget_year_id,
175       p_budget_group_id => p_budget_group_id,
176       p_ccid => p_ccid,
177       p_flex_mapping_set_id => p_flex_mapping_set_id,
178       p_map_accounts => p_map_accounts,
179       p_flex_code => p_flex_code,
180       p_concatenated_segments => p_concatenated_segments,
181       p_startdate_pp => p_startdate_pp,
182       p_template_id => p_template_id,
183       p_currency_code => p_currency_code,
184       p_balance_type => p_balance_type,
185       p_ytd_amount => p_ytd_amount,
186       p_distribute_flag => p_distribute_flag,
187       p_annual_fte => p_annual_fte,
188       p_period_amount => p_period_amount,
189       p_position_line_id => p_position_line_id,
190       p_element_set_id => p_element_set_id,
191       p_salary_account_line => p_salary_account_line,
192       p_service_package_id => p_service_package_id,
193       p_start_stage_seq => p_start_stage_seq,
194       p_current_stage_seq => p_current_stage_seq,
195       p_end_stage_seq => p_end_stage_seq,
196       p_copy_of_account_line_id => p_copy_of_account_line_id
197       );
198 
199   -- Standard Check of p_commit
200 
201   if FND_API.to_Boolean (p_commit) then
202     commit work;
203   end if;
204 
205 
206   -- Standard call to get message count and if count is 1, get message info
207 
208   FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
209 			     p_data => p_msg_data);
210 
211 
212 EXCEPTION
213 
214    when FND_API.G_EXC_ERROR then
215      rollback to Create_Account_Dist_Pvt;
216      p_return_status := FND_API.G_RET_STS_ERROR;
217      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
218 				p_data => p_msg_data);
219 
220 
221    when FND_API.G_EXC_UNEXPECTED_ERROR then
222      rollback to Create_Account_Dist_Pvt;
223      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
224      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
225 				p_data => p_msg_data);
226 
227 
228    when OTHERS then
229      rollback to Create_Account_Dist_Pvt;
230      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
231 
232      if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
233        FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
234 				l_api_name);
235      end if;
236 
237      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
238 				p_data => p_msg_data);
239 
240 END Create_Account_Dist;
241 
242 /* ----------------------------------------------------------------------- */
243 
244 PROCEDURE Create_Account_Dist
245 ( p_api_version              IN   NUMBER,
246   p_init_msg_list            IN   VARCHAR2 := FND_API.G_FALSE,
247   p_commit                   IN   VARCHAR2 := FND_API.G_FALSE,
248   p_validation_level         IN   NUMBER  := FND_API.G_VALID_LEVEL_NONE,
249   p_return_status            OUT  NOCOPY  VARCHAR2,
250   p_msg_count                OUT  NOCOPY  NUMBER,
251   p_msg_data                 OUT  NOCOPY  VARCHAR2,
252   p_worksheet_id             IN   NUMBER,
253   p_distribute_flag          IN   VARCHAR2 := FND_API.G_FALSE,
254   p_account_line_id          IN   NUMBER,
255   p_check_stages             IN   VARCHAR2 := FND_API.G_TRUE,
256   p_ytd_amount               IN   NUMBER,
257   p_annual_fte               IN   NUMBER := FND_API.G_MISS_NUM,
258   p_period_amount            IN   PSB_WS_ACCT1.g_prdamt_tbl_type,
259   p_budget_group_id          IN   NUMBER := FND_API.G_MISS_NUM,
260   p_service_package_id       IN   NUMBER := FND_API.G_MISS_NUM,
261   p_current_stage_seq        IN   NUMBER := FND_API.G_MISS_NUM,
262   p_copy_of_account_line_id  IN   NUMBER := FND_API.G_MISS_NUM
263 ) IS
264 
265   l_api_name                 CONSTANT VARCHAR2(30)   := 'Create_Account_Dist';
266   l_api_version              CONSTANT NUMBER         := 1.0;
267 
268 BEGIN
269 
270   -- Standard Start of API savepoint
271 
272   SAVEPOINT  Create_Account_Dist_Pvt;
273 
274 
275   -- Standard call to check for call compatibility.
276 
277   if not FND_API.Compatible_API_Call (l_api_version,
278 				      p_api_version,
279 				      l_api_name,
280 				      G_PKG_NAME)
281   then
282     raise FND_API.G_EXC_UNEXPECTED_ERROR;
283   end if;
284 
285 
286   -- Initialize message list if p_init_msg_list is set to TRUE
287 
288   if FND_API.to_Boolean (p_init_msg_list) then
289     FND_MSG_PUB.initialize;
290   end if;
291 
292 
293   -- Call Private Function
294 
295   PSB_WS_ACCT1.Create_Account_Dist
296      (p_api_version => 1.0,
297       p_validation_level => p_validation_level,
298       p_return_status => p_return_status,
299       p_worksheet_id => p_worksheet_id,
300       p_distribute_flag => p_distribute_flag,
301       p_account_line_id => p_account_line_id,
302       p_check_stages => p_check_stages,
303       p_ytd_amount => p_ytd_amount,
304       p_annual_fte => p_annual_fte,
305       p_period_amount => p_period_amount,
306       p_budget_group_id => p_budget_group_id,
307       p_service_package_id => p_service_package_id,
308       p_current_stage_seq => p_current_stage_seq,
309       p_copy_of_account_line_id => p_copy_of_account_line_id);
310 
311 
312   -- Standard Check of p_commit
313 
314   if FND_API.to_Boolean (p_commit) then
315     commit work;
316   end if;
317 
318 
319   -- Standard call to get message count and if count is 1, get message info
320 
321   FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
322 			     p_data => p_msg_data);
323 
324 
325 EXCEPTION
326 
327    when FND_API.G_EXC_ERROR then
328      rollback to Create_Account_Dist_Pvt;
329      p_return_status := FND_API.G_RET_STS_ERROR;
330      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
331 				p_data => p_msg_data);
332 
333 
334    when FND_API.G_EXC_UNEXPECTED_ERROR then
335      rollback to Create_Account_Dist_Pvt;
336      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
337      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
338 				p_data => p_msg_data);
339 
340 
341    when OTHERS then
342      rollback to Create_Account_Dist_Pvt;
343      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
344 
345      if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
346        FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
347 				l_api_name);
348      end if;
349 
350      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
351 				p_data => p_msg_data);
352 
353 END Create_Account_Dist;
354 
355 /* ----------------------------------------------------------------------- */
356 
357 PROCEDURE Revise_Account_Projections
358 ( p_api_version       IN   NUMBER,
359   p_init_msg_list     IN   VARCHAR2 := FND_API.G_FALSE,
360   p_commit            IN   VARCHAR2 := FND_API.G_FALSE,
361   p_validation_level  IN   NUMBER :=  FND_API.G_VALID_LEVEL_NONE,
362   p_return_status     OUT  NOCOPY  VARCHAR2,
363   p_msg_count         OUT  NOCOPY  NUMBER,
364   p_msg_data          OUT  NOCOPY  VARCHAR2,
365   p_worksheet_id      IN   NUMBER,
366   p_parameter_id      IN   NUMBER
367 ) IS
368 
369   l_api_name          CONSTANT VARCHAR2(30)     := 'Revise_Account_Projections';
370   l_api_version       CONSTANT NUMBER           := 1.0;
371 
372   l_return_status     VARCHAR2(1);
373   l_validation_status VARCHAR2(1);
374 
375 BEGIN
376 
377   -- Standard Start of API savepoint
378 
379   SAVEPOINT  Revise_Account_Projections_Pvt;
380 
381 
382   -- Standard call to check for call compatibility.
383 
384   if not FND_API.Compatible_API_Call (l_api_version,
385 				      p_api_version,
386 				      l_api_name,
387 				      G_PKG_NAME)
388   then
389     raise FND_API.G_EXC_UNEXPECTED_ERROR;
390   end if;
391 
392 
393   -- Initialize message list if p_init_msg_list is set to TRUE
394 
395   if FND_API.to_Boolean (p_init_msg_list) then
396     FND_MSG_PUB.initialize;
397   end if;
398 
399   -- Enforce Concurrency Control
400 
401   PSB_CONCURRENCY_CONTROL_PVT.Enforce_Concurrency_Control
402      (p_api_version => 1.0,
403       p_return_status => l_return_status,
404       p_concurrency_class => 'WORKSHEET_CREATION',
405       p_concurrency_entity_name => 'WORKSHEET',
406       p_concurrency_entity_id => p_worksheet_id);
407 
408   if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
409     raise FND_API.G_EXC_ERROR;
410   end if;
411 
412   -- Call Private Function
413 
414   PSB_WS_ACCT2.Revise_Account_Projections
415      (p_api_version => 1.0,
416       p_validation_level => p_validation_level,
417       p_return_status => l_return_status,
418       p_worksheet_id => p_worksheet_id,
419       p_parameter_id => p_parameter_id);
420 
421   if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
422     raise FND_API.G_EXC_ERROR;
423   end if;
424 
425   PSB_WS_ACCT2.Create_Rollup_Totals
426      (p_api_version => 1.0,
427       p_return_status => l_return_status,
428       p_worksheet_id => p_worksheet_id);
429 
430   if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
431     raise FND_API.G_EXC_ERROR;
432   end if;
433 
434   PSB_WORKSHEET.Apply_Constraints
435      (p_api_version => 1.0,
436       p_return_status => l_return_status,
437       p_validation_status => l_validation_status,
438       p_worksheet_id => p_worksheet_id);
439 
440   if l_return_status <> FND_API.G_RET_STS_SUCCESS then
441     raise FND_API.G_EXC_ERROR;
442   end if;
443 
444   PSB_CONCURRENCY_CONTROL_PVT.Release_Concurrency_Control
445      (p_api_version => 1.0,
446       p_return_status => l_return_status,
447       p_concurrency_class => 'WORKSHEET_CREATION',
448       p_concurrency_entity_name => 'WORKSHEET',
449       p_concurrency_entity_id => p_worksheet_id);
450 
451    if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
452      RAISE FND_API.G_EXC_ERROR;
453    end if;
454 
455 
456   -- Standard Check of p_commit
457 
458   if FND_API.to_Boolean (p_commit) then
459     commit work;
460   end if;
461 
462 
463   -- Standard call to get message count and if count is 1, get message info
464 
465   FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
466 			     p_data => p_msg_data);
467 
468 
469 EXCEPTION
470 
471    when FND_API.G_EXC_ERROR then
472      rollback to Revise_Account_Projections_Pvt;
473      p_return_status := FND_API.G_RET_STS_ERROR;
474      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
475 				p_data => p_msg_data);
476 
477 
478    when FND_API.G_EXC_UNEXPECTED_ERROR then
479      rollback to Revise_Account_Projections_Pvt;
480      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
481      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
482 				p_data => p_msg_data);
483 
484 
485    when OTHERS then
486      rollback to Revise_Account_Projections_Pvt;
487      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
488 
489      if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
490        FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
491 				l_api_name);
492      end if;
493 
494      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
495 				p_data => p_msg_data);
496 
497 END Revise_Account_Projections;
498 
499 /* ----------------------------------------------------------------------- */
500 
501 PROCEDURE Update_GL_Balances
502 ( p_api_version       IN   NUMBER,
503   p_init_msg_list     IN   VARCHAR2 := FND_API.G_FALSE,
504   p_commit            IN   VARCHAR2 := FND_API.G_FALSE,
505   p_validation_level  IN   NUMBER :=  FND_API.G_VALID_LEVEL_NONE,
506   p_return_status     OUT  NOCOPY  VARCHAR2,
507   p_msg_count         OUT  NOCOPY  NUMBER,
508   p_msg_data          OUT  NOCOPY  VARCHAR2,
509   p_worksheet_id      IN   NUMBER
510 ) IS
511 
512   l_api_name          CONSTANT VARCHAR2(30)     := 'Update_GL_Balances';
513   l_api_version       CONSTANT NUMBER           := 1.0;
514   l_return_status     VARCHAR2(1);
515 
516 BEGIN
517 
518   -- Standard Start of API savepoint
519 
520   SAVEPOINT  Update_GL_Balances_Pvt;
521 
522 
523   -- Standard call to check for call compatibility.
524 
525   if not FND_API.Compatible_API_Call (l_api_version,
526 				      p_api_version,
527 				      l_api_name,
528 				      G_PKG_NAME)
529   then
530     raise FND_API.G_EXC_UNEXPECTED_ERROR;
531   end if;
532 
533 
534   -- Initialize message list if p_init_msg_list is set to TRUE
535 
536   if FND_API.to_Boolean (p_init_msg_list) then
537     FND_MSG_PUB.initialize;
538   end if;
539 
540 
541   -- Call Private Function
542 
543   PSB_WS_ACCT2.Update_GL_Balances
544      (p_api_version => 1.0,
545       p_validation_level => p_validation_level,
546       p_return_status => l_return_status,
547       p_worksheet_id => p_worksheet_id);
548 
549   /* Bug 5172988 Start */
550   IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
551     raise FND_API.G_EXC_ERROR;
552   END IF;
553 
554   PSB_WS_ACCT2.Create_Rollup_Totals
555      (p_api_version   => 1.0,
556       p_return_status => l_return_status,
557       p_worksheet_id  => p_worksheet_id);
558 
559   IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
560     raise FND_API.G_EXC_ERROR;
561   END IF;
562   /* Bug 5172988 End */
563 
564   -- Standard Check of p_commit
565 
566   if FND_API.to_Boolean (p_commit) then
567     commit work;
568   end if;
569 
570 
571   -- Standard call to get message count and if count is 1, get message info
572 
573   FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
574 			     p_data => p_msg_data);
575 
576 
577 EXCEPTION
578 
579    when FND_API.G_EXC_ERROR then
580      rollback to Update_GL_Balances_Pvt;
581      p_return_status := FND_API.G_RET_STS_ERROR;
582      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
583 				p_data => p_msg_data);
584 
585 
586    when FND_API.G_EXC_UNEXPECTED_ERROR then
587      rollback to Update_GL_Balances_Pvt;
588      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
589      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
590 				p_data => p_msg_data);
591 
592 
593    when OTHERS then
594      rollback to Update_GL_Balances_Pvt;
595      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
596 
597      if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
598        FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
599 				l_api_name);
600      end if;
601 
602      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
603 				p_data => p_msg_data);
604 
605 END Update_GL_Balances;
606 
607 /* ----------------------------------------------------------------------- */
608 
609 PROCEDURE Create_Rollup_Totals
610 ( p_api_version         IN   NUMBER,
611   p_init_msg_list       IN   VARCHAR2 := FND_API.G_FALSE,
612   p_commit              IN   VARCHAR2 := FND_API.G_FALSE,
613   p_validation_level    IN   NUMBER  :=  FND_API.G_VALID_LEVEL_NONE,
614   p_return_status       OUT  NOCOPY  VARCHAR2,
615   p_msg_count           OUT  NOCOPY  NUMBER,
616   p_msg_data            OUT  NOCOPY  VARCHAR2,
617   p_worksheet_id        IN   NUMBER,
618   p_rounding_factor     IN   NUMBER := FND_API.G_MISS_NUM,
619   p_stage_set_id        IN   NUMBER := FND_API.G_MISS_NUM,
620   p_current_stage_seq   IN   NUMBER := FND_API.G_MISS_NUM,
621   p_set_of_books_id     IN   NUMBER := FND_API.G_MISS_NUM,
622   p_flex_code           IN   NUMBER := FND_API.G_MISS_NUM,
623   p_budget_group_id     IN   NUMBER := FND_API.G_MISS_NUM,
624   p_budget_calendar_id  IN   NUMBER := FND_API.G_MISS_NUM
625 ) IS
626 
627   l_api_name            CONSTANT VARCHAR2(30)   := 'Create_Rollup_Totals';
628   l_api_version         CONSTANT NUMBER         := 1.0;
629 
630 BEGIN
631 
632   -- Standard Start of API savepoint
633 
634   SAVEPOINT  Create_Rollup_Totals_Pvt;
635 
636 
637   -- Standard call to check for call compatibility.
638 
639   if not FND_API.Compatible_API_Call (l_api_version,
640 				      p_api_version,
641 				      l_api_name,
642 				      G_PKG_NAME)
643   then
644     raise FND_API.G_EXC_UNEXPECTED_ERROR;
645   end if;
646 
647 
648   -- Initialize message list if p_init_msg_list is set to TRUE
649 
650   if FND_API.to_Boolean (p_init_msg_list) then
651     FND_MSG_PUB.initialize;
652   end if;
653 
654   -- Call Private Function
655 
656   PSB_WS_ACCT2.Create_Rollup_Totals
657      (p_api_version => 1.0,
658       p_validation_level => p_validation_level,
659       p_return_status => p_return_status,
660       p_worksheet_id => p_worksheet_id,
661       p_rounding_factor => p_rounding_factor,
662       p_stage_set_id => p_stage_set_id,
663       p_current_stage_seq => p_current_stage_seq,
664       p_set_of_books_id => p_set_of_books_id,
665       p_flex_code => p_flex_code,
666       p_budget_group_id => p_budget_group_id,
667       p_budget_calendar_id => p_budget_calendar_id);
668 
669 
670   -- Standard Check of p_commit
671 
672   if FND_API.to_Boolean (p_commit) then
673     commit work;
674   end if;
675 
676 
677   -- Standard call to get message count and if count is 1, get message info
678 
679   FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
680 			     p_data => p_msg_data);
681 
682 
683 EXCEPTION
684 
685    when FND_API.G_EXC_ERROR then
686      rollback to Create_Rollup_Totals_Pvt;
687      p_return_status := FND_API.G_RET_STS_ERROR;
688      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
689 				p_data => p_msg_data);
690 
691 
692    when FND_API.G_EXC_UNEXPECTED_ERROR then
693      rollback to Create_Rollup_Totals_Pvt;
694      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
695      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
696 				p_data => p_msg_data);
697 
698 
699    when OTHERS then
700      rollback to Create_Rollup_Totals_Pvt;
701      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
702 
703      if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
704        FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
705 				l_api_name);
706      end if;
707 
708      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
709 				p_data => p_msg_data);
710 
711 END Create_Rollup_Totals;
712 
713 /* ----------------------------------------------------------------------- */
714 /*===========================================================================+
715  |                   PROCEDURE Update_GL_Balances_CP                         |
716  +===========================================================================*/
717 --
718 -- This is the execution file for the concurrent program 'Update_GL_Balances_CP'
719 -- which runs 'Update GL Balances' program through the
720 -- Standard Report Submissions.
721 --
722 PROCEDURE Update_GL_Balances_CP
723 (
724   errbuf                      OUT  NOCOPY      VARCHAR2  ,
725   retcode                     OUT  NOCOPY      VARCHAR2  ,
726   p_worksheet_id              IN       NUMBER := FND_API.G_MISS_NUM
727 )
728 IS
729   --
730    l_api_name       CONSTANT VARCHAR2(30)   := 'Update_GL_Balances_CP';
731    l_api_version    CONSTANT NUMBER         :=  1.0 ;
732    --
733    l_error_api_name          VARCHAR2(2000);
734    l_return_status           VARCHAR2(1) ;
735    l_msg_count               NUMBER ;
736    l_msg_data                VARCHAR2(2000) ;
737    l_msg_index_out           NUMBER;
738    --
739 BEGIN
740   --
741    PSB_CONCURRENCY_CONTROL_PUB.Enforce_Concurrency_Control
742      (p_api_version => 1.0,
743       p_return_status => l_return_status,
744       p_msg_count => l_msg_count,
745       p_msg_data => l_msg_data,
746       p_concurrency_class => 'WORKSHEET_CREATION',
747       p_concurrency_entity_name => 'WORKSHEET',
748       p_concurrency_entity_id => p_worksheet_id);
749 
750    if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
751      RAISE FND_API.G_EXC_ERROR;
752    end if;
753 
754    PSB_WS_ACCT_PVT.Update_GL_Balances
755      (p_api_version => 1.0,
756       p_init_msg_list => FND_API.G_TRUE,
757       p_return_status => l_return_status,
758       p_msg_count => l_msg_count,
759       p_msg_data => l_msg_data,
760       p_worksheet_id => p_worksheet_id);
761 
762 
763    IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
764      RAISE FND_API.G_EXC_ERROR;
765    END IF;
766 
767   --
768    PSB_CONCURRENCY_CONTROL_PUB.Release_Concurrency_Control
769      (p_api_version => 1.0,
770       p_return_status => l_return_status,
771       p_msg_count => l_msg_count,
772       p_msg_data => l_msg_data,
773       p_concurrency_class => 'WORKSHEET_CREATION',
774       p_concurrency_entity_name => 'WORKSHEET',
775       p_concurrency_entity_id => p_worksheet_id);
776 
777    if l_return_status <> FND_API.G_RET_STS_SUCCESS then
778      raise FND_API.G_EXC_ERROR;
779    end if;
780    --
781    PSB_MESSAGE_S.Print_Success;
782    retcode := 0 ;
783    --
784    COMMIT WORK;
785    --
786 
787 EXCEPTION
788 
789    WHEN FND_API.G_EXC_ERROR THEN
790      --
791      PSB_CONCURRENCY_CONTROL_PUB.Release_Concurrency_Control
792      (p_api_version => 1.0,
793       p_return_status => l_return_status,
794       p_msg_count => l_msg_count,
795       p_msg_data => l_msg_data,
796       p_concurrency_class => 'WORKSHEET_CREATION',
797       p_concurrency_entity_name => 'WORKSHEET',
798       p_concurrency_entity_id => p_worksheet_id);
799 
800      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
801 				 p_print_header =>  FND_API.G_TRUE );
802      retcode := 2 ;
803      COMMIT WORK ;
804      --
805      WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
806      --
807      PSB_CONCURRENCY_CONTROL_PUB.Release_Concurrency_Control
808      (p_api_version => 1.0,
809       p_return_status => l_return_status,
810       p_msg_count => l_msg_count,
811       p_msg_data => l_msg_data,
812       p_concurrency_class => 'WORKSHEET_CREATION',
813       p_concurrency_entity_name => 'WORKSHEET',
814       p_concurrency_entity_id => p_worksheet_id);
815 
816      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
817 				p_print_header =>  FND_API.G_TRUE );
818      retcode := 2 ;
819      COMMIT WORK ;
820      --
821   WHEN OTHERS THEN
822 
823      PSB_CONCURRENCY_CONTROL_PUB.Release_Concurrency_Control
824      (p_api_version => 1.0,
825       p_return_status => l_return_status,
826       p_msg_count => l_msg_count,
827       p_msg_data => l_msg_data,
828       p_concurrency_class => 'WORKSHEET_CREATION',
829       p_concurrency_entity_name => 'WORKSHEET',
830       p_concurrency_entity_id => p_worksheet_id);
831 
832      --
833      IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
834       --
835      FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,
836 			       l_api_name  ) ;
837      END IF ;
838      --
839      l_return_status := FND_API.G_RET_STS_ERROR;
840 
841      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
842 				 p_print_header =>  FND_API.G_TRUE );
843      --
844      retcode := 2 ;
845      COMMIT WORK ;
846      --
847 END Update_GL_Balances_CP ;
848 
849 
850 /*===========================================================================+
851  |                   PROCEDURE Create_Rollup_Totals_CP                      |
852  +===========================================================================*/
853 --
854 -- This is the execution file for the concurrent program 'Create_Rollup_Totals_CP'
855 -- which runs 'Create Rollup Totals' program through the
856 -- Standard Report Submissions.
857 --
858 PROCEDURE Create_Rollup_Totals_CP
859 (
860   errbuf                      OUT  NOCOPY      VARCHAR2  ,
861   retcode                     OUT  NOCOPY      VARCHAR2  ,
862   p_create_summary_totals     IN       VARCHAR2  ,
863   p_worksheet_id              IN       NUMBER := FND_API.G_MISS_NUM
864 )
865 IS
866   --
867   l_api_name       CONSTANT VARCHAR2(30)   := 'Create_Rollup_Totals_CP';
868   l_api_version    CONSTANT NUMBER         :=  1.0 ;
869   --
870   l_error_api_name          VARCHAR2(2000);
871   l_return_status           VARCHAR2(1) ;
872   l_msg_count               NUMBER ;
873   l_msg_data                VARCHAR2(2000) ;
874   l_msg_index_out           NUMBER;
875   --
876 BEGIN
877 
878   IF p_create_summary_totals = 'Y' THEN
879 
880    PSB_CONCURRENCY_CONTROL_PUB.Enforce_Concurrency_Control
881      (p_api_version => 1.0,
882       p_return_status => l_return_status,
883       p_msg_count => l_msg_count,
884       p_msg_data => l_msg_data,
885       p_concurrency_class => 'WORKSHEET_CREATION',
886       p_concurrency_entity_name => 'WORKSHEET',
887       p_concurrency_entity_id => p_worksheet_id);
888 
889    if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
890      RAISE FND_API.G_EXC_ERROR;
891    end if;
892 
893   PSB_WS_ACCT_PVT.Create_Rollup_Totals
894      (p_api_version => 1.0,
895       p_init_msg_list => FND_API.G_TRUE,
896       p_return_status => l_return_status,
897       p_msg_count => l_msg_count,
898       p_msg_data => l_msg_data,
899       p_worksheet_id => p_worksheet_id);
900 
901 
902   IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
903     RAISE FND_API.G_EXC_ERROR;
904   END IF;
905   --
906 
907    PSB_CONCURRENCY_CONTROL_PUB.Release_Concurrency_Control
908      (p_api_version => 1.0,
909       p_return_status => l_return_status,
910       p_msg_count => l_msg_count,
911       p_msg_data => l_msg_data,
912       p_concurrency_class => 'WORKSHEET_CREATION',
913       p_concurrency_entity_name => 'WORKSHEET',
914       p_concurrency_entity_id => p_worksheet_id);
915 
916    if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
917      RAISE FND_API.G_EXC_ERROR;
918    end if;
919 
920   ELSE
921 
922     NULL;
923 
924   END IF;
925 
926   PSB_MESSAGE_S.Print_Success;
927   retcode := 0 ;
928   --
929   COMMIT WORK;
930   --
931 EXCEPTION
932 
933   WHEN FND_API.G_EXC_ERROR THEN
934 
935    PSB_CONCURRENCY_CONTROL_PUB.Release_Concurrency_Control
936      (p_api_version => 1.0,
937       p_return_status => l_return_status,
938       p_msg_count => l_msg_count,
939       p_msg_data => l_msg_data,
940       p_concurrency_class => 'WORKSHEET_CREATION',
941       p_concurrency_entity_name => 'WORKSHEET',
942       p_concurrency_entity_id => p_worksheet_id);
943 
944     PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
945 				p_print_header =>  FND_API.G_TRUE );
946     retcode := 2 ;
947     COMMIT WORK ;
948 
949   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
950 
951    PSB_CONCURRENCY_CONTROL_PUB.Release_Concurrency_Control
952      (p_api_version => 1.0,
953       p_return_status => l_return_status,
954       p_msg_count => l_msg_count,
955       p_msg_data => l_msg_data,
956       p_concurrency_class => 'WORKSHEET_CREATION',
957       p_concurrency_entity_name => 'WORKSHEET',
958       p_concurrency_entity_id => p_worksheet_id);
959 
960     PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
961 				p_print_header =>  FND_API.G_TRUE );
962     retcode := 2 ;
963     COMMIT WORK ;
964 
965   WHEN OTHERS THEN
966 
967    PSB_CONCURRENCY_CONTROL_PUB.Release_Concurrency_Control
968      (p_api_version => 1.0,
969       p_return_status => l_return_status,
970       p_msg_count => l_msg_count,
971       p_msg_data => l_msg_data,
972       p_concurrency_class => 'WORKSHEET_CREATION',
973       p_concurrency_entity_name => 'WORKSHEET',
974       p_concurrency_entity_id => p_worksheet_id);
975 
976     IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
977       --
978       FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,
979 			       l_api_name  ) ;
980     END IF ;
981     --
982     PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
983 				p_print_header =>  FND_API.G_TRUE );
984     --
985     retcode := 2 ;
986     COMMIT WORK ;
987     --
988 
989 END Create_Rollup_Totals_CP ;
990 
991 /* ---------------------------------------------------------------------------------- */
992 --
993 -- This is the execution file for the concurrent program 'Revise_Account_Projections_CP'
994 --
995 PROCEDURE Revise_Account_Projections_CP
996 (
997   errbuf          OUT  NOCOPY  VARCHAR2,
998   retcode         OUT  NOCOPY  VARCHAR2,
999   p_worksheet_id  IN   NUMBER,
1000   p_parameter_id  IN   NUMBER
1001 ) IS
1002   --
1003   l_api_name       CONSTANT VARCHAR2(30)   := 'Revise_Account_Projections_CP';
1004   l_api_version    CONSTANT NUMBER         :=  1.0 ;
1005   --
1006   l_error_api_name          VARCHAR2(2000);
1007   l_return_status           VARCHAR2(1);
1008   l_msg_count               NUMBER;
1009   l_msg_data                VARCHAR2(2000);
1010   l_msg_index_out           NUMBER;
1011   --
1012   l_set_CP_status           BOOLEAN := FALSE; -- Bug#4571412
1013 BEGIN
1014 
1015   PSB_WS_ACCT_PVT.Revise_Account_Projections
1016      (p_api_version => 1.0,
1017       p_init_msg_list => FND_API.G_TRUE,
1018       p_return_status => l_return_status,
1019       p_msg_count => l_msg_count,
1020       p_msg_data => l_msg_data,
1021       p_worksheet_id => p_worksheet_id,
1022       p_parameter_id => p_parameter_id);
1023 
1024   -- Bug#4675858
1025   -- Set the CP status to warning if
1026   -- Note updation had some problems.
1027   IF ( PSB_WS_ACCT1.g_soft_error_flag ) THEN
1028     --
1029     l_set_CP_status
1030       := FND_CONCURRENT.Set_Completion_Status
1031          (status  => 'WARNING',
1032           message => NULL
1033          );
1034     --
1035     -- Reset the variable as it has to be checked in
1036     -- other packages also.
1037     PSB_WS_ACCT1.g_soft_error_flag := FALSE ;
1038     --
1039   END IF;
1040 
1041   if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1042     raise FND_API.G_EXC_ERROR;
1043   end if;
1044 
1045   PSB_MESSAGE_S.Print_Success;
1046   retcode := 0 ;
1047   --
1048   COMMIT WORK;
1049   --
1050 EXCEPTION
1051 
1052   WHEN FND_API.G_EXC_ERROR THEN
1053 
1054     PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1055 				p_print_header =>  FND_API.G_TRUE );
1056     retcode := 2 ;
1057     COMMIT WORK ;
1058 
1059   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1060 
1061     PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1062 				p_print_header =>  FND_API.G_TRUE );
1063     retcode := 2 ;
1064     COMMIT WORK ;
1065 
1066   WHEN OTHERS THEN
1067 
1068     IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1069       --
1070       FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,
1071 			       l_api_name  ) ;
1072     END IF ;
1073     --
1074     PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1075 				p_print_header =>  FND_API.G_TRUE );
1076     --
1077     retcode := 2 ;
1078     COMMIT WORK ;
1079     --
1080 
1081 END Revise_Account_Projections_CP;
1082 
1083 /* ----------------------------------------------------------------------- */
1084 
1085 END PSB_WS_ACCT_PVT;