DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMS_INSTALLMENTS_PKG

Source


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;
441   fetch c1 into dummy;
442   if (c1%notfound) then
443     close c1;
444     INSERT_ROW (
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;