[Home] [Help]
PACKAGE BODY: APPS.IGS_ST_CITIZENSHP_CD_PKG
Source
1 package body IGS_ST_CITIZENSHP_CD_PKG as
2 /* $Header: IGSVI01B.pls 115.7 2002/12/24 05:45:22 npalanis ship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references IGS_ST_CITIZENSHP_CD%RowType;
6 new_references IGS_ST_CITIZENSHP_CD%RowType;
7
8 PROCEDURE Set_Column_Values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2 DEFAULT NULL,
11 x_citizenship_cd IN VARCHAR2 DEFAULT NULL,
12 x_govt_citizenship_cd IN NUMBER DEFAULT NULL,
13 x_description IN VARCHAR2 DEFAULT NULL,
14 x_closed_ind IN VARCHAR2 DEFAULT NULL,
15 x_notes IN VARCHAR2 DEFAULT NULL,
16 x_creation_date IN DATE DEFAULT NULL,
17 x_created_by IN NUMBER DEFAULT NULL,
18 x_last_update_date IN DATE DEFAULT NULL,
19 x_last_updated_by IN NUMBER DEFAULT NULL,
20 x_last_update_login IN NUMBER DEFAULT NULL
21 ) as
22
23 CURSOR cur_old_ref_values IS
24 SELECT *
25 FROM IGS_ST_CITIZENSHP_CD
26 WHERE rowid = x_rowid;
27
28 BEGIN
29
30 l_rowid := x_rowid;
31
32 -- Code for setting the Old and New Reference Values.
33 -- Populate Old Values.
34 Open cur_old_ref_values;
35 Fetch cur_old_ref_values INTO old_references;
36 IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
37 Close cur_old_ref_values;
38 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
39 IGS_GE_MSG_STACK.ADD;
40 App_Exception.Raise_Exception;
41 Return;
42 END IF;
43 Close cur_old_ref_values;
44
45 -- Populate New Values.
46 new_references.citizenship_cd := x_citizenship_cd;
47 new_references.govt_citizenship_cd := x_govt_citizenship_cd;
48 new_references.description := x_description;
49 new_references.closed_ind := x_closed_ind;
50 new_references.notes := x_notes;
51 IF (p_action = 'UPDATE') THEN
52 new_references.creation_date := old_references.creation_date;
53 new_references.created_by := old_references.created_by;
54 ELSE
55 new_references.creation_date := x_creation_date;
56 new_references.created_by := x_created_by;
57 END IF;
58 new_references.last_update_date := x_last_update_date;
59 new_references.last_updated_by := x_last_updated_by;
60 new_references.last_update_login := x_last_update_login;
61
62 END Set_Column_Values;
63
64 PROCEDURE BeforeRowInsertUpdate1(
65 p_inserting IN BOOLEAN DEFAULT FALSE,
66 p_updating IN BOOLEAN DEFAULT FALSE,
67 p_deleting IN BOOLEAN DEFAULT FALSE
68 ) as
69 v_message_name varchar2(30);
70 BEGIN
71
72 -- Validate GOVERNMENT CITIZENSHIP CODE.
73 IF p_inserting OR ((old_references.govt_citizenship_cd <> new_references.govt_citizenship_cd) OR
74 (new_references.closed_ind = 'Y' AND new_references.closed_ind = 'N')) THEN
75 IF IGS_EN_VAL_CIC.enrp_val_cic_govt (
76 new_references.govt_citizenship_cd,
77 v_message_name) = FALSE THEN
78 Fnd_Message.Set_Name('IGS',v_message_name);
79 IGS_GE_MSG_STACK.ADD;
80 App_Exception.Raise_Exception;
81 END IF;
82 END IF;
83
84 END BeforeRowInsertUpdate1;
85
86 PROCEDURE Check_Constraints (
87 Column_Name IN VARCHAR2 DEFAULT NULL ,
88 Column_Value IN VARCHAR2 DEFAULT NULL
89 ) as
90 Begin
91
92 IF Column_Name is null THEN
93 NULL;
94 ELSIF upper(Column_name) = 'CLOSED_IND' THEN
95 new_references.CLOSED_IND:= COLUMN_VALUE ;
96
97 ELSIF upper(Column_name) = 'CITIZENSHIP_CD' THEN
98 new_references.CITIZENSHIP_CD:= COLUMN_VALUE ;
99
100 END IF ;
101
102 IF upper(Column_name) = 'CLOSED_IND' OR COLUMN_NAME IS NULL THEN
103 IF new_references.CLOSED_IND<> upper(new_references.CLOSED_IND) then
104 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
105 IGS_GE_MSG_STACK.ADD;
106 App_Exception.Raise_Exception ;
107 END IF;
108
109 IF new_references.CLOSED_IND not in ('Y','N') then
110 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
111 IGS_GE_MSG_STACK.ADD;
112 App_Exception.Raise_Exception ;
113 END IF;
114
115 END IF ;
116
117 IF upper(Column_name) = 'CITIZENSHIP_CD' OR COLUMN_NAME IS NULL THEN
118 IF new_references.CITIZENSHIP_CD<> upper(new_references.CITIZENSHIP_CD) then
119 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
120 IGS_GE_MSG_STACK.ADD;
121 App_Exception.Raise_Exception ;
122 END IF;
123
124 END IF ;
125
126 END Check_Constraints;
127
128 PROCEDURE Check_Uniqueness as
129 BEGIN
130
131 IF Get_PK_For_Validation (
132 new_references.citizenship_cd ) THEN
133 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
134 IGS_GE_MSG_STACK.ADD;
135 App_Exception.Raise_Exception;
136 END IF;
137 END Check_Uniqueness ;
138
139
140 PROCEDURE Check_Parent_Existance as
141 BEGIN
142
143 IF (((old_references.govt_citizenship_cd = new_references.govt_citizenship_cd)) OR
144 ((new_references.govt_citizenship_cd IS NULL))) THEN
145 NULL;
146 ELSE
147 IF NOT IGS_PE_GOVCITIZEN_CD_PKG.Get_PK_For_Validation (
148 new_references.govt_citizenship_cd
149 ) THEN
150 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
151 IGS_GE_MSG_STACK.ADD;
152 App_Exception.Raise_Exception;
153 END IF;
154 END IF ;
155 END Check_Parent_Existance;
156
157 FUNCTION Get_PK_For_Validation (
158 x_citizenship_cd IN VARCHAR2
159 ) RETURN BOOLEAN
160 as
161
162 CURSOR cur_rowid IS
163 SELECT rowid
164 FROM IGS_ST_CITIZENSHP_CD
165 WHERE citizenship_cd = x_citizenship_cd
166 FOR UPDATE NOWAIT;
167
168 lv_rowid cur_rowid%RowType;
169
170 BEGIN
171
172 Open cur_rowid;
173 Fetch cur_rowid INTO lv_rowid;
174 IF (cur_rowid%FOUND) THEN
175 Close cur_rowid;
176 Return (TRUE);
177 ELSE
178 Close cur_rowid;
179 Return (FALSE);
180 END IF;
181
182 END Get_PK_For_Validation;
183
184 PROCEDURE GET_FK_IGS_PE_GOVCITIZEN_CD (
185 x_govt_citizenship_cd IN NUMBER
186 ) as
187
188 CURSOR cur_rowid IS
189 SELECT rowid
190 FROM IGS_ST_CITIZENSHP_CD
191 WHERE govt_citizenship_cd = x_govt_citizenship_cd ;
192
193 lv_rowid cur_rowid%RowType;
194
195 BEGIN
196
197 Open cur_rowid;
198 Fetch cur_rowid INTO lv_rowid;
199 IF (cur_rowid%FOUND) THEN
200 Close cur_rowid;
201 Fnd_Message.Set_Name ('IGS', 'IGS_ST_CIC_GCC_FK');
202 IGS_GE_MSG_STACK.ADD;
203 App_Exception.Raise_Exception;
204 Return;
205 END IF;
206 Close cur_rowid;
207
208 END GET_FK_IGS_PE_GOVCITIZEN_CD;
209
210 PROCEDURE Before_DML (
211 p_action IN VARCHAR2,
212 x_rowid IN VARCHAR2 DEFAULT NULL,
213 x_citizenship_cd IN VARCHAR2 DEFAULT NULL,
214 x_govt_citizenship_cd IN NUMBER DEFAULT NULL,
215 x_description IN VARCHAR2 DEFAULT NULL,
216 x_closed_ind IN VARCHAR2 DEFAULT NULL,
217 x_notes IN VARCHAR2 DEFAULT NULL,
218 x_creation_date IN DATE DEFAULT NULL,
219 x_created_by IN NUMBER DEFAULT NULL,
220 x_last_update_date IN DATE DEFAULT NULL,
221 x_last_updated_by IN NUMBER DEFAULT NULL,
222 x_last_update_login IN NUMBER DEFAULT NULL
223 ) as
224 BEGIN
225
226 Set_Column_Values (
227 p_action,
228 x_rowid,
229 x_citizenship_cd,
230 x_govt_citizenship_cd,
231 x_description,
232 x_closed_ind,
233 x_notes,
234 x_creation_date,
235 x_created_by,
236 x_last_update_date,
237 x_last_updated_by,
238 x_last_update_login
239 );
240
241 IF (p_action = 'INSERT') THEN
242 -- Call all the procedures related to Before Insert.
243 BeforeRowInsertUpdate1 ( p_inserting => TRUE );
244 IF Get_PK_For_Validation (
245 new_references.govt_citizenship_cd
246 ) THEN
247 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
248 IGS_GE_MSG_STACK.ADD;
249 App_Exception.Raise_Exception;
250 END IF;
251 Check_Constraints;
252 Check_Parent_Existance;
253 Check_Uniqueness;
254 ELSIF (p_action = 'UPDATE') THEN
255 -- Call all the procedures related to Before Update.
256 -- BeforeRowInsertUpdate1 ( p_updating => TRUE );
257 Check_Constraints;
258 Check_Parent_Existance;
259 -- Check_Uniqueness;
260 ELSIF (p_action = 'DELETE') THEN
261 -- Call all the procedures related to Before Delete.
262 null;
263
264 ELSIF (p_action = 'VALIDATE_INSERT') THEN
265 IF Get_PK_For_Validation (
266 new_references.govt_citizenship_cd
267 ) THEN
268 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
269 IGS_GE_MSG_STACK.ADD;
270 App_Exception.Raise_Exception;
271 END IF;
272 Check_Constraints;
273 Check_Uniqueness;
274 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
275 Check_Constraints;
276 -- Check_Uniqueness;
277 ELSIF (p_action = 'VALIDATE_DELETE') THEN
278 null;
279 END IF;
280
281 END Before_DML;
282
283 PROCEDURE After_DML (
284 p_action IN VARCHAR2,
285 x_rowid IN VARCHAR2
286 ) as
287 BEGIN
288
289 l_rowid := x_rowid;
290
291 END After_DML;
292
293 procedure INSERT_ROW (
294 X_ROWID in out NOCOPY VARCHAR2,
295 X_CITIZENSHIP_CD in VARCHAR2,
296 X_GOVT_CITIZENSHIP_CD in NUMBER,
297 X_DESCRIPTION in VARCHAR2,
298 X_CLOSED_IND in VARCHAR2,
299 X_NOTES in VARCHAR2,
300 X_MODE in VARCHAR2 default 'R'
301 ) as
302 cursor C is select ROWID from IGS_ST_CITIZENSHP_CD
303 where CITIZENSHIP_CD = X_CITIZENSHIP_CD;
304 X_LAST_UPDATE_DATE DATE;
305 X_LAST_UPDATED_BY NUMBER;
306 X_LAST_UPDATE_LOGIN NUMBER;
307 begin
308 X_LAST_UPDATE_DATE := SYSDATE;
309 if(X_MODE = 'I') then
310 X_LAST_UPDATED_BY := 1;
311 X_LAST_UPDATE_LOGIN := 0;
312 elsif (X_MODE = 'R') then
313 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
314 if X_LAST_UPDATED_BY is NULL then
315 X_LAST_UPDATED_BY := -1;
316 end if;
317 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
318 if X_LAST_UPDATE_LOGIN is NULL then
319 X_LAST_UPDATE_LOGIN := -1;
320 end if;
321 else
322 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
323 IGS_GE_MSG_STACK.ADD;
324 app_exception.raise_exception;
325 end if;
326
327 Before_DML(
328 p_action=>'INSERT' ,
329 x_rowid=>X_ROWID ,
330 x_citizenship_cd => X_CITIZENSHIP_CD ,
331 x_govt_citizenship_cd => X_GOVT_CITIZENSHIP_CD ,
332 x_description => X_DESCRIPTION,
333 x_closed_ind => NVL(X_CLOSED_IND,'N') ,
334 x_notes => X_NOTES,
335 x_creation_date => X_LAST_UPDATE_DATE ,
336 x_created_by=>X_LAST_UPDATED_BY ,
337 x_last_update_date=>X_LAST_UPDATE_DATE ,
338 x_last_updated_by=>X_LAST_UPDATED_BY ,
339 x_last_update_login=> X_LAST_UPDATE_LOGIN
340 );
341
342 insert into IGS_ST_CITIZENSHP_CD (
343 CITIZENSHIP_CD,
344 GOVT_CITIZENSHIP_CD,
345 DESCRIPTION,
346 CLOSED_IND,
347 NOTES,
348 CREATION_DATE,
349 CREATED_BY,
350 LAST_UPDATE_DATE,
351 LAST_UPDATED_BY,
352 LAST_UPDATE_LOGIN
353 ) values (
354 NEW_REFERENCES.CITIZENSHIP_CD,
355 NEW_REFERENCES.GOVT_CITIZENSHIP_CD,
356 NEW_REFERENCES.DESCRIPTION,
357 NEW_REFERENCES.CLOSED_IND,
358 NEW_REFERENCES.NOTES,
359 X_LAST_UPDATE_DATE,
360 X_LAST_UPDATED_BY,
361 X_LAST_UPDATE_DATE,
362 X_LAST_UPDATED_BY,
363 X_LAST_UPDATE_LOGIN
364 );
365
366 open c;
367 fetch c into X_ROWID;
368 if (c%notfound) then
369 close c;
370 raise no_data_found;
371 end if;
372 close c;
373
374 After_DML(
375 p_action=>'INSERT',
376 x_rowid=> X_ROWID
377 );
378 end INSERT_ROW;
379
380 procedure LOCK_ROW (
381 X_ROWID in VARCHAR2,
382 X_CITIZENSHIP_CD in VARCHAR2,
383 X_GOVT_CITIZENSHIP_CD in NUMBER,
384 X_DESCRIPTION in VARCHAR2,
385 X_CLOSED_IND in VARCHAR2,
386 X_NOTES in VARCHAR2
387 ) as
388 cursor c1 is select
389 GOVT_CITIZENSHIP_CD,
390 DESCRIPTION,
391 CLOSED_IND,
392 NOTES
393 from IGS_ST_CITIZENSHP_CD
394 where ROWID = X_ROWID for update nowait;
395 tlinfo c1%rowtype;
396
397 begin
398 open c1;
399 fetch c1 into tlinfo;
400 if (c1%notfound) then
401 close c1;
402 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
403 IGS_GE_MSG_STACK.ADD;
404 app_exception.raise_exception;
405 return;
406 end if;
407 close c1;
408
409 if ( (tlinfo.GOVT_CITIZENSHIP_CD = X_GOVT_CITIZENSHIP_CD)
410 AND (tlinfo.DESCRIPTION = X_DESCRIPTION)
411 AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
412 AND ((tlinfo.NOTES = X_NOTES)
413 OR ((tlinfo.NOTES is null)
414 AND (X_NOTES is null)))
415 ) then
416 null;
417 else
418 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
419 IGS_GE_MSG_STACK.ADD;
420 app_exception.raise_exception;
421 end if;
422 return;
423 end LOCK_ROW;
424
425 procedure UPDATE_ROW (
426 X_ROWID in VARCHAR2,
427 X_CITIZENSHIP_CD in VARCHAR2,
428 X_GOVT_CITIZENSHIP_CD in NUMBER,
429 X_DESCRIPTION in VARCHAR2,
430 X_CLOSED_IND in VARCHAR2,
431 X_NOTES in VARCHAR2,
432 X_MODE in VARCHAR2 default 'R'
433 ) as
434 X_LAST_UPDATE_DATE DATE;
435 X_LAST_UPDATED_BY NUMBER;
436 X_LAST_UPDATE_LOGIN NUMBER;
437 begin
438 X_LAST_UPDATE_DATE := SYSDATE;
439 if(X_MODE = 'I') then
440 X_LAST_UPDATED_BY := 1;
441 X_LAST_UPDATE_LOGIN := 0;
442 elsif (X_MODE = 'R') then
443 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
444 if X_LAST_UPDATED_BY is NULL then
445 X_LAST_UPDATED_BY := -1;
446 end if;
447 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
448 if X_LAST_UPDATE_LOGIN is NULL then
449 X_LAST_UPDATE_LOGIN := -1;
450 end if;
451 else
452 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
453 IGS_GE_MSG_STACK.ADD;
454 app_exception.raise_exception;
455 end if;
456
457 Before_DML(
458 p_action=>'UPDATE' ,
459 x_rowid=>X_ROWID ,
460 x_citizenship_cd => x_citizenship_cd ,
461 x_govt_citizenship_cd => x_govt_citizenship_cd ,
462 x_description => x_description ,
463 x_closed_ind => x_closed_ind ,
464 x_notes => x_notes ,
465 x_creation_date => X_LAST_UPDATE_DATE ,
466 x_created_by=>X_LAST_UPDATED_BY,
467 x_last_update_date=>X_LAST_UPDATE_DATE ,
468 x_last_updated_by=>X_LAST_UPDATED_BY ,
469 x_last_update_login=> X_LAST_UPDATE_LOGIN
470 );
471
472 update IGS_ST_CITIZENSHP_CD set
473 GOVT_CITIZENSHIP_CD = NEW_REFERENCES.GOVT_CITIZENSHIP_CD,
474 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
475 CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
476 NOTES = NEW_REFERENCES.NOTES,
477 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
478 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
479 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
480 where ROWID = X_ROWID
481 ;
482 if (sql%notfound) then
483 raise no_data_found;
484 end if;
485
486 After_DML(
487 p_action=>'UPDATE',
488 x_rowid=> X_ROWID
489 );
490
491 end UPDATE_ROW;
492
493 procedure ADD_ROW (
494 X_ROWID in out NOCOPY VARCHAR2,
495 X_CITIZENSHIP_CD in VARCHAR2,
496 X_GOVT_CITIZENSHIP_CD in NUMBER,
497 X_DESCRIPTION in VARCHAR2,
498 X_CLOSED_IND in VARCHAR2,
499 X_NOTES in VARCHAR2,
500 X_MODE in VARCHAR2 default 'R'
501 ) as
502 cursor c1 is select rowid from IGS_ST_CITIZENSHP_CD
503 where CITIZENSHIP_CD = X_CITIZENSHIP_CD
504 ;
505
506 begin
507 open c1;
508 fetch c1 into X_ROWID;
509 if (c1%notfound) then
510 close c1;
511 INSERT_ROW (
512 X_ROWID,
513 X_CITIZENSHIP_CD,
514 X_GOVT_CITIZENSHIP_CD,
515 X_DESCRIPTION,
516 X_CLOSED_IND,
517 X_NOTES,
518 X_MODE);
519 return;
520 end if;
521 close c1;
522 UPDATE_ROW (
523 X_ROWID,
524 X_CITIZENSHIP_CD,
525 X_GOVT_CITIZENSHIP_CD,
526 X_DESCRIPTION,
527 X_CLOSED_IND,
528 X_NOTES,
529 X_MODE);
530 end ADD_ROW;
531
532 procedure DELETE_ROW (
533 X_ROWID in VARCHAR2
534 ) as
535 begin
536
537 Before_DML(
538 p_action=>'DELETE',
539 x_rowid=> X_ROWID
540 );
541
542 delete from IGS_ST_CITIZENSHP_CD
543 where ROWID = X_ROWID;
544 if (sql%notfound) then
545 raise no_data_found;
546 end if;
547
548 After_DML(
549 p_action=>'DELETE',
550 x_rowid=> X_ROWID
551 );
552
553
554 end DELETE_ROW;
555
556 end IGS_ST_CITIZENSHP_CD_PKG;