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