DBA Data[Home] [Help]

PACKAGE BODY: APPS.AR_BPA_TEMPLATES_PKG

Source


1 package body AR_BPA_TEMPLATES_PKG as
2 /* $Header: ARBPTMPB.pls 120.4 2006/01/10 01:33:23 lishao noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out nocopy VARCHAR2,
5   X_TEMPLATE_ID in NUMBER,
6   X_REF_TEMPLATE_ID in NUMBER,
7   X_PRIMARY_APP_ID in NUMBER,
8   X_SECONDARY_APP_ID in NUMBER,
9   X_CONTRACT_LINE_TYPE in VARCHAR2,
10   X_SHOW_LINE_DETAILS_FLAG in VARCHAR2,
11   X_SHOW_LINE_GROUPING_FLAG in VARCHAR2,
12   X_SHOW_SEQUENCE_FLAG in VARCHAR2,
13   X_SHOW_ITEMIZED_TAX_FLAG in VARCHAR2,
14   X_USE_AR_TAXOPTION_FLAG in VARCHAR2,
15   X_TAX_SUMMARY_GRPBY in VARCHAR2,
16   X_COMPLETED_FLAG in VARCHAR2,
17   X_SEEDED_FLAG in VARCHAR2,
18   X_HEADER_HEIGHT in NUMBER,
19   X_FOOTER_HEIGHT in NUMBER,
20   X_HEADER_SHOW_TYPE in VARCHAR2,
21   X_FOOTER_SHOW_TYPE in VARCHAR2,
22   X_PAGE_WIDTH in NUMBER,
23   X_PAGE_HEIGHT in NUMBER,
24   X_TOP_MARGIN in NUMBER,
25   X_BOTTOM_MARGIN in NUMBER,
26   X_LEFT_MARGIN in NUMBER,
27   X_RIGHT_MARGIN in NUMBER,
28   X_PAGE_NUMBER_LOC in VARCHAR2,
29   X_PAGE_SETUP_ID in NUMBER,
30   X_SECONDARY_HEADER_HEIGHT in NUMBER,
31   X_EXTERNAL_TEMPLATE_FLAG IN VARCHAR2,
32   X_PRINT_LINES_FLAG IN VARCHAR2,
33   X_TEMPLATE_TYPE  IN VARCHAR2,
34   X_TEMPLATE_NAME in VARCHAR2,
35   X_TEMPLATE_DESCRIPTION in VARCHAR2,
36   X_PRINT_FONT_FAMILY in VARCHAR2,
37   X_PRINT_FONT_SIZE  in VARCHAR2,
38 	X_TRX_CLASS  in VARCHAR2,
39 	X_TEMPLATE_FORMAT  in VARCHAR2,
40   X_CREATION_DATE in DATE,
41   X_CREATED_BY in NUMBER,
42   X_LAST_UPDATE_DATE in DATE,
43   X_LAST_UPDATED_BY in NUMBER,
44   X_LAST_UPDATE_LOGIN in NUMBER
45 ) is
46   cursor C is select ROWID from AR_BPA_TEMPLATES_B
47     where TEMPLATE_ID = X_TEMPLATE_ID
48     ;
49 begin
50   insert into AR_BPA_TEMPLATES_B (
51     TEMPLATE_ID,
52     REF_TEMPLATE_ID,
53     PRIMARY_APP_ID,
54     SECONDARY_APP_ID,
55     CONTRACT_LINE_TYPE,
56     SHOW_LINE_DETAILS_FLAG,
57     SHOW_LINE_GROUPING_FLAG,
58     SHOW_SEQUENCE_FLAG,
59     SHOW_ITEMIZED_TAX_FLAG,
60     USE_AR_TAXOPTION_FLAG,
61     TAX_SUMMARY_GRPBY,
62     COMPLETED_FLAG,
63     SEEDED_FLAG,
64     HEADER_HEIGHT,
65     FOOTER_HEIGHT,
66     HEADER_SHOW_TYPE,
67     FOOTER_SHOW_TYPE,
68     PAGE_WIDTH,
69     PAGE_HEIGHT,
70     TOP_MARGIN,
71     BOTTOM_MARGIN,
72     LEFT_MARGIN,
73     RIGHT_MARGIN,
74     PAGE_NUMBER_LOC,
75     PAGE_SETUP_ID,
76     SECONDARY_HEADER_HEIGHT,
77     EXTERNAL_TEMPLATE_FLAG,
78     PRINT_LINES_FLAG,
79     TEMPLATE_TYPE,
80     PRINT_FONT_FAMILY,
81     PRINT_FONT_SIZE,
82     TRX_CLASS,
83 		TEMPLATE_FORMAT,
84     CREATION_DATE,
85     CREATED_BY,
86     LAST_UPDATE_DATE,
87     LAST_UPDATED_BY,
88     LAST_UPDATE_LOGIN
89   ) values (
90     X_TEMPLATE_ID,
91     X_REF_TEMPLATE_ID,
92     X_PRIMARY_APP_ID,
93     X_SECONDARY_APP_ID,
94     X_CONTRACT_LINE_TYPE,
95     X_SHOW_LINE_DETAILS_FLAG,
96     X_SHOW_LINE_GROUPING_FLAG,
97     X_SHOW_SEQUENCE_FLAG,
98     X_SHOW_ITEMIZED_TAX_FLAG,
99     X_USE_AR_TAXOPTION_FLAG,
100     X_TAX_SUMMARY_GRPBY,
101     X_COMPLETED_FLAG,
102     X_SEEDED_FLAG,
103     X_HEADER_HEIGHT,
104     X_FOOTER_HEIGHT,
105     X_HEADER_SHOW_TYPE,
106     X_FOOTER_SHOW_TYPE,
107     X_PAGE_WIDTH,
108     X_PAGE_HEIGHT,
109     X_TOP_MARGIN,
110     X_BOTTOM_MARGIN,
111     X_LEFT_MARGIN,
112     X_RIGHT_MARGIN,
113     X_PAGE_NUMBER_LOC,
114     X_PAGE_SETUP_ID,
115     X_SECONDARY_HEADER_HEIGHT,
116     X_EXTERNAL_TEMPLATE_FLAG,
117     X_PRINT_LINES_FLAG,
118     X_TEMPLATE_TYPE,
119     X_PRINT_FONT_FAMILY,
120     X_PRINT_FONT_SIZE,
121     X_TRX_CLASS,
122 		X_TEMPLATE_FORMAT,
123     X_CREATION_DATE,
124     X_CREATED_BY,
125     X_LAST_UPDATE_DATE,
126     X_LAST_UPDATED_BY,
127     X_LAST_UPDATE_LOGIN
128   );
129 
130   insert into AR_BPA_TEMPLATES_TL (
131     TEMPLATE_ID,
132     TEMPLATE_NAME,
133     TEMPLATE_DESCRIPTION,
134     CREATED_BY,
135     CREATION_DATE,
136     LAST_UPDATED_BY,
137     LAST_UPDATE_DATE,
138     LAST_UPDATE_LOGIN,
139     LANGUAGE,
140     SOURCE_LANG
141   ) select
142     X_TEMPLATE_ID,
143     X_TEMPLATE_NAME,
144     X_TEMPLATE_DESCRIPTION,
145     X_CREATED_BY,
146     X_CREATION_DATE,
147     X_LAST_UPDATED_BY,
148     X_LAST_UPDATE_DATE,
149     X_LAST_UPDATE_LOGIN,
150     L.LANGUAGE_CODE,
151     userenv('LANG')
152   from FND_LANGUAGES L
153   where L.INSTALLED_FLAG in ('I', 'B')
154   and not exists
155     (select NULL
156     from AR_BPA_TEMPLATES_TL T
157     where T.TEMPLATE_ID = X_TEMPLATE_ID
158     and T.LANGUAGE = L.LANGUAGE_CODE);
159 
160   open c;
161   fetch c into X_ROWID;
162   if (c%notfound) then
163     close c;
164     raise no_data_found;
165   end if;
166   close c;
167 
168 end INSERT_ROW;
169 
170 procedure LOCK_ROW (
171   X_TEMPLATE_ID in NUMBER,
172   X_REF_TEMPLATE_ID in NUMBER,
173   X_PRIMARY_APP_ID in NUMBER,
174   X_SECONDARY_APP_ID in NUMBER,
175   X_CONTRACT_LINE_TYPE in VARCHAR2,
176   X_SHOW_LINE_DETAILS_FLAG in VARCHAR2,
177   X_SHOW_LINE_GROUPING_FLAG in VARCHAR2,
178   X_SHOW_SEQUENCE_FLAG in VARCHAR2,
179   X_SHOW_ITEMIZED_TAX_FLAG in VARCHAR2,
180   X_USE_AR_TAXOPTION_FLAG in VARCHAR2,
181   X_TAX_SUMMARY_GRPBY in VARCHAR2,
182   X_COMPLETED_FLAG in VARCHAR2,
183   X_SEEDED_FLAG in VARCHAR2,
184   X_HEADER_HEIGHT in NUMBER,
185   X_FOOTER_HEIGHT in NUMBER,
186   X_HEADER_SHOW_TYPE in VARCHAR2,
187   X_FOOTER_SHOW_TYPE in VARCHAR2,
188   X_PAGE_WIDTH in NUMBER,
189   X_PAGE_HEIGHT in NUMBER,
190   X_TOP_MARGIN in NUMBER,
191   X_BOTTOM_MARGIN in NUMBER,
192   X_LEFT_MARGIN in NUMBER,
193   X_RIGHT_MARGIN in NUMBER,
194   X_PAGE_NUMBER_LOC in VARCHAR2,
195   X_PAGE_SETUP_ID in NUMBER,
196   X_SECONDARY_HEADER_HEIGHT in NUMBER,
197   X_EXTERNAL_TEMPLATE_FLAG IN VARCHAR2,
198   X_PRINT_LINES_FLAG IN VARCHAR2,
199   X_TEMPLATE_TYPE  IN VARCHAR2,
200   X_TEMPLATE_NAME in VARCHAR2,
201   X_TEMPLATE_DESCRIPTION in VARCHAR2,
202   X_PRINT_FONT_FAMILY in VARCHAR2,
203   X_PRINT_FONT_SIZE in VARCHAR2,
204 	X_TRX_CLASS  in VARCHAR2,
205 	X_TEMPLATE_FORMAT  in VARCHAR2
206 ) is
207   cursor c is select
208       REF_TEMPLATE_ID,
209       PRIMARY_APP_ID,
210       SECONDARY_APP_ID,
211       CONTRACT_LINE_TYPE,
212       SHOW_LINE_DETAILS_FLAG,
213       SHOW_LINE_GROUPING_FLAG,
214       SHOW_SEQUENCE_FLAG,
215       SHOW_ITEMIZED_TAX_FLAG,
216       USE_AR_TAXOPTION_FLAG,
217       TAX_SUMMARY_GRPBY,
218       COMPLETED_FLAG,
219       SEEDED_FLAG,
220       HEADER_HEIGHT,
221       FOOTER_HEIGHT,
222       HEADER_SHOW_TYPE,
223       FOOTER_SHOW_TYPE,
224       PAGE_WIDTH,
225       PAGE_HEIGHT,
226       TOP_MARGIN,
227       BOTTOM_MARGIN,
228       LEFT_MARGIN,
229       RIGHT_MARGIN,
230       PAGE_NUMBER_LOC,
231       PAGE_SETUP_ID,
232       SECONDARY_HEADER_HEIGHT,
233       EXTERNAL_TEMPLATE_FLAG,
234       PRINT_LINES_FLAG,
235       TEMPLATE_TYPE,
236       PRINT_FONT_FAMILY,
237       PRINT_FONT_SIZE,
238       TRX_CLASS,
239       TEMPLATE_FORMAT
240     from AR_BPA_TEMPLATES_B
241     where TEMPLATE_ID = X_TEMPLATE_ID
242     for update of TEMPLATE_ID nowait;
243   recinfo c%rowtype;
244 
245   cursor c1 is select
246       TEMPLATE_NAME,
247       TEMPLATE_DESCRIPTION,
248       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
249     from AR_BPA_TEMPLATES_TL
250     where TEMPLATE_ID = X_TEMPLATE_ID
251     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
252     for update of TEMPLATE_ID nowait;
253 begin
254   open c;
255   fetch c into recinfo;
256   if (c%notfound) then
257     close c;
258     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
259     app_exception.raise_exception;
260   end if;
261   close c;
262   if (    ((recinfo.REF_TEMPLATE_ID = X_REF_TEMPLATE_ID)
263            OR ((recinfo.REF_TEMPLATE_ID is null) AND (X_REF_TEMPLATE_ID is null)))
264       AND (recinfo.PRIMARY_APP_ID = X_PRIMARY_APP_ID)
265       AND ((recinfo.SECONDARY_APP_ID = X_SECONDARY_APP_ID)
266            OR ((recinfo.SECONDARY_APP_ID is null) AND (X_SECONDARY_APP_ID is null)))
267       AND ((recinfo.CONTRACT_LINE_TYPE = X_CONTRACT_LINE_TYPE)
268            OR ((recinfo.CONTRACT_LINE_TYPE is null) AND (X_CONTRACT_LINE_TYPE is null)))
269       AND ((recinfo.SHOW_LINE_DETAILS_FLAG = X_SHOW_LINE_DETAILS_FLAG)
270            OR ((recinfo.SHOW_LINE_DETAILS_FLAG is null) AND (X_SHOW_LINE_DETAILS_FLAG is null)))
271       AND ((recinfo.SHOW_LINE_GROUPING_FLAG = X_SHOW_LINE_GROUPING_FLAG)
272            OR ((recinfo.SHOW_LINE_GROUPING_FLAG is null) AND (X_SHOW_LINE_GROUPING_FLAG is null)))
273       AND ((recinfo.SHOW_SEQUENCE_FLAG = X_SHOW_SEQUENCE_FLAG)
274            OR ((recinfo.SHOW_SEQUENCE_FLAG is null) AND (X_SHOW_SEQUENCE_FLAG is null)))
275       AND ((recinfo.SHOW_ITEMIZED_TAX_FLAG = X_SHOW_ITEMIZED_TAX_FLAG)
276            OR ((recinfo.SHOW_ITEMIZED_TAX_FLAG is null) AND (X_SHOW_ITEMIZED_TAX_FLAG is null)))
277       AND ((recinfo.USE_AR_TAXOPTION_FLAG = X_USE_AR_TAXOPTION_FLAG)
278            OR ((recinfo.USE_AR_TAXOPTION_FLAG is null) AND (X_USE_AR_TAXOPTION_FLAG is null)))
279       AND ((recinfo.TAX_SUMMARY_GRPBY = X_TAX_SUMMARY_GRPBY)
280            OR ((recinfo.TAX_SUMMARY_GRPBY is null) AND (X_TAX_SUMMARY_GRPBY is null)))
281       AND ((recinfo.COMPLETED_FLAG = X_COMPLETED_FLAG)
282            OR ((recinfo.COMPLETED_FLAG is null) AND (X_COMPLETED_FLAG is null)))
283       AND ((recinfo.SEEDED_FLAG = X_SEEDED_FLAG)
284            OR ((recinfo.SEEDED_FLAG is null) AND (X_SEEDED_FLAG is null)))
285       AND ((recinfo.HEADER_HEIGHT = X_HEADER_HEIGHT)
286            OR ((recinfo.HEADER_HEIGHT is null) AND (X_HEADER_HEIGHT is null)))
287       AND ((recinfo.FOOTER_HEIGHT = X_FOOTER_HEIGHT)
288            OR ((recinfo.FOOTER_HEIGHT is null) AND (X_FOOTER_HEIGHT is null)))
289       AND ((recinfo.HEADER_SHOW_TYPE = X_HEADER_SHOW_TYPE)
290            OR ((recinfo.HEADER_SHOW_TYPE is null) AND (X_HEADER_SHOW_TYPE is null)))
291       AND ((recinfo.FOOTER_SHOW_TYPE = X_FOOTER_SHOW_TYPE)
292            OR ((recinfo.FOOTER_SHOW_TYPE is null) AND (X_FOOTER_SHOW_TYPE is null)))
293       AND ((recinfo.PAGE_WIDTH = X_PAGE_WIDTH)
294            OR ((recinfo.PAGE_WIDTH is null) AND (X_PAGE_WIDTH is null)))
295       AND ((recinfo.PAGE_HEIGHT = X_PAGE_HEIGHT)
296            OR ((recinfo.PAGE_HEIGHT is null) AND (X_PAGE_HEIGHT is null)))
297       AND ((recinfo.TOP_MARGIN = X_TOP_MARGIN)
298            OR ((recinfo.TOP_MARGIN is null) AND (X_TOP_MARGIN is null)))
299       AND ((recinfo.BOTTOM_MARGIN = X_BOTTOM_MARGIN)
300            OR ((recinfo.BOTTOM_MARGIN is null) AND (X_BOTTOM_MARGIN is null)))
301       AND ((recinfo.LEFT_MARGIN = X_LEFT_MARGIN)
302            OR ((recinfo.LEFT_MARGIN is null) AND (X_LEFT_MARGIN is null)))
303       AND ((recinfo.RIGHT_MARGIN = X_RIGHT_MARGIN)
304            OR ((recinfo.RIGHT_MARGIN is null) AND (X_RIGHT_MARGIN is null)))
305       AND ((recinfo.PAGE_NUMBER_LOC = X_PAGE_NUMBER_LOC)
306            OR ((recinfo.PAGE_NUMBER_LOC is null) AND (X_PAGE_NUMBER_LOC is null)))
307       AND ((recinfo.PAGE_SETUP_ID = X_PAGE_SETUP_ID)
308            OR ((recinfo.PAGE_SETUP_ID is null) AND (X_PAGE_SETUP_ID is null)))
309       AND ((recinfo.SECONDARY_HEADER_HEIGHT = X_SECONDARY_HEADER_HEIGHT)
310            OR ((recinfo.SECONDARY_HEADER_HEIGHT is null) AND (X_SECONDARY_HEADER_HEIGHT is null)))
311       AND ((recinfo.EXTERNAL_TEMPLATE_FLAG = X_EXTERNAL_TEMPLATE_FLAG )
312            OR ((recinfo.EXTERNAL_TEMPLATE_FLAG is null) AND (X_EXTERNAL_TEMPLATE_FLAG is null)))
313       AND ((recinfo.TEMPLATE_TYPE = X_TEMPLATE_TYPE)
314            OR ((recinfo.TEMPLATE_TYPE is null) AND (X_TEMPLATE_TYPE is null)))
315       AND ((recinfo.PRINT_LINES_FLAG = X_PRINT_LINES_FLAG )
316            OR ((recinfo.PRINT_LINES_FLAG is null) AND (X_PRINT_LINES_FLAG is null)))
317       AND ((recinfo.PRINT_FONT_FAMILY = X_PRINT_FONT_FAMILY )
318            OR ((recinfo.PRINT_FONT_FAMILY  is null) AND (X_PRINT_FONT_FAMILY is null)))
319       AND ((recinfo.PRINT_FONT_SIZE = X_PRINT_FONT_SIZE )
320            OR ((recinfo.PRINT_FONT_SIZE  is null) AND (X_PRINT_FONT_SIZE is null)))
321       AND ((recinfo.TRX_CLASS = X_TRX_CLASS )
322            OR ((recinfo.TRX_CLASS is null) AND (X_TRX_CLASS is null)))
323       AND ((recinfo.TEMPLATE_FORMAT = X_TEMPLATE_FORMAT )
324            OR ((recinfo.TEMPLATE_FORMAT is null) AND (X_TEMPLATE_FORMAT is null)))
325   ) then
326     null;
327   else
328     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
329     app_exception.raise_exception;
330   end if;
331 
332   for tlinfo in c1 loop
333     if (tlinfo.BASELANG = 'Y') then
334       if (    (tlinfo.TEMPLATE_NAME = X_TEMPLATE_NAME)
335           AND ((tlinfo.TEMPLATE_DESCRIPTION = X_TEMPLATE_DESCRIPTION)
336                OR ((tlinfo.TEMPLATE_DESCRIPTION is null) AND (X_TEMPLATE_DESCRIPTION is null)))
337       ) then
338         null;
339       else
340         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
341         app_exception.raise_exception;
342       end if;
343     end if;
344   end loop;
345   return;
346 end LOCK_ROW;
347 
348 procedure UPDATE_ROW (
349   X_TEMPLATE_ID in NUMBER,
350   X_REF_TEMPLATE_ID in NUMBER,
351   X_PRIMARY_APP_ID in NUMBER,
352   X_SECONDARY_APP_ID in NUMBER,
353   X_CONTRACT_LINE_TYPE in VARCHAR2,
354   X_SHOW_LINE_DETAILS_FLAG in VARCHAR2,
355   X_SHOW_LINE_GROUPING_FLAG in VARCHAR2,
356   X_SHOW_SEQUENCE_FLAG in VARCHAR2,
357   X_SHOW_ITEMIZED_TAX_FLAG in VARCHAR2,
358   X_USE_AR_TAXOPTION_FLAG in VARCHAR2,
359   X_TAX_SUMMARY_GRPBY in VARCHAR2,
360   X_COMPLETED_FLAG in VARCHAR2,
361   X_SEEDED_FLAG in VARCHAR2,
362   X_HEADER_HEIGHT in NUMBER,
363   X_FOOTER_HEIGHT in NUMBER,
364   X_HEADER_SHOW_TYPE in VARCHAR2,
365   X_FOOTER_SHOW_TYPE in VARCHAR2,
366   X_PAGE_WIDTH in NUMBER,
367   X_PAGE_HEIGHT in NUMBER,
368   X_TOP_MARGIN in NUMBER,
369   X_BOTTOM_MARGIN in NUMBER,
370   X_LEFT_MARGIN in NUMBER,
371   X_RIGHT_MARGIN in NUMBER,
372   X_PAGE_NUMBER_LOC in VARCHAR2,
373   X_PAGE_SETUP_ID in NUMBER,
374   X_SECONDARY_HEADER_HEIGHT in NUMBER,
375   X_EXTERNAL_TEMPLATE_FLAG IN VARCHAR2,
376   X_PRINT_LINES_FLAG IN VARCHAR2,
377   X_TEMPLATE_TYPE  IN VARCHAR2,
378   X_TEMPLATE_NAME in VARCHAR2,
379   X_TEMPLATE_DESCRIPTION in VARCHAR2,
380   X_PRINT_FONT_FAMILY in VARCHAR2,
381   X_PRINT_FONT_SIZE in VARCHAR2,
382   X_TRX_CLASS in VARCHAR2,
383   X_TEMPLATE_FORMAT in VARCHAR2,
384   X_LAST_UPDATE_DATE in DATE,
385   X_LAST_UPDATED_BY in NUMBER,
386   X_LAST_UPDATE_LOGIN in NUMBER
387 ) is
388 begin
389   update AR_BPA_TEMPLATES_B set
390     REF_TEMPLATE_ID = X_REF_TEMPLATE_ID,
391     PRIMARY_APP_ID = X_PRIMARY_APP_ID,
392     SECONDARY_APP_ID = X_SECONDARY_APP_ID,
393     CONTRACT_LINE_TYPE = X_CONTRACT_LINE_TYPE,
394     SHOW_LINE_DETAILS_FLAG = X_SHOW_LINE_DETAILS_FLAG,
395     SHOW_LINE_GROUPING_FLAG = X_SHOW_LINE_GROUPING_FLAG,
396     SHOW_SEQUENCE_FLAG = X_SHOW_SEQUENCE_FLAG,
397     SHOW_ITEMIZED_TAX_FLAG = X_SHOW_ITEMIZED_TAX_FLAG,
398     USE_AR_TAXOPTION_FLAG = X_USE_AR_TAXOPTION_FLAG,
399     TAX_SUMMARY_GRPBY = X_TAX_SUMMARY_GRPBY,
400     COMPLETED_FLAG = X_COMPLETED_FLAG,
401     SEEDED_FLAG = X_SEEDED_FLAG,
402     HEADER_HEIGHT = X_HEADER_HEIGHT,
403     FOOTER_HEIGHT = X_FOOTER_HEIGHT,
404     HEADER_SHOW_TYPE = X_HEADER_SHOW_TYPE,
405     FOOTER_SHOW_TYPE = X_FOOTER_SHOW_TYPE,
406     PAGE_WIDTH = X_PAGE_WIDTH,
407     PAGE_HEIGHT = X_PAGE_HEIGHT,
408     TOP_MARGIN = X_TOP_MARGIN,
409     BOTTOM_MARGIN = X_BOTTOM_MARGIN,
410     LEFT_MARGIN = X_LEFT_MARGIN,
411     RIGHT_MARGIN = X_RIGHT_MARGIN,
412     PAGE_NUMBER_LOC = X_PAGE_NUMBER_LOC,
413     PAGE_SETUP_ID = X_PAGE_SETUP_ID,
414     SECONDARY_HEADER_HEIGHT = X_SECONDARY_HEADER_HEIGHT,
415     EXTERNAL_TEMPLATE_FLAG = X_EXTERNAL_TEMPLATE_FLAG,
416     PRINT_LINES_FLAG = X_PRINT_LINES_FLAG ,
417     TEMPLATE_TYPE  = X_TEMPLATE_TYPE,
418     PRINT_FONT_FAMILY = X_PRINT_FONT_FAMILY,
419     PRINT_FONT_SIZE = X_PRINT_FONT_SIZE,
420     TRX_CLASS = X_TRX_CLASS,
421     TEMPLATE_FORMAT = X_TEMPLATE_FORMAT,
422     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
423     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
424     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
425   where TEMPLATE_ID = X_TEMPLATE_ID;
426 
427   if (sql%notfound) then
428     raise no_data_found;
429   end if;
430 
434     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
431   update AR_BPA_TEMPLATES_TL set
432     TEMPLATE_NAME = X_TEMPLATE_NAME,
433     TEMPLATE_DESCRIPTION = X_TEMPLATE_DESCRIPTION,
435     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
436     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
437     SOURCE_LANG = userenv('LANG')
438   where TEMPLATE_ID = X_TEMPLATE_ID
439   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
440 
441   if (sql%notfound) then
442     raise no_data_found;
443   end if;
444 end UPDATE_ROW;
445 
446 procedure DELETE_ROW (
447   X_TEMPLATE_ID in NUMBER
448 ) is
449 begin
450 
451   /* First delete from content areas. Used by UI while deleting template to speed
452      up content area deletion. In any case without a template, it's content areas (detail)
453      mustn't exist
454   */
455   delete from AR_BPA_CONTENT_AREAS_TL
456   where content_area_id in (select content_area_id from ar_bpa_content_areas_b
457                                where template_id = X_TEMPLATE_ID);
458 
459   delete from AR_BPA_CONTENT_AREAS_B
460   where TEMPLATE_ID = X_TEMPLATE_ID;
461 
462   delete from AR_BPA_AREA_ITEMS
463   where TEMPLATE_ID = X_TEMPLATE_ID;
464 
465   delete from AR_BPA_TEMPLATE_FILES
466   where TEMPLATE_ID = X_TEMPLATE_ID;
467 
468   delete from AR_BPA_TEMPLATE_FIELDS
469   where TEMPLATE_ID = X_TEMPLATE_ID;
470 
471   delete from AR_BPA_TEMPLATES_TL
472   where TEMPLATE_ID = X_TEMPLATE_ID;
473 
474   if (sql%notfound) then
475     raise no_data_found;
476   end if;
477 
478   delete from AR_BPA_TEMPLATES_B
479   where TEMPLATE_ID = X_TEMPLATE_ID;
480 
481   if (sql%notfound) then
482     raise no_data_found;
483   end if;
484 end DELETE_ROW;
485 
486 procedure ADD_LANGUAGE
487 is
488 begin
489   delete from AR_BPA_TEMPLATES_TL T
490   where not exists
491     (select NULL
492     from AR_BPA_TEMPLATES_B B
493     where B.TEMPLATE_ID = T.TEMPLATE_ID
494     );
495 
496   update AR_BPA_TEMPLATES_TL T set (
497       TEMPLATE_NAME,
498       TEMPLATE_DESCRIPTION
499     ) = (select
500       B.TEMPLATE_NAME,
501       B.TEMPLATE_DESCRIPTION
502     from AR_BPA_TEMPLATES_TL B
503     where B.TEMPLATE_ID = T.TEMPLATE_ID
504     and B.LANGUAGE = T.SOURCE_LANG)
505   where (
506       T.TEMPLATE_ID,
507       T.LANGUAGE
508   ) in (select
509       SUBT.TEMPLATE_ID,
510       SUBT.LANGUAGE
511     from AR_BPA_TEMPLATES_TL SUBB, AR_BPA_TEMPLATES_TL SUBT
512     where SUBB.TEMPLATE_ID = SUBT.TEMPLATE_ID
513     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
514     and (SUBB.TEMPLATE_NAME <> SUBT.TEMPLATE_NAME
515       or SUBB.TEMPLATE_DESCRIPTION <> SUBT.TEMPLATE_DESCRIPTION
516       or (SUBB.TEMPLATE_DESCRIPTION is null and SUBT.TEMPLATE_DESCRIPTION is not null)
517       or (SUBB.TEMPLATE_DESCRIPTION is not null and SUBT.TEMPLATE_DESCRIPTION is null)
518   ));
519 
520   insert into AR_BPA_TEMPLATES_TL (
521     TEMPLATE_ID,
522     TEMPLATE_NAME,
523     TEMPLATE_DESCRIPTION,
524     CREATED_BY,
525     CREATION_DATE,
526     LAST_UPDATED_BY,
527     LAST_UPDATE_DATE,
528     LAST_UPDATE_LOGIN,
529     LANGUAGE,
530     SOURCE_LANG
531   ) select /*+ ORDERED */
532     B.TEMPLATE_ID,
533     B.TEMPLATE_NAME,
534     B.TEMPLATE_DESCRIPTION,
535     B.CREATED_BY,
536     B.CREATION_DATE,
537     B.LAST_UPDATED_BY,
538     B.LAST_UPDATE_DATE,
539     B.LAST_UPDATE_LOGIN,
540     L.LANGUAGE_CODE,
541     B.SOURCE_LANG
542   from AR_BPA_TEMPLATES_TL B, FND_LANGUAGES L
543   where L.INSTALLED_FLAG in ('I', 'B')
544   and B.LANGUAGE = userenv('LANG')
545   and not exists
546     (select NULL
547     from AR_BPA_TEMPLATES_TL T
548     where T.TEMPLATE_ID = B.TEMPLATE_ID
549     and T.LANGUAGE = L.LANGUAGE_CODE);
550 end ADD_LANGUAGE;
551 
552 procedure LOAD_ROW (
553         X_COMPLETED_FLAG                 IN VARCHAR2,
554         X_CONTRACT_LINE_TYPE             IN VARCHAR2,
555         X_PRIMARY_APP_ID                 IN NUMBER,
556         X_REF_TEMPLATE_ID                IN NUMBER,
557         X_SECONDARY_APP_ID               IN NUMBER,
558         X_SEEDED_FLAG                    IN VARCHAR2,
559         X_SHOW_ITEMIZED_TAX_FLAG         IN VARCHAR2,
560         X_SHOW_LINE_DETAILS_FLAG         IN VARCHAR2,
561         X_SHOW_LINE_GROUPING_FLAG        IN VARCHAR2,
562         X_SHOW_SEQUENCE_FLAG             IN VARCHAR2,
563         X_TAX_SUMMARY_GRPBY              IN VARCHAR2,
564         X_TEMPLATE_DESCRIPTION           IN VARCHAR2,
565         X_TEMPLATE_ID                    IN NUMBER,
566         X_TEMPLATE_NAME                  IN VARCHAR2,
567         X_USE_AR_TAXOPTION_FLAG          IN VARCHAR2,
568 	  X_HEADER_HEIGHT                  IN NUMBER,
569 	  X_FOOTER_HEIGHT                  IN NUMBER,
570 	  X_HEADER_SHOW_TYPE               IN VARCHAR2,
571 	  X_FOOTER_SHOW_TYPE               IN VARCHAR2,
572 	  X_PAGE_WIDTH                     IN NUMBER,
573 	  X_PAGE_HEIGHT                    IN NUMBER,
574 	  X_TOP_MARGIN                     IN NUMBER,
575 	  X_BOTTOM_MARGIN                  IN NUMBER,
576 	  X_LEFT_MARGIN                    IN NUMBER,
577 	  X_RIGHT_MARGIN                   IN NUMBER,
578 	  X_PAGE_NUMBER_LOC                IN VARCHAR2,
579 	  X_PAGE_SETUP_ID                  IN NUMBER,
580         X_SECONDARY_HEADER_HEIGHT in NUMBER,
581         X_EXTERNAL_TEMPLATE_FLAG IN VARCHAR2,
582         X_PRINT_LINES_FLAG IN VARCHAR2,
583         X_TEMPLATE_TYPE  IN VARCHAR2,
584 	  X_PRINT_FONT_FAMILY in VARCHAR2,
585 	  X_PRINT_FONT_SIZE  in VARCHAR2,
586 	  X_TRX_CLASS in VARCHAR2,
587 	  X_TEMPLATE_FORMAT in VARCHAR2,
591    declare
588         X_OWNER                          IN VARCHAR2
589 ) IS
590   begin
592      user_id            number := 0;
593      row_id             varchar2(64);
594    begin
595      if (X_OWNER = 'SEED') then
596         user_id := 1;
597     end if;
598 
599     AR_BPA_TEMPLATES_PKG.UPDATE_ROW (
600 		X_TEMPLATE_ID 			=> X_TEMPLATE_ID,
601 		X_REF_TEMPLATE_ID 		=> X_REF_TEMPLATE_ID,
602 		X_PRIMARY_APP_ID 		=> X_PRIMARY_APP_ID,
603 		X_SECONDARY_APP_ID 		=> X_SECONDARY_APP_ID,
604 		X_CONTRACT_LINE_TYPE 		=> X_CONTRACT_LINE_TYPE,
605 		X_SHOW_LINE_DETAILS_FLAG 	=> X_SHOW_LINE_DETAILS_FLAG,
606 		X_SHOW_LINE_GROUPING_FLAG 	=> X_SHOW_LINE_GROUPING_FLAG,
607 		X_SHOW_SEQUENCE_FLAG 		=> X_SHOW_SEQUENCE_FLAG,
608 		X_SHOW_ITEMIZED_TAX_FLAG 	=> X_SHOW_ITEMIZED_TAX_FLAG,
609 		X_USE_AR_TAXOPTION_FLAG 	=> X_USE_AR_TAXOPTION_FLAG,
610 		X_TAX_SUMMARY_GRPBY 		=> X_TAX_SUMMARY_GRPBY,
611 		X_COMPLETED_FLAG 		=> X_COMPLETED_FLAG,
612 		X_SEEDED_FLAG 			=> X_SEEDED_FLAG,
613 		X_TEMPLATE_NAME 		=> X_TEMPLATE_NAME,
614 		X_TEMPLATE_DESCRIPTION 	=> X_TEMPLATE_DESCRIPTION,
615     	      X_HEADER_HEIGHT                  	=>  X_HEADER_HEIGHT                  ,
616 	      X_FOOTER_HEIGHT                  	=>  X_FOOTER_HEIGHT                  ,
617 	      X_HEADER_SHOW_TYPE               	=>  X_HEADER_SHOW_TYPE               ,
618 	      X_FOOTER_SHOW_TYPE               	=>  X_FOOTER_SHOW_TYPE               ,
619 	      X_PAGE_WIDTH                     	=>  X_PAGE_WIDTH                     ,
620 	      X_PAGE_HEIGHT                    	=>  X_PAGE_HEIGHT                    ,
621 	      X_TOP_MARGIN                     	=>  X_TOP_MARGIN                     ,
622 	      X_BOTTOM_MARGIN                  	=>  X_BOTTOM_MARGIN                  ,
623 	      X_LEFT_MARGIN                    	=>  X_LEFT_MARGIN                    ,
624 	      X_RIGHT_MARGIN                   	=>  X_RIGHT_MARGIN                   ,
625 	      X_PAGE_NUMBER_LOC                	=>  X_PAGE_NUMBER_LOC                ,
626 	      X_PAGE_SETUP_ID                  	=>  X_PAGE_SETUP_ID                  ,
627 	      X_SECONDARY_HEADER_HEIGHT        	=>  X_SECONDARY_HEADER_HEIGHT        ,
628             X_EXTERNAL_TEMPLATE_FLAG            =>  X_EXTERNAL_TEMPLATE_FLAG  ,
629             X_PRINT_LINES_FLAG               =>  X_PRINT_LINES_FLAG ,
630             X_TEMPLATE_TYPE                     =>  X_TEMPLATE_TYPE ,
631 		X_PRINT_FONT_FAMILY                 =>  X_PRINT_FONT_FAMILY,
632             X_PRINT_FONT_SIZE                   =>  X_PRINT_FONT_SIZE,
633             X_TRX_CLASS => X_TRX_CLASS,
634             X_TEMPLATE_FORMAT => X_TEMPLATE_FORMAT,
635 		X_LAST_UPDATE_DATE 	=> sysdate,
636 		X_LAST_UPDATED_BY 	=> user_id,
637 		X_LAST_UPDATE_LOGIN 	=> 0);
638  exception
639        when NO_DATA_FOUND then
640            AR_BPA_TEMPLATES_PKG.INSERT_ROW (
641   		X_ROWID 			=> row_id,
642 		X_TEMPLATE_ID 			=> X_TEMPLATE_ID,
643 		X_REF_TEMPLATE_ID 		=> X_REF_TEMPLATE_ID,
644 		X_PRIMARY_APP_ID 		=> X_PRIMARY_APP_ID,
645 		X_SECONDARY_APP_ID 		=> X_SECONDARY_APP_ID,
646 		X_CONTRACT_LINE_TYPE 		=> X_CONTRACT_LINE_TYPE,
647 		X_SHOW_LINE_DETAILS_FLAG 	=> X_SHOW_LINE_DETAILS_FLAG,
648 		X_SHOW_LINE_GROUPING_FLAG 	=> X_SHOW_LINE_GROUPING_FLAG,
649 		X_SHOW_SEQUENCE_FLAG 		=> X_SHOW_SEQUENCE_FLAG,
650 		X_SHOW_ITEMIZED_TAX_FLAG 	=> X_SHOW_ITEMIZED_TAX_FLAG,
651 		X_USE_AR_TAXOPTION_FLAG 	=> X_USE_AR_TAXOPTION_FLAG,
652 		X_TAX_SUMMARY_GRPBY 		=> X_TAX_SUMMARY_GRPBY,
653 		X_COMPLETED_FLAG 		=> X_COMPLETED_FLAG,
654 		X_SEEDED_FLAG 			=> X_SEEDED_FLAG,
655 		X_TEMPLATE_NAME 		=> X_TEMPLATE_NAME,
656 		X_TEMPLATE_DESCRIPTION 		=> X_TEMPLATE_DESCRIPTION,
657     	      X_HEADER_HEIGHT                  	=>  X_HEADER_HEIGHT                  ,
658 	      X_FOOTER_HEIGHT                  	=>  X_FOOTER_HEIGHT                  ,
659 	      X_HEADER_SHOW_TYPE               	=>  X_HEADER_SHOW_TYPE               ,
660 	      X_FOOTER_SHOW_TYPE               	=>  X_FOOTER_SHOW_TYPE               ,
661 	      X_PAGE_WIDTH                     	=>  X_PAGE_WIDTH                     ,
662 	      X_PAGE_HEIGHT                    	=>  X_PAGE_HEIGHT                    ,
663 	      X_TOP_MARGIN                     	=>  X_TOP_MARGIN                     ,
664 	      X_BOTTOM_MARGIN                  	=>  X_BOTTOM_MARGIN                  ,
665 	      X_LEFT_MARGIN                    	=>  X_LEFT_MARGIN                    ,
666 	      X_RIGHT_MARGIN                   	=>  X_RIGHT_MARGIN                   ,
667 	      X_PAGE_NUMBER_LOC                	=>  X_PAGE_NUMBER_LOC                ,
668 	      X_PAGE_SETUP_ID                  	=>  X_PAGE_SETUP_ID                  ,
669 	      X_SECONDARY_HEADER_HEIGHT        	=>  X_SECONDARY_HEADER_HEIGHT        ,
670             X_EXTERNAL_TEMPLATE_FLAG            =>  X_EXTERNAL_TEMPLATE_FLAG  ,
671             X_PRINT_LINES_FLAG               =>  X_PRINT_LINES_FLAG ,
672             X_TEMPLATE_TYPE                     =>  X_TEMPLATE_TYPE ,
676             X_TEMPLATE_FORMAT => X_TEMPLATE_FORMAT,
673 		X_PRINT_FONT_FAMILY                 =>  X_PRINT_FONT_FAMILY,
674             X_PRINT_FONT_SIZE                   =>  X_PRINT_FONT_SIZE,
675             X_TRX_CLASS => X_TRX_CLASS,
677 		X_CREATION_DATE 	=> sysdate,
678                 X_CREATED_BY 		=> user_id,
679                 X_LAST_UPDATE_DATE 	=> sysdate,
680                 X_LAST_UPDATED_BY 	=> user_id,
681                 X_LAST_UPDATE_LOGIN 	=> 0);
682     end;
683 end LOAD_ROW;
684 
685 procedure TRANSLATE_ROW (
686   X_TEMPLATE_ID in NUMBER,
687   X_TEMPLATE_NAME in VARCHAR2,
688   X_TEMPLATE_DESCRIPTION in VARCHAR2,
689   X_OWNER in VARCHAR2) IS
690 begin
691 
692     update AR_BPA_TEMPLATES_TL
693       set TEMPLATE_NAME = X_TEMPLATE_NAME,
694           TEMPLATE_DESCRIPTION = X_TEMPLATE_DESCRIPTION,
695           source_lang = userenv('LANG'),
696           last_update_date = sysdate,
697           last_updated_by = decode(X_OWNER, 'SEED', 1, 0),
698           last_update_login = 0
699     where template_id = X_TEMPLATE_ID
700     and   userenv('LANG') in (language, source_lang);
701 
702 end TRANSLATE_ROW;
703 
704 end AR_BPA_TEMPLATES_PKG;