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