DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMS_AWARD_STATUS

Source


1 PACKAGE BODY gms_award_status AS
2 /* $Header: gmsawrlb.pls 120.1 2005/07/26 14:20:58 appldev ship $ */
3 
4  FUNCTION gms_primary_member (x_award_id IN  NUMBER)
5   RETURN NUMBER IS
6 
7  l_personnel_id  NUMBER;
8  l_award_id   	 NUMBER;
9  l_award_role 	 VARCHAR2(30);
10 
11   CURSOR award_primary_member IS
12          SELECT personnel_id
13            FROM gms_personnel
14           WHERE award_id = x_award_id
15             AND award_role = l_award_role
16           ORDER BY end_date_active desc;
17 
18  BEGIN
19 
20   --initializing all local variables to NULL.
21   l_personnel_id  := NULL;
22   l_award_id   	  := NULL;
23   l_award_role    := NULL;
24 
25    --checking if valid award_id is entered as input.
26 	BEGIN
27 	   SELECT  award_id
28     	   INTO  l_award_id
29            FROM  gms_awards
30            WHERE  award_id = x_award_id;
31        EXCEPTION
32            WHEN NO_DATA_FOUND THEN
33              RETURN(-8888);
34            WHEN OTHERS THEN
35              RETURN(-9999);
36        END;
37 
38     -- processing comes here only when valid award_id is entered as input.
39     -- checking for 'PI's for that Award.
40 
41    l_award_role := 'PI';
42    OPEN award_primary_member;
43    FETCH award_primary_member INTO l_personnel_id;
44    CLOSE award_primary_member;
45 
46     -- processing comes here only when valid award_id is entered
47     -- as input and award_role 'PI' is not defined.
48 
49    IF l_personnel_id IS NULL THEN
50      l_award_role := 'AM';
51      OPEN award_primary_member;
52      FETCH award_primary_member INTO l_personnel_id;
53      CLOSE award_primary_member;
54    END IF;
55 
56    RETURN (NVL(l_personnel_id, 0));
57 
58  END gms_primary_member;
59 
60 END GMS_AWARD_STATUS;  --End of Package Body