DBA Data[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;