DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMS_PROJECT_FUNDINGS_PKG

Source


1 package body GMS_PROJECT_FUNDINGS_PKG as
2 -- $Header: gmsawpfb.pls 115.5 2002/11/26 12:47:43 mmalhotr ship $
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_GMS_PROJECT_FUNDING_ID in NUMBER,
6   X_PROJECT_FUNDING_ID in NUMBER,
7   X_PROJECT_ID in NUMBER,
8   X_TASK_ID in NUMBER,
9   X_INSTALLMENT_ID in NUMBER,
10   X_FUNDING_AMOUNT in NUMBER,
11   X_DATE_ALLOCATED in DATE,
12   X_MODE in VARCHAR2 default 'R'
13   ) is
14     cursor C is select ROWID from GMS_PROJECT_FUNDINGS
15       where GMS_PROJECT_FUNDING_ID = X_GMS_PROJECT_FUNDING_ID;
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_PROJECT_FUNDINGS (
38     GMS_PROJECT_FUNDING_ID,
39     PROJECT_FUNDING_ID,
40     PROJECT_ID,
41     TASK_ID,
42     INSTALLMENT_ID,
43     FUNDING_AMOUNT,
44     DATE_ALLOCATED,
45     CREATION_DATE,
46     CREATED_BY,
47     LAST_UPDATE_DATE,
48     LAST_UPDATED_BY,
49     LAST_UPDATE_LOGIN
50   ) values (
51     X_GMS_PROJECT_FUNDING_ID,
52     X_PROJECT_FUNDING_ID,
53     X_PROJECT_ID,
54     X_TASK_ID,
55     X_INSTALLMENT_ID,
56     X_FUNDING_AMOUNT,
57     X_DATE_ALLOCATED,
58     X_LAST_UPDATE_DATE,
59     X_LAST_UPDATED_BY,
60     X_LAST_UPDATE_DATE,
61     X_LAST_UPDATED_BY,
62     X_LAST_UPDATE_LOGIN
63   );
64 
65   open c;
66   fetch c into X_ROWID;
67   if (c%notfound) then
68     close c;
69     raise no_data_found;
70   end if;
71   close c;
72 
73 end INSERT_ROW;
74 
75 procedure LOCK_ROW (
76   X_GMS_PROJECT_FUNDING_ID in NUMBER,
77   X_PROJECT_FUNDING_ID in NUMBER,
78   X_PROJECT_ID in NUMBER,
79   X_TASK_ID in NUMBER,
80   X_INSTALLMENT_ID in NUMBER,
81   X_FUNDING_AMOUNT in NUMBER,
82   X_DATE_ALLOCATED in DATE
83 ) is
84   cursor c1 is select
85       PROJECT_FUNDING_ID,
86       PROJECT_ID,
87       TASK_ID,
88       INSTALLMENT_ID,
89       FUNDING_AMOUNT,
90       DATE_ALLOCATED
91     from GMS_PROJECT_FUNDINGS
92     where GMS_PROJECT_FUNDING_ID = X_GMS_PROJECT_FUNDING_ID
93     for update of GMS_PROJECT_FUNDING_ID nowait;
94   tlinfo c1%rowtype;
95 
96 begin
97   open c1;
98   fetch c1 into tlinfo;
99   if (c1%notfound) then
100     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
101     app_exception.raise_exception;
102     close c1;
103     return;
104   end if;
105   close c1;
106 
107       if ( ((tlinfo.PROJECT_FUNDING_ID = X_PROJECT_FUNDING_ID)
108            OR ((tlinfo.PROJECT_FUNDING_ID is null)
109                AND (X_PROJECT_FUNDING_ID is null)))
110       AND (tlinfo.PROJECT_ID = X_PROJECT_ID)
111       AND ((tlinfo.TASK_ID = X_TASK_ID)
112            OR ((tlinfo.TASK_ID is null)
113                AND (X_TASK_ID is null)))
114       AND (tlinfo.INSTALLMENT_ID = X_INSTALLMENT_ID)
115       AND (tlinfo.FUNDING_AMOUNT = X_FUNDING_AMOUNT)
116       AND (tlinfo.DATE_ALLOCATED = X_DATE_ALLOCATED)
117   ) then
118     null;
119   else
120     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
121     app_exception.raise_exception;
122   end if;
123   return;
124 end LOCK_ROW;
125 
126 procedure UPDATE_ROW (
127   X_GMS_PROJECT_FUNDING_ID in NUMBER,
128   X_PROJECT_FUNDING_ID in NUMBER,
129   X_PROJECT_ID in NUMBER,
130   X_TASK_ID in NUMBER,
131   X_INSTALLMENT_ID in NUMBER,
132   X_FUNDING_AMOUNT in NUMBER,
133   X_DATE_ALLOCATED in DATE,
134   X_MODE in VARCHAR2 default 'R'
135   ) is
136     X_LAST_UPDATE_DATE DATE;
137     X_LAST_UPDATED_BY NUMBER;
138     X_LAST_UPDATE_LOGIN NUMBER;
139 begin
140   X_LAST_UPDATE_DATE := SYSDATE;
141   if(X_MODE = 'I') then
142     X_LAST_UPDATED_BY := 1;
143     X_LAST_UPDATE_LOGIN := 0;
144   elsif (X_MODE = 'R') then
145     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
146     if X_LAST_UPDATED_BY is NULL then
147       X_LAST_UPDATED_BY := -1;
148     end if;
149     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
150     if X_LAST_UPDATE_LOGIN is NULL then
151       X_LAST_UPDATE_LOGIN := -1;
152     end if;
153   else
154     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
155     app_exception.raise_exception;
156   end if;
157   update GMS_PROJECT_FUNDINGS set
158     PROJECT_FUNDING_ID = X_PROJECT_FUNDING_ID,
159     PROJECT_ID = X_PROJECT_ID,
160     TASK_ID = X_TASK_ID,
161     INSTALLMENT_ID = X_INSTALLMENT_ID,
162     FUNDING_AMOUNT = X_FUNDING_AMOUNT,
163     DATE_ALLOCATED = X_DATE_ALLOCATED,
164     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
165     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
166     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
167   where GMS_PROJECT_FUNDING_ID = X_GMS_PROJECT_FUNDING_ID
168   ;
169   if (sql%notfound) then
170     raise no_data_found;
171   end if;
172 end UPDATE_ROW;
173 
174 procedure ADD_ROW (
175   X_ROWID in out NOCOPY VARCHAR2,
176   X_GMS_PROJECT_FUNDING_ID in NUMBER,
177   X_PROJECT_FUNDING_ID in NUMBER,
178   X_PROJECT_ID in NUMBER,
179   X_TASK_ID in NUMBER,
180   X_INSTALLMENT_ID in NUMBER,
181   X_FUNDING_AMOUNT in NUMBER,
182   X_DATE_ALLOCATED in DATE,
183   X_MODE in VARCHAR2 default 'R'
184   ) is
185   cursor c1 is select rowid from GMS_PROJECT_FUNDINGS
186      where GMS_PROJECT_FUNDING_ID = X_GMS_PROJECT_FUNDING_ID
187   ;
188   dummy c1%rowtype;
189 begin
190   open c1;
191   fetch c1 into dummy;
192   if (c1%notfound) then
193     close c1;
194     INSERT_ROW (
195      X_ROWID,
196      X_GMS_PROJECT_FUNDING_ID,
197      X_PROJECT_FUNDING_ID,
198      X_PROJECT_ID,
199      X_TASK_ID,
200      X_INSTALLMENT_ID,
201      X_FUNDING_AMOUNT,
202      X_DATE_ALLOCATED,
203      X_MODE);
204     return;
205   end if;
206   close c1;
207   UPDATE_ROW (
208    X_GMS_PROJECT_FUNDING_ID,
209    X_PROJECT_FUNDING_ID,
210    X_PROJECT_ID,
211    X_TASK_ID,
212    X_INSTALLMENT_ID,
213    X_FUNDING_AMOUNT,
214    X_DATE_ALLOCATED,
215    X_MODE);
216 end ADD_ROW;
217 
218 procedure DELETE_ROW (
219   X_GMS_PROJECT_FUNDING_ID in NUMBER
220 ) is
221 begin
222   delete from GMS_PROJECT_FUNDINGS
223   where GMS_PROJECT_FUNDING_ID = X_GMS_PROJECT_FUNDING_ID;
224   if (sql%notfound) then
225     raise no_data_found;
226   end if;
227 end DELETE_ROW;
228 
229 end GMS_PROJECT_FUNDINGS_PKG;