[Home] [Help]
PACKAGE BODY: APPS.IGW_PROP_PERSONS_PKG
Source
1 package body IGW_PROP_PERSONS_PKG as
2 /* $Header: igwpr40b.pls 115.11 2002/03/28 19:13:29 pkm ship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out VARCHAR2,
5 X_PROPOSAL_ID in NUMBER,
6 X_PERSON_ID in NUMBER,
7 X_PERSON_SEQUENCE in NUMBER,
8 X_PROPOSAL_ROLE_CODE in VARCHAR2,
9 X_PI_FLAG in VARCHAR2,
10 X_KEY_PERSON_FLAG in VARCHAR2,
11 X_PERCENT_EFFORT in NUMBER,
12 X_PERSON_ORGANIZATION_ID in NUMBER,
13 X_MODE in VARCHAR2 default 'R'
14 ) is
15 cursor C is select ROWID from IGW_PROP_PERSONS
16 where PROPOSAL_ID = X_PROPOSAL_ID
17 and PERSON_ID = X_PERSON_ID;
18 X_LAST_UPDATE_DATE DATE;
19 X_LAST_UPDATED_BY NUMBER;
20 X_LAST_UPDATE_LOGIN NUMBER;
21 begin
22 X_LAST_UPDATE_DATE := SYSDATE;
23 if(X_MODE = 'I') then
24 X_LAST_UPDATED_BY := 1;
25 X_LAST_UPDATE_LOGIN := 0;
26 elsif (X_MODE = 'R') then
27 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
28 if X_LAST_UPDATED_BY is NULL then
29 X_LAST_UPDATED_BY := -1;
30 end if;
31 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
32 if X_LAST_UPDATE_LOGIN is NULL then
33 X_LAST_UPDATE_LOGIN := -1;
34 end if;
35 else
36 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
37 app_exception.raise_exception;
38 end if;
39 insert into IGW_PROP_PERSONS (
40 PROPOSAL_ID,
41 PERSON_ID,
42 PERSON_SEQUENCE,
43 PROPOSAL_ROLE_CODE,
44 PI_FLAG,
45 KEY_PERSON_FLAG,
46 PERCENT_EFFORT,
47 PERSON_ORGANIZATION_ID,
48 CREATION_DATE,
49 CREATED_BY,
50 LAST_UPDATE_DATE,
51 LAST_UPDATED_BY,
52 LAST_UPDATE_LOGIN
53 ) values (
54 X_PROPOSAL_ID,
55 X_PERSON_ID,
56 X_PERSON_SEQUENCE,
57 X_PROPOSAL_ROLE_CODE,
58 X_PI_FLAG,
59 X_KEY_PERSON_FLAG,
60 X_PERCENT_EFFORT,
61 X_PERSON_ORGANIZATION_ID,
62 X_LAST_UPDATE_DATE,
63 X_LAST_UPDATED_BY,
64 X_LAST_UPDATE_DATE,
65 X_LAST_UPDATED_BY,
66 X_LAST_UPDATE_LOGIN
67 );
68
69 open c;
70 fetch c into X_ROWID;
71 if (c%notfound) then
72 close c;
73 raise no_data_found;
74 end if;
75 close c;
76
77 end INSERT_ROW;
78
79 procedure LOCK_ROW (
80 X_ROWID in VARCHAR2,
81 X_PROPOSAL_ID in NUMBER,
82 X_PERSON_ID in NUMBER,
83 X_PERSON_SEQUENCE in NUMBER,
84 X_PROPOSAL_ROLE_CODE in VARCHAR2,
85 X_PI_FLAG in VARCHAR2,
86 X_KEY_PERSON_FLAG in VARCHAR2,
87 X_PERCENT_EFFORT in NUMBER,
88 X_PERSON_ORGANIZATION_ID in NUMBER
89 ) is
90 cursor c1 is select
91 PERSON_ID,
92 PERSON_SEQUENCE,
93 PROPOSAL_ROLE_CODE,
94 PI_FLAG,
95 KEY_PERSON_FLAG,
96 PERCENT_EFFORT,
97 PERSON_ORGANIZATION_ID
98 from IGW_PROP_PERSONS
99 where ROWID = X_ROWID
100 for update of PROPOSAL_ID nowait;
101 tlinfo c1%rowtype;
102
103 begin
104 open c1;
105 fetch c1 into tlinfo;
106 if (c1%notfound) then
107 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
108 app_exception.raise_exception;
109 close c1;
110 return;
111 end if;
112 close c1;
113
114 if ( (tlinfo.PERSON_ID = X_PERSON_ID)
115 AND ((tlinfo.PERSON_SEQUENCE = X_PERSON_SEQUENCE)
116 OR ((tlinfo.PERSON_SEQUENCE is null)
117 AND (X_PERSON_SEQUENCE is null)))
118 AND (tlinfo.PROPOSAL_ROLE_CODE = X_PROPOSAL_ROLE_CODE)
119 AND ((tlinfo.PI_FLAG = X_PI_FLAG)
120 OR ((tlinfo.PI_FLAG is null)
121 AND (X_PI_FLAG is null)))
122 AND ((tlinfo.KEY_PERSON_FLAG = X_KEY_PERSON_FLAG)
123 OR ((tlinfo.KEY_PERSON_FLAG is null)
124 AND (X_KEY_PERSON_FLAG is null)))
125 AND ((tlinfo.PERCENT_EFFORT = X_PERCENT_EFFORT)
126 OR ((tlinfo.PERCENT_EFFORT is null)
127 AND (X_PERCENT_EFFORT is null)))
128 AND ((tlinfo.PERSON_ORGANIZATION_ID = X_PERSON_ORGANIZATION_ID)
129 OR ((tlinfo.PERSON_ORGANIZATION_ID is null)
130 AND (X_PERSON_ORGANIZATION_ID is null)))
131 ) then
132 null;
133 else
134 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
135 app_exception.raise_exception;
136 end if;
137 return;
138 end LOCK_ROW;
139
140 procedure UPDATE_ROW (
141 X_ROWID in VARCHAR2,
142 X_PROPOSAL_ID in NUMBER,
143 X_PERSON_ID in NUMBER,
144 X_PERSON_SEQUENCE in NUMBER,
145 X_PROPOSAL_ROLE_CODE in VARCHAR2,
146 X_PI_FLAG in VARCHAR2,
147 X_KEY_PERSON_FLAG in VARCHAR2,
148 X_PERCENT_EFFORT in NUMBER,
149 X_PERSON_ORGANIZATION_ID in NUMBER,
150 X_MODE in VARCHAR2 default 'R'
151 ) is
152 X_LAST_UPDATE_DATE DATE;
153 X_LAST_UPDATED_BY NUMBER;
154 X_LAST_UPDATE_LOGIN NUMBER;
155 begin
156 X_LAST_UPDATE_DATE := SYSDATE;
157 if(X_MODE = 'I') then
158 X_LAST_UPDATED_BY := 1;
159 X_LAST_UPDATE_LOGIN := 0;
160 elsif (X_MODE = 'R') then
161 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
162 if X_LAST_UPDATED_BY is NULL then
163 X_LAST_UPDATED_BY := -1;
164 end if;
165 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
166 if X_LAST_UPDATE_LOGIN is NULL then
167 X_LAST_UPDATE_LOGIN := -1;
168 end if;
169 else
170 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
171 app_exception.raise_exception;
172 end if;
173 update IGW_PROP_PERSONS set
174 PERSON_ID = X_PERSON_ID,
175 PERSON_SEQUENCE = X_PERSON_SEQUENCE,
176 PROPOSAL_ROLE_CODE = X_PROPOSAL_ROLE_CODE,
177 PI_FLAG = X_PI_FLAG,
178 KEY_PERSON_FLAG = X_KEY_PERSON_FLAG,
179 PERCENT_EFFORT = X_PERCENT_EFFORT,
180 PERSON_ORGANIZATION_ID = X_PERSON_ORGANIZATION_ID,
181 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
182 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
183 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
184 where ROWID = X_ROWID
185 ;
186 if (sql%notfound) then
187 raise no_data_found;
188 end if;
189 end UPDATE_ROW;
190
191 procedure ADD_ROW (
192 X_ROWID in out VARCHAR2,
193 X_PROPOSAL_ID in NUMBER,
194 X_PERSON_ID in NUMBER,
195 X_PERSON_SEQUENCE in NUMBER,
196 X_PROPOSAL_ROLE_CODE in VARCHAR2,
197 X_PI_FLAG in VARCHAR2,
198 X_KEY_PERSON_FLAG in VARCHAR2,
199 X_PERCENT_EFFORT in NUMBER,
200 X_PERSON_ORGANIZATION_ID in NUMBER,
201 X_MODE in VARCHAR2 default 'R'
202 ) is
203 cursor c1 is select rowid from IGW_PROP_PERSONS
204 where PROPOSAL_ID = X_PROPOSAL_ID
205 and PERSON_ID = X_PERSON_ID
206 ;
207 dummy c1%rowtype;
208 begin
209 open c1;
210 fetch c1 into dummy;
211 if (c1%notfound) then
212 close c1;
213 INSERT_ROW (
214 X_ROWID,
215 X_PROPOSAL_ID,
216 X_PERSON_ID,
217 X_PERSON_SEQUENCE,
218 X_PROPOSAL_ROLE_CODE,
219 X_PI_FLAG,
220 X_KEY_PERSON_FLAG,
221 X_PERCENT_EFFORT,
222 X_PERSON_ORGANIZATION_ID,
223 X_MODE);
224 return;
225 end if;
226 close c1;
227 UPDATE_ROW (
228 X_ROWID,
229 X_PROPOSAL_ID,
230 X_PERSON_ID,
231 X_PERSON_SEQUENCE,
232 X_PROPOSAL_ROLE_CODE,
233 X_PI_FLAG,
234 X_KEY_PERSON_FLAG,
235 X_PERCENT_EFFORT,
236 X_PERSON_ORGANIZATION_ID,
237 X_MODE);
238 end ADD_ROW;
239
240 procedure DELETE_ROW (
241 X_ROWID in VARCHAR2
242 ) is
243 begin
244 delete from IGW_PROP_PERSONS
245 where ROWID = X_ROWID;
246 if (sql%notfound) then
247 raise no_data_found;
248 end if;
249 end DELETE_ROW;
250
251 end IGW_PROP_PERSONS_PKG;