[Home] [Help]
PACKAGE BODY: APPS.PA_BILLING_SCHEDULE_PUB
Source
1 PACKAGE BODY PA_BILLING_SCHEDULE_PUB AS
2 /* $Header: PABLINPB.pls 120.3 2005/08/19 16:16:18 mwasowic noship $ */
3
4 G_PKG_NAME VARCHAR2(30) := 'PA_BILLING_SCHEDULE_PUB';
5
6 -- API name : Update_Project_Task_Bill_Info
7 -- Type : Public procedure
8 -- Pre-reqs : None
9 -- Return Value : N/A
10 -- Prameters
11 -- p_api_version IN NUMBER REQUIRED DEFAULT=1.0
12 -- p_init_msg_list IN VARCHAR2 REQUIRED DEFAULT=FND_API.G_TRUE
13 -- p_commit IN VARCHAR2 REQUIRED DEFAULT=FND_API.G_FALSE
14 -- p_validate_only IN VARCHAR2 REQUIRED DEFAULT=FND_API.G_TRUE
15 -- p_validation_level IN NUMBER OPTIONAL DEFAULT=FND_API.G_VALID_LEVEL_FULL
16 -- p_calling_module IN VARCHAR2 OPTIONAL DEFAULT='SELF_SERVICE'
17 -- p_debug_mode IN VARCHAR2 OPTIONAL DEFAULT='N'
18 -- p_max_msg_count IN NUMBER OPTIONAL DEFAULT=FND_API.G_MISS_NUM
19 -- p_project_id IN NUMBER REQUIRED
20 -- p_task_id IN NUMBER OPTIONAL DEFAULT=FND_API.G_MISS_NUM
21 -- p_lbr_schedule_type IN VARCHAR2 OPTIONAL DEFAULT=FND_API.G_MISS_CHAR
22 -- p_non_lbr_schedule_type IN VARCHAR2 OPTIONAL DEFAULT=FND_API.G_MISS_CHAR
23 -- p_emp_bill_rate_sch_name IN VARCHAR2 OPTIONAL DEFAULT=FND_API.G_MISS_CHAR
24 -- p_emp_bill_rate_sch_id IN NUMBER OPTIONAL DEFAULT=FND_API.G_MISS_NUM
25 -- p_job_bill_rate_sch_name IN VARCHAR2 OPTIONAL DEFAULT=FND_API.G_MISS_CHAR
26 -- p_job_bill_rate_sch_id IN NUMBER OPTIONAL DEFAULT=FND_API.G_MISS_NUM
27 -- p_lbr_sch_fxd_date IN DATE OPTIONAL DEFAULT=FND_API.G_MISS_DATE
28 -- p_lbr_sch_discount IN NUMBER OPTIONAL DEFAULT=FND_API.G_MISS_NUM
29 -- p_rev_schedule IN VARCHAR2 OPTIONAL DEFAULT=FND_API.G_MISS_CHAR
30 -- p_rev_schedule_id IN NUMBER OPTIONAL DEFAULT=FND_API.G_MISS_NUM
31 -- p_inv_schedule IN VARCHAR2 OPTIONAL DEFAULT=FND_API.G_MISS_CHAR
32 -- p_inv_schedule_id IN NUMBER OPTIONAL DEFAULT=FND_API.G_MISS_NUM
33 -- p_rev_ind_sch_fxd_date IN DATE OPTIONAL DEFAULT=FND_API.G_MISS_DATE
34 -- p_inv_ind_sch_fxd_date IN DATE OPTIONAL DEFAULT=FND_API.G_MISS_DATE
35 -- p_nlbr_bill_rate_org IN VARCHAR2 OPTIONAL DEFAULT=FND_API.G_MISS_CHAR
36 -- p_nlbr_bill_rate_org_id IN NUMBER OPTIONAL DEFAULT=FND_API.G_MISS_NUM
37 -- p_nlbr_std_bill_rate_sch IN VARCHAR2 OPTIONAL DEFAULT=FND_API.G_MISS_CHAR
38 -- p_nlbr_sch_fxd_date IN DATE OPTIONAL DEFAULT=FND_API.G_MISS_DATE
39 -- p_nlbr_sch_discount IN NUMBER OPTIONAL DEFAULT=FND_API.G_MISS_NUM
40 -- p_record_version_number IN NUMBER REQUIRED DEFAULT=1
41 -- x_return_status OUT VARCHAR2 REQUIRED
42 -- x_msg_count OUT VARCHAR2 REQUIRED
43 -- x_msg_data OUT VARCHAR2 REQUIRED
44 --
45 -- History
46 --
47 -- 21-MAY-01 Majid Ansari -Created
48 --
49 --
50
51 PROCEDURE Update_Project_Task_Bill_Info(
52 p_api_version IN NUMBER DEFAULT 1.0,
53 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_TRUE,
54 p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE,
55 p_validate_only IN VARCHAR2 DEFAULT FND_API.G_TRUE,
56 p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL,
57 p_calling_module IN VARCHAR2 DEFAULT 'SELF_SERVICE',
58 p_debug_mode IN VARCHAR2 DEFAULT 'N',
59 p_max_msg_count IN NUMBER DEFAULT FND_API.G_MISS_NUM,
60 p_project_id IN NUMBER ,
61 p_task_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
62 p_lbr_schedule_type IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
63 p_non_lbr_schedule_type IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
64 p_emp_bill_rate_sch_name IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
65 p_emp_bill_rate_sch_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
66 p_job_bill_rate_sch_name IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
67 p_job_bill_rate_sch_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
68 p_lbr_sch_fxd_date IN DATE DEFAULT FND_API.G_MISS_DATE,
69 p_lbr_sch_discount IN NUMBER DEFAULT FND_API.G_MISS_NUM,
70 p_rev_schedule IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
71 p_rev_schedule_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
72 p_inv_schedule IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
73 p_inv_schedule_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
74 p_rev_ind_sch_fxd_date IN DATE DEFAULT FND_API.G_MISS_DATE,
75 p_inv_ind_sch_fxd_date IN DATE DEFAULT FND_API.G_MISS_DATE,
76 p_nlbr_bill_rate_org IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
77 p_nlbr_bill_rate_org_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
78 p_nlbr_std_bill_rate_sch IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
79 p_nlbr_sch_fxd_date IN DATE DEFAULT FND_API.G_MISS_DATE,
80 p_nlbr_sch_discount IN NUMBER DEFAULT FND_API.G_MISS_NUM,
81 p_record_version_number IN NUMBER DEFAULT 1,
82 x_return_status OUT NOCOPY VARCHAR2 , --File.Sql.39 bug 4440895
83 x_msg_count OUT NOCOPY VARCHAR2 , --File.Sql.39 bug 4440895
84 x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
85 ) IS
86
87 --Derive bill_job_group_id from pa_projects_prm_v using project-task id.
88 CURSOR cur_job_group IS
89 SELECT bill_job_group_id
90 FROM pa_projects_prm_v
91 WHERE project_id = p_project_id;
92 --AND task_id = decode( p_task_id, FND_API.G_MISS_NUM, p_task_id );
93
94 l_api_name CONSTANT VARCHAR(30) := 'Update_Project_Task_Bill_Info';
95 l_api_version CONSTANT NUMBER := 1.0;
96
97 l_return_status VARCHAR2(1);
98 l_error_msg_code VARCHAR2(250);
99 l_msg_data VARCHAR2(250);
100 l_dummy_char VARCHAR2(1);
101 l_msg_count NUMBER;
102 l_data VARCHAR2(250);
103 l_msg_index_out NUMBER;
104
105 l_job_group_id NUMBER;
106
107 l_emp_bill_rate_sch_id NUMBER;
108 l_job_bill_rate_sch_id NUMBER;
109 l_lbr_sch_fxd_date DATE;
110 l_lbr_sch_discount NUMBER;
111 l_rev_schedule_id NUMBER;
112 l_inv_schedule_id NUMBER;
113 l_rev_ind_sch_fxd_date DATE;
114 l_inv_ind_sch_fxd_date DATE;
115 l_nlbr_bill_rate_org_id NUMBER;
116 l_nlbr_std_bill_rate_sch VARCHAR2(30);
117 l_nlbr_sch_fxd_date DATE;
118 l_nlbr_sch_discount NUMBER;
119
120 BEGIN
121 -- Standard call to check for call compatibility
122
123 IF (p_debug_mode = 'Y')
124 THEN
125 pa_debug.debug('Update Bill Info PUB : Checking the api version number.');
126 END IF;
127
128 IF p_commit = FND_API.G_TRUE
129 THEN
130 SAVEPOINT prm_create_project;
131 END IF;
132
133 IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
134 p_api_version,
135 l_api_name,
136 g_pkg_name)
137 THEN
138 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
139 END IF;
140
141 if (p_debug_mode = 'Y') then
142 pa_debug.debug('Update Bill Info PUB : Initializing message stack.');
143 end if;
144
145 pa_debug.init_err_stack('PA_BILLING_SCHEDULE_PUB.Update_Project_Task_Bill_Info');
146
147 if FND_API.to_boolean(nvl(p_init_msg_list, FND_API.G_FALSE)) then
148 fnd_msg_pub.initialize;
149 end if;
150
151 x_return_status := 'S';
152
153 IF p_validate_only = FND_API.G_TRUE AND p_validation_level > 0
154 THEN
155 IF p_lbr_schedule_type = 'B' AND p_non_lbr_schedule_type= 'B'
156 THEN
157
158 l_rev_schedule_id := null;
159 l_inv_schedule_id := null;
160 l_rev_ind_sch_fxd_date := null;
161 l_inv_ind_sch_fxd_date := null;
162
163 l_nlbr_bill_rate_org_id := p_nlbr_bill_rate_org_id;
164 l_nlbr_std_bill_rate_sch := p_nlbr_std_bill_rate_sch;
165 l_nlbr_sch_fxd_date := p_nlbr_sch_fxd_date;
166 l_nlbr_sch_discount := p_nlbr_sch_discount;
167
168 l_emp_bill_rate_sch_id := p_emp_bill_rate_sch_id;
169 l_lbr_sch_fxd_date := p_lbr_sch_fxd_date;
170 l_lbr_sch_discount := p_lbr_sch_discount;
171 l_job_bill_rate_sch_id := p_job_bill_rate_sch_id;
172
173 --validating organization
174 IF ( p_nlbr_bill_rate_org_id IS NOT NULL AND p_nlbr_bill_rate_org_id <> FND_API.G_MISS_NUM ) OR
175 ( p_nlbr_bill_rate_org IS NOT NULL AND p_nlbr_bill_rate_org <> FND_API.G_MISS_CHAR )
176 THEN
177 if (p_debug_mode = 'Y') then
178 pa_debug.debug('Update Billing Info PUB : Checking Carrying out organization');
179 end if;
180 PA_BILLING_SCHEDULE_UTILS.NL_org_sch_Name_To_Id
181 ( p_org_id => p_nlbr_bill_rate_org_id
182 ,p_org_name => p_nlbr_bill_rate_org
183 ,p_check_id_flag => 'A'
184 ,x_org_id => l_nlbr_bill_rate_org_id
185 ,x_return_status => l_return_status
186 ,x_error_msg_code => l_error_msg_code);
187
188 IF l_return_status = FND_API.G_RET_STS_ERROR
189 THEN
190 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
191 p_msg_name => l_error_msg_code);
192 x_msg_data := l_error_msg_code;
193 x_return_status := 'E';
194 END IF;
195 END IF;
196
197 --Validating emp-bill rate schedule id
198 IF ( p_emp_bill_rate_sch_id IS NOT NULL AND p_emp_bill_rate_sch_id <> FND_API.G_MISS_NUM ) OR
199 ( p_emp_bill_rate_sch_name IS NOT NULL AND p_emp_bill_rate_sch_name <> FND_API.G_MISS_CHAR )
200 THEN
201 if (p_debug_mode = 'Y') then
202 pa_debug.debug('Update Billing Info PUB : Checking Emp bill rate schedule id');
203 end if;
204 PA_BILLING_SCHEDULE_UTILS.Emp_bill_rate_sch_name_To_Id
205 ( p_emp_bill_rate_id => p_emp_bill_rate_sch_id
206 ,p_emp_bill_rate_name => p_emp_bill_rate_sch_name
207 ,p_check_id_flag => 'A'
208 ,x_emp_bill_rate_id => l_emp_bill_rate_sch_id
209 ,x_return_status => l_return_status
210 ,x_error_msg_code => l_error_msg_code);
211
212 IF l_return_status = FND_API.G_RET_STS_ERROR
213 THEN
214 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
215 p_msg_name => l_error_msg_code);
216 x_msg_data := l_error_msg_code;
217 x_return_status := 'E';
218 END IF;
219 END IF;
220
221
222 --Validating job-bill rate schedule id
223 IF ( p_job_bill_rate_sch_id IS NOT NULL AND p_job_bill_rate_sch_id <> FND_API.G_MISS_NUM ) OR
224 ( p_job_bill_rate_sch_name IS NOT NULL AND p_job_bill_rate_sch_name <> FND_API.G_MISS_CHAR )
225 THEN
226 if (p_debug_mode = 'Y') then
227 pa_debug.debug('Update Billing Info PUB : Checking Job bill rate schedule id');
228 end if;
229
230 /* --Derive bill_job_group_id from pa_projects_prm_v using project-task id.
231 SELECT bill_job_group_id
232 INTO l_job_group_id
233 FROM pa_projects_prm_v
234 WHERE project_id = p_project_id;
235 --AND task_id = decode( p_task_id, FND_API.G_MISS_NUM, p_task_id );*/
236
237 l_job_group_id := PA_BILLING_SCHEDULE_UTILS.Get_Job_Group_Id(
238 p_project_id,
239 l_return_status );
240
241 PA_BILLING_SCHEDULE_UTILS.Job_bill_rate_sch_name_To_Id
242 ( p_job_bill_rate_id => p_job_bill_rate_sch_id
243 ,p_job_bill_rate_name => p_job_bill_rate_sch_name
244 ,p_job_group_id => l_job_group_id
245 ,p_check_id_flag => 'A'
246 ,x_job_bill_rate_id => l_job_bill_rate_sch_id
247 ,x_return_status => l_return_status
248 ,x_error_msg_code => l_error_msg_code);
249
250 IF l_return_status = FND_API.G_RET_STS_ERROR
251 THEN
252 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
253 p_msg_name => l_error_msg_code);
254 x_msg_data := l_error_msg_code;
255 x_return_status := 'E';
256 END IF;
257 END IF;
258
259 --Validating Schedule
260 IF ( p_nlbr_std_bill_rate_sch IS NOT NULL AND p_nlbr_std_bill_rate_sch <> FND_API.G_MISS_CHAR )
261 THEN
262 if (p_debug_mode = 'Y') then
263 pa_debug.debug('Update Billing Info PUB : Checking schedule ');
264 end if;
265 PA_BILLING_SCHEDULE_UTILS.Nlbr_schedule_name_To_Id
266 ( p_sch_name => p_nlbr_std_bill_rate_sch
267 ,p_nlbr_org_id => l_nlbr_bill_rate_org_id
268 ,p_check_id_flag => 'A'
269 ,x_sch_name => l_nlbr_std_bill_rate_sch
270 ,x_return_status => l_return_status
271 ,x_error_msg_code => l_error_msg_code);
272
273 IF l_return_status = FND_API.G_RET_STS_ERROR
274 THEN
275 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
276 p_msg_name => l_error_msg_code);
277 x_msg_data := l_error_msg_code;
278 x_return_status := 'E';
279 END IF;
280 END IF;
281 ELSIF p_lbr_schedule_type = 'B' AND p_non_lbr_schedule_type= 'I'
282 THEN
283 l_nlbr_bill_rate_org_id := null;
284 l_nlbr_std_bill_rate_sch := null;
285 l_nlbr_sch_fxd_date := null;
286 l_nlbr_sch_discount := null;
287
288 l_rev_schedule_id := p_rev_schedule_id;
289 l_inv_schedule_id := p_inv_schedule_id;
290 l_rev_ind_sch_fxd_date := p_rev_ind_sch_fxd_date;
291 l_inv_ind_sch_fxd_date := p_inv_ind_sch_fxd_date;
292
293
294 l_emp_bill_rate_sch_id := p_emp_bill_rate_sch_id;
295 l_lbr_sch_fxd_date := p_lbr_sch_fxd_date;
296 l_lbr_sch_discount := p_lbr_sch_discount;
297 l_job_bill_rate_sch_id := p_job_bill_rate_sch_id;
298
299
300 --Validating emp-bill rate schedule id
301 IF ( p_emp_bill_rate_sch_id IS NOT NULL AND p_emp_bill_rate_sch_id <> FND_API.G_MISS_NUM ) OR
302 ( p_emp_bill_rate_sch_name IS NOT NULL AND p_emp_bill_rate_sch_name <> FND_API.G_MISS_CHAR )
303 THEN
304 if (p_debug_mode = 'Y') then
305 pa_debug.debug('Update Billing Info PUB : Checking Emp bill rate schedule id');
306 end if;
307 PA_BILLING_SCHEDULE_UTILS.Emp_bill_rate_sch_name_To_Id
308 ( p_emp_bill_rate_id => p_emp_bill_rate_sch_id
309 ,p_emp_bill_rate_name => p_emp_bill_rate_sch_name
310 ,p_check_id_flag => 'A'
311 ,x_emp_bill_rate_id => l_emp_bill_rate_sch_id
312 ,x_return_status => l_return_status
313 ,x_error_msg_code => l_error_msg_code);
314
315 IF l_return_status = FND_API.G_RET_STS_ERROR
316 THEN
317 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
318 p_msg_name => l_error_msg_code);
319 x_msg_data := l_error_msg_code;
320 x_return_status := 'E';
321 END IF;
322 END IF;
323
324
325 --Validating job-bill rate schedule id
326 IF ( p_job_bill_rate_sch_id IS NOT NULL AND p_job_bill_rate_sch_id <> FND_API.G_MISS_NUM ) OR
327 ( p_job_bill_rate_sch_name IS NOT NULL AND p_job_bill_rate_sch_name <> FND_API.G_MISS_CHAR )
328 THEN
329 if (p_debug_mode = 'Y') then
330 pa_debug.debug('Update Billing Info PUB : Checking Job bill rate schedule id');
331 end if;
332
333 l_job_group_id := PA_BILLING_SCHEDULE_UTILS.Get_Job_Group_Id(
334 p_project_id,
335 l_return_status );
336
337 PA_BILLING_SCHEDULE_UTILS.Job_bill_rate_sch_name_To_Id
338 ( p_job_bill_rate_id => p_job_bill_rate_sch_id
339 ,p_job_bill_rate_name => p_job_bill_rate_sch_name
340 ,p_job_group_id => l_job_group_id
341 ,p_check_id_flag => 'A'
342 ,x_job_bill_rate_id => l_job_bill_rate_sch_id
343 ,x_return_status => l_return_status
344 ,x_error_msg_code => l_error_msg_code);
345
346 IF l_return_status = FND_API.G_RET_STS_ERROR
347 THEN
348 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
349 p_msg_name => l_error_msg_code);
350 x_msg_data := l_error_msg_code;
351 x_return_status := 'E';
352 END IF;
353 END IF;
354
355
356 --Validating rev schedule id
357 IF ( p_rev_schedule_id IS NOT NULL AND p_rev_schedule_id <> FND_API.G_MISS_NUM ) OR
358 ( p_rev_schedule IS NOT NULL AND p_rev_schedule <> FND_API.G_MISS_CHAR )
359 THEN
360 if (p_debug_mode = 'Y') then
361 pa_debug.debug('Update Billing Info PUB : Checking Revenue schedule');
362 end if;
363 PA_BILLING_SCHEDULE_UTILS.Rev_Sch_Name_To_Id
364 ( p_rev_sch_id => p_rev_schedule_id
365 ,p_rev_sch_name => p_rev_schedule
366 ,p_check_id_flag => 'A'
367 ,x_rev_sch_id => l_rev_schedule_id
368 ,x_return_status => l_return_status
369 ,x_error_msg_code => l_error_msg_code);
370
371 IF l_return_status = FND_API.G_RET_STS_ERROR
372 THEN
373 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
374 p_msg_name => l_error_msg_code);
375 x_msg_data := l_error_msg_code;
376 x_return_status := 'E';
377 END IF;
378 END IF;
379
380 --Validating Inv schedule id
381 IF ( p_inv_schedule_id IS NOT NULL AND p_inv_schedule_id <> FND_API.G_MISS_NUM ) OR
382 ( p_inv_schedule IS NOT NULL AND p_inv_schedule <> FND_API.G_MISS_CHAR )
383 THEN
384 if (p_debug_mode = 'Y') then
385 pa_debug.debug('Update Billing Info PUB : Checking Invoice schedule');
386 end if;
387 PA_BILLING_SCHEDULE_UTILS.Inv_Sch_Name_To_Id
388 ( p_inv_sch_id => p_inv_schedule_id
389 ,p_inv_sch_name => p_inv_schedule
390 ,p_check_id_flag => 'A'
391 ,x_inv_sch_id => l_inv_schedule_id
392 ,x_return_status => l_return_status
393 ,x_error_msg_code => l_error_msg_code);
394
395 IF l_return_status = FND_API.G_RET_STS_ERROR
396 THEN
397 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
398 p_msg_name => l_error_msg_code);
399 x_msg_data := l_error_msg_code;
400 x_return_status := 'E';
401 END IF;
402 END IF;
403 ELSIF p_lbr_schedule_type = 'I' AND p_non_lbr_schedule_type= 'B'
404 THEN
405 l_nlbr_bill_rate_org_id := p_nlbr_bill_rate_org_id;
406 l_nlbr_std_bill_rate_sch := p_nlbr_std_bill_rate_sch;
407 l_nlbr_sch_fxd_date := p_nlbr_sch_fxd_date;
408 l_nlbr_sch_discount := p_nlbr_sch_discount;
409
410 l_rev_schedule_id := p_rev_schedule_id;
411 l_inv_schedule_id := p_inv_schedule_id;
412 l_rev_ind_sch_fxd_date := p_rev_ind_sch_fxd_date;
413 l_inv_ind_sch_fxd_date := p_inv_ind_sch_fxd_date;
414
415
416 l_emp_bill_rate_sch_id := null;
417 l_lbr_sch_fxd_date := null;
418 l_lbr_sch_discount := null;
419 l_job_bill_rate_sch_id := null;
420
421 --Validating rev schedule id
422 IF ( p_rev_schedule_id IS NOT NULL AND p_rev_schedule_id <> FND_API.G_MISS_NUM ) OR
423 ( p_rev_schedule IS NOT NULL AND p_rev_schedule <> FND_API.G_MISS_CHAR )
424 THEN
425 if (p_debug_mode = 'Y') then
426 pa_debug.debug('Update Billing Info PUB : Checking Revenue schedule');
427 end if;
428 PA_BILLING_SCHEDULE_UTILS.Rev_Sch_Name_To_Id
429 ( p_rev_sch_id => p_rev_schedule_id
430 ,p_rev_sch_name => p_rev_schedule
431 ,p_check_id_flag => 'A'
432 ,x_rev_sch_id => l_rev_schedule_id
433 ,x_return_status => l_return_status
434 ,x_error_msg_code => l_error_msg_code);
435
436 IF l_return_status = FND_API.G_RET_STS_ERROR
437 THEN
438 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
439 p_msg_name => l_error_msg_code);
440 x_msg_data := l_error_msg_code;
441 x_return_status := 'E';
442 END IF;
443 END IF;
444
445 --Validating Inv schedule id
446 IF ( p_inv_schedule_id IS NOT NULL AND p_inv_schedule_id <> FND_API.G_MISS_NUM ) OR
447 ( p_inv_schedule IS NOT NULL AND p_inv_schedule <> FND_API.G_MISS_CHAR )
448 THEN
449 if (p_debug_mode = 'Y') then
450 pa_debug.debug('Update Billing Info PUB : Checking Invoice schedule');
451 end if;
452 PA_BILLING_SCHEDULE_UTILS.Inv_Sch_Name_To_Id
453 ( p_inv_sch_id => p_inv_schedule_id
454 ,p_inv_sch_name => p_inv_schedule
455 ,p_check_id_flag => 'A'
459
456 ,x_inv_sch_id => l_inv_schedule_id
457 ,x_return_status => l_return_status
458 ,x_error_msg_code => l_error_msg_code);
460 IF l_return_status = FND_API.G_RET_STS_ERROR
461 THEN
462 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
463 p_msg_name => l_error_msg_code);
464 x_msg_data := l_error_msg_code;
465 x_return_status := 'E';
466 END IF;
467 END IF;
468
469 --validating organization
470 IF ( p_nlbr_bill_rate_org_id IS NOT NULL AND p_nlbr_bill_rate_org_id <> FND_API.G_MISS_NUM ) OR
471 ( p_nlbr_bill_rate_org IS NOT NULL AND p_nlbr_bill_rate_org <> FND_API.G_MISS_CHAR )
472 THEN
473 if (p_debug_mode = 'Y') then
474 pa_debug.debug('Update Billing Info PUB : Checking Carrying out organization');
475 end if;
476 PA_BILLING_SCHEDULE_UTILS.NL_org_sch_Name_To_Id
477 ( p_org_id => p_nlbr_bill_rate_org_id
478 ,p_org_name => p_nlbr_bill_rate_org
479 ,p_check_id_flag => 'A'
480 ,x_org_id => l_nlbr_bill_rate_org_id
481 ,x_return_status => l_return_status
482 ,x_error_msg_code => l_error_msg_code);
483
484 IF l_return_status = FND_API.G_RET_STS_ERROR
485 THEN
486 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
487 p_msg_name => l_error_msg_code);
488 x_msg_data := l_error_msg_code;
489 x_return_status := 'E';
490 END IF;
491 END IF;
492
493 --Validating Schedule
494 IF ( p_nlbr_std_bill_rate_sch IS NOT NULL AND p_nlbr_std_bill_rate_sch <> FND_API.G_MISS_CHAR )
495 THEN
496 if (p_debug_mode = 'Y') then
497 pa_debug.debug('Update Billing Info PUB : Checking schedule ');
498 end if;
499 PA_BILLING_SCHEDULE_UTILS.Nlbr_schedule_name_To_Id
500 ( p_sch_name => p_nlbr_std_bill_rate_sch
501 ,p_nlbr_org_id => l_nlbr_bill_rate_org_id
502 ,p_check_id_flag => 'A'
503 ,x_sch_name => l_nlbr_std_bill_rate_sch
504 ,x_return_status => l_return_status
505 ,x_error_msg_code => l_error_msg_code);
506
507 IF l_return_status = FND_API.G_RET_STS_ERROR
508 THEN
509 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
510 p_msg_name => l_error_msg_code);
511 x_msg_data := l_error_msg_code;
512 x_return_status := 'E';
513 END IF;
514 END IF;
515 ELSE
516 l_nlbr_bill_rate_org_id := null;
517 l_nlbr_std_bill_rate_sch := null;
518 l_nlbr_sch_fxd_date := null;
519 l_nlbr_sch_discount := null;
520 l_emp_bill_rate_sch_id := null;
521 l_lbr_sch_fxd_date := null;
522 l_lbr_sch_discount := null;
523 l_job_bill_rate_sch_id := null;
524
525 l_rev_schedule_id := p_rev_schedule_id;
526 l_inv_schedule_id := p_inv_schedule_id;
527 l_rev_ind_sch_fxd_date := p_rev_ind_sch_fxd_date;
528 l_inv_ind_sch_fxd_date := p_inv_ind_sch_fxd_date;
529
530
531 --Validating rev schedule id
532 IF ( p_rev_schedule_id IS NOT NULL AND p_rev_schedule_id <> FND_API.G_MISS_NUM ) OR
533 ( p_rev_schedule IS NOT NULL AND p_rev_schedule <> FND_API.G_MISS_CHAR )
534 THEN
535 if (p_debug_mode = 'Y') then
536 pa_debug.debug('Update Billing Info PUB : Checking Revenue schedule');
537 end if;
538 PA_BILLING_SCHEDULE_UTILS.Rev_Sch_Name_To_Id
539 ( p_rev_sch_id => p_rev_schedule_id
540 ,p_rev_sch_name => p_rev_schedule
541 ,p_check_id_flag => 'A'
542 ,x_rev_sch_id => l_rev_schedule_id
543 ,x_return_status => l_return_status
544 ,x_error_msg_code => l_error_msg_code);
545
546 IF l_return_status = FND_API.G_RET_STS_ERROR
547 THEN
548 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
549 p_msg_name => l_error_msg_code);
550 x_msg_data := l_error_msg_code;
551 x_return_status := 'E';
552 END IF;
553 END IF;
554
555 --Validating Inv schedule id
556 IF ( p_inv_schedule_id IS NOT NULL AND p_inv_schedule_id <> FND_API.G_MISS_NUM ) OR
557 ( p_inv_schedule IS NOT NULL AND p_inv_schedule <> FND_API.G_MISS_CHAR )
558 THEN
559 if (p_debug_mode = 'Y') then
560 pa_debug.debug('Update Billing Info PUB : Checking Invoice schedule');
561 end if;
562 PA_BILLING_SCHEDULE_UTILS.Inv_Sch_Name_To_Id
563 ( p_inv_sch_id => p_inv_schedule_id
564 ,p_inv_sch_name => p_inv_schedule
565 ,p_check_id_flag => 'A'
566 ,x_inv_sch_id => l_inv_schedule_id
567 ,x_return_status => l_return_status
568 ,x_error_msg_code => l_error_msg_code);
569
570 IF l_return_status = FND_API.G_RET_STS_ERROR
571 THEN
572 PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
573 p_msg_name => l_error_msg_code);
577 END IF;
574 x_msg_data := l_error_msg_code;
575 x_return_status := 'E';
576 END IF;
578 END IF;
579
580 if (p_debug_mode = 'Y') then
581 pa_debug.debug('Update Bill Info PUB : checking message count');
582 end if;
583
584 l_msg_count := FND_MSG_PUB.count_msg;
585 If l_msg_count > 0 THEN
586 x_msg_count := l_msg_count;
587 If l_msg_count = 1 THEN
588 pa_interface_utils_pub.get_messages
589 (p_encoded => FND_API.G_TRUE ,
590 p_msg_index => 1,
591 p_msg_count => l_msg_count ,
592 p_msg_data => l_msg_data,
593 p_data => l_data,
594 p_msg_index_out => l_msg_index_out );
595 x_msg_data := l_data;
596 End if;
597 RAISE FND_API.G_EXC_ERROR;
598 End if;
599
600 if (p_debug_mode = 'Y') then
601 pa_debug.debug('Update Bill Info PUB : Calling private api Update Bill Info');
602 end if;
603
604 PA_BILLING_SCHEDULE_PVT.Update_Project_Task_Bill_Info(
605 p_commit => FND_API.G_FALSE,
606 p_validate_only => p_validate_only,
607 p_validation_level => p_validation_level,
608 p_calling_module => p_calling_module,
609 p_debug_mode => p_debug_mode,
610 p_max_msg_count => p_max_msg_count,
611 p_project_id => p_project_id,
612 p_task_id => p_task_id,
613 p_lbr_schedule_type => p_lbr_schedule_type,
614 p_non_lbr_schedule_type => p_non_lbr_schedule_type,
615 p_emp_bill_rate_sch_id => l_emp_bill_rate_sch_id,
616 p_job_bill_rate_sch_id => l_job_bill_rate_sch_id,
617 p_lbr_sch_fxd_date => l_lbr_sch_fxd_date,
618 p_lbr_sch_discount => l_lbr_sch_discount,
619 p_rev_schedule_id => l_rev_schedule_id,
620 p_inv_schedule_id => l_inv_schedule_id,
621 p_rev_ind_sch_fxd_date => l_rev_ind_sch_fxd_date,
622 p_inv_ind_sch_fxd_date => l_inv_ind_sch_fxd_date,
623 p_nlbr_bill_rate_org_id => l_nlbr_bill_rate_org_id,
624 p_nlbr_std_bill_rate_sch => l_nlbr_std_bill_rate_sch,
625 p_nlbr_sch_fxd_date => l_nlbr_sch_fxd_date,
626 p_nlbr_sch_discount => l_nlbr_sch_discount,
627 p_record_version_number => p_record_version_number,
628 x_return_status => l_return_status,
629 x_msg_count => l_msg_count,
630 x_msg_data => l_msg_data
631 );
632
633 if (p_debug_mode = 'Y') then
634 pa_debug.debug('Update Bill Info PUB : checking message count');
635 end if;
636
637 l_msg_count := FND_MSG_PUB.count_msg;
638 If l_msg_count > 0 THEN
639 x_msg_count := l_msg_count;
640 If l_msg_count = 1 THEN
641 pa_interface_utils_pub.get_messages
642 (p_encoded => FND_API.G_TRUE ,
643 p_msg_index => 1,
644 p_msg_count => l_msg_count ,
645 p_msg_data => l_msg_data,
646 p_data => l_data,
647 p_msg_index_out => l_msg_index_out );
648 x_msg_data := l_data;
649 End if;
650 RAISE FND_API.G_EXC_ERROR;
651 End if;
652 END IF;
653 IF FND_API.TO_BOOLEAN(P_COMMIT)
654 THEN
655 COMMIT WORK;
656 END IF;
657 EXCEPTION
658 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
659 IF p_commit = FND_API.G_TRUE
660 THEN
661 ROLLBACK TO Update_Bill_Info;
662 END IF;
663 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
664 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_BILLING_SCHEDULE_PUB',
665 p_procedure_name => 'Update_Project_Task_Bill_Info',
666 p_error_text => SUBSTRB(SQLERRM,1,240));
667 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
668
669 WHEN FND_API.G_EXC_ERROR THEN
670 IF p_commit = FND_API.G_TRUE
671 THEN
672 ROLLBACK TO Update_Bill_Info;
673 END IF;
674 x_return_status := 'E';
675
676 WHEN OTHERS THEN
677 IF p_commit = FND_API.G_TRUE
678 THEN
679 ROLLBACK TO Update_Bill_Info;
680 END IF;
681 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
682 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_BILLING_SCHEDULE_PUB',
683 p_procedure_name => 'Update_Project_Task_Bill_Info',
684 p_error_text => SUBSTRB(SQLERRM,1,240));
685
686 RAISE;
687 END Update_Project_Task_Bill_Info;
688
689
690 -- API name : update_billing_schedule_type
691 -- Type : Public procedure
692 -- Pre-reqs : None
693 -- Return Value : N/A
694 -- Prameters
695 -- p_api_version IN NUMBER REQUIRED DEFAULT=1.0
696 -- p_init_msg_list IN VARCHAR2 REQUIRED DEFAULT=FND_API.G_TRUE
700 -- p_calling_module IN VARCHAR2 OPTIONAL DEFAULT='SELF_SERVICE'
697 -- p_commit IN VARCHAR2 REQUIRED DEFAULT=FND_API.G_FALSE
698 -- p_validate_only IN VARCHAR2 REQUIRED DEFAULT=FND_API.G_TRUE
699 -- p_validation_level IN NUMBER OPTIONAL DEFAULT=FND_API.G_VALID_LEVEL_FULL
701 -- p_debug_mode IN VARCHAR2 OPTIONAL DEFAULT='N'
702 -- p_max_msg_count IN NUMBER OPTIONAL DEFAULT=FND_API.G_MISS_NUM
703 -- p_project_id IN NUMBER REQUIRED
704 -- p_task_id IN NUMBER OPTIONAL DEFAULT=FND_API.G_MISS_NUM
705 -- p_lbr_schedule_type IN VARCHAR2 REQUIRED,
706 -- p_non_lbr_schedule_type IN VARCHAR2 REQUIRED,
707 -- p_record_version_number IN NUMBER REQUIRED DEFAULT=1
708 -- x_return_status OUT VARCHAR2 REQUIRED
709 -- x_msg_count OUT VARCHAR2 REQUIRED
710 -- x_msg_data OUT VARCHAR2 REQUIRED
711 --
712 -- History
713 --
714 -- 21-MAY-01 Majid Ansari -Created
715 --
716 --
717 PROCEDURE update_billing_schedule_type(
718 p_api_version IN NUMBER DEFAULT 1.0,
719 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_TRUE,
720 p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE,
721 p_validate_only IN VARCHAR2 DEFAULT FND_API.G_TRUE,
722 p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL,
723 p_calling_module IN VARCHAR2 DEFAULT 'SELF_SERVICE',
724 p_debug_mode IN VARCHAR2 DEFAULT 'N',
725 p_max_msg_count IN NUMBER DEFAULT FND_API.G_MISS_NUM,
726 p_project_id IN NUMBER ,
727 p_task_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
728 p_lbr_schedule_type IN VARCHAR2,
729 p_non_lbr_schedule_type IN VARCHAR2,
730 p_record_version_number IN NUMBER DEFAULT 1,
731 x_return_status OUT NOCOPY VARCHAR2 , --File.Sql.39 bug 4440895
732 x_msg_count OUT NOCOPY VARCHAR2 , --File.Sql.39 bug 4440895
733 x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
734 )IS
735
736 l_api_name CONSTANT VARCHAR(30) := 'update_billing_schedule_type';
737 l_api_version CONSTANT NUMBER := 1.0;
738
739 l_return_status VARCHAR2(1);
740 l_error_msg_code VARCHAR2(250);
741 l_msg_data VARCHAR2(250);
742 l_dummy_char VARCHAR2(1);
743 l_msg_count NUMBER;
744
745 l_data VARCHAR2(250);
746 l_msg_index_out NUMBER;
747 l_task_id NUMBER;
748 l_effective_to_date DATE;
749 BEGIN
750 -- Standard call to check for call compatibility
751
752 IF (p_debug_mode = 'Y')
753 THEN
754 pa_debug.debug('update_billing_schedule_type PUB : Checking the api version number.');
755 END IF;
756
757 IF p_commit = FND_API.G_TRUE
758 THEN
759 SAVEPOINT bill_sch_type;
760 END IF;
761
762 IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
763 p_api_version,
764 l_api_name,
765 g_pkg_name)
766 THEN
767 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
768 END IF;
769
770 if (p_debug_mode = 'Y') then
771 pa_debug.debug('update_billing_schedule_type PUB : Initializing message stack.');
772 end if;
773
774 pa_debug.init_err_stack('PA_BILLING_SCHEDULE_PUB.UPDATE_LABOR_MULTIPLIER');
775
776 if FND_API.to_boolean(nvl(p_init_msg_list, FND_API.G_FALSE)) then
777 fnd_msg_pub.initialize;
778 end if;
779
780 x_return_status := 'S';
781
782 IF p_validate_only = FND_API.G_TRUE AND
783 p_validation_level > 0
784 THEN
785 IF p_task_id = FND_API.G_MISS_NUM
786 THEN
787 l_task_id := null;
788 ELSE
789 l_task_id := p_task_id;
790 END IF;
791
792 PA_BILLING_SCHEDULE_PVT.update_billing_schedule_type(
793 p_commit => FND_API.G_FALSE,
794 p_validate_only => p_validate_only,
795 p_validation_level => p_validation_level,
796 p_calling_module => p_calling_module,
797 p_debug_mode => p_debug_mode,
798 p_max_msg_count => p_max_msg_count,
799 p_project_id => p_project_id,
800 p_task_id => l_task_id,
801 p_lbr_schedule_type => p_lbr_schedule_type,
802 p_non_lbr_schedule_type => p_non_lbr_schedule_type,
803 p_record_version_number => p_record_version_number,
804 x_return_status => l_return_status,
805 x_msg_count => l_msg_count,
806 x_msg_data => l_msg_data
807 );
808 END IF;
809
810 if (p_debug_mode = 'Y') then
811 pa_debug.debug('update_billing_schedule_type PUB : checking message count');
812 end if;
813 l_msg_count := FND_MSG_PUB.count_msg;
814 If l_msg_count > 0 THEN
815 x_msg_count := l_msg_count;
816 If l_msg_count = 1 THEN
817 pa_interface_utils_pub.get_messages
818 (p_encoded => FND_API.G_TRUE ,
819 p_msg_index => 1,
820 p_msg_count => l_msg_count ,
824 x_msg_data := l_data;
821 p_msg_data => l_msg_data,
822 p_data => l_data,
823 p_msg_index_out => l_msg_index_out );
825 End if;
826 RAISE FND_API.G_EXC_ERROR;
830 THEN
827 End if;
828
829 IF FND_API.TO_BOOLEAN(P_COMMIT)
831 COMMIT WORK;
832 END IF;
833
834 EXCEPTION
835 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
836 IF p_commit = FND_API.G_TRUE
837 THEN
838 ROLLBACK TO bill_sch_type;
839 END IF;
840 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
841 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_BILLING_SCHEDULE_PUB',
842 p_procedure_name => 'update_billing_schedule_type',
843 p_error_text => SUBSTRB(SQLERRM,1,240));
844 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
845
846 WHEN FND_API.G_EXC_ERROR THEN
847 IF p_commit = FND_API.G_TRUE
848 THEN
849 ROLLBACK TO bill_sch_type;
850 END IF;
851 x_return_status := 'E';
852
853 WHEN OTHERS THEN
854 IF p_commit = FND_API.G_TRUE
855 THEN
856 ROLLBACK TO bill_sch_type;
857 END IF;
858 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
859 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_BILLING_SCHEDULE_PUB',
860 p_procedure_name => 'update_billing_schedule_type',
861 p_error_text => SUBSTRB(SQLERRM,1,240));
862 RAISE;
863
864 END update_billing_schedule_type;
865
866
867
868 -- API name : create_labor_multiplier
869 -- Type : Public procedure
870 -- Pre-reqs : None
871 -- Return Value : N/A
872 -- Prameters
873 -- p_api_version IN NUMBER REQUIRED DEFAULT=1.0
874 -- p_init_msg_list IN VARCHAR2 REQUIRED DEFAULT=FND_API.G_TRUE
875 -- p_commit IN VARCHAR2 REQUIRED DEFAULT=FND_API.G_FALSE
876 -- p_validate_only IN VARCHAR2 REQUIRED DEFAULT=FND_API.G_TRUE
877 -- p_validation_level IN NUMBER OPTIONAL DEFAULT=FND_API.G_VALID_LEVEL_FULL
878 -- p_calling_module IN VARCHAR2 OPTIONAL DEFAULT='SELF_SERVICE'
879 -- p_debug_mode IN VARCHAR2 OPTIONAL DEFAULT='N'
880 -- p_max_msg_count IN NUMBER OPTIONAL DEFAULT=FND_API.G_MISS_NUM
881 -- p_project_id IN NUMBER REQUIRED
882 -- p_task_id IN NUMBER OPTIONAL DEFAULT=FND_API.G_MISS_NUM
883 -- p_labor_multiplier IN NUMBER REQUIRED
884 -- p_effective_from_date IN DATE REQUIRED
885 -- p_effective_to_date IN DATE OPTIONAL DEFAULT=FND_API.G_MISS_DATE
886 -- x_labor_multiplier_id OUT NUMBER REQUIRED
887 -- x_return_status OUT VARCHAR2 REQUIRED
888 -- x_msg_count OUT VARCHAR2 REQUIRED
889 -- x_msg_data OUT VARCHAR2 REQUIRED
890 --
891 -- History
892 --
893 -- 21-MAY-01 Majid Ansari -Created
894 --
895 --
896 PROCEDURE Create_Labor_Multiplier(
897 p_api_version IN NUMBER DEFAULT 1.0,
898 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_TRUE,
899 p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE,
900 p_validate_only IN VARCHAR2 DEFAULT FND_API.G_TRUE,
901 p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL,
902 p_calling_module IN VARCHAR2 DEFAULT 'SELF_SERVICE',
903 p_debug_mode IN VARCHAR2 DEFAULT 'N',
904 p_max_msg_count IN NUMBER DEFAULT FND_API.G_MISS_NUM,
905 p_project_id IN NUMBER ,
906 p_task_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
907 p_labor_multiplier IN NUMBER ,
911 x_return_status OUT NOCOPY VARCHAR2 , --File.Sql.39 bug 4440895
908 p_effective_from_date IN DATE ,
909 p_effective_to_date IN DATE DEFAULT FND_API.G_MISS_DATE,
910 x_labor_multiplier_id OUT NOCOPY NUMBER, --File.Sql.39 bug 4440895
912 x_msg_count OUT NOCOPY VARCHAR2 , --File.Sql.39 bug 4440895
913 x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
914 ) IS
915
916 l_api_name CONSTANT VARCHAR(30) := 'Update_Project_Task_Bill_Info';
917 l_api_version CONSTANT NUMBER := 1.0;
918
919 l_return_status VARCHAR2(1);
920 l_error_msg_code VARCHAR2(250);
921 l_msg_data VARCHAR2(250);
922 l_dummy_char VARCHAR2(1);
923 l_msg_count NUMBER;
924
925 l_data VARCHAR2(250);
926 l_msg_index_out NUMBER;
927
928 l_task_id NUMBER;
929 l_effective_to_date DATE;
930
931 BEGIN
932 -- Standard call to check for call compatibility
933
934 IF (p_debug_mode = 'Y')
935 THEN
936 pa_debug.debug('Update Bill Info PUB : Checking the api version number.');
937 END IF;
938
939 IF p_commit = FND_API.G_TRUE
940 THEN
941 SAVEPOINT prm_create_project;
942 END IF;
943
944 IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
945 p_api_version,
946 l_api_name,
947 g_pkg_name)
948 THEN
949 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
950 END IF;
951
952 if (p_debug_mode = 'Y') then
953 pa_debug.debug('Update Bill Info PUB : Initializing message stack.');
954 end if;
955
956 pa_debug.init_err_stack('PA_BILLING_SCHEDULE_PUB.CREATE_LABOR_MULTIPLIER');
957
958 if FND_API.to_boolean(nvl(p_init_msg_list, FND_API.G_FALSE)) then
959 fnd_msg_pub.initialize;
960 end if;
961
962 x_return_status := 'S';
963
964 IF p_validate_only = FND_API.G_TRUE AND
965 p_validation_level > 0
966 THEN
967 IF p_task_id = FND_API.G_MISS_NUM
968 THEN
969 l_task_id := null;
970 ELSE
971 l_task_id := p_task_id;
972 END IF;
973
974 IF p_effective_to_date = FND_API.G_MISS_DATE
975 THEN
976 l_effective_to_date := null;
977 ELSE
978 l_effective_to_date := p_effective_to_date;
979 END IF;
980
981 PA_BILLING_SCHEDULE_PVT.Create_Labor_Multiplier(
982 p_commit => FND_API.G_FALSE,
983 p_validate_only => p_validate_only,
984 p_validation_level => p_validation_level,
985 p_calling_module => p_calling_module,
986 p_debug_mode => p_debug_mode,
990 p_labor_multiplier => p_labor_multiplier,
987 p_max_msg_count => p_max_msg_count,
988 p_project_id => p_project_id,
989 p_task_id => l_task_id,
991 p_effective_from_date => p_effective_from_date,
992 p_effective_to_date => l_effective_to_date,
993 x_labor_multiplier_id => x_labor_multiplier_id,
994 x_return_status => l_return_status,
995 x_msg_count => l_msg_count,
996 x_msg_data => l_msg_data
997 );
998 END IF;
999
1000 if (p_debug_mode = 'Y') then
1001 pa_debug.debug('Update Bill Info PUB : checking message count');
1002 end if;
1003 l_msg_count := FND_MSG_PUB.count_msg;
1004 If l_msg_count > 0 THEN
1005 x_msg_count := l_msg_count;
1006 If l_msg_count = 1 THEN
1007 pa_interface_utils_pub.get_messages
1008 (p_encoded => FND_API.G_TRUE ,
1009 p_msg_index => 1,
1010 p_msg_count => l_msg_count ,
1011 p_msg_data => l_msg_data,
1012 p_data => l_data,
1013 p_msg_index_out => l_msg_index_out );
1014 x_msg_data := l_data;
1015 End if;
1016 RAISE FND_API.G_EXC_ERROR;
1017 End if;
1018 IF FND_API.TO_BOOLEAN(P_COMMIT)
1019 THEN
1020 COMMIT WORK;
1024 IF p_commit = FND_API.G_TRUE
1021 END IF;
1022 EXCEPTION
1023 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1025 THEN
1026 ROLLBACK TO Labor_Multiplier;
1027 END IF;
1028 x_labor_multiplier_id := NULL; -- NOCOPY
1029 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1030 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_BILLING_SCHEDULE_PUB',
1031 p_procedure_name => 'create_labor_multiplier',
1032 p_error_text => SUBSTRB(SQLERRM,1,240));
1033 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1034
1035 WHEN FND_API.G_EXC_ERROR THEN
1036 x_labor_multiplier_id := NULL; -- NOCOPY
1037 IF p_commit = FND_API.G_TRUE
1038 THEN
1039 ROLLBACK TO Labor_Multiplier;
1040 END IF;
1041 x_return_status := 'E';
1042
1043 WHEN OTHERS THEN
1044 x_labor_multiplier_id := NULL; -- NOCOPY
1045 IF p_commit = FND_API.G_TRUE
1046 THEN
1047 ROLLBACK TO Labor_Multiplier;
1048 END IF;
1049 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1050 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_BILLING_SCHEDULE_PUB',
1051 p_procedure_name => 'create_labor_multiplier',
1052 p_error_text => SUBSTRB(SQLERRM,1,240));
1053 RAISE;
1054
1055 END Create_Labor_Multiplier;
1056
1057 -- API name : update_labor_multiplier
1058 -- Type : Public procedure
1059 -- Pre-reqs : None
1060 -- Return Value : N/A
1061 -- Prameters
1062 -- p_api_version IN NUMBER REQUIRED DEFAULT=1.0
1063 -- p_init_msg_list IN VARCHAR2 REQUIRED DEFAULT=FND_API.G_TRUE
1064 -- p_commit IN VARCHAR2 REQUIRED DEFAULT=FND_API.G_FALSE
1065 -- p_validate_only IN VARCHAR2 REQUIRED DEFAULT=FND_API.G_TRUE
1066 -- p_validation_level IN NUMBER OPTIONAL DEFAULT=FND_API.G_VALID_LEVEL_FULL
1067 -- p_calling_module IN VARCHAR2 OPTIONAL DEFAULT='SELF_SERVICE'
1068 -- p_debug_mode IN VARCHAR2 OPTIONAL DEFAULT='N'
1069 -- p_max_msg_count IN NUMBER OPTIONAL DEFAULT=FND_API.G_MISS_NUM
1070 -- p_labor_multiplier_id IN NUMBER REQUIRED
1071 -- p_project_id IN NUMBER REQUIRED
1072 -- p_task_id IN NUMBER OPTIONAL DEFAULT=FND_API.G_MISS_NUM
1073 -- p_labor_multiplier IN NUMBER
1074 -- p_effective_from_date IN DATE REQUIRED
1075 -- p_effective_to_date IN DATE OPTIONAL DEFAULT=FND_API.G_MISS_DATE
1076 -- p_record_version_number IN NUMBER REQUIRED DEFAULT=1
1077 -- x_return_status OUT VARCHAR2 REQUIRED
1078 -- x_msg_count OUT VARCHAR2 REQUIRED
1079 -- x_msg_data OUT VARCHAR2 REQUIRED
1080 --
1081 -- History
1082 --
1083 -- 21-MAY-01 Majid Ansari -Created
1084 --
1085 --
1086 PROCEDURE Update_Labor_Multiplier(
1087 p_api_version IN NUMBER DEFAULT 1.0,
1088 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_TRUE,
1089 p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE,
1090 p_validate_only IN VARCHAR2 DEFAULT FND_API.G_TRUE,
1091 p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL,
1092 p_calling_module IN VARCHAR2 DEFAULT 'SELF_SERVICE',
1093 p_debug_mode IN VARCHAR2 DEFAULT 'N',
1094 p_max_msg_count IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1095 p_labor_multiplier_id IN NUMBER,
1096 p_project_id IN NUMBER ,
1097 p_task_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1098 p_labor_multiplier IN NUMBER ,
1099 p_effective_from_date IN DATE ,
1100 p_effective_to_date IN DATE DEFAULT FND_API.G_MISS_DATE,
1101 p_record_version_number IN NUMBER DEFAULT 1,
1102 x_return_status OUT NOCOPY VARCHAR2 , --File.Sql.39 bug 4440895
1103 x_msg_count OUT NOCOPY VARCHAR2 , --File.Sql.39 bug 4440895
1104 x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1105 )IS
1106
1107 l_api_name CONSTANT VARCHAR(30) := 'Update_Project_Task_Bill_Info';
1108 l_api_version CONSTANT NUMBER := 1.0;
1109
1110 l_return_status VARCHAR2(1);
1111 l_error_msg_code VARCHAR2(250);
1112 l_msg_data VARCHAR2(250);
1113 l_dummy_char VARCHAR2(1);
1114 l_msg_count NUMBER;
1115
1116 l_data VARCHAR2(250);
1117 l_msg_index_out NUMBER;
1118 l_task_id NUMBER;
1119 l_effective_to_date DATE;
1120 BEGIN
1121 -- Standard call to check for call compatibility
1122
1123 IF (p_debug_mode = 'Y')
1124 THEN
1125 pa_debug.debug('Update Bill Info PUB : Checking the api version number.');
1126 END IF;
1127
1128 IF p_commit = FND_API.G_TRUE
1129 THEN
1133 IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
1130 SAVEPOINT prm_create_project;
1131 END IF;
1132
1134 p_api_version,
1135 l_api_name,
1136 g_pkg_name)
1137 THEN
1138 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1139 END IF;
1140
1141 if (p_debug_mode = 'Y') then
1142 pa_debug.debug('Update Bill Info PUB : Initializing message stack.');
1143 end if;
1144
1145 pa_debug.init_err_stack('PA_BILLING_SCHEDULE_PUB.UPDATE_LABOR_MULTIPLIER');
1146
1147 if FND_API.to_boolean(nvl(p_init_msg_list, FND_API.G_FALSE)) then
1148 fnd_msg_pub.initialize;
1149 end if;
1150
1151 x_return_status := 'S';
1152
1153 IF p_validate_only = FND_API.G_TRUE AND
1154 p_validation_level > 0
1155 THEN
1156 IF p_task_id = FND_API.G_MISS_NUM
1157 THEN
1158 l_task_id := null;
1159 ELSE
1160 l_task_id := p_task_id;
1161 END IF;
1162
1163 IF p_effective_to_date = FND_API.G_MISS_DATE
1164 THEN
1165 l_effective_to_date := null;
1166 ELSE
1167 l_effective_to_date := p_effective_to_date;
1168 END IF;
1169
1170 PA_BILLING_SCHEDULE_PVT.Update_Labor_Multiplier(
1171 p_commit => FND_API.G_FALSE,
1172 p_validate_only => p_validate_only,
1173 p_validation_level => p_validation_level,
1174 p_calling_module => p_calling_module,
1175 p_debug_mode => p_debug_mode,
1176 p_max_msg_count => p_max_msg_count,
1177 p_labor_multiplier_id => p_labor_multiplier_id,
1178 p_project_id => p_project_id,
1179 p_task_id => l_task_id,
1180 p_labor_multiplier => p_labor_multiplier,
1181 p_effective_from_date => p_effective_from_date,
1182 p_effective_to_date => l_effective_to_date,
1183 p_record_version_number => p_record_version_number,
1184 x_return_status => l_return_status,
1185 x_msg_count => l_msg_count,
1186 x_msg_data => l_msg_data
1187 );
1188 END IF;
1189
1190 if (p_debug_mode = 'Y') then
1191 pa_debug.debug('Update Bill Info PUB : checking message count');
1192 end if;
1193 l_msg_count := FND_MSG_PUB.count_msg;
1194 If l_msg_count > 0 THEN
1195 x_msg_count := l_msg_count;
1196 If l_msg_count = 1 THEN
1197 pa_interface_utils_pub.get_messages
1198 (p_encoded => FND_API.G_TRUE ,
1199 p_msg_index => 1,
1200 p_msg_count => l_msg_count ,
1201 p_msg_data => l_msg_data,
1202 p_data => l_data,
1203 p_msg_index_out => l_msg_index_out );
1204 x_msg_data := l_data;
1205 End if;
1206 RAISE FND_API.G_EXC_ERROR;
1207 End if;
1208
1209 IF FND_API.TO_BOOLEAN(P_COMMIT)
1210 THEN
1211 COMMIT WORK;
1212 END IF;
1213
1214 EXCEPTION
1215 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1216 IF p_commit = FND_API.G_TRUE
1217 THEN
1218 ROLLBACK TO Labor_Multiplier;
1219 END IF;
1220 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1221 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_BILLING_SCHEDULE_PUB',
1222 p_procedure_name => 'update_labor_multiplier',
1223 p_error_text => SUBSTRB(SQLERRM,1,240));
1224 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1225
1226 WHEN FND_API.G_EXC_ERROR THEN
1227 IF p_commit = FND_API.G_TRUE
1228 THEN
1229 ROLLBACK TO Labor_Multiplier;
1230 END IF;
1231 x_return_status := 'E';
1232
1233 WHEN OTHERS THEN
1234 IF p_commit = FND_API.G_TRUE
1235 THEN
1236 ROLLBACK TO Labor_Multiplier;
1237 END IF;
1238 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1239 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_BILLING_SCHEDULE_PUB',
1240 p_procedure_name => 'update_labor_multiplier',
1241 p_error_text => SUBSTRB(SQLERRM,1,240));
1242 RAISE;
1243
1244 END Update_Labor_Multiplier;
1245
1246 -- API name : delete_labor_multiplier
1247 -- Type : Public procedure
1248 -- Pre-reqs : None
1249 -- Return Value : N/A
1250 -- Prameters
1251 -- p_api_version IN NUMBER REQUIRED DEFAULT=1.0
1252 -- p_init_msg_list IN VARCHAR2 REQUIRED DEFAULT=FND_API.G_TRUE
1253 -- p_commit IN VARCHAR2 REQUIRED DEFAULT=FND_API.G_FALSE
1254 -- p_validate_only IN VARCHAR2 REQUIRED DEFAULT=FND_API.G_TRUE
1255 -- p_validation_level IN NUMBER OPTIONAL DEFAULT=FND_API.G_VALID_LEVEL_FULL
1256 -- p_calling_module IN VARCHAR2 OPTIONAL DEFAULT='SELF_SERVICE'
1260 -- p_project_id IN NUMBER REQUIRED
1257 -- p_debug_mode IN VARCHAR2 OPTIONAL DEFAULT='N'
1258 -- p_max_msg_count IN NUMBER OPTIONAL DEFAULT=FND_API.G_MISS_NUM
1259 -- p_labor_multiplier_id IN NUMBER REQUIRED
1261 -- p_task_id IN NUMBER OPTIONAL DEFAULT=FND_API.G_MISS_NUM
1262 -- p_labor_multiplier IN NUMBER
1263 -- p_effective_from_date IN DATE REQUIRED
1264 -- p_record_version_number IN NUMBER REQUIRED DEFAULT=1
1265 -- x_return_status OUT VARCHAR2 REQUIRED
1266 -- x_msg_count OUT VARCHAR2 REQUIRED
1267 -- x_msg_data OUT VARCHAR2 REQUIRED
1268 --
1269 -- History
1270 --
1271 -- 21-MAY-01 Majid Ansari -Created
1272 --
1273 --
1274 PROCEDURE delete_Labor_Multiplier(
1275 p_api_version IN NUMBER DEFAULT 1.0,
1276 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_TRUE,
1277 p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE,
1278 p_validate_only IN VARCHAR2 DEFAULT FND_API.G_TRUE,
1279 p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL,
1280 p_calling_module IN VARCHAR2 DEFAULT 'SELF_SERVICE',
1284 p_project_id IN NUMBER ,
1281 p_debug_mode IN VARCHAR2 DEFAULT 'N',
1282 p_max_msg_count IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1283 p_labor_multiplier_id IN NUMBER,
1285 p_task_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1286 p_labor_multiplier IN NUMBER ,
1287 p_effective_from_date IN DATE ,
1288 p_record_version_number IN NUMBER DEFAULT 1,
1289 x_return_status OUT NOCOPY VARCHAR2 , --File.Sql.39 bug 4440895
1290 x_msg_count OUT NOCOPY VARCHAR2 , --File.Sql.39 bug 4440895
1291 x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1292 )IS
1293
1294 l_api_name CONSTANT VARCHAR(30) := 'delete_labor_multiplier';
1295 l_api_version CONSTANT NUMBER := 1.0;
1296
1297 l_data VARCHAR2(250);
1298 l_msg_index_out NUMBER;
1299 l_return_status VARCHAR2(1);
1300 l_error_msg_code VARCHAR2(250);
1301 l_msg_data VARCHAR2(250);
1302 l_dummy_char VARCHAR2(1);
1303 l_msg_count NUMBER;
1304 l_task_id NUMBER;
1305 BEGIN
1306 -- Standard call to check for call compatibility
1307
1308 IF (p_debug_mode = 'Y')
1309 THEN
1310 pa_debug.debug('Update Bill Info PUB : Checking the api version number.');
1311 END IF;
1312
1313 IF p_commit = FND_API.G_TRUE
1314 THEN
1315 SAVEPOINT prm_create_project;
1316 END IF;
1317
1318 IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
1319 p_api_version,
1320 l_api_name,
1321 g_pkg_name)
1322 THEN
1323 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1324 END IF;
1325
1326 if (p_debug_mode = 'Y') then
1327 pa_debug.debug('Update Bill Info PUB : Initializing message stack.');
1328 end if;
1329
1330 pa_debug.init_err_stack('PA_BILLING_SCHEDULE_PUB.DELETE_LABOR_MULTIPLIER');
1331
1332 if FND_API.to_boolean(nvl(p_init_msg_list, FND_API.G_FALSE)) then
1333 fnd_msg_pub.initialize;
1334 end if;
1335
1336 x_return_status := 'S';
1337
1338 IF p_validate_only = FND_API.G_TRUE AND
1339 p_validation_level > 0
1340 THEN
1341 IF p_task_id = FND_API.G_MISS_NUM
1342 THEN
1343 l_task_id := null;
1344 ELSE
1345 l_task_id := p_task_id;
1346 END IF;
1347
1348 PA_BILLING_SCHEDULE_PVT.Delete_Labor_Multiplier(
1349 p_commit => FND_API.G_FALSE,
1350 p_validate_only => p_validate_only,
1351 p_validation_level => p_validation_level,
1352 p_calling_module => p_calling_module,
1353 P_labor_multiplier => p_labor_multiplier,
1354 p_debug_mode => p_debug_mode,
1355 p_max_msg_count => p_max_msg_count,
1356 p_labor_multiplier_id => p_labor_multiplier_id,
1357 p_project_id => p_project_id,
1358 p_task_id => l_task_id,
1359 p_effective_from_date => p_effective_from_date,
1363 x_msg_data => l_msg_data
1360 p_record_version_number => p_record_version_number,
1361 x_return_status => l_return_status,
1362 x_msg_count => l_msg_count,
1364 );
1365 END IF;
1366
1367 if (p_debug_mode = 'Y') then
1368 pa_debug.debug('Update Bill Info PUB : checking message count');
1369 end if;
1370 l_msg_count := FND_MSG_PUB.count_msg;
1371 If l_msg_count > 0 THEN
1372 x_msg_count := l_msg_count;
1373 If l_msg_count = 1 THEN
1374 pa_interface_utils_pub.get_messages
1375 (p_encoded => FND_API.G_TRUE ,
1376 p_msg_index => 1,
1377 p_msg_count => l_msg_count ,
1378 p_msg_data => l_msg_data,
1379 p_data => l_data,
1380 p_msg_index_out => l_msg_index_out );
1381 x_msg_data := l_data;
1382 End if;
1383 RAISE FND_API.G_EXC_ERROR;
1384 End if;
1385
1386 IF FND_API.TO_BOOLEAN(P_COMMIT)
1387 THEN
1388 COMMIT WORK;
1389 END IF;
1390
1391 EXCEPTION
1392 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1393 IF p_commit = FND_API.G_TRUE
1394 THEN
1395 ROLLBACK TO Labor_Multiplier;
1396 END IF;
1397 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1398 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_BILLING_SCHEDULE_PUB',
1399 p_procedure_name => 'Delete_labor_multiplier',
1400 p_error_text => SUBSTRB(SQLERRM,1,240));
1401 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1402
1403 WHEN FND_API.G_EXC_ERROR THEN
1404 IF p_commit = FND_API.G_TRUE
1405 THEN
1406 ROLLBACK TO Labor_Multiplier;
1407 END IF;
1408 x_return_status := 'E';
1409
1410 WHEN OTHERS THEN
1411 IF p_commit = FND_API.G_TRUE
1412 THEN
1413 ROLLBACK TO Labor_Multiplier;
1414 END IF;
1415 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1416 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_BILLING_SCHEDULE_PUB',
1417 p_procedure_name => 'delete_labor_multiplier',
1418 p_error_text => SUBSTRB(SQLERRM,1,240));
1419 RAISE;
1420
1421 END Delete_Labor_Multiplier;
1422
1423
1424 END PA_BILLING_SCHEDULE_PUB;