[Home] [Help]
PACKAGE BODY: APPS.PO_RCO_VALIDATION_GRP
Source
1 PACKAGE BODY po_rco_validation_grp AS
2 /* $Header: POXGRCVB.pls 120.7.12010000.6 2009/01/21 07:06:59 rojain ship $ */
3
4 g_pkg_name CONSTANT VARCHAR2(30) := 'PO_RCO_VALIDATION_GRP';
5 -- Read the profile option that enables/disables the debug log
6 -- Logging global constants
7 d_package_base CONSTANT VARCHAR2(100) := po_log.get_package_base(g_pkg_name);
8
9 c_log_head CONSTANT VARCHAR2(50) := 'po.plsql.' || g_pkg_name || '.';
10
11 -- Debugging
12 g_debug_stmt CONSTANT BOOLEAN := po_debug.is_debug_stmt_on;
13 g_debug_unexp CONSTANT BOOLEAN := po_debug.is_debug_unexp_on;
14
15 FUNCTION is_req_cancellable(p_req_hdr_id IN NUMBER) RETURN VARCHAR2
16 IS
17 CURSOR l_line_csr(hdr_id NUMBER) IS
18 SELECT requisition_line_id,
19 line_location_id
20 FROM po_requisition_lines_all
21 WHERE requisition_header_id = hdr_id;
22
23 l_line_id NUMBER;
24 l_line_location_id NUMBER;
25 l_line_with_po NUMBER := 0;
26 l_return_status VARCHAR2(1);
27 l_c VARCHAR2(1);
28 l_api_name VARCHAR2(50) := 'Is_Req_Cancellable';
29 l_oe_flag VARCHAR2(1);
30
31 l_log_head CONSTANT VARCHAR2(100) := c_log_head || l_api_name;
32 l_progress VARCHAR2(3) := '000';
33
34
35
36 BEGIN
37
38 IF g_debug_stmt THEN
39 po_debug.debug_begin(l_log_head);
40 po_debug.debug_var(l_log_head, l_progress, 'p_req_hdr_id', p_req_hdr_id);
41 END IF;
42
43
44 OPEN l_line_csr(p_req_hdr_id);
45 LOOP
46 FETCH l_line_csr
47 INTO l_line_id,
48 l_line_location_id;
49
50 EXIT WHEN l_line_csr%notfound;
51
52 IF (l_line_location_id IS NOT NULL) THEN
53 l_line_with_po := l_line_with_po + 1;
54 END IF; --Bug6747949
55 l_c := is_reqline_cancellable(l_line_id);
56
57 IF g_debug_stmt THEN
58 po_debug.debug_var(l_log_head, l_progress, 'l_line_id', l_line_id);
59 po_debug.debug_var(l_log_head, l_progress, 'Is_ReqLine_Cancellable', l_c);
60 END IF;
61
62 IF(l_c = 'Y') THEN
63 RETURN 'Y';
64 END IF;
65 END LOOP;
66 CLOSE l_line_csr;
67
68 IF g_debug_stmt THEN
69 po_debug.debug_var(l_log_head, l_progress, 'returning not cancellable', l_line_with_po);
70 END IF;
71
72 return 'N';
73
74 EXCEPTION WHEN OTHERS THEN
75 IF g_debug_stmt THEN
76 IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
77 fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name, SQLERRM);
78 END IF;
79 END IF;
80
81 RETURN 'N';
82 END is_req_cancellable;
83
84 FUNCTION is_req_changeable(p_req_hdr_id IN NUMBER) RETURN VARCHAR2
85 IS
86
87 CURSOR l_line_csr(hdr_id NUMBER) IS
88 SELECT requisition_line_id,
89 line_location_id
90 FROM po_requisition_lines_all
91 WHERE requisition_header_id = hdr_id;
92
93 l_line_id NUMBER;
94 l_line_location_id NUMBER;
95 l_line_with_po NUMBER := 0;
96 l_return_status VARCHAR2(1);
97 l_p VARCHAR2(1);
98 l_d VARCHAR2(1);
99 l_q VARCHAR2(1);
100 l_start_date VARCHAR2(1);
101 l_end_date VARCHAR2(1);
102 l_amount VARCHAR2(1);
103 l_c VARCHAR2(1);
104 l_api_name VARCHAR2(50) := 'Is_Req_Changeable';
105
106 BEGIN
107
108 OPEN l_line_csr(p_req_hdr_id);
109 LOOP
110 FETCH l_line_csr
111 INTO l_line_id,
112 l_line_location_id;
113 EXIT WHEN l_line_csr%notfound;
114
115 IF (l_line_location_id IS NOT NULL) THEN
116 l_line_with_po := l_line_with_po + 1;
117
118 is_req_line_changeable(
119 1.0,
120 l_return_status,
121 l_line_id,
122 l_p,
123 l_d,
124 l_q,
125 l_start_date,
126 l_end_date,
127 l_amount,
128 l_c);
129
130 IF(l_p = 'Y' OR l_d = 'Y' OR l_q = 'Y' OR l_c = 'Y' OR
131 l_start_date = 'Y' OR l_end_date = 'Y' OR l_amount = 'Y') THEN
132 RETURN 'Y';
133 END IF;
134 END IF;
135 END LOOP;
136 CLOSE l_line_csr;
137
138 -- if no line has po associated, the req is changeable
139 IF (l_line_with_po = 0) THEN
140 RETURN 'Y';
141 ELSE
142 RETURN 'N';
143 END IF;
144
145 EXCEPTION WHEN OTHERS THEN
146 IF g_debug_stmt THEN
147 IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
148 fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name, SQLERRM);
149 END IF;
150
151 END IF;
152
153 RETURN 'N';
154 END is_req_changeable;
155
156 FUNCTION is_reqline_cancellable(p_req_line_id IN NUMBER) RETURN VARCHAR2
157 IS
158 l_return_status VARCHAR2(1);
159 BEGIN
160 po_rco_validation_pvt.is_req_line_cancellable(
161 1.0,
162 l_return_status,
163 p_req_line_id,
164 NULL);
165 IF(l_return_status = fnd_api.g_ret_sts_success) THEN
166 RETURN 'Y';
167 ELSE
168 RETURN 'N';
169 END IF;
170 END is_reqline_cancellable;
171
172
173 PROCEDURE calculate_disttax(p_api_version IN NUMBER,
174 x_return_status OUT NOCOPY VARCHAR2,
175 p_dist_id NUMBER,
176 p_price NUMBER,
177 p_quantity NUMBER,
178 p_dist_amount NUMBER,
179 p_rec_tax OUT NOCOPY NUMBER,
180 p_nonrec_tax OUT NOCOPY NUMBER)
181 IS
182 BEGIN
183 po_rco_validation_pvt.calculate_disttax(
184 p_api_version,
185 x_return_status,
186 p_dist_id,
187 p_price,
188 p_quantity,
189 p_dist_amount,
190 p_rec_tax,
191 p_nonrec_tax);
192 END calculate_disttax;
193
194
195 PROCEDURE is_req_line_cancellable(p_api_version IN NUMBER,
196 x_return_status OUT NOCOPY VARCHAR2,
197 p_req_line_id IN NUMBER,
198 p_flag IN VARCHAR2 DEFAULT NULL)
199 IS
200
201 BEGIN
202 po_rco_validation_pvt.is_req_line_cancellable(
203 p_api_version,
204 x_return_status,
205 p_req_line_id,
206 p_flag);
207
208
209 END is_req_line_cancellable;
210
211 PROCEDURE is_req_line_changeable(p_api_version IN NUMBER,
212 x_return_status OUT NOCOPY VARCHAR2,
213 p_req_line_id IN NUMBER,
214 p_price_flag OUT NOCOPY VARCHAR2,
215 p_date_flag OUT NOCOPY VARCHAR2,
216 p_qty_flag OUT NOCOPY VARCHAR2,
217 p_start_date_flag OUT NOCOPY VARCHAR2,
218 p_end_date_flag OUT NOCOPY VARCHAR2,
219 p_amount_flag OUT NOCOPY VARCHAR2,
220 p_cancel_flag OUT NOCOPY VARCHAR2)
221 IS
222 BEGIN
223 po_rco_validation_pvt.is_req_line_changeable(
224 p_api_version,
225 x_return_status,
226 p_req_line_id,
227 p_price_flag,
228 p_date_flag,
229 p_qty_flag,
230 p_start_date_flag,
231 p_end_date_flag,
232 p_amount_flag,
233 p_cancel_flag);
234
235 END is_req_line_changeable;
236
237 PROCEDURE save_ireqchange(p_api_version IN NUMBER,
238 x_return_status OUT NOCOPY VARCHAR2,
239 p_req_hdr_id IN NUMBER,
240 p_change_table IN po_req_change_table,
241 p_cancel_table IN po_req_cancel_table,
242 p_change_request_group_id OUT NOCOPY NUMBER,
243 x_retmsg OUT NOCOPY VARCHAR2,
244 x_errtable OUT NOCOPY po_req_change_err_table)
245 IS
246
247
248 l_api_name CONSTANT VARCHAR(30) := 'Save_IReqChange';
249 l_log_head CONSTANT VARCHAR2(100) := c_log_head || l_api_name;
250 l_progress VARCHAR2(3) := '000';
251
252
253 BEGIN
254
255
256 IF g_debug_stmt THEN
257 po_debug.debug_begin(l_log_head);
258 po_debug.debug_var(l_log_head, l_progress, 'p_api_version', p_api_version);
259 po_debug.debug_var(l_log_head, l_progress, 'p_req_hdr_id', p_req_hdr_id);
260 END IF;
261
262 po_rco_validation_pvt.save_ireqchange(
263 p_api_version,
264 x_return_status,
265 p_req_hdr_id,
266 p_change_table,
267 p_cancel_table,
268 p_change_request_group_id,
269 x_retmsg,
270 x_errtable);
271
272
273
274
275 IF g_debug_stmt THEN po_debug.debug_end(l_log_head); END IF;
276
277 END save_ireqchange;
278
279 PROCEDURE save_reqchange(p_api_version IN NUMBER,
280 x_return_status OUT NOCOPY VARCHAR2,
281 p_req_hdr_id IN NUMBER,
282 p_change_table IN po_req_change_table,
283 p_cancel_table IN po_req_cancel_table,
284 p_change_request_group_id OUT NOCOPY NUMBER,
285 x_retmsg OUT NOCOPY VARCHAR2,
286 x_errtable OUT NOCOPY po_req_change_err_table)
287 IS
288 BEGIN
289 po_rco_validation_pvt.save_reqchange(
290 p_api_version,
291 x_return_status,
292 p_req_hdr_id,
293 p_change_table,
294 p_cancel_table,
295 p_change_request_group_id,
296 x_retmsg,
297 x_errtable);
298 END save_reqchange;
299
300 PROCEDURE save_reqcancel(p_api_version IN NUMBER,
301 x_return_status OUT NOCOPY VARCHAR2,
302 p_req_hdr_id IN NUMBER,
303 p_cancel_table IN po_req_cancel_table,
304 p_change_request_group_id OUT NOCOPY NUMBER,
305 x_retmsg OUT NOCOPY VARCHAR2,
306 p_grp_id IN NUMBER DEFAULT NULL)
307 IS
308 BEGIN
309 po_rco_validation_pvt.save_reqcancel(
310 p_api_version,
311 x_return_status,
312 p_req_hdr_id,
313 p_cancel_table,
314 p_change_request_group_id,
315 x_retmsg,
316 p_grp_id);
317 END save_reqcancel;
318
319
320 PROCEDURE submit_reqchange(p_api_version IN NUMBER,
321 x_return_status OUT NOCOPY VARCHAR2,
322 p_group_id IN NUMBER,
323 p_fundscheck_flag IN VARCHAR2,
324 p_note_to_approver IN VARCHAR2,
325 p_initiator IN VARCHAR2,
326 x_retmsg OUT NOCOPY VARCHAR2,
327 x_errcode OUT NOCOPY VARCHAR2,
328 x_errtable OUT NOCOPY po_req_change_err_table )
329 IS
330 BEGIN
331 po_rco_validation_pvt.submit_reqchange(p_api_version,
332 x_return_status,
333 p_group_id,
334 p_fundscheck_flag,
335 p_note_to_approver,
336 p_initiator,
337 x_retmsg,
338 x_errcode,
339 x_errtable );
340 END submit_reqchange;
341
342 PROCEDURE submit_reqcancel (
343 p_api_version IN NUMBER,
344 x_return_status OUT NOCOPY VARCHAR2,
345 p_group_id IN NUMBER,
346 x_retmsg OUT NOCOPY VARCHAR2,
347 p_errtable OUT NOCOPY po_req_change_err_table,
348 p_flag IN VARCHAR2 DEFAULT NULL)
349 IS
350 BEGIN
351 po_rco_validation_pvt.submit_reqcancel (
352 p_api_version ,
353 x_return_status ,
354 p_group_id ,
355 x_retmsg ,
356 p_errtable ,
357 p_flag );
358 END submit_reqcancel;
359
360
361
362 PROCEDURE save_ireqcancel(p_api_version IN NUMBER,
363 x_return_status OUT NOCOPY VARCHAR2,
364 p_req_hdr_id IN NUMBER,
365 p_cancel_table IN po_req_cancel_table,
366 p_change_request_group_id OUT NOCOPY NUMBER,
367 x_retmsg OUT NOCOPY VARCHAR2,
368 p_grp_id IN NUMBER DEFAULT NULL)
369 IS
370
371 l_api_name CONSTANT VARCHAR(30) := 'Save_IReqCancel';
372 l_log_head CONSTANT VARCHAR2(100) := c_log_head || l_api_name;
373 l_progress VARCHAR2(3) := '000';
374
375 BEGIN
376
377 IF g_debug_stmt THEN
378 po_debug.debug_begin(l_log_head);
379 po_debug.debug_var(l_log_head, l_progress, 'p_api_version', p_api_version);
380 po_debug.debug_var(l_log_head, l_progress, 'p_req_hdr_id', p_req_hdr_id);
381 END IF;
382
383
384 po_rco_validation_pvt.save_ireqcancel(
385 p_api_version,
386 x_return_status,
387 p_req_hdr_id,
388 p_cancel_table,
389 p_change_request_group_id,
390 x_retmsg,
391 p_grp_id);
392 IF g_debug_stmt THEN
393 po_debug.debug_end(l_log_head);
394 END IF;
395
396 END save_ireqcancel;
397
398
399 PROCEDURE submit_ireqchange(p_api_version IN NUMBER,
400 x_return_status OUT NOCOPY VARCHAR2,
401 p_group_id IN NUMBER,
402 p_fundscheck_flag IN VARCHAR2,
403 p_note_to_approver IN VARCHAR2,
404 p_initiator IN VARCHAR2,
405 x_retmsg OUT NOCOPY VARCHAR2,
406 x_errcode OUT NOCOPY VARCHAR2,
407 x_errtable OUT NOCOPY po_req_change_err_table )
408 IS
409 l_api_name CONSTANT VARCHAR(30) := 'Submit_IReqChange';
410 l_log_head CONSTANT VARCHAR2(100) := c_log_head || l_api_name;
411 l_progress VARCHAR2(3) := '000';
412
413 BEGIN
414
415 IF g_debug_stmt THEN
416 po_debug.debug_begin(l_log_head);
417 po_debug.debug_var(l_log_head, l_progress, 'p_api_version', p_api_version);
418 po_debug.debug_var(l_log_head, l_progress, 'p_group_ID', p_group_id);
419 po_debug.debug_var(l_log_head, l_progress, 'p_fundscheck_flag', p_fundscheck_flag);
420 po_debug.debug_var(l_log_head, l_progress, 'p_note_to_approver', p_note_to_approver);
421 END IF;
422
423 po_rco_validation_pvt.submit_ireqchange(p_api_version,
424 x_return_status,
425 p_group_id,
426 p_fundscheck_flag,
427 p_note_to_approver,
428 p_initiator,
429 x_retmsg,
430 x_errcode,
431 x_errtable );
432
433 IF g_debug_stmt THEN
434 po_debug.debug_end(l_log_head);
435 END IF;
436
437
438 END submit_ireqchange;
439
440 PROCEDURE submit_ireqcancel (
441 p_api_version IN NUMBER,
442 x_return_status OUT NOCOPY VARCHAR2,
443 p_group_id IN NUMBER,
444 x_retmsg OUT NOCOPY VARCHAR2,
445 p_errtable OUT NOCOPY po_req_change_err_table,
446 p_flag IN VARCHAR2 DEFAULT NULL)
447 IS
448 l_api_name CONSTANT VARCHAR(30) := 'Submit_IReqChange';
449 l_log_head CONSTANT VARCHAR2(100) := c_log_head || l_api_name;
450 l_progress VARCHAR2(3) := '000';
451
452 BEGIN
453
454 IF g_debug_stmt THEN
455 po_debug.debug_begin(l_log_head);
456 po_debug.debug_var(l_log_head, l_progress, 'p_api_version', p_api_version);
457 --PO_DEBUG.debug_var(l_log_head,l_progress,'p_req_hdr_id',p_req_hdr_id);
458 po_debug.debug_var(l_log_head, l_progress, 'p_group_ID', p_group_id);
459 po_debug.debug_var(l_log_head, l_progress, 'p_flag', p_flag);
460 END IF;
461
462
463 po_rco_validation_pvt.submit_ireqcancel (
464 p_api_version ,
465 x_return_status ,
466 p_group_id ,
467 x_retmsg ,
468 p_errtable ,
469 p_flag );
470
471 IF g_debug_stmt THEN
472 po_debug.debug_end(l_log_head);
473 END IF;
474 END submit_ireqcancel;
475
476
477
478 PROCEDURE is_on_complex_work_order(p_line_loc_id IN NUMBER,
479 x_return_status OUT NOCOPY VARCHAR2)
480 IS
481 BEGIN
482 po_rco_validation_pvt.is_on_complex_work_order(p_line_loc_id,
483 x_return_status);
484 END is_on_complex_work_order;
485
486 FUNCTION IS_ANY_LINE_WITHDRAWABLE(p_req_hdr_id in number) RETURN VARCHAR2
487 IS
488 l_line_to_withdraw_count NUMBER := 0;
489 l_api_name varchar2(50) := 'AllLINES_ChangableORCancelled';
490
491 BEGIN
492
493 SELECT Count(*)
494 INTO l_line_to_withdraw_count
495 FROM po_requisition_lines_all
496 WHERE REQUISITION_HEADER_ID = p_req_hdr_id
497 AND LINE_LOCATION_ID IS NULL
498 AND nvl(CANCEL_FLAG,'N') = 'N'
499 AND nvl(CLOSED_CODE,'OPEN') NOT IN ('FINALLY CLOSED');
500
501
502 IF ( l_line_to_withdraw_count > 0) THEN
503 return 'Y';
504 ELSE
505 return 'N';
506 END IF;
507
508 exception when others then
509 IF g_debug_unexp THEN
510 po_debug.debug_var(l_api_name, '001', 'sqlerrm=', sqlerrm);
511 END IF;
512 RETURN 'Y';
513
514 END IS_ANY_LINE_WITHDRAWABLE;
515
516
517
518 PROCEDURE get_preparer_name(
519 p_api_version IN NUMBER
520 , p_req_hdr_id IN NUMBER
521 , x_return_status OUT NOCOPY VARCHAR2
522 , x_preparer_name OUT NOCOPY VARCHAR2
523 )
524 IS
525
526 l_api_name CONSTANT VARCHAR2(30) := 'get_preparer_name';
527 l_api_version CONSTANT NUMBER := 1.0;
528 l_log_head CONSTANT VARCHAR2(100) := c_log_head || l_api_name;
529 l_progress VARCHAR2(3) := '000';
530
531 BEGIN
532
533 IF g_debug_stmt THEN
534 po_debug.debug_begin(l_log_head);
535 po_debug.debug_var(l_log_head, l_progress, 'p_api_version', p_api_version);
536 po_debug.debug_var(l_log_head, l_progress, 'p_req_hdr_id', p_req_hdr_id);
537 END IF;
538
539 l_progress := '010';
540
541 -- Standard Start of API savepoint
542 SAVEPOINT get_preparer_name_sp;
543
544 l_progress := '020';
545
546 -- Standard call to check for call compatibility
547 dbms_output.put_line('p_api_version=' || p_api_version);
548 IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
549 dbms_output.put_line('inside if ');
550 RAISE fnd_api.g_exc_unexpected_error;
551 END IF;
552
553 l_progress := '030';
554
555
556 -- Initialize API return status to success
557
558 x_return_status := fnd_api.g_ret_sts_success;
559
560 l_progress := '050';
561
562 IF g_debug_stmt THEN
563 po_debug.debug_stmt(l_log_head, l_progress,'Calling Private Procedure get_preparer_name');
564 END IF;
565
566 l_progress := '060';
567
568
569 po_rco_validation_pvt.get_preparer_name(p_req_hdr_id => p_req_hdr_id
570 , x_preparer_name => x_preparer_name
571 , x_return_status => x_return_status);
572
573
574 IF g_debug_stmt THEN
575 po_debug.debug_stmt(l_log_head, l_progress,'After Private Procedure get_preparer_name');
576 END IF;
577
578 EXCEPTION
579
580 WHEN fnd_api.g_exc_error THEN
581 ROLLBACK TO get_preparer_name_sp;
582 x_return_status := fnd_api.g_ret_sts_error;
583
584 WHEN fnd_api.g_exc_unexpected_error THEN
585 ROLLBACK TO get_preparer_name_sp;
586 x_return_status := fnd_api.g_ret_sts_unexp_error;
587 WHEN OTHERS THEN
588 ROLLBACK TO get_preparer_name_sp;
589 x_return_status := fnd_api.g_ret_sts_unexp_error;
590 IF g_debug_stmt THEN
591 po_debug.debug_var(l_log_head, l_progress,'EXCEPTION: Location and SQL CODE is ', SQLCODE);
592 END IF;
593 END get_preparer_name;
594
595
596
597
598 PROCEDURE update_reqcancel_from_so(
599 p_api_version IN NUMBER
600 , x_return_status OUT NOCOPY VARCHAR2
601 , p_req_hdr_id IN NUMBER
602 , p_req_line_id IN NUMBER
603 )
604 IS
605
606 l_api_name CONSTANT VARCHAR2(30) := 'update_ReqCancel_from_SO';
607 l_api_version CONSTANT NUMBER := 1.0;
608 l_log_head CONSTANT VARCHAR2(100) := c_log_head || l_api_name;
609 l_progress VARCHAR2(3) := '000';
610
611 BEGIN
612
613 IF g_debug_stmt THEN
614 po_debug.debug_begin(l_log_head);
615 po_debug.debug_var(l_log_head, l_progress, 'p_api_version', p_api_version);
616 /* PO_DEBUG.debug_var(l_log_head,l_progress,'p_commit',p_commit);
617 PO_DEBUG.debug_var(l_log_head,l_progress,'p_init_msg_list',p_init_msg_list);
618 PO_DEBUG.debug_var(l_log_head,l_progress,'p_validation_level',p_validation_level);
619 */ po_debug.debug_var(l_log_head, l_progress, 'p_req_hdr_id', p_req_hdr_id);
620 END IF;
621
622 l_progress := '010';
623
624 -- Standard Start of API savepoint
625 SAVEPOINT update_reqcancel_from_so_sp;
626
630 dbms_output.put_line('p_api_version=' || p_api_version);
627 l_progress := '020';
628
629 -- Standard call to check for call compatibility
631 IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
632 dbms_output.put_line('inside if ');
633 RAISE fnd_api.g_exc_unexpected_error;
634 END IF;
635
636 l_progress := '030';
637
638 -- Initialize message list if p_init_msg_list is set to TRUE.
639 /*
640 IF FND_API.to_Boolean( p_init_msg_list ) THEN
641 FND_MSG_PUB.initialize;
642 END IF;
643 */
644 l_progress := '040';
645
646 -- Initialize API return status to success
647
648 x_return_status := fnd_api.g_ret_sts_success;
649
650 l_progress := '050';
651
652 IF g_debug_stmt THEN
653 po_debug.debug_stmt(l_log_head, l_progress,'Calling Private Procedure update_ReqCancel_from_SO');
654 END IF;
655
656 l_progress := '060';
657
658 IF (p_req_hdr_id IS NOT NULL OR p_req_line_id IS NOT NULL ) THEN
659 po_rco_validation_pvt.update_reqcancel_from_so(p_req_hdr_id => p_req_hdr_id
660 , p_req_line_id => p_req_line_id
661 , x_return_status => x_return_status);
662 ELSE
663 RAISE fnd_api.g_exc_unexpected_error;
664 END IF;
665
666
667 IF g_debug_stmt THEN
668 po_debug.debug_stmt(l_log_head, l_progress,'After Private Procedure update_ReqCancel_from_SO');
669 END IF;
670
671 EXCEPTION
672
673 WHEN fnd_api.g_exc_error THEN
674 ROLLBACK TO update_reqcancel_from_so_sp;
675 x_return_status := fnd_api.g_ret_sts_error;
676
677 WHEN fnd_api.g_exc_unexpected_error THEN
678 ROLLBACK TO update_reqcancel_from_so_sp;
679 x_return_status := fnd_api.g_ret_sts_unexp_error;
680 WHEN OTHERS THEN
681 ROLLBACK TO update_reqcancel_from_so_sp;
682 x_return_status := fnd_api.g_ret_sts_unexp_error;
683 IF g_debug_stmt THEN
684 po_debug.debug_var(l_log_head, l_progress,'EXCEPTION: Location and SQL CODE is ', SQLCODE);
685 END IF;
686 END update_reqcancel_from_so;
687
688
689
690 PROCEDURE update_reqchange_from_so(
691 p_api_version IN NUMBER
692 , x_return_status OUT NOCOPY VARCHAR2
693 , p_req_line_id IN NUMBER
694 , p_delta_quantity IN NUMBER
695 , p_new_need_by_date IN DATE
696 )
697 IS
698
699 l_api_name CONSTANT VARCHAR2(30) := 'update_ReqChange_from_SO';
700 l_api_version CONSTANT NUMBER := 1.0;
701 l_log_head CONSTANT VARCHAR2(100) := c_log_head || l_api_name;
702 l_progress VARCHAR2(3) := '000';
703
704 BEGIN
705
706 IF g_debug_stmt THEN
707 po_debug.debug_begin(l_log_head);
708 po_debug.debug_var(l_log_head, l_progress, 'p_api_version', p_api_version);
709 /* PO_DEBUG.debug_var(l_log_head,l_progress,'p_commit',p_commit);
710 PO_DEBUG.debug_var(l_log_head,l_progress,'p_init_msg_list',p_init_msg_list);
711 PO_DEBUG.debug_var(l_log_head,l_progress,'p_validation_level',p_validation_level);
712 */ po_debug.debug_var(l_log_head, l_progress, 'p_req_line_id', p_req_line_id);
713 po_debug.debug_var(l_log_head, l_progress, 'p_delta_quantity', p_delta_quantity);
714 po_debug.debug_var(l_log_head, l_progress, 'p_new_need_by_date', p_new_need_by_date);
715 END IF;
716
717 l_progress := '010';
718
719 -- Standard Start of API savepoint
720
721 SAVEPOINT update_reqchange_from_so_sp;
722
723 l_progress := '020';
724
725 -- Standard call to check for call compatibility
726 dbms_output.put_line('p_api_version=' || p_api_version);
727 IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
728 dbms_output.put_line('inside if ');
729 RAISE fnd_api.g_exc_unexpected_error;
730 END IF;
731
732 l_progress := '030';
733
734 -- Initialize message list if p_init_msg_list is set to TRUE.
735 /*
736 IF FND_API.to_Boolean( p_init_msg_list ) THEN
737 FND_MSG_PUB.initialize;
738 END IF;
739 */
740 l_progress := '040';
741
742 -- Initialize API return status to success
743
744 x_return_status := fnd_api.g_ret_sts_success;
745
746 l_progress := '050';
747
748 IF g_debug_stmt THEN
749 po_debug.debug_stmt(l_log_head, l_progress,'Calling Private Procedure update_ReqCancel_from_SO');
750 END IF;
751
752 l_progress := '060';
753
754
755 IF (p_req_line_id IS NOT NULL ) AND
756 (p_delta_quantity IS NOT NULL OR p_new_need_by_date IS NOT NULL ) THEN
757
758 po_rco_validation_pvt.update_reqchange_from_so(
759 p_req_line_id => p_req_line_id
760 , p_delta_quantity => p_delta_quantity
761 , p_new_need_by_date => p_new_need_by_date
762 , x_return_status => x_return_status);
763
764 ELSE
765 RAISE fnd_api.g_exc_unexpected_error;
766 END IF;
767
768
769 IF g_debug_stmt THEN
770 po_debug.debug_stmt(l_log_head, l_progress,'After Private Procedure update_ReqChange_from_SO');
771 END IF;
772
773 EXCEPTION
774
775 WHEN fnd_api.g_exc_error THEN
776 ROLLBACK TO update_reqcancel_from_so_sp;
777 x_return_status := fnd_api.g_ret_sts_error;
778
779 WHEN fnd_api.g_exc_unexpected_error THEN
780 ROLLBACK TO update_reqcancel_from_so_sp;
781 x_return_status := fnd_api.g_ret_sts_unexp_error;
782 WHEN OTHERS THEN
783 ROLLBACK TO update_reqcancel_from_so_sp;
784 x_return_status := fnd_api.g_ret_sts_unexp_error;
785 IF g_debug_stmt THEN
786 po_debug.debug_var(l_log_head, l_progress,'EXCEPTION: Location and SQL CODE is ', SQLCODE);
787 END IF;
788 END update_reqchange_from_so;
789
790
791 END po_rco_validation_grp;