[Home] [Help]
PACKAGE BODY: APPS.IGR_I_A_ITYPE_PKG
Source
1 package body IGR_I_A_ITYPE_Pkg as
2 /* $Header: IGSRH15B.pls 120.0 2005/06/01 22:27:30 appldev noship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references IGR_I_A_ITYPE%RowType;
6 new_references IGR_I_A_ITYPE%RowType;
7 PROCEDURE Set_Column_Values (
8 p_action IN VARCHAR2,
9 x_rowid IN VARCHAR2 DEFAULT NULL,
10 x_person_id IN NUMBER DEFAULT NULL,
11 x_enquiry_appl_number IN NUMBER DEFAULT NULL,
12 x_info_type_id IN VARCHAR2 DEFAULT NULL,
13 x_creation_date IN DATE DEFAULT NULL,
14 x_created_by IN NUMBER DEFAULT NULL,
15 x_last_update_date IN DATE DEFAULT NULL,
16 x_last_updated_by IN NUMBER DEFAULT NULL,
17 x_last_update_login IN NUMBER DEFAULT NULL
18 ) as
19
20 CURSOR cur_old_ref_values IS
21 SELECT *
22 FROM IGR_I_A_ITYPE
23 WHERE rowid = x_rowid;
24
25 BEGIN
26
27 l_rowid := x_rowid;
28
29 -- Code for setting the Old and New Reference Values.
30 -- Populate Old Values.
31 Open cur_old_ref_values;
32 FETCH cur_old_ref_values INTO old_references;
33 IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
34 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
35 IGS_GE_MSG_STACK.ADD;
36 Close cur_old_ref_values;
37 App_Exception.Raise_Exception;
38 Return;
39 END IF;
40 Close cur_old_ref_values;
41
42 -- Populate New Values.
43 new_references.person_id := x_person_id;
44 new_references.enquiry_appl_number := x_enquiry_appl_number;
45 new_references.INFO_TYPE_ID:= x_info_type_id;
46 IF (p_action = 'UPDATE') THEN
47 new_references.creation_date := old_references.creation_date;
48 new_references.created_by := old_references.created_by;
49 ELSE
50 new_references.creation_date := x_creation_date;
51 new_references.created_by := x_created_by;
52 END IF;
53 new_references.last_update_date := x_last_update_date;
54 new_references.last_updated_by := x_last_updated_by;
55 new_references.last_update_login := x_last_update_login;
56
57 END Set_Column_Values;
58 PROCEDURE BeforeRowInsertUpdateDelete1(
59 p_inserting IN BOOLEAN DEFAULT FALSE,
60 p_updating IN BOOLEAN DEFAULT FALSE,
61 p_deleting IN BOOLEAN DEFAULT FALSE
62 ) as
63 CURSOR c_deceased(cp_party_id igs_pe_hz_parties.party_id%TYPE) IS
64 SELECT deceased_ind
65 FROM igs_pe_hz_parties
66 WHERE party_id = cp_party_id;
67
68 CURSOR c_information_type (p_info_type_id igr_i_info_types_v.info_type_id%TYPE) IS
69 SELECT information_type
70 FROM igr_i_info_types_v
71 WHERE info_type_id =p_info_type_id ;
72
73 v_deceased_ind igs_pe_hz_parties.deceased_ind%TYPE;
74 v_message_name varchar2(30);
75 p_enquiry_information_type igr_i_info_types_v.information_type%TYPE;
76 BEGIN
77 -- Fetch the Deceased Indicator
78 OPEN c_deceased(new_references.person_id);
79 FETCH c_deceased INTO v_deceased_ind;
80 CLOSE c_deceased;
81 -- Validate that inserts/updates/deletes are allowed if a person is deceased
82 -- Validate that the person is not deceased
83 IF v_deceased_ind = 'Y' THEN
84 Fnd_Message.Set_Name('IGS', 'IGS_IN_DEC_NO_INQ');
85 IGS_GE_MSG_STACK.ADD;
86 App_Exception.Raise_Exception;
87 END IF;
88
89 -- Insert IGS_IN_APPLML_PKGITM records for the information_type.
90 IF p_inserting THEN
91 OPEN c_information_type(new_references.info_type_id);
92 FETCH c_information_type INTO p_enquiry_information_type ;
93 CLOSE c_information_type;
94
95 IF IGR_GEN_001.ADMP_INS_EAP_EITPI(new_references.person_id,
96 new_references.enquiry_appl_number,
97 p_enquiry_information_type,
98 v_message_name) = FALSE THEN
99 Fnd_Message.Set_Name('IGS', v_message_name);
100 IGS_GE_MSG_STACK.ADD;
101 App_Exception.Raise_Exception;
102 END IF;
103 END IF;
104
105 END BeforeRowInsertUpdateDelete1;
106
107
108 PROCEDURE Check_Parent_Existance as
109 BEGIN
110
111 IF (((old_references.person_id = new_references.person_id) AND
112 (old_references.enquiry_appl_number = new_references.enquiry_appl_number)) OR
113 ((new_references.person_id IS NULL) OR
114 (new_references.enquiry_appl_number IS NULL))) THEN
115 NULL;
116 ELSE
117 IF NOT(IGR_I_APPL_PKG.Get_PK_For_Validation (
118 new_references.person_id,
119 new_references.enquiry_appl_number
120 ))THEN
121 FND_MESSAGE.SET_NAME('IGS','IGS_GE_PK_UK_NOT_FOUND');
122 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',FND_MESSAGE.GET_STRING('IGS','IGS_AD_ENQ_APPL'));
123 IGS_GE_MSG_STACK.ADD;
124 App_Exception.Raise_Exception;
125 END IF;
126
127 END IF;
128
129 IF (((old_references.INFO_TYPE_ID = new_references.INFO_TYPE_ID)) OR
130 ((new_references.INFO_TYPE_ID IS NULL))) THEN
131 NULL;
132 ELSE
133 IF NOT(IGR_I_PKG_ITEM_PKG.Get_PK_For_Validation (
134 new_references.INFO_TYPE_ID
135 ))THEN
136 FND_MESSAGE.SET_NAME('IGS','IGS_GE_PK_UK_NOT_FOUND');
137 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',FND_MESSAGE.GET_STRING('IGS','IGS_AD_ENQ_INFO_TYPE'));
138 IGS_GE_MSG_STACK.ADD;
139 App_Exception.Raise_Exception;
140 END IF ;
141 END IF;
142
143 END Check_Parent_Existance;
144
145 PROCEDURE Check_Constraints (
146 Column_Name IN VARCHAR2 DEFAULT NULL,
147 Column_Value IN VARCHAR2 DEFAULT NULL
148 ) as
149 BEGIN
150 IF column_name is null then
151 NULL;
152 ELSIF upper(Column_name) = 'INFO_TYPE_ID' then
153 new_references.INFO_TYPE_ID:= column_value;
154 END IF;
155 IF upper(column_name) = 'INFO_TYPE_ID' OR
156 column_name is null Then
157 IF new_references.INFO_TYPE_ID <> UPPER(new_references.INFO_TYPE_ID) Then
158 FND_MESSAGE.SET_NAME('IGS','IGS_GE_INVALID_VALUE_WITH_CTXT');
159 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',FND_MESSAGE.GET_STRING('IGS','IGS_AD_ENQ_INFO_TYPE'));
160 IGS_GE_MSG_STACK.ADD;
161 App_Exception.Raise_Exception;
162 END IF;
163 END IF;
164
165 END Check_Constraints;
166
167
168 FUNCTION Get_PK_For_Validation (
169 x_person_id IN NUMBER,
170 x_enquiry_appl_number IN NUMBER,
171 x_info_type_id IN VARCHAR2
172 ) RETURN BOOLEAN AS
173 CURSOR cur_rowid IS
174 SELECT rowid
175 FROM IGR_I_A_ITYPE
176 WHERE person_id = x_person_id
177 AND enquiry_appl_number = x_enquiry_appl_number
178 AND INFO_TYPE_ID = x_info_type_id
179 FOR UPDATE NOWAIT;
180
181 lv_rowid cur_rowid%RowType;
182
183 BEGIN
184
185 Open cur_rowid;
186 Fetch cur_rowid INTO lv_rowid;
187 IF (cur_rowid%FOUND) THEN
188 Close cur_rowid;
189 Return (TRUE);
190 ELSE
191 Close cur_rowid;
192 Return (FALSE);
193 END IF;
194
195 END Get_PK_For_Validation;
196
197 PROCEDURE GET_FK_IGR_I_APPL (
198 x_person_id IN NUMBER,
199 x_enquiry_appl_number IN NUMBER
200 ) as
201
202 CURSOR cur_rowid IS
203 SELECT rowid
204 FROM IGR_I_A_ITYPE
205 WHERE person_id = x_person_id
206 AND enquiry_appl_number = x_enquiry_appl_number ;
207
208 lv_rowid cur_rowid%RowType;
209
210 BEGIN
211
212 Open cur_rowid;
213 Fetch cur_rowid INTO lv_rowid;
214 IF (cur_rowid%FOUND) THEN
215 Fnd_Message.Set_Name ('IGS', 'IGS_IN_EAPIT_EAP_FK');
216 IGS_GE_MSG_STACK.ADD;
217 Close cur_rowid;
218 App_Exception.Raise_Exception;
219 Return;
220 END IF;
221 Close cur_rowid;
222
223 END GET_FK_IGR_I_APPL;
224
225 PROCEDURE GET_FK_IGR_I_A_ITYPE (
226 x_info_type_id IN VARCHAR2
227 ) as
228
229 CURSOR cur_rowid IS
230 SELECT rowid
231 FROM IGR_I_A_ITYPE
232 WHERE INFO_TYPE_ID = x_info_type_id ;
233
234 lv_rowid cur_rowid%RowType;
235
236 BEGIN
237
238 Open cur_rowid;
239 Fetch cur_rowid INTO lv_rowid;
240 IF (cur_rowid%FOUND) THEN
241 Fnd_Message.Set_Name ('IGS', 'IGS_IN_EAPIT_EIT_FK');
242 IGS_GE_MSG_STACK.ADD;
243 Close cur_rowid;
244 App_Exception.Raise_Exception;
245 Return;
246 END IF;
247 Close cur_rowid;
248
249 END GET_FK_IGR_I_A_ITYPE;
250
251 PROCEDURE Before_DML (
252 p_action IN VARCHAR2,
253 x_rowid IN VARCHAR2 DEFAULT NULL,
254 x_person_id IN NUMBER DEFAULT NULL,
255 x_enquiry_appl_number IN NUMBER DEFAULT NULL,
256 x_info_type_id IN VARCHAR2 DEFAULT NULL,
257 x_creation_date IN DATE DEFAULT NULL,
258 x_created_by IN NUMBER DEFAULT NULL,
259 x_last_update_date IN DATE DEFAULT NULL,
260 x_last_updated_by IN NUMBER DEFAULT NULL,
261 x_last_update_login IN NUMBER DEFAULT NULL
262 ) as
263 BEGIN
264
265 Set_Column_Values (
266 p_action,
267 x_rowid,
268 x_person_id,
269 x_enquiry_appl_number,
270 x_info_type_id,
271 x_creation_date,
272 x_created_by,
273 x_last_update_date,
274 x_last_updated_by,
275 x_last_update_login
276 );
277
278 IF (p_action = 'INSERT') THEN
279 -- Call all the procedures related to Before Insert.
280 BeforeRowInsertUpdateDelete1 ( p_inserting => TRUE );
281 IF Get_PK_For_Validation (
282 new_references.person_id ,
283 new_references.enquiry_appl_number ,
284 new_references.INFO_TYPE_ID
285 ) THEN
286 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
287 IGS_GE_MSG_STACK.ADD;
288 App_Exception.Raise_Exception;
289 END IF;
290 Check_Constraints;
291 Check_Parent_Existance;
292 ELSIF (p_action = 'UPDATE') THEN
293 -- Call all the procedures related to Before Update.
294 BeforeRowInsertUpdateDelete1 ( p_updating => TRUE );
295 Check_Constraints;
296 Check_Parent_Existance;
297 ELSIF (p_action = 'DELETE') THEN
298 -- Call all the procedures related to Before Delete.
299 BeforeRowInsertUpdateDelete1 ( p_deleting => TRUE );
300 ELSIF (p_action = 'VALIDATE_INSERT') THEN
301 IF Get_PK_For_Validation (
302 new_references.person_id ,
303 new_references.enquiry_appl_number ,
304 new_references.INFO_TYPE_ID
305 ) THEN
306 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
307 IGS_GE_MSG_STACK.ADD;
308 App_Exception.Raise_Exception;
309 END IF;
310 Check_Constraints;
311 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
312 Check_Constraints;
313 ELSIF (p_action = 'VALIDATE_DELETE') THEN
314 NULL;
315 END IF;
316
317 END Before_DML;
318
319
320 procedure INSERT_ROW (
321 X_ROWID in out NOCOPY VARCHAR2,
322 X_PERSON_ID in NUMBER,
323 X_ENQUIRY_APPL_NUMBER in NUMBER,
324 x_info_type_id in VARCHAR2,
325 X_MODE in VARCHAR2 default 'R'
326 ) as
327 cursor C is select ROWID from IGR_I_A_ITYPE
328 where PERSON_ID = X_PERSON_ID
329 and ENQUIRY_APPL_NUMBER = X_ENQUIRY_APPL_NUMBER
330 and INFO_TYPE_ID = x_info_type_id;
331 X_LAST_UPDATE_DATE DATE;
332 X_LAST_UPDATED_BY NUMBER;
333 X_LAST_UPDATE_LOGIN NUMBER;
334 begin
335 X_LAST_UPDATE_DATE := SYSDATE;
336 if(X_MODE = 'I') then
337 X_LAST_UPDATED_BY := 1;
338 X_LAST_UPDATE_LOGIN := 0;
339 elsif (X_MODE = 'R') then
340 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
341 if X_LAST_UPDATED_BY is NULL then
342 X_LAST_UPDATED_BY := -1;
343 end if;
344 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
345 if X_LAST_UPDATE_LOGIN is NULL then
346 X_LAST_UPDATE_LOGIN := -1;
347 end if;
348 else
349 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
350 IGS_GE_MSG_STACK.ADD;
351 app_exception.raise_exception;
352 end if;
353
354 Before_DML(
355 p_action=>'INSERT',
356 x_rowid=>X_ROWID,
357 x_enquiry_appl_number=>X_ENQUIRY_APPL_NUMBER,
358 x_info_type_id=>x_info_type_id,
359 x_person_id=>X_PERSON_ID,
360 x_creation_date=>X_LAST_UPDATE_DATE,
361 x_created_by=>X_LAST_UPDATED_BY,
362 x_last_update_date=>X_LAST_UPDATE_DATE,
363 x_last_updated_by=>X_LAST_UPDATED_BY,
364 x_last_update_login=>X_LAST_UPDATE_LOGIN
365 );
366
367 insert into IGR_I_A_ITYPE (
368 PERSON_ID,
369 ENQUIRY_APPL_NUMBER,
370 INFO_TYPE_ID,
371 CREATION_DATE,
372 CREATED_BY,
373 LAST_UPDATE_DATE,
374 LAST_UPDATED_BY,
375 LAST_UPDATE_LOGIN
376 ) values (
377 NEW_REFERENCES.PERSON_ID,
378 NEW_REFERENCES.ENQUIRY_APPL_NUMBER,
379 NEW_REFERENCES.INFO_TYPE_ID,
380 X_LAST_UPDATE_DATE,
381 X_LAST_UPDATED_BY,
382 X_LAST_UPDATE_DATE,
383 X_LAST_UPDATED_BY,
384 X_LAST_UPDATE_LOGIN
385 );
386
387 open c;
388 fetch c into X_ROWID;
389 if (c%notfound) then
390 close c;
391 raise no_data_found;
392 end if;
393 close c;
394 end INSERT_ROW;
395
396 procedure LOCK_ROW (
397 X_ROWID in VARCHAR2,
398 X_PERSON_ID in NUMBER,
399 X_ENQUIRY_APPL_NUMBER in NUMBER,
400 x_info_type_id in VARCHAR2
401 ) as
402 cursor c1 is select ROWID
403 from IGR_I_A_ITYPE
404 where ROWID = X_ROWID
405 for update nowait;
406 tlinfo c1%rowtype;
407
408 begin
409 open c1;
410 fetch c1 into tlinfo;
411 if (c1%notfound) then
412 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
413 IGS_GE_MSG_STACK.ADD;
414 close c1;
415 app_exception.raise_exception;
416 return;
417 end if;
418 close c1;
419
420 return;
421 end LOCK_ROW;
422
423 procedure DELETE_ROW (
424 X_ROWID in VARCHAR2
425 ) as
426 begin
427 Before_DML(
428 p_action => 'DELETE',
429 x_rowid => X_ROWID
430 );
431 delete from IGR_I_A_ITYPE
432 where ROWID = X_ROWID;
433 if (sql%notfound) then
434 raise no_data_found;
435 end if;
436 end DELETE_ROW;
437
438 end IGR_I_A_ITYPE_Pkg;