[Home] [Help]
PACKAGE BODY: APPS.PSB_POSITIONS_I_PVT
Source
1 PACKAGE BODY PSB_POSITIONS_I_PVT AS
2 /* $Header: PSBWPOIB.pls 120.7 2006/02/18 08:12:10 matthoma ship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30):= 'PSB_POSITIONS_I_PVT';
5 G_DBUG VARCHAR2(2000) := 'start';
6
7 PROCEDURE Initialize_View ( p_worksheet_id IN NUMBER,
8 p_start_date IN DATE,
9 p_end_date IN DATE,
10 p_select_date IN DATE := fnd_api.g_miss_date
11 ) IS
12
13
14 BEGIN
15
16 PSB_POSITIONS_PVT.Initialize_View(
17 p_worksheet_id => p_worksheet_id,
18 p_start_date => p_start_date,
19 p_end_date => p_end_date,
20 p_select_date => p_select_date
21 );
22
23
24 END Initialize_View ;
25
26 PROCEDURE Define_Worksheet_Values (
27 p_api_version in number,
28 p_init_msg_list in varchar2 := fnd_api.g_false,
29 p_commit in varchar2 := fnd_api.g_false,
30 p_validation_level in number := fnd_api.g_valid_level_full,
31 p_return_status OUT NOCOPY varchar2,
32 p_msg_count OUT NOCOPY number,
33 p_msg_data OUT NOCOPY varchar2,
34 p_worksheet_id in number,
35 p_position_id in number,
36 p_pos_effective_start_date in date := FND_API.G_MISS_DATE,
37 p_pos_effective_end_date in date := FND_API.G_MISS_DATE,
38 p_budget_source in varchar2:= FND_API.G_MISS_CHAR,
39 p_out_worksheet_id OUT NOCOPY number,
40 p_out_start_date OUT NOCOPY date,
41 p_out_end_date OUT NOCOPY date) IS
42
43 BEGIN
44
45 PSB_POSITIONS_PVT.Define_Worksheet_Values (
46 p_api_version => p_api_version,
47 p_init_msg_list => p_init_msg_list,
48 p_commit => p_commit,
49 p_validation_level=> p_validation_level,
50 p_return_status => p_return_status,
51 p_msg_count => p_msg_count,
52 p_msg_data => p_msg_data,
53 p_worksheet_id => p_worksheet_id,
54 p_position_id => p_position_id ,
55 p_pos_effective_start_date => p_pos_effective_start_date ,
56 p_pos_effective_end_date => p_pos_effective_end_date,
57 p_budget_source => p_budget_source,
58 p_out_worksheet_id => p_out_worksheet_id ,
59 p_out_start_date => p_out_start_date,
60 p_out_end_date => p_out_end_date
61 );
62
63 --
64 END Define_Worksheet_Values ;
65
66
67 -- modify_assignment used for insert/modify assignments
68
69 PROCEDURE Modify_Assignment (
70 p_api_version in number,
71 p_init_msg_list in varchar2 := fnd_api.g_false,
72 p_commit in varchar2 := fnd_api.g_false,
73 p_validation_level in number := fnd_api.g_valid_level_full,
74 p_return_status OUT NOCOPY varchar2,
75 p_msg_count OUT NOCOPY number,
76 p_msg_data OUT NOCOPY varchar2,
77 p_position_assignment_id in OUT NOCOPY number,
78 p_data_extract_id in number,
79 p_worksheet_id in number,
80 p_position_id in number,
81 p_assignment_type in varchar2,
82 p_attribute_id in number,
83 p_attribute_value_id in number,
84 p_attribute_value in varchar2,
85 p_pay_element_id in number,
86 p_pay_element_option_id in number,
87 p_effective_start_date in date,
88 p_effective_end_date in date,
89 p_element_value_type in varchar2,
90 p_element_value in number,
91 p_currency_code in varchar2,
92 p_pay_basis in varchar2,
93 p_employee_id in number,
94 p_primary_employee_flag in varchar2,
95 p_global_default_flag in varchar2,
96 p_assignment_default_rule_id in number,
97 p_modify_flag in varchar2,
98 p_rowid in OUT NOCOPY varchar2,
99 p_mode in varchar2
100 ) IS
101
102 BEGIN
103
104 PSB_POSITIONS_PVT.Modify_Assignment (
105 p_api_version => p_api_version,
106 p_init_msg_list => p_init_msg_list,
107 p_commit => p_commit,
108 p_validation_level => p_validation_level,
109 p_return_status => p_return_status,
110 p_msg_count => p_msg_count,
111 p_msg_data => p_msg_data,
112 p_position_assignment_id => p_position_assignment_id,
113 p_data_extract_id => p_data_extract_id,
114 p_worksheet_id => p_worksheet_id,
115 p_position_id => p_position_id,
116 p_assignment_type => p_assignment_type,
117 p_attribute_id => p_attribute_id,
118 p_attribute_value_id => p_attribute_value_id,
119 p_attribute_value => p_attribute_value ,
120 p_pay_element_id => p_pay_element_id ,
121 p_pay_element_option_id => p_pay_element_option_id,
122 p_effective_start_date => p_effective_start_date,
123 p_effective_end_date => p_effective_end_date,
124 p_element_value_type => p_element_value_type,
125 p_element_value => p_element_value,
126 p_currency_code => p_currency_code ,
127 p_pay_basis => p_pay_basis ,
128 p_employee_id => p_employee_id ,
129 p_primary_employee_flag => p_primary_employee_flag ,
130 p_global_default_flag => p_global_default_flag,
131 p_assignment_default_rule_id => p_assignment_default_rule_id,
132 p_modify_flag => p_modify_flag ,
133 p_rowid => p_rowid,
134 p_mode => p_mode
135 );
136
137 END Modify_Assignment;
138
139
140 PROCEDURE Create_Default_Assignments(
141 p_api_version in number,
142 p_init_msg_list in varchar2 := FND_API.G_FALSE,
143 p_commit in varchar2 := FND_API.G_FALSE,
144 p_validation_level in number := FND_API.G_VALID_LEVEL_FULL,
145 p_return_status OUT NOCOPY varchar2,
146 p_msg_count OUT NOCOPY number,
147 p_msg_data OUT NOCOPY varchar2,
148 p_worksheet_id in number := FND_API.G_MISS_NUM,
149 p_data_extract_id in number,
150 p_position_id in number := FND_API.G_MISS_NUM,
151 p_position_start_date in date := FND_API.G_MISS_DATE,
152 p_position_end_date in date := FND_API.G_MISS_DATE) IS
153
154 -- bug 4559919
155 -- reverted back the changes done for bug#4151746 as the
156 -- behavior will be as per MPA for R12 across patch levels
157
158 /* Bug 4273099 start */
159 l_default_rule_id NUMBER;
160
161 -- Bug 5040737 used order by 2 clause in the following cursor
162 CURSOR c_Assignment_Ruleset IS
163 SELECT a.default_rule_id,
164 f.priority priority,
165 b.global_default_flag,
166 b.overwrite,
167 a.assignment_type,
168 a.attribute_id,
169 a.attribute_value_id,
170 a.attribute_value,
171 a.pay_element_id,
172 a.pay_element_option_id,
173 a.pay_basis,
174 a.element_value_type,
175 a.element_value,
176 a.currency_code
177 FROM psb_default_assignments a,
178 psb_defaults b,
179 psb_set_relations c,
180 psb_budget_positions d,
181 psb_entity_set e,
182 psb_entity_assignment f
183 WHERE a.default_rule_id = b.default_rule_id
184 AND b.default_rule_id = c.default_rule_id
185 AND c.account_position_set_id = d.account_position_set_id
186 AND d.data_extract_id = p_data_extract_id
187 AND d.position_id = p_position_id
188 AND e.entity_set_id = f.entity_set_id
189 AND f.entity_id = b.default_rule_id
190 AND e.data_extract_id = p_data_extract_id
191 AND e.entity_type = 'DEFAULT_RULE'
192 AND NVL(e.executable_from_position, 'N') = 'Y'
193 UNION
194 SELECT a.default_rule_id,
195 d.priority priority,
196 b.global_default_flag,
197 b.overwrite,
198 a.assignment_type,
199 a.attribute_id,
200 a.attribute_value_id,
201 a.attribute_value,
202 a.pay_element_id,
203 a.pay_element_option_id,
204 a.pay_basis,
205 a.element_value_type,
206 a.element_value,
207 a.currency_code
208 FROM psb_default_assignments a,
209 psb_defaults b,
210 psb_entity_set c,
211 psb_entity_assignment d
212 WHERE a.default_rule_id = b.default_rule_id
213 AND b.global_default_flag = 'Y'
214 AND b.data_extract_id = p_data_extract_id
215 AND c.entity_set_id = d.entity_set_id
216 AND b.default_rule_id = d.entity_id
217 AND c.data_extract_id = p_data_extract_id
218 AND c.entity_type = 'DEFAULT_RULE'
219 AND NVL(c.executable_from_position, 'N') = 'Y'
220 ORDER BY 2;
221
222 CURSOR c_Position IS
223 SELECT effective_start_date,
224 effective_end_date
225 FROM psb_positions
226 WHERE position_id = p_position_id ;
227
228 -- Bug 5040737 used order by 2 clause in the following cursor
229 CURSOR c_Priority_ruleset IS
230 SELECT a.default_rule_id,
231 f.priority priority,
232 a.global_default_flag,
233 a.overwrite
234 FROM psb_defaults a,
235 psb_set_relations b,
236 psb_budget_positions c,
237 psb_entity_set e,
238 psb_entity_assignment f
239 WHERE EXISTS
240 (SELECT 1
241 FROM PSB_DEFAULT_ACCOUNT_DISTRS d
242 WHERE d.default_rule_id = a.default_rule_id)
243 AND a.default_rule_id = b.default_rule_id
244 AND b.account_position_set_id = c.account_position_set_id
245 AND c.data_extract_id = p_data_extract_id
246 AND c.position_id = p_position_id
247 AND e.entity_set_id = f.entity_set_id
248 AND f.entity_id = a.default_rule_id
249 AND e.data_extract_id = p_data_extract_id
250 AND e.entity_type = 'DEFAULT_RULE'
251 AND NVL(e.executable_from_position, 'N') = 'Y'
252 UNION
253 SELECT a.default_rule_id,
254 c.priority priority,
255 a.global_default_flag,
256 a.overwrite
257 FROM psb_defaults a,
258 psb_entity_set b,
259 psb_entity_assignment c
260 WHERE EXISTS (SELECT 1
261 FROM PSB_DEFAULT_ACCOUNT_DISTRS d
262 WHERE d.default_rule_id = a.default_rule_id)
263 AND a.global_default_flag = 'Y'
264 AND a.data_extract_id = p_data_extract_id
265 AND b.entity_set_id = c.entity_set_id
266 AND a.default_rule_id = c.entity_id
267 AND b.data_extract_id = p_data_extract_id
268 AND b.entity_type = 'DEFAULT_RULE'
269 AND NVL(b.executable_from_position, 'N') = 'Y'
270 ORDER BY 2;
271
272 CURSOR c_Global_Dist IS
273 SELECT 'Exists'
274 FROM dual
275 WHERE EXISTS
276 (SELECT 1
277 FROM PSB_DEFAULT_ACCOUNT_DISTRS a,
278 PSB_DEFAULTS b
279 WHERE a.default_rule_id = b.default_rule_id
280 AND b.global_default_flag = 'Y'
281 AND b.data_extract_id = p_data_extract_id
282 AND a.default_rule_id = l_default_rule_id
283 );
284
285 CURSOR c_Dist IS
286 SELECT chart_of_accounts_id,
287 code_combination_id,
288 distribution_percent
289 FROM PSB_DEFAULT_ACCOUNT_DISTRS
290 WHERE default_rule_id = l_default_rule_id;
291
292 CURSOR l_distribution_id_csr
293 IS
294 SELECT *
295 FROM PSB_POSITION_PAY_DISTRIBUTIONS
296 WHERE (((p_position_end_date IS NOT NULL)
297 AND (((effective_start_date <= p_position_end_date)
298 AND (effective_end_date IS NULL))
299 OR ((effective_start_date BETWEEN p_position_start_date AND p_position_end_date)
300 OR (effective_end_date BETWEEN p_position_start_date AND p_position_end_date)
301 OR ((effective_start_date < p_position_start_date)
302 AND (effective_end_date > p_position_end_date)))))
303 OR ((p_position_end_date IS NULL)
304 AND (NVL(effective_end_date, p_position_start_date) >= p_position_start_date)))
305 AND data_extract_id = p_data_extract_id
306 AND position_id = p_position_id
307 AND ((worksheet_id IS NULL AND NOT EXISTS
308 /* Bug 4545909 Start */
309 (SELECT 1 FROM psb_position_pay_distributions
310 WHERE worksheet_id = p_worksheet_id
311 AND position_id = p_position_id))
312 OR worksheet_id = p_worksheet_id
313 OR (worksheet_id IS NULL AND p_worksheet_id IS NULL));
314 /* Bug 4545909 End */
315
316 l_position_start_date DATE;
317 l_position_end_date DATE;
318 l_return_status VARCHAR2(1);
319 l_posasgn_id NUMBER;
320 l_msg_count NUMBER;
321 l_msg_data VARCHAR2(2000);
322 l_priority NUMBER;
323 l_global_default_flag VARCHAR2(1);
324 l_local_dist_exists VARCHAR2(1) := FND_API.G_FALSE;
325 l_global_dist_exists VARCHAR2(1) := FND_API.G_FALSE;
326 l_distribution_id NUMBER;
327 l_rowid VARCHAR2(100);
328 l_overwrite_flag VARCHAR2(1);
329 l_worksheet_id NUMBER;
330
331 /* Bug 4273099 end */
332
333 BEGIN
334
335 /* Bug 4545909 Start */
336 IF p_worksheet_id = FND_API.G_MISS_NUM THEN
337 l_worksheet_id := NULL;
338 ELSE
339 l_worksheet_id := p_worksheet_id;
340 END IF;
341 /* Bug 4545909 End */
342
343 /* Bug 4545909 Start */
344
345 DELETE FROM psb_budget_positions
346 WHERE position_id = p_position_id
347 AND data_extract_id = p_data_extract_id;
348
349 PSB_Budget_Position_Pvt.Add_Position_To_Position_Sets
350 (
351 p_api_version => 1.0 ,
352 p_init_msg_list => FND_API.G_TRUE ,
353 p_commit => FND_API.G_FALSE ,
354 p_validation_level => FND_API.G_VALID_LEVEL_FULL ,
355 p_return_status => l_return_status ,
356 p_msg_count => l_msg_count ,
357 p_msg_data => l_msg_data ,
358 p_position_id => p_position_id,
359 p_worksheet_id => l_worksheet_id
360 );
361 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
362 raise FND_API.G_EXC_ERROR;
363 END IF;
364
365 /* Bug 4545909 End */
366
367 /* Bug 4273099 start */
368 IF ((p_position_start_date = FND_API.G_MISS_DATE) OR
369 (p_position_end_date = FND_API.G_MISS_DATE))
370 THEN
371
372 FOR c_Position_Rec in c_Position LOOP
373 l_position_start_date := c_Position_Rec.effective_start_date;
374 l_position_end_date := c_Position_Rec.effective_end_date;
375 END LOOP;
376
377 END IF;
378
379 IF p_position_start_date <> FND_API.G_MISS_DATE THEN
380 l_position_start_date := p_position_start_date;
381 END IF;
382
383 IF p_position_end_date <> FND_API.G_MISS_DATE THEN
384 l_position_end_date := p_position_end_date;
385 END IF;
386
387 FOR c_Assignments_Rec in c_Assignment_Ruleset
388 LOOP
389
390 psb_positions_pvt.Apply_Position_Default_Rules
391 (p_api_version => 1.0,
392 x_return_status => l_return_status,
393 x_msg_count => l_msg_count,
394 x_msg_data => l_msg_data,
395 p_position_assignment_id => l_posasgn_id,
396 p_data_extract_id => p_data_extract_id,
397 p_position_id => p_position_id,
398 p_assignment_type => c_Assignments_Rec.assignment_type,
399 p_attribute_id => c_Assignments_Rec.attribute_id,
400 p_attribute_value_id => c_Assignments_Rec.attribute_value_id,
401 p_attribute_value => c_Assignments_Rec.attribute_value,
402 p_pay_element_id => c_Assignments_Rec.pay_element_id,
403 p_pay_element_option_id => c_Assignments_Rec.pay_element_option_id,
404 p_effective_start_date => l_position_start_date,
405 p_effective_end_date => l_position_end_date,
406 p_element_value_type => c_Assignments_Rec.element_value_type,
407 p_element_value => c_Assignments_Rec.element_value,
408 p_currency_code => c_Assignments_Rec.currency_code,
409 p_pay_basis => c_Assignments_Rec.pay_basis,
410 p_employee_id => null,
411 p_primary_employee_flag => null,
412 p_global_default_flag => c_Assignments_Rec.global_default_flag,
413 p_assignment_default_rule_id => c_Assignments_Rec.default_rule_id,
414 p_modify_flag => c_Assignments_Rec.overwrite,
415 p_worksheet_id => l_worksheet_id );
416 END LOOP;
417
418 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
419 raise FND_API.G_EXC_ERROR;
420 END IF;
421
422 FOR c_Priority_Rec in c_Priority_ruleset LOOP
423
424 l_default_rule_id := c_Priority_Rec.default_rule_id;
425 l_priority := c_Priority_Rec.priority;
426 l_global_default_flag := c_Priority_Rec.global_default_flag;
427
428 IF NVL(c_priority_rec.global_default_flag,'N') = 'N' THEN
429 l_local_dist_exists := FND_API.G_TRUE;
430 END IF;
431
432 l_overwrite_flag := c_priority_rec.overwrite;
433
434 IF l_overwrite_flag IS NULL THEN
435 l_overwrite_flag := 'N';
436 END IF;
437
438 FOR c_Global_Dist_Rec in c_Global_Dist LOOP
439 l_global_dist_exists := FND_API.G_TRUE;
440 END LOOP;
441
442 IF l_overwrite_flag <> 'N' THEN
443
444 IF ((FND_API.to_Boolean(l_local_dist_exists)) OR
445 (FND_API.to_Boolean(l_global_dist_exists))) THEN
446 BEGIN
447
448 PSB_POSITION_PAY_DISTR_PVT.Delete_Distributions_Position
449 (p_api_version => 1.0,
450 p_return_status => l_return_status,
451 p_msg_count => l_msg_count,
452 p_msg_data => l_msg_data,
453 p_position_id => p_position_id,
454 p_worksheet_id => l_worksheet_id);
455
456 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
457 raise FND_API.G_EXC_ERROR;
458 END IF;
459 END;
460 END IF;
461 END IF;
462
463 PSB_POSITIONS_PVT.g_distr_percent_total:= 0;
464
465 FOR l_distribution_id_csr_rec IN l_distribution_id_csr
466 LOOP
467 PSB_POSITIONS_PVT.g_distr_percent_total
468 := PSB_POSITIONS_PVT.g_distr_percent_total + l_distribution_id_csr_rec.distribution_percent;
469 END LOOP;
470
471
472 FOR c_Dist_Rec in c_Dist LOOP
473
474 PSB_POSITION_PAY_DISTR_PVT.Apply_Position_Pay_Distr
475 (p_api_version => 1.0,
476 x_return_status => l_return_status,
477 x_msg_count => l_msg_count,
478 x_msg_data => l_msg_data,
479 p_distribution_id => l_distribution_id,
480 p_position_id => p_position_id,
481 p_data_extract_id => p_data_extract_id,
482 p_worksheet_id => l_worksheet_id,
483 p_effective_start_date => l_position_start_date,
484 p_effective_end_date => l_position_end_date,
485 p_modify_flag => l_overwrite_flag,
486 p_chart_of_accounts_id => c_Dist_Rec.chart_of_accounts_id,
487 p_code_combination_id => c_Dist_Rec.code_combination_id,
488 p_distribution_percent => c_Dist_Rec.distribution_percent,
489 p_global_default_flag => l_global_default_flag,
490 p_distribution_default_rule_id => l_default_rule_id,
491 p_rowid => l_rowid);
492
493
494 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
495 raise FND_API.G_EXC_ERROR;
496 END IF;
497
498 END LOOP;
499
500 END LOOP;
501
502 /* Bug 4273099 End */
503
504 END Create_Default_Assignments;
505
506 FUNCTION Get_Select_Date RETURN DATE IS
507 BEGIN
508 Return PSB_POSITIONS_PVT.Get_Select_Date ;
509 END Get_Select_Date;
510
511
512 FUNCTION Check_Allowed
513 ( p_api_version IN NUMBER,
514 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
515 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_NONE,
516 p_msg_count OUT NOCOPY NUMBER,
517 p_msg_data OUT NOCOPY VARCHAR2,
518 p_worksheet_id IN NUMBER,
519 p_position_budget_group_id IN NUMBER
520 ) RETURN VARCHAR2 IS
521
522 l_api_name CONSTANT VARCHAR2(30) := 'Check_Allowed';
523 l_api_version CONSTANT NUMBER := 1.0;
524
525 BEGIN
526
527 -- Standard call to check for call compatibility.
528
529 if not FND_API.Compatible_API_Call (l_api_version,
530 p_api_version,
531 l_api_name,
532 G_PKG_NAME)
533 then
534 raise FND_API.G_EXC_UNEXPECTED_ERROR;
535 end if;
536
537
538 -- Initialize message list if p_init_msg_list is set to TRUE
539
540 if FND_API.to_Boolean (p_init_msg_list) then
541 FND_MSG_PUB.initialize;
542 end if;
543
544
545 -- Call Private Function
546
547 RETURN PSB_WS_POS1.Check_Allowed
548 (p_api_version => 1.0,
549 p_validation_level => p_validation_level,
550 p_worksheet_id => p_worksheet_id,
551 p_position_budget_group_id => p_position_budget_group_id);
552
553
554 -- Standard call to get message count and if count is 1, get message info
555
556 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
557 p_data => p_msg_data);
558
559
560 EXCEPTION
561
562 when FND_API.G_EXC_ERROR then
563 return FND_API.G_FALSE;
564
565 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
566 p_data => p_msg_data);
567
568
569 when FND_API.G_EXC_UNEXPECTED_ERROR then
570 return FND_API.G_FALSE;
571
572 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
573 p_data => p_msg_data);
574
575
576 when OTHERS then
577 return FND_API.G_FALSE;
578
579 if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
580 FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
581 l_api_name);
582 end if;
583
584 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
585 p_data => p_msg_data);
586
587 END Check_Allowed;
588
589 FUNCTION Rev_Check_Allowed
590 ( p_api_version IN NUMBER,
591 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
592 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_NONE,
593 p_msg_count OUT NOCOPY NUMBER,
594 p_msg_data OUT NOCOPY VARCHAR2,
595 p_startdate_pp IN DATE,
596 p_enddate_cy IN DATE,
597 p_worksheet_id IN NUMBER,
598 p_position_budget_group_id IN NUMBER
599 ) RETURN VARCHAR2 IS
600
601 l_api_name CONSTANT VARCHAR2(30) := 'Rev_Check_Allowed';
602 l_api_version CONSTANT NUMBER := 1.0;
603
604 BEGIN
605
606 -- Standard call to check for call compatibility.
607
608 if not FND_API.Compatible_API_Call (l_api_version,
609 p_api_version,
610 l_api_name,
611 G_PKG_NAME)
612 then
613 raise FND_API.G_EXC_UNEXPECTED_ERROR;
614 end if;
615
616
617 -- Initialize message list if p_init_msg_list is set to TRUE
618
619 if FND_API.to_Boolean (p_init_msg_list) then
620 FND_MSG_PUB.initialize;
621 end if;
622
623
624 -- Call Private Function
625
626 RETURN PSB_POSITIONS_PVT.Rev_Check_Allowed
627 (p_api_version => p_api_version,
628 p_validation_level => p_validation_level,
629 p_startdate_pp => p_startdate_pp,
630 p_enddate_cy => p_enddate_cy,
631 p_worksheet_id => p_worksheet_id,
632 p_position_budget_group_id => p_position_budget_group_id);
633
634
635 -- Standard call to get message count and if count is 1, get message info
636
637 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
638 p_data => p_msg_data);
639
640
641 EXCEPTION
642
643 when FND_API.G_EXC_ERROR then
644 return FND_API.G_FALSE;
645
646 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
647 p_data => p_msg_data);
648
649
650 when FND_API.G_EXC_UNEXPECTED_ERROR then
651 return FND_API.G_FALSE;
652
653 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
654 p_data => p_msg_data);
655
656
657 when OTHERS then
658 return FND_API.G_FALSE;
659
660 if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
661 FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
662 l_api_name);
663 end if;
664
665 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
666 p_data => p_msg_data);
667
668 END Rev_Check_Allowed;
669
670 PROCEDURE Modify_Distribution_WS
671 ( p_api_version IN NUMBER,
672 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
673 p_commit IN VARCHAR2 := FND_API.G_FALSE,
674 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
675 p_return_status OUT NOCOPY VARCHAR2,
676 p_msg_count OUT NOCOPY NUMBER,
677 p_msg_data OUT NOCOPY VARCHAR2,
678 p_distribution_id IN OUT NOCOPY NUMBER,
679 p_worksheet_id IN NUMBER := FND_API.G_MISS_NUM,
680 p_position_id IN NUMBER,
681 p_data_extract_id IN NUMBER,
682 p_effective_start_date IN DATE,
683 p_effective_end_date IN DATE,
684 p_chart_of_accounts_id IN NUMBER,
685 p_code_combination_id IN NUMBER,
686 p_distribution_percent IN NUMBER,
687 p_global_default_flag IN VARCHAR2,
688 p_distribution_default_rule_id IN NUMBER,
689 p_rowid IN OUT NOCOPY VARCHAR2,
690 p_budget_revision_pos_line_id IN NUMBER:= FND_API.G_MISS_NUM,
691 p_mode IN VARCHAR2
692 ) IS
693 BEGIN
694 PSB_POSITION_PAY_DISTR_PVT.MODIFY_DISTRIBUTION_WS (
695
696 p_api_version => p_api_version,
697 p_init_msg_list => p_init_msg_list,
698 p_commit => p_commit,
699 p_validation_level => p_validation_level,
700 p_return_status => p_return_status,
701 p_msg_count => p_msg_count,
702 p_msg_data => p_msg_data,
703 p_distribution_id => p_distribution_id,
704 p_worksheet_id => p_worksheet_id,
705 p_position_id => p_position_id,
706 p_data_extract_id => p_data_extract_id,
707 p_effective_start_date => p_effective_start_date,
708 p_effective_end_date => p_effective_end_date,
709 p_chart_of_accounts_id => p_chart_of_accounts_id,
710 p_code_combination_id => p_code_combination_id,
711 p_distribution_percent => p_distribution_percent,
712 p_global_default_flag => p_global_default_flag,
713 p_distribution_default_rule_id => p_distribution_default_rule_id,
714 p_rowid => p_rowid,
715 p_budget_revision_pos_line_id => p_budget_revision_pos_line_id,
716 p_mode => p_mode
717 );
718
719 END Modify_Distribution_WS;
720
721 PROCEDURE DELETE_ROW (
722 p_api_version in number,
723 p_init_msg_list in varchar2 := fnd_api.g_false,
724 p_commit in varchar2 := fnd_api.g_false,
725 p_validation_level in number := fnd_api.g_valid_level_full,
726 p_return_status OUT NOCOPY varchar2,
727 p_msg_count OUT NOCOPY number,
728 p_msg_data OUT NOCOPY varchar2,
729 p_distribution_id in number
730 )
731 IS
732
733 BEGIN
734 PSB_POSITION_PAY_DISTR_PVT.DELETE_ROW (
735 p_api_version => p_api_version,
736 p_init_msg_list => p_init_msg_list,
737 p_commit => p_commit,
738 p_validation_level => p_validation_level,
739 p_return_status => p_return_status,
740 p_msg_count => p_msg_count,
741 p_msg_data => p_msg_data,
742 p_distribution_id => p_distribution_id
743 );
744 END DELETE_ROW;
745 --
746
747 PROCEDURE LOCK_ROW (
748 p_api_version in number,
749 p_init_msg_list in varchar2 := fnd_api.g_false,
750 p_commit in varchar2 := fnd_api.g_false,
751 p_validation_level in number := fnd_api.g_valid_level_full,
752 p_return_status OUT NOCOPY varchar2,
753 p_msg_count OUT NOCOPY number,
754 p_msg_data OUT NOCOPY varchar2,
755 p_row_locked OUT NOCOPY varchar2,
756 p_distribution_id in number,
757 p_position_id in number,
758 p_data_extract_id in number,
759 p_effective_start_date in date,
760 p_effective_end_date in date,
761 p_chart_of_accounts_id in number,
762 p_code_combination_id in number,
763 p_distribution_percent in number,
764 p_global_default_flag in varchar2,
765 p_distribution_default_rule_id in number
766 ) IS
767
768 BEGIN
769 PSB_POSITION_PAY_DISTR_PVT.LOCK_ROW (
770 p_api_version => p_api_version,
771 p_init_msg_list => p_init_msg_list,
772 p_commit => p_commit,
773 p_validation_level => p_validation_level,
774 p_return_status => p_return_status,
775 p_msg_count => p_msg_count,
776 p_msg_data => p_msg_data,
777 p_row_locked => p_row_locked,
778 p_distribution_id => p_distribution_id,
779 p_position_id => p_position_id,
780 p_data_extract_id => p_data_extract_id,
781 p_effective_start_date => p_effective_start_date,
782 p_effective_end_date => p_effective_end_date,
783 p_chart_of_accounts_id => p_chart_of_accounts_id,
784 p_code_combination_id => p_code_combination_id,
785 p_distribution_percent => p_distribution_percent,
786 p_global_default_flag => p_global_default_flag,
787 p_distribution_default_rule_id => p_distribution_default_rule_id
788 );
789 END LOCK_ROW;
790
791
792 /* ----------------------------------------------------------------------- */
793
794 END PSB_POSITIONS_I_PVT;