[Home] [Help]
PACKAGE BODY: APPS.IGS_AD_LOCATION_TYPE_PKG
Source
1 package body IGS_AD_LOCATION_TYPE_PKG as
2 /* $Header: IGSAI43B.pls 115.8 2003/10/30 13:12:54 akadam ship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references igs_ad_location_type_all%RowType;
6 new_references igs_ad_location_type_all%RowType;
7
8 PROCEDURE Set_Column_Values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2 DEFAULT NULL,
11 x_org_id IN NUMBER DEFAULT NULL,
12 x_location_type IN VARCHAR2 DEFAULT NULL,
13 x_description IN VARCHAR2 DEFAULT NULL,
14 x_s_location_type IN VARCHAR2 DEFAULT NULL,
15 x_closed_ind 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_ad_location_type_all
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.org_id := x_org_id;
47 new_references.location_type := x_location_type;
48 new_references.description := x_description;
49 new_references.s_location_type := x_s_location_type;
50 new_references.closed_ind := x_closed_ind;
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 -- Validate that inserts/updates are allowed
72 IF p_inserting OR p_updating THEN
73 IF NVL(old_references.s_location_type, '-1') <> NVL(new_references.s_location_type, '-1') THEN
74 IF IGS_OR_VAL_LOT.assp_val_lot_loc (
75 new_references.location_type,
76 v_message_name) = FALSE THEN
77 Fnd_Message.Set_Name('IGS',v_message_name);
78 IGS_GE_MSG_STACK.ADD;
79 App_Exception.Raise_Exception;
80 END IF;
81 END IF;
82 END IF;
83
84
85 END BeforeRowInsertUpdate1;
86
87 procedure Check_Constraints (
88 Column_Name IN VARCHAR2 DEFAULT NULL,
89 Column_Value IN VARCHAR2 DEFAULT NULL
90 )
91 as
92 BEGIN
93 IF Column_Name is null then
94 NULL;
95 ELSIF upper(Column_Name) = 'CLOSED_IND' then
96 new_references.closed_ind := column_value;
97 ELSIF Column_Name = 'DESCRIPTION' then
98 new_references.description := column_value;
99 ELSIF upper(Column_Name) = 'LOCATION_TYPE' then
100 new_references.location_type := column_value;
101 ELSIF upper(Column_Name) = 'S_LOCATION_TYPE' then
102 new_references.s_location_type := column_value;
103 END IF;
104
105 IF upper(Column_Name) = 'CLOSED_IND' OR Column_Name IS NULL THEN
106 IF new_references.closed_ind NOT IN ('Y','N') THEN
107 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
108 IGS_GE_MSG_STACK.ADD;
109 App_Exception.Raise_Exception;
110 END IF;
111 END IF;
112 IF Column_Name = 'DESCRIPTION' OR Column_Name IS NULL THEN
113 IF new_references.description <> new_references.description THEN
114 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
115 IGS_GE_MSG_STACK.ADD;
116 App_Exception.Raise_Exception;
117 END IF;
118 END IF;
119 IF upper(Column_Name) = 'LOCATION_TYPE' OR Column_Name IS NULL THEN
120 IF new_references.location_type <> UPPER(new_references.location_type) THEN
121 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
122 IGS_GE_MSG_STACK.ADD;
123 App_Exception.Raise_Exception;
124 END IF;
125 END IF;
126 IF upper(Column_Name) = 'S_LOCATION_TYPE' OR Column_Name IS NULL THEN
127 IF new_references.s_location_type <> UPPER(new_references.s_location_type) THEN
128 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
129 IGS_GE_MSG_STACK.ADD;
130 App_Exception.Raise_Exception;
131 END IF;
132 END IF;
133
134 END Check_Constraints;
135
136 PROCEDURE Check_Parent_Existance as
137 BEGIN
138
139 IF (((old_references.s_location_type = new_references.s_location_type)) OR
140 ((new_references.s_location_type IS NULL))) THEN
141 NULL;
142 ELSE
143 IF NOT IGS_LOOKUPS_VIEW_PKG.Get_PK_For_Validation (
144 'LOCATION_TYPE',new_references.s_location_type
145 ) THEN
146 Fnd_Message.Set_Name('FND','FORM_RECORD_DELETED');
147 IGS_GE_MSG_STACK.ADD;
148 App_Exception.Raise_Exception;
149 END IF;
150 END IF;
151
152 END Check_Parent_Existance;
153
154 PROCEDURE Check_Child_Existance as
155 BEGIN
156
157 IGS_AD_LOCATION_PKG.GET_FK_IGS_AD_LOCATION_TYPE (
158 old_references.location_type
159 );
160
161 END Check_Child_Existance;
162
163 FUNCTION Get_PK_For_Validation (
164 x_location_type IN VARCHAR2,
165 x_closed_ind IN VARCHAR2
166 )return BOOLEAN as
167
168 CURSOR cur_rowid IS
169 SELECT rowid
170 FROM igs_ad_location_type_all
171 WHERE location_type = x_location_type AND
172 closed_ind = NVL(x_closed_ind,closed_ind)
173 FOR UPDATE NOWAIT;
174
175 lv_rowid cur_rowid%RowType;
176
177 BEGIN
178
179 Open cur_rowid;
180 Fetch cur_rowid INTO lv_rowid;
181 IF (cur_rowid%FOUND) THEN
182 Close cur_rowid;
183 Return(TRUE);
184 ELSE
185 Close cur_rowid;
186 Return(FALSE);
187 END IF;
188
189 END Get_PK_For_Validation;
190
191 PROCEDURE GET_FK_IGS_LOOKUPS_VIEW (
192 x_s_location_type IN VARCHAR2
193 ) as
194
195 CURSOR cur_rowid IS
196 SELECT rowid
197 FROM igs_ad_location_type_all
198 WHERE s_location_type = x_s_location_type ;
199
200 lv_rowid cur_rowid%RowType;
201
202 BEGIN
203
204 Open cur_rowid;
205 Fetch cur_rowid INTO lv_rowid;
206 IF (cur_rowid%FOUND) THEN
207 Close cur_rowid;
208 Fnd_Message.Set_Name ('IGS', 'IGS_AD_LOT_SLV_FK');
209 IGS_GE_MSG_STACK.ADD;
210 App_Exception.Raise_Exception;
211 Return;
212 END IF;
213 Close cur_rowid;
214
215 END GET_FK_IGS_LOOKUPS_VIEW;
216
217
218 PROCEDURE Before_DML (
219 p_action IN VARCHAR2,
220 x_rowid IN VARCHAR2 DEFAULT NULL,
221 x_org_id IN NUMBER DEFAULT NULL,
222 x_location_type IN VARCHAR2 DEFAULT NULL,
223 x_description IN VARCHAR2 DEFAULT NULL,
224 x_s_location_type IN VARCHAR2 DEFAULT NULL,
225 x_closed_ind IN VARCHAR2 DEFAULT NULL,
226 x_creation_date IN DATE DEFAULT NULL,
227 x_created_by IN NUMBER DEFAULT NULL,
228 x_last_update_date IN DATE DEFAULT NULL,
229 x_last_updated_by IN NUMBER DEFAULT NULL,
230 x_last_update_login IN NUMBER DEFAULT NULL
231 ) as
232 BEGIN
233
234 Set_Column_Values (
235 p_action,
236 x_rowid,
237 x_org_id,
238 x_location_type,
239 x_description,
240 x_s_location_type,
241 x_closed_ind,
242 x_creation_date,
243 x_created_by,
244 x_last_update_date,
245 x_last_updated_by,
246 x_last_update_login
247 );
248
249 IF (p_action = 'INSERT') THEN
250 BeforeRowInsertUpdate1 ( p_inserting => TRUE );
251 IF Get_PK_For_Validation (
252 new_references.location_type
253 ) THEN
254 Fnd_Message.Set_Name('IGS','IGS_GE_MULTI_ORG_DUP_REC');
255 IGS_GE_MSG_STACK.ADD;
256 App_Exception.Raise_Exception;
257 END IF;
258 Check_Constraints;
259 Check_Parent_Existance;
260 ELSIF (p_action = 'UPDATE') THEN
261 BeforeRowInsertUpdate1 ( p_updating => TRUE );
262 Check_Constraints;
263 Check_Parent_Existance;
264 ELSIF (p_action = 'DELETE') THEN
265 Check_Child_Existance;
266 ELSIF (p_action = 'VALIDATE_INSERT') THEN
267 IF Get_PK_For_Validation (
268 new_references.location_type
269 ) THEN
270 Fnd_Message.Set_Name('IGS','IGS_GE_MULTI_ORG_DUP_REC');
271 IGS_GE_MSG_STACK.ADD;
272 App_Exception.Raise_Exception;
273 END IF;
274 Check_Constraints;
275 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
276 Check_Constraints;
277 ELSIF (p_action = 'VALIDATE_DELETE') THEN
278 Check_Child_Existance;
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
294 procedure INSERT_ROW (
295 X_ROWID in out NOCOPY VARCHAR2,
296 X_ORG_ID in NUMBER,
297 X_LOCATION_TYPE in VARCHAR2,
298 X_DESCRIPTION in VARCHAR2,
299 X_S_LOCATION_TYPE in VARCHAR2,
300 X_CLOSED_IND in VARCHAR2,
301 X_MODE in VARCHAR2 default 'R'
302 ) as
303 cursor C is select ROWID from igs_ad_location_type_all
304 where LOCATION_TYPE = X_LOCATION_TYPE;
305 X_LAST_UPDATE_DATE DATE;
306 X_LAST_UPDATED_BY NUMBER;
307 X_LAST_UPDATE_LOGIN NUMBER;
308 begin
309 X_LAST_UPDATE_DATE := SYSDATE;
310 if(X_MODE = 'I') then
311 X_LAST_UPDATED_BY := 1;
312 X_LAST_UPDATE_LOGIN := 0;
313 elsif (X_MODE = 'R') then
314 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
315 if X_LAST_UPDATED_BY is NULL then
316 X_LAST_UPDATED_BY := -1;
317 end if;
318 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
319 if X_LAST_UPDATE_LOGIN is NULL then
320 X_LAST_UPDATE_LOGIN := -1;
321 end if;
322 else
323 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
324 IGS_GE_MSG_STACK.ADD;
325 app_exception.raise_exception;
326 end if;
327
328 Before_DML(
329 p_action=>'INSERT' ,
330 x_rowid=>X_ROWID ,
331 x_org_id=>igs_ge_gen_003.get_org_id,
332 x_location_type => X_LOCATION_TYPE ,
333 x_description => X_DESCRIPTION,
334 x_s_location_type => X_S_LOCATION_TYPE ,
335 x_closed_ind => NVL(X_CLOSED_IND,'N'),
336 x_creation_date=>X_LAST_UPDATE_DATE ,
337 x_created_by=>X_LAST_UPDATED_BY ,
338 x_last_update_date=>X_LAST_UPDATE_DATE ,
339 x_last_updated_by=>X_LAST_UPDATED_BY ,
340 x_last_update_login=> X_LAST_UPDATE_LOGIN
341 );
342
343
344 insert into igs_ad_location_type_all (
345 LOCATION_TYPE,
346 DESCRIPTION,
347 S_LOCATION_TYPE,
348 CLOSED_IND,
349 CREATION_DATE,
350 CREATED_BY,
351 LAST_UPDATE_DATE,
352 LAST_UPDATED_BY,
353 LAST_UPDATE_LOGIN,
354 ORG_ID
355 ) values (
356 NEW_REFERENCES.LOCATION_TYPE,
357 NEW_REFERENCES.DESCRIPTION,
358 NEW_REFERENCES.S_LOCATION_TYPE,
359 NEW_REFERENCES.CLOSED_IND,
360 X_LAST_UPDATE_DATE,
361 X_LAST_UPDATED_BY,
362 X_LAST_UPDATE_DATE,
363 X_LAST_UPDATED_BY,
364 X_LAST_UPDATE_LOGIN,
365 NEW_REFERENCES.ORG_ID
366 );
367
368 open c;
369 fetch c into X_ROWID;
370 if (c%notfound) then
371 close c;
372 raise no_data_found;
373 end if;
374 close c;
375
376 After_DML(
377 p_action=>'INSERT',
378 x_rowid=> X_ROWID
379 );
380
381
382 end INSERT_ROW;
383
384 procedure LOCK_ROW (
385 X_ROWID in VARCHAR2 ,
386 X_LOCATION_TYPE in VARCHAR2,
387 X_DESCRIPTION in VARCHAR2,
388 X_S_LOCATION_TYPE in VARCHAR2,
389 X_CLOSED_IND in VARCHAR2
390 ) as
391 cursor c1 is select
392 DESCRIPTION,
393 S_LOCATION_TYPE,
394 CLOSED_IND
395 from igs_ad_location_type_all
396 WHERE ROWID = X_ROWID for update nowait ;
397 tlinfo c1%rowtype;
398
399 begin
400 open c1;
401 fetch c1 into tlinfo;
402 if (c1%notfound) then
403 close c1;
404 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
405 IGS_GE_MSG_STACK.ADD;
406 app_exception.raise_exception;
407 return;
408 end if;
409 close c1;
410
411 if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
412 AND ((tlinfo.S_LOCATION_TYPE = X_S_LOCATION_TYPE)
413 OR ((tlinfo.S_LOCATION_TYPE is null)
414 AND (X_S_LOCATION_TYPE is null)))
415 AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
416 ) then
417 null;
418 else
419 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
420 IGS_GE_MSG_STACK.ADD;
421 app_exception.raise_exception;
422 end if;
423 return;
424 end LOCK_ROW;
425
426 procedure UPDATE_ROW (
427 X_ROWID in VARCHAR2 ,
428 X_LOCATION_TYPE in VARCHAR2,
429 X_DESCRIPTION in VARCHAR2,
430 X_S_LOCATION_TYPE in VARCHAR2,
431 X_CLOSED_IND 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
458 Before_DML(
459 p_action=>'UPDATE' ,
460 x_rowid=>X_ROWID ,
461 x_location_type => x_location_type ,
462 x_description => x_description ,
463 x_s_location_type => x_s_location_type ,
464 x_closed_ind => x_closed_ind ,
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_ad_location_type_all set
473 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
474 S_LOCATION_TYPE = NEW_REFERENCES.S_LOCATION_TYPE,
475 CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
476 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
477 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
478 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
479 where ROWID = X_ROWID ;
480 if (sql%notfound) then
481 raise no_data_found;
482 end if;
483
484
485 After_DML(
486 p_action=>'UPDATE',
487 x_rowid=> X_ROWID
488 );
489
490 end UPDATE_ROW;
491
492 procedure ADD_ROW (
493 X_ROWID in out NOCOPY VARCHAR2,
494 X_ORG_ID in NUMBER,
495 X_LOCATION_TYPE in VARCHAR2,
496 X_DESCRIPTION in VARCHAR2,
497 X_S_LOCATION_TYPE in VARCHAR2,
498 X_CLOSED_IND in VARCHAR2,
499 X_MODE in VARCHAR2 default 'R'
500 ) as
501 cursor c1 is select rowid from igs_ad_location_type_all
502 where LOCATION_TYPE = X_LOCATION_TYPE
503 ;
504
505 begin
506 open c1;
507 fetch c1 into X_ROWID;
508 if (c1%notfound) then
509 close c1;
510 INSERT_ROW (
511 X_ROWID,
512 X_ORG_ID,
513 X_LOCATION_TYPE,
514 X_DESCRIPTION,
515 X_S_LOCATION_TYPE,
516 X_CLOSED_IND,
517 X_MODE);
518 return;
519 end if;
520 close c1;
521 UPDATE_ROW (
522 X_ROWID ,
523 X_LOCATION_TYPE,
524 X_DESCRIPTION,
525 X_S_LOCATION_TYPE,
526 X_CLOSED_IND,
527 X_MODE);
528 end ADD_ROW;
529
530 procedure DELETE_ROW (
531 X_ROWID in VARCHAR2
532 ) as
533 begin
534
535 Before_DML(
536 p_action=>'DELETE',
537 x_rowid=> X_ROWID
538 );
539
540
541 delete from igs_ad_location_type_all
542 where ROWID = X_ROWID;
543 if (sql%notfound) then
544 raise no_data_found;
545 end if;
546
547 After_DML(
548 p_action=>'DELETE',
549 x_rowid=> X_ROWID
550 );
551
552
553 end DELETE_ROW;
554
555 end IGS_AD_LOCATION_TYPE_PKG;