1 package body BSC_SYS_MM_CONTROLS_PKG as
2 /* $Header: BSCSMMB.pls 115.6 2003/02/12 14:29:26 adeulgao ship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out NOCOPY VARCHAR2,
5 X_BUTTON_ID in NUMBER,
6 X_COMMAND in VARCHAR2,
7 X_NAME in VARCHAR2,
8 X_HELP in VARCHAR2
9 ) is
10 cursor C is select ROWID from BSC_SYS_MM_CONTROLS_TL
11 where BUTTON_ID = X_BUTTON_ID
12 and LANGUAGE = userenv('LANG')
13 ;
14 begin
15 insert into BSC_SYS_MM_CONTROLS_TL (
16 BUTTON_ID,
17 NAME,
18 HELP,
19 COMMAND,
20 LANGUAGE,
21 SOURCE_LANG
22 ) select
23 X_BUTTON_ID,
24 X_NAME,
25 X_HELP,
26 X_COMMAND,
27 L.LANGUAGE_CODE,
28 userenv('LANG')
29 from FND_LANGUAGES L
30 where L.INSTALLED_FLAG in ('I', 'B')
31 and not exists
32 (select NULL
33 from BSC_SYS_MM_CONTROLS_TL T
34 where T.BUTTON_ID = X_BUTTON_ID
35 and T.LANGUAGE = L.LANGUAGE_CODE);
36
37 open c;
38 fetch c into X_ROWID;
39 if (c%notfound) then
40 close c;
41 raise no_data_found;
42 end if;
43 close c;
44
45 end INSERT_ROW;
46
47 procedure LOCK_ROW (
48 X_BUTTON_ID in NUMBER,
49 X_COMMAND in VARCHAR2,
50 X_NAME in VARCHAR2,
51 X_HELP in VARCHAR2
52 ) is
53 cursor c1 is select
54 COMMAND,
55 NAME,
56 HELP,
57 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
58 from BSC_SYS_MM_CONTROLS_TL
59 where BUTTON_ID = X_BUTTON_ID
60 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
61 for update of BUTTON_ID nowait;
62 begin
63 for tlinfo in c1 loop
64 if (tlinfo.BASELANG = 'Y') then
65 if ( (tlinfo.NAME = X_NAME)
66 AND (tlinfo.HELP = X_HELP)
67 AND ((tlinfo.COMMAND = X_COMMAND)
68 OR ((tlinfo.COMMAND is null) AND (X_COMMAND is null)))
69 ) then
70 null;
71 else
72 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
73 app_exception.raise_exception;
74 end if;
75 end if;
76 end loop;
77 return;
78 end LOCK_ROW;
79
80 procedure UPDATE_ROW (
81 X_BUTTON_ID in NUMBER,
82 X_COMMAND in VARCHAR2,
83 X_NAME in VARCHAR2,
84 X_HELP in VARCHAR2
85 ) is
86 begin
87 update BSC_SYS_MM_CONTROLS_TL set
88 COMMAND = X_COMMAND,
89 NAME = X_NAME,
90 HELP = X_HELP,
91 SOURCE_LANG = userenv('LANG')
92 where BUTTON_ID = X_BUTTON_ID
93 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
94
95 if (sql%notfound) then
96 raise no_data_found;
97 end if;
98 end UPDATE_ROW;
99
100 procedure DELETE_ROW (
101 X_BUTTON_ID in NUMBER
102 ) is
103 begin
104 delete from BSC_SYS_MM_CONTROLS_TL
105 where BUTTON_ID = X_BUTTON_ID;
106
107 if (sql%notfound) then
108 raise no_data_found;
109 end if;
110
111 end DELETE_ROW;
112
113 procedure ADD_LANGUAGE
114 is
115 begin
116 update BSC_SYS_MM_CONTROLS_TL T set (
117 NAME,
118 HELP
119 ) = (select
120 B.NAME,
121 B.HELP
122 from BSC_SYS_MM_CONTROLS_TL B
123 where B.BUTTON_ID = T.BUTTON_ID
124 and B.LANGUAGE = T.SOURCE_LANG)
125 where (
126 T.BUTTON_ID,
127 T.LANGUAGE
128 ) in (select
129 SUBT.BUTTON_ID,
130 SUBT.LANGUAGE
131 from BSC_SYS_MM_CONTROLS_TL SUBB, BSC_SYS_MM_CONTROLS_TL SUBT
132 where SUBB.BUTTON_ID = SUBT.BUTTON_ID
133 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
134 and (SUBB.NAME <> SUBT.NAME
135 or SUBB.HELP <> SUBT.HELP
136 ));
137
138 insert into BSC_SYS_MM_CONTROLS_TL (
139 BUTTON_ID,
140 NAME,
141 HELP,
142 COMMAND,
143 LANGUAGE,
144 SOURCE_LANG
145 ) select
146 B.BUTTON_ID,
147 B.NAME,
148 B.HELP,
149 B.COMMAND,
150 L.LANGUAGE_CODE,
151 B.SOURCE_LANG
152 from BSC_SYS_MM_CONTROLS_TL B, FND_LANGUAGES L
153 where L.INSTALLED_FLAG in ('I', 'B')
154 and B.LANGUAGE = userenv('LANG')
155 and not exists
156 (select NULL
157 from BSC_SYS_MM_CONTROLS_TL T
158 where T.BUTTON_ID = B.BUTTON_ID
159 and T.LANGUAGE = L.LANGUAGE_CODE);
160 end ADD_LANGUAGE;
161
162 end BSC_SYS_MM_CONTROLS_PKG;