1 package body GMS_INSTALLMENTS_PKG as
2 -- $Header: gmsawinb.pls 120.1 2005/07/26 14:20:45 appldev ship $
3 procedure INSERT_ROW (
4 X_ROWID in out NOCOPY VARCHAR2,
5 X_INSTALLMENT_ID in NUMBER,
6 X_INSTALLMENT_NUM in VARCHAR2,
7 X_AWARD_ID in NUMBER,
8 X_START_DATE_ACTIVE in DATE,
9 X_END_DATE_ACTIVE in DATE,
10 X_CLOSE_DATE in DATE,
11 X_DIRECT_COST in NUMBER,
12 X_INDIRECT_COST in NUMBER,
13 X_ACTIVE_FLAG in VARCHAR2,
14 X_BILLABLE_FLAG in VARCHAR2,
15 X_TYPE in VARCHAR2,
16 X_ISSUE_DATE in DATE,
17 X_DESCRIPTION in VARCHAR2,
18 X_ATTRIBUTE_CATEGORY in VARCHAR2,
19 X_ATTRIBUTE1 in VARCHAR2,
20 X_ATTRIBUTE2 in VARCHAR2,
21 X_ATTRIBUTE3 in VARCHAR2,
22 X_ATTRIBUTE4 in VARCHAR2,
23 X_ATTRIBUTE5 in VARCHAR2,
24 X_ATTRIBUTE6 in VARCHAR2,
25 X_ATTRIBUTE7 in VARCHAR2,
26 X_ATTRIBUTE8 in VARCHAR2,
27 X_ATTRIBUTE9 in VARCHAR2,
28 X_ATTRIBUTE10 in VARCHAR2,
29 X_ATTRIBUTE11 in VARCHAR2,
30 X_ATTRIBUTE12 in VARCHAR2,
31 X_ATTRIBUTE13 in VARCHAR2,
32 X_ATTRIBUTE14 in VARCHAR2,
33 X_ATTRIBUTE15 in VARCHAR2,
34 X_MODE in VARCHAR2 default 'R'
35 ) is
36 cursor C is select ROWID from GMS_INSTALLMENTS
37 where INSTALLMENT_ID = X_INSTALLMENT_ID;
38 X_LAST_UPDATE_DATE DATE;
39 X_LAST_UPDATED_BY NUMBER;
40 X_LAST_UPDATE_LOGIN NUMBER;
41 begin
42 X_LAST_UPDATE_DATE := SYSDATE;
43 if(X_MODE = 'I') then
44 X_LAST_UPDATED_BY := 1;
45 X_LAST_UPDATE_LOGIN := 0;
46 elsif (X_MODE = 'R') then
47 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
48 if X_LAST_UPDATED_BY is NULL then
49 X_LAST_UPDATED_BY := -1;
50 end if;
51 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
52 if X_LAST_UPDATE_LOGIN is NULL then
53 X_LAST_UPDATE_LOGIN := -1;
54 end if;
55 else
56 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
57 app_exception.raise_exception;
58 end if;
59 insert into GMS_INSTALLMENTS (
60 INSTALLMENT_ID,
61 INSTALLMENT_NUM,
62 AWARD_ID,
63 START_DATE_ACTIVE,
64 END_DATE_ACTIVE,
65 CLOSE_DATE,
66 DIRECT_COST,
67 INDIRECT_COST,
68 ACTIVE_FLAG,
69 BILLABLE_FLAG,
70 TYPE,
71 ISSUE_DATE,
72 DESCRIPTION,
73 ATTRIBUTE_CATEGORY,
74 ATTRIBUTE1,
75 ATTRIBUTE2,
76 ATTRIBUTE3,
77 ATTRIBUTE4,
78 ATTRIBUTE5,
79 ATTRIBUTE6,
80 ATTRIBUTE7,
81 ATTRIBUTE8,
82 ATTRIBUTE9,
83 ATTRIBUTE10,
84 ATTRIBUTE11,
85 ATTRIBUTE12,
86 ATTRIBUTE13,
87 ATTRIBUTE14,
88 ATTRIBUTE15,
89 CREATION_DATE,
90 CREATED_BY,
91 LAST_UPDATE_DATE,
92 LAST_UPDATED_BY,
93 LAST_UPDATE_LOGIN
94 ) values (
95 X_INSTALLMENT_ID,
96 X_INSTALLMENT_NUM,
97 X_AWARD_ID,
98 X_START_DATE_ACTIVE,
99 X_END_DATE_ACTIVE,
100 X_CLOSE_DATE,
101 X_DIRECT_COST,
102 X_INDIRECT_COST,
103 X_ACTIVE_FLAG,
104 X_BILLABLE_FLAG,
105 X_TYPE,
106 X_ISSUE_DATE,
107 X_DESCRIPTION,
108 X_ATTRIBUTE_CATEGORY,
109 X_ATTRIBUTE1,
110 X_ATTRIBUTE2,
111 X_ATTRIBUTE3,
112 X_ATTRIBUTE4,
113 X_ATTRIBUTE5,
114 X_ATTRIBUTE6,
115 X_ATTRIBUTE7,
116 X_ATTRIBUTE8,
117 X_ATTRIBUTE9,
118 X_ATTRIBUTE10,
119 X_ATTRIBUTE11,
120 X_ATTRIBUTE12,
121 X_ATTRIBUTE13,
122 X_ATTRIBUTE14,
123 X_ATTRIBUTE15,
124 X_LAST_UPDATE_DATE,
125 X_LAST_UPDATED_BY,
126 X_LAST_UPDATE_DATE,
127 X_LAST_UPDATED_BY,
128 X_LAST_UPDATE_LOGIN
129 );
130
131 open c;
132 fetch c into X_ROWID;
133 if (c%notfound) then
134 close c;
135 raise no_data_found;
136 end if;
137 close c;
138
139 end INSERT_ROW;
140
141 procedure LOCK_ROW (
142 X_INSTALLMENT_ID in NUMBER,
143 X_INSTALLMENT_NUM in VARCHAR2,
144 X_AWARD_ID in NUMBER,
145 X_START_DATE_ACTIVE in DATE,
146 X_END_DATE_ACTIVE in DATE,
147 X_CLOSE_DATE in DATE,
148 X_DIRECT_COST in NUMBER,
149 X_INDIRECT_COST in NUMBER,
150 X_ACTIVE_FLAG in VARCHAR2,
151 X_BILLABLE_FLAG in VARCHAR2,
152 X_TYPE in VARCHAR2,
153 X_ISSUE_DATE in DATE,
154 X_DESCRIPTION in VARCHAR2,
155 X_ATTRIBUTE_CATEGORY in VARCHAR2,
156 X_ATTRIBUTE1 in VARCHAR2,
157 X_ATTRIBUTE2 in VARCHAR2,
158 X_ATTRIBUTE3 in VARCHAR2,
159 X_ATTRIBUTE4 in VARCHAR2,
160 X_ATTRIBUTE5 in VARCHAR2,
161 X_ATTRIBUTE6 in VARCHAR2,
162 X_ATTRIBUTE7 in VARCHAR2,
163 X_ATTRIBUTE8 in VARCHAR2,
164 X_ATTRIBUTE9 in VARCHAR2,
165 X_ATTRIBUTE10 in VARCHAR2,
166 X_ATTRIBUTE11 in VARCHAR2,
167 X_ATTRIBUTE12 in VARCHAR2,
168 X_ATTRIBUTE13 in VARCHAR2,
169 X_ATTRIBUTE14 in VARCHAR2,
170 X_ATTRIBUTE15 in VARCHAR2
171 ) is
172 cursor c1 is select
173 INSTALLMENT_NUM,
174 AWARD_ID,
175 START_DATE_ACTIVE,
176 END_DATE_ACTIVE,
177 CLOSE_DATE,
178 DIRECT_COST,
179 INDIRECT_COST,
180 ACTIVE_FLAG,
181 BILLABLE_FLAG,
182 TYPE,
183 ISSUE_DATE,
184 DESCRIPTION,
185 ATTRIBUTE_CATEGORY,
186 ATTRIBUTE1,
187 ATTRIBUTE2,
188 ATTRIBUTE3,
189 ATTRIBUTE4,
190 ATTRIBUTE5,
191 ATTRIBUTE6,
192 ATTRIBUTE7,
193 ATTRIBUTE8,
194 ATTRIBUTE9,
195 ATTRIBUTE10,
196 ATTRIBUTE11,
197 ATTRIBUTE12,
198 ATTRIBUTE13,
199 ATTRIBUTE14,
200 ATTRIBUTE15
201 from GMS_INSTALLMENTS
202 where INSTALLMENT_ID = X_INSTALLMENT_ID
203 for update of INSTALLMENT_ID nowait;
204 tlinfo c1%rowtype;
205
206 begin
207 open c1;
208 fetch c1 into tlinfo;
209 if (c1%notfound) then
210 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
211 app_exception.raise_exception;
212 close c1;
213 return;
214 end if;
215 close c1;
216
217 if ( ((tlinfo.INSTALLMENT_NUM = X_INSTALLMENT_NUM)
218 OR ((tlinfo.INSTALLMENT_NUM is null)
219 AND (X_INSTALLMENT_NUM is null)))
220 AND ((tlinfo.AWARD_ID = X_AWARD_ID)
221 OR ((tlinfo.AWARD_ID is null)
222 AND (X_AWARD_ID is null)))
223 AND ((tlinfo.START_DATE_ACTIVE = X_START_DATE_ACTIVE)
224 OR ((tlinfo.START_DATE_ACTIVE is null)
225 AND (X_START_DATE_ACTIVE is null)))
226 AND ((tlinfo.END_DATE_ACTIVE = X_END_DATE_ACTIVE)
227 OR ((tlinfo.END_DATE_ACTIVE is null)
228 AND (X_END_DATE_ACTIVE is null)))
229 AND ((tlinfo.CLOSE_DATE = X_CLOSE_DATE)
230 OR ((tlinfo.CLOSE_DATE is null)
231 AND (X_CLOSE_DATE is null)))
232 AND ((tlinfo.DIRECT_COST = X_DIRECT_COST)
233 OR ((tlinfo.DIRECT_COST is null)
234 AND (X_DIRECT_COST is null)))
235 AND ((tlinfo.INDIRECT_COST = X_INDIRECT_COST)
236 OR ((tlinfo.INDIRECT_COST is null)
237 AND (X_INDIRECT_COST is null)))
238 AND ((tlinfo.ACTIVE_FLAG = X_ACTIVE_FLAG)
239 OR ((tlinfo.ACTIVE_FLAG is null)
240 AND (X_ACTIVE_FLAG is null)))
241 AND ((tlinfo.BILLABLE_FLAG = X_BILLABLE_FLAG)
242 OR ((tlinfo.BILLABLE_FLAG is null)
243 AND (X_BILLABLE_FLAG is null)))
244 AND ((tlinfo.TYPE = X_TYPE)
245 OR ((tlinfo.TYPE is null)
246 AND (X_TYPE is null)))
247 AND ((tlinfo.ISSUE_DATE = X_ISSUE_DATE)
248 OR ((tlinfo.ISSUE_DATE is null)
249 AND (X_ISSUE_DATE is null)))
250 AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
251 OR ((tlinfo.DESCRIPTION is null)
252 AND (X_DESCRIPTION is null)))
253 AND ((tlinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
254 OR ((tlinfo.ATTRIBUTE_CATEGORY is null)
255 AND (X_ATTRIBUTE_CATEGORY is null)))
256 AND ((tlinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
257 OR ((tlinfo.ATTRIBUTE1 is null)
258 AND (X_ATTRIBUTE1 is null)))
259 AND ((tlinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
260 OR ((tlinfo.ATTRIBUTE2 is null)
261 AND (X_ATTRIBUTE2 is null)))
262 AND ((tlinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
263 OR ((tlinfo.ATTRIBUTE3 is null)
264 AND (X_ATTRIBUTE3 is null)))
265 AND ((tlinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
266 OR ((tlinfo.ATTRIBUTE4 is null)
267 AND (X_ATTRIBUTE4 is null)))
268 AND ((tlinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
269 OR ((tlinfo.ATTRIBUTE5 is null)
270 AND (X_ATTRIBUTE5 is null)))
271 AND ((tlinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
272 OR ((tlinfo.ATTRIBUTE6 is null)
273 AND (X_ATTRIBUTE6 is null)))
274 AND ((tlinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
275 OR ((tlinfo.ATTRIBUTE7 is null)
276 AND (X_ATTRIBUTE7 is null)))
277 AND ((tlinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
278 OR ((tlinfo.ATTRIBUTE8 is null)
279 AND (X_ATTRIBUTE8 is null)))
280 AND ((tlinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
281 OR ((tlinfo.ATTRIBUTE9 is null)
282 AND (X_ATTRIBUTE9 is null)))
283 AND ((tlinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
284 OR ((tlinfo.ATTRIBUTE10 is null)
285 AND (X_ATTRIBUTE10 is null)))
286 AND ((tlinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
287 OR ((tlinfo.ATTRIBUTE11 is null)
288 AND (X_ATTRIBUTE11 is null)))
289 AND ((tlinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
290 OR ((tlinfo.ATTRIBUTE12 is null)
291 AND (X_ATTRIBUTE12 is null)))
292 AND ((tlinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
293 OR ((tlinfo.ATTRIBUTE13 is null)
294 AND (X_ATTRIBUTE13 is null)))
295 AND ((tlinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
296 OR ((tlinfo.ATTRIBUTE14 is null)
297 AND (X_ATTRIBUTE14 is null)))
298 AND ((tlinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
299 OR ((tlinfo.ATTRIBUTE15 is null)
300 AND (X_ATTRIBUTE15 is null)))
301 ) then
302 null;
303 else
304 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
305 app_exception.raise_exception;
306 end if;
307 return;
308 end LOCK_ROW;
309
310 procedure UPDATE_ROW (
311 X_INSTALLMENT_ID in NUMBER,
312 X_INSTALLMENT_NUM in VARCHAR2,
313 X_AWARD_ID in NUMBER,
314 X_START_DATE_ACTIVE in DATE,
315 X_END_DATE_ACTIVE in DATE,
316 X_CLOSE_DATE in DATE,
317 X_DIRECT_COST in NUMBER,
318 X_INDIRECT_COST in NUMBER,
319 X_ACTIVE_FLAG in VARCHAR2,
320 X_BILLABLE_FLAG in VARCHAR2,
321 X_TYPE in VARCHAR2,
322 X_ISSUE_DATE in DATE,
323 X_DESCRIPTION in VARCHAR2,
324 X_ATTRIBUTE_CATEGORY in VARCHAR2,
325 X_ATTRIBUTE1 in VARCHAR2,
326 X_ATTRIBUTE2 in VARCHAR2,
327 X_ATTRIBUTE3 in VARCHAR2,
328 X_ATTRIBUTE4 in VARCHAR2,
329 X_ATTRIBUTE5 in VARCHAR2,
330 X_ATTRIBUTE6 in VARCHAR2,
331 X_ATTRIBUTE7 in VARCHAR2,
332 X_ATTRIBUTE8 in VARCHAR2,
333 X_ATTRIBUTE9 in VARCHAR2,
334 X_ATTRIBUTE10 in VARCHAR2,
335 X_ATTRIBUTE11 in VARCHAR2,
336 X_ATTRIBUTE12 in VARCHAR2,
337 X_ATTRIBUTE13 in VARCHAR2,
338 X_ATTRIBUTE14 in VARCHAR2,
339 X_ATTRIBUTE15 in VARCHAR2,
340 X_MODE in VARCHAR2 default 'R'
341 ) is
342 X_LAST_UPDATE_DATE DATE;
343 X_LAST_UPDATED_BY NUMBER;
344 X_LAST_UPDATE_LOGIN NUMBER;
345 begin
346 X_LAST_UPDATE_DATE := SYSDATE;
347 if(X_MODE = 'I') then
348 X_LAST_UPDATED_BY := 1;
349 X_LAST_UPDATE_LOGIN := 0;
350 elsif (X_MODE = 'R') then
351 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
352 if X_LAST_UPDATED_BY is NULL then
353 X_LAST_UPDATED_BY := -1;
354 end if;
355 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
356 if X_LAST_UPDATE_LOGIN is NULL then
357 X_LAST_UPDATE_LOGIN := -1;
358 end if;
359 else
360 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
361 app_exception.raise_exception;
362 end if;
363 update GMS_INSTALLMENTS set
364 INSTALLMENT_NUM = X_INSTALLMENT_NUM,
365 AWARD_ID = X_AWARD_ID,
366 START_DATE_ACTIVE = X_START_DATE_ACTIVE,
367 END_DATE_ACTIVE = X_END_DATE_ACTIVE,
368 CLOSE_DATE = X_CLOSE_DATE,
369 DIRECT_COST = X_DIRECT_COST,
370 INDIRECT_COST = X_INDIRECT_COST,
371 ACTIVE_FLAG = X_ACTIVE_FLAG,
372 BILLABLE_FLAG = X_BILLABLE_FLAG,
373 TYPE = X_TYPE,
374 ISSUE_DATE = X_ISSUE_DATE,
375 DESCRIPTION = X_DESCRIPTION,
376 ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
377 ATTRIBUTE1 = X_ATTRIBUTE1,
378 ATTRIBUTE2 = X_ATTRIBUTE2,
379 ATTRIBUTE3 = X_ATTRIBUTE3,
380 ATTRIBUTE4 = X_ATTRIBUTE4,
381 ATTRIBUTE5 = X_ATTRIBUTE5,
382 ATTRIBUTE6 = X_ATTRIBUTE6,
383 ATTRIBUTE7 = X_ATTRIBUTE7,
384 ATTRIBUTE8 = X_ATTRIBUTE8,
385 ATTRIBUTE9 = X_ATTRIBUTE9,
386 ATTRIBUTE10 = X_ATTRIBUTE10,
387 ATTRIBUTE11 = X_ATTRIBUTE11,
388 ATTRIBUTE12 = X_ATTRIBUTE12,
389 ATTRIBUTE13 = X_ATTRIBUTE13,
390 ATTRIBUTE14 = X_ATTRIBUTE14,
391 ATTRIBUTE15 = X_ATTRIBUTE15,
392 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
393 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
394 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
395 where INSTALLMENT_ID = X_INSTALLMENT_ID
396 ;
397 if (sql%notfound) then
398 raise no_data_found;
399 end if;
400 end UPDATE_ROW;
401
402 procedure ADD_ROW (
403 X_ROWID in out NOCOPY VARCHAR2,
404 X_INSTALLMENT_ID in NUMBER,
405 X_INSTALLMENT_NUM in VARCHAR2,
406 X_AWARD_ID in NUMBER,
407 X_START_DATE_ACTIVE in DATE,
408 X_END_DATE_ACTIVE in DATE,
409 X_CLOSE_DATE in DATE,
410 X_DIRECT_COST in NUMBER,
411 X_INDIRECT_COST in NUMBER,
412 X_ACTIVE_FLAG in VARCHAR2,
413 X_BILLABLE_FLAG in VARCHAR2,
414 X_TYPE in VARCHAR2,
415 X_ISSUE_DATE in DATE,
416 X_DESCRIPTION in VARCHAR2,
417 X_ATTRIBUTE_CATEGORY in VARCHAR2,
418 X_ATTRIBUTE1 in VARCHAR2,
419 X_ATTRIBUTE2 in VARCHAR2,
420 X_ATTRIBUTE3 in VARCHAR2,
421 X_ATTRIBUTE4 in VARCHAR2,
422 X_ATTRIBUTE5 in VARCHAR2,
423 X_ATTRIBUTE6 in VARCHAR2,
424 X_ATTRIBUTE7 in VARCHAR2,
425 X_ATTRIBUTE8 in VARCHAR2,
426 X_ATTRIBUTE9 in VARCHAR2,
427 X_ATTRIBUTE10 in VARCHAR2,
428 X_ATTRIBUTE11 in VARCHAR2,
429 X_ATTRIBUTE12 in VARCHAR2,
430 X_ATTRIBUTE13 in VARCHAR2,
431 X_ATTRIBUTE14 in VARCHAR2,
432 X_ATTRIBUTE15 in VARCHAR2,
433 X_MODE in VARCHAR2 default 'R'
434 ) is
435 cursor c1 is select rowid from GMS_INSTALLMENTS
436 where INSTALLMENT_ID = X_INSTALLMENT_ID
437 ;
438 dummy c1%rowtype;
439 begin
440 open c1;
444 INSERT_ROW (
441 fetch c1 into dummy;
442 if (c1%notfound) then
443 close c1;
445 X_ROWID,
446 X_INSTALLMENT_ID,
447 X_INSTALLMENT_NUM,
448 X_AWARD_ID,
449 X_START_DATE_ACTIVE,
450 X_END_DATE_ACTIVE,
451 X_CLOSE_DATE,
452 X_DIRECT_COST,
453 X_INDIRECT_COST,
454 X_ACTIVE_FLAG,
455 X_BILLABLE_FLAG,
456 X_TYPE,
457 X_ISSUE_DATE,
458 X_DESCRIPTION,
459 X_ATTRIBUTE_CATEGORY,
460 X_ATTRIBUTE1,
461 X_ATTRIBUTE2,
462 X_ATTRIBUTE3,
463 X_ATTRIBUTE4,
464 X_ATTRIBUTE5,
465 X_ATTRIBUTE6,
466 X_ATTRIBUTE7,
467 X_ATTRIBUTE8,
468 X_ATTRIBUTE9,
469 X_ATTRIBUTE10,
470 X_ATTRIBUTE11,
471 X_ATTRIBUTE12,
472 X_ATTRIBUTE13,
473 X_ATTRIBUTE14,
474 X_ATTRIBUTE15,
475 X_MODE);
476 return;
477 end if;
478 close c1;
479 UPDATE_ROW (
480 X_INSTALLMENT_ID,
481 X_INSTALLMENT_NUM,
482 X_AWARD_ID,
483 X_START_DATE_ACTIVE,
484 X_END_DATE_ACTIVE,
485 X_CLOSE_DATE,
486 X_DIRECT_COST,
487 X_INDIRECT_COST,
488 X_ACTIVE_FLAG,
489 X_BILLABLE_FLAG,
490 X_TYPE,
491 X_ISSUE_DATE,
492 X_DESCRIPTION,
493 X_ATTRIBUTE_CATEGORY,
494 X_ATTRIBUTE1,
495 X_ATTRIBUTE2,
496 X_ATTRIBUTE3,
497 X_ATTRIBUTE4,
498 X_ATTRIBUTE5,
499 X_ATTRIBUTE6,
500 X_ATTRIBUTE7,
501 X_ATTRIBUTE8,
502 X_ATTRIBUTE9,
503 X_ATTRIBUTE10,
504 X_ATTRIBUTE11,
505 X_ATTRIBUTE12,
506 X_ATTRIBUTE13,
507 X_ATTRIBUTE14,
508 X_ATTRIBUTE15,
509 X_MODE);
510 end ADD_ROW;
511
512 procedure DELETE_ROW (
513 X_INSTALLMENT_ID in NUMBER
514 ) is
515 begin
516 delete from GMS_INSTALLMENTS
517 where INSTALLMENT_ID = X_INSTALLMENT_ID;
518 if (sql%notfound) then
519 raise no_data_found;
520 end if;
521 end DELETE_ROW;
522
523 -- Bug 2719057 : Added following Function, this function is used to
524 -- derive the order by clause for installment_num in Award Form
525 -- If the installment_num is numeric then the function will return
526 -- the installment_num by converting it to number, if the installment_num
527 -- is character then the function will return NULL
528 -- In the Award form the installments will have following order clause
529 -- Order by start_date_active,
530 -- and then :
531 -- a.If all the Installments are Numeric then it will be displayed in numeric
532 -- order
533 -- b.If all the Installments are in Character then it will be displayed in
534 -- character order
535 -- c.If the Installments are a combination of Numeric and Characters then it
536 -- will be displayed by numeric order first and then by character
537
538 -- The above logic is incorporated In Award Form by using
539 -- order by start_date_active,
540 -- gms_installments_pkg.installment_order(installment_num),installment_num
541
542 FUNCTION installment_order(p_installment_num VARCHAR2) RETURN NUMBER IS
543 l_numeric_installment NUMBER;
544 BEGIN
545 l_numeric_installment := to_number(p_installment_num);
546 RETURN l_numeric_installment ;
547 EXCEPTION
548 WHEN VALUE_ERROR THEN
549 RETURN NULL;
550 END installment_order;
551
552 end GMS_INSTALLMENTS_PKG;