DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMS_REFERENCE_NUMBERS_PKG

Source


1 package body GMS_REFERENCE_NUMBERS_PKG as
2 -- $Header: gmsawrfb.pls 115.7 2002/11/26 19:03:16 jmuthuku ship $
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_AWARD_ID in NUMBER,
6   X_TYPE in VARCHAR2,
7   X_VALUE in VARCHAR2,
8   X_REQUIRED_FLAG in VARCHAR2,
9   X_MODE in VARCHAR2
10   ) is
11     cursor C is select ROWID from GMS_REFERENCE_NUMBERS
12       where AWARD_ID = X_AWARD_ID
13       and TYPE = X_TYPE
14       and (VALUE = X_VALUE
15           OR (VALUE IS NULL AND X_VALUE IS NULL)) ;  -- Bug 2652987, Added;
16     X_LAST_UPDATE_DATE DATE;
17     X_LAST_UPDATED_BY NUMBER;
18     X_LAST_UPDATE_LOGIN NUMBER;
19 begin
20   X_LAST_UPDATE_DATE := SYSDATE;
21   if(X_MODE = 'I') then
22     X_LAST_UPDATED_BY := 1;
23     X_LAST_UPDATE_LOGIN := 0;
24   elsif (X_MODE = 'R') then
25     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
26     if X_LAST_UPDATED_BY is NULL then
27       X_LAST_UPDATED_BY := -1;
28     end if;
29     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
30     if X_LAST_UPDATE_LOGIN is NULL then
31       X_LAST_UPDATE_LOGIN := -1;
32     end if;
33   else
34     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
35     app_exception.raise_exception;
36   end if;
37   insert into GMS_REFERENCE_NUMBERS (
38     AWARD_ID,
39     TYPE,
40     VALUE,
41     REQUIRED_FLAG,
42     CREATION_DATE,
43     CREATED_BY,
44     LAST_UPDATE_DATE,
45     LAST_UPDATED_BY,
46     LAST_UPDATE_LOGIN
47   ) values (
48     X_AWARD_ID,
49     X_TYPE,
50     X_VALUE,
51     X_REQUIRED_FLAG,
52     X_LAST_UPDATE_DATE,
53     X_LAST_UPDATED_BY,
54     X_LAST_UPDATE_DATE,
55     X_LAST_UPDATED_BY,
56     X_LAST_UPDATE_LOGIN
57   );
58 
59   open c;
60   fetch c into X_ROWID;
61   if (c%notfound) then
62     close c;
63     raise no_data_found;
64   end if;
65   close c;
66 
67 end INSERT_ROW;
68 
69 procedure LOCK_ROW (
70   X_AWARD_ID in NUMBER,
71   X_TYPE in VARCHAR2,
72   X_VALUE in VARCHAR2,
73   X_REQUIRED_FLAG in VARCHAR2,
74   X_ROWID in VARCHAR2
75 ) is
76   cursor c1 is select
77       TYPE, VALUE, REQUIRED_FLAG
78     from GMS_REFERENCE_NUMBERS
79     where ROWID = X_ROWID  -- Bug 2652987, Added
80     for update of AWARD_ID nowait;
81   tlinfo c1%rowtype;
82 
83 begin
84   open c1;
85   fetch c1 into tlinfo;
86   if (c1%notfound) then
87     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
88     app_exception.raise_exception;
89     close c1;
90     return;
91   end if;
92   close c1;
93 
94   if ( (tlinfo.TYPE = X_TYPE)  -- Bug 2652987, Added
95      AND (tlinfo.VALUE = X_VALUE OR tlinfo.VALUE is null AND X_VALUE is null)
96      AND (tlinfo.REQUIRED_FLAG = X_REQUIRED_FLAG OR tlinfo.REQUIRED_FLAG is null AND X_REQUIRED_FLAG is null)
97      ) then
98     null;
99   else
100     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
101     app_exception.raise_exception;
102   end if;
103   return;
104 end LOCK_ROW;
105 
106 procedure UPDATE_ROW (
107   X_ROW_ID in VARCHAR2,
108   X_AWARD_ID in NUMBER,
109   X_TYPE in VARCHAR2,
110   X_VALUE in VARCHAR2,
111   X_REQUIRED_FLAG in VARCHAR2,
112   X_MODE in VARCHAR2
113   ) is
114     X_LAST_UPDATE_DATE DATE;
115     X_LAST_UPDATED_BY NUMBER;
116     X_LAST_UPDATE_LOGIN NUMBER;
117 begin
118   X_LAST_UPDATE_DATE := SYSDATE;
119   if(X_MODE = 'I') then
120     X_LAST_UPDATED_BY := 1;
121     X_LAST_UPDATE_LOGIN := 0;
122   elsif (X_MODE = 'R') then
123     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
124     if X_LAST_UPDATED_BY is NULL then
125       X_LAST_UPDATED_BY := -1;
126     end if;
127     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
128     if X_LAST_UPDATE_LOGIN is NULL then
129       X_LAST_UPDATE_LOGIN := -1;
130     end if;
131   else
132     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
133     app_exception.raise_exception;
134   end if;
135   update GMS_REFERENCE_NUMBERS set
136     TYPE = X_TYPE,
137     VALUE = X_VALUE,
138     REQUIRED_FLAG = X_REQUIRED_FLAG,
139     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
140     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
141     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
142 /* Commented out NOCOPY for bug fix 1829009.Now rowid is used to uniquely identify the records
143 
144   where AWARD_ID = X_AWARD_ID
145   and TYPE = X_TYPE
146 */
147   where rowid = X_ROW_ID
148   ;
149   if (sql%notfound) then
150     raise no_data_found;
151   end if;
152 end UPDATE_ROW;
153 
154 procedure ADD_ROW (
155   X_ROWID in out NOCOPY VARCHAR2,
156   X_AWARD_ID in NUMBER,
157   X_TYPE in VARCHAR2,
158   X_VALUE in VARCHAR2,
159   X_REQUIRED_FLAG in VARCHAR2,
160   X_MODE in VARCHAR2
161   ) is
162   cursor c1 is select rowid from GMS_REFERENCE_NUMBERS
163      where AWARD_ID = X_AWARD_ID
164      and TYPE = X_TYPE
165   ;
166   dummy c1%rowtype;
167 begin
168   open c1;
169   fetch c1 into dummy;
170   if (c1%notfound) then
171     close c1;
172     INSERT_ROW (
173      X_ROWID,
174      X_AWARD_ID,
175      X_TYPE,
176      X_VALUE,
177      X_REQUIRED_FLAG,
178      X_MODE);
179     return;
180   end if;
181   close c1;
182   UPDATE_ROW (
183    X_ROWID,
184    X_AWARD_ID,
185    X_TYPE,
186    X_VALUE,
187    X_REQUIRED_FLAG,
188    X_MODE);
189 end ADD_ROW;
190 
191 procedure DELETE_ROW (
192   X_AWARD_ID in NUMBER,
193   X_TYPE in VARCHAR2,
194   X_VALUE in VARCHAR2, -- Bug 2652987, Added
195   X_ROWID in VARCHAR2  -- Bug 2652987, Added
196 ) is
197 begin
198   delete from GMS_REFERENCE_NUMBERS
199   where ROWID = X_ROWID;
200   if (sql%notfound) then
201     raise no_data_found;
202   end if;
203 end DELETE_ROW;
204 
205 end GMS_REFERENCE_NUMBERS_PKG;