DBA Data[Home] [Help]

PACKAGE BODY: APPS.BNE_LAYOUT_BLOCKS_PKG

Source


1 package body BNE_LAYOUT_BLOCKS_PKG as
2 /* $Header: bnelaybb.pls 120.4 2005/09/04 23:24:42 dvayro noship $ */
3 
4 procedure INSERT_ROW (
5   X_ROWID in out NOCOPY VARCHAR2,
6   X_APPLICATION_ID in NUMBER,
7   X_LAYOUT_CODE in VARCHAR2,
8   X_BLOCK_ID in NUMBER,
9   X_OBJECT_VERSION_NUMBER in NUMBER,
10   X_PARENT_ID in NUMBER,
11   X_LAYOUT_ELEMENT in VARCHAR2,
12   X_STYLE_CLASS in VARCHAR2,
13   X_STYLE in VARCHAR2,
14   X_ROW_STYLE_CLASS in VARCHAR2,
15   X_ROW_STYLE in VARCHAR2,
16   X_COL_STYLE_CLASS in VARCHAR2,
17   X_COL_STYLE in VARCHAR2,
18   X_PROMPT_DISPLAYED_FLAG in VARCHAR2,
19   X_PROMPT_STYLE_CLASS in VARCHAR2,
20   X_PROMPT_STYLE in VARCHAR2,
21   X_HINT_DISPLAYED_FLAG in VARCHAR2,
22   X_HINT_STYLE_CLASS in VARCHAR2,
23   X_HINT_STYLE in VARCHAR2,
24   X_ORIENTATION in VARCHAR2,
25   X_LAYOUT_CONTROL in VARCHAR2,
26   X_DISPLAY_FLAG in VARCHAR2,
27   X_BLOCKSIZE in NUMBER,
28   X_MINSIZE in NUMBER,
29   X_MAXSIZE in NUMBER,
30   X_SEQUENCE_NUM in NUMBER,
31   X_PROMPT_COLSPAN in NUMBER,
32   X_HINT_COLSPAN in NUMBER,
33   X_ROW_COLSPAN in NUMBER,
34   X_SUMMARY_STYLE_CLASS in VARCHAR2,
35   X_SUMMARY_STYLE in VARCHAR2,
36   X_USER_NAME in VARCHAR2,
37   X_CREATION_DATE in DATE,
38   X_CREATED_BY in NUMBER,
39   X_LAST_UPDATE_DATE in DATE,
40   X_LAST_UPDATED_BY in NUMBER,
41   X_LAST_UPDATE_LOGIN in NUMBER,
42   X_PROMPT_ABOVE in VARCHAR2,
43   X_TITLE_STYLE_CLASS in VARCHAR2,
44   X_TITLE_STYLE in VARCHAR2
45 ) is
46   cursor C is select ROWID from BNE_LAYOUT_BLOCKS_B
47     where APPLICATION_ID = X_APPLICATION_ID
48     and LAYOUT_CODE = X_LAYOUT_CODE
49     and BLOCK_ID = X_BLOCK_ID
50     ;
51 begin
52   insert into BNE_LAYOUT_BLOCKS_B (
53     APPLICATION_ID,
54     LAYOUT_CODE,
55     BLOCK_ID,
56     OBJECT_VERSION_NUMBER,
57     PARENT_ID,
58     LAYOUT_ELEMENT,
59     STYLE_CLASS,
60     STYLE,
61     ROW_STYLE_CLASS,
62     ROW_STYLE,
63     COL_STYLE_CLASS,
64     COL_STYLE,
65     PROMPT_DISPLAYED_FLAG,
66     PROMPT_STYLE_CLASS,
67     PROMPT_STYLE,
68     HINT_DISPLAYED_FLAG,
69     HINT_STYLE_CLASS,
70     HINT_STYLE,
71     ORIENTATION,
72     LAYOUT_CONTROL,
73     DISPLAY_FLAG,
74     BLOCKSIZE,
75     MINSIZE,
76     MAXSIZE,
77     SEQUENCE_NUM,
78     PROMPT_COLSPAN,
79     HINT_COLSPAN,
80     ROW_COLSPAN,
81     SUMMARY_STYLE_CLASS,
82     SUMMARY_STYLE,
83 	TITLE_STYLE_CLASS,
84 	TITLE_STYLE,
85     CREATION_DATE,
86     CREATED_BY,
87     LAST_UPDATE_DATE,
88     LAST_UPDATED_BY,
89     LAST_UPDATE_LOGIN
90   ) values (
91     X_APPLICATION_ID,
92     X_LAYOUT_CODE,
93     X_BLOCK_ID,
94     X_OBJECT_VERSION_NUMBER,
95     X_PARENT_ID,
96     X_LAYOUT_ELEMENT,
97     X_STYLE_CLASS,
98     X_STYLE,
99     X_ROW_STYLE_CLASS,
100     X_ROW_STYLE,
101     X_COL_STYLE_CLASS,
102     X_COL_STYLE,
103     X_PROMPT_DISPLAYED_FLAG,
104     X_PROMPT_STYLE_CLASS,
105     X_PROMPT_STYLE,
106     X_HINT_DISPLAYED_FLAG,
107     X_HINT_STYLE_CLASS,
108     X_HINT_STYLE,
109     X_ORIENTATION,
110     X_LAYOUT_CONTROL,
111     X_DISPLAY_FLAG,
112     X_BLOCKSIZE,
113     X_MINSIZE,
114     X_MAXSIZE,
115     X_SEQUENCE_NUM,
116     X_PROMPT_COLSPAN,
117     X_HINT_COLSPAN,
118     X_ROW_COLSPAN,
119     X_SUMMARY_STYLE_CLASS,
120     X_SUMMARY_STYLE,
121 	X_TITLE_STYLE_CLASS,
122 	X_TITLE_STYLE,
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 BNE_LAYOUT_BLOCKS_TL (
131     APPLICATION_ID,
132     LAYOUT_CODE,
133     BLOCK_ID,
134     USER_NAME,
135 	PROMPT_ABOVE,
136     CREATED_BY,
137     CREATION_DATE,
138     LAST_UPDATED_BY,
139     LAST_UPDATE_LOGIN,
140     LAST_UPDATE_DATE,
141     LANGUAGE,
142     SOURCE_LANG
143   ) select
144     X_APPLICATION_ID,
145     X_LAYOUT_CODE,
146     X_BLOCK_ID,
147     X_USER_NAME,
148 	X_PROMPT_ABOVE,
149     X_CREATED_BY,
150     X_CREATION_DATE,
151     X_LAST_UPDATED_BY,
152     X_LAST_UPDATE_LOGIN,
153     X_LAST_UPDATE_DATE,
154     L.LANGUAGE_CODE,
155     userenv('LANG')
156   from FND_LANGUAGES L
157   where L.INSTALLED_FLAG in ('I', 'B')
158   and not exists
159     (select NULL
160     from BNE_LAYOUT_BLOCKS_TL T
161     where T.APPLICATION_ID = X_APPLICATION_ID
162     and T.LAYOUT_CODE = X_LAYOUT_CODE
163     and T.BLOCK_ID = X_BLOCK_ID
164     and T.LANGUAGE = L.LANGUAGE_CODE);
165 
166   open c;
167   fetch c into X_ROWID;
168   if (c%notfound) then
169     close c;
170     raise no_data_found;
171   end if;
172   close c;
173 
174 end INSERT_ROW;
175 
176 procedure LOCK_ROW (
177   X_APPLICATION_ID in NUMBER,
178   X_LAYOUT_CODE in VARCHAR2,
179   X_BLOCK_ID in NUMBER,
180   X_OBJECT_VERSION_NUMBER in NUMBER,
181   X_PARENT_ID in NUMBER,
182   X_LAYOUT_ELEMENT in VARCHAR2,
183   X_STYLE_CLASS in VARCHAR2,
184   X_STYLE in VARCHAR2,
185   X_ROW_STYLE_CLASS in VARCHAR2,
186   X_ROW_STYLE in VARCHAR2,
187   X_COL_STYLE_CLASS in VARCHAR2,
188   X_COL_STYLE in VARCHAR2,
189   X_PROMPT_DISPLAYED_FLAG in VARCHAR2,
190   X_PROMPT_STYLE_CLASS in VARCHAR2,
191   X_PROMPT_STYLE in VARCHAR2,
192   X_HINT_DISPLAYED_FLAG in VARCHAR2,
193   X_HINT_STYLE_CLASS in VARCHAR2,
194   X_HINT_STYLE in VARCHAR2,
195   X_ORIENTATION in VARCHAR2,
196   X_LAYOUT_CONTROL in VARCHAR2,
197   X_DISPLAY_FLAG in VARCHAR2,
198   X_BLOCKSIZE in NUMBER,
199   X_MINSIZE in NUMBER,
200   X_MAXSIZE in NUMBER,
201   X_SEQUENCE_NUM in NUMBER,
202   X_PROMPT_COLSPAN in NUMBER,
203   X_HINT_COLSPAN in NUMBER,
204   X_ROW_COLSPAN in NUMBER,
205   X_SUMMARY_STYLE_CLASS in VARCHAR2,
206   X_SUMMARY_STYLE in VARCHAR2,
207   X_USER_NAME in VARCHAR2,
208   X_PROMPT_ABOVE in VARCHAR2,
209   X_TITLE_STYLE_CLASS in VARCHAR2,
210   X_TITLE_STYLE in VARCHAR2
211 ) is
212   cursor c is select
213       OBJECT_VERSION_NUMBER,
214       PARENT_ID,
215       LAYOUT_ELEMENT,
216       STYLE_CLASS,
217       STYLE,
218       ROW_STYLE_CLASS,
219       ROW_STYLE,
220       COL_STYLE_CLASS,
221       COL_STYLE,
222       PROMPT_DISPLAYED_FLAG,
223       PROMPT_STYLE_CLASS,
224       PROMPT_STYLE,
225       HINT_DISPLAYED_FLAG,
226       HINT_STYLE_CLASS,
227       HINT_STYLE,
228       ORIENTATION,
229       LAYOUT_CONTROL,
230       DISPLAY_FLAG,
231       BLOCKSIZE,
232       MINSIZE,
233       MAXSIZE,
234       SEQUENCE_NUM,
235       PROMPT_COLSPAN,
236       HINT_COLSPAN,
237       ROW_COLSPAN,
238       SUMMARY_STYLE_CLASS,
239       SUMMARY_STYLE,
240 	  TITLE_STYLE_CLASS,
241 	  TITLE_STYLE
242     from BNE_LAYOUT_BLOCKS_B
243     where APPLICATION_ID = X_APPLICATION_ID
244     and LAYOUT_CODE = X_LAYOUT_CODE
245     and BLOCK_ID = X_BLOCK_ID
246     for update of APPLICATION_ID nowait;
247   recinfo c%rowtype;
248 
249   cursor c1 is select
250       USER_NAME,
251       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
252     from BNE_LAYOUT_BLOCKS_TL
253     where APPLICATION_ID = X_APPLICATION_ID
254     and LAYOUT_CODE = X_LAYOUT_CODE
255     and BLOCK_ID = X_BLOCK_ID
256     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
257     for update of APPLICATION_ID nowait;
258 begin
259   open c;
260   fetch c into recinfo;
261   if (c%notfound) then
262     close c;
263     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
264     app_exception.raise_exception;
265   end if;
266   close c;
267   if (    (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
268       AND ((recinfo.PARENT_ID = X_PARENT_ID)
269            OR ((recinfo.PARENT_ID is null) AND (X_PARENT_ID is null)))
270       AND (recinfo.LAYOUT_ELEMENT = X_LAYOUT_ELEMENT)
271       AND ((recinfo.STYLE_CLASS = X_STYLE_CLASS)
272            OR ((recinfo.STYLE_CLASS is null) AND (X_STYLE_CLASS is null)))
273       AND ((recinfo.STYLE = X_STYLE)
274            OR ((recinfo.STYLE is null) AND (X_STYLE is null)))
275       AND ((recinfo.ROW_STYLE_CLASS = X_ROW_STYLE_CLASS)
276            OR ((recinfo.ROW_STYLE_CLASS is null) AND (X_ROW_STYLE_CLASS is null)))
277       AND ((recinfo.ROW_STYLE = X_ROW_STYLE)
278            OR ((recinfo.ROW_STYLE is null) AND (X_ROW_STYLE is null)))
279       AND ((recinfo.COL_STYLE_CLASS = X_COL_STYLE_CLASS)
280            OR ((recinfo.COL_STYLE_CLASS is null) AND (X_COL_STYLE_CLASS is null)))
281       AND ((recinfo.COL_STYLE = X_COL_STYLE)
282            OR ((recinfo.COL_STYLE is null) AND (X_COL_STYLE is null)))
283       AND (recinfo.PROMPT_DISPLAYED_FLAG = X_PROMPT_DISPLAYED_FLAG)
284       AND ((recinfo.PROMPT_STYLE_CLASS = X_PROMPT_STYLE_CLASS)
285            OR ((recinfo.PROMPT_STYLE_CLASS is null) AND (X_PROMPT_STYLE_CLASS is null)))
286       AND ((recinfo.PROMPT_STYLE = X_PROMPT_STYLE)
287            OR ((recinfo.PROMPT_STYLE is null) AND (X_PROMPT_STYLE is null)))
288       AND (recinfo.HINT_DISPLAYED_FLAG = X_HINT_DISPLAYED_FLAG)
289       AND ((recinfo.HINT_STYLE_CLASS = X_HINT_STYLE_CLASS)
290            OR ((recinfo.HINT_STYLE_CLASS is null) AND (X_HINT_STYLE_CLASS is null)))
291       AND ((recinfo.HINT_STYLE = X_HINT_STYLE)
292            OR ((recinfo.HINT_STYLE is null) AND (X_HINT_STYLE is null)))
293       AND (recinfo.ORIENTATION = X_ORIENTATION)
294       AND (recinfo.LAYOUT_CONTROL = X_LAYOUT_CONTROL)
295       AND (recinfo.DISPLAY_FLAG = X_DISPLAY_FLAG)
296       AND (recinfo.BLOCKSIZE = X_BLOCKSIZE)
297       AND (recinfo.MINSIZE = X_MINSIZE)
298       AND (recinfo.MAXSIZE = X_MAXSIZE)
299       AND (recinfo.SEQUENCE_NUM = X_SEQUENCE_NUM)
300       AND ((recinfo.PROMPT_COLSPAN = X_PROMPT_COLSPAN)
301            OR ((recinfo.PROMPT_COLSPAN is null) AND (X_PROMPT_COLSPAN is null)))
302       AND ((recinfo.HINT_COLSPAN = X_HINT_COLSPAN)
303            OR ((recinfo.HINT_COLSPAN is null) AND (X_HINT_COLSPAN is null)))
304       AND ((recinfo.ROW_COLSPAN = X_ROW_COLSPAN)
305            OR ((recinfo.ROW_COLSPAN is null) AND (X_ROW_COLSPAN is null)))
306       AND ((recinfo.SUMMARY_STYLE_CLASS = X_SUMMARY_STYLE_CLASS)
307            OR ((recinfo.SUMMARY_STYLE_CLASS is null) AND (X_SUMMARY_STYLE_CLASS is null)))
308       AND ((recinfo.SUMMARY_STYLE = X_SUMMARY_STYLE)
309            OR ((recinfo.SUMMARY_STYLE is null) AND (X_SUMMARY_STYLE is null)))
310 	  AND ((recinfo.TITLE_STYLE_CLASS = X_TITLE_STYLE_CLASS)
311            OR ((recinfo.TITLE_STYLE_CLASS is null) AND (X_TITLE_STYLE_CLASS is null)))
312       AND ((recinfo.TITLE_STYLE = X_TITLE_STYLE)
313            OR ((recinfo.TITLE_STYLE is null) AND (X_TITLE_STYLE is null)))
314   ) then
315     null;
316   else
317     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
318     app_exception.raise_exception;
319   end if;
320 
321   for tlinfo in c1 loop
322     if (tlinfo.BASELANG = 'Y') then
323       if (    (tlinfo.USER_NAME = X_USER_NAME)
324       ) then
325         null;
326       else
327         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
328         app_exception.raise_exception;
329       end if;
330     end if;
331   end loop;
332   return;
333 end LOCK_ROW;
334 
335 procedure UPDATE_ROW (
336   X_APPLICATION_ID in NUMBER,
337   X_LAYOUT_CODE in VARCHAR2,
338   X_BLOCK_ID in NUMBER,
339   X_OBJECT_VERSION_NUMBER in NUMBER,
340   X_PARENT_ID in NUMBER,
341   X_LAYOUT_ELEMENT in VARCHAR2,
342   X_STYLE_CLASS in VARCHAR2,
343   X_STYLE in VARCHAR2,
344   X_ROW_STYLE_CLASS in VARCHAR2,
345   X_ROW_STYLE in VARCHAR2,
346   X_COL_STYLE_CLASS in VARCHAR2,
347   X_COL_STYLE in VARCHAR2,
348   X_PROMPT_DISPLAYED_FLAG in VARCHAR2,
349   X_PROMPT_STYLE_CLASS in VARCHAR2,
350   X_PROMPT_STYLE in VARCHAR2,
351   X_HINT_DISPLAYED_FLAG in VARCHAR2,
352   X_HINT_STYLE_CLASS in VARCHAR2,
353   X_HINT_STYLE in VARCHAR2,
354   X_ORIENTATION in VARCHAR2,
355   X_LAYOUT_CONTROL in VARCHAR2,
356   X_DISPLAY_FLAG in VARCHAR2,
357   X_BLOCKSIZE in NUMBER,
358   X_MINSIZE in NUMBER,
359   X_MAXSIZE in NUMBER,
360   X_SEQUENCE_NUM in NUMBER,
361   X_PROMPT_COLSPAN in NUMBER,
362   X_HINT_COLSPAN in NUMBER,
363   X_ROW_COLSPAN in NUMBER,
364   X_SUMMARY_STYLE_CLASS in VARCHAR2,
365   X_SUMMARY_STYLE in VARCHAR2,
366   X_USER_NAME in VARCHAR2,
367   X_LAST_UPDATE_DATE in DATE,
368   X_LAST_UPDATED_BY in NUMBER,
369   X_LAST_UPDATE_LOGIN in NUMBER,
370   X_PROMPT_ABOVE in VARCHAR2,
371   X_TITLE_STYLE_CLASS in VARCHAR2,
372   X_TITLE_STYLE in VARCHAR2
373 ) is
374 begin
375   update BNE_LAYOUT_BLOCKS_B set
376     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
377     PARENT_ID = X_PARENT_ID,
378     LAYOUT_ELEMENT = X_LAYOUT_ELEMENT,
379     STYLE_CLASS = X_STYLE_CLASS,
380     STYLE = X_STYLE,
381     ROW_STYLE_CLASS = X_ROW_STYLE_CLASS,
382     ROW_STYLE = X_ROW_STYLE,
383     COL_STYLE_CLASS = X_COL_STYLE_CLASS,
384     COL_STYLE = X_COL_STYLE,
385     PROMPT_DISPLAYED_FLAG = X_PROMPT_DISPLAYED_FLAG,
386     PROMPT_STYLE_CLASS = X_PROMPT_STYLE_CLASS,
387     PROMPT_STYLE = X_PROMPT_STYLE,
388     HINT_DISPLAYED_FLAG = X_HINT_DISPLAYED_FLAG,
389     HINT_STYLE_CLASS = X_HINT_STYLE_CLASS,
390     HINT_STYLE = X_HINT_STYLE,
391     ORIENTATION = X_ORIENTATION,
392     LAYOUT_CONTROL = X_LAYOUT_CONTROL,
393     DISPLAY_FLAG = X_DISPLAY_FLAG,
394     BLOCKSIZE = X_BLOCKSIZE,
395     MINSIZE = X_MINSIZE,
396     MAXSIZE = X_MAXSIZE,
397     SEQUENCE_NUM = X_SEQUENCE_NUM,
398     PROMPT_COLSPAN = X_PROMPT_COLSPAN,
399     HINT_COLSPAN = X_HINT_COLSPAN,
400     ROW_COLSPAN = X_ROW_COLSPAN,
401     SUMMARY_STYLE_CLASS = X_SUMMARY_STYLE_CLASS,
402     SUMMARY_STYLE = X_SUMMARY_STYLE,
403 	TITLE_STYLE_CLASS = X_TITLE_STYLE_CLASS,
404 	TITLE_STYLE = X_TITLE_STYLE,
405     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
406     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
407     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
408   where APPLICATION_ID = X_APPLICATION_ID
409   and LAYOUT_CODE = X_LAYOUT_CODE
410   and BLOCK_ID = X_BLOCK_ID;
411 
412   if (sql%notfound) then
413     raise no_data_found;
414   end if;
415 
416   update BNE_LAYOUT_BLOCKS_TL set
417     USER_NAME = X_USER_NAME,
418 	PROMPT_ABOVE = X_PROMPT_ABOVE,
419     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
420     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
421     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
422     SOURCE_LANG = userenv('LANG')
423   where APPLICATION_ID = X_APPLICATION_ID
424   and LAYOUT_CODE = X_LAYOUT_CODE
425   and BLOCK_ID = X_BLOCK_ID
426   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
427 
428   if (sql%notfound) then
429     raise no_data_found;
430   end if;
431 end UPDATE_ROW;
432 
433 procedure DELETE_ROW (
434   X_APPLICATION_ID in NUMBER,
435   X_LAYOUT_CODE in VARCHAR2,
436   X_BLOCK_ID in NUMBER
437 ) is
438 begin
439   delete from BNE_LAYOUT_BLOCKS_TL
440   where APPLICATION_ID = X_APPLICATION_ID
441   and LAYOUT_CODE = X_LAYOUT_CODE
442   and BLOCK_ID = X_BLOCK_ID;
443 
444   if (sql%notfound) then
445     raise no_data_found;
446   end if;
447 
448   delete from BNE_LAYOUT_BLOCKS_B
449   where APPLICATION_ID = X_APPLICATION_ID
450   and LAYOUT_CODE = X_LAYOUT_CODE
451   and BLOCK_ID = X_BLOCK_ID;
452 
453   if (sql%notfound) then
454     raise no_data_found;
455   end if;
456 end DELETE_ROW;
457 
458 procedure ADD_LANGUAGE
459 is
460 begin
464     from BNE_LAYOUT_BLOCKS_B B
461   delete from BNE_LAYOUT_BLOCKS_TL T
462   where not exists
463     (select NULL
465     where B.APPLICATION_ID = T.APPLICATION_ID
466     and B.LAYOUT_CODE = T.LAYOUT_CODE
467     and B.BLOCK_ID = T.BLOCK_ID
468     );
469 
470   update BNE_LAYOUT_BLOCKS_TL T set (
471       USER_NAME
472     ) = (select
473       B.USER_NAME
474     from BNE_LAYOUT_BLOCKS_TL B
475     where B.APPLICATION_ID = T.APPLICATION_ID
476     and B.LAYOUT_CODE = T.LAYOUT_CODE
477     and B.BLOCK_ID = T.BLOCK_ID
478     and B.LANGUAGE = T.SOURCE_LANG)
479   where (
480       T.APPLICATION_ID,
481       T.LAYOUT_CODE,
482       T.BLOCK_ID,
483       T.LANGUAGE
484   ) in (select
485       SUBT.APPLICATION_ID,
486       SUBT.LAYOUT_CODE,
487       SUBT.BLOCK_ID,
488       SUBT.LANGUAGE
489     from BNE_LAYOUT_BLOCKS_TL SUBB, BNE_LAYOUT_BLOCKS_TL SUBT
490     where SUBB.APPLICATION_ID = SUBT.APPLICATION_ID
491     and SUBB.LAYOUT_CODE = SUBT.LAYOUT_CODE
492     and SUBB.BLOCK_ID = SUBT.BLOCK_ID
493     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
494     and (SUBB.USER_NAME <> SUBT.USER_NAME
495   ));
496 
497   insert into BNE_LAYOUT_BLOCKS_TL (
498     APPLICATION_ID,
499     LAYOUT_CODE,
500     BLOCK_ID,
501     USER_NAME,
502     CREATED_BY,
503     CREATION_DATE,
504     LAST_UPDATED_BY,
505     LAST_UPDATE_LOGIN,
506     LAST_UPDATE_DATE,
507     LANGUAGE,
508     SOURCE_LANG
509   ) select
510     B.APPLICATION_ID,
511     B.LAYOUT_CODE,
512     B.BLOCK_ID,
513     B.USER_NAME,
514     B.CREATED_BY,
515     B.CREATION_DATE,
516     B.LAST_UPDATED_BY,
517     B.LAST_UPDATE_LOGIN,
518     B.LAST_UPDATE_DATE,
519     L.LANGUAGE_CODE,
520     B.SOURCE_LANG
521   from BNE_LAYOUT_BLOCKS_TL B, FND_LANGUAGES L
522   where L.INSTALLED_FLAG in ('I', 'B')
523   and B.LANGUAGE = userenv('LANG')
524   and not exists
525     (select NULL
526     from BNE_LAYOUT_BLOCKS_TL T
527     where T.APPLICATION_ID = B.APPLICATION_ID
528     and T.LAYOUT_CODE = B.LAYOUT_CODE
529     and T.BLOCK_ID = B.BLOCK_ID
530     and T.LANGUAGE = L.LANGUAGE_CODE);
531 end ADD_LANGUAGE;
532 
533 --------------------------------------------------------------------------------
534 --  PROCEDURE:   TRANSLATE_ROW                                                --
535 --                                                                            --
536 --  DESCRIPTION: Load a translation into the BNE_LAYOUT_BLOCKS entity.        --
537 --               This proc is called from the apps loader.                    --
538 --                                                                            --
539 --  SEE:   http://www-apps.us.oracle.com/atg/plans/r115/fndloadqr.txt         --
540 --                                                                            --
541 --                                                                            --
542 --  MODIFICATION HISTORY                                                      --
543 --  Date       Username  Description                                          --
544 --  1-Oct-02   DGROVES   CREATED                                              --
545 --------------------------------------------------------------------------------
546 procedure TRANSLATE_ROW(
547   x_layout_asn            in VARCHAR2,
548   x_layout_code           in VARCHAR2,
549   x_block_id              in VARCHAR2,
550   x_user_name             in VARCHAR2,
551   x_owner                 in VARCHAR2,
552   x_last_update_date      in VARCHAR2,
553   x_custom_mode           in VARCHAR2,
554   x_prompt_above          in VARCHAR2
555 )
556 is
557   l_app_id          number;
558   f_luby            number;  -- entity owner in file
559   f_ludate          date;    -- entity update date in file
560   db_luby           number;  -- entity owner in db
561   db_ludate         date;    -- entity update date in db
562 begin
563   -- translate values to IDs
564   l_app_id        := BNE_LCT_TOOLS_PKG.ASN_TO_APP_ID(x_layout_asn);
565 
566   -- Translate owner to file_last_updated_by
567   f_luby := fnd_load_util.owner_id(x_owner);
568 
569   -- Translate char last_update_date to date
570   f_ludate := nvl(to_date(x_last_update_date, 'YYYY/MM/DD'), sysdate);
571   begin
572     select LAST_UPDATED_BY, LAST_UPDATE_DATE
573     into db_luby, db_ludate
574     from BNE_LAYOUT_BLOCKS_TL
575     where APPLICATION_ID  = l_app_id
576     and   LAYOUT_CODE     = x_layout_code
577     and   BLOCK_ID        = x_block_id
578     and   LANGUAGE        = userenv('LANG');
579 
580     -- Test for customization and version
581     if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
582                                   db_ludate, x_custom_mode)) then
583 
584       update BNE_LAYOUT_BLOCKS_TL
585       set USER_NAME         = x_user_name,
586 	      PROMPT_ABOVE      = x_prompt_above,
587           LAST_UPDATE_DATE  = f_ludate,
588           LAST_UPDATED_BY   = f_luby,
589           LAST_UPDATE_LOGIN = 0,
590           SOURCE_LANG       = userenv('LANG')
591       where APPLICATION_ID   = l_app_id
592       AND   LAYOUT_CODE      = x_layout_code
593       AND   BLOCK_ID         = x_block_id
594       AND   userenv('LANG') in (LANGUAGE, SOURCE_LANG)
595       ;
596     end if;
597   exception
601   end;
598     when no_data_found then
599       -- Do not insert missing translations, skip this row
600       null;
602 end TRANSLATE_ROW;
603 
604 
605 --------------------------------------------------------------------------------
606 --  PROCEDURE:     LOAD_ROW                                                   --
607 --                                                                            --
608 --  DESCRIPTION:   Load a row into the BNE_LAYOUT_BLOCKS entity.              --
609 --                 This proc is called from the apps loader.                  --
610 --                                                                            --
611 --  SEE:     http://www-apps.us.oracle.com/atg/plans/r115/fndloadqr.txt       --
612 --                                                                            --
613 --                                                                            --
614 --  MODIFICATION HISTORY                                                      --
615 --  Date       Username  Description                                          --
616 --  1-Oct-02   DGROVES   CREATED                                              --
617 --------------------------------------------------------------------------------
618 procedure LOAD_ROW(
619   x_layout_asn                  in VARCHAR2,
620   x_layout_code                 in VARCHAR2,
621   x_block_id                    in VARCHAR2,
622   x_object_version_number       in VARCHAR2,
623   x_parent_id                   in VARCHAR2,
624   x_layout_element              in VARCHAR2,
625   x_style_class                 in VARCHAR2,
626   x_style                       in VARCHAR2,
627   x_row_style_class             in VARCHAR2,
628   x_row_style                   in VARCHAR2,
629   x_col_style_class             in VARCHAR2,
630   x_col_style                   in VARCHAR2,
631   x_prompt_displayed_flag       in VARCHAR2,
632   x_prompt_style_class          in VARCHAR2,
633   x_prompt_style                in VARCHAR2,
634   x_hint_displayed_flag         in VARCHAR2,
635   x_hint_style_class            in VARCHAR2,
636   x_hint_style                  in VARCHAR2,
637   x_orientation                 in VARCHAR2,
638   x_layout_control              in VARCHAR2,
639   x_display_flag                in VARCHAR2,
640   x_blocksize                   in VARCHAR2,
641   x_minsize                     in VARCHAR2,
642   x_maxsize                     in VARCHAR2,
643   x_sequence_num                in VARCHAR2,
644   x_prompt_colspan              in VARCHAR2,
645   x_hint_colspan                in VARCHAR2,
646   x_row_colspan                 in VARCHAR2,
647   x_summary_style_class         in VARCHAR2,
648   x_summary_style               in VARCHAR2,
649   x_user_name                   in VARCHAR2,
650   x_owner                       in VARCHAR2,
651   x_last_update_date            in VARCHAR2,
652   x_custom_mode                 in VARCHAR2,
653   x_prompt_above                in VARCHAR2,
654   x_title_style_class           in VARCHAR2,
655   x_title_style                 in VARCHAR2
656 )
657 is
658   l_app_id                      number;
659   l_row_id                      varchar2(64);
660   f_luby                        number;  -- entity owner in file
661   f_ludate                      date;    -- entity update date in file
662   db_luby                       number;  -- entity owner in db
663   db_ludate                     date;    -- entity update date in db
664 begin
665   -- translate values to IDs
666   l_app_id                        := BNE_LCT_TOOLS_PKG.ASN_TO_APP_ID(x_layout_asn);
667 
668   -- Translate owner to file_last_updated_by
669   f_luby := fnd_load_util.owner_id(x_owner);
670 
671   -- Translate char last_update_date to date
672   f_ludate := nvl(to_date(x_last_update_date, 'YYYY/MM/DD'), sysdate);
673   begin
674     select LAST_UPDATED_BY, LAST_UPDATE_DATE
675     into db_luby, db_ludate
676     from BNE_LAYOUT_BLOCKS_B
677     where APPLICATION_ID = l_app_id
678     and   LAYOUT_CODE    = x_layout_code
679     and   BLOCK_ID       = x_block_id;
680 
681     -- Test for customization and version
682     if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
683                                   db_ludate, x_custom_mode)) then
684       -- Update existing row
685       BNE_LAYOUT_BLOCKS_PKG.Update_Row(
686         X_APPLICATION_ID               => l_app_id,
687         X_LAYOUT_CODE                  => x_layout_code,
688         X_BLOCK_ID                     => x_block_id,
689         X_OBJECT_VERSION_NUMBER        => x_object_version_number,
690         X_PARENT_ID                    => x_parent_id,
691         X_LAYOUT_ELEMENT               => x_layout_element,
692         X_STYLE_CLASS                  => x_style_class,
693         X_STYLE                        => x_style,
694         X_ROW_STYLE_CLASS              => x_row_style_class,
695         X_ROW_STYLE                    => x_row_style,
696         X_COL_STYLE_CLASS              => x_col_style_class,
697         X_COL_STYLE                    => x_col_style,
698         X_PROMPT_DISPLAYED_FLAG        => x_prompt_displayed_flag,
699         X_PROMPT_STYLE_CLASS           => x_prompt_style_class,
700         X_PROMPT_STYLE                 => x_prompt_style,
701         X_HINT_DISPLAYED_FLAG          => x_hint_displayed_flag,
702         X_HINT_STYLE_CLASS             => x_hint_style_class,
703         X_HINT_STYLE                   => x_hint_style,
704         X_ORIENTATION                  => x_orientation,
705         X_LAYOUT_CONTROL               => x_layout_control,
706         X_DISPLAY_FLAG                 => x_display_flag,
707         X_BLOCKSIZE                    => x_blocksize,
708         X_MINSIZE                      => x_minsize,
709         X_MAXSIZE                      => x_maxsize,
710         X_SEQUENCE_NUM                 => x_sequence_num,
711         X_PROMPT_COLSPAN               => x_prompt_colspan,
712         X_HINT_COLSPAN                 => x_hint_colspan,
713         X_ROW_COLSPAN                  => x_row_colspan,
714         X_SUMMARY_STYLE_CLASS          => x_summary_style_class,
715         X_SUMMARY_STYLE                => x_summary_style,
716 		X_USER_NAME                    => x_user_name,
717 		X_LAST_UPDATE_DATE             => f_ludate,
718         X_LAST_UPDATED_BY              => f_luby,
719         X_LAST_UPDATE_LOGIN            => 0,
720 		X_PROMPT_ABOVE                 => x_prompt_above,
721         X_TITLE_STYLE_CLASS            => x_title_style_class,
722 		X_TITLE_STYLE                  => x_title_style
723       );
724     end if;
725   exception
726     when no_data_found then
727       -- Record doesn't exist - insert in all cases
728       BNE_LAYOUT_BLOCKS_PKG.Insert_Row(
729         X_ROWID                        => l_row_id,
730         X_APPLICATION_ID               => l_app_id,
731         X_LAYOUT_CODE                  => x_layout_code,
732         X_BLOCK_ID                     => x_block_id,
733         X_OBJECT_VERSION_NUMBER        => x_object_version_number,
734         X_PARENT_ID                    => x_parent_id,
735         X_LAYOUT_ELEMENT               => x_layout_element,
736         X_STYLE_CLASS                  => x_style_class,
737         X_STYLE                        => x_style,
738         X_ROW_STYLE_CLASS              => x_row_style_class,
739         X_ROW_STYLE                    => x_row_style,
740         X_COL_STYLE_CLASS              => x_col_style_class,
741         X_COL_STYLE                    => x_col_style,
742         X_PROMPT_DISPLAYED_FLAG        => x_prompt_displayed_flag,
743         X_PROMPT_STYLE_CLASS           => x_prompt_style_class,
744         X_PROMPT_STYLE                 => x_prompt_style,
745         X_HINT_DISPLAYED_FLAG          => x_hint_displayed_flag,
746         X_HINT_STYLE_CLASS             => x_hint_style_class,
747         X_HINT_STYLE                   => x_hint_style,
748         X_ORIENTATION                  => x_orientation,
749         X_LAYOUT_CONTROL               => x_layout_control,
750         X_DISPLAY_FLAG                 => x_display_flag,
751         X_BLOCKSIZE                    => x_blocksize,
752         X_MINSIZE                      => x_minsize,
753         X_MAXSIZE                      => x_maxsize,
754         X_SEQUENCE_NUM                 => x_sequence_num,
755         X_PROMPT_COLSPAN               => x_prompt_colspan,
756         X_HINT_COLSPAN                 => x_hint_colspan,
757         X_ROW_COLSPAN                  => x_row_colspan,
758         X_SUMMARY_STYLE_CLASS          => x_summary_style_class,
759         X_SUMMARY_STYLE                => x_summary_style,
760 		X_USER_NAME                    => x_user_name,
761 		X_CREATION_DATE                => f_ludate,
765         X_LAST_UPDATE_LOGIN            => 0,
762         X_CREATED_BY                   => f_luby,
763         X_LAST_UPDATE_DATE             => f_ludate,
764         X_LAST_UPDATED_BY              => f_luby,
766 		X_PROMPT_ABOVE                 => x_prompt_above,
767         X_TITLE_STYLE_CLASS            => x_title_style_class,
768 		X_TITLE_STYLE                  => x_title_style
769       );
770   end;
771 end LOAD_ROW;
772 
773 
774 end BNE_LAYOUT_BLOCKS_PKG;