DBA Data[Home] [Help]

PACKAGE BODY: APPS.RA_TERMS_TABLE_HANDLER

Source


1 package body RA_TERMS_TABLE_HANDLER as
2 /* $Header: ARPRTMSB.pls 120.2 2006/01/20 18:44:44 jypandey ship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_TERM_ID in NUMBER,
6   X_CREDIT_CHECK_FLAG in VARCHAR2,
7   X_PREPAYMENT_FLAG in VARCHAR2,
8   X_BILLING_CYCLE_ID in NUMBER,
9   X_PRINTING_LEAD_DAYS in NUMBER,
10   X_START_DATE_ACTIVE in DATE,
11   X_END_DATE_ACTIVE in DATE,
12   X_ATTRIBUTE_CATEGORY in VARCHAR2,
13   X_ATTRIBUTE1 in VARCHAR2,
14   X_ATTRIBUTE2 in VARCHAR2,
15   X_ATTRIBUTE3 in VARCHAR2,
16   X_ATTRIBUTE4 in VARCHAR2,
17   X_ATTRIBUTE5 in VARCHAR2,
18   X_ATTRIBUTE6 in VARCHAR2,
19   X_ATTRIBUTE7 in VARCHAR2,
20   X_ATTRIBUTE8 in VARCHAR2,
21   X_ATTRIBUTE9 in VARCHAR2,
22   X_ATTRIBUTE10 in VARCHAR2,
23   X_BASE_AMOUNT in NUMBER,
24   X_CALC_DISCOUNT_ON_LINES_FLAG in VARCHAR2,
25   X_FIRST_INSTALLMENT_CODE in VARCHAR2,
26   X_IN_USE in VARCHAR2,
27   X_PARTIAL_DISCOUNT_FLAG in VARCHAR2,
28   X_ATTRIBUTE11 in VARCHAR2,
29   X_ATTRIBUTE12 in VARCHAR2,
30   X_ATTRIBUTE13 in VARCHAR2,
31   X_ATTRIBUTE14 in VARCHAR2,
32   X_ATTRIBUTE15 in VARCHAR2,
33   X_NAME in VARCHAR2,
34   X_DESCRIPTION in VARCHAR2,
35   X_CREATION_DATE in DATE,
36   X_CREATED_BY in NUMBER,
37   X_LAST_UPDATE_DATE in DATE,
38   X_LAST_UPDATED_BY in NUMBER,
39   X_LAST_UPDATE_LOGIN in NUMBER
40 ) is
41   cursor C is select ROWID from RA_TERMS_B
42     where TERM_ID = X_TERM_ID
43     ;
44 begin
45   insert into RA_TERMS_B (
46     TERM_ID,
47     CREDIT_CHECK_FLAG,
48     PREPAYMENT_FLAG,
49     BILLING_CYCLE_ID,
50     PRINTING_LEAD_DAYS,
51     START_DATE_ACTIVE,
52     END_DATE_ACTIVE,
53     ATTRIBUTE_CATEGORY,
54     ATTRIBUTE1,
55     ATTRIBUTE2,
56     ATTRIBUTE3,
57     ATTRIBUTE4,
58     ATTRIBUTE5,
59     ATTRIBUTE6,
60     ATTRIBUTE7,
61     ATTRIBUTE8,
62     ATTRIBUTE9,
63     ATTRIBUTE10,
64     BASE_AMOUNT,
65     CALC_DISCOUNT_ON_LINES_FLAG,
66     FIRST_INSTALLMENT_CODE,
67     IN_USE,
68     PARTIAL_DISCOUNT_FLAG,
69     ATTRIBUTE11,
70     ATTRIBUTE12,
71     ATTRIBUTE13,
72     ATTRIBUTE14,
73     ATTRIBUTE15,
74     CREATION_DATE,
75     CREATED_BY,
76     LAST_UPDATE_DATE,
77     LAST_UPDATED_BY,
78     LAST_UPDATE_LOGIN
79   ) values (
80     X_TERM_ID,
81     X_CREDIT_CHECK_FLAG,
82     X_PREPAYMENT_FLAG,
83     X_BILLING_CYCLE_ID,
84     X_PRINTING_LEAD_DAYS,
85     X_START_DATE_ACTIVE,
86     X_END_DATE_ACTIVE,
87     X_ATTRIBUTE_CATEGORY,
88     X_ATTRIBUTE1,
89     X_ATTRIBUTE2,
90     X_ATTRIBUTE3,
91     X_ATTRIBUTE4,
92     X_ATTRIBUTE5,
93     X_ATTRIBUTE6,
94     X_ATTRIBUTE7,
95     X_ATTRIBUTE8,
96     X_ATTRIBUTE9,
97     X_ATTRIBUTE10,
98     X_BASE_AMOUNT,
99     X_CALC_DISCOUNT_ON_LINES_FLAG,
100     X_FIRST_INSTALLMENT_CODE,
101     X_IN_USE,
102     X_PARTIAL_DISCOUNT_FLAG,
103     X_ATTRIBUTE11,
104     X_ATTRIBUTE12,
105     X_ATTRIBUTE13,
106     X_ATTRIBUTE14,
107     X_ATTRIBUTE15,
108     X_CREATION_DATE,
109     X_CREATED_BY,
110     X_LAST_UPDATE_DATE,
111     X_LAST_UPDATED_BY,
112     X_LAST_UPDATE_LOGIN
113   );
114 
115   insert into RA_TERMS_TL (
116     TERM_ID,
117     DESCRIPTION,
118     NAME,
119     LAST_UPDATE_DATE,
120     CREATION_DATE,
121     CREATED_BY,
122     LAST_UPDATED_BY,
123     LAST_UPDATE_LOGIN,
124     LANGUAGE,
125     SOURCE_LANG
126   ) select
127     X_TERM_ID,
128     X_DESCRIPTION,
129     X_NAME,
130     X_LAST_UPDATE_DATE,
131     X_CREATION_DATE,
132     X_CREATED_BY,
133     X_LAST_UPDATED_BY,
134     X_LAST_UPDATE_LOGIN,
135     L.LANGUAGE_CODE,
136     userenv('LANG')
137   from FND_LANGUAGES L
138   where L.INSTALLED_FLAG in ('I', 'B')
139   and not exists
140     (select NULL
141     from RA_TERMS_TL T
142     where T.TERM_ID = X_TERM_ID
143     and T.LANGUAGE = L.LANGUAGE_CODE);
144 
145   open c;
146   fetch c into X_ROWID;
147   if (c%notfound) then
148     close c;
149     raise no_data_found;
150   end if;
151   close c;
152 
153 end INSERT_ROW;
154 
155 procedure LOCK_ROW (
156   X_TERM_ID in NUMBER,
157   X_CREDIT_CHECK_FLAG in VARCHAR2,
158   X_PREPAYMENT_FLAG in VARCHAR2,
159   X_BILLING_CYCLE_ID in NUMBER,
160   X_PRINTING_LEAD_DAYS in NUMBER,
161   X_START_DATE_ACTIVE in DATE,
162   X_END_DATE_ACTIVE in DATE,
163   X_ATTRIBUTE_CATEGORY in VARCHAR2,
164   X_ATTRIBUTE1 in VARCHAR2,
165   X_ATTRIBUTE2 in VARCHAR2,
166   X_ATTRIBUTE3 in VARCHAR2,
167   X_ATTRIBUTE4 in VARCHAR2,
168   X_ATTRIBUTE5 in VARCHAR2,
169   X_ATTRIBUTE6 in VARCHAR2,
170   X_ATTRIBUTE7 in VARCHAR2,
171   X_ATTRIBUTE8 in VARCHAR2,
172   X_ATTRIBUTE9 in VARCHAR2,
173   X_ATTRIBUTE10 in VARCHAR2,
174   X_BASE_AMOUNT in NUMBER,
175   X_CALC_DISCOUNT_ON_LINES_FLAG in VARCHAR2,
176   X_FIRST_INSTALLMENT_CODE in VARCHAR2,
177   X_IN_USE in VARCHAR2,
178   X_PARTIAL_DISCOUNT_FLAG in VARCHAR2,
179   X_ATTRIBUTE11 in VARCHAR2,
180   X_ATTRIBUTE12 in VARCHAR2,
181   X_ATTRIBUTE13 in VARCHAR2,
182   X_ATTRIBUTE14 in VARCHAR2,
183   X_ATTRIBUTE15 in VARCHAR2,
184   X_NAME in VARCHAR2,
185   X_DESCRIPTION in VARCHAR2
186 ) is
187 --nvl added for prepayment_flag because this can contain null for existing records
188   cursor c is select
189       CREDIT_CHECK_FLAG,
190       NVL(PREPAYMENT_FLAG,'N') PREPAYMENT_FLAG,
191       BILLING_CYCLE_ID,
192       PRINTING_LEAD_DAYS,
193       START_DATE_ACTIVE,
194       END_DATE_ACTIVE,
195       ATTRIBUTE_CATEGORY,
196       ATTRIBUTE1,
197       ATTRIBUTE2,
198       ATTRIBUTE3,
199       ATTRIBUTE4,
200       ATTRIBUTE5,
201       ATTRIBUTE6,
202       ATTRIBUTE7,
203       ATTRIBUTE8,
204       ATTRIBUTE9,
205       ATTRIBUTE10,
206       BASE_AMOUNT,
207       CALC_DISCOUNT_ON_LINES_FLAG,
208       FIRST_INSTALLMENT_CODE,
209       IN_USE,
210       PARTIAL_DISCOUNT_FLAG,
211       ATTRIBUTE11,
212       ATTRIBUTE12,
213       ATTRIBUTE13,
214       ATTRIBUTE14,
215       ATTRIBUTE15
216     from RA_TERMS_B
217     where TERM_ID = X_TERM_ID
218     for update of TERM_ID nowait;
219   recinfo c%rowtype;
220 
221   cursor c1 is select
222       NAME,
223       DESCRIPTION,
224       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
225     from RA_TERMS_TL
226     where TERM_ID = X_TERM_ID
227     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
228     for update of TERM_ID nowait;
229 begin
230   open c;
231   fetch c into recinfo;
232   if (c%notfound) then
233     close c;
234     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
235     app_exception.raise_exception;
236   end if;
237   close c;
238   if (    ((recinfo.CREDIT_CHECK_FLAG = X_CREDIT_CHECK_FLAG)
239            OR ((recinfo.CREDIT_CHECK_FLAG is null) AND (X_CREDIT_CHECK_FLAG is null)))
240       AND ((recinfo.PREPAYMENT_FLAG = X_PREPAYMENT_FLAG)
241            OR ((recinfo.PREPAYMENT_FLAG is null) AND (X_PREPAYMENT_FLAG is null)))
242       AND ((recinfo.BILLING_CYCLE_ID = X_BILLING_CYCLE_ID)
243            OR ((recinfo.BILLING_CYCLE_ID is null) AND (X_BILLING_CYCLE_ID is null)))
244       AND ((recinfo.PRINTING_LEAD_DAYS = X_PRINTING_LEAD_DAYS)
245            OR ((recinfo.PRINTING_LEAD_DAYS is null) AND (X_PRINTING_LEAD_DAYS is null)))
246       AND (recinfo.START_DATE_ACTIVE = X_START_DATE_ACTIVE)
247       AND ((recinfo.END_DATE_ACTIVE = X_END_DATE_ACTIVE)
248            OR ((recinfo.END_DATE_ACTIVE is null) AND (X_END_DATE_ACTIVE is null)))
249       AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
250            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
251       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
252            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
253       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
254            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
255       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
256            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
257       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
258            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
259       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
260            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
261       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
262            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
263       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
264            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
265       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
266            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
267       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
268            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
269       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
270            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
271       AND (recinfo.BASE_AMOUNT = X_BASE_AMOUNT)
272       AND (recinfo.CALC_DISCOUNT_ON_LINES_FLAG = X_CALC_DISCOUNT_ON_LINES_FLAG)
273       AND (recinfo.FIRST_INSTALLMENT_CODE = X_FIRST_INSTALLMENT_CODE)
274       AND (recinfo.IN_USE = X_IN_USE)
275       AND (recinfo.PARTIAL_DISCOUNT_FLAG = X_PARTIAL_DISCOUNT_FLAG)
276       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
277            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
278       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
279            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
280       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
281            OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
282       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
283            OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
284       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
285            OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
286   ) then
287     null;
288   else
289     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
290     app_exception.raise_exception;
291   end if;
292 
293   for tlinfo in c1 loop
294     if (tlinfo.BASELANG = 'Y') then
295       if (    (tlinfo.NAME = X_NAME)
296           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
297                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
298       ) then
299         null;
300       else
301         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
302         app_exception.raise_exception;
303       end if;
304     end if;
305   end loop;
306   return;
307 end LOCK_ROW;
308 
309 procedure UPDATE_ROW (
310   X_TERM_ID in NUMBER,
311   X_CREDIT_CHECK_FLAG in VARCHAR2,
312   X_PREPAYMENT_FLAG in VARCHAR2,
313   X_BILLING_CYCLE_ID in NUMBER,
314   X_PRINTING_LEAD_DAYS in NUMBER,
315   X_START_DATE_ACTIVE in DATE,
316   X_END_DATE_ACTIVE in DATE,
317   X_ATTRIBUTE_CATEGORY in VARCHAR2,
318   X_ATTRIBUTE1 in VARCHAR2,
319   X_ATTRIBUTE2 in VARCHAR2,
320   X_ATTRIBUTE3 in VARCHAR2,
321   X_ATTRIBUTE4 in VARCHAR2,
322   X_ATTRIBUTE5 in VARCHAR2,
323   X_ATTRIBUTE6 in VARCHAR2,
324   X_ATTRIBUTE7 in VARCHAR2,
325   X_ATTRIBUTE8 in VARCHAR2,
326   X_ATTRIBUTE9 in VARCHAR2,
327   X_ATTRIBUTE10 in VARCHAR2,
328   X_BASE_AMOUNT in NUMBER,
329   X_CALC_DISCOUNT_ON_LINES_FLAG in VARCHAR2,
330   X_FIRST_INSTALLMENT_CODE in VARCHAR2,
331   X_IN_USE in VARCHAR2,
332   X_PARTIAL_DISCOUNT_FLAG in VARCHAR2,
333   X_ATTRIBUTE11 in VARCHAR2,
334   X_ATTRIBUTE12 in VARCHAR2,
335   X_ATTRIBUTE13 in VARCHAR2,
336   X_ATTRIBUTE14 in VARCHAR2,
337   X_ATTRIBUTE15 in VARCHAR2,
338   X_NAME in VARCHAR2,
339   X_DESCRIPTION in VARCHAR2,
340   X_LAST_UPDATE_DATE in DATE,
341   X_LAST_UPDATED_BY in NUMBER,
342   X_LAST_UPDATE_LOGIN in NUMBER
343 ) is
344 begin
345   update RA_TERMS_B set
346     CREDIT_CHECK_FLAG = X_CREDIT_CHECK_FLAG,
347     PREPAYMENT_FLAG = X_PREPAYMENT_FLAG,
348     BILLING_CYCLE_ID = X_BILLING_CYCLE_ID,
349     PRINTING_LEAD_DAYS = X_PRINTING_LEAD_DAYS,
350     START_DATE_ACTIVE = X_START_DATE_ACTIVE,
351     END_DATE_ACTIVE = X_END_DATE_ACTIVE,
352     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
353     ATTRIBUTE1 = X_ATTRIBUTE1,
354     ATTRIBUTE2 = X_ATTRIBUTE2,
355     ATTRIBUTE3 = X_ATTRIBUTE3,
356     ATTRIBUTE4 = X_ATTRIBUTE4,
357     ATTRIBUTE5 = X_ATTRIBUTE5,
358     ATTRIBUTE6 = X_ATTRIBUTE6,
359     ATTRIBUTE7 = X_ATTRIBUTE7,
360     ATTRIBUTE8 = X_ATTRIBUTE8,
361     ATTRIBUTE9 = X_ATTRIBUTE9,
362     ATTRIBUTE10 = X_ATTRIBUTE10,
363     BASE_AMOUNT = X_BASE_AMOUNT,
364     CALC_DISCOUNT_ON_LINES_FLAG = X_CALC_DISCOUNT_ON_LINES_FLAG,
365     FIRST_INSTALLMENT_CODE = X_FIRST_INSTALLMENT_CODE,
366     IN_USE = X_IN_USE,
367     PARTIAL_DISCOUNT_FLAG = X_PARTIAL_DISCOUNT_FLAG,
368     ATTRIBUTE11 = X_ATTRIBUTE11,
369     ATTRIBUTE12 = X_ATTRIBUTE12,
370     ATTRIBUTE13 = X_ATTRIBUTE13,
371     ATTRIBUTE14 = X_ATTRIBUTE14,
372     ATTRIBUTE15 = X_ATTRIBUTE15,
373     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
374     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
375     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
376   where TERM_ID = X_TERM_ID;
377 
378   if (sql%notfound) then
379     raise no_data_found;
380   end if;
381 
382   update RA_TERMS_TL set
383     NAME = X_NAME,
384     DESCRIPTION = X_DESCRIPTION,
385     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
386     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
387     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
388     SOURCE_LANG = userenv('LANG')
389   where TERM_ID = X_TERM_ID
390   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
391 
392   if (sql%notfound) then
393     raise no_data_found;
394   end if;
395 end UPDATE_ROW;
396 
397 procedure DELETE_ROW (
398   X_TERM_ID in NUMBER
399 ) is
400 begin
401   delete from RA_TERMS_TL
402   where TERM_ID = X_TERM_ID;
403 
404   if (sql%notfound) then
405     raise no_data_found;
406   end if;
407 
408   delete from RA_TERMS_B
409   where TERM_ID = X_TERM_ID;
410 
411   if (sql%notfound) then
412     raise no_data_found;
413   end if;
414 end DELETE_ROW;
415 
416 procedure ADD_LANGUAGE
417 is
418 begin
419   delete from RA_TERMS_TL T
420   where not exists
421     (select NULL
422     from RA_TERMS_B B
423     where B.TERM_ID = T.TERM_ID
424     );
425 
426   update RA_TERMS_TL T set (
427       NAME,
428       DESCRIPTION
429     ) = (select
430       B.NAME,
431       B.DESCRIPTION
432     from RA_TERMS_TL B
433     where B.TERM_ID = T.TERM_ID
434     and B.LANGUAGE = T.SOURCE_LANG)
435   where (
436       T.TERM_ID,
437       T.LANGUAGE
438   ) in (select
439       SUBT.TERM_ID,
440       SUBT.LANGUAGE
441     from RA_TERMS_TL SUBB, RA_TERMS_TL SUBT
442     where SUBB.TERM_ID = SUBT.TERM_ID
443     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
444     and (SUBB.NAME <> SUBT.NAME
445       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
446       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
447       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
448   ));
449 
450   insert into RA_TERMS_TL (
451     TERM_ID,
452     DESCRIPTION,
453     NAME,
454     LAST_UPDATE_DATE,
455     CREATION_DATE,
456     CREATED_BY,
457     LAST_UPDATED_BY,
458     LAST_UPDATE_LOGIN,
459     LANGUAGE,
460     SOURCE_LANG
461   ) select
462     B.TERM_ID,
463     B.DESCRIPTION,
464     B.NAME,
465     B.LAST_UPDATE_DATE,
466     B.CREATION_DATE,
467     B.CREATED_BY,
468     B.LAST_UPDATED_BY,
469     B.LAST_UPDATE_LOGIN,
470     L.LANGUAGE_CODE,
471     B.SOURCE_LANG
472   from RA_TERMS_TL B, FND_LANGUAGES L
473   where L.INSTALLED_FLAG in ('I', 'B')
474   and B.LANGUAGE = userenv('LANG')
475   and not exists
476     (select NULL
477     from RA_TERMS_TL T
478     where T.TERM_ID = B.TERM_ID
479     and T.LANGUAGE = L.LANGUAGE_CODE);
480 end ADD_LANGUAGE;
481 
482 procedure LOAD_ROW (
483   X_TERM_ID  in NUMBER,
484   X_CREDIT_CHECK_FLAG  in VARCHAR2,
485   X_PREPAYMENT_FLAG  in VARCHAR2,
486   X_BILLING_CYCLE_ID  in NUMBER,
487   X_PRINTING_LEAD_DAYS in  NUMBER,
488   X_START_DATE_ACTIVE  in DATE,
489   X_END_DATE_ACTIVE  in DATE,
490   X_ATTRIBUTE_CATEGORY in  VARCHAR2,
491   X_ATTRIBUTE1  in VARCHAR2,
492   X_ATTRIBUTE2  in VARCHAR2,
493   X_ATTRIBUTE3  in VARCHAR2,
494   X_ATTRIBUTE4  in VARCHAR2,
495   X_ATTRIBUTE5  in VARCHAR2,
496   X_ATTRIBUTE6  in VARCHAR2,
497   X_ATTRIBUTE7  in VARCHAR2,
498   X_ATTRIBUTE8  in VARCHAR2,
499   X_ATTRIBUTE9  in VARCHAR2,
500   X_ATTRIBUTE10  in VARCHAR2,
501   X_BASE_AMOUNT  in NUMBER,
502   X_CALC_DISCOUNT_ON_LINES_FLAG  in VARCHAR2,
503   X_FIRST_INSTALLMENT_CODE  in VARCHAR2,
504   X_IN_USE  in VARCHAR2,
505   X_PARTIAL_DISCOUNT_FLAG  in VARCHAR2,
506   X_ATTRIBUTE11  in VARCHAR2,
507   X_ATTRIBUTE12  in VARCHAR2,
508   X_ATTRIBUTE13  in VARCHAR2,
509   X_ATTRIBUTE14  in VARCHAR2,
510   X_ATTRIBUTE15  in VARCHAR2,
511   X_NAME  in VARCHAR2,
512   X_DESCRIPTION  in VARCHAR2,
513   X_OWNER   in VARCHAR2
514 ) IS
515 begin
516 
517   declare
518      user_id            number := 0;
519      row_id             varchar2(64);
520 
521   begin
522 
523      if (X_OWNER = 'SEED') then
524         user_id := -1;
525      end if;
526 
527      begin
528      RA_TERMS_TABLE_HANDLER.UPDATE_ROW (
529           X_TERM_ID => X_TERM_ID,
530           X_CREDIT_CHECK_FLAG => X_CREDIT_CHECK_FLAG,
531           X_PREPAYMENT_FLAG => X_PREPAYMENT_FLAG,
532           X_BILLING_CYCLE_ID => X_BILLING_CYCLE_ID,
533           X_PRINTING_LEAD_DAYS => X_PRINTING_LEAD_DAYS,
534           X_START_DATE_ACTIVE => X_START_DATE_ACTIVE,
535           X_END_DATE_ACTIVE => X_END_DATE_ACTIVE,
536           X_ATTRIBUTE_CATEGORY => X_ATTRIBUTE_CATEGORY,
537           X_ATTRIBUTE1 => X_ATTRIBUTE1,
538           X_ATTRIBUTE2 => X_ATTRIBUTE2,
539           X_ATTRIBUTE3 => X_ATTRIBUTE3,
540           X_ATTRIBUTE4 => X_ATTRIBUTE4,
541           X_ATTRIBUTE5 => X_ATTRIBUTE5,
542           X_ATTRIBUTE6 => X_ATTRIBUTE6,
543           X_ATTRIBUTE7 => X_ATTRIBUTE7,
544           X_ATTRIBUTE8 => X_ATTRIBUTE8,
545           X_ATTRIBUTE9 => X_ATTRIBUTE9,
546           X_ATTRIBUTE10 => X_ATTRIBUTE10,
547           X_BASE_AMOUNT => X_BASE_AMOUNT,
548           X_CALC_DISCOUNT_ON_LINES_FLAG => X_CALC_DISCOUNT_ON_LINES_FLAG,
549           X_FIRST_INSTALLMENT_CODE => X_FIRST_INSTALLMENT_CODE,
550           X_IN_USE => X_IN_USE,
551           X_PARTIAL_DISCOUNT_FLAG => X_PARTIAL_DISCOUNT_FLAG,
552           X_ATTRIBUTE11 => X_ATTRIBUTE11,
553           X_ATTRIBUTE12 => X_ATTRIBUTE12,
554           X_ATTRIBUTE13 => X_ATTRIBUTE13,
555           X_ATTRIBUTE14 => X_ATTRIBUTE14,
556           X_ATTRIBUTE15 => X_ATTRIBUTE15,
557           X_NAME => X_NAME,
558           X_DESCRIPTION => X_DESCRIPTION,
559           X_LAST_UPDATE_DATE => sysdate,
560           X_LAST_UPDATED_BY => user_id,
561           X_LAST_UPDATE_LOGIN => 0
562         );
563 
564       exception
565        when NO_DATA_FOUND then
566           RA_TERMS_TABLE_HANDLER.INSERT_ROW (
567              X_ROWID => row_id,
568              X_TERM_ID => X_TERM_ID,
569              X_CREDIT_CHECK_FLAG => X_CREDIT_CHECK_FLAG,
570              X_PREPAYMENT_FLAG => X_PREPAYMENT_FLAG,
571              X_BILLING_CYCLE_ID => X_BILLING_CYCLE_ID,
572              X_PRINTING_LEAD_DAYS => X_PRINTING_LEAD_DAYS,
573              X_START_DATE_ACTIVE => X_START_DATE_ACTIVE,
574              X_END_DATE_ACTIVE => X_END_DATE_ACTIVE,
575              X_ATTRIBUTE_CATEGORY => X_ATTRIBUTE_CATEGORY,
576              X_ATTRIBUTE1 => X_ATTRIBUTE1,
577              X_ATTRIBUTE2 => X_ATTRIBUTE2,
578              X_ATTRIBUTE3 => X_ATTRIBUTE3,
579              X_ATTRIBUTE4 => X_ATTRIBUTE4,
580              X_ATTRIBUTE5 => X_ATTRIBUTE5,
581              X_ATTRIBUTE6 => X_ATTRIBUTE6,
582              X_ATTRIBUTE7 => X_ATTRIBUTE7,
583              X_ATTRIBUTE8 => X_ATTRIBUTE8,
584              X_ATTRIBUTE9 => X_ATTRIBUTE9,
585              X_ATTRIBUTE10 => X_ATTRIBUTE10,
586              X_BASE_AMOUNT => X_BASE_AMOUNT,
587              X_CALC_DISCOUNT_ON_LINES_FLAG => X_CALC_DISCOUNT_ON_LINES_FLAG,
588              X_FIRST_INSTALLMENT_CODE => X_FIRST_INSTALLMENT_CODE,
589              X_IN_USE => X_IN_USE,
590              X_PARTIAL_DISCOUNT_FLAG => X_PARTIAL_DISCOUNT_FLAG,
591              X_ATTRIBUTE11 => X_ATTRIBUTE10,
592              X_ATTRIBUTE12 => X_ATTRIBUTE12,
593              X_ATTRIBUTE13 => X_ATTRIBUTE13,
594              X_ATTRIBUTE14 => X_ATTRIBUTE14,
595              X_ATTRIBUTE15 => X_ATTRIBUTE15,
596              X_NAME        => X_NAME,
597              X_DESCRIPTION => X_DESCRIPTION,
598              X_CREATION_DATE => sysdate,
599              X_CREATED_BY => user_id,
600              X_LAST_UPDATE_DATE => sysdate,
601              X_LAST_UPDATED_BY => user_id,
602              X_LAST_UPDATE_LOGIN => 0
603            );
604      end;
605    end;
606 
607 end LOAD_ROW;
608 
609 
610 procedure TRANSLATE_ROW (
611   X_TERM_ID in NUMBER,
612   X_DESCRIPTION in VARCHAR2,
613   X_NAME in VARCHAR2,
614   X_OWNER in VARCHAR2) IS
615 begin
616 
617     -- only update rows that have not been altered by user
618 
619     update RA_TERMS_TL
620       set description = X_DESCRIPTION,
621           name        = X_NAME,
622           source_lang = userenv('LANG'),
623           last_update_date = sysdate,
624           last_updated_by = decode(X_OWNER, 'SEED', 1, 0),
625           last_update_login = 0
626     where term_id = X_TERM_ID
627     and   userenv('LANG') in (language, source_lang);
628 
629 end TRANSLATE_ROW;
630 
631 end RA_TERMS_TABLE_HANDLER;