[Home] [Help]
PACKAGE BODY: APPS.PA_AGREEMENT_UTILS
Source
1 package body PA_AGREEMENT_UTILS as
2 /*$Header: PAAFAGUB.pls 120.2 2007/02/07 10:47:24 rgandhi ship $*/
3
4 --
5 --Name: check_multi_customers
6 --Type: Function
7 --Description: This function will return 'Y' IF the Project has Multiple-Customers
8 -- ELSE will return 'N'
9 --
10 --
11 --Called subprograms: PA_AGREEMENT_CORE.CHECK_MULTI_CUSTOMERS
12 --
13 --
14 --
15 --History:
16 -- 12-MAY-2000 Created Nikhil Mishra.
17 --
18
19
20 FUNCTION check_multi_customers
21 ( p_project_id IN NUMBER
22 )
23 RETURN VARCHAR2
24 IS
25 BEGIN
26 return (PA_AGREEMENT_CORE.CHECK_MULTI_CUSTOMERS(p_project_id));
27 END check_multi_customers;
28
29
30 --
31 --Name: check_contribution
32 --Type: Function
33 --Description: This function will return 'Y' IF the Project has Multiple-Customers
34 -- ELSE will return 'N'
35 --
36 --
37 --Called subprograms: PA_AGREEMENT_CORE.CHECK_CONTRIBUTION
38 --
39 --
40 --
41 --History:
42 -- 12-MAY-2000 Created Nikhil Mishra.
43 --
44
45 FUNCTION check_contribution
46 ( p_agreement_id IN NUMBER
47 )
48 RETURN VARCHAR2
49 IS
50 BEGIN
51 return (PA_AGREEMENT_CORE.CHECK_CONTRIBUTION(p_agreement_id));
52 END check_contribution;
53
54 --
55 --Name: check_fund_allocated
56 --Type: Function
57 --Description: This function will return 'Y' IF funds have been allocated to the
58 -- passed agreement ELSE will return 'N'
59 --
60 --
61 --Called subprograms: PA_FUNDING_CORE.CHECK_FUND_ALLOCATED
62 --
63 --
64 --
65 --History:
66 -- 16-APR-2000 Created Nikhil Mishra
67 --
68
69 FUNCTION check_fund_allocated
70 ( p_agreement_id IN NUMBER
71 )
72 RETURN VARCHAR2
73 IS
74 BEGIN
75 -- dbms_output.put_line('Inside:PA_AGREEMENT_UTILS.CHECK_FUND_ALLOCATED');
76 return (PA_FUNDING_CORE.CHECK_FUND_ALLOCATED ( p_agreement_id));
77 END check_fund_allocated;
78
79
80 --
81 --Name: check_accrued_billed_baselined
82 --Type: Function
83 --Description: This function will return 'Y'
84 -- Total amount of funds allocated is less than amount accrued or billed.
85 -- ELSE will return 'N' for given Projet_id, agreement_id, task_id and fund amount.
86 --
87 --Called subprograms: PA_FUNDING_CORE.CHECK_ACCRUED_BILLED_BASELINED
88 --
89 --History:
90 -- 16-APR-2000 Created Nikhil Mishra.
91
92 FUNCTION accrued_billed_baselined
93 ( p_agreement_id IN NUMBER
94 ,p_project_id IN NUMBER
95 ,p_task_id IN NUMBER
96 ,p_amount IN NUMBER
97 )
98 RETURN VARCHAR2
99 IS
100 BEGIN
101 return(PA_FUNDING_CORE.CHECK_ACCRUED_BILLED_BASELINED( p_agreement_id
102 ,p_project_id
103 ,p_task_id
104 ,p_amount));
105 END accrued_billed_baselined;
106
107
108 --
109 --Name: check_proj_arg_fund_ok
110 --Type: Function
111 --Description: This function will return 'Y' if it is ok to fund a project from the
112 -- given agreement else 'N'
113 --Called subprograms: None
114 --
115 --
116 --History:
117 -- 24-JAN-2003 Created Puneet Rastogi.
118 --
119 /* added function Bug 2756047 */
120 FUNCTION check_proj_agr_fund_ok
121 ( p_agreement_id IN NUMBER
122 ,p_project_id IN NUMBER
123 ) RETURN VARCHAR2
124 is
125
126 Is_agr_fund_ok varchar2(1) := 'N';
127
128 BEGIN
129 --dbms_output.put_line('Inside: PA_AGREEMENT_UTILS.CHECK_PROJ_AGR_FUND_OK');
130
131 Is_agr_fund_ok := Pa_funding_core.check_proj_agr_fund_ok( p_agreement_id, p_project_id);
132
133 --dbms_output.put_line('Outside: PA_AGREEMENT_UTILS.CHECK_PROJ_AGR_FUND_OK');
134
135 RETURN Is_agr_fund_ok;
136
137 END check_proj_agr_fund_ok;
138
139
140 --
141 --Name: check_proj_task_lvl_funding
142 --Type: Function
143 --Description: This function will return variour values. the interpretation of those
144 -- is as follows
145 -- "A" IF user is entering Project Level Funding when task level funding exists
146 -- Or IF the revenue have been distributed. Message is PA_PROJ_FUND_NO_TASK_TRANS
147 -- "P" IF user in entering task level funding when project level funding exists
148 -- Message is PA_BU_PROJECT_ALLOC_ONLY
149 -- "T" IF user is allocating funding at Project level when Top task level
150 -- funding exists. Message is PA_BU_TASK_ALLOC_ONLY
151 -- "B" IF user change to task-level funding when project-level events exist,
152 -- or IF Revenue has been distributed. Message is PA_TASK_FUND_NO_PROJ_TRANS
153 --Called subprograms: PA_FUNDING_CORE.CHECK_PROJ_TASK_LVL_FUNDING
154 --
155 --
156 --
157 --History:
158 -- 05-MAY-2000 Created Nikhil Mishra.
159 --
160
161 FUNCTION check_proj_task_lvl_funding
162 ( p_project_id IN NUMBER
163 ,p_task_id IN NUMBER
164 ,p_agreement_id IN NUMBER
165 )
166 RETURN VARCHAR2
167 IS
168 BEGIN
169 -- dbms_output.put_line('Inside: PA_AGREEMENT_UTILS.CHECK_PROJ_TASK_LVL_FUNDING');
170 return(PA_FUNDING_CORE.CHECK_PROJ_TASK_LVL_FUNDING(p_agreement_id
171 ,p_project_id
172 ,p_task_id));
173 END check_proj_task_lvl_funding;
174
175 /*added for fin plan on billing*/
176 FUNCTION check_proj_task_lvl_funding_fp
177 ( p_project_id IN NUMBER
178 ,p_task_id IN NUMBER
179 ,p_agreement_id IN NUMBER
180 )
181 RETURN VARCHAR2
182 IS
183 BEGIN
184 -- dbms_output.put_line('Inside: PA_AGREEMENT_UTILS.CHECK_PROJ_TASK_LVL_FUNDING_FP');
185 return(PA_FUNDING_CORE.CHECK_PROJ_TASK_LVL_FUNDING_FP(p_agreement_id
186 ,p_project_id
187 ,p_task_id));
188 END check_proj_task_lvl_funding_fp;
189
190 --
191 --Name: Validate_Level_Change
192 --Type: Function
193 --Description: This function will return 'Y' IF the funding level change is a valid one.
194 -- ELSE will return 'N'
195 -- this can be done by checking
196 -- (1) Any expEND iture item is revenue distributed ?
197 -- (2) Any event is revenue distributed?
198 -- (3) Any event is billed ??
199 --
200 --Called subprograms: PA_FUNDING_CORE.VALIDATE_LEVEL_CHANGE
201 --
202 --
203 --
204 --History:
205 -- 05-MAY-2000 Created Nikhil Mishra.
206 --
207
208 FUNCTION validate_level_change
209 ( p_project_id IN NUMBER
210 ,p_task_id IN NUMBER
211 )
212 RETURN VARCHAR2
213 IS
214 BEGIN
215 return(PA_FUNDING_CORE.VALIDATE_LEVEL_CHANGE( p_project_id
216 ,p_task_id));
217 END validate_level_change;
218
219 --
220 --Name: check_level_change
221 --Type: Function
222 --Description: This function will return 'Y' IF the funding level has been changed.
223 -- and the chenged level is a valis one. this can be done by
224 -- calling validate_level_change
225 --
226 --Called subprograms: PA_FUNDING_CORE.CHECK_LEVEL_CHANGE
227 --
228 --
229 --
230 --History:
231 -- 05-MAY-2000 Created Nikhil Mishra.
232 --
233
234 FUNCTION check_level_change
235 (p_agreement_id IN NUMBER
236 ,p_project_id IN NUMBER
237 ,p_task_id IN NUMBER
238 )
239 RETURN VARCHAR2
240 IS
241 BEGIN
242 return(PA_FUNDING_CORE.CHECK_LEVEL_CHANGE(p_agreement_id
243 ,p_project_id
244 ,p_task_id));
245
246 END check_level_change;
247
248 --
249 --Name: check_valid_customer
250 --Type: Function
251 --Description: This function will return variour values. the interpretation of those
252 -- is as follows
253 -- "A" Then this user is not a registered employee and he is not allowed to
254 -- create agreement. Message is PA_ALL_WARN_NO_EMPL_REC
255 -- "Y" for valid customer
256 --Called subprograms: PA_AGREEMENT_CORE.CHECK_VALID_CUSTOMER
257 --
258 --
259 --
260 --History:
261 -- 05-MAY-2000 Created Nikhil Mishra.
262 --
263
264 FUNCTION check_valid_customer
265 (p_customer_id IN NUMBER
266 )
267 RETURN VARCHAR2
268 IS
269 BEGIN
270 -- dbms_output.put_line('Inside: PA_AGREEMENT_UTILS.CHECK_VALID_CUSTOMER');
271 -- dbms_output.put_line('Customer_id: '||nvl(to_char(p_customer_id),'NULL'));
272 return(PA_AGREEMENT_CORE.CHECK_VALID_CUSTOMER(p_customer_id));
273 END check_valid_customer;
274
275 --
276 --Name: check_valid_type
277 --Type: Function
278 --Description: Will return Y IF agreement type is valid ELSE return N.
279 --Called subprograms: PA_AGREEMENT_CORE.CHECK_VALID_TYPE
280 --
281 --History:
282 -- 05-MAY-2000 Created Nikhil Mishra.
283 --
284
285
286 FUNCTION check_valid_type
287 (p_agreement_type IN VARCHAR2
288 )
289 RETURN VARCHAR2
290 IS
291 BEGIN
292 return(PA_AGREEMENT_CORE.CHECK_VALID_TYPE(p_agreement_type));
293 END check_valid_type;
294
295 --
296 --Name: check_valid_term_id
297 --Type: Function
298 --Description: This function will return 'Y' IF the Term Id is valid
299 -- ELSE will return 'N'
300 --
301 --Called subprograms: PA_AGREEMENT_CORE.CHECK_VALID_TERM_ID
302 --
303 --
304 --History:
305 -- 05-MAY-2000 Created Nikhil Mishra.
306 --
307
308 FUNCTION check_valid_term_id
309 (p_term_id IN NUMBER
310 )
311 RETURN VARCHAR2
312 IS
313 BEGIN
314 return(PA_AGREEMENT_CORE.CHECK_VALID_TERM_ID(p_term_id));
315 END check_valid_term_id;
316
317 --
318 --Name: check_valid_owned_by_person_id
319 --Type: Function
320 --Description: This function will return 'Y' IF the Person_id is valid
321 -- ELSE will return 'N'
322 --
323 --Called subprograms: PA_AGREEMENT_CORE.CHECK_VALID_OWNED_BY_PERSON_ID
324 --
325 --
326 --History:
327 -- 05-MAY-2000 Created Nikhil Mishra.
328 --
329
330
331 FUNCTION check_valid_owned_by_person_id
332 (p_owned_by_person_id IN NUMBER
333 )
334 RETURN VARCHAR2
335 IS
336 BEGIN
337 return(PA_AGREEMENT_CORE.CHECK_VALID_OWNED_BY_PERSON_ID(p_owned_by_person_id));
338 END check_valid_owned_by_person_id;
339
340 --
341 --Name: check_unique_agreement
342 --Type: Function
343 --Description: This function will return 'Y' IF the combination of
344 -- Agreement_Number, Agreement_type, Customer is unique
345 -- ELSE will return 'N' Message is PA_BU_AGRMNT_NOT_UNIQUE
346 --
347 --Called subprograms: PA_AGREEMENT_CORE.CHECK_UNIQUE_AGREEMENT
348 --
349 --
350 --History:
351 -- 05-MAY-2000 Created Nikhil Mishra.
352 --
353
354 FUNCTION check_unique_agreement
355 (p_agreement_num IN VARCHAR2
356 ,p_agreement_type IN VARCHAR2
357 ,p_customer_id IN NUMBER
358 )
359 RETURN VARCHAR2
360 IS
361 BEGIN
362 return(PA_AGREEMENT_CORE.CHECK_UNIQUE_AGREEMENT(p_agreement_num
363 ,p_agreement_type
364 ,p_customer_id ));
365 END check_unique_agreement;
366
367
368 --
369 --Name: check_valid_agreement_ref
370 --Type: Function
371 --Description: This function will return 'Y' IF the Agreement_reference
372 -- is valid
373 -- ELSE will return 'N'
374 --
375 --Called subprograms: none
376 --
377 --
378 --History:
379 -- 15-MAY-2000 Created Nikhil Mishra
380 --
381
382 FUNCTION check_valid_agreement_ref
383 (p_agreement_reference IN VARCHAR2
384 )
385 RETURN VARCHAR2
386 IS
387 BEGIN
388 -- dbms_output.put_line('PA_AGREEMENT_UTILS.CHECK_VALID_AGREEMENT_REF');
389 RETURN(PA_AGREEMENT_CORE.CHECK_VALID_AGREEMENT_REF(p_agreement_reference));
390 END check_valid_agreement_ref;
391
392 --
393 --Name: check_valid_agreement_id
394 --Type: Function
395 --Description: This function will return 'Y' IF the Agreement_Id
396 -- is valid
397 -- ELSE will return 'N'
398 --
399 --Called subprograms: none
400 --
401 --
402 --History:
403 -- 15-MAY-2000 Created Nikhil Mishra
404 --
405
406 FUNCTION check_valid_agreement_id
407 (p_agreement_id IN NUMBER
408 )
409 RETURN VARCHAR2
410 IS
411 BEGIN
412 RETURN(PA_AGREEMENT_CORE.CHECK_VALID_AGREEMENT_ID(p_agreement_id));
413 END check_valid_agreement_id;
414
415
416
417 --
418 --Name: check_valid_funding_ref
419 --Type: Function
420 --Description: This function will return 'Y' IF the funding_reference
421 -- is valid
422 -- ELSE will return 'N'
423 --
424 --Called subprograms: none
425 --
426 --
427 --History:
428 -- 15-MAY-2000 Created Nikhil Mishra
429 --
430
431 FUNCTION check_valid_funding_ref
432 (p_funding_reference IN VARCHAR2
433 ,p_agreement_id IN NUMBER
434 )
435 RETURN VARCHAR2
436 IS
437
438 BEGIN
439 -- dbms_output.put_line(' Inside: PA_AGREEMENT_UTILS.CHECK_VALID_FUNDING_REF');
440 RETURN(PA_AGREEMENT_CORE.CHECK_VALID_FUNDING_REF( p_funding_reference
441 ,p_agreement_id ));
442 END check_valid_funding_ref;
443
444 --
445 --Name: check_valid_funding_id
446 --Type: Function
447 --Description: This function will return 'Y' IF the funding_Id
448 -- is valid
449 -- ELSE will return 'N'
450 --
451 --Called subprograms: none
452 --
453 --
454 --History:
455 -- 15-MAY-2000 Created Nikhil Mishra
456 --
457
458 FUNCTION check_valid_funding_id
459 (p_agreement_id IN NUMBER
460 ,p_funding_id IN NUMBER
461 )
462 RETURN VARCHAR2
463 IS
464
465 BEGIN
466 RETURN(PA_AGREEMENT_CORE.CHECK_VALID_FUNDING_ID(p_agreement_id
467 ,p_funding_id));
468 END check_valid_funding_id;
469
470 --
471 --Name: validate_agreement_amount
472 --Type: Function
473 --Description: This function will return 'Y' IF the Agreement amount enetered
474 -- is valid i.e. the amount entered should always be greater than
475 -- total baselined and unbaselined amount for that agreement_id;
476 -- IF returning 'N' indicating invalid amount then message is
477 -- PA_BU_AMOUNT_NOT_UPDATEABLE
478 --
479 --Called subprograms: PA_AGREEMENT_CORE.VALIDATE_AGREEMENT_AMOUNT
480 --
481 --
482 --History:
483 -- 05-MAY-2000 Created Nikhil Mishra.
484 --
485
486
487 FUNCTION validate_agreement_amount
488 (p_agreement_id IN NUMBER
489 ,p_amount IN NUMBER
490 )
491 RETURN VARCHAR2
492 IS
493 BEGIN
494 return(PA_AGREEMENT_CORE.VALIDATE_AGREEMENT_AMOUNT(p_agreement_id
495 ,p_amount));
496
497 END validate_agreement_amount;
498
499 --
500 --Name: check_add_update
501 --Type: FUNCTION
502 --Description: This function will return 'U' if update is required or 'A' if insert is required .
503 --
504 --Called subprograms: none
505 --
506 --
507 --History:
508 -- 15-MAY-2000 Created Nikhil Mishra.
509 --
510
511 FUNCTION check_add_update
512 ( p_funding_id IN NUMBER
513 ,p_funding_reference IN VARCHAR2
514 )
515 RETURN VARCHAR2
516 IS
517 BEGIN
518 RETURN(PA_AGREEMENT_CORE.CHECK_ADD_UPDATE( p_funding_id
519 ,p_funding_reference));
520
521 END check_add_update;
522
523 --
524 --Name: get_agreement_id
525 --Type: FUNCTION
526 --Description: This function will return the corresponding agreement_id for the funding_id or funding _reference given
527 --
528 --Called subprograms: none
529 --
530 --
531 --History:
532 -- 15-MAY-2000 Created Nikhil Mishra.
533 --
534
535 FUNCTION get_agreement_id
536 ( p_funding_id IN NUMBER
537 ,p_funding_reference IN VARCHAR2
538 )
539 RETURN NUMBER
540 IS
541 BEGIN
542 -- dbms_output.put_line('Inside: PA_AGREEMENT_UTILS.GET_AGREEMENT_ID');
543 -- dbms_output.put_line(' Returning: '||to_char(PA_AGREEMENT_CORE.GET_AGREEMENT_ID(p_funding_id,p_funding_reference)));
544 RETURN(PA_AGREEMENT_CORE.GET_AGREEMENT_ID(p_funding_id
545 ,p_funding_reference));
546 END get_agreement_id;
547
548 --
549 --Name: get_funding_id
550 --Type: FUNCTION
551 --Description: This function will return the corresponding funding_id for the funding_id given
552 -- the funding _reference
553 --
554 --Called subprograms: none
555 --
556 --
557 --History:
558 -- 15-MAY-2000 Created Nikhil Mishra.
559 --
560
561 FUNCTION get_funding_id
562 ( p_funding_reference IN VARCHAR2
563 )
564 RETURN NUMBER
565 IS
566 BEGIN
567 -- dbms_output.put_line('Inside: PA_AGREEMENT_UTILS.GET_FUNDING_ID');
568 -- dbms_output.put_line(' Returning: '||to_char(PA_FUNDING_CORE.GET_FUNDING_ID(p_funding_reference)));
569 RETURN(PA_FUNDING_CORE.GET_FUNDING_ID(p_funding_reference));
570 END get_funding_id;
571
572 --
573 --Name: get_customer_id
574 --Type: FUNCTION
575 --Description: This function will return the corresponding customer_id for the funding_id or funding_reference given
576 --
577 --Called subprograms: none
578 --
579 --
580 --History:
581 -- 15-MAY-2000 Created Nikhil Mishra.
582 --
583
584
585 FUNCTION get_customer_id
586 ( p_funding_id IN NUMBER
587 ,p_funding_reference IN VARCHAR2
588 )
589 RETURN NUMBER
590 IS
591 BEGIN
592 -- dbms_output.put_line('Inside: PA_AGREEMENT_UTILS.GET_CUSTOMER_ID');
593 RETURN(PA_AGREEMENT_CORE.GET_CUSTOMER_ID(p_funding_id
594 ,p_funding_reference));
595 END get_customer_id;
596
597
598
599 --
600 --Name: get_project_id
601 --Type: FUNCTION
602 --Description: This procedure will get the corresponding project_id for the funding_id or funding _reference given
603 --
604 --Called subprograms: PA_AGREEMENT_CORE.GET_PROJECT_ID
605 --
606 --
607 --History:
608 -- 15-MAY-2000 Created Nikhil Mishra.
609 --
610
611 FUNCTION get_project_id
612 ( p_funding_id IN NUMBER
613 ,p_funding_reference IN VARCHAR2
614 )
615 RETURN NUMBER
616 IS
617
618 BEGIN
619 -- dbms_output.put_line('Inside: PA_AGREEMENT_UTILS.GET_PROJECT_ID');
620 RETURN(PA_AGREEMENT_CORE.GET_PROJECT_ID(p_funding_id
621 ,p_funding_reference));
622 END get_project_id;
623
624
625 --
626 --Name: get_task_id
627 --Type: FUNCTION
628 --Description: This function will get the corresponding task_id for the funding_id or funding _reference given
629 --
630 --Called subprograms: PA_AGREEMENT_CORE.GET_TASK_ID
631 --
632 --
633 --History:
634 -- 15-MAY-2000 Created Nikhil Mishra.
635 --
636
637 FUNCTION get_task_id
638 ( p_funding_id IN NUMBER
639 ,p_funding_reference IN VARCHAR2
640 )
641 RETURN NUMBER
642 IS
643
644 BEGIN
645 -- dbms_output.put_line('Inside: PA_AGREEMENT_UTILS.GET_TASK_ID');
646 RETURN(PA_AGREEMENT_CORE.GET_TASK_ID( p_funding_id
647 ,p_funding_reference));
648 END get_task_id;
649 --
650 --Name: summary_funding_insert_row
651 --Type: Procedure
652 --Description: This procedure inserts row(s) in to PA_SUMMARY_PROJECT_FUNDINGS.
653 --
654 --Called subprograms PA_FUNDING_CORE.SUMMARY_FUNDING_INSERT_ROW
655 --
656 --
657 --
658 --History:
659 -- 15-MAY-2000 Created Nikhil Mishra.
660 --
661
662 PROCEDURE summary_funding_insert_row
663 (p_agreement_id IN NUMBER
664 ,p_project_id IN NUMBER
665 ,p_task_id IN NUMBER
666 ,p_login_id IN VARCHAR2
667 ,p_user_id IN VARCHAR2
668 )
669 IS
670 BEGIN
671 PA_FUNDING_CORE.SUMMARY_FUNDING_INSERT_ROW( p_agreement_id
672 ,p_project_id
673 ,p_task_id
674 ,p_login_id
675 ,p_user_id
676 ,'DRAFT');
677 END summary_funding_insert_row;
678
679
680
681 --Name: summary_funding_update_row
682 --Type: Procedure
683 --Description: This procedure updates row(s) in to PA_SUMMARY_PROJECT_FUNDINGS.
684 --
685 --Called subprograms: PA_FUNDING_CORE.SUMMARY_FUNDING_UPDATE_ROW
686 --
687 --
688 --
689 --History:
690 -- 15-MAY-2000 Created Nikhil Mishra.
691 --
692 PROCEDURE summary_funding_update_row
693 (p_agreement_id IN NUMBER
694 ,p_project_id IN NUMBER
695 ,p_task_id IN NUMBER
696 ,p_login_id IN VARCHAR2
697 ,p_user_id IN VARCHAR2
698 )
699 IS
700 BEGIN
701 -- dbms_output.put_line('Inside: PA_AGREEMENT_UTILS.SUMMARY_FUNDING_UPDATE_ROW');
702 PA_FUNDING_CORE.SUMMARY_FUNDING_UPDATE_ROW( p_agreement_id
703 ,p_project_id
704 ,p_task_id
705 ,p_login_id
706 ,p_user_id
707 ,'DRAFT');
708 END summary_funding_update_row;
709
710 --
711 --Name: summary_funding_delete_row
712 --Type: Procedure
713 --Description: This procedure deletes row(s) in to PA_SUMMARY_PROJECT_FUNDINGS.
714 --
715 --Called subprograms: PA_FUNDING_CORE.SUMMARY_FUNDING_DELETE_ROW
716 --
717 --History:
718 -- 15-MAY-2000 Created Nikhil Mishra.
719 --
720 PROCEDURE summary_funding_delete_row
721 (p_agreement_id IN NUMBER
722 ,p_project_id IN NUMBER
723 ,p_task_id IN NUMBER
724 ,p_login_id IN VARCHAR2
725 ,p_user_id IN VARCHAR2
726 )
727 IS
728 BEGIN
729 PA_FUNDING_CORE.SUMMARY_FUNDING_DELETE_ROW( p_agreement_id
730 ,p_project_id
731 ,p_task_id
732 ,p_login_id
733 ,p_user_id
734 ,'DRAFT');
735 END summary_funding_delete_row;
736 --
737 --Name: check_valid_project
738 --Type: Function
739 --Description: This function will return 'Y'
740 -- IF the project is a valid project ELSE will return 'N'
741 --
742 --Called subprograms: PA_FUNDING_CORE.CHECK_VALID_PROJECT
743 --
744 --History:
745 -- 10-SEP-01 : added new param project_id srividya
746
747 FUNCTION check_valid_project
748 (p_customer_id IN NUMBER,
749 p_project_id IN NUMBER,
750 p_agreement_id IN NUMBER) /*Federal*/
751 RETURN VARCHAR2 IS
752 BEGIN
753
754 -- dbms_output.put_line('Inside: PA_AGREEMENT_UTILS.CHECK_VALID_PROJECT');
755 -- dbms_output.put_line('Customer_id: '||nvl(to_char(p_customer_id),'NULL'));
756
757 return(PA_FUNDING_CORE.CHECK_VALID_PROJECT(
758 p_customer_id => p_customer_id,
759 p_project_id => p_project_id,
760 p_agreement_id => p_agreement_id));
761
762 END check_valid_project;
763
764
765 --
766 --Name: check_valid_task
767 --Type: Function
768 --Description: This function will return 'Y'
769 -- IF the task is a valid task for project_id passed ELSE will return 'N'
770 --
771 --Called subprograms: PA_FUNDING_CORE.CHECK_VALID_TASK
772 --
773 --History:
774 -- 16-APR-2000 Created Nikhil Mishra.
775
776
777
778 FUNCTION check_valid_task
779 (p_project_id IN NUMBER
780 ,p_task_id IN NUMBER
781 )
782 RETURN VARCHAR2
783 IS
784 BEGIN
785 -- dbms_output.put_line('Inside: PA_AGREEMENT_UTILS.CHECK_VALID_TASK');
786 return(PA_FUNDING_CORE.CHECK_VALID_TASK(p_project_id
787 ,p_task_id));
788
789 END check_valid_task;
790
791 --
792 --Name: check_project_type
793 --Type: Function
794 --Description: This function will return 'Y'
795 -- IF the Project Type is "CONTRACT" ELSE will return 'N'
796 --
797 --Called subprograms: PA_FUNDING_CORE.CHECK_PROJECT_TYPE
798 --
799 --History:
800 -- 16-APR-2000 Created Nikhil Mishra.
801
802
803 FUNCTION check_project_type
804 (p_project_id IN NUMBER
805 )
806 RETURN VARCHAR2
807 IS
808 BEGIN
809 return(PA_FUNDING_CORE.CHECK_PROJECT_TYPE(p_project_id));
810 END check_project_type;
811
812 --
813 --Name: check_funding_level
814 --Type: Function
815 --Description: This function will return 'Y' IF the funding level has been changed.
816 -- and the chenged level is a valis one. this can be done by
817 -- calling validate_level_change
818 --
819 --Called subprograms: PA_FUNDING_CORE.CHECK_LEVEL_CHANGE
820 --
821 --
822 --
823 --History:
824 -- 05-MAY-2000 Created Nikhil Mishra.
825 --
826
827
828 FUNCTION check_funding_level
829 (p_agreement_id IN NUMBER
830 ,p_project_id IN NUMBER
831 ,p_task_id IN NUMBER
832 )
833 RETURN VARCHAR2
834 IS
835 BEGIN
836 return(PA_FUNDING_CORE.CHECK_LEVEL_CHANGE(p_agreement_id
837 ,p_project_id
838 ,p_task_id));
839 END check_funding_level;
840
841 --
842 --Name: check_invoice_exists
843 --Type: Function
844 --Description: Will return Y IF invoices exists for given agreement ELSE return N
845 --
846 --Called subprograms: PA_AGREEMENT_CORE.CHECK_INVOICE_EXISTS
847 --
848 --
849 --History:
850 -- 05-MAY-2000 Created Nikhil Mishra.
851 --
852
853 FUNCTION check_invoice_exists
854 ( p_agreement_id IN NUMBER)
855 RETURN VARCHAR2
856 IS
857 BEGIN
858 RETURN (PA_AGREEMENT_CORE.CHECK_INVOICE_EXISTS( p_agreement_id));
859 END check_invoice_exists;
860
861
862 --Name: check_budget_type
863 --Type: Function
864 --Description: This function will return 'Y' IF the Project has budget_type_code as 'DRAFT'
865 -- ELSE will return 'N'
866 --
867 --
868 --Called subprograms: PA_FUNDING_CORE.CHECK_BUDGET_TYPE
869 --
870 --
871 --
872 --History:
873 -- 12-MAY-2000 Created Nikhil Mishra.
874 --
875
876
877 FUNCTION check_budget_type
878 ( p_funding_id IN NUMBER
879 )
880 RETURN VARCHAR2
881 IS
882 BEGIN
883 -- dbms_output.put_line('Inside: PA_AGREEMENT_UTILS.CHECK_BUDGET_TYPE');
884 return (PA_AGREEMENT_CORE.CHECK_BUDGET_TYPE(p_funding_id));
885 END check_budget_type;
886
887 --Name: check_revenue_type
888 --Type: Function
889 --Description: This function will return 'Y' IF the revenue limit of theagreemnet is in the permissible limts
890 -- ELSE will return 'N'
891 --
892 --
893 --Called subprograms: PA_FUNDING_CORE.CHECK_REVENUE_LIMIT
894 --
895 --
896 --
897 --History:
898 -- 12-MAY-2000 Created Nikhil Mishra.
899 --
900
901
902 FUNCTION check_revenue_limit
903 ( p_agreement_id IN NUMBER
904 )
905 RETURN VARCHAR2
906 IS
907 BEGIN
908 -- dbms_output.put_line('Inside: PA_AGREEMENT_UTILS.CHECK_REVENUE_LIMIT');
909 return (PA_AGREEMENT_CORE.CHECK_REVENUE_LIMIT(p_agreement_id));
910 END check_revenue_limit;
911
912
913 --
914 --Name: create_agreement
915 --Type: PROCEDURE
916 --Description: This procedure will insert one row in to PA_AGREEMENTS_ALL
917 --
918 --Called subprograms: PA_AGREEMENT_CORE.CREATE_AGREEMENT
919 --
920 --
921 --History:
922 -- 15-MAY-2000 Created Nikhil Mishra.
923 -- 07-SEP-2001 Modified Srividya
924 -- added mcb2 columns
925 --
926 PROCEDURE create_agreement(
927 p_Rowid IN OUT NOCOPY VARCHAR2, /*File.sql.39*/
928 p_Agreement_Id IN OUT NOCOPY NUMBER,/*File.sql.39*/
929 p_Customer_Id IN NUMBER,
930 p_Agreement_Num IN VARCHAR2,
931 p_Agreement_Type IN VARCHAR2,
932 p_Last_Update_Date IN DATE,
933 p_Last_Updated_By IN NUMBER,
934 p_Creation_Date IN DATE,
935 p_Created_By IN NUMBER,
936 p_Last_Update_Login IN NUMBER,
937 p_Owned_By_Person_Id IN NUMBER,
938 p_Term_Id IN NUMBER,
939 p_Revenue_Limit_Flag IN VARCHAR2,
940 p_Amount IN NUMBER,
941 p_Description IN VARCHAR2,
942 p_Expiration_Date IN DATE,
943 p_Attribute_Category IN VARCHAR2,
944 p_Attribute1 IN VARCHAR2,
945 p_Attribute2 IN VARCHAR2,
946 p_Attribute3 IN VARCHAR2,
947 p_Attribute4 IN VARCHAR2,
948 p_Attribute5 IN VARCHAR2,
949 p_Attribute6 IN VARCHAR2,
950 p_Attribute7 IN VARCHAR2,
951 p_Attribute8 IN VARCHAR2,
952 p_Attribute9 IN VARCHAR2,
953 p_Attribute10 IN VARCHAR2,
954 p_Template_Flag IN VARCHAR2,
955 p_pm_agreement_reference IN VARCHAR2,
956 p_pm_product_code IN VARCHAR2,
957 p_agreement_currency_code IN VARCHAR2 DEFAULT NULL,
958 p_owning_organization_id IN NUMBER DEFAULT NULL,
959 p_invoice_limit_flag IN VARCHAR2 DEFAULT NULL,
960 p_customer_order_number IN VARCHAR2 DEFAULT NULL,
961 p_advance_required IN VARCHAR2 DEFAULT NULL,
962 p_start_date IN DATE DEFAULT NULL,
963 p_billing_sequence IN NUMBER DEFAULT NULL,
964 p_line_of_account IN VARCHAR2 DEFAULT NULL,
965 p_Attribute11 IN VARCHAR2 DEFAULT NULL,
966 p_Attribute12 IN VARCHAR2 DEFAULT NULL,
967 p_Attribute13 IN VARCHAR2 DEFAULT NULL,
968 p_Attribute14 IN VARCHAR2 DEFAULT NULL,
969 p_Attribute15 IN VARCHAR2 DEFAULT NULL,
970 p_Attribute16 IN VARCHAR2 DEFAULT NULL,
971 p_Attribute17 IN VARCHAR2 DEFAULT NULL,
972 p_Attribute18 IN VARCHAR2 DEFAULT NULL,
973 p_Attribute19 IN VARCHAR2 DEFAULT NULL,
974 p_Attribute20 IN VARCHAR2 DEFAULT NULL,
975 p_Attribute21 IN VARCHAR2 DEFAULT NULL,
976 p_Attribute22 IN VARCHAR2 DEFAULT NULL,
977 p_Attribute23 IN VARCHAR2 DEFAULT NULL,
978 p_Attribute24 IN VARCHAR2 DEFAULT NULL,
979 p_Attribute25 IN VARCHAR2 DEFAULT NULL)
980 IS
981 np_p_Agreement_Id Number :=p_Agreement_Id; /*file.sql.39*/
982 BEGIN
983 -- dbms_output.put_line('In UTILS - create_agreement');
984 PA_AGREEMENT_CORE.CREATE_AGREEMENT(
985 p_rowid => p_rowid,
986 p_agreement_id => p_agreement_id,
987 p_customer_id => p_customer_id,
988 p_agreement_num => p_agreement_num,
989 p_agreement_type => p_agreement_type,
990 p_last_update_date => p_last_update_date,
991 p_last_updated_by => p_last_updated_by,
992 p_creation_date => p_creation_date,
993 p_created_by => p_created_by,
994 p_last_update_login => p_last_update_login,
995 p_owned_by_person_id => p_owned_by_person_id,
996 p_term_id => p_term_id,
997 p_revenue_limit_flag => p_revenue_limit_flag,
998 p_amount => p_amount,
999 p_description => p_description,
1000 p_expiration_date => p_expiration_date,
1001 p_attribute_category => p_attribute_category,
1002 p_attribute1 => p_attribute1,
1003 p_attribute2 => p_attribute2,
1004 p_attribute3 => p_attribute3,
1005 p_attribute4 => p_attribute4,
1006 p_attribute5 => p_attribute5,
1007 p_attribute6 => p_attribute6,
1008 p_attribute7 => p_attribute7,
1009 p_attribute8 => p_attribute8,
1010 p_attribute9 => p_attribute9,
1011 p_attribute10 => p_attribute10,
1012 p_template_flag => p_template_flag,
1013 p_pm_agreement_reference => p_pm_agreement_reference,
1014 p_pm_product_code => p_pm_product_code,
1015 p_owning_organization_id => p_owning_organization_id,
1016 p_agreement_currency_code => p_agreement_currency_code,
1017 p_invoice_limit_flag => p_invoice_limit_flag,
1018 p_customer_order_number => p_customer_order_number,
1019 p_advance_required => p_advance_required,
1020 p_start_date => p_start_date,
1021 p_billing_sequence => p_billing_sequence,
1022 p_line_of_account => p_line_of_account,
1023 p_attribute11 => p_attribute11,
1024 p_attribute12 => p_attribute12,
1025 p_attribute13 => p_attribute13,
1026 p_attribute14 => p_attribute14,
1027 p_attribute15 => p_attribute15,
1028 p_attribute16 => p_attribute16,
1029 p_attribute17 => p_attribute17,
1030 p_attribute18 => p_attribute18,
1031 p_attribute19 => p_attribute19,
1032 p_attribute20 => p_attribute20,
1033 p_attribute21 => p_attribute21,
1034 p_attribute22 => p_attribute22,
1035 p_attribute23 => p_attribute23,
1036 p_attribute24 => p_attribute24,
1037 p_attribute25 => p_attribute25
1038 );
1039
1040 /*Added EXCEPTION for file.sql.39*/
1041 EXCEPTION
1042 WHEN OTHERS THEN
1043 p_Agreement_Id := np_p_agreement_id;
1044 raise;
1045
1046 END CREATE_AGREEMENT;
1047 --
1048 --Name: lock_agreement
1049 --Type: PROCEDURE
1050 --Description: This procedure will lock one row in to PA_AGREEMENTS_ALL
1051 --
1052 --Called subprograms: PA_AGREEMENT_CORE.LOCK_AGREEMENT
1053 --
1054 --
1055 --History:
1056 -- 15-MAY-2000 Created Nikhil Mishra.
1057 --
1058 PROCEDURE Lock_agreement(p_Agreement_Id IN NUMBER )
1059 IS
1060 BEGIN
1061 PA_AGREEMENT_CORE.LOCK_AGREEMENT(p_Agreement_Id );
1062 END Lock_agreement;
1063
1064 --
1065 --Name: delete_agreement
1066 --Type: PROCEDURE
1067 --Description: This procedure will delete one row in to PA_AGREEMENTS_ALL
1068 --
1069 --Called subprograms: PA_AGREEMENT_CORE.DELETE_AGREEMENT
1070 --
1071 --
1072 --History:
1073 -- 15-MAY-2000 Created Nikhil Mishra.
1074 --
1075
1076 PROCEDURE Delete_agreement(p_agreement_id IN NUMBER )
1077 IS
1078 BEGIN
1079 PA_AGREEMENT_CORE.DELETE_AGREEMENT(p_agreement_id);
1080 END Delete_agreement;
1081
1082 --
1083 --Name: update_agreement
1084 --Type: PROCEDURE
1085 --Description: This procedure will update one row in to PA_AGREEMENTS_ALL
1086 --
1087 --Called subprograms: PA_AGREEMENT_CORE.UPDATE_AGREEMENT
1088 --
1089 --
1090 --History:
1091 -- 15-MAY-2000 Created Nikhil Mishra.
1092 --
1093 -- 07-SEP-2001 Modified Srividya
1094 -- Added all new columns used in MCB2
1095
1096 PROCEDURE Update_agreement(
1097 p_Agreement_Id IN NUMBER,
1098 p_Customer_Id IN NUMBER,
1099 p_Agreement_Num IN VARCHAR2,
1100 p_Agreement_Type IN VARCHAR2,
1101 p_Last_Update_Date IN DATE,
1102 p_Last_Updated_By IN NUMBER,
1103 p_Last_Update_Login IN NUMBER,
1104 p_Owned_By_Person_Id IN NUMBER,
1105 p_Term_Id IN NUMBER,
1106 p_Revenue_Limit_Flag IN VARCHAR2,
1107 p_Amount IN NUMBER,
1108 p_Description IN VARCHAR2,
1109 p_Expiration_Date IN DATE,
1110 p_Attribute_Category IN VARCHAR2,
1111 p_Attribute1 IN VARCHAR2,
1112 p_Attribute2 IN VARCHAR2,
1113 p_Attribute3 IN VARCHAR2,
1114 p_Attribute4 IN VARCHAR2,
1115 p_Attribute5 IN VARCHAR2,
1116 p_Attribute6 IN VARCHAR2,
1117 p_Attribute7 IN VARCHAR2,
1118 p_Attribute8 IN VARCHAR2,
1119 p_Attribute9 IN VARCHAR2,
1120 p_Attribute10 IN VARCHAR2,
1121 p_Template_Flag IN VARCHAR2,
1122 p_pm_agreement_reference IN VARCHAR2,
1123 p_pm_product_code IN VARCHAR2,
1124 p_agreement_currency_code IN VARCHAR2 DEFAULT NULL,
1125 p_owning_organization_id IN NUMBER DEFAULT NULL,
1126 p_invoice_limit_flag IN VARCHAR2 DEFAULT NULL,
1127 p_customer_order_number IN VARCHAR2 DEFAULT NULL,
1128 p_advance_required IN VARCHAR2 DEFAULT NULL,
1129 p_start_date IN DATE DEFAULT NULL,
1130 p_billing_sequence IN NUMBER DEFAULT NULL,
1131 p_line_of_account IN VARCHAR2 DEFAULT NULL,
1132 p_Attribute11 IN VARCHAR2 DEFAULT NULL,
1133 p_Attribute12 IN VARCHAR2 DEFAULT NULL,
1134 p_Attribute13 IN VARCHAR2 DEFAULT NULL,
1135 p_Attribute14 IN VARCHAR2 DEFAULT NULL,
1136 p_Attribute15 IN VARCHAR2 DEFAULT NULL,
1137 p_Attribute16 IN VARCHAR2 DEFAULT NULL,
1138 p_Attribute17 IN VARCHAR2 DEFAULT NULL,
1139 p_Attribute18 IN VARCHAR2 DEFAULT NULL,
1140 p_Attribute19 IN VARCHAR2 DEFAULT NULL,
1141 p_Attribute20 IN VARCHAR2 DEFAULT NULL,
1142 p_Attribute21 IN VARCHAR2 DEFAULT NULL,
1143 p_Attribute22 IN VARCHAR2 DEFAULT NULL,
1144 p_Attribute23 IN VARCHAR2 DEFAULT NULL,
1145 p_Attribute24 IN VARCHAR2 DEFAULT NULL,
1146 p_Attribute25 IN VARCHAR2 DEFAULT NULL)
1147 IS
1148 BEGIN
1149 -- dbms_output.put_line('Inside: pa_agreement_utils.update_agreement');
1150 PA_AGREEMENT_CORE.UPDATE_AGREEMENT(
1151 p_agreement_id => p_agreement_id,
1152 p_customer_id => p_customer_id,
1153 p_agreement_num => p_agreement_num,
1154 p_agreement_type => p_agreement_type,
1155 p_last_update_date => p_last_update_date,
1156 p_last_updated_by => p_last_updated_by,
1157 p_last_update_login => p_last_update_login,
1158 p_owned_by_person_id => p_owned_by_person_id,
1159 p_term_id => p_term_id,
1160 p_revenue_limit_flag => p_revenue_limit_flag,
1161 p_amount => p_amount,
1162 p_description => p_description,
1163 p_expiration_date => p_expiration_date,
1164 p_attribute_category => p_attribute_category,
1165 p_attribute1 => p_attribute1,
1166 p_attribute2 => p_attribute2,
1167 p_attribute3 => p_attribute3,
1168 p_attribute4 => p_attribute4,
1169 p_attribute5 => p_attribute5,
1170 p_attribute6 => p_attribute6,
1171 p_attribute7 => p_attribute7,
1172 p_attribute8 => p_attribute8,
1173 p_attribute9 => p_attribute9,
1174 p_attribute10 => p_attribute10,
1175 p_template_flag => p_template_flag,
1176 p_pm_agreement_reference => p_pm_agreement_reference,
1177 p_pm_product_code => p_pm_product_code,
1178 p_owning_organization_id => p_owning_organization_id,
1179 p_agreement_currency_code => p_agreement_currency_code,
1180 p_invoice_limit_flag => p_invoice_limit_flag,
1181 p_customer_order_number => p_customer_order_number,
1182 p_advance_required => p_advance_required,
1183 p_start_date => p_start_date,
1184 p_billing_sequence => p_billing_sequence,
1185 p_line_of_account => p_line_of_account,
1186 p_attribute11 => p_attribute11,
1187 p_attribute12 => p_attribute12,
1188 p_attribute13 => p_attribute13,
1189 p_attribute14 => p_attribute14,
1190 p_attribute15 => p_attribute15,
1191 p_attribute16 => p_attribute16,
1192 p_attribute17 => p_attribute17,
1193 p_attribute18 => p_attribute18,
1194 p_attribute19 => p_attribute19,
1195 p_attribute20 => p_attribute20,
1196 p_attribute21 => p_attribute21,
1197 p_attribute22 => p_attribute22,
1198 p_attribute23 => p_attribute23,
1199 p_attribute24 => p_attribute24,
1200 p_attribute25 => p_attribute25);
1201
1202 END update_agreement;
1203
1204 --
1205 --Name: create_funding
1206 --Type: PROCEDURE
1207 --Description: This procedure is used to create a funding record in PA_PROJECT_FUNDINGS
1208 --Called subprograms: PA_FUNDING_CORE.CREATE_FUNDING
1209 --
1210 --
1211 --
1212 --History:
1213 -- 05-MAY-2000 Created Adwait Marathe.
1214 -- 15-MAY-2000 Created Nikhil Mishra
1215 -- 07-SEP-2001 Modified Srividya Sivaraman
1216 -- Added all new columns corresponding to MCB2
1217
1218 PROCEDURE create_funding(
1219 p_Rowid IN OUT NOCOPY VARCHAR2,/*File.sql.39*/
1220 p_Project_Funding_Id IN OUT NOCOPY NUMBER,/*File.sql.39*/
1221 p_Last_Update_Date IN DATE,
1222 p_Last_Updated_By IN NUMBER,
1223 p_Creation_Date IN DATE,
1224 p_Created_By IN NUMBER,
1225 p_Last_Update_Login IN NUMBER,
1226 p_Agreement_Id IN NUMBER,
1227 p_Project_Id IN NUMBER,
1228 p_Task_id IN NUMBER,
1229 p_Allocated_Amount IN NUMBER,
1230 p_Date_Allocated IN DATE,
1231 p_Attribute_Category IN VARCHAR2,
1232 p_Attribute1 IN VARCHAR2,
1233 p_Attribute2 IN VARCHAR2,
1234 p_Attribute3 IN VARCHAR2,
1235 p_Attribute4 IN VARCHAR2,
1236 p_Attribute5 IN VARCHAR2,
1237 p_Attribute6 IN VARCHAR2,
1238 p_Attribute7 IN VARCHAR2,
1239 p_Attribute8 IN VARCHAR2,
1240 p_Attribute9 IN VARCHAR2,
1241 p_Attribute10 IN VARCHAR2,
1242 p_pm_funding_reference IN VARCHAR2,
1243 p_pm_product_code IN VARCHAR2,
1244 p_project_rate_type IN VARCHAR2 DEFAULT NULL,
1245 p_project_rate_date IN DATE DEFAULT NULL,
1246 p_project_exchange_rate IN NUMBER DEFAULT NULL,
1247 p_projfunc_rate_type IN VARCHAR2 DEFAULT NULL,
1248 p_projfunc_rate_date IN DATE DEFAULT NULL,
1249 p_projfunc_exchange_rate IN NUMBER DEFAULT NULL,
1250 x_err_code OUT NOCOPY NUMBER,/*file.sql.39*/
1251 x_err_msg OUT NOCOPY VARCHAR2,/*file.sql.39*/
1252 p_funding_category IN VARCHAR2 /* For Bug 2244796 */
1253
1254 )
1255 IS
1256 temp varchar2(20) := 'DRAFT';
1257
1258 l_err_code NUMBER;
1259 l_err_msg VARCHAR2(100);
1260 np_p_Project_Funding_Id NUMBER := p_Project_Funding_Id;
1261 BEGIN
1262 -- dbms_output.put_line('Inside: pa_agreement_utils.create_funding');
1263
1264 x_err_code := 0;
1265 x_err_msg := null;
1266
1267 PA_FUNDING_CORE.CREATE_FUNDING(
1268 p_rowid => p_rowid,
1269 p_project_funding_id => p_project_funding_id,
1270 p_last_update_date => p_last_update_date,
1271 p_last_updated_by => p_last_updated_by,
1272 p_creation_date => p_creation_date,
1273 p_created_by => p_created_by,
1274 p_last_update_login => p_last_update_login,
1275 p_agreement_id => p_agreement_id,
1276 p_project_id => p_project_id,
1277 p_task_id => p_task_id,
1278 p_budget_type_code => temp,
1279 p_allocated_amount => p_allocated_amount,
1280 p_date_allocated => p_date_allocated,
1281 p_attribute_category => p_attribute_category,
1282 p_attribute1 => p_attribute1,
1283 p_attribute2 => p_attribute2,
1284 p_attribute3 => p_attribute3,
1285 p_attribute4 => p_attribute4,
1286 p_attribute5 => p_attribute5,
1287 p_attribute6 => p_attribute6,
1288 p_attribute7 => p_attribute7,
1289 p_attribute8 => p_attribute8,
1290 p_attribute9 => p_attribute9,
1291 p_attribute10 => p_attribute10,
1292 p_pm_funding_reference => p_pm_funding_reference,
1293 p_pm_product_code => p_pm_product_code,
1294 p_project_rate_type => p_project_rate_type,
1295 p_project_rate_date => p_project_rate_date,
1296 p_project_exchange_rate => p_project_exchange_rate,
1297 p_projfunc_rate_type => p_projfunc_rate_type,
1298 p_projfunc_rate_date => p_projfunc_rate_date,
1299 p_projfunc_exchange_rate => p_projfunc_exchange_rate,
1300 x_err_code => l_err_code,
1301 x_err_msg => l_err_msg,
1302 p_funding_category => p_funding_category /* For Bug2244796 */
1303 );
1304
1305 x_err_code := l_err_code;
1306 x_err_msg := l_err_msg;
1307
1308 EXCEPTION
1309
1310 WHEN OTHERS THEN
1311 x_err_code := SQLCODE;
1312 x_err_msg := SQLERRM;
1313 p_Project_Funding_Id := np_p_Project_Funding_Id;
1314
1315 END create_funding;
1316
1317 --
1318 --Name: update_funding
1319 --Type: PROCEDURE
1320 --Description: This procedure is used to create a funding record in PA_PROJECT_FUNDINGS
1321 --Called subprograms: PA_FUNDING_CORE.UPDATE_FUNDING
1322 --
1323 --
1324 --
1325 --History:
1326 -- 05-MAY-2000 Created Adwait Marathe.
1327 -- 15-MAY-2000 Created Nikhil Mishra.
1328 -- 07-SEP-2001 Modified Srividya Sivaraman
1329 -- Added all new columns corresponding to MCB2
1330
1331 PROCEDURE Update_funding(
1332 p_Project_Funding_Id IN NUMBER,
1333 p_Last_Update_Date IN DATE,
1334 p_Last_Updated_By IN NUMBER,
1335 p_Last_Update_Login IN NUMBER,
1336 p_Agreement_Id IN NUMBER,
1337 p_Project_Id IN NUMBER,
1338 p_Task_id IN NUMBER,
1339 p_Allocated_Amount IN NUMBER,
1340 p_Date_Allocated IN DATE,
1341 p_Attribute_Category IN VARCHAR2,
1342 p_Attribute1 IN VARCHAR2,
1343 p_Attribute2 IN VARCHAR2,
1344 p_Attribute3 IN VARCHAR2,
1345 p_Attribute4 IN VARCHAR2,
1346 p_Attribute5 IN VARCHAR2,
1347 p_Attribute6 IN VARCHAR2,
1348 p_Attribute7 IN VARCHAR2,
1349 p_Attribute8 IN VARCHAR2,
1350 p_Attribute9 IN VARCHAR2,
1351 p_Attribute10 IN VARCHAR2,
1352 p_pm_funding_reference IN VARCHAR2,
1353 p_pm_product_code IN VARCHAR2,
1354 p_project_rate_type IN VARCHAR2 DEFAULT NULL,
1355 p_project_rate_date IN DATE DEFAULT NULL,
1356 p_project_exchange_rate IN NUMBER DEFAULT NULL,
1357 p_projfunc_rate_type IN VARCHAR2 DEFAULT NULL,
1358 p_projfunc_rate_date IN DATE DEFAULT NULL,
1359 p_projfunc_exchange_rate IN NUMBER DEFAULT NULL,
1360 x_err_code OUT NOCOPY NUMBER,/*File.sql.39*/
1361 x_err_msg OUT NOCOPY VARCHAR2,/*File.sql.39*/
1362 p_funding_category IN VARCHAR2 /* For Bug2244796 */ )
1363 IS
1364
1365 l_err_code NUMBER;
1366 l_err_msg VARCHAR2(100);
1367
1368 BEGIN
1369
1370 x_err_code := 0;
1371 x_err_msg := null;
1372
1373 PA_FUNDING_CORE.UPDATE_FUNDING(
1374 p_project_funding_id => p_project_funding_id,
1375 p_last_update_date => p_last_update_date,
1376 p_last_updated_by => p_last_updated_by,
1377 p_last_update_login => p_last_update_login,
1378 p_agreement_id => p_agreement_id,
1379 p_project_id => p_project_id,
1380 p_task_id => p_task_id,
1381 p_budget_type_code => 'DRAFT',
1382 p_allocated_amount => p_allocated_amount,
1383 p_date_allocated => p_date_allocated,
1384 p_attribute_category => p_attribute_category,
1385 p_attribute1 => p_attribute1,
1386 p_attribute2 => p_attribute2,
1387 p_attribute3 => p_attribute3,
1388 p_attribute4 => p_attribute4,
1389 p_attribute5 => p_attribute5,
1390 p_attribute6 => p_attribute6,
1391 p_attribute7 => p_attribute7,
1392 p_attribute8 => p_attribute8,
1393 p_attribute9 => p_attribute9,
1394 p_attribute10 => p_attribute10,
1395 p_pm_funding_reference => p_pm_funding_reference,
1396 p_pm_product_code => p_pm_product_code,
1397 p_project_rate_type => p_project_rate_type,
1398 p_project_rate_date => p_project_rate_date,
1399 p_project_exchange_rate => p_project_exchange_rate,
1400 p_projfunc_rate_type => p_projfunc_rate_type,
1401 p_projfunc_rate_date => p_projfunc_rate_date,
1402 p_projfunc_exchange_rate => p_projfunc_exchange_rate,
1403 x_err_code => l_err_code,
1404 x_err_msg => l_err_msg,
1405 p_funding_category => p_funding_category /* For Bug2244796 */
1406 );
1407
1408 x_err_code := l_err_code;
1409 x_err_msg := l_err_msg;
1410
1411 EXCEPTION
1412
1413 WHEN OTHERS THEN
1414 x_err_code := SQLCODE;
1415 x_err_msg := SQLERRM;
1416
1417 END update_funding;
1418
1419
1420 --
1421 --Name: delete_funding
1422 --Type: PROCEDURE
1423 --Description: This procedure is used to delete a funding record in PA_PROJECT_FUNDINGS
1424 --Called subprograms: PA_FUNDING_CORE.DELETE_FUNDING
1425 --
1426 --
1427 --
1428 --History:
1429 -- 05-MAY-2000 Created Adwait Marathe.
1430 -- 15-MAY-2000 Created Nikhil Mishra
1431
1432 PROCEDURE Delete_funding(p_project_funding_id IN NUMBER)
1433 IS
1434 BEGIN
1435 PA_FUNDING_CORE.DELETE_FUNDING(p_project_funding_id);
1436 END Delete_funding;
1437
1438 --
1439 --Name: lock_funding
1440 --Type: PROCEDURE
1441 --Description: This procedure is used to lock a funding record in PA_PROJECT_FUNDINGS
1442 --Called subprograms: PA_FUNDING_CORE.LOCK_FUNDING
1443 --
1444 --
1445 --
1446 --History:
1447 -- 05-MAY-2000 Created Adwait Marathe.
1448 -- 15-MAY-2000 Created Nikhil Mishra
1449 PROCEDURE Lock_funding
1450 (p_Project_Funding_Id IN NUMBER)
1451 IS
1452 BEGIN
1453 PA_FUNDING_CORE.LOCK_FUNDING(p_Project_Funding_Id);
1454 END lock_funding;
1455
1456
1457 --
1458 --Name: get_agr_curr_code
1459 --Type: function
1460 --Description: This function is used to get agreement currency code
1461 -- for a given agreement
1462 --Called subprograms: PA_AGREEMENT_CORE.get_agr_curr_code
1463 --
1464 --History:
1465 -- 10-SEP-2001 Created Srividya
1466 -- written for MCB2
1467
1468 FUNCTION get_agr_curr_code ( p_agreement_id IN NUMBER)
1469 RETURN VARCHAR2
1470
1471 IS
1472
1473 BEGIN
1474
1475 return (PA_AGREEMENT_CORE.GET_AGR_CURR_CODE(p_agreement_id));
1476
1477 END get_agr_curr_code;
1478
1479
1480 --
1481 --Name: check_valid_owning_orgn_id
1482 --Type: Function
1483 --Description: This function will return 'Y'
1484 -- if the owning organization id is valid
1485 -- ELSE will return 'N'
1486 --
1487 --Called subprograms: PA_AGREEMENT_CORE.check_valid_owning_orgn_id
1488 --
1489 --
1490 --History:
1491 -- 10-SEP-2001 Created Srividya
1492 -- written for MCB2
1493
1494 FUNCTION check_valid_owning_orgn_id
1495 ( p_owning_organization_id IN NUMBER)
1496 RETURN VARCHAR2 IS
1497
1498
1499 BEGIN
1500 return(PA_AGREEMENT_CORE.CHECK_VALID_OWNING_ORGN_ID(
1501 p_owning_organization_id));
1502 END check_valid_owning_orgn_id;
1503
1504 --
1505 --Name: check_valid_agr_curr_code
1506 --Type: Function
1507 --Description: This function will return 'Y'
1508 -- if the agreement currency code is valid
1509 -- ELSE will return 'N'
1510 --
1511 --Called subprograms: PA_AGREEMENT_CORE.check_valid_agr_curr_code
1512 --
1513 --
1514 --History:
1515 -- 10-SEP-2001 Created Srividya
1516 -- written for MCB2
1517
1518 FUNCTION check_valid_agr_curr_code
1519 ( p_agreement_currency_code IN VARCHAR2)
1520 RETURN VARCHAR2 IS
1521
1522
1523 BEGIN
1524 return(PA_AGREEMENT_CORE.CHECK_VALID_agr_curr_code(
1525 p_agreement_currency_code));
1526 END check_valid_agr_curr_code;
1527
1528
1529 --Name: check_invoice_limit
1530 --Type: Function
1531 --Description: This function will return 'Y' IF the invoice limit of
1532 -- the agreemnet is in the permissible limts
1533 -- ELSE will return 'N'
1534 --
1535 --
1536 --Called subprograms: PA_FUNDING_CORE.CHECK_INVOICE_LIMIT
1537 --
1538 --
1539 --History:
1540 -- 10-SEP-2001 Created Srividya
1541 -- written for MCB2
1542
1543 FUNCTION check_invoice_limit ( p_agreement_id IN NUMBER)
1544 RETURN VARCHAR2 IS
1545
1546 BEGIN
1547
1548 -- dbms_output.put_line('Inside: PA_AGREEMENT_UTILS.CHECK_INVOICE_LIMIT');
1549 return (PA_AGREEMENT_CORE.CHECK_INVOICE_LIMIT(p_agreement_id));
1550
1551 END check_invoice_limit;
1552
1553 --Name: check_valid_exch_rate
1554 --Type: Function
1555 --Description: This function will return 'Y' IF the
1556 -- exch rate type/rate is valid
1557 -- ELSE will return 'N'
1558 --
1559 --
1560 --Called subprograms: PA_FUNDING_CORE.CHECK_VALID_EXCH_RATE
1561 --
1562 --
1563 --History:
1564 -- 10-SEP-2001 Created Srividya
1565 -- written for MCB2
1566 /*
1567 FUNCTION check_valid_exch_rate
1568 ( p_exchange_rate_type IN VARCHAR2,
1569 p_exchange_rate IN NUMBER)
1570
1571 RETURN VARCHAR2 IS
1572
1573 BEGIN
1574
1575 return(PA_FUNDING_CORE.CHECK_VALID_EXCH_RATE(
1576 p_exchange_rate_type => p_exchange_rate_type,
1577 p_exchange_rate => p_exchange_rate ));
1578
1579 END check_valid_exch_rate;
1580 */
1581
1582 END PA_AGREEMENT_UTILS;