[Home] [Help]
PACKAGE BODY: APPS.GMS_OVERRIDE_SCHEDULES_PKG
Source
1 PACKAGE BODY GMS_OVERRIDE_SCHEDULES_PKG as
2 /* $Header: gmsicovb.pls 115.8 2002/11/25 23:41:38 jmuthuku ship $ */
3
4 PROCEDURE Insert_Row(p_rowid IN OUT NOCOPY VARCHAR2,
5 p_award_id IN NUMBER,
6 p_project_id IN NUMBER,
7 p_task_id IN NUMBER,
8 p_idc_schedule_id IN NUMBER,
9 p_cost_ind_sch_fixed_date IN DATE,
10 p_mode IN VARCHAR2 default 'R') IS
11 CURSOR get_rowid IS
12 SELECT rowid
13 FROM GMS_OVERRIDE_SCHEDULES
14 WHERE award_id = p_award_id
15 AND project_id = p_project_id
16 AND (task_id = p_task_id
17 OR (task_id is NULL AND p_task_id is NULL));
18
19 l_last_update_date DATE;
20 l_last_updated_by NUMBER;
21 l_last_update_login NUMBER;
22 Begin
23 l_last_update_date := SYSDATE;
24 IF (p_mode = 'I') THEN
25 l_last_updated_by := 1;
26 l_last_update_login := 0;
27 ELSIF (p_mode = 'R') THEN
28 l_last_updated_by := FND_GLOBAL.USER_ID;
29 IF (l_last_updated_by is NULL) THEN
30 l_last_updated_by := -1;
31 END IF;
32 l_last_update_login :=FND_GLOBAL.LOGIN_ID;
33 IF (l_last_update_login is NULL) THEN
34 l_last_update_login := -1;
35 END IF;
36 ELSE
37 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
38 app_exception.raise_exception;
39 END IF;
40
41 INSERT into GMS_OVERRIDE_SCHEDULES
42 (award_id,
43 project_id,
44 task_id,
45 idc_schedule_id,
46 cost_ind_sch_fixed_date,
47 creation_date,
48 created_by,
49 last_update_date,
50 last_updated_by,
51 last_update_login
52 )
53 VALUES
54 (p_award_id,
55 p_project_id,
56 p_task_id,
57 p_idc_schedule_id,
58 p_cost_ind_sch_fixed_date,
59 l_last_update_date,
60 l_last_updated_by,
61 l_last_update_date,
62 l_last_updated_by,
63 l_last_update_login
64 );
65
66 OPEN get_rowid;
67 FETCH get_rowid INTO p_rowid;
68 IF (get_rowid%NOTFOUND) THEN
69 CLOSE get_rowid;
70 raise no_data_found;
71 END IF;
72 CLOSE get_rowid;
73
74 End insert_row;
75
76
77 PROCEDURE Update_Row(p_rowid IN VARCHAR2,
78 p_project_id IN NUMBER,
79 p_task_id IN NUMBER,
80 p_idc_schedule_id IN NUMBER,
81 p_cost_ind_sch_fixed_date IN DATE,
82 p_mode IN VARCHAR2 default 'R') IS
83 l_last_update_date DATE;
84 l_last_updated_by NUMBER;
85 l_last_update_login NUMBER;
86 Begin
87 l_last_update_date := SYSDATE;
88 IF (p_mode = 'I') THEN
89 l_last_updated_by := 1;
90 l_last_update_login := 0;
91 ELSIF (p_mode = 'R') THEN
92 l_last_updated_by := FND_GLOBAL.USER_ID;
93 IF (l_last_updated_by is NULL) THEN
94 l_last_updated_by := -1;
95 END IF;
96 l_last_update_login :=FND_GLOBAL.LOGIN_ID;
97 IF (l_last_update_login is NULL) THEN
98 l_last_update_login := -1;
99 END IF;
100 ELSE
101 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
102 app_exception.raise_exception;
103 END IF;
104
105 UPDATE GMS_OVERRIDE_SCHEDULES
106 SET project_id = p_project_id,
107 task_id = p_task_id,
108 idc_schedule_id = p_idc_schedule_id,
109 cost_ind_sch_fixed_date = p_cost_ind_sch_fixed_date,
110 last_update_date = l_last_update_date,
111 last_updated_by = l_last_updated_by,
112 last_update_login = l_last_update_login
113 WHERE rowid = p_rowid;
114
115 IF (sql%NOTFOUND) THEN
116 raise no_data_found;
117 END IF;
118
119 End update_row;
120
121
122 PROCEDURE Delete_Row(p_rowid IN VARCHAR2) IS
123 Begin
124 DELETE gms_override_schedules
125 WHERE rowid = p_rowid;
126
127 IF (sql%NOTFOUND) THEN
128 raise no_data_found;
129 END IF;
130
131 End delete_row;
132
133 PROCEDURE Lock_Row(p_rowid IN VARCHAR2,
134 p_award_id IN NUMBER,
135 p_project_id IN NUMBER,
136 p_task_id IN NUMBER,
137 p_idc_schedule_id IN NUMBER,
138 p_cost_ind_sch_fixed_date IN DATE) IS
139 CURSOR ovr_sch IS
140 SELECT award_id, project_id, task_id, idc_schedule_id, cost_ind_sch_fixed_date
141 FROM GMS_OVERRIDE_SCHEDULES
142 WHERE rowid = p_rowid
143 for update of idc_schedule_id, cost_ind_sch_fixed_date nowait;
144
145 recinfo ovr_sch%rowtype;
146
147 BEGIN
148 OPEN ovr_sch;
149 FETCH ovr_sch INTO Recinfo;
150 IF (ovr_sch %NOTFOUND) THEN
151 CLOSE ovr_sch;
152 FND_MESSAGE.Set_Name('FND','FORM_RECORD_DELETED');
153 APP_EXCEPTION.Raise_Exception;
154 END IF;
155 CLOSE ovr_sch;
156 IF (recinfo.award_id = p_award_id
157 AND recinfo.project_id = p_project_id
158 AND (recinfo.task_id = p_task_id OR (recinfo.task_id is null AND p_task_id is null))
159 AND recinfo.idc_schedule_id = p_idc_schedule_id
160 AND (recinfo.cost_ind_sch_fixed_date = p_cost_ind_sch_fixed_date OR (recinfo.cost_ind_sch_fixed_date is
161 null AND p_cost_ind_sch_fixed_date is null))) THEN
162 return;
163 ELSE
164 FND_MESSAGE.set_name('FND','FORM_RECORD_CHANGED');
165 APP_EXCEPTION.Raise_Exception;
166 END IF;
167
168 End lock_row;
169
170 END GMS_OVERRIDE_SCHEDULES_PKG;