DBA Data[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;