[Home] [Help]
PACKAGE BODY: APPS.BIS_INDICATOR_REGION_UI_PVT
Source
1 package body bis_indicator_region_ui_pvt as
2 /* $Header: BISVRUIB.pls 120.5 2006/01/17 06:38:17 visuri noship $ */
3 G_HELP VARCHAR2(32000) := 'BISPM';
4 g_user_id integer;
5 g_session_id number;
6 g_var1 VARCHAR2(32000) := NULL;
7 g_var2 integer;
8 e_noactual EXCEPTION;
9 e_norange EXCEPTION;
10 -- meastmon 05/10/2001
11 e_notimevalue EXCEPTION;
12 e_notimevalue1 EXCEPTION;
13
14 --===========================================================
15 -- private constants and functions
16 -- juwang bug#2184804
17 --===========================================================
18 --============================================================
19 G_PKG_NAME CONSTANT VARCHAR2(30):='BIS_PORTLET_PMREGION';
20 c_NULL CONSTANT pls_integer := -9999;
21 c_key_menu CONSTANT VARCHAR2(30):= 'pMeasureDefinition=';
22 c_key_target_level CONSTANT VARCHAR2(50):= 'pTargetLevelShortName';
23 c_key_plan CONSTANT VARCHAR2(50):= 'pPlanShortName';
24 c_key_dv_id1 CONSTANT VARCHAR2(50):= 'pDimensionLevel1ValueId';
25 c_key_dv_id2 CONSTANT VARCHAR2(50):= 'pDimensionLevel2ValueId';
26 c_key_dv_id3 CONSTANT VARCHAR2(50):= 'pDimensionLevel3ValueId';
27 c_key_dv_id4 CONSTANT VARCHAR2(50):= 'pDimensionLevel4ValueId';
28 c_key_dv_id5 CONSTANT VARCHAR2(50):= 'pDimensionLevel5ValueId';
29 c_key_dv_id6 CONSTANT VARCHAR2(50):= 'pDimensionLevel6ValueId';
30 c_key_dv_id7 CONSTANT VARCHAR2(50):= 'pDimensionLevel7ValueId';
31 c_key_status CONSTANT VARCHAR2(50):= 'pStatus';
32 c_key_value CONSTANT VARCHAR2(50):= 'pValue';
33 c_key_change CONSTANT VARCHAR2(50):= 'pChange';
34 c_key_arrow CONSTANT VARCHAR2(50):= 'pArrow';
35
36 c_arrow_type_green_up CONSTANT NUMBER := 1;
37 c_arrow_type_green_down CONSTANT NUMBER := 2;
38 c_arrow_type_red_up CONSTANT NUMBER := 3;
39 c_arrow_type_red_down CONSTANT NUMBER := 4;
40 c_arrow_type_black_up CONSTANT NUMBER := 5;
41 c_arrow_type_black_down CONSTANT NUMBER := 6;
42
43 c_down_green CONSTANT VARCHAR2(200) := '"/OA_MEDIA/bischdog.gif"';
44 c_down_red CONSTANT VARCHAR2(200):= '"/OA_MEDIA/bischdob.gif"';
45 c_down_black CONSTANT VARCHAR2(200):= '"/OA_MEDIA/bischdon.gif"';
46 c_up_green CONSTANT VARCHAR2(200) := '"/OA_MEDIA/bischupg.gif"';
47 c_up_red CONSTANT VARCHAR2(200):= '"/OA_MEDIA/bischupb.gif"';
48 c_up_black CONSTANT VARCHAR2(200):= '"/OA_MEDIA/bischupn.gif"';
49
50 c_caret CONSTANT VARCHAR2(1) := '^';
51 c_eq CONSTANT VARCHAR2(1) := '=';
52 c_squote CONSTANT VARCHAR2(2) := '''';
53
54 c_fmt CONSTANT VARCHAR2(10) := '990D99';
55
56 c_longfmt CONSTANT VARCHAR2(30) := '999G990D99';
57 c_long_nod_fmt CONSTANT VARCHAR2(10) := '999G990';
58 c_I CONSTANT VARCHAR2(1) := 'I';
59 c_F CONSTANT VARCHAR2(1) := 'F';
60 c_K CONSTANT VARCHAR2(1) := 'K';
61 c_M CONSTANT VARCHAR2(1) := 'M';
62 c_B CONSTANT VARCHAR2(1) := 'B';
63 c_T CONSTANT VARCHAR2(1) := 'T';
64 -- !!! NLS Issue
65 c_thousand CONSTANT NUMBER := 1000;
66 c_million CONSTANT NUMBER := 1000000;
67 c_billion CONSTANT NUMBER := 1000000000;
68 c_trillion CONSTANT NUMBER := 1000000000000;
69
70
71 --============================================================
72 PROCEDURE get_ak_display_format(
73 p_region_code IN VARCHAR2
74 ,p_attribute_code IN VARCHAR2
75 ,x_display_format OUT NOCOPY VARCHAR2
76 ,x_display_type OUT NOCOPY VARCHAR2
77 );
78
79
80 --============================================================
81 PROCEDURE get_region_code(
82 p_measure_id IN NUMBER
83 ,x_region_code OUT NOCOPY VARCHAR2
84 ,x_attribute_code OUT NOCOPY VARCHAR2 );
85
86
87 --===========================================================
88 FUNCTION getFormatValue(
89 p_val IN NUMBER
90 ) RETURN VARCHAR2;
91
92
93 --=============================================================
94 FUNCTION getFormatValue(
95 p_val IN NUMBER
96 ,p_format_mask IN VARCHAR2
97 ) RETURN VARCHAR2;
98
99
100 --===========================================================
101 FUNCTION getFormatMask(
102 p_val IN NUMBER
103 ,p_show_decimal IN BOOLEAN
104 ) RETURN VARCHAR2;
105
106
107 --============================================================
108 FUNCTION getBillionValue(
109 p_val IN NUMBER
110 ) RETURN VARCHAR2;
111
112
113 --============================================================
114 FUNCTION getBillionFormatMask(
115 p_val IN NUMBER
116 ) RETURN VARCHAR2;
117
118
119 --============================================================
120 PROCEDURE draw_portlet_header(
121 p_status_lbl IN VARCHAR2
122 ,p_measure_lbl IN VARCHAR2
123 ,p_value_lbl IN VARCHAR2
124 ,p_change_lbl IN VARCHAR2);
125
126
127
128 --===========================================================
129 FUNCTION get_row_style(
130 p_row_style IN VARCHAR2
131 ) RETURN VARCHAR2;
132
133
134
135 --============================================================
136 PROCEDURE draw_portlet_footer;
137
138
139 --============================================================
140 PROCEDURE draw_status(
141 p_status_lbl IN VARCHAR2
142 ,p_row_style IN VARCHAR2
143 ,p_actual_val IN NUMBER
144 ,p_target_val IN NUMBER
145 ,p_range1_low_pcnt IN NUMBER
146 ,p_range1_high_pcnt IN NUMBER
147 );
148
149 --============================================================
150 PROCEDURE draw_status(
151 p_status_lbl IN VARCHAR2
152 ,p_status IN NUMBER
153 ,p_row_style IN VARCHAR2);
154
155 --============================================================
156 PROCEDURE draw_measure_name(
157 p_actual_url IN VARCHAR2
158 ,p_label IN VARCHAR2
159 ,p_measure_lbl IN VARCHAR2
160 ,p_row_style IN VARCHAR2);
161
162 --============================================================
163 PROCEDURE draw_actual(
164 p_value_lbl IN VARCHAR2
165 ,p_formatted_actual IN VARCHAR2
166 ,p_row_style IN VARCHAR2);
167
168
169 --============================================================
170 PROCEDURE draw_change(
171 p_change_lbl IN VARCHAR2
172 ,p_change IN VARCHAR2
173 ,p_img IN VARCHAR2
174 ,p_arrow_alt_text IN VARCHAR2
175 ,p_row_style IN VARCHAR2
176 );
177
178
179 --===========================================================
180 FUNCTION is_authroized(
181 p_cur_user_id IN PLS_INTEGER
182 ,p_target_level_id IN PLS_INTEGER
183 ) RETURN BOOLEAN;
184
185
186 --===========================================================
187 PROCEDURE get_actual(
188 p_target_rec IN BIS_TARGET_PUB.Target_Rec_Type
189 ,x_actual_url OUT NOCOPY VARCHAR2
190 ,x_actual_value OUT NOCOPY NUMBER
191 ,x_comparison_actual_value OUT NOCOPY NUMBER
192 ,x_err OUT NOCOPY VARCHAR2
193 );
194
195
196
197 --============================================================
198 PROCEDURE get_target(
199 p_target_in IN BIS_TARGET_PUB.Target_Rec_Type
200 ,x_target OUT NOCOPY NUMBER
201 ,x_range1_low OUT NOCOPY NUMBER
202 ,x_range1_high OUT NOCOPY NUMBER
203 ,x_range2_low OUT NOCOPY NUMBER
204 ,x_range2_high OUT NOCOPY NUMBER
205 ,x_range3_low OUT NOCOPY NUMBER
206 ,x_range3_high OUT NOCOPY NUMBER
207 ,x_err OUT NOCOPY VARCHAR2
208 );
209
210
211 --===========================================================
212 PROCEDURE get_time_dim_index(
213 p_ind_selection_id IN NUMBER
214 ,x_target_rec IN OUT NOCOPY BIS_TARGET_PUB.Target_Rec_Type
215 ,x_err OUT NOCOPY VARCHAR2
216 ) ;
217
218 --=============================================================
219 PROCEDURE assign_time_level_value_id
220 (
221 p_is_rolling_level IN NUMBER,
222 p_current_period_id IN VARCHAR,
223 p_time_dim_idx IN NUMBER,
224 p_target_rec IN OUT NOCOPY BIS_TARGET_PUB.Target_Rec_Type
225 ) ;
226
227
228 --===========================================================
229 PROCEDURE get_change(
230 p_actual_value IN NUMBER
231 ,p_comp_actual_value IN NUMBER
232 ,p_comp_source IN VARCHAR2
233 ,p_good_bad IN VARCHAR2
234 ,p_improve_msg IN VARCHAR2
235 ,p_worse_msg IN VARCHAR2
236 ,x_change OUT NOCOPY NUMBER
237 ,x_img OUT NOCOPY VARCHAR2
238 ,x_arrow_alt_text IN OUT NOCOPY VARCHAR2
239 ,x_err OUT NOCOPY VARCHAR2
240 ) ;
241
242
243 --===========================================================
244 -- end of private functions/procedures declarations.
245 --============================================================
246
247 --============================================================
248 -- end of juwang change
249 --============================================================
250
251 -- meastmon 05/10/2001 Get current period id and name for the given
252 -- target level id and time level id
253 PROCEDURE getCurrentPeriodInfo(
254 p_ind_selection_id IN NUMBER,
255 p_target_level_id IN NUMBER,
256 p_time_dimension_level_id IN NUMBER,
257 x_current_period_id OUT NOCOPY VARCHAR2,
258 x_current_period_name OUT NOCOPY VARCHAR2
259 ) IS
260
261 CURSOR c_source IS
262 SELECT source
263 FROM bis_target_levels
264 WHERE target_level_id = p_target_level_id;
265
266 CURSOR c_org_dimension_index IS
267 SELECT x.sequence_no,
268 decode(x.sequence_no,
269 1, z.dimension1_level_id,
270 2, z.dimension2_level_id,
271 3, z.dimension3_level_id,
272 4, z.dimension4_level_id,
273 5, z.dimension5_level_id,
274 6, z.dimension6_level_id,
275 7, z.dimension7_level_id,
276 NULL) org_dimension_level_id
277 FROM bis_indicator_dimensions x, bis_dimensions y, bis_target_levels z
278 WHERE x.dimension_id = y.dimension_id AND
279 y.short_name = BIS_UTILITIES_PVT.GET_ORG_DIMENSION_NAME_TL(p_target_level_id,NULL) AND
280 x.indicator_id = z.indicator_id AND
281 z.target_level_id = p_target_level_id;
282
283 CURSOR c_dimension_level_value(dimension_index NUMBER) IS
284 SELECT decode(dimension_index,
285 1, dimension1_level_value,
286 2, dimension2_level_value,
287 3, dimension3_level_value,
288 4, dimension4_level_value,
289 5, dimension5_level_value,
290 6, dimension6_level_value,
291 7, dimension7_level_value,
292 NULL) dimension_level_value
293 FROM bis_user_ind_selections
294 WHERE ind_selection_id = p_ind_selection_id;
295
296 CURSOR c_org_level_name (org_level_id NUMBER) IS
297 SELECT short_name
298 FROM bis_levels
299 WHERE level_id = org_level_id;
300
301
302 l_source VARCHAR2(30);
303 l_time_dimension_name VARCHAR2(500);
304 l_total_time_level_name VARCHAR2(500);
305
306 l_view_name VARCHAR2(800);
307 l_short_name VARCHAR2(30);
308 l_name VARCHAR2(800);
309 l_id VARCHAR2(250);
310 l_value VARCHAR2(2500);
311 l_select_stmt VARCHAR2(2000);
312 l_sql_result INTEGER := 0;
313 l_description bis_levels_tl.description%TYPE;
314 l_return_status VARCHAR2(240);
315 l_id_name VARCHAR(2000);
316 l_value_name VARCHAR(2000);
317 l_msg_count NUMBER;
318 l_msg_data VARCHAR(32000);
319
320 l_sql VARCHAR2(32000);
321 l_org_dimension_index NUMBER;
322 l_org_dimension_level_id NUMBER;
323 l_org_dimension_value VARCHAR2(800);
324 l_org_level_name VARCHAR2(500);
325
326 l_start_date DATE;
327 l_end_date DATE;
328
329 TYPE tcursor IS REF CURSOR;
330 l_cursor tcursor;
331 l_time_lvl_dep_on_org NUMBER(3); --2684911
332
333 BEGIN
334 BIS_PMF_GET_DIMLEVELS_PVT.Get_DimLevel_Values_Data(
335 p_bis_dimlevel_id => p_time_dimension_level_id,
336 x_dimlevel_short_name => l_short_name,
337 x_select_String => l_select_stmt,
338 x_table_name => l_view_name,
339 x_value_name => l_value_name,
340 x_id_name => l_id_name,
341 x_level_name => l_name,
342 x_description => l_description,
343 x_return_status => l_return_status,
344 x_msg_count => l_msg_count,
345 x_msg_data => l_msg_data);
346
347 l_time_dimension_name := BIS_UTILITIES_PVT.GET_TIME_DIMENSION_NAME_TL(p_target_level_id, NULL);
348 l_total_time_level_name := BIS_UTILITIES_PVT.GET_TOTAL_DIMLEVEL_NAME_TL(l_time_dimension_name, p_target_level_id, NULL);
349 l_time_lvl_dep_on_org := BIS_UTILITIES_PUB.is_time_dependent_on_org(p_time_lvl_short_name => l_short_name) ; --2684911
350
351 OPEN c_source;
352 FETCH c_source INTO l_source;
353 CLOSE c_source;
354
355 -- For total time level there is only one record in the dimension view
356 -- which is the one we want.
357
358 IF (l_short_name <> l_total_time_level_name) THEN
359 l_sql := 'SELECT DISTINCT '||l_id_name||', '||l_value_name||', start_date, end_date'||
360 ' FROM '||l_view_name;
361
362 -- No total time level
363 -- In this case we compare sysdate with start_date and end_date
364 -- to get the current period
365
366 l_sql := l_sql||
367 ' WHERE TRUNC(SYSDATE) BETWEEN '||
368 ' NVL(start_date, TRUNC(SYSDATE)) and NVL(end_date, TRUNC(SYSDATE))';
369
370 IF l_source = 'OLTP' AND l_time_lvl_dep_on_org = BIS_UTILITIES_PUB.G_TIME_IS_DEPEN_ON_ORG THEN --2684911
371 -- For OLTP we need an additional condition on organization id
372 -- if the time level is not one of HR
373 OPEN c_org_dimension_index;
374 FETCH c_org_dimension_index INTO l_org_dimension_index, l_org_dimension_level_id;
375 CLOSE c_org_dimension_index;
376
377 OPEN c_org_level_name(l_org_dimension_level_id);
378 FETCH c_org_level_name INTO l_org_level_name;
379 CLOSE c_org_level_name;
380
381 OPEN c_dimension_level_value(l_org_dimension_index);
382 FETCH c_dimension_level_value INTO l_org_dimension_value;
383 CLOSE c_dimension_level_value;
384
385 l_sql := l_sql||
386 ' AND ORGANIZATION_ID = '''||l_org_dimension_value||''''||
387 ' AND NVL(ORGANIZATION_TYPE, ''%'') LIKE '''||l_org_level_name||'''';
388
389 ELSE
390 IF l_source = 'EDW' THEN
391 -- In this case we need to filter out NOCOPY codes 0 and -1 which are special codes in EDW dimension tables
392 l_sql := l_sql||
393 ' AND '||l_id_name||' NOT IN (''-1'', ''0'')';
394
395 IF (l_time_lvl_dep_on_org = BIS_UTILITIES_PUB.G_TIME_IS_DEPEN_ON_ORG) THEN --2684911
396 OPEN c_org_dimension_index;
397 FETCH c_org_dimension_index INTO l_org_dimension_index, l_org_dimension_level_id;
398 CLOSE c_org_dimension_index;
399
400 OPEN c_org_level_name(l_org_dimension_level_id);
401 FETCH c_org_level_name INTO l_org_level_name;
402 CLOSE c_org_level_name;
403
404 OPEN c_dimension_level_value(l_org_dimension_index);
405 FETCH c_dimension_level_value INTO l_org_dimension_value;
406 CLOSE c_dimension_level_value;
407
408 l_sql := l_sql||
409 ' AND ORGANIZATION_ID = '''||l_org_dimension_value||''''||
410 ' AND NVL(ORGANIZATION_TYPE, ''%'') LIKE '''||l_org_level_name||'''';
411 END IF;
412
413 END IF;
414 END IF;
415
416 l_sql := l_sql||
417 ' ORDER BY ABS(NVL(TRUNC(end_date), TRUNC(SYSDATE))- NVL(TRUNC(start_date), TRUNC(SYSDATE)))';
418
419 ELSE
420 l_sql := 'SELECT DISTINCT '||l_id_name||', '||l_value_name||', SYSDATE AS start_date, SYSDATE AS end_date'||
421 ' FROM '||l_view_name;
422 END IF;
423
424 -- Query is supposed to return just one record. However we take the first one.
425 OPEN l_cursor FOR l_sql;
426 FETCH l_cursor INTO x_current_period_id, x_current_period_name, l_start_date, l_end_date;
427 CLOSE l_cursor;
428
429 EXCEPTION
430 WHEN OTHERS THEN
431 x_current_period_id := NULL;
432 x_current_period_name := NULL;
433 NULL;
434
435 END getCurrentPeriodInfo;
436
437
438 -- meastmon 05/14/2001 Get next period id and name for the given
439 -- target level id and time level id
440 PROCEDURE getNextPeriodInfo(
441 p_ind_selection_id IN NUMBER,
442 p_target_level_id IN NUMBER,
443 p_time_dimension_level_id IN NUMBER,
444 p_current_period_id IN VARCHAR2,
445 p_current_period_name IN VARCHAR2,
446 x_next_period_id OUT NOCOPY VARCHAR2,
447 x_next_period_name OUT NOCOPY VARCHAR2
448 ) IS
449
450 e_no_next_period EXCEPTION;
451
452 CURSOR c_source IS
453 SELECT source
454 FROM bis_target_levels
455 WHERE target_level_id = p_target_level_id;
456
457 CURSOR c_org_dimension_index IS
458 SELECT x.sequence_no,
459 decode(x.sequence_no,
460 1, z.dimension1_level_id,
461 2, z.dimension2_level_id,
462 3, z.dimension3_level_id,
463 4, z.dimension4_level_id,
464 5, z.dimension5_level_id,
465 6, z.dimension6_level_id,
466 7, z.dimension7_level_id,
467 NULL) org_dimension_level_id
468 FROM bis_indicator_dimensions x, bis_dimensions y, bis_target_levels z
469 WHERE x.dimension_id = y.dimension_id AND
470 y.short_name = BIS_UTILITIES_PVT.GET_ORG_DIMENSION_NAME_TL(p_target_level_id,NULL) AND
471 x.indicator_id = z.indicator_id AND
472 z.target_level_id = p_target_level_id;
473
474 CURSOR c_dimension_level_value(dimension_index NUMBER) IS
475 SELECT decode(dimension_index,
476 1, dimension1_level_value,
477 2, dimension2_level_value,
478 3, dimension3_level_value,
479 4, dimension4_level_value,
480 5, dimension5_level_value,
481 6, dimension6_level_value,
482 7, dimension7_level_value,
483 NULL) dimension_level_value
484 FROM bis_user_ind_selections
485 WHERE ind_selection_id = p_ind_selection_id;
486
487 CURSOR c_org_level_name (org_level_id NUMBER) IS
488 SELECT short_name
489 FROM bis_levels
490 WHERE level_id = org_level_id;
491
492 l_source VARCHAR2(30);
493 l_time_dimension_name VARCHAR2(500);
494 l_total_time_level_name VARCHAR2(500);
495
496 l_view_name VARCHAR2(800);
497 l_short_name VARCHAR2(300);
498 l_name VARCHAR2(800);
499 l_id VARCHAR2(250);
500 l_value VARCHAR2(2500);
501 l_select_stmt VARCHAR2(2000);
502 l_sql_result INTEGER := 0;
503 l_description bis_levels_tl.description%TYPE;
504 l_return_status VARCHAR2(240);
505 l_id_name VARCHAR(2000);
506 l_value_name VARCHAR(2000);
507 l_msg_count NUMBER;
508 l_msg_data VARCHAR(32000);
509
510 l_sql VARCHAR2(32000);
511 l_sql_aux VARCHAR2(32000);
512 l_org_dimension_index NUMBER;
513 l_org_dimension_level_id NUMBER;
514 l_org_dimension_value VARCHAR2(800);
515 l_org_level_name VARCHAR2(500);
516
517 l_next_period_date VARCHAR2(200);
518
519 l_start_date DATE;
520 l_end_date DATE;
521
522 TYPE tcursor IS REF CURSOR;
523 l_cursor tcursor;
524
525 l_time_lvl_dep_on_org NUMBER(3); --2684911
526
527 BEGIN
528 BIS_PMF_GET_DIMLEVELS_PVT.Get_DimLevel_Values_Data(
529 p_bis_dimlevel_id => p_time_dimension_level_id,
530 x_dimlevel_short_name => l_short_name,
531 x_select_String => l_select_stmt,
532 x_table_name => l_view_name,
533 x_value_name => l_value_name,
534 x_id_name => l_id_name,
535 x_level_name => l_name,
536 x_description => l_description,
537 x_return_status => l_return_status,
538 x_msg_count => l_msg_count,
539 x_msg_data => l_msg_data);
540
541 l_time_dimension_name := BIS_UTILITIES_PVT.GET_TIME_DIMENSION_NAME_TL(p_target_level_id, NULL);
542 l_total_time_level_name := BIS_UTILITIES_PVT.GET_TOTAL_DIMLEVEL_NAME_TL(l_time_dimension_name, p_target_level_id, NULL);
543
544 OPEN c_source;
545 FETCH c_source INTO l_source;
546 CLOSE c_source;
547
548 l_time_lvl_dep_on_org := BIS_UTILITIES_PUB.is_time_dependent_on_org(p_time_lvl_short_name => l_short_name) ; --2684911
549
550 -- For total time level there is only one record in the dimension view
551 -- which is the one we want.
552
553 IF (l_short_name <> l_total_time_level_name) THEN
554 l_sql := 'SELECT DISTINCT '||l_id_name||', '||l_value_name||', start_date, end_date'||
555 ' FROM '||l_view_name;
556
557 -- No total time level
558 -- In this case we get the end date of the current period and look for
559 -- the period containing the next day
560
561 IF l_source = 'OLTP' AND
562 l_time_lvl_dep_on_org = BIS_UTILITIES_PUB.G_TIME_IS_DEPEN_ON_ORG THEN --2684911
563 -- For OLTP we need an additional condition on organization id
564 -- if the time level is not one of HR
565 OPEN c_org_dimension_index;
566 FETCH c_org_dimension_index INTO l_org_dimension_index, l_org_dimension_level_id;
567 CLOSE c_org_dimension_index;
568
569 OPEN c_org_level_name(l_org_dimension_level_id);
570 FETCH c_org_level_name INTO l_org_level_name;
571 CLOSE c_org_level_name;
572
573 OPEN c_dimension_level_value(l_org_dimension_index);
574 FETCH c_dimension_level_value INTO l_org_dimension_value;
575 CLOSE c_dimension_level_value;
576
577
578 l_sql_aux := 'SELECT TO_CHAR(end_date + 1, ''MM-DD-YYYY'')'||
579 ' FROM '||l_view_name||
580 ' WHERE '||l_id_name||' = :1 '||
581 ' AND ORGANIZATION_ID = :2 ' ||
582 ' AND NVL(ORGANIZATION_TYPE, ''%'') LIKE :3 ';
583 EXECUTE IMMEDIATE l_sql_aux INTO l_next_period_date USING p_current_period_id, l_org_dimension_value, l_org_level_name;
584
585 l_sql := l_sql||
586 ' WHERE TRUNC(TO_DATE('''||l_next_period_date||''', ''MM-DD-YYYY'')) BETWEEN '||
587 ' NVL(start_date, TRUNC(TO_DATE('''||l_next_period_date||''', ''MM-DD-YYYY''))) AND '||
588 ' NVL(end_date, TRUNC(TO_DATE('''||l_next_period_date||''', ''MM-DD-YYYY'')))'||
589 ' AND ORGANIZATION_ID = '''||l_org_dimension_value||''''||
590 ' AND NVL(ORGANIZATION_TYPE, ''%'') LIKE '''||l_org_level_name||'''';
591 ELSE
592 l_sql_aux := 'SELECT TO_CHAR(end_date + 1, ''MM-DD-YYYY'')'||
593 ' FROM '||l_view_name||
594 ' WHERE '||l_id_name||' = : 1';
595 EXECUTE IMMEDIATE l_sql_aux INTO l_next_period_date USING p_current_period_id;
596
597 l_sql := l_sql||
598 ' WHERE TRUNC(TO_DATE('''||l_next_period_date||''', ''MM-DD-YYYY'')) BETWEEN '||
599 ' NVL(start_date, TRUNC(TO_DATE('''||l_next_period_date||''', ''MM-DD-YYYY''))) AND '||
600 ' NVL(end_date, TRUNC(TO_DATE('''||l_next_period_date||''', ''MM-DD-YYYY'')))';
601
602 IF l_source = 'EDW' THEN
603 -- In this case we need to filter out NOCOPY codes 0 and -1 which are special codes in EDW dimension tables
604 l_sql := l_sql||
605 ' AND '||l_id_name||' NOT IN (''-1'', ''0'')';
606 IF (l_time_lvl_dep_on_org = BIS_UTILITIES_PUB.G_TIME_IS_DEPEN_ON_ORG) THEN --2684911
607
608 OPEN c_org_dimension_index;
609 FETCH c_org_dimension_index INTO l_org_dimension_index, l_org_dimension_level_id;
610 CLOSE c_org_dimension_index;
611
612 OPEN c_org_level_name(l_org_dimension_level_id);
613 FETCH c_org_level_name INTO l_org_level_name;
614 CLOSE c_org_level_name;
615
616 OPEN c_dimension_level_value(l_org_dimension_index);
617 FETCH c_dimension_level_value INTO l_org_dimension_value;
618 CLOSE c_dimension_level_value;
619
620 l_sql := l_sql||
621 ' AND ORGANIZATION_ID = '''||l_org_dimension_value||''''||
622 ' AND NVL(ORGANIZATION_TYPE, ''%'') LIKE '''||l_org_level_name||'''';
623 END IF;
624
625 END IF;
626 END IF;
627
628 l_sql := l_sql||
629 ' ORDER BY ABS(NVL(TRUNC(end_date), TRUNC(SYSDATE))- NVL(TRUNC(start_date), TRUNC(SYSDATE)))';
630 ELSE
631 l_sql := 'SELECT DISTINCT '||l_id_name||', '||l_value_name||' SYSDATE AS start_date, SYSDATE AS end_date'||
632 ' FROM '||l_view_name;
633 END IF;
634
635 -- Query is supposed to return just one record. However we take the first one.
636 BEGIN
637 OPEN l_cursor FOR l_sql;
638 FETCH l_cursor INTO x_next_period_id, x_next_period_name, l_start_date, l_end_date;
639 CLOSE l_cursor;
640 EXCEPTION
641 WHEN OTHERS THEN
642 x_next_period_id := NULL;
643 x_next_period_name := NULL;
644 END;
645
646 IF x_next_period_id IS NULL THEN
647 RAISE e_no_next_period;
648 END IF;
649
650
651 EXCEPTION
652 WHEN e_no_next_period THEN
653 x_next_period_id := p_current_period_id;
654 x_next_period_name := p_current_period_name;
655
656 WHEN OTHERS THEN
657 NULL;
658
659 END getNextPeriodInfo;
660
661
662 FUNCTION getTargetURL(
663 p_session_id IN pls_integer,
664 p_ind_selection_id IN NUMBER,
665 p_target_level_id IN NUMBER,
666 p_time_dimension_index IN NUMBER,
667 p_time_dimension_level_id IN NUMBER,
668 p_current_period_id IN VARCHAR2,
669 p_current_period_name IN VARCHAR2,
670 p_plan_id IN NUMBER
671 ) RETURN VARCHAR2 IS
672
673 CURSOR c_measure IS
674 SELECT i.short_name
675 FROM bis_indicators i, bis_target_levels t
676 WHERE i.indicator_id = t.indicator_id AND
677 t.target_level_id = p_target_level_id;
678
679 CURSOR c_dim_level(dimension_index NUMBER) IS
680 SELECT short_name
681 FROM bis_levels
682 WHERE level_id = (
683 SELECT decode(dimension_index,
684 1, dimension1_level_id,
685 2, dimension2_level_id,
686 3, dimension3_level_id,
687 4, dimension4_level_id,
688 5, dimension5_level_id,
689 6, dimension6_level_id,
690 7, dimension7_level_id,
691 NULL)
692 FROM bis_target_levels
693 WHERE target_level_id = p_target_level_id);
694
695 CURSOR c_dim_level_value(dimension_index NUMBER) IS
696 SELECT decode(dimension_index,
697 1, dimension1_level_value,
698 2, dimension2_level_value,
699 3, dimension3_level_value,
700 4, dimension4_level_value,
701 5, dimension5_level_value,
702 6, dimension6_level_value,
703 7, dimension7_level_value,
704 NULL) dimension_level_value
705 FROM bis_user_ind_selections
706 WHERE ind_selection_id = p_ind_selection_id;
707
708 l_measure VARCHAR2(50);
709 l_targeturl VARCHAR2(2000);
710
711 l_url VARCHAR2(2000) := NULL;
712 l_dim_levels VARCHAR2(2000) := NULL;
713 l_dim_level_values VARCHAR2(2000) := NULL;
714 l_dim_level VARCHAR2(500) := NULL;
715 l_dim_level_value VARCHAR2(800) := NULL;
716 l_next_period_id VARCHAR2(32000) := NULL;
717 l_next_period_name VARCHAR2(32000) := NULL;
718
719
720 BEGIN
721 l_targeturl := FND_WEB_CONFIG.WEB_SERVER||'OA_HTML/';
722
723 OPEN c_measure;
724 FETCH c_measure INTO l_measure;
725 CLOSE c_measure;
726
727 l_url := l_targeturl||'bistared.jsp'||
728 '?dbc='||FND_WEB_CONFIG.DATABASE_ID||
729 '&sessionid='||icx_call.encrypt3(p_session_id)||
730 '&RegionCode='||
731 '&FunctionName='||
732 '&SortInfo='||BIS_UTILITIES_PUB.encode('SortyaxisAsc')||
733 '&pageSource='||BIS_UTILITIES_PUB.encode('PMRegion')||
734 '&Measure='||BIS_UTILITIES_PUB.encode(l_measure)||
735 '&PlanId='||p_plan_id;
736
737 FOR l_i IN 1..7 LOOP
738 l_dim_level := NULL;
739 OPEN c_dim_level(l_i);
740 FETCH c_dim_level INTO l_dim_level;
741 CLOSE c_dim_level;
742
743 l_dim_level_value:= NULL;
744 OPEN c_dim_level_value(l_i);
745 FETCH c_dim_level_value INTO l_dim_level_value;
746 CLOSE c_dim_level_value;
747
748 IF l_dim_level IS NOT NULL THEN
749 l_dim_levels := l_dim_levels||
750 '&Dim'||l_i||'Level='||BIS_UTILITIES_PUB.encode(l_dim_level);
751
752 IF l_i = p_time_dimension_index THEN
753 -- get next period value id
754 getNextPeriodInfo(p_ind_selection_id,
755 p_target_level_id,
756 p_time_dimension_level_id,
757 p_current_period_id,
758 p_current_period_name,
759 l_next_period_id,
760 l_next_period_name);
761 IF l_next_period_id IS NOT NULL THEN
762 l_dim_level_values := l_dim_level_values||
763 '&Dim'||l_i||'LevelValue='||BIS_UTILITIES_PUB.encode(l_next_period_id);
764 ELSE
765 l_dim_level_values := l_dim_level_values||
766 '&Dim'||l_i||'LevelValue=';
767 END IF;
768
769 ELSE
770 l_dim_level_values := l_dim_level_values||
771 '&Dim'||l_i||'LevelValue='||BIS_UTILITIES_PUB.encode(l_dim_level_value);
772 END IF;
773 ELSE
774 l_dim_levels := l_dim_levels||
775 '&Dim'||l_i||'Level=';
776
777 l_dim_level_values := l_dim_level_values||
778 '&Dim'||l_i||'LevelValue=';
779 END IF;
780 END LOOP;
781
782 l_url := l_url||l_dim_levels||l_dim_level_values;
783
784 RETURN l_url;
785
786 EXCEPTION
787 WHEN OTHERS THEN
788 RETURN NULL;
789 END getTargetURL;
790
791
792
793 -- *****************************************************
794 -- PROCEDURE THAT DISPLAYS THE PLUG AND ACTUALS
795 -- *****************************************************
796 procedure display( p_session_id in pls_integer default NULL
797 , p_plug_id in pls_integer default NULL
798 , p_display_name varchar2 default NULL
799 , p_delete in varchar2 default 'N')
800 is
801
802 l_target_rec BIS_TARGET_PUB.Target_Rec_Type;
803 l_row_style VARCHAR2(100);
804
805 -- data variables
806 l_actual_value NUMBER;
807 l_comparison_actual_value NUMBER;
808 l_target NUMBER:= NULL;
809 l_range1_low NUMBER:= NULL;
810 l_range1_high NUMBER:= NULL;
811 l_range2_low NUMBER:= NULL;
812 l_range2_high NUMBER:= NULL;
813 l_range3_low NUMBER:= NULL;
814 l_range3_high NUMBER:= NULL;
815
816 l_format_actual VARCHAR2(1000);
817 l_actual_url VARCHAR2(32000) ;
818
819 l_change NUMBER(20,2);
820 l_img VARCHAR2(2000);
821 l_good_bad VARCHAR2(2000);
822 l_arrow_alt_text VARCHAR2(2000);
823
824 -- debugging variables
825 l_err VARCHAR2(32000);
826 l_err2 VARCHAR2(32000);
827
828
829
830 -- labels
831 l_none_lbl VARCHAR2(200);
832 l_na_lbl VARCHAR2(200) ;
833 l_un_auth FND_NEW_MESSAGES.MESSAGE_TEXT%TYPE; -- VARCHAR2(200); 2829397
834
835 -- header labels
836 l_status_lbl VARCHAR2(2000);
837 l_measure_lbl VARCHAR2(2000);
838 l_value_lbl VARCHAR2(2000);
839 l_change_lbl VARCHAR2(2000);
840 l_perc_lbl VARCHAR2(2000);
841
842
843 l_in_range_lbl VARCHAR2(2000);
844 l_out_range_lbl VARCHAR2(2000);
845 l_improve_msg VARCHAR2(2000);
846 l_worse_msg VARCHAR2(2000);
847
848
849 -- ========================================
850 -- cusor declarations
851 -- ========================================
852 CURSOR c_selections IS
853 SELECT distinct a.ind_selection_id
854 ,a.label
855 ,a.target_level_id
856 ,a.dimension1_level_value
857 ,a.dimension2_level_value
858 ,a.dimension3_level_value
859 ,a.dimension4_level_value
860 ,a.dimension5_level_value
861 ,a.dimension6_level_value
862 ,a.dimension7_level_value
863 ,a.plan_id
864 ,c.increase_in_measure
865 ,c.comparison_source
866 ,c.indicator_id
867 FROM bis_user_ind_selections a
868 ,fnd_user_resp_groups b
869 ,bis_indicators c
870 ,bisbv_target_levels d
871 WHERE a.user_id = g_user_id
872 AND a.plug_id = p_plug_id
873 AND a.user_id = b.user_id
874 AND b.start_date <= sysdate
875 AND (b.end_date is null or b.end_date >= sysdate)
876 AND d.target_level_id = a.target_level_id
877 AND d.measure_id = c.indicator_id
878 ORDER BY a.ind_selection_id;
879
880
881
882 BEGIN
883 IF (ICX_SEC.validatePlugSession(p_plug_id,p_session_id)) THEN
884 g_user_id := icx_sec.getID(icx_sec.PV_USER_ID,'',p_session_id);
885
886 IF p_delete = 'Y' THEN
887
888 BEGIN
889 delete from bis_user_ind_selections
890 where user_id = g_user_id
891 and plug_id = p_plug_id;
892 EXCEPTION
893 WHEN OTHERS THEN
894 htp.p('Error: '||SQLERRM);
895 END;
896 ELSE
897
898 -- =======================
899 -- loading messages
900 -- =======================
901 l_none_lbl := BIS_UTILITIES_PVT.Get_FND_Message('BIS_NONE');
902 l_na_lbl := (BIS_UTILITIES_PVT.Get_FND_Message('BIS_PMF_NA_LBL'));
903 l_un_auth := BIS_UTILITIES_PVT.Get_FND_Message('BIS_UNAUTHORIZED');
904
905 -- header labels
906 l_status_lbl := BIS_UTILITIES_PVT.Get_FND_Message('BIS_STATUS');
907 l_measure_lbl := BIS_UTILITIES_PVT.Get_FND_Message('BIS_PMF_NAME');
908 l_value_lbl := BIS_UTILITIES_PVT.Get_FND_Message('BIS_VALUE_LBL');
909 l_change_lbl := (BIS_UTILITIES_PVT.Get_FND_Message('BIS_PMF_CHANGE'));
910 l_perc_lbl := (BIS_UTILITIES_PVT.Get_FND_Message('BIS_PMF_PERC_LBL'));
911
912 -- msgs
913 l_in_range_lbl := BIS_UTILITIES_PVT.Get_FND_Message('BIS_WITHIN_RANGE');
914 l_out_range_lbl := BIS_UTILITIES_PVT.Get_FND_Message('BIS_OUTSIDE_RANGE');
915 l_worse_msg := BIS_UTILITIES_PVT.Get_FND_Message('BIS_PMF_CHANGE_WORSE');
916 l_improve_msg := BIS_UTILITIES_PVT.Get_FND_Message('BIS_PMF_CHANGE_IMPROVE');
917
918
919 -- =======================
920 -- Begin Main block
921 -- =======================
922 -- Banner
923 htp.p('<table width="100%" border="0" cellspacing="0" cellpadding="0">');
924 htp.p('<tr><td>');
925
926
927 -- meastmon 09/07/2001 Fix bug#1980577. Workaround Do not encrypt plug_id
928 icx_plug_utilities.plugbanner(p_display_name,
929 'OA_HTML/OA.jsp?page=/oracle/apps/bis/pmf/pmportlet/pages/BISPMFSETINDICATORS&retainAM=Y&oapc=3&Z='||p_plug_id
930 , 'FNDINDIC.gif');
931
932
933 htp.p('</td></tr>');
934 htp.p('</table>');
935
936 draw_portlet_header(l_status_lbl
937 ,l_measure_lbl
938 ,l_value_lbl
939 ,l_change_lbl);
940
941
942 --Performance measures
943
944 -- Begin fetching rows from the table BIS_USER_IND_SELECTIONS
945 --
946 l_row_style := 'Band';
947
948 FOR csel in c_selections LOOP
949 htp.p(' <tr> ');
950 l_target_rec.target_level_id := csel.target_level_id;
951 l_target_rec.plan_id := csel.plan_id;
952
953 l_target_rec.dim1_level_value_id := csel.dimension1_level_value;
954 l_target_rec.dim2_level_value_id := csel.dimension2_level_value;
955 l_target_rec.dim3_level_value_id := csel.dimension3_level_value;
956 l_target_rec.dim4_level_value_id := csel.dimension4_level_value;
957 l_target_rec.dim5_level_value_id := csel.dimension5_level_value;
958 l_target_rec.dim6_level_value_id := csel.dimension6_level_value;
959 l_target_rec.dim7_level_value_id := csel.dimension7_level_value;
960 l_good_bad := csel.increase_in_measure; -- 1850860
961
962
963 -- This is to display one row in white and the next in yellow
964 l_row_style := get_row_style(l_row_style);
965
966 -- meastmon 05/09/2001 This block encloses logic to get target, actual
967 -- for this user selection
968 BEGIN
969
970 get_time_dim_index(
971 p_ind_selection_id => csel.ind_selection_id
972 ,x_target_rec => l_target_rec
973 ,x_err => l_err
974 ) ;
975
976 get_actual
977 ( p_target_rec => l_target_rec
978 ,x_actual_url => l_actual_url
979 ,x_actual_value => l_actual_value
980 ,x_comparison_actual_value => l_comparison_actual_value
981 ,x_err => l_err2
982 );
983 -- retriving target
984
985
986 get_target
987 ( p_target_in => l_target_rec
988 ,x_target => l_target
989 ,x_range1_low => l_range1_low
990 ,x_range1_high => l_range1_high
991 ,x_range2_low => l_range2_low
992 ,x_range2_high => l_range2_high
993 ,x_range3_low => l_range3_low
994 ,x_range3_high => l_range3_high
995 ,x_err => l_err2
996 );
997
998
999
1000 --=============================================================
1001 -- rendering now
1002 --=============================================================
1003 -- draw status, measure name and actual
1004
1005
1006 -- Now paint the actual if exists in the appropriate color
1007 IF l_actual_value IS NULL THEN
1008 --Paint the Label
1009 draw_status(l_status_lbl, 0, l_row_style);
1010 draw_measure_name(l_actual_url, csel.label, l_measure_lbl,l_row_style);
1011 draw_actual(l_value_lbl, l_none_lbl, l_row_style);
1012 draw_change(l_change_lbl,l_na_lbl,null,null,l_row_style);
1013
1014 ELSE
1015
1016 l_format_actual := getAKFormatValue( p_measure_id =>csel.indicator_id
1017 , p_val =>l_actual_value);
1018
1019 get_change(
1020 p_actual_value => l_actual_value
1021 ,p_comp_actual_value => l_comparison_actual_value
1022 ,p_comp_source => csel.comparison_source
1023 ,p_good_bad => l_good_bad
1024 ,p_improve_msg => l_improve_msg
1025 ,p_worse_msg => l_worse_msg
1026 ,x_change => l_change
1027 ,x_img => l_img
1028 ,x_arrow_alt_text => l_arrow_alt_text
1029 ,x_err => l_err2
1030 );
1031
1032 draw_status(
1033 p_status_lbl => l_status_lbl
1034 ,p_row_style => l_row_style
1035 ,p_actual_val => l_actual_value
1036 ,p_target_val => l_target
1037 ,p_range1_low_pcnt => l_range1_low
1038 ,p_range1_high_pcnt => l_range1_high
1039 );
1040
1041 draw_measure_name( l_actual_url
1042 , csel.label -- || l_target_rec.target_level_id
1043 , l_measure_lbl
1044 , l_row_style);
1045
1046 draw_actual(l_value_lbl, l_format_actual, l_row_style);
1047 IF ( l_change IS NULL) THEN
1048 draw_change(l_change_lbl,l_na_lbl,null,null,l_row_style);
1049 ELSE
1050 draw_change(l_change_lbl,
1051 TO_CHAR(l_change)||l_perc_lbl,l_img,l_arrow_alt_text,l_row_style);
1052 END IF;
1053 END IF; -- (l_actual_value IS NULL)
1054 htp.p(' </tr> ');
1055
1056
1057 EXCEPTION
1058 WHEN e_notimevalue THEN
1059 draw_status(l_status_lbl, 0, l_row_style);
1060 draw_measure_name(l_err, csel.label, l_measure_lbl,l_row_style);
1061 draw_actual(l_value_lbl, l_none_lbl, l_row_style);
1062 draw_change(l_change_lbl,l_na_lbl,null,null,l_row_style);
1063
1064 WHEN OTHERS THEN
1065 draw_status(l_status_lbl, 0, l_row_style);
1066 draw_measure_name(l_err2, csel.label, l_measure_lbl,l_row_style);
1067 --draw_measure_name(SQLERRM, csel.label, l_measure_lbl,l_row_style);
1068 draw_actual(l_value_lbl, l_none_lbl, l_row_style);
1069 draw_change(l_change_lbl,l_na_lbl,null,null,l_row_style);
1070
1071
1072 END; -- end of block containing the c_notimelevels cursor
1073
1074 htp.p(' </tr>');
1075
1076 END LOOP; -- end of c_selections loop
1077 draw_portlet_footer;
1078
1079 END IF; -- Main block: p_delete = 'Y'
1080
1081 END IF; -- icx_sec.validatePlugSession
1082
1083 EXCEPTION
1084 WHEN NO_DATA_FOUND THEN
1085 NULL;
1086 WHEN OTHERS THEN
1087 htp.p(SQLERRM);
1088 END DISPLAY;
1089
1090 -- ************************************************************
1091 -- Show Demo URL for Portlal
1092 -- ************************************************************
1093
1094 PROCEDURE show_cust_demo_url(
1095 p_plug_id IN PLS_INTEGER
1096 ,p_session_id IN PLS_INTEGER
1097 ,x_string OUT NOCOPY VARCHAR2
1098 )
1099 IS
1100 l_url VARCHAR2(10000);
1101 l_url_lbl VARCHAR2(10000);
1102 l_servlet_agent VARCHAR2(5000) := NULL;
1103 l_string VARCHAR2(32000);
1104 BEGIN
1105
1106 IF ( NOT BIS_PMF_PORTLET_UTIL.is_demo_on ) THEN -- demo not on
1107 x_string := NULL;
1108 RETURN;
1109 END IF;
1110
1111 -- demo is on
1112 l_url_lbl := BIS_UTILITIES_PVT.Get_FND_Message('BIS_PMF_ENTER_PT_DATA');
1113
1114 l_servlet_agent := FND_WEB_CONFIG.JSP_AGENT; -- 'http://serv:port/OA_HTML/'
1115 IF ( l_servlet_agent IS NULL ) THEN -- 'APPS_SERVLET_AGENT' is null
1116 l_servlet_agent := FND_WEB_CONFIG.WEB_SERVER || 'OA_HTML/';
1117 END IF;
1118
1119 -- juwang
1120 l_url := l_servlet_agent ||
1121 'bisptdta.jsp?dbc=' || FND_WEB_CONFIG.database_id() || -- 2454902
1122 '&pPlugId=' || p_plug_id ||
1123 '&sessionid=' || p_session_id;
1124
1125 l_string := l_string ||'<table>';
1126 l_string := l_string ||'<tr><td align="LEFT"><a href="' || l_url ||'">' || l_url_lbl||'</a></td></tr>';
1127 l_string := l_string ||'</table>';
1128
1129 x_string := l_string;
1130
1131
1132 -- juwang
1133
1134 EXCEPTION
1135 WHEN OTHERS THEN
1136 RETURN ;
1137
1138 END show_cust_demo_url;
1139
1140
1141 -- *********************************************
1142 -- Procedure to choose the Indicator levels
1143 -- 19-SEP-00 gsanap Modified SetIndicators procedure to fix
1144 -- Bug 1404224 which was the Banner on Customize pg.
1145 -- was not displaying properly
1146 -- *********************************************
1147 procedure setIndicators (
1148 Z in pls_integer default NULL
1149 , p_selections_tbl Selected_Values_Tbl_Type
1150 , p_back_url IN VARCHAR2
1151 , p_reference_path IN VARCHAR2
1152 , x_string out NOCOPY VARCHAR2
1153 )
1154 is
1155 l_count number;
1156 l_resp_id number;
1157 l_initialize varchar2(32000);
1158 r_initialize varchar2(32000);
1159 l_nbsp varchar2(32000);
1160 l_title varchar2(32000);
1161 l_tarlevel_lbl varchar2(32000);
1162 l_select_tarlevel varchar2(32000);
1163 l_dup_tarlevel varchar2(32000);
1164 l_resp_counter number;
1165 l_prompt_length number;
1166 l_instruction varchar2(32000);
1167 l_plug_id pls_integer;
1168 l_plug_id1 pls_integer;--comment
1169 --
1170 l_line_length pls_integer;
1171 l_line varchar2(32000);
1172 l_point1 pls_integer;
1173 l_length pls_integer;
1174 l_nextcount pls_integer;
1175 l_lastcount pls_integer;
1176 l_occurence pls_integer;
1177 l_ind_level_name varchar2(32000);
1178 l_ind_level_id pls_integer;
1179 l_current_user_id PLS_INTEGER;
1180 l_user_id PLS_INTEGER;
1181 l_owner_user_id PLS_INTEGER;
1182 --
1183 l_loc pls_integer;
1184 l_value varchar2(32000);
1185 l_text varchar2(32000);
1186 l_msg_count number;
1187 l_msg_data varchar2(32000);
1188 l_return_status varchar2(32000);
1189 l_indicators_tbl BIS_TARGET_LEVEL_PUB.Target_Level_Tbl_Type;
1190 l_displaylabels_tbl Selected_Values_Tbl_Type;
1191 l_selections_tbl BIS_INDICATOR_REGION_PUB.Indicator_Region_Tbl_Type;
1192 l_temp_tbl no_duplicates_tbl_Type;
1193 l_unique BOOLEAN;
1194 l_cnt pls_integer;
1195 l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
1196
1197 -- Fix for ADA buttons
1198 l_button_str varchar2(32000);
1199 l_button_tbl BIS_UTILITIES_PVT.HTML_Button_Tbl_Type;
1200 l_string VARCHAR2(32000);
1201 l_demo_string VARCHAR(32000);
1202 l_append_string VARCHAR2(1000);
1203 l_swan_enabled BOOLEAN;
1204 l_button_edge VARCHAR2(100);
1205
1206 BEGIN
1207
1208 -- meastmon 09/07/2001 Fix bug#1980577. Workaround Do not encrypt plug_id
1209 l_plug_id := Z;
1210
1211 l_swan_enabled := BIS_UTILITIES_PVT.checkSWANEnabled();
1212
1213
1214 --if icx_sec.validateSession then
1215 -- if ICX_SEC.validatePlugSession(l_plug_id) then
1216
1217 --g_user_id := icx_sec.getID(icx_sec.PV_USER_ID, '', icx_sec.g_session_id); --2751984
1218 l_current_user_id := icx_sec.getID(icx_sec.PV_USER_ID, '', icx_sec.g_session_id); --2751984
1219
1220 l_nbsp := '&'||'nbsp;';
1221 l_initialize := ' ';
1222
1223 -- Get all the message strings from the database
1224 fnd_message.set_name('BIS','BIS_SELECT_TARLEVEL');
1225 l_select_tarlevel := icx_util.replace_quotes(fnd_message.get);
1226 --changed from BIS_DUP_TARLEVEL to BIS_DUP_TARLEVELS
1227 fnd_message.set_name('BIS','BIS_DUP_TARLEVELS');
1228 l_dup_tarlevel := icx_util.replace_quotes(fnd_message.get);
1229
1230 -- Create a dummy value in the indicators table to send it
1231 -- to the next proc because one of parameters is a plsql table
1232 -- which cannot be nullable
1233 -- l_displaylabels_tbl(1) := '';
1234
1235
1236 IF ((p_reference_path IS NOT NULL) AND (NOT BIS_PMF_PORTLET_UTIL.has_customized_rows(l_plug_id, l_current_user_id, l_owner_user_id) )) THEN
1237 l_user_id := l_owner_user_id;
1238 ELSE
1239 l_user_id := l_current_user_id;
1240 END IF;
1241
1242 -- ********************************************
1243 -- Get all the Indicator Levels for this user
1244 -- ********************************************
1245 BIS_TARGET_LEVEL_PUB.Retrieve_User_Target_Levels
1246 ( p_api_version => 1.0
1247 , p_all_info => FND_API.G_FALSE
1248 , p_user_id => l_current_user_id
1249 , x_Target_Level_Tbl => l_indicators_tbl
1250 , x_return_status => l_return_status
1251 , x_Error_Tbl => l_error_tbl
1252 );
1253
1254 -- Get all the previously selected Indicator levels from
1255 -- bis_user_ind_selections table.
1256 BIS_INDICATOR_REGION_PUB.Retrieve_User_Ind_Selections
1257 ( p_api_version => 1.0
1258 , p_user_id => l_user_id
1259 , p_all_info => FND_API.G_TRUE
1260 , p_plug_id => l_plug_id
1261 , x_Indicator_Region_Tbl => l_selections_tbl
1262 , x_return_status => l_return_status
1263 , x_Error_Tbl => l_error_tbl
1264 );
1265
1266 -- /*********** For DEBUGGING **************
1267 -- htp.p('g_user_id '||g_user_id||'<BR>');
1268 -- htp.p('g_plug_id '||l_plug_id||'<BR>');
1269 -- for i in 1 .. l_indicators_tbl.COUNT loop
1270 -- htp.p('l_indicators_tbl(i).target_level_name: '||
1271 -- l_indicators_tbl(i).target_level_name||'<BR>');
1272 -- end loop;
1273 -- ************************************************/
1274
1275
1276
1277
1278 -- Remove the duplicates from the l_selections_tbl
1279 IF (l_selections_tbl.COUNT <> 0) THEN
1280 FOR i in 1 .. l_selections_tbl.COUNT LOOP
1281 l_unique := TRUE;
1282 FOR j in 1 .. l_temp_tbl.COUNT LOOP
1283 if l_selections_tbl(i).target_level_id = l_temp_tbl(j).id then
1284 l_unique := FALSE;
1285 end if;
1286 END LOOP;
1287 if (l_unique AND
1288 BIS_PMF_PORTLET_UTIL.is_authorized(
1289 p_cur_user_id => g_user_id
1290 ,p_target_level_id => l_selections_tbl(i).target_level_id) ) THEN
1291 l_cnt := l_temp_tbl.COUNT + 1;
1292 l_temp_tbl(l_cnt).id := l_selections_tbl(i).target_level_id;
1293 l_temp_tbl(l_cnt).name := l_selections_tbl(i).target_level_name;
1294 end if;
1295 END LOOP;
1296 END IF;
1297
1298
1299 ---------------------------------------------------------------------------
1300 -- 19-SEP-00 gsanap Modified this part to use putStyle and remove icon_show
1301 -- Bug 1404224 which was the Banner on Customize pg.
1302 -- was not displaying properly
1303 ---------------------------------------------------------------------------
1304 l_string := l_string ||'<body>';
1305 l_string := l_string || '<LINK HREF="/OA_HTML/bisportal.css" type="text/css" rel="stylesheet">';
1306
1307
1308 -- Print out NOCOPY the instructions for this page
1309 fnd_message.set_name('BIS','BIS_PLUG_INSTRUCTION1');
1310 l_instruction := bis_utilities_pvt.escape_html_input(icx_util.replace_quotes(fnd_message.get));
1311 l_string := l_string ||'<BR>';
1312 l_string := l_string ||'<table width="100%" border=0 cellspacing=0 cellpadding=0>';
1313 l_string := l_string ||'<tr><td width=5%></td><td width=90%>';
1314 l_string := l_string ||l_instruction||'</td><td width=5%></td></tr>';
1315 l_string := l_string ||'</table>';
1316 l_string := l_string ||'<BR>';
1317
1318 l_string := l_string ||'<SCRIPT LANGUAGE="JavaScript">';
1319
1320
1321 -- Function to move the selected target levels to the favorites box
1322 --meastmon 06/25/2001. Validate that user have seleted a target level before
1323 --clicking add button
1324 l_string := l_string || 'function addTo() {';
1325 l_string := l_string || ' var temp=document.DefaultFormName.B.selectedIndex;';
1326 l_string := l_string || ' if (temp < 0)';
1327 l_string := l_string || ' selectTo();';
1328 l_string := l_string || ' else {';
1329 l_string := l_string || ' var totext=document.DefaultFormName.B[temp].text;';
1330 l_string := l_string || ' var tovalue=document.DefaultFormName.B[temp].value;';
1331 l_string := l_string || ' var end=document.DefaultFormName.C.length;';
1332 l_string := l_string || ' if (end > 0) {';
1333 l_string := l_string || ' if (document.DefaultFormName.C.options[end-1].value =="") { ';
1334 l_string := l_string || ' end = end - 1;';
1335 l_string := l_string || ' }';
1336 l_string := l_string || ' for (var i=0;i<end;i++) {';
1337 l_string := l_string || ' if (tovalue == document.DefaultFormName.C[i].value)';
1338 l_string := l_string || ' var check = 0;';
1339 l_string := l_string || ' }';
1340 l_string := l_string || ' if (check == 0) {';
1341 l_string := l_string || ' alert("'||l_dup_tarlevel||'");';
1342 l_string := l_string || ' }';
1343 l_string := l_string || ' else {';
1344 l_string := l_string || ' document.DefaultFormName.C.options[end] = new Option(totext,tovalue);';
1345 l_string := l_string || ' document.DefaultFormName.C.selectedIndex = end;';
1346 l_string := l_string || ' }';
1347 l_string := l_string || ' }';
1348 l_string := l_string || ' else {';
1349 l_string := l_string || ' document.DefaultFormName.C.options[end] = new Option(totext,tovalue);';
1350 l_string := l_string || ' document.DefaultFormName.C.selectedIndex = end;';
1351 l_string := l_string || ' }';
1352 l_string := l_string || ' }';
1353 l_string := l_string || ' }';
1354
1355
1356 l_string := l_string || 'function selectTo() {';
1357 l_string := l_string || ' alert("'||l_select_tarlevel||'")';
1358 l_string := l_string || ' }';
1359
1360
1361 -- Function to move selections upwards in the favorites box
1362 -- meastmon 06/25/2001 Fix bug#1835495.
1363 l_string := l_string ||'function upTo() {';
1364 l_string := l_string ||' var temp = document.DefaultFormName.C.selectedIndex;';
1365 l_string := l_string ||' if (temp < 0)';
1366 l_string := l_string ||' selectTo();';
1367 l_string := l_string ||' else {';
1368 l_string := l_string ||' if (temp > 0) { ';
1369 l_string := l_string ||' var text = document.DefaultFormName.C[temp-1].text;';
1370 l_string := l_string ||' var val = document.DefaultFormName.C.options[temp-1].value;';
1371 l_string := l_string ||' var totext = document.DefaultFormName.C[temp].text;';
1372 l_string := l_string ||' var toval = document.DefaultFormName.C.options[temp].value;';
1373 l_string := l_string ||' document.DefaultFormName.C[temp-1].text = totext;';
1374 l_string := l_string ||' document.DefaultFormName.C.options[temp-1].value = toval;';
1375 l_string := l_string ||' document.DefaultFormName.C[temp].text = text;';
1376 l_string := l_string ||' document.DefaultFormName.C.options[temp].value = val;';
1377 l_string := l_string ||' document.DefaultFormName.C.selectedIndex = temp-1;';
1378 l_string := l_string ||' }';
1379 l_string := l_string ||' }';
1380
1381 l_string := l_string ||' }';
1382
1383 -- Function to move selections downwards in the favorites box
1384 -- meastmon 06/25/2001 Fix bug#1835495.
1385 l_string := l_string ||'function downTo() {';
1386 l_string := l_string ||' var temp = document.DefaultFormName.C.selectedIndex;';
1387 l_string := l_string ||' var end = document.DefaultFormName.C.length;';
1388
1389 l_string := l_string ||' if (temp < 0)';
1390 l_string := l_string ||' selectTo();';
1391 l_string := l_string ||' else {';
1392 l_string := l_string ||' if (document.DefaultFormName.C.options[end-1].value == "")';
1393 l_string := l_string ||' end = end - 1;';
1394
1395 l_string := l_string ||' if (temp < (end-1)) {';
1396 l_string := l_string ||' var text = document.DefaultFormName.C[temp+1].text;';
1397 l_string := l_string ||' var val = document.DefaultFormName.C.options[temp+1].value;';
1398 l_string := l_string ||' var totext = document.DefaultFormName.C[temp].text;';
1399 l_string := l_string ||' var toval = document.DefaultFormName.C.options[temp].value;';
1400
1401 l_string := l_string ||' document.DefaultFormName.C[temp+1].text = totext;';
1402 l_string := l_string ||' document.DefaultFormName.C.options[temp+1].value = toval;';
1403 l_string := l_string ||' document.DefaultFormName.C[temp].text = text;';
1404 l_string := l_string ||' document.DefaultFormName.C.options[temp].value = val;';
1405 l_string := l_string ||' document.DefaultFormName.C.selectedIndex = temp+1;';
1406 l_string := l_string ||' }';
1407 l_string := l_string ||' }';
1408
1409 l_string := l_string ||' }';
1410
1411
1412 -- Function to delete entries in the favorites box
1413 l_string := l_string ||'function deleteTo() {';
1414 l_string := l_string ||' var temp=document.DefaultFormName.C.selectedIndex;';
1415 l_string := l_string ||' if (temp < 0)';
1416 l_string := l_string ||' selectTo();';
1417 l_string := l_string ||' else {';
1418 l_string := l_string ||' document.DefaultFormName.C.options[temp] = null;';
1419 l_string := l_string ||' }';
1420
1421 l_string := l_string ||' }';
1422
1423 l_string := l_string ||'function open_new_browser() {';
1424 l_string := l_string ||' var attributes = "resizable=yes,scrollbars=yes,toolbar=no,width="+x+",height="+ y;';
1425 l_string := l_string ||' var new_browser = window.open(url, "new_browser", attributes);';
1426 l_string := l_string ||' if (new_browser != null) {';
1427 l_string := l_string ||' if (new_browser.opener == null)';
1428 l_string := l_string ||' new_browser.opener = self;';
1429 l_string := l_string ||' window.name = ''Oraclefavoritesroot'';';
1430 l_string := l_string ||' new_browser.location.href = url;';
1431 l_string := l_string ||' }';
1432 l_string := l_string ||' }';
1433
1434
1435 -- Function to save the favorites
1436 l_string := l_string ||'function savefavorites() {';
1437 l_string := l_string ||' var end=document.DefaultFormName.C.length;';
1438 l_string := l_string ||' for (var i=0; i<end; i++) {';
1439 l_string := l_string ||' if (document.DefaultFormName.C.options[i].value != "") {';
1440 l_string := l_string || ' var e = document.DefaultFormName.C.options[i].value; ';
1441 l_string := l_string ||' document.DefaultFormName.p_selections_tbl[i].value = e + "*" + document.DefaultFormName.C.options[i].text;';
1442 l_string := l_string ||' document.DefaultFormName.submit();';
1443 l_string := l_string ||' }';
1444 l_string := l_string ||' }';
1445 l_string := l_string ||' }';
1446
1447 -- Function to reset everything on the page
1448 l_string := l_string ||'function resetfavorites() {';
1449 l_string := l_string ||'loadFrom();';
1450 l_string := l_string ||'loadTo();';
1451 l_string := l_string ||' }';
1452
1453 l_string := l_string ||'</SCRIPT>';
1454
1455 l_string := l_string ||'<SCRIPT LANGUAGE="Javascript">document.DefaultFormName.Z.value='||Z||';';
1456 l_string := l_string ||'</SCRIPT>';
1457 l_string := l_string ||'<SCRIPT LANGUAGE="Javascript">document.DefaultFormName.p_back_url.value='''||p_back_url||''';';
1458 l_string := l_string ||'</SCRIPT>';
1459 l_string := l_string ||'<SCRIPT LANGUAGE="Javascript">document.DefaultFormName.p_reference_path.value='''||p_reference_path||''';';
1460 l_string := l_string ||'</SCRIPT>';
1461 l_string := l_string ||'<INPUT TYPE="hidden" NAME="p_indlevel" VALUE="">';
1462 l_string := l_string ||'<INPUT TYPE="hidden" NAME="p_ind_level_id" VALUE="">';
1463 l_string := l_string ||'<INPUT TYPE="hidden" NAME="p_displaylabels_tbl" VALUE="">';
1464
1465 -- Create hidden values to grab selected indicator levels into
1466
1467 l_string := l_string ||'<CENTER>';
1468 l_string := l_string ||'<table width="100%" border=0 cellspacing=0 cellpadding=0>';--main
1469 l_string := l_string ||'<tr><td align=center>';
1470 l_string := l_string ||'<table width="10%" border=0 cellspacing=0 cellpadding=0>';--cell
1471
1472 IF(l_swan_enabled)THEN
1473 l_string := l_string ||'<tr><td nowrap="YES" class="x49">';
1474 l_string := l_string ||BIS_UTILITIES_PVT.getPrompt('BIS_AVAILABLE_MEASURES')||': ';
1475 l_string := l_string ||'</td><td nowrap="YES" class="x49">';
1476 l_string := l_string ||BIS_UTILITIES_PVT.getPrompt('BIS_SELECTED_MEASURES')||': ';
1477 ELSE
1478 l_string := l_string ||'<tr><td nowrap="YES">';
1479 l_string := l_string ||BIS_UTILITIES_PVT.getPrompt('BIS_AVAILABLE_MEASURES')||': ';
1480 l_string := l_string ||'</td><td nowrap="YES">';
1481 l_string := l_string ||BIS_UTILITIES_PVT.getPrompt('BIS_SELECTED_MEASURES')||': ';
1482 END IF;
1483 l_string := l_string ||'</td></tr>';
1484 l_string := l_string ||'<tr><td>';
1485 l_string := l_string ||'<table border=0 cellspacing=0 cellpadding=0><tr><td>'; -- full menu cell
1486 l_string := l_string ||'<select name="B" size=10>';
1487
1488 IF (l_indicators_tbl.COUNT = 0) THEN
1489 l_string := l_string ||'<OPTION VALUE=> ';
1490 ELSE
1491 for i in l_indicators_tbl.FIRST .. l_indicators_tbl.COUNT loop
1492 -- mdamle 01/12/2001 - Change display text of Performance Measure list
1493 -- changed l_indicators_tbl(i).target_level_name to getPerformanceMeasureName()
1494 l_string := l_string ||'<OPTION VALUE='||bis_utilities_pvt.escape_html_input(l_indicators_tbl(i).target_level_id)||'>'||bis_utilities_pvt.escape_html_input(getPerformanceMeasureName(l_indicators_tbl(i).target_level_id));
1495 end loop;
1496 END IF;
1497
1498 l_string := l_string ||'</SELECT>';
1499
1500 l_string := l_string ||'</td><td align="left">';
1501 l_string := l_string ||'<table><tr><td>'; --add
1502 l_string := l_string ||'<A HREF="javascript:addTo();';
1503 l_string := l_string || '" onMouseOver="window.status=''';
1504 l_string := l_string || BIS_UTILITIES_PVT.getPrompt('BIS_ADD');
1505
1506 IF(l_swan_enabled)THEN
1507 l_string := l_string || ''';return true"><image src="/OA_MEDIA/BISMOVE.gif" alt="';
1508 ELSE
1509 l_string := l_string || ''';return true"><image src="/OA_MEDIA/FNDRTARW.gif" alt="';
1510 END IF;
1511
1512 l_string := l_string || ICX_UTIL.replace_alt_quotes(BIS_UTILITIES_PVT.getPrompt('BIS_ADD'))||'" BORDER="0"></A>';
1513 l_string := l_string ||'</td></tr></table>'; -- add
1514 l_string := l_string ||'</td></tr></table>'; -- full menu cell
1515 l_string := l_string ||'</td><td>';
1516 --favorite cell
1517 l_string := l_string ||'<table border=0 cellspacing=0 cellpadding=0><tr><td>';
1518 l_string := l_string ||'<select name="C" size=10>';
1519
1520
1521
1522 if (TRIM(p_selections_tbl(1)) is NULL) then
1523 -- If first time to this page, get the data from database
1524 IF (l_temp_tbl.COUNT = 0) THEN
1525 l_string := l_string ||'<OPTION VALUE=> ';
1526 ELSE
1527 for i in l_temp_tbl.FIRST .. l_temp_tbl.COUNT loop
1528 -- mdamle 01/12/2001 - Change display text of Performance Measure list
1529 -- changed l_temp_tbl(i).name to getPerformanceMeasureName()
1530 l_string := l_string ||'<OPTION VALUE='||bis_utilities_pvt.escape_html_input(l_temp_tbl(i).id)||'>'||bis_utilities_pvt.escape_html_input(getPerformanceMeasureName(l_temp_tbl(i).id));
1531 end loop;
1532 END IF;
1533 else
1534
1535 -- If coming back from the next page,get data from plsql table
1536 for i in p_selections_tbl.FIRST .. p_selections_tbl.COUNT loop
1537
1538 l_loc := instr(p_selections_tbl(i),'*',1,1);
1539 l_value := substr (p_selections_tbl(i),1,l_loc - 1);
1540 l_text := substr (p_selections_tbl(i),l_loc + 1);
1541 l_string := l_string ||'<OPTION VALUE='||bis_utilities_pvt.escape_html_input(l_value)||'>'||bis_utilities_pvt.escape_html_input(l_text);
1542 exit when p_selections_tbl(i) is NULL;
1543 end LOOP;
1544
1545 end if;
1546
1547 l_string := l_string ||'</SELECT>';
1548 l_string := l_string ||'</td><td align="left">';
1549
1550 -- up and down
1551 l_string := l_string ||'<table><tr><td align="left" valign="bottom">';
1552 l_string := l_string ||'<A HREF="javascript:upTo()" onMouseOver="window.status=''';
1553 --l_string := l_string || ICX_UTIL.replace_onMouseOver_quotes(BIS_UTILITIES_PVT.getPrompt('BIS_UP'));
1554 l_string := l_string || BIS_UTILITIES_PVT.getPrompt('BIS_UP');
1555 IF(l_swan_enabled)THEN
1556 l_string := l_string || ''';return true"><image src="/OA_MEDIA/BISMOVUP.gif" alt="';
1557 ELSE
1558 l_string := l_string || ''';return true"><image src="/OA_MEDIA/FNDUPARW.gif" alt="';
1559 END IF;
1560 l_string := l_string || BIS_UTILITIES_PVT.getPrompt('BIS_UP')||'" BORDER="0"></A>';
1561 l_string := l_string ||'</td></tr><tr><td align="left" valign="top">';
1562 l_string := l_string ||'<A HREF="javascript:downTo()" onMouseOver="window.status=''';
1563 l_string := l_string || BIS_UTILITIES_PVT.getPrompt('BIS_DOWN');
1564 IF(l_swan_enabled)THEN
1565 l_string := l_string || ''';return true"><image src="/OA_MEDIA/BISMOVDN.gif" alt="';
1566 ELSE
1567 l_string := l_string || ''';return true"><image src="/OA_MEDIA/FNDDNARW.gif" alt="';
1568 END IF;
1569 l_string := l_string || ICX_UTIL.replace_alt_quotes(BIS_UTILITIES_PVT.getPrompt('BIS_DOWN'))||'" BORDER="0"></A>';
1570 l_string := l_string ||'</td></tr></table>'; --up and down
1571 l_string := l_string ||'</td></tr></table>'; --favorite cell
1572 l_string := l_string ||'</td></tr>';
1573 l_string := l_string ||'<tr><td></td><td>';
1574
1575 --buttons
1576 l_string := l_string ||'<table><tr>';
1577 l_string := l_string ||'<td><BR></td>';
1578 l_string := l_string ||'<td><BR></td><td>';
1579
1580 IF(l_swan_enabled)THEN
1581 l_button_edge := BIS_UTILITIES_PVT.G_FLAT_EDGE;
1582 ELSE
1583 l_button_edge := BIS_UTILITIES_PVT.G_ROUND_EDGE;
1584 END IF;
1585
1586 --meastmon ICX Button is not ADA Complaint. ICX is not going to fix that.
1587 l_button_tbl(1).left_edge := l_button_edge;
1588 l_button_tbl(1).right_edge := l_button_edge;
1589 l_button_tbl(1).disabled := FND_API.G_FALSE;
1590 l_button_tbl(1).label := BIS_UTILITIES_PVT.getPrompt('BIS_DELETE');
1591 l_button_tbl(1).href := 'Javascript:deleteTo()';
1592
1593 BIS_UTILITIES_PVT.GetButtonString(l_button_tbl, l_button_str);
1594 l_string := l_string ||l_button_str;
1595
1596 l_string := l_string ||'</td></tr></table>';
1597 l_string := l_string ||'</td></tr>';
1598
1599 l_string := l_string ||'<!-- ******** Buttons Row ********* -->';
1600 l_string := l_string ||'<tr><td colspan="2"><BR></td></tr>';
1601 l_string := l_string ||'<tr><td colspan="2">';
1602 l_string := l_string ||'<table width="100%"><tr><td width=50% align="right">'; -- ok
1603
1604 --meastmon ICX Button is not ADA Complaint. ICX is not going to fix that.
1605
1606 l_button_tbl(1).left_edge := l_button_edge;
1607 l_button_tbl(1).right_edge := BIS_UTILITIES_PVT.G_FLAT_EDGE;
1608 l_button_tbl(1).disabled := FND_API.G_FALSE;
1609 l_button_tbl(1).label := BIS_UTILITIES_PVT.getPrompt('BIS_CONTINUE');
1610 l_button_tbl(1).href := 'Javascript:savefavorites()';
1611 BIS_UTILITIES_PVT.GetButtonString(l_button_tbl, l_button_str);
1612 l_string := l_string ||l_button_str;
1613 l_string := l_string ||'</td><td align="left" width="50%">';
1614
1615 --meastmon ICX Button is not ADA Complaint. ICX is not going to fix that.
1616 l_button_tbl(1).left_edge := BIS_UTILITIES_PVT.G_FLAT_EDGE;
1617 l_button_tbl(1).right_edge := l_button_edge;
1618 l_button_tbl(1).disabled := FND_API.G_FALSE;
1619 l_button_tbl(1).label := BIS_UTILITIES_PVT.getPrompt('BIS_CANCEL');
1620
1621 IF (p_back_url IS NULL) THEN
1622 l_button_tbl(1).href := BIS_REPORT_UTIL_PVT.Get_Home_URL;
1623 ELSE
1624 l_button_tbl(1).href := p_back_url;
1625 END IF;
1626
1627 BIS_UTILITIES_PVT.GetButtonString(l_button_tbl, l_button_str);
1628 l_string := l_string ||l_button_str;
1629 l_string := l_string ||'</td></tr></table>';
1630 l_string := l_string ||'</td></tr>';
1631
1632
1633 l_string := l_string ||'</table>'; --cell
1634 l_string := l_string ||'</td></tr>';
1635 l_string := l_string ||'</table>'; --main
1636 l_string := l_string ||'<SCRIPT LANGUAGE="JavaScript">';
1637 l_string := l_string ||'document.DefaultFormName.B.focus();';
1638 l_string := l_string ||'</SCRIPT>';
1639 l_string := l_string ||'</CENTER>';
1640
1641 --need to add demo in portals
1642
1643
1644 IF (p_reference_path IS NOT NULL) THEN
1645 show_cust_demo_url(l_plug_id, icx_sec.g_session_id, l_demo_string);
1646 IF (l_demo_string IS NOT NULL) THEN
1647 l_string := l_string || l_demo_string;
1648 END IF;
1649 END IF;
1650
1651 l_string := l_string ||'</BODY>';
1652 l_string := l_string ||'</HTML>';
1653 -- end if;
1654 --end if;
1655
1656 x_string := l_string;
1657
1658 exception
1659 when others then
1660 x_string := SQLERRM;
1661
1662 end setIndicators;
1663
1664
1665
1666 -- ************************************************************
1667 -- Show the Dimensions Page
1668 -- ************************************************************
1669 procedure showDimensions
1670 ( Z in pls_integer
1671 , p_indlevel in varchar2 default NULL
1672 , p_ind_level_id in pls_integer default NULL
1673 , p_displaylabels_tbl in Selected_Values_Tbl_Type
1674 , p_selections_tbl in Selected_Values_Tbl_Type
1675 , p_back_url in VARCHAR2
1676 , p_reference_path IN VARCHAR2
1677 , x_str_object out nocopy CLOB
1678 )
1679 is
1680 l_counter pls_integer := 150;
1681 l_cnt pls_integer;
1682 l_plug_id pls_integer;
1683 l_length pls_integer;
1684 l_initialize varchar2(32000);
1685 l_nbsp varchar2(32000);
1686 l_title varchar2(32000);
1687 l_choose_dim_value varchar2(32000);
1688 l_enter_displabel varchar2(32000);
1689 l_select_displabel varchar2(32000);
1690 l_dup_displabel varchar2(32000);
1691 l_dup_combo varchar2(32000);
1692 l_resp_counter number;
1693 l_prompt_length number;
1694 l_instruction varchar2(32000);
1695 l_blank varchar2(32000);
1696 l_msg_count number;
1697 l_msg_data varchar2(32000);
1698 l_return_status varchar2(32000);
1699 l_loc pls_integer;
1700 l_value varchar2(32000);
1701 l_text varchar2(32000);
1702 l_ind_level_name varchar2(32000);
1703 l_ind_level_id pls_integer;
1704 l_indicators_tbl BIS_TARGET_LEVEL_PUB.Target_Level_Tbl_Type;
1705 l_labels_tbl BIS_INDICATOR_REGION_PUB.Indicator_Region_Tbl_Type;
1706 l_orgs_tbl no_duplicates_tbl_Type;
1707 l_dim1_tbl no_duplicates_tbl_Type;
1708 l_dim2_tbl no_duplicates_tbl_Type;
1709 l_dim3_tbl no_duplicates_tbl_Type;
1710 l_dim4_tbl no_duplicates_tbl_Type;
1711 l_dim5_tbl no_duplicates_tbl_Type;
1712 -- mdamle 01/15/2001 - Use Dim6 and Dim7
1713 l_dim6_tbl no_duplicates_tbl_Type;
1714 l_dim7_tbl no_duplicates_tbl_Type;
1715
1716 l_d0_tbl no_duplicates_tbl_Type;
1717 l_d1_tbl no_duplicates_tbl_Type;
1718 l_d2_tbl no_duplicates_tbl_Type;
1719 l_d3_tbl no_duplicates_tbl_Type;
1720 l_d4_tbl no_duplicates_tbl_Type;
1721 l_d5_tbl no_duplicates_tbl_Type;
1722 l_d6_tbl no_duplicates_tbl_Type;
1723 l_d7_tbl no_duplicates_tbl_Type;
1724 l_current_user_id PLS_INTEGER;
1725 l_user_id PLS_INTEGER;
1726 l_owner_user_id PLS_INTEGER;
1727 l_Time_Seq_Num number;
1728 --
1729 l_Org_Seq_Num number;
1730 l_Org_Level_ID number;
1731
1732
1733 l_Org_Level_Value_ID varchar2(80); -- number;
1734
1735 l_Org_Level_Short_Name varchar2(240);
1736 l_Org_Level_Name bis_levels_tl.name%TYPE;
1737
1738 d0 varchar2(32000);
1739 d1 varchar2(32000);
1740 l_link varchar2(32000);
1741 l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
1742 l_clear VARCHAR2(32000);
1743 l_sobString VARCHAR2(32000);
1744 l_elements BIS_UTILITIES_PUB.BIS_VARCHAR_TBL;
1745
1746 -- Grab the incoming indicator level id into a local var for use later
1747 v_ind_level_id pls_integer := p_ind_level_id;
1748
1749 cursor plan_cur is
1750 SELECT plan_id,short_name,name
1751 FROM BISBV_BUSINESS_PLANS
1752 ORDER BY name;
1753
1754 -- mdamle 01/15/2001 - Use Dim6 and Dim7
1755 -- added short_names and additional levels
1756 cursor bisfv_target_levels_cur(p_tarid in pls_integer) is
1757 SELECT TARGET_LEVEL_ID,
1758 TARGET_LEVEL_NAME,
1759 -- mdamle 01/15/2001 - Use Dim6 and Dim7
1760 -- ORG_LEVEL_ID,
1761 -- ORG_LEVEL_SHORT_NAME,
1762 -- ORG_LEVEL_NAME,
1763 DIMENSION1_LEVEL_ID,
1764 DIMENSION1_LEVEL_SHORT_NAME,
1765 DIMENSION1_LEVEL_NAME,
1766 DIMENSION2_LEVEL_ID,
1767 DIMENSION2_LEVEL_SHORT_NAME,
1768 DIMENSION2_LEVEL_NAME,
1769 DIMENSION3_LEVEL_ID,
1770 DIMENSION3_LEVEL_SHORT_NAME,
1771 DIMENSION3_LEVEL_NAME,
1772 DIMENSION4_LEVEL_ID,
1773 DIMENSION4_LEVEL_SHORT_NAME,
1774 DIMENSION4_LEVEL_NAME,
1775 DIMENSION5_LEVEL_ID,
1776 DIMENSION5_LEVEL_SHORT_NAME,
1777 DIMENSION5_LEVEL_NAME,
1778 DIMENSION6_LEVEL_ID,
1779 DIMENSION6_LEVEL_SHORT_NAME,
1780 DIMENSION6_LEVEL_NAME,
1781 DIMENSION7_LEVEL_ID,
1782 DIMENSION7_LEVEL_SHORT_NAME,
1783 DIMENSION7_LEVEL_NAME
1784 FROM BISFV_TARGET_LEVELS
1785 WHERE TARGET_LEVEL_ID = p_tarid;
1786
1787 l_button_str varchar2(32000);
1788 l_button_tbl BIS_UTILITIES_PVT.HTML_Button_Tbl_Type;
1789 --Bug 1797465
1790 l_dim0_lbl VARCHAR2(1000);
1791 l_dim1_lbl VARCHAR2(1000);
1792 l_dim2_lbl VARCHAR2(1000);
1793 l_dim3_lbl VARCHAR2(1000);
1794 l_dim4_lbl VARCHAR2(1000);
1795 l_dim5_lbl VARCHAR2(1000);
1796 l_dim6_lbl VARCHAR2(1000);
1797 l_dim7_lbl VARCHAR2(1000);
1798 l_string VARCHAR2(32000);
1799 l_string1 VARCHAR2(32000);
1800 l_lov_string VARCHAR2(32000);
1801 l_str_object CLOB;
1802 l_un_auth VARCHAR2(200);
1803 l_access VARCHAR2(200);
1804 l_append_string VARCHAR2(1000);
1805 l_swan_enabled BOOLEAN;
1806 l_button_edge VARCHAR2(100);
1807
1808 BEGIN
1809
1810
1811 l_plug_id := Z;
1812 l_swan_enabled := BIS_UTILITIES_PVT.checkSWANEnabled();
1813 --l_plug_id := icx_call.decrypt2(Z);
1814
1815 --if icx_sec.validateSession then
1816 -- if ICX_SEC.validatePlugSession(l_plug_id) then
1817
1818 --g_user_id := ICX_SEC.getID(ICX_SEC.PV_USER_ID, '', icx_sec.g_session_id); --2751984
1819 l_current_user_id := ICX_SEC.getID(ICX_SEC.PV_USER_ID, '', icx_sec.g_session_id); --2751984
1820
1821
1822 l_initialize := ' ';
1823 l_blank := '';
1824
1825 -- Set the message strings from the database
1826 fnd_message.set_name('BIS','BIS_ENTER_DISPLAY_LABEL');
1827 l_enter_displabel := icx_util.replace_quotes(fnd_message.get);
1828 fnd_message.set_name('BIS','BIS_SELECT_DISPLAY_LABEL');
1829 l_select_displabel := icx_util.replace_quotes(fnd_message.get);
1830 fnd_message.set_name('BIS','BIS_DUP_DISPLAY_LABEL');
1831 l_dup_displabel := icx_util.replace_quotes(fnd_message.get);
1832 fnd_message.set_name('BIS','BIS_DUP_COMBO');
1833 l_dup_combo := icx_util.replace_quotes(fnd_message.get);
1834 fnd_message.set_name('BIS','BIS_CHOOSE_DIM_VALUE');
1835 l_choose_dim_value := icx_util.replace_quotes(fnd_message.get);
1836
1837 l_un_auth := BIS_UTILITIES_PVT.Get_FND_Message('BIS_UNAUTHORIZED');
1838
1839
1840 IF ((p_reference_path IS NOT NULL) AND (NOT BIS_PMF_PORTLET_UTIL.has_customized_rows(l_plug_id, l_current_user_id, l_owner_user_id) )) THEN
1841 l_user_id := l_owner_user_id;
1842 ELSE
1843 l_user_id := l_current_user_id;
1844 END IF;
1845
1846 -- ******************************************************
1847 -- Call the procedure that paints the LOV javascript function
1848 -- ******************************************************
1849 BIS_LOV_PUB.lovjscript(x_string => l_lov_string);
1850
1851 IF(l_str_object IS NULL) THEN
1852 WF_NOTIFICATION.NewClob(l_str_object, l_lov_string);
1853 ELSE
1854 WF_NOTIFICATION.WriteToClob(l_str_object,l_lov_string);
1855 END IF;
1856
1857 -- Get all the previously selected labels from
1858 -- selections box.
1859
1860 BIS_INDICATOR_REGION_PUB.Retrieve_User_Ind_Selections
1861 ( p_api_version => 1.0
1862 , p_user_id => l_user_id
1863 , p_all_info => FND_API.G_TRUE
1864 , p_plug_id => l_plug_id
1865 , x_Indicator_Region_Tbl => l_labels_tbl
1866 , x_return_status => l_return_status
1867 , x_Error_Tbl => l_error_tbl
1868 );
1869
1870 l_string := '<body>';
1871 l_string := l_string || '<LINK HREF="/OA_HTML/bisportal.css" type="text/css" rel="stylesheet">';
1872 -- Print out NOCOPY the instructions for this page
1873 fnd_message.set_name('BIS','BIS_PLUG_INSTRUCTION2');
1874 l_instruction := bis_utilities_pvt.escape_html_input(icx_util.replace_quotes(fnd_message.get));
1875 l_string := l_string ||'<BR>';
1876 l_string := l_string ||'<table width="100%" border=0 cellspacing=0 cellpadding=0>';
1877 l_string := l_string ||'<tr><td width=5%></td><td width=90% class="x0">'||l_instruction||'</td><td width=5%></td></tr>';
1878 l_string := l_string ||'</table>';
1879 l_string := l_string ||'<BR>';
1880
1881 l_string := l_string ||'<SCRIPT LANGUAGE="Javascript">';
1882
1883 l_string := l_string ||'function selectTo() {';
1884 l_string := l_string ||' alert("'||l_select_displabel||'")';
1885 l_string := l_string ||' }';
1886
1887
1888 -- Function to move the new display label to the favorites box
1889 l_string := l_string ||'function addTo() {';
1890 l_string := l_string ||'if (document.DefaultFormName.label.value == ""){';
1891 l_string := l_string ||' alert ("'||l_enter_displabel||'");';
1892 l_string := l_string ||' document.DefaultFormName.label.focus();';
1893 l_string := l_string ||' }';
1894 l_string := l_string ||' else {';
1895 l_string := l_string ||' var ind_tmp = document.DefaultFormName.p_indlevel.selectedIndex;';
1896 l_string := l_string ||' var ind = document.DefaultFormName.p_indlevel[ind_tmp].value;';
1897 --l_string := l_string ||' // Do some checks before grabbing the dimension level values';
1898 --l_string := l_string ||' // For dimension0';
1899 l_string := l_string ||' if (document.DefaultFormName.dim0_level_id.value != "") {';
1900 l_string := l_string ||' var d0_tmp = document.DefaultFormName.dim0.selectedIndex;';
1901 l_string := l_string ||' var d0_end = document.DefaultFormName.dim0.length;';
1902 l_string := l_string ||' if ((document.DefaultFormName.dim0[d0_tmp].text == "'||l_blank||'") '||c_OR||' (document.DefaultFormName.dim0[d0_tmp].text == "'||c_choose||'")) {';
1903 l_string := l_string ||' d0 = "+";';
1904 l_string := l_string ||' document.DefaultFormName.dim0.focus();';
1905 l_string := l_string ||' return FALSE;';
1906 l_string := l_string ||' }';
1907 l_string := l_string ||' else';
1908 l_string := l_string ||' var d0 = document.DefaultFormName.dim0[d0_tmp].value;';
1909 l_string := l_string ||' }';
1910 l_string := l_string ||' else';
1911 l_string := l_string ||' {d0 = "-";}';
1912
1913 --l_string := l_string ||' // For dimension1';
1914 l_string := l_string ||' if (document.DefaultFormName.dim1_level_id.value != "") {';
1915 l_string := l_string ||' var d1_tmp = document.DefaultFormName.dim1.selectedIndex;';
1916 l_string := l_string ||' var d1_end = document.DefaultFormName.dim1.length;';
1917 l_string := l_string ||' if ((document.DefaultFormName.dim1[d1_tmp].text == "'||l_blank||'") '||c_OR||' (document.DefaultFormName.dim1[d1_tmp].text == "'||c_choose||'")) {';
1918 l_string := l_string ||' d1 = "+";';
1919 l_string := l_string ||' alert("'||l_choose_dim_value||'");';
1920 l_string := l_string ||' document.DefaultFormName.dim1.focus();';
1921 l_string := l_string ||' return FALSE;';
1922 l_string := l_string ||' }';
1923 l_string := l_string ||' else';
1924 l_string := l_string ||' var d1 = document.DefaultFormName.dim1[d1_tmp].value;';
1925 l_string := l_string ||' }';
1926 l_string := l_string ||' else';
1927 l_string := l_string ||' {d1 = "-";}';
1928
1929 --l_string := l_string ||' // For dimension2';
1930 l_string := l_string ||' if (document.DefaultFormName.dim2_level_id.value != "") {';
1931 l_string := l_string ||' var d2_tmp = document.DefaultFormName.dim2.selectedIndex;';
1932 l_string := l_string ||' var d2_end = document.DefaultFormName.dim2.length;';
1933 l_string := l_string ||' if ((document.DefaultFormName.dim2[d2_tmp].text == "'||l_blank||'") '||c_OR||' (document.DefaultFormName.dim2[d2_tmp].text == "'||c_choose||'")) {';
1934 l_string := l_string ||' d2 = "+";';
1935 l_string := l_string ||' alert("'||l_choose_dim_value||'");';
1936 l_string := l_string ||' document.DefaultFormName.dim2.focus();';
1937 l_string := l_string ||' return FALSE;';
1938 l_string := l_string ||' }';
1939 l_string := l_string ||' else';
1940 l_string := l_string ||' var d2 = document.DefaultFormName.dim2[d2_tmp].value;';
1941 l_string := l_string ||' }';
1942 l_string := l_string ||' else';
1943 l_string := l_string ||' {d2 = "-";}';
1944
1945 --l_string := l_string ||' // For dimension3';
1946 l_string := l_string ||' if (document.DefaultFormName.dim3_level_id.value != "") {';
1947 l_string := l_string ||' var d3_tmp = document.DefaultFormName.dim3.selectedIndex;';
1948 l_string := l_string ||' var d3_end = document.DefaultFormName.dim3.length;';
1949 l_string := l_string ||' if ((document.DefaultFormName.dim3[d3_tmp].text == "'||l_blank||'") '||c_OR||' (document.DefaultFormName.dim3[d3_tmp].text == "'||c_choose||'")) {';
1950 l_string := l_string ||' d3 = "+";';
1951 l_string := l_string ||' alert("'||l_choose_dim_value||'");';
1952 l_string := l_string ||' document.DefaultFormName.dim3.focus();';
1953 l_string := l_string ||' return FALSE;';
1954 l_string := l_string ||' }';
1955 l_string := l_string ||' else';
1956 l_string := l_string ||' var d3 = document.DefaultFormName.dim3[d3_tmp].value;';
1957 l_string := l_string ||' }';
1958 l_string := l_string ||' else';
1959 l_string := l_string ||' {d3 = "-";}';
1960
1961 --l_string := l_string ||' // For dimension4';
1962 l_string := l_string ||' if (document.DefaultFormName.dim4_level_id.value != "") {';
1963 l_string := l_string ||' var d4_tmp = document.DefaultFormName.dim4.selectedIndex;';
1964 l_string := l_string ||' var d4_end = document.DefaultFormName.dim4.length;';
1965 l_string := l_string ||' if ((document.DefaultFormName.dim4[d4_tmp].text == "'||l_blank||'") '||c_OR||' (document.DefaultFormName.dim4[d4_tmp].text == "'||c_choose||'")) {';
1966
1967 l_string := l_string ||'d4 = "+";';
1968 l_string := l_string ||' alert("'||l_choose_dim_value||'");';
1969 l_string := l_string ||' document.DefaultFormName.dim4.focus();';
1970 l_string := l_string ||' return FALSE;';
1971 l_string := l_string ||' }';
1972 l_string := l_string ||' else';
1973 l_string := l_string ||' var d4 = document.DefaultFormName.dim4[d4_tmp].value;';
1974 l_string := l_string ||' }';
1975 l_string := l_string ||' else';
1976 l_string := l_string ||' {d4 = "-";}';
1977
1978 --l_string := l_string ||' // For dimension5';
1979 l_string := l_string ||' if (document.DefaultFormName.dim5_level_id.value != "") {';
1980 l_string := l_string ||' var d5_tmp = document.DefaultFormName.dim5.selectedIndex;';
1981 l_string := l_string ||' var d5_end = document.DefaultFormName.dim5.length;';
1982 l_string := l_string ||' if ((document.DefaultFormName.dim5[d5_tmp].text == "'||l_blank||'") '||c_OR||' (document.DefaultFormName.dim5[d5_tmp].text == "'||c_choose||'")) {';
1983 l_string := l_string ||' d5 = "+";';
1984 l_string := l_string ||' alert("'||l_choose_dim_value||'");';
1985 l_string := l_string ||' document.DefaultFormName.dim5.focus();';
1986 l_string := l_string ||' return FALSE;';
1987 l_string := l_string ||' }';
1988 l_string := l_string ||' else';
1989 l_string := l_string ||' var d5 = document.DefaultFormName.dim5[d5_tmp].value;';
1990 l_string := l_string ||' }';
1991 l_string := l_string ||' else';
1992 l_string := l_string ||' {d5 = "-";}';
1993
1994 --l_string := l_string ||' // mdamle 01/15/2001 - Use Dim6 and Dim7';
1995 --l_string := l_string ||' // For dimension6';
1996 l_string := l_string ||' if (document.DefaultFormName.dim6_level_id.value != "") {';
1997 l_string := l_string ||' var d6_tmp = document.DefaultFormName.dim6.selectedIndex;';
1998 l_string := l_string ||' var d6_end = document.DefaultFormName.dim6.length;';
1999 l_string := l_string ||' if ((document.DefaultFormName.dim6[d6_tmp].text == "'||l_blank||'") '||c_OR||' (document.DefaultFormName.dim6[d6_tmp].text == "'||c_choose||'")) {';
2000 l_string := l_string ||' d6 = "+";';
2001 l_string := l_string ||' alert("'||l_choose_dim_value||'");';
2002 l_string := l_string ||' document.DefaultFormName.dim6.focus();';
2003 l_string := l_string ||' return FALSE;';
2004 l_string := l_string ||' }';
2005 l_string := l_string ||' else';
2006 l_string := l_string ||' var d6 = document.DefaultFormName.dim6[d6_tmp].value;';
2007 l_string := l_string ||' }';
2008 l_string := l_string ||' else';
2009 l_string := l_string ||' {d6 = "-";}';
2010
2011 --l_string := l_string ||' // mdamle 01/15/2001 - Use Dim6 and Dim7';
2012 --l_string := l_string ||' // For dimension7';
2013 l_string := l_string ||' if (document.DefaultFormName.dim7_level_id.value != "") {';
2014 l_string := l_string ||' var d7_tmp = document.DefaultFormName.dim7.selectedIndex;';
2015 l_string := l_string ||' var d7_end = document.DefaultFormName.dim7.length;';
2016 l_string := l_string ||' if ((document.DefaultFormName.dim7[d7_tmp].text == "'||l_blank||'") '||c_OR||' (document.DefaultFormName.dim7[d7_tmp].text == "'||c_choose||'")) {';
2017 l_string := l_string ||' d7 = "+";';
2018 l_string := l_string ||' alert("'||l_choose_dim_value||'");';
2019 l_string := l_string ||' document.DefaultFormName.dim7.focus();';
2020 l_string := l_string ||' return FALSE;';
2021 l_string := l_string ||' }';
2022 l_string := l_string ||' else';
2023 l_string := l_string ||' var d7 = document.DefaultFormName.dim7[d7_tmp].value;';
2024 l_string := l_string ||' }';
2025 l_string := l_string ||' else';
2026 l_string := l_string ||' {d7 = "-";}';
2027
2028 --l_string := l_string ||' // For Plan';
2029 l_string := l_string ||' var plan_tmp = document.DefaultFormName.plan.selectedIndex;';
2030 l_string := l_string ||' var plan = document.DefaultFormName.plan[plan_tmp].value;';
2031
2032 l_string := l_string ||' var totext=document.DefaultFormName.label.value;';
2033 l_string := l_string ||'if (document.DefaultFormName.orgDimension.value == "1")';
2034 l_string := l_string ||' d1 = d0;';
2035 l_string := l_string ||'if (document.DefaultFormName.orgDimension.value == "2")';
2036 l_string := l_string ||' d2 = d0;';
2037 l_string := l_string ||'if (document.DefaultFormName.orgDimension.value == "3")';
2038 l_string := l_string ||' d3 = d0;';
2039 l_string := l_string ||'if (document.DefaultFormName.orgDimension.value == "4")';
2040 l_string := l_string ||' d4 = d0;';
2041 l_string := l_string ||'if (document.DefaultFormName.orgDimension.value == "5")';
2042 l_string := l_string ||' d5 = d0;';
2043 l_string := l_string ||'if (document.DefaultFormName.orgDimension.value == "6")';
2044 l_string := l_string ||' d6 = d0;';
2045 l_string := l_string ||'if (document.DefaultFormName.orgDimension.value == "7")';
2046 l_string := l_string ||' d7 = d0;';
2047
2048 --l_string := l_string ||'// mdamle 01/15/2001 - Add d6 and d7';
2049 l_string := l_string ||' var tovalue= ind + "*" + d0 + "*" + d1 + "*" + d2 + "*" + d3 + "*" + d4 + "*" + d5 + "*" + d6 + "*" + d7 + "*" + plan;';
2050 l_string := l_string ||' var end=document.DefaultFormName.C.length;';
2051
2052
2053 l_string := l_string ||' var duplicated_val = 0;';
2054 l_string := l_string ||' var duplicated_txt = 0;';
2055 l_string := l_string ||' if (end > 0) {';
2056 l_string := l_string ||' if (document.DefaultFormName.C.options[end-1].value =="") {';
2057 l_string := l_string ||' end = end - 1;';
2058 l_string := l_string ||' }';
2059
2060 l_string := l_string ||' for (var i=0;i<end;i++){';
2061 l_string := l_string ||' var cvar = document.DefaultFormName.C[i].value;';
2062
2063 l_string := l_string ||' if (tovalue == cvar.substr(0, cvar.length -2 )) {';
2064 l_string := l_string ||' duplicated_val = 1;';
2065 l_string := l_string ||' }';
2066 l_string := l_string ||' if (totext == document.DefaultFormName.C[i].text) {';
2067 l_string := l_string ||' duplicated_txt = 1;';
2068 l_string := l_string ||' }';
2069 l_string := l_string ||' } ';
2070 l_string := l_string ||' if (duplicated_val == 1) {';
2071 l_string := l_string ||' alert("'||l_dup_combo||'");';
2072 l_string := l_string ||' } else if (duplicated_txt == 1) {';
2073 l_string := l_string ||' alert("'||l_dup_displabel||'");';
2074 l_string := l_string ||' }';
2075
2076 l_string := l_string ||' }';
2077 l_string := l_string ||' if ( (duplicated_val == 0) && (duplicated_txt == 0) ) {';
2078 l_string := l_string ||' document.DefaultFormName.C.options[end] = new Option(totext,tovalue+"*Y");';
2079 l_string := l_string ||' document.DefaultFormName.C.selectedIndex = end;';
2080 l_string := l_string ||' }';
2081
2082
2083 l_string := l_string ||'}';
2084 l_string := l_string ||'}';
2085
2086
2087 WF_NOTIFICATION.WriteToClob(l_str_object,l_string);
2088
2089 -- Function to move selections upwards
2090 -- meastmon 06/25/2001 Fix bug#1835495.
2091 l_string := 'function upTo() {';
2092 l_string := l_string ||' var temp = document.DefaultFormName.C.selectedIndex;';
2093 l_string := l_string ||' if (temp < 0)';
2094 l_string := l_string ||' selectTo();';
2095 l_string := l_string ||' else {';
2096 l_string := l_string ||' if (temp > 0) {';
2097 l_string := l_string ||' var text = document.DefaultFormName.C[temp-1].text;';
2098 l_string := l_string ||' var val = document.DefaultFormName.C.options[temp-1].value;';
2099 l_string := l_string ||' var totext = document.DefaultFormName.C[temp].text;';
2100 l_string := l_string ||' var toval = document.DefaultFormName.C.options[temp].value;';
2101
2102 l_string := l_string ||' document.DefaultFormName.C[temp-1].text = totext;';
2103 l_string := l_string ||' document.DefaultFormName.C.options[temp-1].value = toval;';
2104 l_string := l_string ||' document.DefaultFormName.C[temp].text = text;';
2105 l_string := l_string ||' document.DefaultFormName.C.options[temp].value = val;';
2106 l_string := l_string ||' document.DefaultFormName.C.selectedIndex = temp-1;';
2107 l_string := l_string ||' }';
2108 l_string := l_string ||' }';
2109
2110 l_string := l_string ||' }';
2111
2112
2113 -- Function to move selections downwards
2114 -- meastmon 06/25/2001 Fix bug#1835495.
2115 l_string := l_string ||'function downTo() {';
2116 l_string := l_string ||' var temp = document.DefaultFormName.C.selectedIndex;';
2117 l_string := l_string ||' var end = document.DefaultFormName.C.length;';
2118
2119 l_string := l_string ||' if (temp < 0)';
2120 l_string := l_string ||' selectTo();';
2121 l_string := l_string ||' else {';
2122 l_string := l_string ||' if (document.DefaultFormName.C.options[end-1].value == "")';
2123 l_string := l_string ||' end = end - 1;';
2124
2125 l_string := l_string ||' if (temp < (end-1)) {';
2126 l_string := l_string ||' var text = document.DefaultFormName.C[temp+1].text;';
2127 l_string := l_string ||' var val = document.DefaultFormName.C.options[temp+1].value;';
2128 l_string := l_string ||' var totext = document.DefaultFormName.C[temp].text;';
2129 l_string := l_string ||' var toval = document.DefaultFormName.C.options[temp].value;';
2130
2131 l_string := l_string ||' document.DefaultFormName.C[temp+1].text = totext;';
2132 l_string := l_string ||' document.DefaultFormName.C.options[temp+1].value = toval;';
2133 l_string := l_string ||' document.DefaultFormName.C[temp].text = text;';
2134 l_string := l_string ||' document.DefaultFormName.C.options[temp].value = val;';
2135 l_string := l_string ||' document.DefaultFormName.C.selectedIndex = temp+1;';
2136 l_string := l_string ||' }';
2137 l_string := l_string ||' }';
2138
2139 l_string := l_string ||' }';
2140
2141
2142 l_string := l_string ||'function deleteTo() {';
2143 l_string := l_string ||' var temp=document.DefaultFormName.C.selectedIndex;';
2144 l_string := l_string ||' if (temp < 0)';
2145 l_string := l_string ||' selectTo();';
2146 l_string := l_string ||' else {';
2147 l_string := l_string ||' if (confirm("'||BIS_UTILITIES_PVT.getPrompt('BIS_DELETE')||'" + " " + document.DefaultFormName.C.options[temp].text + "?"))';
2148 l_string := l_string ||' document.DefaultFormName.C.options[temp] = null;';
2149 l_string := l_string ||' };';
2150 l_string := l_string ||' }';
2151
2152 l_string := l_string ||'function open_new_browser(url,x,y){';
2153 l_string := l_string ||' var attributes = "resizable=yes,scrollbars=yes,toolbar=no,width="+x+",height="+ y;';
2154 l_string := l_string ||' var new_browser = window.open(url, "new_browser", attributes);';
2155 l_string := l_string ||' if (new_browser != null) {';
2156 l_string := l_string ||' if (new_browser.opener == null)';
2157 l_string := l_string ||' new_browser.opener = self;';
2158 l_string := l_string ||' window.name = ''favorite'';';
2159 l_string := l_string ||' new_browser.location.href = url;';
2160 l_string := l_string ||' }';
2161 l_string := l_string ||' }';
2162
2163 -- Function to Edit the Label
2164 -- meastmon 09/25/2001 Fix bug#1993005 There can be spaces in the dim level value id.
2165 -- We need to use escape() to encode the U parameter.
2166 l_string := l_string ||'function editTo() {';
2167 l_string := l_string ||' var temp=document.DefaultFormName.C.selectedIndex;';
2168 l_string := l_string ||' if (temp<0) {';
2169 l_string := l_string ||' alert("'||l_select_displabel||'");';
2170 l_string := l_string ||' }';
2171 l_string := l_string ||' else {';
2172 l_string := l_string ||' var cval = document.DefaultFormName.C[temp].value;';
2173 l_string := l_string ||' var c_access = cval.substr(cval.length-1, 1);';
2174 l_string := l_string ||' if (c_access == "N") {';
2175 l_string := l_string ||' alert("'||l_un_auth||'.");';
2176 l_string := l_string ||' } else {';
2177
2178 l_string := l_string ||' var url = getEditURL();';
2179 l_string := l_string ||' var today = new Date();';
2180 l_string := l_string ||' var expire = new Date();';
2181 l_string := l_string ||' expire.setTime(today.getTime() + 3600000*24);';
2182 l_string := l_string ||' document.cookie = "U="+escape(cval)+ ";expires="+expire.toGMTString();';
2183 l_string := l_string ||' document.cookie = "Z="+'||Z||'+ ";expires="+expire.toGMTString();';
2184
2185 l_string := l_string ||' open_new_browser(url,600,450);';
2186 l_string := l_string ||' }';
2187 l_string := l_string ||' }';
2188 l_string := l_string ||' }';
2189
2190 -- Function to save the selected labels
2191 l_string := l_string ||' function savedimensions() {';
2192 l_string := l_string ||' var end=document.DefaultFormName.C.length;';
2193
2194 l_string := l_string ||' for (var i=0; i<end; i++) { ';
2195 l_string := l_string ||' if (document.DefaultFormName.C.options[i].value != "") {';
2196 l_string := l_string ||' document.DefaultFormName.OK.value = "Y";';
2197
2198 l_string := l_string ||' var sval = document.DefaultFormName.C.options[i].value;';
2199 l_string := l_string ||' var tval = sval.substr(0, sval.length-2);';
2200 l_string := l_string ||' document.DefaultFormName.p_displaylabels_tbl[i].value= tval + "*" + document.DefaultFormName.C.options[i].text;';
2201 l_string := l_string ||' }';
2202 l_string := l_string ||' }';
2203 l_string := l_string ||' document.DefaultFormName.submit();';
2204 l_string := l_string ||' }';
2205
2206 l_string := l_string ||' function doCancel() {';
2207 l_string := l_string ||' document.DefaultFormName.DoCancel.value = "Y";';
2208 l_string := l_string ||' document.DefaultFormName.submit();';
2209 l_string := l_string ||' }';
2210
2211 -- Function to set the indicator level and recreate the page
2212 l_string := l_string ||'function setIndlevel() {';
2213 l_string := l_string ||' var end=document.DefaultFormName.C.length;';
2214 l_string := l_string ||' for (var i=0;i < end;i++)';
2215 l_string := l_string ||' if (document.DefaultFormName.C.options[i].value != "")';
2216 l_string := l_string ||' document.DefaultFormName.p_displaylabels_tbl[i].value = document.DefaultFormName.C.options[i].value + "*" + document.DefaultFormName.C.options[i].text;';
2217 l_string := l_string ||' var tmp = document.DefaultFormName.p_indlevel.selectedIndex;';
2218 l_string := l_string ||' document.DefaultFormName.p_ind_level_id.value = document.DefaultFormName.p_indlevel[tmp].value;';
2219
2220 l_string := l_string ||' document.DefaultFormName.DoIndSubmit.value = "Y";';
2221 l_string := l_string ||' document.DefaultFormName.submit();';
2222 l_string := l_string ||' }';
2223
2224 -- Get string to clear dim1-5 in case they are related to the org
2225 --
2226 l_elements(1) := 'plan';
2227 l_elements(2) := 'dim0';
2228 l_elements(3) := 'label';
2229 l_elements(4) := 'C';
2230
2231 clearSelect
2232 ( p_formName => 'dimensions'
2233 , p_elementTable => l_elements
2234 , x_clearString => l_clear
2235 );
2236
2237
2238
2239 for i in p_selections_tbl.FIRST .. p_selections_tbl.COUNT loop
2240 if (p_selections_tbl(i) is NULL) then
2241 EXIT;
2242 end if;
2243 l_loc := instr(p_selections_tbl(i),'*',1,1);
2244 l_value := substr (p_selections_tbl(i),1,l_loc - 1);
2245 l_text := substr (p_selections_tbl(i),l_loc + 1);
2246 if v_ind_level_id is NULL then
2247 v_ind_level_id := TO_NUMBER(l_value);
2248 end if;
2249 for c_recs in bisfv_target_levels_cur(v_ind_level_id) loop
2250 l_dim1_lbl := c_recs.Dimension1_Level_Name;
2251 l_dim2_lbl := c_recs.Dimension2_Level_Name;
2252 l_dim3_lbl := c_recs.Dimension3_Level_Name;
2253 l_dim4_lbl := c_recs.Dimension4_Level_Name;
2254 l_dim5_lbl := c_recs.Dimension5_Level_Name;
2255 l_dim6_lbl := c_recs.Dimension6_Level_Name;
2256 l_dim7_lbl := c_recs.Dimension7_Level_Name;
2257 l_Org_Seq_Num := getOrgSeqNum(v_ind_level_id);
2258
2259 if l_Org_Seq_Num = 1 then
2260 l_dim0_lbl := c_recs.Dimension1_Level_Name;
2261 elsif l_Org_Seq_Num = 2 then
2262 l_dim0_lbl := c_recs.Dimension2_Level_Name;
2263 elsif l_Org_Seq_Num = 3 then
2264 l_dim0_lbl := c_recs.Dimension3_Level_Name;
2265 elsif l_Org_Seq_Num = 4 then
2266 l_dim0_lbl := c_recs.Dimension4_Level_Name;
2267 elsif l_Org_Seq_Num = 5 then
2268 l_dim0_lbl := c_recs.Dimension5_Level_Name;
2269 elsif l_Org_Seq_Num = 6 then
2270 l_dim0_lbl := c_recs.Dimension6_Level_Name;
2271 elsif l_Org_Seq_Num = 7 then
2272 l_dim0_lbl := c_recs.Dimension7_Level_Name;
2273 end if;
2274 end loop;
2275 end loop;
2276
2277
2278 l_string := l_string ||'function setdim0() {';
2279 l_string := l_string ||' var end = document.DefaultFormName.dim0.length;';
2280 l_string := l_string ||' var temp = document.DefaultFormName.dim0.selectedIndex;';
2281 l_string := l_string ||' if (document.DefaultFormName.dim0[temp].text == "'||c_choose||'") {';
2282 l_string := l_string ||' var ind_tmp = document.DefaultFormName.p_indlevel.selectedIndex;';
2283 l_string := l_string ||' var ind = document.DefaultFormName.p_indlevel[ind_tmp].value;';
2284 l_string := l_string ||' var dim_lvl_id = document.DefaultFormName.dim0_level_id.value;';
2285 l_string := l_string ||' var c_qry = "'||l_user_id||c_asterisk||'" + ind + "'||c_asterisk||'" + dim_lvl_id;';
2286 l_string := l_string ||' var c_jsfuncname = "getdim0";';
2287 l_string := l_string ||' document.DefaultFormName.dim0.selectedIndex = 0;';
2288 --l_string := l_string ||'//modified for bug#2318543';
2289 l_string := l_string ||' getLOV(''bis_intermediate_lov_pvt.dim_level_values_query'',c_qry,c_jsfuncname,'||Z||',"'||bis_utilities_pub.encode(l_dim0_lbl)||'");';
2290 l_string := l_string ||' }';
2291 l_string := l_string ||' }';
2292
2293 SetSetOfBookVar
2294 ( p_user_id => l_user_id
2295 , p_formName => 'DefaultFormName'
2296 , p_index => 'dim0_index'
2297 , x_sobString => l_sobString
2298 );
2299
2300 l_string := l_string ||'function setdim1() {';
2301 --l_string := l_string ||'// alert("setdim1");';
2302 l_string := l_string ||' var end = document.DefaultFormName.dim1.length;';
2303 l_string := l_string ||' var temp = document.DefaultFormName.dim1.selectedIndex;';
2304 l_string := l_string ||' if (document.DefaultFormName.dim1[temp].text == "'||c_choose||'") {';
2305 l_string := l_string ||' var ind_tmp = document.DefaultFormName.p_indlevel.selectedIndex;';
2306 l_string := l_string ||' var ind = document.DefaultFormName.p_indlevel[ind_tmp].value;';
2307 l_string := l_string ||' var dim_lvl_id = document.DefaultFormName.dim1_level_id.value;';
2308
2309 --l_string := l_string ||'// mdamle 01/15/2001 - Moved conditional code into l_sobString';
2310 l_string := l_string ||' '||l_sobString||'';
2311
2312 l_string := l_string ||' var c_jsfuncname = "getdim1";';
2313 l_string := l_string ||' document.DefaultFormName.dim1.selectedIndex = 0;';
2314
2315 --l_string := l_string ||' //modified for bug#2318543';
2316 l_string := l_string ||' getLOV(''bis_intermediate_lov_pvt.dim_level_values_query'',c_qry,c_jsfuncname,'||Z||',"'||bis_utilities_pub.encode(l_dim1_lbl)||'");';
2317 l_string := l_string ||' }';
2318 l_string := l_string ||' }';
2319 l_string := l_string ||'function setdim2() {';
2320 --l_string := l_string ||'// alert("setdim2");';
2321 l_string := l_string ||' var end = document.DefaultFormName.dim2.length;';
2322 l_string := l_string ||' var temp = document.DefaultFormName.dim2.selectedIndex;';
2323 l_string := l_string ||' if (document.DefaultFormName.dim2[temp].text == "'||c_choose||'") {';
2324 l_string := l_string ||' var ind_tmp = document.DefaultFormName.p_indlevel.selectedIndex;';
2325 l_string := l_string ||' var ind = document.DefaultFormName.p_indlevel[ind_tmp].value;';
2326 l_string := l_string ||' var dim_lvl_id = document.DefaultFormName.dim2_level_id.value;';
2327
2328 --l_string := l_string ||'// mdamle 01/15/2001 - Moved conditional code into l_sobString';
2329 l_string := l_string ||' '||l_sobString||'';
2330
2331 l_string := l_string ||' var c_jsfuncname = "getdim2";';
2332 l_string := l_string ||' document.DefaultFormName.dim2.selectedIndex = 0;';
2333 l_string := l_string ||' getLOV(''bis_intermediate_lov_pvt.dim_level_values_query'',c_qry,c_jsfuncname,'||Z||',"'||bis_utilities_pub.encode(l_dim2_lbl)||'");';
2334 l_string := l_string ||' }';
2335 l_string := l_string ||' }';
2336
2337
2338
2339 l_string := l_string ||'function setdim3() {';
2340 --l_string := l_string ||'// alert("setdim3");';
2341 l_string := l_string ||' var end = document.DefaultFormName.dim3.length;';
2342 l_string := l_string ||' var temp = document.DefaultFormName.dim3.selectedIndex;';
2343 l_string := l_string ||' if (document.DefaultFormName.dim3[temp].text == "'||c_choose||'") {';
2344 l_string := l_string ||' var ind_tmp = document.DefaultFormName.p_indlevel.selectedIndex;';
2345 l_string := l_string ||' var ind = document.DefaultFormName.p_indlevel[ind_tmp].value;';
2346 l_string := l_string ||' var dim_lvl_id = document.DefaultFormName.dim3_level_id.value;';
2347
2348 --l_string := l_string ||'// mdamle 01/15/2001 - Moved conditional code into l_sobString';
2349 l_string := l_string ||' '||l_sobString||'';
2350
2351 l_string := l_string ||' var c_jsfuncname = "getdim3";';
2352 l_string := l_string ||' document.DefaultFormName.dim3.selectedIndex = 0;';
2353 l_string := l_string ||' getLOV(''bis_intermediate_lov_pvt.dim_level_values_query'',c_qry,c_jsfuncname,'||Z||',"'||bis_utilities_pub.encode(l_dim3_lbl)||'");';
2354 l_string := l_string ||' }';
2355 l_string := l_string ||' }';
2356
2357
2358
2359 l_string := l_string ||'function setdim4() {';
2360 --l_string := l_string ||'// alert("setdim4");';
2361 l_string := l_string ||' var end = document.DefaultFormName.dim4.length;';
2362 l_string := l_string ||' var temp = document.DefaultFormName.dim4.selectedIndex;';
2363 l_string := l_string ||' if (document.DefaultFormName.dim4[temp].text == "'||c_choose||'") {';
2364 l_string := l_string ||' var ind_tmp = document.DefaultFormName.p_indlevel.selectedIndex;';
2365 l_string := l_string ||' var ind = document.DefaultFormName.p_indlevel[ind_tmp].value;';
2366 l_string := l_string ||' var dim_lvl_id = document.DefaultFormName.dim4_level_id.value;';
2367
2368 --l_string := l_string ||'// mdamle 01/15/2001 - Moved conditional code into l_sobString';
2369 l_string := l_string ||' '||l_sobString||'';
2370
2371 l_string := l_string ||' var c_jsfuncname = "getdim4";';
2372 l_string := l_string ||' document.DefaultFormName.dim4.selectedIndex = 0;';
2373 l_string := l_string ||' getLOV(''bis_intermediate_lov_pvt.dim_level_values_query'',c_qry,c_jsfuncname,'||Z||',"'||bis_utilities_pub.encode(l_dim4_lbl)||'");';
2374 l_string := l_string ||' }';
2375 l_string := l_string ||' }';
2376
2377 WF_NOTIFICATION.WriteToClob(l_str_object,l_string);
2378
2379
2380
2381 l_string1 := ' function setdim5() {';
2382 --l_string1 := l_string1 ||'// alert("setdim5");';
2383 l_string1 := l_string1 ||' var end = document.DefaultFormName.dim5.length;';
2384 l_string1 := l_string1 ||' var temp = document.DefaultFormName.dim5.selectedIndex;';
2385 l_string1 := l_string1 ||' if (document.DefaultFormName.dim5[temp].text == "'||c_choose||'") {';
2386 l_string1 := l_string1 ||' var ind_tmp = document.DefaultFormName.p_indlevel.selectedIndex;';
2387 l_string1 := l_string1 ||' var ind = document.DefaultFormName.p_indlevel[ind_tmp].value;';
2388 l_string1 := l_string1 ||' var dim_lvl_id = document.DefaultFormName.dim5_level_id.value;';
2389
2390 --l_string1 := l_string1 ||' // mdamle 01/15/2001 - Moved conditional code into l_sobString';
2391 l_string1 := l_string1 ||' '||l_sobString||'';
2392
2393 l_string1 := l_string1 ||' var c_jsfuncname = "getdim5";';
2394 l_string1 := l_string1 ||' document.DefaultFormName.dim5.selectedIndex = 0;';
2395 l_string1 := l_string1 ||' getLOV(''bis_intermediate_lov_pvt.dim_level_values_query'',c_qry,c_jsfuncname,'||Z||',"'||bis_utilities_pub.encode(l_dim5_lbl)||'");';
2396 l_string1 := l_string1 ||' }';
2397 l_string1 := l_string1 ||' }';
2398
2399 -- mdamle 01/15/2001 - Use Dim6 and Dim7
2400 l_string1 := l_string1 ||'function setdim6() {';
2401 --l_string1 := l_string1 ||'// alert("setdim6");';
2402 l_string1 := l_string1 ||' var end = document.DefaultFormName.dim6.length;';
2403 l_string1 := l_string1 ||' var temp = document.DefaultFormName.dim6.selectedIndex;';
2404 l_string1 := l_string1 ||' if (document.DefaultFormName.dim6[temp].text == "'||c_choose||'") {';
2405 l_string1 := l_string1 ||' var ind_tmp = document.DefaultFormName.p_indlevel.selectedIndex;';
2406 l_string1 := l_string1 ||' var ind = document.DefaultFormName.p_indlevel[ind_tmp].value;';
2407 l_string1 := l_string1 ||' var dim_lvl_id = document.DefaultFormName.dim6_level_id.value;';
2408
2409 --l_string1 := l_string1 ||' // mdamle 01/15/2001 - Moved conditional code into l_sobString';
2410 l_string1 := l_string1 ||' '||l_sobString||'';
2411
2412 l_string1 := l_string1 ||' var c_jsfuncname = "getdim6";';
2413 l_string1 := l_string1 ||' document.DefaultFormName.dim6.selectedIndex = 0;';
2414 l_string1 := l_string1 ||' getLOV(''bis_intermediate_lov_pvt.dim_level_values_query'',c_qry,c_jsfuncname,'||Z||',"'||bis_utilities_pub.encode(l_dim6_lbl)||'");';
2415 l_string1 := l_string1 ||' }';
2416 l_string1 := l_string1 ||' }';
2417
2418 l_string1 := l_string1 ||'function setdim7() {';
2419 --l_string1 := l_string1 ||'// alert("setdim7");';
2420 l_string1 := l_string1 ||' var end = document.DefaultFormName.dim7.length;';
2421 l_string1 := l_string1 ||' var temp = document.DefaultFormName.dim7.selectedIndex;';
2422 l_string1 := l_string1 ||' if (document.DefaultFormName.dim7[temp].text == "'||c_choose||'") {';
2423 l_string1 := l_string1 ||' var ind_tmp = document.DefaultFormName.p_indlevel.selectedIndex;';
2424 l_string1 := l_string1 ||' var ind = document.DefaultFormName.p_indlevel[ind_tmp].value;';
2425 l_string1 := l_string1 ||' var dim_lvl_id = document.DefaultFormName.dim7_level_id.value;';
2426
2427 --l_string1 := l_string1 ||' // mdamle 01/15/2001 - Moved conditional code into l_sobString';
2428 l_string1 := l_string1 ||' '||l_sobString||'';
2429
2430 l_string1 := l_string1 ||' var c_jsfuncname = "getdim7";';
2431 l_string1 := l_string1 ||' document.DefaultFormName.dim7.selectedIndex = 0;';
2432 l_string1 := l_string1 ||' getLOV(''bis_intermediate_lov_pvt.dim_level_values_query'',c_qry,c_jsfuncname,'||Z||',"'||bis_utilities_pub.encode(l_dim7_lbl)||'");';
2433 l_string1 := l_string1 ||' }';
2434 l_string1 := l_string1 ||' }';
2435
2436
2437 l_string1 := l_string1 ||'</SCRIPT>';
2438 l_string1 := l_string1 ||'<!-- End of Javascript -->';
2439
2440
2441 -- ***************
2442 l_string1 := l_string1 ||'<!-- Paint the dummy form to grab the display labels -->';
2443 -- Dummy form to send selected labels to a procedure that inserts the
2444 -- display labels and dimlvl valss into the BIS_USER_IND_SELECTIONS table
2445
2446 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="W" VALUE="">';
2447
2448 l_string1 := l_string1 ||'<SCRIPT LANGUAGE="Javascript">document.DefaultFormName.Z.value='||Z||';';
2449 l_string1 := l_string1 ||'</SCRIPT>';
2450 l_string1 := l_string1 ||'<SCRIPT LANGUAGE="Javascript">document.DefaultFormName.p_back_url.value='''||p_back_url||''';';
2451 l_string1 := l_string1 ||'</SCRIPT>';
2452 l_string1 := l_string1 ||'<SCRIPT LANGUAGE="Javascript">document.DefaultFormName.p_reference_path.value='''||p_reference_path||''';';
2453 l_string1 := l_string1 ||'</SCRIPT>';
2454
2455 l_string1 := l_string1 ||'<!-- Close the dummy form to grab the display labels -->';
2456
2457 -- **************
2458
2459 -- *************
2460 l_string1 := l_string1 ||'<!-- Begin Layout of boxes -->';
2461 l_string1 := l_string1 ||'<CENTER>';
2462 l_string1 := l_string1 ||'<!-- Begin Main table -->';
2463 -- main
2464 l_string1 := l_string1 ||'<table width="100%" border=0 cellspacing=0 cellpadding=0>';
2465 l_string1 := l_string1 ||'<!-- Row 1 Main table -->';
2466 l_string1 := l_string1 ||'<TR>';
2467 l_string1 := l_string1 ||'<td align="CENTER">';
2468 l_string1 := l_string1 ||'<!-- Begin Cell table to center all items except the ok-cancel buttons -->';
2469 l_string1 := l_string1 ||'<table width="75%" border=0 cellspacing=0 cellpadding=0>';
2470 l_string1 := l_string1 ||'<!-- Begin Row 1 of cell table -->';
2471 -- Row one of Cell table
2472 l_string1 := l_string1 ||'<TR>';
2473 l_string1 := l_string1 ||'<td align="LEFT" valign="TOP">';
2474 l_string1 := l_string1 ||'<!-- Open table for left set of boxes -->';
2475 -- target level and dimensions boxes table
2476 l_string1 := l_string1 ||'<table border=0 cellspacing=0 cellpadding=0>';
2477 l_string1 := l_string1 ||'<TR>';
2478
2479 IF(l_swan_enabled)THEN
2480 l_append_string := '<TD ALIGN="LEFT" class="x49">';
2481 ELSE
2482 l_append_string := '<TD ALIGN="LEFT">';
2483 END IF;
2484
2485
2486 l_string1 := l_string1 || l_append_string ||bis_utilities_pvt.escape_html(c_tarlevel)||'</TD>';
2487 l_string1 := l_string1 ||'</TR>';
2488 l_string1 := l_string1 ||'<!-- Row 2 Open for left side table -->';
2489 l_string1 := l_string1 ||'<TR>';
2490 l_string1 := l_string1 ||'<td align="LEFT" valign="TOP">';
2491 -- **********
2492
2493
2494 -- **********
2495 -- Open a form for indicator levels
2496
2497 l_string1 := l_string1 ||'<!-- Open form to grab target levels for onchange event of tar level poplist -->';
2498
2499 -- Create hidden values to grab selected labels into
2500 for i in 1 .. c_counter LOOP
2501 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="p_displaylabels_tbl1" VALUE="">';
2502 end loop;
2503
2504
2505 l_string1 := l_string1 ||'<SCRIPT LANGUAGE="Javascript">';
2506 for i in p_selections_tbl.FIRST .. p_selections_tbl.COUNT loop
2507 if (p_selections_tbl(i) is NULL) then
2508 EXIT;
2509 end if;
2510 l_string1 := l_string1 ||'document.DefaultFormName.p_selections_tbl['||i||'-1].value='''||p_selections_tbl(i)||''';';
2511 end loop;
2512 l_string1 := l_string1 ||'</SCRIPT>';
2513
2514 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="Z1" VALUE="'||Z||'">';
2515 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="p_back_url1" VALUE='||p_back_url||'>';
2516 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="p_reference_path1" VALUE='||p_reference_path||'>';
2517 l_string1 := l_string1 ||'<SELECT NAME="p_indlevel" onChange="setIndlevel()">';
2518
2519 for i in p_selections_tbl.FIRST .. p_selections_tbl.COUNT loop
2520
2521 if (p_selections_tbl(i) is NULL) then
2522 EXIT;
2523 end if;
2524 l_loc := instr(p_selections_tbl(i),'*',1,1);
2525 l_value := substr (p_selections_tbl(i),1,l_loc - 1);
2526 l_text := substr (p_selections_tbl(i),l_loc + 1);
2527 if v_ind_level_id is NULL then
2528 v_ind_level_id := TO_NUMBER(l_value);
2529 end if;
2530
2531 if l_value = TO_CHAR(v_ind_level_id) then
2532 l_string1 := l_string1 ||'<OPTION SELECTED VALUE='||bis_utilities_pvt.escape_html_input(l_value)||'>'||bis_utilities_pvt.escape_html_input(l_text);
2533 else
2534 l_string1 := l_string1 ||'<OPTION VALUE='||bis_utilities_pvt.escape_html_input(l_value)||'>'||bis_utilities_pvt.escape_html_input(l_text);
2535 end if;
2536 end loop;
2537 l_string1 := l_string1 ||'</SELECT>';
2538
2539 -- Form close for indicator levels selection
2540
2541 l_string1 := l_string1 ||'<!-- Close form for target levels poplist -->';
2542 l_string1 := l_string1 ||'</td>';
2543 l_string1 := l_string1 ||'</TR>';
2544 l_string1 := l_string1 ||'<TR>';
2545
2546 l_string1 := l_string1 ||l_append_string||bis_utilities_pvt.escape_html(c_dim_and_plan)||'</TD>';
2547 l_string1 := l_string1 ||'</TR>';
2548 l_string1 := l_string1 ||'<!-- Open row for embedded dimensions boxes table -->';
2549 l_string1 := l_string1 ||'<TR>';
2550 l_string1 := l_string1 ||'<td align="LEFT" valign="TOP">';
2551
2552 l_string1 := l_string1 ||'<!-- open table containing wireframe -->';
2553 -- target level and dimensions boxes table
2554 l_string1 := l_string1 ||'<table border=0 cellspacing=0 cellpadding=0>';
2555 l_string1 := l_string1 ||'<TR>';
2556 l_string1 := l_string1 ||'<td height=1 bgcolor=#000000 colspan=5>'||
2557 '<IMG SRC="/OA_MEDIA/FNDINVDT.gif" height=1 width=1></td>';
2558 l_string1 := l_string1 ||'</TR>';
2559 l_string1 := l_string1 ||'<TR>';
2560 l_string1 := l_string1 ||'<!-- Begin left edge of wireframe and left separator -->';
2561 l_string1 := l_string1 ||'<td width=1 class="C_WIRE_FRAME_COLOR">'||
2562 '<IMG SRC="/OA_MEDIA/FNDINVDT.gif" height=1 width=1></td>';
2563 l_string1 := l_string1 ||'<td width=5></td>';
2564
2565
2566 -- ************************************
2567 -- Print out NOCOPY the main form
2568
2569 l_string1 := l_string1 ||'<!-- Begin main form to display and grab the labels -->';
2570
2571 -- Grab the individual dim_level_values chosen previously for
2572 -- this target_level_id, to populate respective dimension level poplists
2573 if (l_labels_tbl.COUNT <> 0) THEN
2574 l_cnt := 1;
2575 for i in l_labels_tbl.FIRST .. l_labels_tbl.COUNT LOOP
2576 if (l_labels_tbl(i).target_level_id = v_ind_level_id) THEN
2577 -- mdamle 01/15/2001 - Use Dim6 and Dim7
2578
2579 --IF (l_labels_tbl(i).org_level_value_ID is NOT NULL) THEN
2580 -- l_orgs_tbl(l_cnt).id := l_labels_tbl(i).org_level_value_ID;
2581 -- l_orgs_tbl(l_cnt).name := l_labels_tbl(i).org_level_value_name;
2582 --END IF;
2583
2584 -- mdamle 01/15/2001 - Use Dim6 and Dim7
2585 -- Get the Dimension No. for Org
2586 l_Org_Seq_Num := getOrgSeqNum(v_ind_level_id);
2587
2588 IF (l_labels_tbl(i).dim1_level_value_id is NOT NULL) THEN
2589 l_dim1_tbl(l_cnt).id := l_labels_tbl(i).dim1_level_value_id;
2590 l_dim1_tbl(l_cnt).name := l_labels_tbl(i).dim1_level_value_name;
2591 -- mdamle 01/15/2001 Use Dim6 and Dim7
2592 if l_Org_Seq_Num = 1 then
2593 l_orgs_tbl(l_cnt).id := l_labels_tbl(i).dim1_level_value_id;
2594 l_orgs_tbl(l_cnt).name := l_labels_tbl(i).dim1_level_value_name;
2595 end if;
2596 END IF;
2597 IF (l_labels_tbl(i).dim2_level_value_id is NOT NULL) THEN
2598 l_dim2_tbl(l_cnt).id := l_labels_tbl(i).dim2_level_value_id;
2599 l_dim2_tbl(l_cnt).name := l_labels_tbl(i).dim2_level_value_name;
2600 -- mdamle 01/15/2001 Use Dim6 and Dim7
2601 if l_Org_Seq_Num = 2 then
2602 l_orgs_tbl(l_cnt).id := l_labels_tbl(i).dim2_level_value_id;
2603 l_orgs_tbl(l_cnt).name := l_labels_tbl(i).dim2_level_value_name;
2604 end if;
2605 END IF;
2606 IF (l_labels_tbl(i).dim3_level_value_id is NOT NULL) THEN
2607 l_dim3_tbl(l_cnt).id := l_labels_tbl(i).dim3_level_value_id;
2608 l_dim3_tbl(l_cnt).name := l_labels_tbl(i).dim3_level_value_name;
2609 -- mdamle 01/15/2001 Use Dim6 and Dim7
2610 if l_Org_Seq_Num = 3 then
2611 l_orgs_tbl(l_cnt).id := l_labels_tbl(i).dim3_level_value_id;
2612 l_orgs_tbl(l_cnt).name := l_labels_tbl(i).dim3_level_value_name;
2613 end if;
2614 END IF;
2615 IF (l_labels_tbl(i).dim4_level_value_id is NOT NULL) THEN
2616 l_dim4_tbl(l_cnt).id := l_labels_tbl(i).dim4_level_value_id;
2617 l_dim4_tbl(l_cnt).name := l_labels_tbl(i).dim4_level_value_name;
2618 -- mdamle 01/15/2001 Use Dim6 and Dim7
2619 if l_Org_Seq_Num = 4 then
2620 l_orgs_tbl(l_cnt).id := l_labels_tbl(i).dim4_level_value_id;
2621 l_orgs_tbl(l_cnt).name := l_labels_tbl(i).dim4_level_value_name;
2622 end if;
2623 END IF;
2624 IF (l_labels_tbl(i).dim5_level_value_id is NOT NULL) THEN
2625 l_dim5_tbl(l_cnt).id := l_labels_tbl(i).dim5_level_value_id;
2626 l_dim5_tbl(l_cnt).name := l_labels_tbl(i).dim5_level_value_name;
2627 -- mdamle 01/15/2001 Use Dim6 and Dim7
2628 if l_Org_Seq_Num = 5 then
2629 l_orgs_tbl(l_cnt).id := l_labels_tbl(i).dim5_level_value_id;
2630 l_orgs_tbl(l_cnt).name := l_labels_tbl(i).dim5_level_value_name;
2631 end if;
2632 END IF;
2633 -- mdamle 01/15/2001 - Use Dim6 and Dim7
2634 IF (l_labels_tbl(i).dim6_level_value_id is NOT NULL) THEN
2635 l_dim6_tbl(l_cnt).id := l_labels_tbl(i).dim6_level_value_id;
2636 l_dim6_tbl(l_cnt).name := l_labels_tbl(i).dim6_level_value_name;
2637 -- mdamle 01/15/2001 Use Dim6 and Dim7
2638 if l_Org_Seq_Num = 6 then
2639 l_orgs_tbl(l_cnt).id := l_labels_tbl(i).dim6_level_value_id;
2640 l_orgs_tbl(l_cnt).name := l_labels_tbl(i).dim6_level_value_name;
2641 end if;
2642 END IF;
2643 IF (l_labels_tbl(i).dim7_level_value_id is NOT NULL) THEN
2644 l_dim7_tbl(l_cnt).id := l_labels_tbl(i).dim7_level_value_id;
2645 l_dim7_tbl(l_cnt).name := l_labels_tbl(i).dim7_level_value_name;
2646 -- mdamle 01/15/2001 Use Dim6 and Dim7
2647 if l_Org_Seq_Num = 7 then
2648 l_orgs_tbl(l_cnt).id := l_labels_tbl(i).dim7_level_value_id;
2649 l_orgs_tbl(l_cnt).name := l_labels_tbl(i).dim7_level_value_name;
2650 end if;
2651 END IF;
2652
2653 l_cnt := l_cnt + 1;
2654 END IF;
2655 END LOOP;
2656 END IF; -- if l_labels_tbl is not empty
2657
2658 --Begin cell containing the embedded table of poplists
2659 l_string1 := l_string1 ||'<td align="CENTER">';
2660
2661 l_string1 := l_string1 ||'<!-- Begin embedded table inside the wireframe containing the poplists -->';
2662 -- table containing the dimension_level names,boxes
2663
2664 WF_NOTIFICATION.WriteToClob(l_str_object,l_string1);
2665
2666 l_string1 := '<TABLE >';
2667
2668
2669
2670 for c_recs in bisfv_target_levels_cur(v_ind_level_id) loop
2671
2672 -- *************************************************************
2673 -- Start painting the dimension levels poplists
2674 -- If no dimension level for this ind level, put a hidden value
2675 -- to user later
2676
2677 -- ******************************
2678 -- Dimension0 for Organization
2679
2680 -- meastmon 05/11/2001
2681 l_Time_Seq_Num := getTimeSeqNum(v_ind_level_id);
2682 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="timeDimension" VALUE='||l_Time_Seq_Num||'>';
2683
2684 -- mdamle 01/15/2001 - Use Dim6 and Dim7
2685 -- Get the Dimension No. for Org
2686 l_Org_Seq_Num := getOrgSeqNum(v_ind_level_id);
2687 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="orgDimension" VALUE='||l_Org_Seq_Num||'>';
2688
2689 -- mdamle 01/15/2001 - Use Dim6 and Dim7
2690 if l_Org_Seq_Num = 1 then
2691 l_Org_Level_ID := c_recs.Dimension1_level_id;
2692 l_Org_Level_Short_Name := c_recs.Dimension1_level_Short_name;
2693 l_Org_Level_Name := c_recs.Dimension1_level_Name;
2694 end if;
2695 if l_Org_Seq_Num = 2 then
2696 l_Org_Level_ID := c_recs.Dimension2_level_id;
2697 l_Org_Level_Short_Name := c_recs.Dimension2_level_Short_name;
2698 l_Org_Level_Name := c_recs.Dimension2_level_Name;
2699 end if;
2700 if l_Org_Seq_Num = 3 then
2701 l_Org_Level_ID := c_recs.Dimension3_level_id;
2702 l_Org_Level_Short_Name := c_recs.Dimension3_level_Short_name;
2703 l_Org_Level_Name := c_recs.Dimension3_level_Name;
2704 end if;
2705 if l_Org_Seq_Num = 4 then
2706 l_Org_Level_ID := c_recs.Dimension4_level_id;
2707 l_Org_Level_Short_Name := c_recs.Dimension4_level_Short_name;
2708 l_Org_Level_Name := c_recs.Dimension4_level_Name;
2709 end if;
2710 if l_Org_Seq_Num = 5 then
2711 l_Org_Level_ID := c_recs.Dimension5_level_id;
2712 l_Org_Level_Short_Name := c_recs.Dimension5_level_Short_name;
2713 l_Org_Level_Name := c_recs.Dimension5_level_Name;
2714 end if;
2715 if l_Org_Seq_Num = 6 then
2716 l_Org_Level_ID := c_recs.Dimension6_level_id;
2717 l_Org_Level_Short_Name := c_recs.Dimension6_level_Short_name;
2718 l_Org_Level_Name := c_recs.Dimension6_level_Name;
2719 end if;
2720 if l_Org_Seq_Num = 7 then
2721 l_Org_Level_ID := c_recs.Dimension7_level_id;
2722 l_Org_Level_Short_Name := c_recs.Dimension7_level_Short_name;
2723 l_Org_Level_Name := c_recs.Dimension7_level_Name;
2724 end if;
2725
2726 if (l_Org_Level_ID is NULL) then
2727 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim0_level_id" VALUE='||l_blank||'>';
2728 -- mdamle 01/15/2001
2729 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="set_sob" VALUE="FALSE">';
2730 elsif (l_Org_Level_Short_Name='TOTAL_ORGANIZATIONS') then
2731 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim0_level_id" VALUE='||l_Org_Level_ID||'>';
2732 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="set_sob" VALUE="FALSE">';
2733 l_string1 := l_string1 ||'<TR>';
2734 l_string1 := l_string1 ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(l_Org_Level_Name)||'</TD>';
2735 l_string1 := l_string1 ||'<td align="left">';
2736 l_string1 := l_string1 ||'<SELECT NAME="dim0">';
2737 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="-1"'||'>'||bis_utilities_pvt.escape_html_input(LOWER(l_Org_Level_Short_Name));
2738 l_string1 := l_string1 ||'</SELECT>';
2739 else
2740 -- Print out NOCOPY label and input box for dimension0
2741 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim0_level_id" VALUE='||l_Org_Level_ID||'>';
2742
2743 -- Set flag to True if we need to pass the related sob info
2744 -- along
2745 --
2746 if (l_Org_Level_Short_Name='SET OF BOOKS') then
2747 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="set_sob" VALUE="TRUE">';
2748 else
2749 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="set_sob" VALUE="FALSE">';
2750 end if;
2751
2752 l_string1 := l_string1 ||'<TR>';
2753 l_string1 := l_string1 ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(l_Org_Level_Name)||'</TD>';
2754 l_string1 := l_string1 ||'<td align="left">';
2755 l_string1 := l_string1 ||'<SELECT NAME="dim0" onchange="setdim0()">';
2756 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="">'||bis_utilities_pvt.escape_html_input(l_blank);
2757
2758 if (l_orgs_tbl.COUNT <> 0) THEN
2759 removeDuplicates(p_original_tbl => l_orgs_tbl,
2760 p_value => NULL,
2761 x_unique_tbl => l_d0_tbl);
2762 for i in 1 ..l_d0_tbl.COUNT LOOP
2763 exit when (l_d0_tbl(i).id is NULL);
2764 l_string1 := l_string1 ||'<OPTION VALUE='||bis_utilities_pvt.escape_html_input(l_d0_tbl(i).id)||'>'||bis_utilities_pvt.escape_html_input(l_d0_tbl(i).name);
2765 end loop;
2766 end if;
2767 l_string1 := l_string1 ||'<OPTION VALUE=>'||c_choose;
2768 l_string1 := l_string1 ||'</SELECT>';
2769 l_string1 := l_string1 ||'</td>';
2770 l_string1 := l_string1 ||'</TR>';
2771 end if;
2772
2773
2774 -- ***********************************
2775 -- Dimension1
2776 -- mdamle 01/15/2001 - Use Dim6 and Dim7
2777 -- meastmon 05/11/2001
2778 -- Dont show time dimension level
2779 if (c_recs.Dimension1_Level_ID is NULL) or (l_Org_Seq_Num = 1) or (l_Time_Seq_Num = 1) then
2780 if (l_Org_Seq_Num = 1) or (l_Time_Seq_Num = 1) then
2781 l_string1 := l_string1 || '<INPUT TYPE="hidden" NAME="dim1_level_id" VALUE=>';
2782 else
2783 l_string1 := l_string1 || '<INPUT TYPE="hidden" NAME="dim1_level_id" VALUE='||c_recs.Dimension1_Level_ID||'>';
2784 end if;
2785 else
2786 -- Print out NOCOPY label and input box for dimension1
2787 l_string1 := l_string1 || '<INPUT TYPE="hidden" NAME="dim1_level_id" VALUE='||c_recs.Dimension1_Level_ID||'>';
2788 l_string1 := l_string1 ||'<TR>';
2789 l_string1 := l_string1 ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(c_recs.Dimension1_Level_Name)||'</TD>';
2790 l_string1 := l_string1 ||'<td align="left">';
2791 l_string1 := l_string1 ||'<SELECT NAME="dim1" onchange="setdim1()">';
2792 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="">'||bis_utilities_pvt.escape_html_input(l_blank);
2793
2794
2795 if (l_dim1_tbl.COUNT <> 0) THEN
2796 removeDuplicates(p_original_tbl => l_dim1_tbl,
2797 p_value => NULL,
2798 x_unique_tbl => l_d1_tbl);
2799 for i in 1 ..l_d1_tbl.COUNT LOOP
2800 exit when (l_d1_tbl(i).id is NULL);
2801 -- mdamle - 01/15/2001 - Add quotes around VALUE
2802 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="'||bis_utilities_pvt.escape_html_input(l_d1_tbl(i).id)||'">'||bis_utilities_pvt.escape_html_input(l_d1_tbl(i).name);
2803 end loop;
2804 end if;
2805 l_string1 := l_string1 ||'<OPTION VALUE=>'||c_choose;
2806 l_string1 := l_string1 ||'</SELECT>';
2807 l_string1 := l_string1 ||'</td>';
2808 l_string1 := l_string1 ||'</TR>';
2809 end if;
2810
2811 -- *******************************************
2812 -- Dimension2
2813 -- mdamle 01/15/2001 - Use Dim6 and Dim
2814 -- meastmon 05/11/2001
2815 -- Dont show time dimension level
2816 if (c_recs.Dimension2_Level_ID is NULL) or (l_Org_Seq_Num = 2) or (l_Time_Seq_Num = 2) then
2817 if (l_Org_Seq_Num = 2) or (l_Time_Seq_Num = 2) then
2818 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim2_level_id" VALUE=>';
2819 else
2820 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim2_level_id" VALUE='||c_recs.Dimension2_Level_ID||'>';
2821 end if;
2822 else -- Print out NOCOPY label and input box for dimension2
2823 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim2_level_id" VALUE='||c_recs.Dimension2_Level_ID||'>';
2824 l_string1 := l_string1 ||'<TR>';
2825 l_string1 := l_string1 ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(c_recs.Dimension2_Level_Name)||'</TD>';
2826 l_string1 := l_string1 ||'<td align="left">';
2827 l_string1 := l_string1 ||'<SELECT NAME="dim2" onchange="setdim2()">';
2828 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="">'||bis_utilities_pvt.escape_html_input(l_blank);
2829
2830 if (l_dim2_tbl.COUNT <> 0) THEN
2831 removeDuplicates(p_original_tbl => l_dim2_tbl,
2832 p_value => NULL,
2833 x_unique_tbl => l_d2_tbl);
2834 for i in 1 ..l_d2_tbl.COUNT LOOP
2835 exit when (l_d2_tbl(i).id is NULL);
2836 -- mdamle - 01/15/2001 - Add quotes around VALUE
2837 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="'||bis_utilities_pvt.escape_html_input(l_d2_tbl(i).id)||'">'||bis_utilities_pvt.escape_html_input(l_d2_tbl(i).name);
2838 end loop;
2839 end if;
2840 l_string1 := l_string1 ||'<OPTION VALUE=>'||c_choose;
2841 l_string1 := l_string1 ||'</SELECT>';
2842 l_string1 := l_string1 ||'</td>';
2843 l_string1 := l_string1 ||'</TR>';
2844 end if;
2845
2846 -- *****************************************
2847 -- Dimension3
2848 -- mdamle 01/15/2001 - Use Dim6 and Dim
2849 -- meastmon 05/11/2001
2850 -- Dont show time dimension level
2851 if (c_recs.Dimension3_Level_ID is NULL) or (l_Org_Seq_Num = 3) or (l_Time_Seq_Num = 3) then
2852 if (l_Org_Seq_Num = 3) or (l_Time_Seq_Num = 3) then
2853 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim3_level_id" VALUE=>';
2854 else
2855 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim3_level_id" VALUE='||c_recs.Dimension3_Level_ID||'>';
2856 end if;
2857 else -- Print out NOCOPY label and input box for dimension3
2858 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim3_level_id" VALUE='||c_recs.Dimension3_Level_ID||'>';
2859 l_string1 := l_string1 ||'<TR>';
2860 l_string1 := l_string1 ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(c_recs.Dimension3_Level_Name)||'</TD>';
2861 l_string1 := l_string1 ||'<td align="left">';
2862 l_string1 := l_string1 ||'<SELECT NAME="dim3" onchange="setdim3()">';
2863 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="">'||bis_utilities_pvt.escape_html_input(l_blank);
2864
2865 if (l_dim3_tbl.COUNT <> 0) THEN
2866 removeDuplicates(p_original_tbl => l_dim3_tbl,
2867 p_value => NULL,
2868 x_unique_tbl => l_d3_tbl);
2869 for i in 1 ..l_d3_tbl.COUNT LOOP
2870 exit when (l_d3_tbl(i).id is NULL);
2871 -- mdamle - 01/15/2001 - Add quotes around VALUE
2872 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="'||bis_utilities_pvt.escape_html_input(l_d3_tbl(i).id)||'">'||bis_utilities_pvt.escape_html_input(l_d3_tbl(i).name);
2873 end loop;
2874 end if;
2875 l_string1 := l_string1 ||'<OPTION VALUE=>'||c_choose;
2876 l_string1 := l_string1 ||'</SELECT>';
2877 l_string1 := l_string1 ||'</td>';
2878 l_string1 := l_string1 ||'</TR>';
2879 end if;
2880
2881 -- *****************************************
2882 -- Dimension4
2883 -- mdamle 01/15/2001 - Use Dim6 and Dim
2884 -- meastmon 05/11/2001
2885 -- Dont show time dimension level
2886 if (c_recs.Dimension4_Level_ID is NULL) or (l_Org_Seq_Num = 4) or (l_Time_Seq_Num = 4) then
2887 if (l_Org_Seq_Num = 4) or (l_Time_Seq_Num = 4) then
2888 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim4_level_id" VALUE=>';
2889 else
2890 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim4_level_id" VALUE='||c_recs.Dimension4_Level_ID||'>';
2891 end if;
2892 else -- Print out NOCOPY label and input box for dimension4
2893 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim4_level_id" VALUE='||c_recs.Dimension4_Level_ID||'>';
2894 l_string1 := l_string1 ||'<TR>';
2895 l_string1 := l_string1 ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(c_recs.Dimension4_Level_Name)||'</TD>';
2896 l_string1 := l_string1 ||'<td align="left">';
2897 l_string1 := l_string1 ||'<SELECT NAME="dim4" onchange="setdim4()">';
2898 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="">'||bis_utilities_pvt.escape_html_input(l_blank);
2899 if (l_dim4_tbl.COUNT <> 0) THEN
2900 removeDuplicates(p_original_tbl => l_dim4_tbl,
2901 p_value => NULL,
2902 x_unique_tbl => l_d4_tbl);
2903 for i in 1 ..l_d4_tbl.COUNT LOOP
2904 exit when (l_d4_tbl(i).id is NULL);
2905 -- mdamle - 01/15/2001 - Add quotes around VALUE
2906 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="'||bis_utilities_pvt.escape_html_input(l_d4_tbl(i).id)||'">'||bis_utilities_pvt.escape_html_input(l_d4_tbl(i).name);
2907 end loop;
2908 end if;
2909 l_string1 := l_string1 ||'<OPTION VALUE=>'||c_choose;
2910 l_string1 := l_string1 ||'</SELECT>';
2911 l_string1 := l_string1 ||'</td>';
2912 l_string1 := l_string1 ||'</TR>';
2913 end if;
2914
2915 -- ****************************************
2916 -- Dimension5
2917 -- mdamle 01/15/2001 - Use Dim6 and Dim
2918 -- meastmon 05/11/2001
2919 -- Dont show time dimension level
2920 if (c_recs.Dimension5_Level_ID is NULL) or (l_Org_Seq_Num = 5) or (l_Time_Seq_Num = 5) then
2921 if (l_Org_Seq_Num = 5) or (l_Time_Seq_Num = 5) then
2922 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim5_level_id" VALUE=>';
2923 else
2924 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim5_level_id" VALUE='||c_recs.Dimension5_Level_ID||'>';
2925 end if;
2926 else
2927 -- Print out NOCOPY label and input box for dimension5
2928 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim5_level_id" VALUE='||c_recs.Dimension5_Level_ID||'>';
2929 l_string1 := l_string1 ||'<TR>';
2930 l_string1 := l_string1 ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(c_recs.Dimension5_Level_Name)||'</TD>';
2931 l_string1 := l_string1 ||'<td align="left">';
2932 l_string1 := l_string1 ||'<SELECT NAME="dim5" onchange="setdim5()">';
2933 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="">'||bis_utilities_pvt.escape_html_input(l_blank);
2934 if (l_dim5_tbl.COUNT <> 0) THEN
2935 removeDuplicates(p_original_tbl => l_dim5_tbl,
2936 p_value => NULL,
2937 x_unique_tbl => l_d5_tbl);
2938 for i in 1 ..l_d5_tbl.COUNT LOOP
2939 exit when (l_d5_tbl(i).id is NULL);
2940 -- mdamle - 01/15/2001 - Add quotes around VALUE
2941 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="'||bis_utilities_pvt.escape_html_input(l_d5_tbl(i).id)||'">'||bis_utilities_pvt.escape_html_input(l_d5_tbl(i).name);
2942 end loop;
2943 end if;
2944 l_string1 := l_string1 ||'<OPTION VALUE=>'||c_choose;
2945 l_string1 := l_string1 ||'</SELECT>';
2946 l_string1 := l_string1 ||'</td>';
2947 l_string1 := l_string1 ||'</TR>';
2948 end if;
2949
2950 -- ****************************************
2951 -- Dimension6
2952 -- mdamle 01/15/2001 - Use Dim6 and Dim
2953 -- meastmon 05/11/2001
2954 -- Dont show time dimension level
2955 if (c_recs.Dimension6_Level_ID is NULL) or (l_Org_Seq_Num = 6) or (l_Time_Seq_Num = 6) then
2956 if (l_Org_Seq_Num = 6) or (l_Time_Seq_Num = 6) then
2957 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim6_level_id" VALUE=>';
2958 else
2959 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim6_level_id" VALUE='||c_recs.Dimension6_Level_ID||'>';
2960 end if;
2961 else
2962 -- Print out NOCOPY label and input box for dimension6
2963 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim6_level_id" VALUE='||c_recs.Dimension6_Level_ID||'>';
2964 l_string1 := l_string1 ||'<TR>';
2965 l_string1 := l_string1 ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(c_recs.Dimension6_Level_Name)||'</TD>';
2966 l_string1 := l_string1 ||'<td align="left">';
2967 l_string1 := l_string1 ||'<SELECT NAME="dim6" onchange="setdim6()">';
2968 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="">'||bis_utilities_pvt.escape_html_input(l_blank);
2969 if (l_dim6_tbl.COUNT <> 0) THEN
2970 removeDuplicates(p_original_tbl => l_dim6_tbl,
2971 p_value => NULL,
2972 x_unique_tbl => l_d6_tbl);
2973 for i in 1 ..l_d6_tbl.COUNT LOOP
2974 exit when (l_d6_tbl(i).id is NULL);
2975 -- mdamle - 01/15/2001 - Add quotes around VALUE
2976 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="'||bis_utilities_pvt.escape_html_input(l_d6_tbl(i).id)||'">'||bis_utilities_pvt.escape_html_input(l_d6_tbl(i).name);
2977 end loop;
2978 end if;
2979 l_string1 := l_string1 ||'<OPTION VALUE=>'||c_choose;
2980 l_string1 := l_string1 ||'</SELECT>';
2981 l_string1 := l_string1 ||'</td>';
2982 l_string1 := l_string1 ||'</TR>';
2983 end if;
2984
2985 -- ****************************************
2986 -- Dimension7
2987 -- mdamle 01/15/2001 - Use Dim6 and Dim
2988 -- meastmon 05/11/2001
2989 -- Dont show time dimension level
2990 if (c_recs.Dimension7_Level_ID is NULL) or (l_Org_Seq_Num = 7) or (l_Time_Seq_Num = 7) then
2991 if (l_Org_Seq_Num = 7) or (l_Time_Seq_Num = 7) then
2992 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim7_level_id" VALUE=>';
2993 else
2994 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim7_level_id" VALUE='||c_recs.Dimension7_Level_ID||'>';
2995 end if;
2996 else
2997 -- Print out NOCOPY label and input box for dimension7
2998 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="dim7_level_id" VALUE='||c_recs.Dimension7_Level_ID||'>';
2999 l_string1 := l_string1 ||'<TR>';
3000 l_string1 := l_string1 ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(c_recs.Dimension7_Level_Name)||'</TD>';
3001 l_string1 := l_string1 ||'<td align="left">';
3002 l_string1 := l_string1 ||'<SELECT NAME="dim7" onchange="setdim7()">';
3003 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="">'||bis_utilities_pvt.escape_html_input(l_blank);
3004 if (l_dim7_tbl.COUNT <> 0) THEN
3005 removeDuplicates(p_original_tbl => l_dim7_tbl,
3006 p_value => NULL,
3007 x_unique_tbl => l_d7_tbl);
3008 for i in 1 ..l_d7_tbl.COUNT LOOP
3009 exit when (l_d7_tbl(i).id is NULL);
3010 -- mdamle - 01/15/2001 - Add quotes around VALUE
3011 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="'||bis_utilities_pvt.escape_html_input(l_d7_tbl(i).id)||'">'||bis_utilities_pvt.escape_html_input(l_d7_tbl(i).name);
3012 end loop;
3013 end if;
3014 l_string1 := l_string1 ||'<OPTION VALUE=>'||c_choose;
3015 l_string1 := l_string1 ||'</SELECT>';
3016 l_string1 := l_string1 ||'</td>';
3017 l_string1 := l_string1 ||'</TR>';
3018 end if;
3019 end loop; -- end of loop of c_recs cursor
3020
3021 l_string1 := l_string1 ||'<!-- Row open for Business Plan poplist -->';
3022
3023 -- Have a poplist for the Business Plan
3024 l_string1 := l_string1 ||'<TR>';
3025 l_string1 := l_string1 ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(c_plan)||'</TD>';
3026 l_string1 := l_string1 ||'<td align="left">';
3027 l_string1 := l_string1 ||'<SELECT NAME="plan">';
3028 for pl in plan_cur loop
3029 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="'||bis_utilities_pvt.escape_html_input(pl.plan_id)||'">'||bis_utilities_pvt.escape_html_input(pl.name);
3030 end loop;
3031 l_string1 := l_string1 ||'</SELECT>';
3032 l_string1 := l_string1 ||'</td>';
3033 l_string1 := l_string1 ||'</TR>';
3034 l_string1 := l_string1 ||'<TR>';
3035
3036 l_string1 := l_string1 ||'<!-- Horizontal line separating the poplists and the display label box -->';
3037 l_string1 := l_string1 ||'<td height=1 colspan=2 class="C_SEPARATOR_LINE" nowrap="YES">'||'<IMG SRC="/OA_MEDIA/FNDINVDT.gif" height=1 width=1></td>';
3038 l_string1 := l_string1 ||'</TR>';
3039 l_string1 := l_string1 ||'<TR>';
3040 l_string1 := l_string1 ||'<td align="left" colspan=2>';
3041 l_string1 := l_string1 || c_displabel;
3042 l_string1 := l_string1 || '</td>';
3043 l_string1 := l_string1 ||'</TR>';
3044 l_string1 := l_string1 ||'<TR>';
3045 l_string1 := l_string1 ||'<td colspan=2 valign="TOP" nowrap="YES">';
3046 l_string1 := l_string1 ||'<INPUT TYPE="text" NAME="label" SIZE="41" MAXLENGTH="40">';
3047 l_string1 := l_string1 ||'</td>';
3048 l_string1 := l_string1 ||'</TR>';
3049
3050 l_string1 := l_string1 ||'<!-- Close embedded table containing the dim level poplists -->';
3051 -- close embedded table containing dim labels and input boxes
3052 l_string1 := l_string1 ||'</TABLE>';
3053 -- close cell with dim labels and input boxes
3054 l_string1 := l_string1 ||'</td>';
3055 l_string1 := l_string1 ||'<!-- Put the right side separator and right edge of wire frame box -->';
3056 l_string1 := l_string1 ||'<td width=5></td>';
3057 l_string1 := l_string1 ||'<td width=1 class="C_WIRE_FRAME_COLOR">'||'<IMG SRC="/OA_MEDIA/FNDINVDT.gif" height=1 width=1></td>';
3058 l_string1 := l_string1 ||'</TR>';
3059 l_string1 := l_string1 ||'<TR>';
3060 l_string1 := l_string1 ||'<!-- Put the bottom edge of wireframe box -->';
3061 l_string1 := l_string1 ||'<td height=1 class="C_WIRE_FRAME_COLOR" colspan=5>'||'<IMG SRC="/OA_MEDIA/FNDINVDT.gif" height=1 width=1></td>';
3062 l_string1 := l_string1 ||'</TR>';
3063 l_string1 := l_string1 ||'<!-- Close wireframe table -->';
3064 l_string1 := l_string1 ||'</TABLE>';
3065 l_string1 := l_string1 ||'</td>';
3066 l_string1 := l_string1 ||'</TR>';
3067 l_string1 := l_string1 ||'<TR>';
3068 l_string1 := l_string1 || '<td height=5></td>';
3069 l_string1 := l_string1 ||'</TR>';
3070 l_string1 := l_string1 ||'<TR>';
3071 l_string1 := l_string1 ||'<td align="CENTER" valign="TOP">';
3072 l_string1 := l_string1 ||'<table border=0 cellspacing=0 cellpadding=0 width=50%>';
3073 l_string1 := l_string1 ||'<TR>';
3074 -- cell containing the add button
3075 l_string1 := l_string1 ||'<td align="CENTER" valign="TOP">';
3076
3077 WF_NOTIFICATION.WriteToClob(l_str_object,l_string1);
3078
3079 --meastmon ICX Button is not ADA Complaint. ICX is not going to fix that.
3080 --icx_plug_utilities.buttonBoth(c_display_homepage,'Javascript:addTo()');
3081 IF(l_swan_enabled)THEN
3082 l_button_edge := BIS_UTILITIES_PVT.G_FLAT_EDGE;
3083 ELSE
3084 l_button_edge := BIS_UTILITIES_PVT.G_ROUND_EDGE;
3085 END IF;
3086 l_button_tbl(1).left_edge := l_button_edge;
3087 l_button_tbl(1).right_edge := l_button_edge;
3088 l_button_tbl(1).disabled := FND_API.G_FALSE;
3089 l_button_tbl(1).label := c_display_homepage;
3090 l_button_tbl(1).href := 'Javascript:addTo()';
3091 BIS_UTILITIES_PVT.GetButtonString(l_button_tbl, l_button_str);
3092 l_string1 := l_button_str;
3093
3094 l_string1 := l_string1 ||'</td>';
3095 l_string1 := l_string1 ||'</TR>';
3096 l_string1 := l_string1 ||'</TABLE>';
3097 l_string1 := l_string1 ||'</td>';
3098 l_string1 := l_string1 ||'</TR>';
3099 l_string1 := l_string1 ||'<!-- Close left side table containing the dimension poplists -->';
3100 l_string1 := l_string1 ||'</TABLE>';
3101 l_string1 := l_string1 ||'</td>';
3102
3103 -- **********************************************************************
3104 -- Put a separator to move the dimensions and selected boxes apart
3105 l_string1 := l_string1 ||'<td><BR></td>';
3106
3107 l_string1 := l_string1 ||'<!-- Open cell for Display labels box -->';
3108 -- open cell for right side box
3109 l_string1 := l_string1 ||'<td align="RIGHT" valign="TOP">';
3110 l_string1 := l_string1 ||'<table border=0 cellspacing=0 cellpadding=0 width=90%>';
3111 l_string1 := l_string1 ||'<TR>';
3112 IF(l_swan_enabled)THEN
3113 l_string1 := l_string1 || '<TD ALIGN="LEFT" class="x49" NOWRAP>'||bis_utilities_pvt.escape_html(c_tarlevels_homepage) ||'</TD>';
3114 ELSE
3115 l_string1 := l_string1 || '<TD ALIGN="LEFT" NOWRAP>'||bis_utilities_pvt.escape_html(c_tarlevels_homepage) ||'</TD>';
3116 END IF;
3117 l_string1 := l_string1 || '<TD><BR></TD>';
3118 l_string1 := l_string1 || '</TR>';
3119 l_string1 := l_string1 || '<TR>';
3120 l_string1 := l_string1 || '<td valign="TOP">';
3121 l_string1 := l_string1 ||'<SELECT NAME="C" SIZE=20>';
3122 -- If first time to this page, get favorites from database
3123 if (p_ind_level_id is NULL) then
3124 if (l_labels_tbl.COUNT = 0) THEN
3125 l_string1 := l_string1 ||'<OPTION VALUE=>'||l_initialize;
3126 else
3127 for i in l_labels_tbl.FIRST .. l_labels_tbl.COUNT loop
3128 -- mdamle 01/15/2001 - Use Dim6 and Dim7
3129 -- mdamle 01/15/2001 - Use Dim6 and Dim7
3130 l_Org_level_value_id := null;
3131
3132 --meastmon 06/07/2001 - Bug.
3133 -- l_Org_Seq_Num should be initialized within the loop, because every loop
3134 -- it is a different target.
3135 l_Org_Seq_Num := getOrgSeqNum(l_labels_tbl(i).target_level_id);
3136
3137 if l_Org_Seq_Num = 1 then
3138 l_Org_Level_Value_ID := l_labels_tbl(i).dim1_level_value_id;
3139 end if;
3140 if l_Org_Seq_Num = 2 then
3141 l_Org_Level_Value_ID := l_labels_tbl(i).dim2_level_value_id;
3142 end if;
3143 if l_Org_Seq_Num = 3 then
3144 l_Org_Level_Value_ID := l_labels_tbl(i).dim3_level_value_id;
3145 end if;
3146 if l_Org_Seq_Num = 4 then
3147 l_Org_Level_Value_ID := l_labels_tbl(i).dim4_level_value_id;
3148 end if;
3149 if l_Org_Seq_Num = 5 then
3150 l_Org_Level_Value_ID := l_labels_tbl(i).dim5_level_value_id;
3151 end if;
3152 if l_Org_Seq_Num = 6 then
3153 l_Org_Level_Value_ID := l_labels_tbl(i).dim6_level_value_id;
3154 end if;
3155 if l_Org_Seq_Num = 7 then
3156 l_Org_Level_Value_ID := l_labels_tbl(i).dim7_level_value_id;
3157 end if;
3158
3159 --meastmon 06/08/2001
3160 -- Dont need to put time level value id
3161 l_Time_Seq_Num := getTimeSeqNum(l_labels_tbl(i).target_level_id);
3162
3163 -- mdamle 01/15/2001 - Replace plus in data with c_hash
3164 -- The browser converts plus into space - and incorrect data is passed through
3165 l_link := l_labels_tbl(i).target_level_id||
3166 '*'||NVL(l_org_level_value_id,'+1');
3167 IF l_Time_Seq_Num = 1 THEN
3168 l_link := l_link||'*+1';
3169 ELSE
3170 l_link := l_link||'*'||NVL(l_labels_tbl(i).DIM1_LEVEL_VALUE_ID,'+1');
3171 END IF;
3172 IF l_Time_Seq_Num = 2 THEN
3173 l_link := l_link||'*+1';
3174 ELSE
3175 l_link := l_link||'*'||NVL(l_labels_tbl(i).DIM2_LEVEL_VALUE_ID,'+1');
3176 END IF;
3177 IF l_Time_Seq_Num = 3 THEN
3178 l_link := l_link||'*+1';
3179 ELSE
3180 l_link := l_link||'*'||NVL(l_labels_tbl(i).DIM3_LEVEL_VALUE_ID,'+1');
3181 END IF;
3182 IF l_Time_Seq_Num = 4 THEN
3183 l_link := l_link||'*+1';
3184 ELSE
3185 l_link := l_link||'*'||NVL(l_labels_tbl(i).DIM4_LEVEL_VALUE_ID,'+1');
3186 END IF;
3187 IF l_Time_Seq_Num = 5 THEN
3188 l_link := l_link||'*+1';
3189 ELSE
3190 l_link := l_link||'*'||NVL(l_labels_tbl(i).DIM5_LEVEL_VALUE_ID,'+1');
3191 END IF;
3192 IF l_Time_Seq_Num = 6 THEN
3193 l_link := l_link||'*+1';
3194 ELSE
3195 l_link := l_link||'*'||NVL(l_labels_tbl(i).DIM6_LEVEL_VALUE_ID,'+1');
3196 END IF;
3197 IF l_Time_Seq_Num = 7 THEN
3198 l_link := l_link||'*+1';
3199 ELSE
3200 l_link := l_link||'*'||NVL(l_labels_tbl(i).DIM7_LEVEL_VALUE_ID,'+1');
3201 END IF;
3202 l_link := l_link||'*'||NVL(l_labels_tbl(i).PLAN_ID,'+1');
3203
3204 IF (BIS_PMF_PORTLET_UTIL.is_authorized(
3205 p_cur_user_id => g_user_id
3206 ,p_target_level_id => l_labels_tbl(i).target_level_id) ) THEN
3207 l_access := '*Y';
3208 ELSE
3209 l_access := '*N';
3210 END IF;
3211
3212 -- mdamle 01/15/2001 - Added quotes around the VALUE
3213 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="'||bis_utilities_pvt.escape_html_input(REPLACE(REPLACE(l_link,'+1',c_minus),'+',c_at))||bis_utilities_pvt.escape_html_input(l_access)||'">';
3214 l_string1 := l_string1 ||bis_utilities_pvt.escape_html_input(l_labels_tbl(i).label);
3215
3216 end LOOP;
3217 end if; -- if l_labels_tbl is empty
3218
3219 else
3220 -- Else get the favorites stored in the plsql table
3221 for i in 1 .. p_displaylabels_tbl.COUNT LOOP
3222 l_loc := instr(p_displaylabels_tbl(i),'*',-1,1);
3223 l_value := substr (p_displaylabels_tbl(i),1,l_loc - 1);
3224 l_text := substr (p_displaylabels_tbl(i),l_loc + 1);
3225
3226
3227 IF ( (instr(l_value, '*Y', -1, 1 ) = 0) AND (instr(l_value, '*N', -1, 1 ) = 0)) THEN
3228 l_value := l_value || '*Y'; -- first time added
3229 END IF;
3230 -- mdamle 01/15/2001 - Added quotes around the VALUE
3231 l_string1 := l_string1 ||'<OPTION SELECTED VALUE="'||bis_utilities_pvt.escape_html_input(l_value)||'">'||bis_utilities_pvt.escape_html_input(l_text);
3232 exit when p_displaylabels_tbl(i) is NULL;
3233 end LOOP;
3234 end if; -- endif for checking if p_ind_level_id is null or not
3235
3236 l_string1 := l_string1 ||'</SELECT>';
3237 l_string1 := l_string1 ||'</td>';
3238 l_string1 := l_string1 ||'<!-- Open cell for up down buttons -->';
3239 l_string1 := l_string1 ||'<td align="LEFT">'; -- open cell for up down buttons
3240 l_string1 := l_string1 ||'<TABLE >';
3241 l_string1 := l_string1 ||'<tr><td align="left" valign="bottom">';
3242
3243 IF(l_swan_enabled)THEN
3244 l_string1 := l_string1 ||'<A HREF="javascript:upTo()" onMouseOver="window.status='''||BIS_UTILITIES_PVT.getPrompt('BIS_UP')||''';return true"><image src="/OA_MEDIA/BISMOVUP.gif" alt="';
3245 ELSE
3246 l_string1 := l_string1 ||'<A HREF="javascript:upTo()" onMouseOver="window.status='''||BIS_UTILITIES_PVT.getPrompt('BIS_UP')||''';return true"><image src="/OA_MEDIA/FNDUPARW.gif" alt="';
3247 END IF;
3248
3249 l_string1 := l_string1 ||icx_util.replace_alt_quotes(BIS_UTILITIES_PVT.getPrompt('BIS_UP'))||'" BORDER="0"></A>';
3250 l_string1 := l_string1 ||'</td></tr>';
3251 l_string1 := l_string1 ||'<tr><td align="left" valign="top">';
3252 IF(l_swan_enabled)THEN
3253 l_string1 := l_string1 ||'<A HREF="javascript:downTo()" onMouseOver="window.status='''||BIS_UTILITIES_PVT.getPrompt('BIS_DOWN')||''';return true"><image src="/OA_MEDIA/BISMOVDN.gif" alt="';
3254 ELSE
3255 l_string1 := l_string1 ||'<A HREF="javascript:downTo()" onMouseOver="window.status='''||BIS_UTILITIES_PVT.getPrompt('BIS_DOWN')||''';return true"><image src="/OA_MEDIA/FNDDNARW.gif" alt="';
3256 END IF;
3257 l_string1 := l_string1 ||icx_util.replace_alt_quotes(BIS_UTILITIES_PVT.getPrompt('BIS_DOWN'))||'" BORDER="0"></A>';
3258 l_string1 := l_string1 ||'</td></tr>';
3259 l_string1 := l_string1 ||'</TABLE>';
3260 l_string1 := l_string1 ||'</td>';
3261 l_string1 := l_string1 || '</TR>';
3262 l_string1 := l_string1 || '<!-- Open third row with edit-delete buttons for right side box -->';
3263 l_string1 := l_string1 || '<TR>';
3264 l_string1 := l_string1 || '<td align="CENTER" valign="TOP">';
3265 l_string1 := l_string1 || '<!-- Open embedded table having buttons -->';
3266 l_string1 := l_string1 ||'<TABLE>';
3267 l_string1 := l_string1 ||'<tr><td align="right" nowrap="Yes">';
3268
3269 --meastmon ICX Button is not ADA Complaint. ICX is not going to fix that.
3270 --icx_plug_utilities.buttonBoth(
3271 -- BIS_UTILITIES_PVT.getPrompt('BIS_EDIT')
3272 -- ,'Javascript:editTo()');
3273 l_button_tbl(1).left_edge := l_button_edge;
3274 l_button_tbl(1).right_edge := l_button_edge;
3275 l_button_tbl(1).disabled := FND_API.G_FALSE;
3276 l_button_tbl(1).label := BIS_UTILITIES_PVT.getPrompt('BIS_EDIT');
3277 l_button_tbl(1).href := 'Javascript:editTo()';
3278 BIS_UTILITIES_PVT.GetButtonString(l_button_tbl, l_button_str);
3279 l_string1 := l_string1 ||l_button_str;
3280
3281 l_string1 := l_string1 ||'</td>';
3282 l_string1 := l_string1 ||'<td align="left" nowrap="Yes">';
3283
3284 --meastmon ICX Button is not ADA Complaint. ICX is not going to fix that.
3285 --icx_plug_utilities.buttonBoth(
3286 -- BIS_UTILITIES_PVT.getPrompt('BIS_DELETE')
3287 -- ,'Javascript:deleteTo()');
3288 l_button_tbl(1).left_edge := l_button_edge;
3289 l_button_tbl(1).right_edge := l_button_edge;
3290 l_button_tbl(1).disabled := FND_API.G_FALSE;
3291 l_button_tbl(1).label := BIS_UTILITIES_PVT.getPrompt('BIS_DELETE');
3292 l_button_tbl(1).href := 'Javascript:deleteTo()';
3293 BIS_UTILITIES_PVT.GetButtonString(l_button_tbl, l_button_str);
3294 l_string1 := l_string1 ||l_button_str;
3295 l_string1 := l_string1 ||'</td></tr>';
3296 l_string1 := l_string1 ||'</TABLE>';
3297 l_string1 := l_string1 ||'</td>';
3298 l_string1 := l_string1 ||'<td><BR></td>';
3299 l_string1 := l_string1 || '</TR>';
3300 l_string1 := l_string1 ||'</TABLE>';
3301 l_string1 := l_string1 ||'</td>'; -- close right side cell containing favorites and arrow buttons
3302 l_string1 := l_string1 ||'<!-- Close row for cell table containing the boxes -->';
3303 l_string1 := l_string1 || '</TR>';
3304 l_string1 := l_string1 || '<TR>';
3305 l_string1 := l_string1 || '<td colspan=2><BR></td>';
3306 l_string1 := l_string1 || '</TR>';
3307 l_string1 := l_string1 || '<TR>';
3308 l_string1 := l_string1 || '<td height=1 colspan=3 bgcolor=#000000>'||'<IMG SRC="/OA_MEDIA/FNDINVDT.gif" height=1 width=1></td>';
3309 l_string1 := l_string1 || '</TR>';
3310
3311 l_string1 := l_string1 ||'<!-- Close cell table containing the boxes -->';
3312 l_string1 := l_string1 ||'</TABLE>';
3313 l_string1 := l_string1 || '</td>';
3314 l_string1 := l_string1 ||'<!-- Close row 1 of main -->';
3315 l_string1 := l_string1 || '</TR>';
3316 l_string1 := l_string1 || '<TR>';
3317 l_string1 := l_string1 || '<td><BR></td>';
3318 l_string1 := l_string1 || '</TR>';
3319
3320 l_string1 := l_string1 || '<!-- Open row with table containing the ok and cancel buttons -->';
3321 l_string1 := l_string1 || '<TR>';
3322 l_string1 := l_string1 || '<td align="CENTER">';
3323 --meastmon 06/20/2001. Added valign attribute
3324 l_string1 := l_string1 ||'<table width="100%"><tr><td width=50% align="right" valign="top">'; -- ok
3325
3326 --meastmon ICX Button is not ADA Complaint. ICX is not going to fix that.
3327 --icx_plug_utilities.buttonLeft(BIS_UTILITIES_PVT.getPrompt('BIS_OK'),
3328 -- 'Javascript:savedimensions()');
3329 l_button_tbl(1).left_edge := l_button_edge;
3330 l_button_tbl(1).right_edge := BIS_UTILITIES_PVT.G_FLAT_EDGE;
3331 l_button_tbl(1).disabled := FND_API.G_FALSE;
3332 l_button_tbl(1).label := BIS_UTILITIES_PVT.getPrompt('BIS_OK');
3333 l_button_tbl(1).href := 'Javascript:savedimensions()';
3334 BIS_UTILITIES_PVT.GetButtonString(l_button_tbl, l_button_str);
3335 l_string1 := l_string1 ||l_button_str;
3336
3337 l_string1 := l_string1 ||'<!-- Close Main form to save the display lables -->';
3338 --meastmon 06/20/2001. Added valign attribute
3339 l_string1 := l_string1 ||'</td><td align="left" valign="top" width="50%">';
3340 l_string1 := l_string1 ||'<!-- Open form to do work of going to prev page -->';
3341
3342 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="Z2" VALUE="'||Z||'">';
3343 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="p_back_url2" VALUE="'||p_back_url||'">';
3344 l_string1 := l_string1 ||'<INPUT TYPE="hidden" NAME="p_reference_path2" VALUE="'||p_reference_path||'">';
3345
3346 --meastmon 06/20/2001. This should not be here
3347
3348 l_string1 := l_string1 ||'<!-- Close form to do work of going to prev page -->';
3349 --l_string1 := l_string1 ||'</FORM>';
3350
3351 --meastmon ICX Button is not ADA Complaint. ICX is not going to fix that.
3352 --icx_plug_utilities.buttonRight(BIS_UTILITIES_PVT.getPrompt('BIS_CANCEL'),
3353 -- 'Javascript:document.actionback.submit()');
3354 l_button_tbl(1).left_edge := BIS_UTILITIES_PVT.G_FLAT_EDGE;
3355 l_button_tbl(1).right_edge := l_button_edge;
3356 l_button_tbl(1).disabled := FND_API.G_FALSE;
3357 l_button_tbl(1).label := BIS_UTILITIES_PVT.getPrompt('BIS_CANCEL');
3358 l_button_tbl(1).href := 'Javascript:doCancel()';
3359 --l_button_tbl(1).href := 'Javascript:document.actionback.submit()';
3360 BIS_UTILITIES_PVT.GetButtonString(l_button_tbl, l_button_str);
3361 l_string1 := l_string1 ||l_button_str;
3362 l_string1 := l_string1 ||'</td></tr>';
3363 l_string1 := l_string1 ||'</table>';
3364 l_string1 := l_string1 ||'</td>';
3365 l_string1 := l_string1 || '</TR>';
3366 l_string1 := l_string1 ||'<!-- Close Main Table -->';
3367 l_string1 := l_string1 ||'</TABLE>';
3368 l_string1 := l_string1 ||'</CENTER>';
3369 l_string1 := l_string1 ||'</BODY>';
3370 l_string1 := l_string1 ||'</HTML>';
3371
3372 WF_NOTIFICATION.WriteToClob(l_str_object,l_string1);
3373
3374 x_str_object := l_str_object;
3375 -- end if; -- icx_validatePlugsession
3376 --end if; -- icx_validateSession
3377
3378 exception
3379 when others then --htp.p(SQLERRM);
3380 --x_string1 := SQLERRM;
3381 --x_string2 := NULL;
3382 WF_NOTIFICATION.NewClob(l_str_object,SQLERRM);
3383 x_str_object := l_str_object;
3384
3385
3386 end showDimensions;
3387
3388
3389 -- ********************************************************
3390 -- Procedure that allows Editing/renaming of indicators
3391 -- *********************************************************
3392
3393 procedure editDimensions( U in varchar2
3394 ,Z in pls_integer
3395 ,x_string out nocopy varchar2)
3396 is
3397 V varchar2(32000);
3398 l_cnt pls_integer;
3399 l_plug_id pls_integer;
3400 l_choose_dim_value varchar2(32000);
3401 l_enter_displabel varchar2(32000);
3402 l_select_displabel varchar2(32000);
3403 l_dup_displabel varchar2(32000);
3404 l_dup_combo varchar2(32000);
3405 l_title varchar2(32000);
3406 l_blank varchar2(32000);
3407 l_initialize varchar2(32000);
3408 l_length pls_integer;
3409 l_indlevel_id pls_integer;
3410 l_d0 varchar2(32000);
3411 l_d1 varchar2(32000);
3412 l_d2 varchar2(32000);
3413 l_d3 varchar2(32000);
3414 l_d4 varchar2(32000);
3415 l_d5 varchar2(32000);
3416 -- mdamle 01/15/2001 - Use Dim6 and Dim7
3417 l_d6 varchar2(32000);
3418 l_d7 varchar2(32000);
3419
3420 l_plan varchar2(32000);
3421 l_plan1 varchar2(32000);
3422 l_plan_name varchar2(32000);
3423 l_indlevel_name varchar2(32000);
3424 l_orgname varchar2(32000);
3425 l_label varchar2(32000);
3426 l_point1 pls_integer;
3427 l_point2 pls_integer;
3428 l_point3 pls_integer;
3429 l_point4 pls_integer;
3430 l_point5 pls_integer;
3431 l_point6 pls_integer;
3432 l_point7 pls_integer;
3433 -- mdamle 01/15/2001 - Use Dim6 and Dim7
3434 l_point8 pls_integer;
3435 l_point9 pls_integer;
3436 l_point10 pls_integer;
3437
3438 l_point12 pls_integer;
3439 l_point23 pls_integer;
3440 l_message varchar2(32000);
3441 l_message1 varchar2(32000);
3442
3443 l_current_user_id PLS_INTEGER;
3444 l_user_id PLS_INTEGER;
3445 l_owner_user_id PLS_INTEGER;
3446 --
3447 l_msg_count number;
3448 l_msg_data varchar2(32000);
3449 l_return_status varchar2(32000);
3450 l_indicators_tbl BIS_TARGET_LEVEL_PUB.Target_Level_Tbl_Type;
3451 l_dim0_level_value_rec BIS_DIM_LEVEL_VALUE_PUB.Dim_Level_Value_Rec_Type;
3452 l_dim1_level_value_rec BIS_DIM_LEVEL_VALUE_PUB.Dim_Level_Value_Rec_Type;
3453 l_dim2_level_value_rec BIS_DIM_LEVEL_VALUE_PUB.Dim_Level_Value_Rec_Type;
3454 l_dim3_level_value_rec BIS_DIM_LEVEL_VALUE_PUB.Dim_Level_Value_Rec_Type;
3455 l_dim4_level_value_rec BIS_DIM_LEVEL_VALUE_PUB.Dim_Level_Value_Rec_Type;
3456 l_dim5_level_value_rec BIS_DIM_LEVEL_VALUE_PUB.Dim_Level_Value_Rec_Type;
3457 -- mdamle 01/15/2001 - Use Dim6 and Dim7
3458 l_dim6_level_value_rec BIS_DIM_LEVEL_VALUE_PUB.Dim_Level_Value_Rec_Type;
3459 l_dim7_level_value_rec BIS_DIM_LEVEL_VALUE_PUB.Dim_Level_Value_Rec_Type;
3460
3461 l_favorites_tbl BIS_INDICATOR_REGION_PUB.Indicator_Region_Tbl_Type;
3462 l_orgs_tbl no_duplicates_tbl_Type;
3463 l_dim1_tbl no_duplicates_tbl_Type;
3464 l_dim2_tbl no_duplicates_tbl_Type;
3465 l_dim3_tbl no_duplicates_tbl_Type;
3466 l_dim4_tbl no_duplicates_tbl_Type;
3467 l_dim5_tbl no_duplicates_tbl_Type;
3468 -- mdamle 01/15/2001 - Use Dim6 and Dim7
3469 l_dim6_tbl no_duplicates_tbl_Type;
3470 l_dim7_tbl no_duplicates_tbl_Type;
3471
3472 l_d0_tbl no_duplicates_tbl_Type;
3473 l_d1_tbl no_duplicates_tbl_Type;
3474 l_d2_tbl no_duplicates_tbl_Type;
3475 l_d3_tbl no_duplicates_tbl_Type;
3476 l_d4_tbl no_duplicates_tbl_Type;
3477 l_d5_tbl no_duplicates_tbl_Type;
3478 -- mdamle 01/15/2001 - Use Dim6 and Dim7
3479 l_d6_tbl no_duplicates_tbl_Type;
3480 l_d7_tbl no_duplicates_tbl_Type;
3481
3482 l_d0_name varchar2(32000);
3483 l_d1_name varchar2(32000);
3484 l_d2_name varchar2(32000);
3485 l_d3_name varchar2(32000);
3486 l_d4_name varchar2(32000);
3487 l_d5_name varchar2(32000);
3488
3489 -- mdamle 01/15/2001 - Use Dim6 and Dim7
3490 l_d6_name varchar2(32000);
3491 l_d7_name varchar2(32000);
3492
3493 -- meastmon 05/11/2001
3494 l_Time_Seq_Num number;
3495 --
3496 l_Org_Seq_Num number;
3497 l_Org_Level_Value_ID number;
3498 l_Org_Level_Short_Name varchar2(240);
3499 l_Org_Level_Name bis_levels_tl.name%TYPE;
3500
3501 l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
3502 l_clear VARCHAR2(32000);
3503 l_sobString VARCHAR2(32000);
3504 l_sob_level_id NUMBER;
3505 l_org_level_id NUMBER;
3506 l_elements BIS_UTILITIES_PUB.BIS_VARCHAR_TBL;
3507
3508 -- meastmon 06/20/2001
3509 -- Fix for ADA buttons
3510 l_button_str varchar2(32000);
3511 l_button_tbl BIS_UTILITIES_PVT.HTML_Button_Tbl_Type;
3512 l_set_of_books_id VARCHAR2(200);
3513
3514 l_dim_level_value_rec_p BIS_DIM_LEVEL_VALUE_PUB.Dim_Level_Value_Rec_Type;
3515 l_string VARCHAR2(32000);
3516 l_lovstring VARCHAR2(32000);
3517
3518
3519
3520 CURSOR plan_cur is
3521 SELECT plan_id,short_name,name
3522 FROM BISBV_BUSINESS_PLANS
3523 ORDER BY name;
3524
3525 -- mdamle 01/15/2001 - Use Dim6 and Dim7
3526 cursor bisfv_target_levels_cur(p_tarid in pls_integer) is
3527 SELECT TARGET_LEVEL_ID,
3528 TARGET_LEVEL_NAME,
3529 -- mdamle 01/15/2001 - Use Dim6 and Dim7
3530 -- ORG_LEVEL_ID,
3531 -- ORG_LEVEL_SHORT_NAME,
3532 -- ORG_LEVEL_NAME,
3533 DIMENSION1_LEVEL_ID,
3534 DIMENSION1_LEVEL_SHORT_NAME,
3535 DIMENSION1_LEVEL_NAME,
3536 DIMENSION2_LEVEL_ID,
3537 DIMENSION2_LEVEL_SHORT_NAME,
3538 DIMENSION2_LEVEL_NAME,
3539 DIMENSION3_LEVEL_ID,
3540 DIMENSION3_LEVEL_SHORT_NAME,
3541 DIMENSION3_LEVEL_NAME,
3542 DIMENSION4_LEVEL_ID,
3543 DIMENSION4_LEVEL_SHORT_NAME,
3544 DIMENSION4_LEVEL_NAME,
3545 DIMENSION5_LEVEL_ID,
3546 DIMENSION5_LEVEL_SHORT_NAME,
3547 DIMENSION5_LEVEL_NAME,
3548 DIMENSION6_LEVEL_ID,
3549 DIMENSION6_LEVEL_SHORT_NAME,
3550 DIMENSION6_LEVEL_NAME,
3551 DIMENSION7_LEVEL_ID,
3552 DIMENSION7_LEVEL_SHORT_NAME,
3553 DIMENSION7_LEVEL_NAME
3554 FROM BISFV_TARGET_LEVELS
3555 WHERE TARGET_LEVEL_ID = p_tarid;
3556
3557 l_append_string VARCHAR2(1000);
3558 l_swan_enabled BOOLEAN;
3559 l_button_edge VARCHAR2(100);
3560
3561 BEGIN
3562
3563 -- meastmon 09/07/2001 Fix bug#1980577. Workaround Do not encrypt plug_id
3564 l_plug_id := Z;
3565 l_swan_enabled := BIS_UTILITIES_PVT.checkSWANEnabled();
3566
3567 --l_plug_id := icx_call.decrypt2(Z);
3568
3569 --if icx_sec.validateSession then
3570 -- if ICX_SEC.validatePlugSession(l_plug_id) then
3571
3572 --g_user_id := icx_sec.getID(icx_sec.PV_USER_ID, '', icx_sec.g_session_id); --2751984
3573 l_user_id := icx_sec.getID(icx_sec.PV_USER_ID, '', icx_sec.g_session_id); --2751984
3574 l_blank := '';
3575 l_message := 'Please enter a display label';
3576 l_initialize := '1234567891234567890';
3577
3578
3579 -- Replace the plus signs from the string
3580 -- mdamle 01/15/2001 -
3581 -- 1) Replace @ with plus (actual data plus)
3582 -- 2) Using c_hash instead of c_plus everywhere bec. data could contain c_plus
3583 V := REPLACE(U, c_at, c_plus);
3584 V := REPLACE(V,' ',c_hash);
3585
3586
3587 -- Set the message strings from the database
3588 fnd_message.set_name('BIS','BIS_ENTER_DISPLABEL');
3589 l_enter_displabel := icx_util.replace_quotes(fnd_message.get);
3590 fnd_message.set_name('BIS','BIS_SELECT_DISPLABEL');
3591 l_select_displabel := icx_util.replace_quotes(fnd_message.get);
3592 fnd_message.set_name('BIS','BIS_DUP_DISPLABEL');
3593 l_dup_displabel := icx_util.replace_quotes(fnd_message.get);
3594 fnd_message.set_name('BIS','BIS_DUP_COMBO');
3595 l_dup_combo := icx_util.replace_quotes(fnd_message.get);
3596 fnd_message.set_name('BIS','BIS_CHOOSE_DIM_VALUE');
3597 l_choose_dim_value := icx_util.replace_quotes(fnd_message.get);
3598
3599 -- Unpack the one element that was selected for edit from the Favorites box
3600 -- to obtain individual dim_level_value id's
3601 l_length := length(V);
3602 l_point1 := instr(V,'*',1,1);
3603 l_point2 := instr(V,'*',1,2);
3604 l_point3 := instr(V,'*',1,3);
3605 l_point4 := instr(V,'*',1,4);
3606 l_point5 := instr(V,'*',1,5);
3607 l_point6 := instr(V,'*',1,6);
3608 l_point7 := instr(V,'*',1,7);
3609 -- mdamle 01/15/2001 - Use Dim6 and Dim7
3610 l_point8 := instr(V,'*',1,8);
3611 l_point9 := instr(V,'*',1,9);
3612 l_point10 := instr(V,'*',1,10);
3613
3614 l_indlevel_id := substr(V,1,l_point1-1);
3615
3616 -- mdamle 01/15/2001 - Use Dim6 and Dim7
3617 l_d0 := substr(V,l_point1+1,l_point2 - l_point1 - 1);
3618 l_d1 := substr(V,l_point2+1,l_point3 - l_point2 - 1);
3619 l_d2 := substr(V,l_point3+1,l_point4 - l_point3 - 1);
3620 l_d3 := substr(V,l_point4+1,l_point5 - l_point4 - 1);
3621 l_d4 := substr(V,l_point5+1,l_point6 - l_point5 - 1);
3622 l_d5 := substr(V,l_point6+1,l_point7 - l_point6 - 1);
3623 l_d6 := substr(V,l_point7+1,l_point8 - l_point7 - 1);
3624 l_d7 := substr(V,l_point8+1,l_point9 - l_point8 - 1);
3625 --l_plan := substr(V,l_point9+1);
3626 l_plan := substr(V,l_point9+1,l_point10 - l_point9 - 1);
3627
3628 g_var1 := l_d0;
3629
3630 -- ************** Debug stuff ****************************
3631 -- htp.p(l_indlevel_id||'*'||l_d0||'*'||l_d1||'*'||l_d2||'*'||
3632 -- l_d3||'*'||l_d4||'*'||l_d5||'*'||l_plan);
3633 -- htp.p('<BR>*****************************************************<BR>');
3634
3635 -- Get all the previously selected labels from
3636 -- selections table.
3637 BIS_INDICATOR_REGION_PUB.Retrieve_User_Ind_Selections
3638 ( p_api_version => 1.0
3639 , p_user_id => l_user_id
3640 , p_all_info => FND_API.G_TRUE
3641 , p_plug_id => l_plug_id
3642 , x_Indicator_Region_Tbl => l_favorites_tbl
3643 , x_return_status => l_return_status
3644 , x_Error_Tbl => l_error_tbl
3645 );
3646
3647 -- Grab the Target level Name for this target level id
3648 -- to paint at the top of the page
3649 -- mdamle 01/15/2001 - Use getPerformanceMeasureName() instead
3650 -- SELECT target_level_name
3651 -- INTO l_indlevel_name
3652 -- FROM BISBV_TARGET_LEVELS
3653 -- WHERE TARGET_LEVEL_ID = l_indlevel_id;
3654 l_indlevel_name := getPerformanceMeasureName(l_indlevel_id);
3655
3656 -- Set the set of books id for GL dimension levels
3657 --
3658 SELECT level_id
3659 INTO l_sob_level_id
3660 FROM BIS_LEVELS
3661 WHERE SHORT_NAME = 'SET OF BOOKS';
3662
3663 -- mdamle 01/15/2001 - Use Dim6 and Dim7
3664 l_org_level_id := getOrgLevelID(l_indlevel_id);
3665
3666 IF l_sob_level_id = l_org_level_ID
3667 THEN
3668 BIS_TARGET_PVT.G_SET_OF_BOOK_ID := TO_NUMBER(g_var1);
3669 END IF;
3670
3671 -- Grab the individual dim_level_values chosen previously for
3672 -- this target_level_id, to populate respective poplists
3673 if (l_favorites_tbl.COUNT <> 0) THEN
3674 l_cnt := 1;
3675 for i in l_favorites_tbl.FIRST .. l_favorites_tbl.COUNT LOOP
3676 if (l_favorites_tbl(i).target_level_id = l_indlevel_id) THEN
3677 -- mdamle 01/15/2001 - Use Dim6 and Dim7
3678 -- mdamle 01/15/2001 - Use Dim6 and Dim7
3679 -- Get the Dimension No. for Org
3680 l_Org_Seq_Num := getOrgSeqNum(l_indlevel_id);
3681
3682 IF (l_favorites_tbl(i).dim1_level_value_id is NOT NULL) THEN
3683 l_dim1_tbl(l_cnt).id := l_favorites_tbl(i).dim1_level_value_id;
3684 l_dim1_tbl(l_cnt).name := l_favorites_tbl(i).dim1_level_value_name;
3685 -- mdamle 01/15/2001 Use Dim6 and Dim7
3686 if l_Org_Seq_Num = 1 then
3687 l_orgs_tbl(l_cnt).id := l_favorites_tbl(i).dim1_level_value_id;
3688 l_orgs_tbl(l_cnt).name := l_favorites_tbl(i).dim1_level_value_name;
3689 end if;
3690 END IF;
3691 IF (l_favorites_tbl(i).dim2_level_value_id is NOT NULL) THEN
3692 l_dim2_tbl(l_cnt).id := l_favorites_tbl(i).dim2_level_value_id;
3693 l_dim2_tbl(l_cnt).name := l_favorites_tbl(i).dim2_level_value_name;
3694 -- mdamle 01/15/2001 Use Dim6 and Dim7
3695 if l_Org_Seq_Num = 2 then
3696 l_orgs_tbl(l_cnt).id := l_favorites_tbl(i).dim2_level_value_id;
3697 l_orgs_tbl(l_cnt).name := l_favorites_tbl(i).dim2_level_value_name;
3698 end if;
3699 END IF;
3700 IF (l_favorites_tbl(i).dim3_level_value_id is NOT NULL) THEN
3701 l_dim3_tbl(l_cnt).id := l_favorites_tbl(i).dim3_level_value_id;
3702 l_dim3_tbl(l_cnt).name := l_favorites_tbl(i).dim3_level_value_name;
3703 -- mdamle 01/15/2001 Use Dim6 and Dim7
3704 if l_Org_Seq_Num = 3 then
3705 l_orgs_tbl(l_cnt).id := l_favorites_tbl(i).dim3_level_value_id;
3706 l_orgs_tbl(l_cnt).name := l_favorites_tbl(i).dim3_level_value_name;
3707 end if;
3708 END IF;
3709 IF (l_favorites_tbl(i).dim4_level_value_id is NOT NULL) THEN
3710 l_dim4_tbl(l_cnt).id := l_favorites_tbl(i).dim4_level_value_id;
3711 l_dim4_tbl(l_cnt).name := l_favorites_tbl(i).dim4_level_value_name;
3712 -- mdamle 01/15/2001 Use Dim6 and Dim7
3713 if l_Org_Seq_Num = 4 then
3714 l_orgs_tbl(l_cnt).id := l_favorites_tbl(i).dim4_level_value_id;
3715 l_orgs_tbl(l_cnt).name := l_favorites_tbl(i).dim4_level_value_name;
3716 end if;
3717 END IF;
3718 IF (l_favorites_tbl(i).dim5_level_value_id is NOT NULL) THEN
3719 l_dim5_tbl(l_cnt).id := l_favorites_tbl(i).dim5_level_value_id;
3720 l_dim5_tbl(l_cnt).name := l_favorites_tbl(i).dim5_level_value_name;
3721 -- mdamle 01/15/2001 Use Dim6 and Dim7
3722 if l_Org_Seq_Num = 5 then
3723 l_orgs_tbl(l_cnt).id := l_favorites_tbl(i).dim5_level_value_id;
3724 l_orgs_tbl(l_cnt).name := l_favorites_tbl(i).dim5_level_value_name;
3725 end if;
3726 END IF;
3727 -- mdamle 01/15/2001 - Use Dim6 and Dim7
3728 IF (l_favorites_tbl(i).dim6_level_value_id is NOT NULL) THEN
3729 l_dim6_tbl(l_cnt).id := l_favorites_tbl(i).dim6_level_value_id;
3730 l_dim6_tbl(l_cnt).name := l_favorites_tbl(i).dim6_level_value_name;
3731 -- mdamle 01/15/2001 Use Dim6 and Dim7
3732 if l_Org_Seq_Num = 6 then
3733 l_orgs_tbl(l_cnt).id := l_favorites_tbl(i).dim6_level_value_id;
3734 l_orgs_tbl(l_cnt).name := l_favorites_tbl(i).dim6_level_value_name;
3735 end if;
3736 END IF;
3737 IF (l_favorites_tbl(i).dim7_level_value_id is NOT NULL) THEN
3738 l_dim7_tbl(l_cnt).id := l_favorites_tbl(i).dim7_level_value_id;
3739 l_dim7_tbl(l_cnt).name := l_favorites_tbl(i).dim7_level_value_name;
3740 -- mdamle 01/15/2001 Use Dim6 and Dim7
3741 if l_Org_Seq_Num = 7 then
3742 l_orgs_tbl(l_cnt).id := l_favorites_tbl(i).dim7_level_value_id;
3743 l_orgs_tbl(l_cnt).name := l_favorites_tbl(i).dim7_level_value_name;
3744 end if;
3745 END IF;
3746 l_cnt := l_cnt + 1;
3747 END IF;
3748 END LOOP;
3749 END IF; -- if l_favorites_tbl is empty
3750
3751
3752
3753 l_string := l_string ||'<HTML>';
3754
3755 -- *********************************************************
3756 -- Call the procedure that paints the LOV javascript function
3757 BIS_LOV_PUB.editlovjscript(x_string => l_lovstring);
3758
3759 l_string := l_string || l_lovstring;
3760 l_string := l_string ||'<body>';
3761 l_string := l_string || '<LINK HREF="/OA_HTML/bisportal.css" type="text/css" rel="stylesheet">';
3762
3763 l_string := l_string ||'<SCRIPT LANGUAGE="Javascript">';
3764 l_string := l_string ||'function saveRename() {';
3765 l_string := l_string ||' var temp = opener.document.DefaultFormName.C.selectedIndex;';
3766 l_string := l_string ||'var end = opener.document.DefaultFormName.C.length;';
3767 l_string := l_string ||' if (document.editDimensions.label.value == "") {';
3768 l_string := l_string ||' alert ("'||l_enter_displabel||'");';
3769 l_string := l_string ||' document.editDimensions.label.focus();';
3770 l_string := l_string ||' }';
3771 l_string := l_string ||' else {';
3772 l_string := l_string ||' var ind = document.editDimensions.ind.value;';
3773 l_string := l_string ||' var g_var1 = "'||l_d0||'";';
3774
3775 --l_string := l_string ||' // Do some checks before grabbing the dimension level values';
3776 --l_string := l_string ||' // For dimension0';
3777 l_string := l_string ||' if (document.editDimensions.dim0_level_id.value != "") {';
3778 l_string := l_string ||' var d0_tmp = document.editDimensions.dim0.selectedIndex;';
3779 l_string := l_string ||' var d0_end = document.editDimensions.dim0.length;';
3780 l_string := l_string ||' if ((document.editDimensions.dim0[d0_tmp].text == "'||l_blank||'") '||c_OR;
3781 l_string := l_string || ' (document.editDimensions.dim0[d0_tmp].text == "'||c_choose||'")) {';
3782 l_string := l_string ||' d0 = "+";';
3783 l_string := l_string ||' alert("'||l_choose_dim_value||'");';
3784 l_string := l_string ||' document.editDimensions.dim0.focus();';
3785 l_string := l_string ||' return FALSE;';
3786 l_string := l_string ||' }';
3787 l_string := l_string ||' else ';
3788 l_string := l_string ||' var d0 = document.editDimensions.dim0[d0_tmp].value;';
3789 l_string := l_string ||' }';
3790 l_string := l_string ||' else ';
3791 l_string := l_string ||' {d0 = "-";}';
3792
3793
3794 --l_string := l_string ||' // For dimension1';
3795 l_string := l_string ||' if (document.editDimensions.dim1_level_id.value != "") {';
3796 l_string := l_string ||' var d1_tmp = document.editDimensions.dim1.selectedIndex;';
3797 l_string := l_string ||' var d1_end = document.editDimensions.dim1.length;';
3798 --l_string := l_string ||' // mdamle 01/15/2001 - Changed the check |||r to Dim0 check';
3799 --l_string := l_string ||' // if (d1_tmp == 0 '||c_OR||' d1_tmp == d1_end - 1){';
3800 l_string := l_string ||' if ((document.editDimensions.dim1[d1_tmp].text == "'||l_blank||'") '||c_OR;
3801 l_string := l_string ||' (document.editDimensions.dim1[d1_tmp].text == "'||c_choose||'")) {';
3802 l_string := l_string ||' d1 = "+";';
3803 l_string := l_string ||' alert("'||l_choose_dim_value||'");';
3804 l_string := l_string ||' document.editDimensions.dim1.focus();';
3805 l_string := l_string ||' return FALSE;';
3806 l_string := l_string ||' }';
3807 l_string := l_string ||' else ';
3808 l_string := l_string ||' var d1 = document.editDimensions.dim1[d1_tmp].value;';
3809 l_string := l_string ||' }';
3810 l_string := l_string ||' else ';
3811 l_string := l_string ||' {d1 = "-";}';
3812
3813
3814 --l_string := l_string ||' // For dimension2';
3815 l_string := l_string ||' if (document.editDimensions.dim2_level_id.value != "") {';
3816 l_string := l_string ||' var d2_tmp = document.editDimensions.dim2.selectedIndex;';
3817 l_string := l_string ||' var d2_end = document.editDimensions.dim2.length;';
3818 --l_string := l_string ||' // mdamle 02/25/2002 - Changed the check |||r to Dim0 check';
3819 l_string := l_string ||' if ((document.editDimensions.dim2[d2_tmp].text == "'||l_blank||'") '||c_OR;
3820 l_string := l_string ||' (document.editDimensions.dim2[d2_tmp].text == "'||c_choose||'")) {';
3821 l_string := l_string ||' d2 = "+";';
3822 l_string := l_string ||' alert("'||l_choose_dim_value||'");';
3823 l_string := l_string ||' document.editDimensions.dim2.focus();';
3824 l_string := l_string ||' return FALSE;';
3825 l_string := l_string ||' }';
3826 l_string := l_string ||' else ';
3827 l_string := l_string ||' var d2 = document.editDimensions.dim2[d2_tmp].value;';
3828 l_string := l_string ||' }';
3829 l_string := l_string ||' else';
3830 l_string := l_string ||' {d2 = "-";}';
3831
3832
3833 --l_string := l_string ||' // For dimension3';
3834 l_string := l_string ||' if (document.editDimensions.dim3_level_id.value != "") {';
3835 l_string := l_string ||' var d3_tmp = document.editDimensions.dim3.selectedIndex;';
3836 l_string := l_string ||' var d3_end = document.editDimensions.dim3.length;';
3837 --l_string := l_string ||' // mdamle 03/35/3003 - Changed the check |||r to Dim0 check';
3838 --l_string := l_string ||' // if (d3_tmp == 0 '||c_OR||' d3_tmp == d3_end - 3){';
3839 l_string := l_string ||' if ((document.editDimensions.dim3[d3_tmp].text == "'||l_blank||'") '||c_OR;
3840 l_string := l_string ||' (document.editDimensions.dim3[d3_tmp].text == "'||c_choose||'")) {';
3841 l_string := l_string ||' d3 = "+";';
3842 l_string := l_string ||' alert("'||l_choose_dim_value||'");';
3843 l_string := l_string ||' document.editDimensions.dim3.focus();';
3844 l_string := l_string ||' return FALSE;';
3845 l_string := l_string ||' }';
3846 l_string := l_string ||' else ';
3847 l_string := l_string ||' var d3 = document.editDimensions.dim3[d3_tmp].value;';
3848 l_string := l_string ||' }';
3849 l_string := l_string ||' else';
3850 l_string := l_string ||' {d3 = "-";}';
3851
3852
3853 --l_string := l_string ||' // For dimension4';
3854 l_string := l_string ||' if (document.editDimensions.dim4_level_id.value != "") {';
3855 l_string := l_string ||' var d4_tmp = document.editDimensions.dim4.selectedIndex;';
3856 l_string := l_string ||' var d4_end = document.editDimensions.dim4.length;';
3857 --l_string := l_string ||' // mdamle 04/45/4004 - Changed the check |||r to Dim0 check';
3858 --l_string := l_string ||' // if (d4_tmp == 0 '||c_OR||' d4_tmp == d4_end - 4){';
3859 l_string := l_string ||' if ((document.editDimensions.dim4[d4_tmp].text == "'||l_blank||'") '||c_OR;
3860 l_string := l_string ||' (document.editDimensions.dim4[d4_tmp].text == "'||c_choose||'")) {';
3861 l_string := l_string ||' d4 = "+";';
3862 l_string := l_string ||' alert("'||l_choose_dim_value||'");';
3863 l_string := l_string ||' document.editDimensions.dim4.focus();';
3864 l_string := l_string ||' return FALSE;';
3865 l_string := l_string ||' }';
3866 l_string := l_string ||' else';
3867 l_string := l_string ||' var d4 = document.editDimensions.dim4[d4_tmp].value;';
3868 l_string := l_string ||' }';
3869 l_string := l_string ||' else';
3870 l_string := l_string ||' {d4 = "-";}';
3871
3872
3873 --l_string := l_string ||' // For dimension5';
3874 l_string := l_string ||' if (document.editDimensions.dim5_level_id.value != "") {';
3875 l_string := l_string ||' var d5_tmp = document.editDimensions.dim5.selectedIndex;';
3876 l_string := l_string ||' var d5_end = document.editDimensions.dim5.length;';
3877 --l_string := l_string ||' // mdamle 05/55/5005 - Changed the check |||r to Dim0 check';
3878 --l_string := l_string ||' // if (d5_tmp == 0 '||c_OR||' d5_tmp == d5_end - 5){';
3879 l_string := l_string ||' if ((document.editDimensions.dim5[d5_tmp].text == "'||l_blank||'") '||c_OR;
3880 l_string := l_string ||' (document.editDimensions.dim5[d5_tmp].text == "'||c_choose||'")) {';
3881 l_string := l_string ||' d5 = "+";';
3882 l_string := l_string ||' alert("'||l_choose_dim_value||'");';
3883 l_string := l_string ||' document.editDimensions.dim5.focus();';
3884 l_string := l_string ||' return FALSE;';
3885 l_string := l_string ||' }';
3886 l_string := l_string ||' else ';
3887 l_string := l_string ||' var d5 = document.editDimensions.dim5[d5_tmp].value;';
3888 l_string := l_string ||' }';
3889 l_string := l_string ||' else';
3890 l_string := l_string ||' {d5 = "-";}';
3891
3892 --l_string := l_string ||' // mdamle 01/15/2001 - Use Dim6 and Dim7';
3893 ---l_string := l_string ||' // For dimension6';
3894 l_string := l_string ||' if (document.editDimensions.dim6_level_id.value != "") {';
3895 l_string := l_string ||' var d6_tmp = document.editDimensions.dim6.selectedIndex;';
3896 l_string := l_string ||' var d6_end = document.editDimensions.dim6.length;';
3897 --l_string := l_string ||' // mdamle 06/66/6006 - Changed the check |||r to Dim0 check';
3898 --l_string := l_string ||' // if (d6_tmp == 0 '||c_OR||' d6_tmp == d6_end - 6){';
3899 l_string := l_string ||' if ((document.editDimensions.dim6[d6_tmp].text == "'||l_blank||'") '||c_OR;
3900 l_string := l_string ||' (document.editDimensions.dim6[d6_tmp].text == "'||c_choose||'")) {';
3901 l_string := l_string ||' d6 = "+";';
3902 l_string := l_string ||' alert("'||l_choose_dim_value||'");';
3903 l_string := l_string ||' document.editDimensions.dim6.focus();';
3904 l_string := l_string ||' return FALSE;';
3905 l_string := l_string ||' }';
3906 l_string := l_string ||' else';
3907 l_string := l_string ||' var d6 = document.editDimensions.dim6[d6_tmp].value;';
3908 l_string := l_string ||' }';
3909 l_string := l_string ||' else';
3910 l_string := l_string ||' {d6 = "-";}';
3911
3912 --l_string := l_string ||' // mdamle 01/15/2001 - Use Dim6 and Dim7';
3913 --l_string := l_string ||' // For dimension7';
3914 l_string := l_string ||' if (document.editDimensions.dim7_level_id.value != "") {';
3915 l_string := l_string ||' var d7_tmp = document.editDimensions.dim7.selectedIndex;';
3916 l_string := l_string ||' var d7_end = document.editDimensions.dim7.length;';
3917 --l_string := l_string ||' // mdamle 07/77/7007 - Changed the check |||r to Dim0 check';
3918 --l_string := l_string ||' // if (d7_tmp == 0 '||c_OR||' d7_tmp == d7_end - 7){';
3919 l_string := l_string ||' if ((document.editDimensions.dim7[d7_tmp].text == "'||l_blank||'") '||c_OR;
3920 l_string := l_string ||' (document.editDimensions.dim7[d7_tmp].text == "'||c_choose||'")) {';
3921 l_string := l_string ||' d7 = "+";';
3922 l_string := l_string ||' alert("'||l_choose_dim_value||'");';
3923 l_string := l_string ||' document.editDimensions.dim7.focus();';
3924 l_string := l_string ||' return FALSE;';
3925 l_string := l_string ||' }';
3926 l_string := l_string ||' else ';
3927 l_string := l_string ||' var d7 = document.editDimensions.dim7[d7_tmp].value;';
3928 l_string := l_string ||' }';
3929 l_string := l_string ||' else ';
3930 l_string := l_string ||' {d7 = "-";}';
3931
3932 --l_string := l_string ||' // For Plan';
3933 l_string := l_string ||' var plan_tmp = document.editDimensions.plan.selectedIndex;';
3934 l_string := l_string ||' var plan = document.editDimensions.plan[plan_tmp].value;';
3935
3936
3937 l_string := l_string ||' var totext=document.editDimensions.label.value;';
3938
3939 --l_string := l_string ||'// mdamle 01/15/2001 - Use Dim6 and Dim7';
3940 --l_string := l_string ||'// Put Org dimension value in the correct dimension';
3941 l_string := l_string ||'if (document.editDimensions.orgDimension.value == "1")';
3942 l_string := l_string ||' d1 = d0;';
3943 l_string := l_string ||'if (document.editDimensions.orgDimension.value == "2")';
3944 l_string := l_string ||' d2 = d0;';
3945 l_string := l_string ||'if (document.editDimensions.orgDimension.value == "3")';
3946 l_string := l_string ||' d3 = d0;';
3947 l_string := l_string ||'if (document.editDimensions.orgDimension.value == "4")';
3948 l_string := l_string ||' d4 = d0;';
3949 l_string := l_string ||'if (document.editDimensions.orgDimension.value == "5")';
3950 l_string := l_string ||' d5 = d0;';
3951 l_string := l_string ||'if (document.editDimensions.orgDimension.value == "6")';
3952 l_string := l_string ||' d6 = d0;';
3953 l_string := l_string ||'if (document.editDimensions.orgDimension.value == "7")';
3954 l_string := l_string ||' d7 = d0;';
3955
3956 --l_string := l_string ||'// mdamle 01/15/2001 - Add d6 and d7';
3957 l_string := l_string ||' var tovalue= ind + "*" + d0 + "*" + d1 + "*" + d2 + "*" + d3 + "*" + d4 + "*" + d5 + "*" + d6 + "*" + d7 + "*" + plan;';
3958
3959 --l_string := l_string ||' // Now go through the contents of right side box to see if';
3960 --l_string := l_string ||' // this exists already';
3961
3962
3963 --start
3964 l_string := l_string ||' var duplicatedComb = 0;';
3965 l_string := l_string ||' var duplicatedText = 0;';
3966 l_string := l_string ||' for (var i=0;i<end;i++){';
3967 l_string := l_string ||' if (i != temp) {';
3968 l_string := l_string ||' var cval = opener.document.DefaultFormName.C[i].value;';
3969 l_string := l_string ||' if (tovalue == cval.substr(0, cval.length-2)) {';
3970 l_string := l_string ||' duplicatedComb = 1;';
3971 l_string := l_string ||' }';
3972 l_string := l_string ||' if (totext == opener.document.DefaultFormName.C[i].text) {';
3973 l_string := l_string ||' duplicatedText = 1;';
3974 l_string := l_string ||' }';
3975 l_string := l_string ||' }';
3976 l_string := l_string ||' }';
3977 l_string := l_string ||' if (duplicatedComb == 1){';
3978 l_string := l_string ||' alert("'||l_dup_combo||'");';
3979 l_string := l_string ||' } else if (duplicatedText == 1) {';
3980 l_string := l_string ||' alert("'||l_dup_displabel||'");';
3981 --end
3982
3983 l_string := l_string ||' }';
3984 l_string := l_string ||' else {';
3985 l_string := l_string ||' opener.document.DefaultFormName.C.options[temp].text = totext;';
3986 l_string := l_string ||' opener.document.DefaultFormName.C.options[temp].value = tovalue+"*Y";';
3987
3988 l_string := l_string ||' window.close();';
3989 l_string := l_string ||' }';
3990 l_string := l_string ||' }'; -- // to check if editDimensions.value is null or not';
3991 l_string := l_string ||' }';
3992
3993 l_string := l_string ||'function open_new_browser(url,x,y){';
3994 l_string := l_string ||' var attributes = "resizable=yes,scrollbars=yes,toolbar=no,width="+x+",height="+y;';
3995 l_string := l_string ||' var new_browser = window.open(url, "new_browser", attributes);';
3996 l_string := l_string ||' if (new_browser != null) {';
3997 l_string := l_string ||' if (new_browser.opener == null)';
3998 l_string := l_string ||' new_browser.opener = self;';
3999 l_string := l_string ||' new_browser.name = ''editLOVValues'';';
4000 l_string := l_string ||' new_browser.location.href = url;';
4001 l_string := l_string ||' }';
4002 l_string := l_string ||' }';
4003
4004 l_string := l_string ||'function loadName() {';
4005 l_string := l_string ||' var temp=opener.document.DefaultFormName.C.selectedIndex;';
4006 l_string := l_string ||' document.editDimensions.label.value = opener.document.DefaultFormName.C.options[temp].text;';
4007 l_string := l_string ||' }';
4008
4009 -- Get string to clear dim1-5 in case they are related to the org
4010 --
4011 l_elements(1) := 'plan';
4012 l_elements(2) := 'dim0';
4013 l_elements(3) := 'label';
4014
4015
4016
4017 clearSelect
4018 ( p_formName => 'editDimensions'
4019 , p_elementTable => l_elements
4020 , x_clearString => l_clear
4021 );
4022
4023
4024
4025 -- meastmon 06/26/2001 Dont clear other dimensions
4026 l_string := l_string ||'function setdim0() {';
4027 l_string := l_string ||' var end = document.editDimensions.dim0.length;';
4028 l_string := l_string ||' var temp = document.editDimensions.dim0.selectedIndex;';
4029 l_string := l_string ||' if (document.editDimensions.dim0[temp].text == "'||c_choose||'") {';
4030 l_string := l_string ||' var ind = document.editDimensions.ind.value;';
4031 l_string := l_string ||' var dim_lvl_id = document.editDimensions.dim0_level_id.value;';
4032 l_string := l_string ||' var c_qry = "'||l_user_id||c_asterisk||'" + ind + "'||c_asterisk||'" + dim_lvl_id;';
4033 l_string := l_string ||' var c_jsfuncname = "getdim0";';
4034 l_string := l_string ||' document.editDimensions.dim0.selectedIndex = 0;';
4035 l_string := l_string ||' getLOV(''bis_intermediate_lov_pvt.dim_level_values_query''';
4036 l_string := l_string ||' ,c_qry,c_jsfuncname,'||Z||');';
4037 l_string := l_string ||' }';
4038 l_string := l_string ||' }';
4039
4040
4041
4042 SetSetOfBookVar
4043 ( p_user_id => l_user_id
4044 , p_formName => 'editDimensions'
4045 , p_index => 'dim0_index'
4046 , x_sobString => l_sobString
4047 );
4048
4049 l_string := l_string ||'function setdim1() {';
4050 --l_string := l_string ||'// alert("dim0 = "+dim0_id);';
4051 l_string := l_string ||' var end = document.editDimensions.dim1.length;';
4052 l_string := l_string ||' var temp = document.editDimensions.dim1.selectedIndex;';
4053 l_string := l_string ||' if (document.editDimensions.dim1[temp].text == "'||c_choose||'") {';
4054 l_string := l_string ||' var ind = document.editDimensions.ind.value;';
4055 l_string := l_string ||' var dim_lvl_id = document.editDimensions.dim1_level_id.value;';
4056
4057 --l_string := l_string ||' // mdamle 01/15/2001 - Moved conditional code into l_sobString';
4058 l_string := l_string ||' '||l_sobString;
4059
4060 l_string := l_string ||' var c_jsfuncname = "getdim1";';
4061 l_string := l_string ||' document.editDimensions.dim1.selectedIndex = 0;';
4062 l_string := l_string ||' getLOV(''bis_intermediate_lov_pvt.dim_level_values_query'',c_qry,c_jsfuncname,'||Z||');';
4063 l_string := l_string ||' }';
4064 l_string := l_string ||' }';
4065
4066
4067 l_string := l_string ||'function setdim2() {';
4068 --l_string := l_string ||'// alert("dim0 = "+dim0_id);';
4069 l_string := l_string ||' var end = document.editDimensions.dim2.length;';
4070 l_string := l_string ||' var temp = document.editDimensions.dim2.selectedIndex;';
4071 l_string := l_string ||' if (document.editDimensions.dim2[temp].text == "'||c_choose||'") {';
4072 l_string := l_string ||' var ind = document.editDimensions.ind.value;';
4073 l_string := l_string ||' var dim_lvl_id = document.editDimensions.dim2_level_id.value;';
4074
4075 --l_string := l_string ||' // mdamle 01/15/2001 - Moved conditional code into l_sobString';
4076 l_string := l_string ||' '||l_sobString;
4077
4078 l_string := l_string ||' var c_jsfuncname = "getdim2";';
4079 l_string := l_string ||' document.editDimensions.dim2.selectedIndex = 0;';
4080 l_string := l_string ||' getLOV(''bis_intermediate_lov_pvt.dim_level_values_query'',c_qry,c_jsfuncname,'||Z||');';
4081 l_string := l_string ||' }';
4082 l_string := l_string ||' }';
4083
4084
4085 l_string := l_string ||'function setdim3() {';
4086 --l_string := l_string ||'// alert("dim0 = "+dim0_id);';
4087 l_string := l_string ||' var end = document.editDimensions.dim3.length;';
4088 l_string := l_string ||' var temp = document.editDimensions.dim3.selectedIndex;';
4089 l_string := l_string ||' if (document.editDimensions.dim3[temp].text == "'||c_choose||'") {';
4090 l_string := l_string ||' var ind = document.editDimensions.ind.value;';
4091 l_string := l_string ||' var dim_lvl_id = document.editDimensions.dim3_level_id.value;';
4092
4093 --l_string := l_string ||' // mdamle 01/15/2001 - Moved conditional code into l_sobString';
4094 l_string := l_string ||' '||l_sobString;
4095
4096 l_string := l_string ||' var c_jsfuncname = "getdim3";';
4097 l_string := l_string ||' document.editDimensions.dim3.selectedIndex = 0;';
4098 l_string := l_string ||' getLOV(''bis_intermediate_lov_pvt.dim_level_values_query'',c_qry,c_jsfuncname,'||Z||');';
4099 l_string := l_string ||' }';
4100 l_string := l_string ||' }';
4101
4102
4103 l_string := l_string ||'function setdim4() {';
4104 --l_string := l_string ||'// alert("dim0 = "+dim0_id);';
4105 l_string := l_string ||' var end = document.editDimensions.dim4.length;';
4106 l_string := l_string ||' var temp = document.editDimensions.dim4.selectedIndex;';
4107 l_string := l_string ||' if (document.editDimensions.dim4[temp].text == "'||c_choose||'") {';
4108 l_string := l_string ||' var ind = document.editDimensions.ind.value;';
4109 l_string := l_string ||' var dim_lvl_id = document.editDimensions.dim4_level_id.value;';
4110
4111 --l_string := l_string ||' // mdamle 01/15/2001 - Moved conditional code into l_sobString';
4112 l_string := l_string ||' '||l_sobString;
4113
4114 l_string := l_string ||' var c_jsfuncname = "getdim4";';
4115 l_string := l_string ||' document.editDimensions.dim4.selectedIndex = 0;';
4116 l_string := l_string ||' getLOV(''bis_intermediate_lov_pvt.dim_level_values_query'',c_qry,c_jsfuncname,'||Z||');';
4117 l_string := l_string ||' }';
4118 l_string := l_string ||' }';
4119
4120
4121 l_string := l_string ||'function setdim5() {';
4122 --l_string := l_string ||'// alert("dim0 = "+dim0_id);';
4123 l_string := l_string ||' var end = document.editDimensions.dim5.length;';
4124 l_string := l_string ||' var temp = document.editDimensions.dim5.selectedIndex;';
4125 l_string := l_string ||' if (document.editDimensions.dim5[temp].text == "'||c_choose||'") {';
4126 l_string := l_string ||' var ind = document.editDimensions.ind.value;';
4127 l_string := l_string ||' var dim_lvl_id = document.editDimensions.dim5_level_id.value;';
4128
4129 --l_string := l_string ||' // mdamle 01/15/2001 - Moved conditional code into l_sobString';
4130 l_string := l_string ||' '||l_sobString;
4131
4132 l_string := l_string ||' var c_jsfuncname = "getdim5";';
4133 l_string := l_string ||' document.editDimensions.dim5.selectedIndex = 0;';
4134 l_string := l_string ||' getLOV(''bis_intermediate_lov_pvt.dim_level_values_query'',c_qry,c_jsfuncname,'||Z||');';
4135 l_string := l_string ||' }';
4136 l_string := l_string ||' }';
4137
4138
4139 -- mdamle - 01/15/2001 - Use Dim6 and Dim7
4140 l_string := l_string ||'function setdim6() {';
4141 --l_string := l_string ||'// alert("dim0 = "+dim0_id);';
4142 l_string := l_string ||' var end = document.editDimensions.dim6.length;';
4143 l_string := l_string ||' var temp = document.editDimensions.dim6.selectedIndex;';
4144 l_string := l_string ||' if (document.editDimensions.dim6[temp].text == "'||c_choose||'") {';
4145 l_string := l_string ||' var ind = document.editDimensions.ind.value;';
4146 l_string := l_string ||' var dim_lvl_id = document.editDimensions.dim6_level_id.value;';
4147
4148 --l_string := l_string ||' // mdamle 01/15/2001 - Moved conditional code into l_sobString';
4149 l_string := l_string ||' '||l_sobString;
4150
4151 l_string := l_string ||' var c_jsfuncname = "getdim6";';
4152 l_string := l_string ||' document.editDimensions.dim6.selectedIndex = 0;';
4153 l_string := l_string ||' getLOV(''bis_intermediate_lov_pvt.dim_level_values_query'',c_qry,c_jsfuncname,'||Z||');';
4154 l_string := l_string ||' }';
4155 l_string := l_string ||' }';
4156
4157
4158 -- mdamle - 01/15/2001 - Use Dim6 and Dim7
4159 l_string := l_string ||'function setdim7() {';
4160 --l_string := l_string ||'// alert("dim0 = "+dim0_id);';
4161 l_string := l_string ||' var end = document.editDimensions.dim7.length;';
4162 l_string := l_string ||' var temp = document.editDimensions.dim7.selectedIndex;';
4163 l_string := l_string ||' if (document.editDimensions.dim7[temp].text == "'||c_choose||'") {';
4164 l_string := l_string ||' var ind = document.editDimensions.ind.value;';
4165 l_string := l_string ||' var dim_lvl_id = document.editDimensions.dim7_level_id.value;';
4166
4167 --l_string := l_string ||' // mdamle 01/15/2001 - Moved conditional code into l_sobString';
4168 l_string := l_string ||' '||l_sobString;
4169
4170 l_string := l_string ||' var c_jsfuncname = "getdim7";';
4171 l_string := l_string ||' document.editDimensions.dim7.selectedIndex = 0;';
4172 l_string := l_string ||' getLOV(''bis_intermediate_lov_pvt.dim_level_values_query'',c_qry,c_jsfuncname,'||Z||');';
4173 l_string := l_string ||' }';
4174 l_string := l_string ||' }';
4175
4176 l_string := l_string ||'</SCRIPT>';
4177 l_string := l_string ||'<!-- Open form for this window -->';
4178 l_string := l_string ||'</FORM>'; --WORKAROUND
4179 l_string := l_string ||'<FORM ACTION="javascript:saveRename()" METHOD="POST" name="editDimensions">';
4180 l_string := l_string ||'<CENTER>';
4181 l_string := l_string ||'<!-- Open table -->';
4182 l_string := l_string ||'<table border=0 cellspacing=0 cellpadding=0 width=100%>'; -- main
4183 l_string := l_string ||'<INPUT TYPE="hidden" NAME="ind" VALUE="'||l_indlevel_id||'">';
4184 l_string := l_string ||'<!-- Open first row for this table -->';
4185 l_string := l_string ||'<TR>';
4186 l_string := l_string ||'<td align="CENTER">';
4187 l_string := l_string ||'<TABLE >';
4188 l_string := l_string ||'<TR>';
4189 l_string := l_string ||'<TD ALIGN="RIGHT">'||bis_utilities_pvt.escape_html(c_tarlevel) ||'</TD>';
4190 l_string := l_string ||'<TD ALIGN="LEFT"><B>'||bis_utilities_pvt.escape_html(l_indlevel_name)||'</B></TD>';
4191 l_string := l_string ||'</TR>';
4192 l_string := l_string ||'</TABLE>';
4193 l_string := l_string ||'</td>';
4194 l_string := l_string ||'</TR>';
4195
4196 l_string := l_string ||'<!-- Open second row for this table -->';
4197 l_string := l_string ||'<TR>';
4198 l_string := l_string ||'<TD><BR></TD>';
4199 l_string := l_string ||'</TR>';
4200 l_string := l_string ||'<TR>';
4201 l_string := l_string ||'<td align="CENTER">';
4202 l_string := l_string ||'<table border=0 cellspacing=0 cellpadding=0>';
4203 l_string := l_string ||'<!-- Open row containing the string dimensions -->';
4204 l_string := l_string ||'<TR>';
4205
4206 IF(l_swan_enabled)THEN
4207 l_append_string := '<TD ALIGN="LEFT" class="x49" >';
4208 ELSE
4209 l_append_string := '<TD ALIGN="LEFT">';
4210 END IF;
4211
4212 l_string := l_string ||l_append_string||bis_utilities_pvt.escape_html(c_dim_and_plan)||'</TD>';
4213 l_string := l_string ||'</TR>';
4214 l_string := l_string ||'<!-- Open row for wireframe box table -->';
4215 l_string := l_string ||'<TR>';
4216 l_string := l_string ||'<td align="LEFT" valign="TOP">';
4217 l_string := l_string ||'<!-- open table containing wireframe -->';
4218 l_string := l_string ||'<table border=0 cellspacing=0 cellpadding=0>';
4219
4220 l_string := l_string ||'<!-- Top edge of wireframe box -->';
4221 l_string := l_string ||'<TR>';
4222 l_string := l_string ||'<td height=1 class="C_WIRE_FRAME_COLOR" colspan=5><IMG SRC="/OA_MEDIA/FNDINVDT.gif" height=1 width=1></td>';
4223 l_string := l_string ||'</TR>';
4224 l_string := l_string ||'<TR>';
4225 l_string := l_string ||'<!-- Begin left edge of wireframe and left separator -->';
4226 l_string := l_string ||'<td width=1 class="C_WIRE_FRAME_COLOR"><IMG SRC="/OA_MEDIA/FNDINVDT.gif" height=1 width=1></td>';
4227 l_string := l_string ||'<td width=5></td>';
4228
4229 l_string := l_string ||'<!-- Begin cell having embedded table with dimension boxes -->';
4230 l_string := l_string ||'<td align="center" nowrap="yes">';
4231 l_string := l_string ||'<table border=0 cellspacing=0 cellpadding=0>';
4232
4233 l_string := l_string ||'<TR>';
4234 l_string := l_string ||'<td height=5></td>';
4235 l_string := l_string ||'</TR>';
4236
4237 l_string := l_string ||'<!-- Begin one more cell to center dimension boxes inside the wireframe -->';
4238 l_string := l_string ||'<TR>';
4239 l_string := l_string ||'<td align="center" nowrap="yes">';
4240 l_string := l_string ||'<table border=0 cellspacing=0 cellpadding=0>';
4241
4242 -- ****************************************************************
4243 -- Table containing the dimension names,boxes
4244
4245
4246
4247 for c_recs in bisfv_target_levels_cur(l_indlevel_id) LOOP
4248
4249 -- ******************************
4250 -- Dimension0 for Organization
4251
4252 -- meastmon 06/07/2001
4253 l_Time_Seq_Num := getTimeSeqNum(l_indlevel_id);
4254 l_string := l_string ||'<INPUT TYPE="hidden" NAME="timeDimension" VALUE="'||l_Time_Seq_Num||'">';
4255
4256 -- mdamle 01/15/2001 - Use Dim6 and Dim7
4257 -- Get the Dimension No. for Org
4258 l_Org_Seq_Num := getOrgSeqNum(l_indlevel_id);
4259 l_string := l_string ||'<INPUT TYPE="hidden" NAME="orgDimension" VALUE="'||l_Org_Seq_Num||'">';
4260
4261 -- mdamle 01/15/2001 - Use Dim6 and Dim7
4262 if l_Org_Seq_Num = 1 then
4263 l_Org_Level_ID := c_recs.Dimension1_level_id;
4264 l_Org_Level_Short_Name := c_recs.Dimension1_level_Short_name;
4265 l_Org_Level_Name := c_recs.Dimension1_level_Name;
4266 end if;
4267 if l_Org_Seq_Num = 2 then
4268 l_Org_Level_ID := c_recs.Dimension2_level_id;
4269 l_Org_Level_Short_Name := c_recs.Dimension2_level_Short_name;
4270 l_Org_Level_Name := c_recs.Dimension2_level_Name;
4271 end if;
4272 if l_Org_Seq_Num = 3 then
4273 l_Org_Level_ID := c_recs.Dimension3_level_id;
4274 l_Org_Level_Short_Name := c_recs.Dimension3_level_Short_name;
4275 l_Org_Level_Name := c_recs.Dimension3_level_Name;
4276 end if;
4277 if l_Org_Seq_Num = 4 then
4278 l_Org_Level_ID := c_recs.Dimension4_level_id;
4279 l_Org_Level_Short_Name := c_recs.Dimension4_level_Short_name;
4280 l_Org_Level_Name := c_recs.Dimension4_level_Name;
4281 end if;
4282 if l_Org_Seq_Num = 5 then
4283 l_Org_Level_ID := c_recs.Dimension5_level_id;
4284 l_Org_Level_Short_Name := c_recs.Dimension5_level_Short_name;
4285 l_Org_Level_Name := c_recs.Dimension5_level_Name;
4286 end if;
4287 if l_Org_Seq_Num = 6 then
4288 l_Org_Level_ID := c_recs.Dimension6_level_id;
4289 l_Org_Level_Short_Name := c_recs.Dimension6_level_Short_name;
4290 l_Org_Level_Name := c_recs.Dimension6_level_Name;
4291 end if;
4292 if l_Org_Seq_Num = 7 then
4293 l_Org_Level_ID := c_recs.Dimension7_level_id;
4294 l_Org_Level_Short_Name := c_recs.Dimension7_level_Short_name;
4295 l_Org_Level_Name := c_recs.Dimension7_level_Name;
4296 end if;
4297
4298 if (l_Org_Level_ID is NULL) then
4299 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim0_level_id" VALUE="'||l_blank||'">';
4300
4301 -- meastmon 06/07/2001
4302 l_string := l_string ||'<INPUT TYPE="hidden" NAME="set_sob" VALUE="FALSE">';
4303
4304 elsif (l_Org_Level_Short_Name='TOTAL_ORGANIZATIONS') then
4305 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim0_level_id" VALUE="'||l_Org_Level_ID||'">';
4306 -- meastmon 06/07/2001
4307 l_string := l_string ||'<INPUT TYPE="hidden" NAME="set_sob" VALUE="FALSE">';
4308 l_string := l_string ||'<TR>';
4309 l_string := l_string ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(l_Org_Level_Name)||'</TD>';
4310 l_string := l_string ||'<td align="left" nowrap="YES">';
4311 l_string := l_string ||'<SELECT NAME="dim0">';
4312 l_string := l_string ||'<OPTION SELECTED VALUE=-1>'||bis_utilities_pvt.escape_html_input(LOWER(l_Org_Level_Short_Name));
4313 l_string := l_string ||'</SELECT>';
4314 else
4315 -- Print out NOCOPY label and input box for dimension0
4316 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim0_level_id" VALUE="'||l_Org_Level_ID||'">';
4317
4318 -- Set flag to True if we need to pass the related sob info
4319 -- along
4320 --
4321 if (l_Org_Level_Short_Name='SET OF BOOKS') then
4322 l_string := l_string ||'<INPUT TYPE="hidden" NAME="set_sob" VALUE="TRUE">';
4323 else
4324 l_string := l_string ||'<INPUT TYPE="hidden" NAME="set_sob" VALUE="FALSE">';
4325 end if;
4326
4327 l_string := l_string ||'<TR>';
4328 l_string := l_string ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(l_Org_Level_Name)||'</TD>';
4329 l_string := l_string ||'<td align="left">';
4330 l_string := l_string ||'<SELECT NAME="dim0" onchange="setdim0()">';
4331 l_string := l_string ||'<OPTION>';
4332
4333 if (l_d0 <> c_hash) then
4334 -- mdamle 01/15/2001 - Replace c_hash with ' ' icase data was changed
4335 l_d0 := REPLACE(l_d0, c_hash, ' ');
4336 IF (l_Org_Level_Short_Name='SET OF BOOKS') THEN -- 2665526
4337 l_set_of_books_id := l_d0;
4338 ELSE
4339 l_set_of_books_id := NULL;
4340 END IF;
4341 l_dim0_level_value_rec.Dimension_Level_ID := l_Org_Level_ID;
4342 l_dim0_level_value_rec.Dimension_level_Value_ID := l_d0;
4343 -- meastmon 09/17/2001 Org_Id_To_Value does not work for EDW Dimensions
4344 -- Instead use DimensionX_ID_to_Value.
4345 l_dim_level_value_rec_p := l_dim0_level_value_rec;
4346 BIS_DIM_LEVEL_VALUE_PVT.DimensionX_ID_to_Value(
4347 p_api_version => 1.0,
4348 p_Dim_Level_Value_Rec => l_dim_level_value_rec_p,
4349 x_Dim_Level_Value_rec => l_dim0_level_value_rec,
4350 x_Return_Status => l_return_status,
4351 x_error_Tbl => l_error_tbl
4352 );
4353
4354 l_string := l_string ||'<OPTION SELECTED VALUE='||bis_utilities_pvt.escape_html_input(l_dim0_level_value_rec.Dimension_level_Value_ID)||'>'||l_dim0_level_value_rec.Dimension_level_Value_Name;
4355
4356
4357
4358
4359 end if;
4360 if (l_orgs_tbl.COUNT <> 0) THEN
4361 removeDuplicates(p_original_tbl => l_orgs_tbl,
4362 p_value => l_d0,
4363 x_unique_tbl => l_d0_tbl);
4364 for i in 1 ..l_d0_tbl.COUNT LOOP
4365 exit when (l_d0_tbl(i).id is NULL);
4366 l_string := l_string ||'<OPTION VALUE='||bis_utilities_pvt.escape_html_input(l_d0_tbl(i).name)||'>'||bis_utilities_pvt.escape_html_input(l_d0_tbl(i).name);
4367 end loop;
4368 end if;
4369 l_string := l_string ||'<OPTION>'||c_choose;
4370 l_string := l_string ||'</SELECT>';
4371 l_string := l_string ||'</td>';
4372 l_string := l_string ||'</TR>';
4373 end if;
4374
4375 -- ***********************************
4376 -- Dimension1
4377 -- mdamle 01/15/2001 - Use Dim6 and Dim7
4378 -- meastmon 06/07/2001
4379 -- Dont show time dimension level
4380 if (c_recs.Dimension1_Level_ID is NULL) or (l_Org_Seq_Num = 1) or (l_Time_Seq_Num = 1) then
4381 if (l_Org_Seq_Num = 1) or (l_Time_Seq_Num = 1) then
4382 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim1_level_id" VALUE="">';
4383 else
4384 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim1_level_id" VALUE="'||c_recs.Dimension1_Level_ID||'">';
4385 end if;
4386 else
4387 -- Print out NOCOPY label and input box for dimension1
4388 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim1_level_id" VALUE="'||c_recs.Dimension1_Level_ID||'">';
4389 l_string := l_string ||'<TR>';
4390 l_string := l_string ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(c_recs.Dimension1_Level_Name) ||'</TD>';
4391 l_string := l_string ||'<td align="LEFT" nowrap="YES">';
4392 l_string := l_string ||'<SELECT NAME="dim1" onchange="setdim1()">';
4393 l_string := l_string ||'<OPTION>';
4394
4395 if (l_d1 <> c_hash) then
4396 -- mdamle 01/15/2001 - Replace c_hash with ' ' icase data was changed
4397 l_d1 := REPLACE(l_d1, c_hash, ' ');
4398
4399 l_dim1_level_value_rec.Dimension_level_ID:=c_recs.Dimension1_Level_ID;
4400 l_dim1_level_value_rec.Dimension_level_Value_ID := l_d1;
4401 l_dim1_level_value_rec.dimension_Level_short_name := c_recs.dimension1_Level_short_name;
4402 l_dim_level_value_rec_p := l_dim1_level_value_rec;
4403 BIS_DIM_LEVEL_VALUE_PVT.DimensionX_ID_to_Value(
4404 p_api_version => 1.0,
4405 p_Dim_Level_Value_Rec => l_dim_level_value_rec_p,
4406 p_set_of_books_id => l_set_of_books_id,
4407 x_Dim_Level_Value_rec => l_dim1_level_value_rec,
4408 x_Return_Status => l_return_status,
4409 x_error_Tbl => l_error_tbl
4410 );
4411
4412 l_string := l_string ||'<OPTION SELECTED VALUE="'||bis_utilities_pvt.escape_html_input(l_dim1_level_value_rec.Dimension_level_Value_ID)||'">'||bis_utilities_pvt.escape_html_input(l_dim1_level_value_rec.Dimension_level_Value_Name);
4413 end if;
4414
4415 if (l_dim1_tbl.COUNT <> 0) THEN
4416 removeDuplicates(p_original_tbl => l_dim1_tbl,
4417 p_value => l_d1,
4418 x_unique_tbl => l_d1_tbl);
4419 for i in 1 ..l_d1_tbl.COUNT LOOP
4420 exit when (l_d1_tbl(i).id is NULL);
4421 -- mdamle - 01/15/2001 - Add quotes around VALUE
4422 l_string := l_string ||'<OPTION VALUE="'||bis_utilities_pvt.escape_html_input(l_d1_tbl(i).id)||'">'||bis_utilities_pvt.escape_html_input(l_d1_tbl(i).name);
4423 end loop;
4424 end if;
4425 l_string := l_string ||'<OPTION>'||c_choose;
4426 l_string := l_string ||'</SELECT>';
4427 l_string := l_string ||'</td>';
4428 l_string := l_string ||'</TR>';
4429 end if;
4430
4431 -- Dimension2
4432 -- *******************************************
4433 -- mdamle 02/25/2002 - Use Dim6 and Dim7
4434 -- meastmon 06/07/2001
4435 -- Dont show time dimension level
4436
4437
4438
4439 if (c_recs.Dimension2_Level_ID is NULL) or (l_Org_Seq_Num = 2) or (l_Time_Seq_Num = 2) then
4440
4441 if (l_Org_Seq_Num = 2) or (l_Time_Seq_Num = 2) then
4442 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim2_level_id" VALUE="">';
4443 else
4444 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim2_level_id" VALUE="'||c_recs.Dimension2_Level_ID||'">';
4445 end if;
4446 else -- Print out NOCOPY label and input box for dimension2
4447 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim2_level_id" VALUE="'||c_recs.Dimension2_Level_ID||'">';
4448 l_string := l_string ||'<TR>';
4449 l_string := l_string ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(c_recs.Dimension2_Level_Name) ||'</TD>';
4450 l_string := l_string ||'<td align="LEFT" nowrap="YES">';
4451 l_string := l_string ||'<SELECT NAME="dim2" onchange="setdim2()">';
4452 l_string := l_string ||'<OPTION>';
4453
4454 if (l_d2 <> c_hash) then
4455 -- mdamle 01/15/2001 - Replace c_hash with ' ' icase data was changed
4456 l_d2 := REPLACE(l_d2, c_hash, ' ');
4457
4458 l_dim2_level_value_rec.Dimension_level_ID:=c_recs.Dimension2_Level_ID;
4459 l_dim2_level_value_rec.Dimension_level_Value_ID := l_d2;
4460 l_dim2_level_value_rec.dimension_Level_short_name := c_recs.dimension2_Level_short_name;
4461
4462 l_dim_level_value_rec_p := l_dim2_level_value_rec;
4463
4464
4465
4466 BIS_DIM_LEVEL_VALUE_PVT.DimensionX_ID_to_Value(
4467 p_api_version => 1.0,
4468 p_Dim_Level_Value_Rec => l_dim_level_value_rec_p,
4469 p_set_of_books_id => l_set_of_books_id,
4470 x_Dim_Level_Value_rec => l_dim2_level_value_rec,
4471 x_Return_Status => l_return_status,
4472 x_error_Tbl => l_error_tbl
4473 );
4474
4475
4476 l_string := l_string ||'<OPTION SELECTED VALUE="'||bis_utilities_pvt.escape_html_input(l_dim2_level_value_rec.Dimension_level_Value_ID)||'">'||bis_utilities_pvt.escape_html_input(l_dim2_level_value_rec.Dimension_level_Value_Name);
4477 end if;
4478
4479 if (l_dim2_tbl.COUNT <> 0) THEN
4480 removeDuplicates(p_original_tbl => l_dim2_tbl,
4481 p_value => l_d2,
4482 x_unique_tbl => l_d2_tbl);
4483 for i in 1 ..l_d2_tbl.COUNT LOOP
4484 exit when (l_d2_tbl(i).id is NULL);
4485 l_string := l_string ||'<OPTION VALUE="'||bis_utilities_pvt.escape_html_input(l_d2_tbl(i).id)||'">'||bis_utilities_pvt.escape_html_input(l_d2_tbl(i).name);
4486 end loop;
4487 end if;
4488 l_string := l_string ||'<OPTION>'||c_choose;
4489 l_string := l_string ||'</SELECT>';
4490 l_string := l_string ||'</td>';
4491 l_string := l_string ||'</TR>';
4492 end if;
4493
4494 -- Dimension3
4495 -- *****************************************
4496 -- mdamle 03/35/3003 - Use Dim6 and Dim7
4497 -- meastmon 06/07/2001
4498 -- Dont show time dimension level
4499 if (c_recs.Dimension3_Level_ID is NULL) or (l_Org_Seq_Num = 3) or (l_Time_Seq_Num = 3) then
4500 if (l_Org_Seq_Num = 3) or (l_Time_Seq_Num = 3) then
4501 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim3_level_id" VALUE="">';
4502 else
4503 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim3_level_id" VALUE="'||c_recs.Dimension3_Level_ID||'">';
4504 end if;
4505 else -- Print out NOCOPY label and input box for dimension3
4506 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim3_level_id" VALUE="'||c_recs.Dimension3_Level_ID||'">';
4507 l_string := l_string ||'<TR>';
4508 l_string := l_string ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(c_recs.Dimension3_Level_Name) ||'</TD>';
4509 l_string := l_string ||'<td align="LEFT" nowrap="YES">';
4510 l_string := l_string ||'<SELECT NAME="dim3" onchange="setdim3()">';
4511 l_string := l_string ||'<OPTION>';
4512
4513 if (l_d3 <> c_hash) then
4514 -- mdamle 01/15/2001 - Replace c_hash with ' ' icase data was changed
4515 l_d3 := REPLACE(l_d3, c_hash, ' ');
4516
4517 l_dim3_level_value_rec.Dimension_level_ID:=c_recs.Dimension3_Level_ID;
4518 l_dim3_level_value_rec.Dimension_level_Value_ID := l_d3;
4519 l_dim3_level_value_rec.dimension_Level_short_name := c_recs.dimension3_Level_short_name;
4520 l_dim_level_value_rec_p := l_dim3_level_value_rec;
4521 BIS_DIM_LEVEL_VALUE_PVT.DimensionX_ID_to_Value(
4522 p_api_version => 1.0,
4523 p_Dim_Level_Value_Rec => l_dim_level_value_rec_p,
4524 p_set_of_books_id => l_set_of_books_id,
4525 x_Dim_Level_Value_rec => l_dim3_level_value_rec,
4526 x_Return_Status => l_return_status,
4527 x_error_Tbl => l_error_tbl
4528 );
4529
4530 l_string := l_string ||'<OPTION SELECTED VALUE="'||bis_utilities_pvt.escape_html_input(l_dim3_level_value_rec.Dimension_level_Value_ID)||'">'||bis_utilities_pvt.escape_html_input(l_dim3_level_value_rec.Dimension_level_Value_Name);
4531 end if;
4532
4533 if (l_dim3_tbl.COUNT <> 0) THEN
4534 removeDuplicates(p_original_tbl => l_dim3_tbl,
4535 p_value => l_d3,
4536 x_unique_tbl => l_d3_tbl);
4537 for i in 1 ..l_d3_tbl.COUNT LOOP
4538 exit when (l_d3_tbl(i).id is NULL);
4539 -- mdamle - 01/15/2001 - Add quotes around VALUE
4540 l_string := l_string ||'<OPTION VALUE="'||bis_utilities_pvt.escape_html_input(l_d3_tbl(i).id)||'">'||bis_utilities_pvt.escape_html_input(l_d3_tbl(i).name);
4541 end loop;
4542 end if;
4543 l_string := l_string ||'<OPTION>'||c_choose;
4544 l_string := l_string ||'</SELECT>';
4545 l_string := l_string ||'</td>';
4546 l_string := l_string ||'</TR>';
4547 end if;
4548
4549 -- Dimension4
4550 -- ****************************************
4551 -- mdamle 04/45/4004 - Use Dim6 and Dim7
4552 -- meastmon 06/07/2001
4553 -- Dont show time dimension level
4554 if (c_recs.Dimension4_Level_ID is NULL) or (l_Org_Seq_Num = 4) or (l_Time_Seq_Num = 4) then
4555 if (l_Org_Seq_Num = 4) or (l_Time_Seq_Num = 4) then
4556 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim4_level_id" VALUE="">';
4557 else
4558 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim4_level_id" VALUE="'||c_recs.Dimension4_Level_ID||'">';
4559 end if;
4560 else
4561 -- Print out NOCOPY label and input box for dimension4
4562 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim4_level_id" VALUE="'||c_recs.Dimension4_Level_ID||'">';
4563 l_string := l_string ||'<TR>';
4564 l_string := l_string ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(c_recs.Dimension4_Level_Name) ||'</TD>';
4565 l_string := l_string ||'<td align="LEFT" nowrap="YES">';
4566 l_string := l_string ||'<SELECT NAME="dim4" onchange="setdim4()">';
4567 l_string := l_string ||'<OPTION>';
4568
4569 if (l_d4 <> c_hash) then
4570 -- mdamle 01/15/2001 - Replace c_hash with ' ' icase data was changed
4571 l_d4 := REPLACE(l_d4, c_hash, ' ');
4572
4573 l_dim4_level_value_rec.Dimension_level_ID:=c_recs.Dimension4_Level_ID;
4574 l_dim4_level_value_rec.Dimension_level_Value_ID := l_d4;
4575 l_dim4_level_value_rec.dimension_Level_short_name := c_recs.dimension4_Level_short_name;
4576 l_dim_level_value_rec_p := l_dim4_level_value_rec;
4577 BIS_DIM_LEVEL_VALUE_PVT.DimensionX_ID_to_Value(
4578 p_api_version => 1.0,
4579 p_Dim_Level_Value_Rec => l_dim_level_value_rec_p,
4580 p_set_of_books_id => l_set_of_books_id,
4581 x_Dim_Level_Value_rec => l_dim4_level_value_rec,
4582 x_Return_Status => l_return_status,
4583 x_error_Tbl => l_error_tbl
4584 );
4585 l_string := l_string ||'<OPTION SELECTED VALUE="'||bis_utilities_pvt.escape_html_input(l_dim4_level_value_rec.Dimension_level_Value_ID)||'">'||bis_utilities_pvt.escape_html_input(l_dim4_level_value_rec.Dimension_level_Value_Name);
4586 end if;
4587
4588 if (l_dim4_tbl.COUNT <> 0) THEN
4589 removeDuplicates(p_original_tbl => l_dim4_tbl,
4590 p_value => l_d4,
4591 x_unique_tbl => l_d4_tbl);
4592 for i in 1 ..l_d4_tbl.COUNT LOOP
4593 exit when (l_d4_tbl(i).id is NULL);
4594 -- mdamle - 01/15/2001 - Add quotes around VALUE
4595
4596 l_string := l_string ||'<OPTION VALUE="'||bis_utilities_pvt.escape_html_input(l_d4_tbl(i).id)||'">'||bis_utilities_pvt.escape_html_input(l_d4_tbl(i).name);
4597 end loop;
4598 end if;
4599 l_string := l_string ||'<OPTION>'||c_choose;
4600 l_string := l_string ||'</SELECT>';
4601 l_string := l_string ||'</td>';
4602 l_string := l_string ||'</TR>';
4603 end if;
4604
4605
4606
4607 -- Dimension5
4608 -- ***************************************
4609 -- mdamle 05/55/5005 - Use Dim6 and Dim7
4610 -- meastmon 06/07/2001
4611 -- Dont show time dimension level
4612 if (c_recs.Dimension5_Level_ID is NULL) or (l_Org_Seq_Num = 5) or (l_Time_Seq_Num = 5) then
4613 if (l_Org_Seq_Num = 5) or (l_Time_Seq_Num = 5) then
4614 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim5_level_id" VALUE="">';
4615 else
4616 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim5_level_id" VALUE="'||c_recs.Dimension5_Level_ID||'">';
4617 end if;
4618 else
4619 -- Print out NOCOPY label and input box for dimension5
4620 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim5_level_id" VALUE="'||c_recs.Dimension5_Level_ID||'">';
4621 l_string := l_string ||'<TR>';
4622 l_string := l_string ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(c_recs.Dimension5_Level_Name) ||'</TD>';
4623 l_string := l_string ||'<td align="LEFT" nowrap="YES">';
4624 l_string := l_string ||'<SELECT NAME="dim5" onchange="setdim5()">';
4625 l_string := l_string ||'<OPTION>';
4626 if (l_d5 <> c_hash) then
4627 -- mdamle 01/15/2001 - Replace c_hash with ' ' icase data was changed
4628 l_d5 := REPLACE(l_d5, c_hash, ' ');
4629
4630 l_dim5_level_value_rec.Dimension_level_ID:=c_recs.Dimension5_Level_ID;
4631 l_dim5_level_value_rec.Dimension_level_Value_ID := l_d5;
4632 l_dim5_level_value_rec.dimension_Level_short_name := c_recs.dimension5_Level_short_name;
4633 l_dim_level_value_rec_p := l_dim5_level_value_rec;
4634 BIS_DIM_LEVEL_VALUE_PVT.DimensionX_ID_to_Value(
4635 p_api_version => 1.0,
4636 p_Dim_Level_Value_Rec => l_dim_level_value_rec_p,
4637 p_set_of_books_id => l_set_of_books_id,
4638 x_Dim_Level_Value_rec => l_dim5_level_value_rec,
4639 x_Return_Status => l_return_status,
4640 x_error_Tbl => l_error_tbl
4641 );
4642
4643 l_string := l_string ||'<OPTION SELECTED VALUE="'||bis_utilities_pvt.escape_html_input(l_dim5_level_value_rec.Dimension_level_Value_ID)||'">'||bis_utilities_pvt.escape_html_input(l_dim5_level_value_rec.Dimension_level_Value_Name);
4644 end if;
4645
4646 if (l_dim5_tbl.COUNT <> 0) THEN
4647 removeDuplicates(p_original_tbl => l_dim5_tbl,
4648 x_unique_tbl => l_d5_tbl);
4649 for i in 1 ..l_d5_tbl.COUNT LOOP
4650 exit when (l_d5_tbl(i).id is NULL);
4651 -- mdamle - 01/15/2001 - Add quotes around VALUE
4652 l_string := l_string ||'<OPTION VALUE="'||bis_utilities_pvt.escape_html_input(l_d5_tbl(i).id)||'">'||bis_utilities_pvt.escape_html_input(l_d5_tbl(i).name);
4653 end loop;
4654 end if;
4655 l_string := l_string ||'<OPTION>'||c_choose;
4656 l_string := l_string ||'</SELECT>';
4657 l_string := l_string ||'</td>';
4658 l_string := l_string ||'</TR>';
4659 end if;
4660
4661
4662
4663 -- mdamle 01/15/2001 - Use Dim6 and Dim7
4664 -- Dimension6
4665 -- ***************************************
4666 -- mdamle 06/66/6006 - Use Dim6 and Dim7
4667 -- meastmon 06/07/2001
4668 -- Dont show time dimension level
4669
4670
4671
4672 if (c_recs.Dimension6_Level_ID is NULL) or (l_Org_Seq_Num = 6) or (l_Time_Seq_Num = 6) then
4673
4674 if (l_Org_Seq_Num = 6) or (l_Time_Seq_Num = 6) then
4675 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim6_level_id" VALUE="">';
4676 else
4677 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim6_level_id" VALUE="'||c_recs.Dimension6_Level_ID||'">';
4678 end if;
4679 else -- Print out NOCOPY label and input box for dimension6
4680 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim6_level_id" VALUE="'||c_recs.Dimension6_Level_ID||'">';
4681 l_string := l_string ||'<TR>';
4682 l_string := l_string ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(c_recs.Dimension6_Level_Name) ||'</TD>';
4683 l_string := l_string ||'<td align="LEFT" nowrap="YES">';
4684 l_string := l_string ||'<SELECT NAME="dim6" onchange="setdim6()">';
4685 l_string := l_string ||'<OPTION>';
4686
4687 if (l_d6 <> c_hash) then
4688 -- mdamle 01/15/2001 - Replace c_hash with ' ' icase data was changed
4689 l_d6 := REPLACE(l_d6, c_hash, ' ');
4690
4691 l_dim6_level_value_rec.Dimension_level_ID:=c_recs.Dimension6_Level_ID;
4692 l_dim6_level_value_rec.Dimension_level_Value_ID := l_d6;
4693 l_dim6_level_value_rec.dimension_Level_short_name := c_recs.dimension6_Level_short_name;
4694 l_dim_level_value_rec_p := l_dim6_level_value_rec;
4695 BIS_DIM_LEVEL_VALUE_PVT.DimensionX_ID_to_Value(
4696 p_api_version => 1.0,
4697 p_Dim_Level_Value_Rec => l_dim_level_value_rec_p,
4698 p_set_of_books_id => l_set_of_books_id,
4699 x_Dim_Level_Value_rec => l_dim6_level_value_rec,
4700 x_Return_Status => l_return_status,
4701 x_error_Tbl => l_error_tbl
4702 );
4703
4704
4705
4706
4707 l_string := l_string ||'<OPTION SELECTED VALUE="'||bis_utilities_pvt.escape_html_input(l_dim6_level_value_rec.Dimension_level_Value_ID)||'">'||bis_utilities_pvt.escape_html_input(l_dim6_level_value_rec.Dimension_level_Value_Name);
4708 end if;
4709
4710 if (l_dim6_tbl.COUNT <> 0) THEN
4711 removeDuplicates(p_original_tbl => l_dim6_tbl,
4712 x_unique_tbl => l_d6_tbl);
4713 for i in 1 ..l_d6_tbl.COUNT LOOP
4714 exit when (l_d6_tbl(i).id is NULL);
4715 -- mdamle - 01/15/2001 - Add quotes around VALUE
4716 l_string := l_string ||'<OPTION VALUE="'||bis_utilities_pvt.escape_html_input(l_d6_tbl(i).id)||'">'||bis_utilities_pvt.escape_html_input(l_d6_tbl(i).name);
4717 end loop;
4718 end if;
4719 l_string := l_string ||'<OPTION>'||c_choose;
4720 l_string := l_string ||'</SELECT>';
4721 l_string := l_string ||'</td>';
4722 l_string := l_string ||'</TR>';
4723 end if;
4724
4725
4726
4727 -- mdamle 01/15/2001 - Use Dim6 and Dim7
4728 -- Dimension7
4729 -- ***************************************
4730 -- mdamle 07/77/7007 - Use Dim7 and Dim7
4731 -- meastmon 06/07/2001
4732 -- Dont show time dimension level
4733
4734
4735
4736 if (c_recs.Dimension7_Level_ID is NULL) or (l_Org_Seq_Num = 7) or (l_Time_Seq_Num = 7) then
4737
4738 if (l_Org_Seq_Num = 7) or (l_Time_Seq_Num = 7) then
4739 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim7_level_id" VALUE="">';
4740 else
4741 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim7_level_id" VALUE="'||c_recs.Dimension7_Level_ID||'">';
4742 end if;
4743 else -- Print out NOCOPY label and input box for dimension7
4744 l_string := l_string ||'<INPUT TYPE="hidden" NAME="dim7_level_id" VALUE="'||c_recs.Dimension7_Level_ID||'">';
4745 l_string := l_string ||'<TR>';
4746 l_string := l_string ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(c_recs.Dimension7_Level_Name) ||'</TD>';
4747 l_string := l_string ||'<td align="LEFT" nowrap="YES">';
4748 l_string := l_string ||'<SELECT NAME="dim7" onchange="setdim7()">';
4749 l_string := l_string ||'<OPTION>';
4750
4751 if (l_d7 <> c_hash) then
4752 -- mdamle 01/15/2001 - Replace c_hash with ' ' icase data was changed
4753 l_d7 := REPLACE(l_d7, c_hash, ' ');
4754
4755
4756
4757 l_dim7_level_value_rec.Dimension_level_ID:=c_recs.Dimension7_Level_ID;
4758 l_dim7_level_value_rec.Dimension_level_Value_ID := l_d7;
4759 l_dim7_level_value_rec.dimension_Level_short_name := c_recs.dimension7_Level_short_name;
4760 l_dim_level_value_rec_p := l_dim7_level_value_rec;
4761 BIS_DIM_LEVEL_VALUE_PVT.DimensionX_ID_to_Value(
4762 p_api_version => 1.0,
4763 p_Dim_Level_Value_Rec => l_dim_level_value_rec_p,
4764 p_set_of_books_id => l_set_of_books_id,
4765 x_Dim_Level_Value_rec => l_dim7_level_value_rec,
4766 x_Return_Status => l_return_status,
4767 x_error_Tbl => l_error_tbl
4768 );
4769
4770 l_string := l_string ||'<OPTION SELECTED VALUE="'||bis_utilities_pvt.escape_html_input(l_dim7_level_value_rec.Dimension_level_Value_ID)||'">'||bis_utilities_pvt.escape_html_input(l_dim7_level_value_rec.Dimension_level_Value_Name);
4771 end if;
4772
4773 if (l_dim7_tbl.COUNT <> 0) THEN
4774 removeDuplicates(p_original_tbl => l_dim7_tbl,
4775 x_unique_tbl => l_d7_tbl);
4776 for i in 1 ..l_d7_tbl.COUNT LOOP
4777 exit when (l_d7_tbl(i).id is NULL);
4778 -- mdamle - 01/15/2001 - Add quotes around VALUE
4779 l_string := l_string ||'<OPTION VALUE="'||bis_utilities_pvt.escape_html_input(l_d7_tbl(i).id)||'">'||bis_utilities_pvt.escape_html_input(l_d7_tbl(i).name);
4780 end loop;
4781 end if;
4782 l_string := l_string ||'<OPTION>'||c_choose;
4783 l_string := l_string ||'</SELECT>';
4784 l_string := l_string ||'</td>';
4785 l_string := l_string ||'</TR>';
4786 end if;
4787
4788 exit;
4789 end loop; -- end of c_recs looop
4790 -- ***********************************************
4791
4792
4793 -- Have a poplist for the Business Plan
4794 l_string := l_string ||'<!-- Row open for Business Plan poplist -->';
4795 l_string := l_string ||'<TR>';
4796 l_string := l_string ||'<TD ALIGN="RIGHT" class="x8" NOWRAP>'||bis_utilities_pvt.escape_html(c_plan)||'</TD>';
4797 l_string := l_string ||'<td align="left">';
4798 l_string := l_string ||'<SELECT NAME="plan">';
4799
4800
4801
4802
4803 for pl in plan_cur loop
4804 if pl.plan_id = TO_NUMBER(l_plan) then
4805 l_string := l_string ||'<OPTION SELECTED VALUE="'||bis_utilities_pvt.escape_html_input(pl.plan_id) ||'">'||bis_utilities_pvt.escape_html_input(pl.name);
4806 else
4807 l_string := l_string ||'<OPTION VALUE="'||bis_utilities_pvt.escape_html_input(pl.plan_id) ||'">'||bis_utilities_pvt.escape_html_input(pl.name);
4808 end if;
4809 end loop;
4810
4811 l_string := l_string ||'</SELECT>';
4812 l_string := l_string ||'</td>';
4813 l_string := l_string ||'</TR>';
4814 l_string := l_string ||'</TABLE>';
4815 l_string := l_string ||'</td>';
4816 l_string := l_string ||'</TR>';
4817 l_string := l_string ||'<!-- end of row containing one more cell to center poplists -->';
4818 l_string := l_string ||'<!-- row open with horizontal line separator -->';
4819 l_string := l_string ||'<TR>';
4820 l_string := l_string ||'<td height=1 class="C_SEPARATOR_LINE"><IMG SRC="/OA_MEDIA/FNDINVDT.gif" height=1 width=1></td>';
4821 l_string := l_string ||'</TR>';
4822 l_string := l_string ||'<TR>';
4823 l_string := l_string ||'<td height=5></td>';
4824 l_string := l_string ||'</TR>';
4825 l_string := l_string ||'<!-- row open for display label string -->';
4826 l_string := l_string ||'<TR>';
4827 l_string := l_string ||'<td align="left">';
4828 l_string := l_string ||c_displabel;
4829 l_string := l_string ||'</td>';
4830 l_string := l_string ||'</TR>';
4831 l_string := l_string ||'<TR>';
4832 l_string := l_string ||'<td align="left" valign="TOP" nowrap="YES">';
4833 l_string := l_string ||'<INPUT TYPE="label" NAME="label" SIZE="41" MAXLENGTH="40">';
4834 l_string := l_string ||'</td>';
4835 l_string := l_string ||'</TR>';
4836 l_string := l_string ||'<TR>';
4837 l_string := l_string ||'<td height=5></td>';
4838 l_string := l_string ||'</TR>';
4839 l_string := l_string ||'<!-- Close embedded table containing the dim level poplists etc -->';
4840 l_string := l_string ||'</TABLE>';
4841 l_string := l_string ||'</td>'; -- close cell with dim labels and input boxes
4842 l_string := l_string ||'<!-- Put the right side separator and right edge of wire frame box -->';
4843 l_string := l_string ||'<td width=5></td>';
4844 l_string := l_string ||'<td width=1 class="C_WIRE_FRAME_COLOR"><IMG SRC="/OA_MEDIA/FNDINVDT.gif" height=1 width=1></td>';
4845 l_string := l_string ||'</TR>';
4846 l_string := l_string ||'<TR>';
4847 l_string := l_string ||'<!-- Put the bottom edge of wireframe box -->';
4848 l_string := l_string ||'<td height=1 class="C_WIRE_FRAME_COLOR" colspan=5><IMG SRC="/OA_MEDIA/FNDINVDT.gif" height=1 width=1></td>';
4849 l_string := l_string ||'</TR>';
4850
4851 l_string := l_string ||'<!-- close table wireframe box -->';
4852 l_string := l_string ||'</TABLE>';
4853 l_string := l_string ||'</td>';
4854 l_string := l_string ||'</TR>';
4855 l_string := l_string ||'</TABLE>';
4856 l_string := l_string ||'</td>';
4857 l_string := l_string ||'</TR>';
4858 l_string := l_string ||'<TR>';
4859 l_string := l_string ||'<td><BR></td>';
4860 l_string := l_string ||'<!-- Open last row containing the ok and cancel buttons -->';
4861 l_string := l_string ||'<TR>';
4862 l_string := l_string ||'<td align="center" colspan=2>';
4863 l_string := l_string ||'<table width="100%"><tr>';
4864 l_string := l_string ||'<td align="right" width="50%">';
4865
4866 --meastmon ICX Button is not ADA Complaint. ICX is not going to fix that.
4867 --icx_plug_utilities.buttonLeft
4868 -- (BIS_UTILITIES_PVT.getPrompt('BIS_OK'),'javascript:saveRename()');
4869 IF(l_swan_enabled)THEN
4870 l_button_edge:=BIS_UTILITIES_PVT.G_FLAT_EDGE;
4871 ELSE
4872 l_button_edge:=BIS_UTILITIES_PVT.G_ROUND_EDGE;
4873 END IF;
4874
4875 l_button_tbl(1).left_edge := l_button_edge;
4876 l_button_tbl(1).right_edge := BIS_UTILITIES_PVT.G_FLAT_EDGE;
4877 l_button_tbl(1).disabled := FND_API.G_FALSE;
4878 l_button_tbl(1).label := BIS_UTILITIES_PVT.getPrompt('BIS_OK');
4879 l_button_tbl(1).href := 'javascript:saveRename()';
4880 BIS_UTILITIES_PVT.GetButtonString(l_button_tbl, l_button_str);
4881 l_string := l_string ||l_button_str;
4882 l_string := l_string ||'</td><td align="left" width="50%">';
4883
4884 --meastmon ICX Button is not ADA Complaint. ICX is not going to fix that.
4885 --icx_plug_utilities.buttonRight
4886 -- (BIS_UTILITIES_PVT.getPrompt('BIS_CANCEL'),'javascript:window.close()');
4887 l_button_tbl(1).left_edge := BIS_UTILITIES_PVT.G_FLAT_EDGE;
4888 l_button_tbl(1).right_edge := l_button_edge;
4889 l_button_tbl(1).disabled := FND_API.G_FALSE;
4890 l_button_tbl(1).label := BIS_UTILITIES_PVT.getPrompt('BIS_CANCEL');
4891 l_button_tbl(1).href := 'javascript:window.close()';
4892 BIS_UTILITIES_PVT.GetButtonString(l_button_tbl, l_button_str);
4893 l_string := l_string || l_button_str;
4894 l_string := l_string ||'</td></tr></table>';
4895 l_string := l_string ||'</td>';
4896 l_string := l_string ||'<!-- Close last row containing the ok and cancel buttons -->';
4897 l_string := l_string ||'</TR>';
4898 l_string := l_string ||'</TABLE>';
4899 l_string := l_string ||'</CENTER>';
4900 l_string := l_string ||'<!-- close form for this page -->';
4901 l_string := l_string ||'</FORM>';
4902 l_string := l_string ||'<SCRIPT LANGUAGE="JavaScript">loadName();</SCRIPT>';
4903 l_string := l_string ||'</BODY>';
4904 l_string := l_string ||'</HTML>';
4905
4906
4907
4908 --end if; -- icx_validate session
4909 --end if; -- icx_sec.validateSession
4910
4911 x_string := l_string;
4912
4913 exception
4914 when others then
4915 --htp.p(SQLERRM);
4916 x_string := SQLERRM;
4917
4918 end editDimensions;
4919
4920
4921
4922 -- *****************************************************
4923 -- Procedure inserts all the selected values
4924 -- *****************************************************
4925 procedure strDimensions(
4926 W in varchar2 DEFAULT NULL
4927 ,Z in pls_integer
4928 ,p_displaylabels_tbl in Selected_Values_Tbl_Type
4929 ,p_back_url in VARCHAR2
4930 ,p_reference_path in VARCHAR2)
4931
4932 is
4933 l_plug_id pls_integer;
4934 l_line varchar2(32000);
4935 l_line_length pls_integer;
4936 l_point1 pls_integer;
4937 l_point2 pls_integer;
4938 l_point3 pls_integer;
4939 l_point4 pls_integer;
4940 l_point5 pls_integer;
4941 l_point6 pls_integer;
4942 l_point7 pls_integer;
4943 l_point8 pls_integer;
4944 -- mdamle 01/15/2001 - Use Dim6 and Dim7
4945 l_point9 pls_integer;
4946 l_point10 pls_integer;
4947
4948 l_indlevel_id pls_integer;
4949 l_d0 varchar2(32000);
4950 l_d1 varchar2(32000);
4951 l_d2 varchar2(32000);
4952 l_d3 varchar2(32000);
4953 l_d4 varchar2(32000);
4954 l_d5 varchar2(32000);
4955 -- mdamle 01/15/2001 - Use Dim6 and Dim7
4956 l_d6 varchar2(32000);
4957 l_d7 varchar2(32000);
4958
4959 l_plan varchar2(32000);
4960 l_length pls_integer;
4961 l_display_label varchar2(32000);
4962 l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
4963 l_return_status varchar2(32000);
4964 l_indicator_region_values BIS_INDICATOR_REGION_PUB.Indicator_Region_Rec_Type;
4965 l_plan_idnum pls_integer;
4966
4967 begin
4968
4969
4970
4971 -- meastmon 09/07/2001 Fix bug#1980577. Workaround Do not encrypt plug_id
4972 --l_plug_id := icx_call.decrypt2(Z);
4973 l_plug_id := Z;
4974 --if icx_sec.validateSession then
4975 -- if ICX_SEC.validatePlugSession(l_plug_id) then
4976 g_user_id := icx_sec.getID(ICX_SEC.PV_USER_ID, '', icx_sec.g_session_id); --2751984
4977
4978 -- Deleting the old rows of this userid and plugid from the selections table
4979 BIS_INDICATOR_REGION_PUB.Delete_User_Ind_Selections(
4980 p_api_version => 1.0,
4981 p_user_id => g_user_id,
4982 p_plug_id => l_plug_id,
4983 x_return_status => l_return_status,
4984 x_error_Tbl => l_error_tbl);
4985
4986
4987 -- Read the contents of the plsql table of favorite display labels
4988 for i in 1 .. p_displaylabels_tbl.COUNT LOOP
4989 EXIT when p_displaylabels_tbl(i) is NULL;
4990 -- Unpack an item from the Favorites box
4991 -- to obtain individual dim_level_value id's
4992
4993 l_point1 := instr(p_displaylabels_tbl(i),'*',1,1);
4994 l_point2 := instr(p_displaylabels_tbl(i),'*',1,2);
4995 l_point3 := instr(p_displaylabels_tbl(i),'*',1,3);
4996 l_point4 := instr(p_displaylabels_tbl(i),'*',1,4);
4997 l_point5 := instr(p_displaylabels_tbl(i),'*',1,5);
4998 l_point6 := instr(p_displaylabels_tbl(i),'*',1,6);
4999 l_point7 := instr(p_displaylabels_tbl(i),'*',1,7);
5000 l_point8 := instr(p_displaylabels_tbl(i),'*',1,8);
5001 -- mdamle 01/15/2001 - Use Dim6 and Dim7
5002 l_point9 := instr(p_displaylabels_tbl(i),'*',1,9);
5003 l_point10 := instr(p_displaylabels_tbl(i),'*',1,10);
5004
5005 l_indlevel_id := substr(p_displaylabels_tbl(i),1,l_point1-1);
5006
5007 -- mdamle 01/15/2001 - Use Dim6 and Dim7
5008 -- d0 contains the org value for backward compatibility
5009 -- Replace @ with plus (actual data contains plus)
5010
5011 l_d0 := substr(p_displaylabels_tbl(i),l_point1+1,l_point2 - l_point1 - 1);
5012 l_d1 := REPLACE(substr(p_displaylabels_tbl(i),l_point2+1,l_point3 - l_point2 - 1), c_at, c_plus) ;
5013 l_d2 := REPLACE(substr(p_displaylabels_tbl(i),l_point3+1,l_point4 - l_point3 - 1), c_at, c_plus);
5014 l_d3 := REPLACE(substr(p_displaylabels_tbl(i),l_point4+1,l_point5 - l_point4 - 1), c_at, c_plus);
5015 l_d4 := REPLACE(substr(p_displaylabels_tbl(i),l_point5+1,l_point6 - l_point5 - 1), c_at, c_plus);
5016 l_d5 := REPLACE(substr(p_displaylabels_tbl(i),l_point6+1,l_point7 - l_point6 - 1), c_at, c_plus);
5017 l_d6 := REPLACE(substr(p_displaylabels_tbl(i),l_point7+1,l_point8 - l_point7 - 1), c_at, c_plus);
5018 l_d7 := REPLACE(substr(p_displaylabels_tbl(i),l_point8+1,l_point9 - l_point8 - 1), c_at, c_plus);
5019
5020 -- mdamle 01/15/2001 - Use Dim6 and Dim7
5021 -- l_plan := substr(p_displaylabels_tbl(i),l_point7+1,l_point8-l_point7-1);
5022 -- l_display_label := substr(p_displaylabels_tbl(i),l_point8+1);
5023 l_plan := substr(p_displaylabels_tbl(i),l_point9+1,l_point10-l_point9-1);
5024 l_display_label := substr(p_displaylabels_tbl(i),l_point10+1);
5025
5026
5027 --
5028 -- ****************************** Debug stuff ***************
5029 -- htp.p('p_display_label_tbl '||p_displaylabels_tbl(i)||'<BR>');
5030 -- htp.p('<BR>'||l_indlevel_id||'*'||l_d0||'*'||l_d1||'*'||l_d2||'*'
5031 -- ||l_d3||'*'||l_d4||
5032 -- '*'||l_d5||'*'||l_plan||'*'||l_display_label||'<BR>');
5033 -- ***********************************************************
5034
5035 -- Transfer the values to the fields in the record
5036 l_indicator_region_values.USER_ID := g_user_id;
5037 l_indicator_region_values.TARGET_LEVEL_ID := l_indlevel_id;
5038 -- mdamle 01/15/2001 - Don't pass in the Org_level_value_id anymore
5039 -- l_indicator_region_values.ORG_LEVEL_VALUE_id := l_d0;
5040 l_indicator_region_values.LABEL := l_display_label;
5041 l_indicator_region_values.PLUG_ID := l_plug_id;
5042 l_indicator_region_values.DIM1_LEVEL_VALUE_ID := l_d1;
5043 l_indicator_region_values.DIM2_LEVEL_VALUE_ID := l_d2;
5044 l_indicator_region_values.DIM3_LEVEL_VALUE_ID := l_d3;
5045 l_indicator_region_values.DIM4_LEVEL_VALUE_ID := l_d4;
5046 l_indicator_region_values.DIM5_LEVEL_VALUE_ID := l_d5;
5047 -- mdamle 01/15/2001 - Use Dim6 and Dim7
5048 l_indicator_region_values.DIM6_LEVEL_VALUE_ID := l_d6;
5049 l_indicator_region_values.DIM7_LEVEL_VALUE_ID := l_d7;
5050
5051 l_indicator_region_values.PLAN_ID := l_plan;
5052
5053 BIS_INDICATOR_REGION_PUB.Create_User_Ind_Selection(
5054 p_api_version => 1.0,
5055 p_Indicator_Region_Rec => l_indicator_region_values,
5056 x_return_status => l_return_status,
5057 x_error_Tbl => l_error_tbl);
5058
5059 -- ********* Debug stuff ********************
5060 -- htp.p('respid :'||l_resp_id);
5061 -- htp.p('tarid :'||l_tar_id);
5062 -- htp.p('orgid :'||l_org_id);
5063 -- htp.p('disp :'||l_disp);
5064 -- *******************************************
5065
5066 end loop; -- loop for the input plsql table
5067
5068 IF (p_reference_path IS NOT NULL) THEN
5069 UPDATE icx_portlet_customizations
5070 SET caching_key = TO_CHAR(NVL(caching_key, 0) + 1)
5071 WHERE reference_path = p_reference_path;
5072 COMMIT;
5073 END IF;
5074
5075 --icx_plug_utilities.gotoMainMenu; -- Go back to the main page
5076
5077 -- end if; -- icx_validate_session
5078 --end if; -- icx_sec.validateSession
5079 exception
5080 when others then NULL;
5081
5082 end strDimensions;
5083
5084 -- ****************************************************************
5085 -- Removes the duplicates from a plsql table
5086 -- ****************************************************************
5087 procedure removeDuplicates(
5088 p_original_tbl in no_duplicates_tbl_Type
5089 ,p_value in varchar2 default NULL
5090 ,x_unique_tbl out NOCOPY no_duplicates_tbl_Type
5091 )
5092 is
5093 l_temp_tbl no_duplicates_tbl_Type;
5094 l_cnt pls_integer;
5095 l_unique BOOLEAN;
5096
5097 begin
5098 -- Remove the duplicates from the l_selections_tbl
5099 IF p_value is NOT NULL THEN
5100 FOR i in 1 .. p_original_tbl.COUNT LOOP
5101 IF (p_value <> p_original_tbl(i).id) THEN
5102 l_unique := TRUE;
5103 FOR j in 1 .. l_temp_tbl.COUNT LOOP
5104 if p_original_tbl(i).id = l_temp_tbl(j).id then
5105 l_unique := FALSE;
5106 end if;
5107 END LOOP;
5108 if (l_unique) then
5109 l_cnt := l_temp_tbl.COUNT + 1;
5110 l_temp_tbl(l_cnt).id := p_original_tbl(i).id;
5111 l_temp_tbl(l_cnt).name := p_original_tbl(i).name;
5112 end if;
5113 END IF;
5114 END LOOP;
5115 x_unique_tbl := l_temp_tbl; -- Transfer the uniques out NOCOPY
5116 ELSE -- if p_value is null
5117 FOR i in 1 .. p_original_tbl.COUNT LOOP
5118 l_unique := TRUE;
5119 FOR j in 1 .. l_temp_tbl.COUNT LOOP
5120 if p_original_tbl(i).id = l_temp_tbl(j).id then
5121 l_unique := FALSE;
5122 end if;
5123 END LOOP;
5124 if (l_unique) then
5125 l_cnt := l_temp_tbl.COUNT + 1;
5126 l_temp_tbl(l_cnt).id := p_original_tbl(i).id;
5127 l_temp_tbl(l_cnt).name := p_original_tbl(i).name;
5128 end if;
5129 END LOOP;
5130 x_unique_tbl := l_temp_tbl; -- Transfer the uniques out NOCOPY
5131 END IF; -- To check if the extra parameter p_value is null or not
5132
5133 exception
5134 when others then htp.p(SQLERRM);
5135
5136 end removeDuplicates;
5137
5138 PROCEDURE clearSelect(
5139 p_formName IN VARCHAR2
5140 , p_elementTable IN BIS_UTILITIES_PUB.BIS_VARCHAR_TBL
5141 , x_clearString OUT NOCOPY VARCHAR2
5142 )
5143 IS
5144 l_clear VARCHAR2(32000);
5145 l_conditions VARCHAR2(32000);
5146 l_and VARCHAR2(10) := '&&';
5147 BEGIN
5148
5149 FOR i IN 1..p_elementTable.count LOOP
5150 IF i = 1 THEN
5151 l_conditions := '
5152 (document.'||p_formName||'.elements[i].name != document.'
5153 ||p_formName||'.'||p_elementTable(i)||'.name)';
5154 ELSE
5155 l_conditions := l_conditions||'
5156 '||l_and||'
5157 (document.'||p_formName||'.elements[i].name != document.'
5158 ||p_formName||'.'||p_elementTable(i)||'.name)';
5159 END IF;
5160 END LOOP;
5161
5162
5163 l_clear :=
5164 'var k = 0;
5165 var s = new String("select");
5166
5167 for (var i=0; i<document.'||p_formName||'.elements.length; i++) {
5168 var x = document.'||p_formName||'.elements[i].type;
5169 var t = x.substring(0,6);
5170
5171 if (t == s) {
5172 if ('||l_conditions||')
5173 {
5174 for (var j=1;j<document.'||p_formName||'.elements[i].length-1;j++) {
5175 x = document.'||p_formName||'.elements[i].options[j] = null;
5176 }
5177 }
5178 }
5179 }';
5180
5181 x_clearString := l_clear;
5182
5183 EXCEPTION
5184 WHEN OTHERS THEN
5185 htp.p(SQLERRM);
5186
5187 END clearSelect;
5188
5189 PROCEDURE SetSetOfBookVar(
5190 p_user_id IN integer
5191 , p_formName IN VARCHAR2
5192 , p_index IN VARCHAR2
5193 , x_sobString OUT NOCOPY VARCHAR2
5194 )
5195 IS
5196 l_sobString VARCHAR2(32000);
5197 BEGIN
5198
5199 l_sobString :=
5200 ' if (document.'||p_formName||'.set_sob.value == "TRUE")
5201 {
5202
5203 var dim0_level_id = document.'||p_formName||'.dim0_level_id.value;
5204 var dim0_index = document.'||p_formName||'.dim0.selectedIndex;
5205 var dim0_id = document.'||p_formName||'.dim0.options[dim0_index].value;
5206 var dim0_g_var = "BIS_TARGET_PVT.G_SET_OF_BOOK_ID";
5207 var c_qry = "'||p_user_id||c_asterisk||'" + ind + "'||c_asterisk
5208 ||'" + dim_lvl_id + "'||c_asterisk
5209 ||'" + dim0_g_var + "'||c_asterisk
5210 ||'" + dim0_level_id + "'||c_asterisk
5211 ||'" + dim0_id;
5212
5213 }
5214 else
5215 {
5216 var dim0_id="";
5217
5218
5219 var c_qry = "'||p_user_id||c_asterisk||'" + ind + "'||c_asterisk
5220 ||'" + dim_lvl_id + "'||c_asterisk
5221 ||c_asterisk
5222 ||c_asterisk ||'";
5223
5224
5225 }';
5226
5227 x_sobString := l_sobString;
5228
5229 EXCEPTION
5230 WHEN OTHERS THEN
5231 htp.p(SQLERRM);
5232 END SetSetOfBookVar;
5233
5234 -- mdamle 01/12/2001 Get Performance Measure + Dim Level info
5235 function getPerformanceMeasureName(
5236 p_target_level_id IN number
5237 ) return varchar2 IS
5238 l_perf_meas_name bis_indicators_tl.name%TYPE;
5239 Begin
5240 begin
5241 select measure_name || ' (' || DIMENSION1_LEVEL_NAME || decode(DIMENSION2_LEVEL_NAME, '', '', ' - ' || DIMENSION2_LEVEL_NAME)
5242 || decode(DIMENSION3_LEVEL_NAME, '', '', ' - ' || DIMENSION3_LEVEL_NAME) || decode(DIMENSION4_LEVEL_NAME, '', '', ' - ' || DIMENSION4_LEVEL_NAME)
5243 || decode(DIMENSION5_LEVEL_NAME, '', '', ' - ' || DIMENSION5_LEVEL_NAME) || decode(DIMENSION6_LEVEL_NAME, '', '', ' - ' || DIMENSION6_LEVEL_NAME)
5244 || decode(DIMENSION7_LEVEL_NAME, '', '', ' - ' || DIMENSION7_LEVEL_NAME) || ')'
5245 into l_perf_meas_name
5246 from bisfv_target_levels tl
5247 Where tl.target_level_id = p_target_level_id;
5248 exception
5249 when others then
5250 l_perf_meas_name := '';
5251 end;
5252
5253 return l_perf_meas_name;
5254
5255 end getPerformanceMeasureName;
5256
5257 -- mdamle 01/15/2001 - Get the Dimension sequence for the Org dimension
5258 function getOrgSeqNum(
5259 p_target_level_id IN number
5260 ) return number IS
5261 l_OrgSeqNum number;
5262 Begin
5263 begin
5264 SELECT x.sequence_no into l_OrgSeqNum
5265 FROM bis_indicator_dimensions x, bis_dimensions y, bis_target_levels z
5266 WHERE x.dimension_id = y.dimension_id
5267 AND y.short_name like BIS_UTILITIES_PVT.GET_ORG_DIMENSION_NAME_TL(p_target_level_id,NULL)
5268 AND x.indicator_id = z.indicator_id
5269 AND z.target_level_id = p_target_level_id;
5270 exception
5271 when others then
5272 l_OrgSeqNum := 0;
5273 end;
5274
5275 return l_OrgSeqNum;
5276
5277 end getOrgSeqNum;
5278
5279 -- mdamle 01/15/2001 - Get the Dimension sequence for the Time dimension
5280 function getTimeSeqNum(
5281 p_target_level_id IN number
5282 ) return number IS
5283 l_TimeSeqNum number;
5284 Begin
5285 begin
5286 SELECT x.sequence_no into l_TimeSeqNum
5287 FROM bis_indicator_dimensions x, bis_dimensions y, bis_target_levels z
5288 WHERE x.dimension_id = y.dimension_id
5289 AND y.short_name like BIS_UTILITIES_PVT.GET_TIME_DIMENSION_NAME_TL(p_target_level_id,NULL)
5290 AND x.indicator_id = z.indicator_id
5291 AND z.target_level_id = p_target_level_id ;
5292 exception
5293 when others then
5294 l_TimeSeqNum := 0;
5295 end;
5296
5297 return l_TimeSeqNum;
5298
5299 end getTimeSeqNum;
5300
5301 function getOrgLevelID(
5302 p_target_level_id IN number
5303 ) return number IS
5304 l_OrgSeqNum number;
5305 l_OrgLevelValueID number;
5306 l_dimension1_level_id number;
5307 l_dimension2_level_id number;
5308 l_dimension3_level_id number;
5309 l_dimension4_level_id number;
5310 l_dimension5_level_id number;
5311 l_dimension6_level_id number;
5312 l_dimension7_level_id number;
5313 Begin
5314 l_OrgSeqNum := getOrgSeqNum(p_target_level_id);
5315
5316 if l_OrgSeqNum > 0 then
5317 begin
5318 SELECT dimension1_level_id, dimension2_level_id, dimension3_level_id,
5319 dimension1_level_id, dimension5_level_id, dimension6_level_id,
5320 dimension7_level_id
5321 INTO l_dimension1_level_id, l_dimension2_level_id, l_dimension3_level_id,
5322 l_dimension4_level_id, l_dimension5_level_id, l_dimension6_level_id,
5323 l_dimension7_level_id
5324 FROM BIS_TARGET_LEVELS
5325 WHERE target_level_id = p_target_level_id;
5326 exception
5327 when others then
5328 l_OrgLevelValueID := null;
5329 end;
5330 if l_OrgLevelValueID is not null then
5331 if l_OrgSeqNum = 1 then
5332 l_OrgLevelValueID := l_dimension1_level_id;
5333 end if;
5334 if l_OrgSeqNum = 2 then
5335 l_OrgLevelValueID := l_dimension2_level_id;
5336 end if;
5337 if l_OrgSeqNum = 3 then
5338 l_OrgLevelValueID := l_dimension3_level_id;
5339 end if;
5340 if l_OrgSeqNum = 4 then
5341 l_OrgLevelValueID := l_dimension4_level_id;
5342 end if;
5343 if l_OrgSeqNum = 5 then
5344 l_OrgLevelValueID := l_dimension5_level_id;
5345 end if;
5346 if l_OrgSeqNum = 6 then
5347 l_OrgLevelValueID := l_dimension6_level_id;
5348 end if;
5349 if l_OrgSeqNum = 7 then
5350 l_OrgLevelValueID := l_dimension7_level_id;
5351 end if;
5352 end if;
5353 end if;
5354 return l_OrgLevelValueID;
5355
5356 end getOrgLevelID;
5357
5358 -- sbuenits 02/16/2001
5359 PROCEDURE pmr_content (
5360 p_target_level_id IN NUMBER,
5361 p_org_level_value IN VARCHAR2,
5362 p_dimension1_level_value IN VARCHAR2,
5363 p_dimension2_level_value IN VARCHAR2,
5364 p_dimension3_level_value IN VARCHAR2,
5365 p_dimension4_level_value IN VARCHAR2,
5366 p_dimension5_level_value IN VARCHAR2,
5367 p_dimension6_level_value IN VARCHAR2,
5368 p_dimension7_level_value IN VARCHAR2,
5369 p_plan_id IN NUMBER,
5370 actual_id OUT NOCOPY NUMBER,
5371 actual OUT NOCOPY NUMBER,
5372 target_id OUT NOCOPY NUMBER,
5373 target OUT NOCOPY NUMBER,
5374 range1_high OUT NOCOPY NUMBER,
5375 range1_low OUT NOCOPY NUMBER,
5376 range2_high OUT NOCOPY NUMBER,
5377 range2_low OUT NOCOPY NUMBER,
5378 role1_id OUT NOCOPY NUMBER,
5379 role2_id OUT NOCOPY NUMBER,
5380 time_level_value_id OUT NOCOPY VARCHAR2,
5381 status OUT NOCOPY VARCHAR2,
5382 is_in_range OUT NOCOPY VARCHAR2
5383 )
5384 IS
5385 dummy PLS_INTEGER;
5386 return_status VARCHAR2(255);
5387 token VARCHAR2(1) := '';
5388 rec_bis_target bis_target_pub.target_rec_type;
5389
5390 CURSOR cur_notimelvl (p_tarid IN PLS_INTEGER)
5391 IS
5392 SELECT tlv.target_level_id
5393 FROM bisbv_target_levels tlv, bis_levels blv
5394 WHERE tlv.target_level_id = p_tarid
5395 AND (
5396 tlv.dimension1_level_id = blv.level_id
5397 OR tlv.dimension2_level_id = blv.level_id
5398 OR tlv.dimension3_level_id = blv.level_id
5399 OR tlv.dimension4_level_id = blv.level_id
5400 OR tlv.dimension5_level_id = blv.level_id
5401 OR tlv.dimension6_level_id = blv.level_id
5402 OR tlv.dimension7_level_id = blv.level_id
5403 )
5404 AND blv.short_name = 'TOTAL_TIME';
5405
5406 CURSOR cur_actual
5407 IS
5408 SELECT actual_id,
5409 actual_value
5410 FROM bisbv_actuals acts
5411 WHERE acts.target_level_id = p_target_level_id
5412 AND NVL (acts.dimension1_level_value, '1') =
5413 NVL (p_dimension1_level_value, '1')
5414 AND NVL (acts.dimension2_level_value, '1') =
5415 NVL (p_dimension2_level_value, '1')
5416 AND NVL (acts.dimension3_level_value, '1') =
5417 NVL (p_dimension3_level_value, '1')
5418 AND NVL (acts.dimension4_level_value, '1') =
5419 NVL (p_dimension4_level_value, '1')
5420 AND NVL (acts.dimension5_level_value, '1') =
5421 NVL (p_dimension5_level_value, '1')
5422 AND NVL (acts.dimension6_level_value, '1') =
5423 NVL (p_dimension6_level_value, '1')
5424 AND NVL (acts.dimension7_level_value, '1') =
5425 NVL (p_dimension7_level_value, '1');
5426
5427 rec_actual cur_actual%ROWTYPE;
5428
5429 CURSOR cur_target
5430 IS
5431 SELECT target,
5432 target_id,
5433 NVL (range1_low, 0) range1_low,
5434 NVL (range1_high, 0) range1_high,
5435 range2_low,
5436 range2_high,
5437 range3_low,
5438 range3_high,
5439 notify_resp1_id,
5440 notify_resp2_id,
5441 notify_resp3_id
5442 FROM bisbv_targets tars
5443 WHERE tars.target_level_id = p_target_level_id
5444 AND tars.plan_id = p_plan_id
5445 AND NVL (tars.dim1_level_value_id, '1') =
5446 NVL (p_dimension1_level_value, '1')
5447 AND NVL (tars.dim2_level_value_id, '1') =
5448 NVL (p_dimension2_level_value, '1')
5449 AND NVL (tars.dim3_level_value_id, '1') =
5450 NVL (p_dimension3_level_value, '1')
5451 AND NVL (tars.dim4_level_value_id, '1') =
5452 NVL (p_dimension4_level_value, '1')
5453 AND NVL (tars.dim5_level_value_id, '1') =
5454 NVL (p_dimension5_level_value, '1')
5455 AND NVL (tars.dim6_level_value_id, '1') =
5456 NVL (p_dimension6_level_value, '1')
5457 AND NVL (tars.dim7_level_value_id, '1') =
5458 NVL (p_dimension7_level_value, '1');
5459
5460 rec_target cur_target%ROWTYPE;
5461
5462 CURSOR cur_compute_tar
5463 IS
5464 SELECT computing_function_id
5465 FROM bisbv_target_levels
5466 WHERE target_level_id = p_target_level_id;
5467
5468 rec_compute_tar cur_compute_tar%ROWTYPE;
5469 BEGIN
5470 OPEN cur_notimelvl (p_target_level_id);
5471 FETCH cur_notimelvl INTO dummy;
5472
5473 IF cur_notimelvl%FOUND
5474 THEN
5475 -- This Target Level id refers to Total Time and so just check
5476 -- the range(timelevel is -1) and no need to worry about the
5477 -- current period
5478 rec_bis_target.time_level_value_id := '-1';
5479 end if;
5480
5481 CLOSE cur_notimelvl;
5482
5483
5484 OPEN cur_target;
5485 FETCH cur_target INTO rec_target;
5486
5487 IF cur_target%FOUND
5488 THEN
5489 IF rec_target.target IS NULL
5490 THEN
5491 OPEN cur_compute_tar;
5492 FETCH cur_compute_tar INTO rec_compute_tar;
5493 CLOSE cur_compute_tar;
5494 -- exception handling required for invocation below
5495 rec_bis_target.target_level_id := p_target_level_id;
5496 rec_bis_target.plan_id := p_plan_id;
5497 rec_bis_target.org_level_value_id := p_org_level_value;
5498 rec_bis_target.dim1_level_value_id := p_dimension1_level_value;
5499 rec_bis_target.dim2_level_value_id := p_dimension2_level_value;
5500 rec_bis_target.dim3_level_value_id := p_dimension3_level_value;
5501 rec_bis_target.dim4_level_value_id := p_dimension4_level_value;
5502 rec_bis_target.dim5_level_value_id := p_dimension5_level_value;
5503 rec_bis_target.dim6_level_value_id := p_dimension6_level_value;
5504 rec_bis_target.dim7_level_value_id := p_dimension7_level_value;
5505
5506 BEGIN
5507 rec_target.target :=
5508 NVL (
5509 bis_target_pvt.get_target (
5510 rec_compute_tar.computing_function_id,
5511 rec_bis_target
5512 ),
5513 0
5514 );
5515 EXCEPTION
5516 WHEN OTHERS
5517 THEN
5518 -- DBMS_OUTPUT.put_line (
5519 -- 'Error ' || TO_CHAR (SQLCODE) || ': ' || SQLERRM
5520 -- );
5521 -- RAISE;
5522 NULL;
5523 END;
5524 END IF; --end if target is null
5525
5526 CLOSE cur_target;
5527
5528 OPEN cur_actual;
5529 FETCH cur_actual INTO rec_actual;
5530
5531 IF cur_actual%FOUND
5532 THEN
5533
5534 IF (rec_actual.actual_value <
5535 rec_target.target * (1 - 0.01 * rec_target.range1_low))
5536 OR (rec_actual.actual_value >
5537 rec_target.target * (1 + 0.01 * rec_target.range1_high))
5538 THEN
5539 token := '*';
5540 END IF; -- end comparison
5541
5542 END IF; -- end cur_actual%FOUND
5543 CLOSE cur_actual;
5544
5545 END IF; --end cur_target%FOUND
5546
5547
5548
5549 actual_id := rec_actual.actual_id;
5550 actual := rec_actual.actual_value;
5551 target_id := rec_target.target_id;
5552 target := rec_target.target;
5553 range1_high := rec_target.range1_high;
5554 range1_low := rec_target.range1_low;
5555 range2_high := rec_target.range2_high;
5556 range2_low := rec_target.range2_low;
5557 role1_id := rec_target.notify_resp1_id;
5558 role2_id := rec_target.notify_resp2_id;
5559 time_level_value_id := rec_bis_target.time_level_value_id;
5560 is_in_range := token;
5561 END pmr_content;
5562
5563 function region_content (
5564 p_target_level_id IN NUMBER,
5565 p_org_level_value IN VARCHAR2,
5566 p_dimension1_level_value IN VARCHAR2,
5567 p_dimension2_level_value IN VARCHAR2,
5568 p_dimension3_level_value IN VARCHAR2,
5569 p_dimension4_level_value IN VARCHAR2,
5570 p_dimension5_level_value IN VARCHAR2,
5571 p_dimension6_level_value IN VARCHAR2,
5572 p_dimension7_level_value IN VARCHAR2,
5573 p_plan_id IN NUMBER,
5574 separator IN VARCHAR2
5575 ) return VARCHAR2
5576 is
5577
5578 x_actual_id NUMBER := 0;
5579 x_actual NUMBER := 0;
5580 x_target_id NUMBER := 0;
5581 x_target NUMBER := 0;
5582 x_range1_high NUMBER := 0;
5583 x_range1_low NUMBER := 0;
5584 x_range2_high NUMBER := 0;
5585 x_range2_low NUMBER := 0;
5586 x_role1_id NUMBER := 0;
5587 x_role2_id NUMBER := 0;
5588 x_time_level_value_id VARCHAR2(250) := '';
5589 x_status VARCHAR2(255) := '';
5590 x_is_in_range VARCHAR2(1) := '';
5591
5592 begin
5593
5594 pmr_content(p_target_level_id, p_org_level_value, p_dimension1_level_value
5595 ,p_dimension2_level_value, p_dimension3_level_value,
5596 p_dimension4_level_value,
5597 p_dimension5_level_value,
5598 p_dimension6_level_value,
5599 p_dimension7_level_value,
5600 p_plan_id ,
5601 x_actual_id ,
5602 x_actual ,
5603 x_target_id,
5604 x_target,
5605 x_range1_high,
5606 x_range1_low,
5607 x_range2_high,
5608 x_range2_low,
5609 x_role1_id,
5610 x_role2_id,
5611 x_time_level_value_id,
5612 x_status,
5613 x_is_in_range);
5614
5615 return x_is_in_range ||NVL(x_actual,0) ||separator|| x_target_id;
5616 end region_content;
5617
5618 -- ******************************************************************
5619 --rmohanty
5620 PROCEDURE build_html_banner ------------------ VERSION 1 (definition of)
5621 ( title IN VARCHAR2,
5622 help_target IN VARCHAR2
5623 )
5624 is
5625 nls_language_code varchar2(2000);
5626 icx_report_images varchar2(2000);
5627 HTML_banner varchar2(32000);
5628 begin
5629 nls_language_code := Get_NLS_Language;
5630 icx_report_images := Get_Images_Server;
5631
5632 --- --- --- This part used to call the ICX banner builder.
5633 --- icx_plug_utilities.toolbar(
5634 --- p_text => title
5635 --- , p_disp_help => 'Y'
5636 --- , p_disp_exit => 'Y'
5637 --- );
5638 --- --- ---
5639 Build_HTML_Banner (icx_report_images -------------- VERSION 5 (call to)
5640 , help_target
5641 , nls_language_code
5642 , title
5643 , ''
5644 , FALSE
5645 , FALSE
5646 , HTML_Banner
5647 );
5648 htp.p(HTML_Banner);
5649
5650 end Build_HTML_Banner;
5651
5652 PROCEDURE build_html_banner ------------- VERSION 2 (definition of)
5653 ( rdf_filename IN VARCHAR2,
5654 title IN VARCHAR2,
5655 menu_link IN VARCHAR2,
5656 HTML_Banner OUT NOCOPY VARCHAR2
5657 )
5658 is
5659 begin
5660 Build_HTML_Banner( rdf_filename ----------------- VERSION 4 (call to)
5661 , title
5662 , menu_link
5663 , FALSE
5664 , FALSE
5665 , HTML_Banner
5666 );
5667 end Build_HTML_Banner;
5668
5669 PROCEDURE Build_HTML_Banner
5670 (icx_report_images IN VARCHAR2, ------- VERSION 3 (defintion of)
5671 more_info_directory IN VARCHAR2,
5672 nls_language_code IN VARCHAR2,
5673 title IN VARCHAR2,
5674 menu_link IN VARCHAR2,
5675 HTML_Banner OUT NOCOPY VARCHAR2)
5676 is
5677 begin
5678
5679 Build_HTML_Banner( icx_report_images ------ VERSION 5 (call to)
5680 , more_info_directory
5681 , nls_language_code
5682 , title
5683 , menu_link
5684 , FALSE
5685 , FALSE
5686 , HTML_Banner
5687 );
5688
5689 end Build_HTML_Banner;
5690
5691 PROCEDURE build_html_banner -------- VERSION 4 (definition of)
5692 ( rdf_filename IN VARCHAR2,
5693 title IN VARCHAR2,
5694 menu_link IN VARCHAR2,
5695 related_reports_exist IN BOOLEAN,
5696 parameter_page IN BOOLEAN,
5697 HTML_Banner OUT NOCOPY VARCHAR2
5698 )
5699 is
5700 icx_report_images varchar2(2000);
5701 more_info_directory varchar2(2000);
5702 nls_language_code varchar2(2000);
5703 begin
5704
5705 icx_report_images := Get_Images_Server;
5706 nls_language_code := Get_NLS_Language;
5707
5708 Build_HTML_Banner( icx_report_images ------------ VERSION 5 (call to)
5709 , rdf_filename
5710 , nls_language_code
5711 , title
5712 , menu_link
5713 , related_reports_exist
5714 , parameter_page
5715 , HTML_Banner
5716 );
5717
5718 end Build_HTML_Banner;
5719
5720 PROCEDURE build_html_banner ------------ VERSION 5 (definition of)
5721 (icx_report_images IN VARCHAR2,
5722 more_info_directory IN VARCHAR2,
5723 nls_language_code IN VARCHAR2,
5724 title IN VARCHAR2,
5725 menu_link IN VARCHAR2,
5726 related_reports_exist IN BOOLEAN,
5727 parameter_page IN BOOLEAN,
5728 HTML_Banner OUT NOCOPY VARCHAR2
5729 )
5730
5731 IS
5732 Related_Alt VARCHAR2(80);
5733 Menu_Alt VARCHAR2(80);
5734 Home_Alt VARCHAR2(80);
5735 Help_Alt VARCHAR2(80);
5736
5737 Return_Alt VARCHAR2(1000);
5738 Parameters_Alt VARCHAR2(1000);
5739 NewMenu_Alt VARCHAR2(80);
5740 NewHelp_Alt VARCHAR2(80);
5741 Return_Description VARCHAR2(1000);
5742 Parameters_Description VARCHAR2(1000);
5743 NewMenu_Description VARCHAR2(80);
5744 NewHelp_Description VARCHAR2(80);
5745
5746 Related_Description VARCHAR2(80);
5747 Home_Description VARCHAR2(80);
5748 Menu_Description VARCHAR2(80);
5749 Help_Description VARCHAR2(80);
5750 Image_Directory VARCHAR2(250);
5751 Home_page VARCHAR2(2000);
5752 Menu_Padding NUMBER(5);
5753 Home_URL VARCHAR2(200);
5754 Plsql_Agent VARCHAR2(100);
5755 Host_File VARCHAR2(80);
5756 l_profile VARCHAR2(2000);
5757 l_section_header VARCHAR2(1000);
5758
5759 l_css VARCHAR2(1000);
5760 CSSDirectory VARCHAR2(1000);
5761 l_HTML_HEADER VARCHAR2(2000);
5762 l_HTML_body VARCHAR2(2000);
5763 l_ampersand VARCHAR2(20):=' ';
5764
5765 Parampage_Alt VARCHAR2(32000);
5766 Parampage_Description VARCHAR2(32000);
5767 BEGIN
5768
5769 Get_Translated_Icon_Text ('RELATED', Related_Alt, Related_Description);
5770 Get_Translated_Icon_Text ('MENU', Menu_Alt, Menu_Description);
5771 Get_Translated_Icon_Text ('HOME', Home_Alt, Home_Description);
5772 Get_Translated_Icon_Text ('HELP', Help_Alt, Help_Description);
5773 Get_Translated_Icon_Text ('PARAMPAGE', Parampage_Alt, Parampage_Description);
5774
5775 Get_Translated_Icon_Text ('RETURNTOPORTAL', Return_Alt, Return_Description);
5776 Get_Translated_Icon_Text ('PARAMETERS', Parameters_Alt, Parameters_Description);
5777 Get_Translated_Icon_Text ('NEWHELP', NewHelp_Alt, NewHelp_Description);
5778 Get_Translated_Icon_Text ('NEWMENU', NewMenu_Alt, NewMenu_Description);
5779
5780 -- mdamle 05/31/2001 - New ICX Profile for OA_HTML, OA_MEDIA
5781 -- l_css := FND_PROFILE.value('ICX_OA_HTML');
5782 --added '/' here , otherwise the style sheet was not getting picked
5783 -- CSSDirectory := '/' || FND_WEB_CONFIG.TRAIL_SLASH(l_css);
5784 CSSDirectory :=BIS_REPORT_UTIL_PVT.get_html_server;
5785
5786 -- mdamle 05/31/2001 - New ICX Profile for OA_HTML, OA_MEDIA
5787 -- Image_Directory := FND_WEB_CONFIG.TRAIL_SLASH(ICX_REPORT_IMAGES);
5788 Image_Directory := BIS_REPORT_UTIL_PVT.get_Images_Server;
5789
5790 Home_URL := BIS_REPORT_UTIL_PVT.Get_Home_URL;
5791 l_section_header := FND_MESSAGE.GET_STRING('BIS','BIS_SPECIFY_PARAMS');
5792
5793 l_HTML_Header :=
5794 '<head>
5795 <!- Banner by BISVRUTB.pls V 5 ->
5796 <title>' || bis_utilities_pvt.escape_html(title) || '</title>
5797 <LINK REL="stylesheet" HREF="'
5798 ||CSSDirectory
5799 ||'bismarli.css">
5800 <SCRIPT LANGUAGE="JavaScript">'
5801 ||
5802 icx_admin_sig.help_win_syntax(
5803 more_info_directory
5804 , NULL
5805 , 'BIS')
5806 ||
5807 '
5808 </SCRIPT>
5809 </HEAD>
5810 ';
5811
5812 l_HTML_Body := '<body bgColor="#ffffff" link="#663300" vlink="#996633" alink="#FF6600" text="#000000">';
5813
5814 HTML_Banner := l_HTML_Header||l_HTML_Body ;
5815
5816
5817 IF (Parameter_Page) THEN
5818 HTML_Banner := HTML_Banner ||
5819 '<form method=post action="_action_">
5820 <input name="hidden_run_parameters" type=hidden value="_hidden_">
5821 <CENTEnR><P>
5822 ';
5823 END IF;
5824
5825 HTML_Banner := HTML_Banner ||
5826 '<!- Banner V 5 part 2 ->
5827 <table border=0 cellspacing=0 cellpadding=0 width=100%>
5828 <tr><td rowspan=2 valign=bottom width=371>
5829 <table border=0 cellspacing=0 cellpadding=0 width=100%>
5830 <tr align=left><td height=30><img src=' || Image_Directory || 'bisorcl.gif border=no height=23
5831 width=141></a></td>
5832 <tr align=left> <td valign=bottom><img src=' || Image_Directory || 'biscollg.gif border=no></a></td></td></tr>
5833 </table>
5834 </td>';
5835
5836 IF (NOT Parameter_page) AND (Related_Reports_Exist)
5837 THEN
5838 menu_padding := 1050;
5839 ELSE
5840 menu_padding := 1000;
5841 END IF;
5842
5843 IF (NOT Parameter_Page) AND (Related_Reports_Exist) THEN
5844 Menu_Padding := 50;
5845 ELSE
5846 Menu_Padding := 1000;
5847 END IF;
5848
5849 IF (NOT Parameter_Page) THEN
5850 Menu_Padding := 50;
5851 ELSE
5852 Menu_Padding := 1000;
5853 END IF;
5854
5855 IF (NOT Parameter_Page)
5856 AND (Related_Reports_Exist)
5857 Then menu_padding := 50;
5858 END IF;
5859
5860 -- MENU
5861
5862 HTML_Banner := HTML_Banner ||
5863 '<td colspan=2 rowspan=2 valign=bottom align=right>
5864 <table border=0 cellpadding=0 align=right cellspacing=4>
5865 <tr valign=bottom>
5866 <td width=60 align=center><a href='||menu_link||'Oraclemypage.home onMouseOver="window.status=''' || ICX_UTIL.replace_onMouseOver_quotes(return_description) || '''; return true">
5867 <img alt='||ICX_UTIL.replace_alt_quotes(Return_Alt)||' src='||Image_Directory||'bisrtrnp.gif width=32 border=0 height=32></a></td>
5868
5869 </tr>
5870 <tr align=center valign=top>
5871 <td width=60><a href='||menu_link||'Oraclemypage.home onMouseOver="window.status=''' || ICX_UTIL.replace_onMouseOver_quotes(return_description) || '''; return true">
5872 <span class="OraGlobalButtonText">'||return_description||'</span></a></td>
5873
5874 </tr></table>
5875 </td>
5876 </tr></table>
5877 </table>';
5878
5879 HTML_Banner := HTML_Banner ||
5880 '<table Border=0 cellpadding=0 cellspacing=0 width=100%>
5881 <tbody>
5882 <tr><td bgcolor=#ffffff colspan=3 height=1><img height=1 src='||Image_Directory||'bisspace.gif width=1></td>
5883 </tr>
5884 <tr>
5885 <td bgcolor=#31659c colspan=2 height=21><img border=0 height=21 src='||Image_Directory||'bisspace.gif width=1></td>
5886 <td bgcolor=#31659c height=21><font face="Arial, Helvetica, sans-serif" size="4" color="#ffffff">'||l_ampersand||'</font></td>
5887 <td background='||Image_Directory||'bisrhshd.gif height=21 width=5><img border=0 height=1
5888 src='||Image_Directory||'bisspace.gif width=1></td>
5889 </tr>
5890 <tr>
5891 <td bgcolor=#31659c height=16 width=9><img border=0 height=1 src='||Image_Directory||'bisspace.gif width=9></td>
5892 <td bgcolor=#31659c height=16 width=5><img border=0 height=1 src='||Image_Directory||'bisspace.gif width=5></td>
5893 <td background='||Image_Directory||'bisbot.gif width=1000><img align=top height=16
5894 src='||Image_Directory||'bistopar.gif width=26></td>
5895 <td align=left valign=top width=5><img height=8 src='||Image_Directory||'bisrend.gif width=8></td>
5896 </tr>
5897 <tr>
5898 <td align=left background='||Image_Directory||'bisbot.gif height=8 valign=top width=9><img height=8
5899 src='||Image_Directory||'bislend.gif width=10></td>
5900 <td background='||Image_Directory||'bisbot.gif height=8 width=5><img border=0 height=1
5901 src='||Image_Directory||'bisspace.gif width=1></td>
5902 <td align=left valign=top width=1000><img height=8 src='||Image_Directory||'bisarchc.gif width=9></td>
5903 <td width=5></td>
5904 </tr>
5905 </tbody>
5906 </table>';
5907
5908
5909 IF (NOT Parameter_Page) THEN
5910 HTML_Banner := HTML_Banner ||
5911 '<table width=100% border=0 cellspacing=0 cellpadding=15>
5912 <tr><td><table width=100% border=0 cellspacing=0 cellpadding=0>
5913 <tr><td class="OraHeader"><font face="Arial, Helvetica, sans-serif" size="5" color="#336699">'||bis_utilities_pvt.escape_html(title)||'</font></td></tr>
5914 <tr bgcolor="#CCCC99"><td height=1><img src='||Image_Directory||'bisspace.gif width=1 height=1></td></tr>
5915 </table>
5916 </td></tr>
5917 </table>';
5918
5919 ELSE
5920 HTML_Banner := HTML_Banner ||
5921 '<table width=100% border=0 cellspacing=0 cellpadding=15>
5922 <tr><td><table width=100% border=0 cellspacing=0 cellpadding=0>
5923 <tr><td class="OraHeader"><font face="Arial, Helvetica, sans-serif" size="5" color="#336699">'||bis_utilities_pvt.escape_html(title)||'</font></td></tr>
5924 <tr bgcolor="#CCCC99"><td height=1><img src='||Image_Directory||'bisspace.gif width=1 height=1></td></tr>
5925 <tr><td><font face="Arial, Helvetica, sans-serif" size="2">'||bis_utilities_pvt.escape_html(l_section_header)||'</font></td></tr>
5926 </table>
5927 </td></tr>
5928 </table>';
5929 END IF;
5930
5931 END Build_HTML_Banner;
5932
5933
5934 PROCEDURE Get_Translated_Icon_Text (Icon_Code IN VARCHAR2,
5935 Icon_Meaning OUT NOCOPY VARCHAR2,
5936 Icon_Description OUT NOCOPY VARCHAR2) IS
5937 BEGIN
5938
5939 SELECT meaning,
5940 description
5941 INTO Icon_Meaning,
5942 Icon_Description
5943 FROM FND_LOOKUPS
5944 WHERE lookup_code = Icon_Code
5945 AND lookup_type = 'HTML_NAVIGATION_ICONS';
5946
5947 EXCEPTION
5948 WHEN NO_DATA_FOUND THEN
5949 Icon_Meaning := Icon_Code;
5950 Icon_Description := Icon_Code;
5951 WHEN OTHERS THEN
5952 Icon_Meaning := Icon_Code;
5953 Icon_Description := Icon_Code;
5954 END;
5955
5956 FUNCTION Get_Images_Server RETURN VARCHAR2 IS
5957 l_Icx_Report_Images VARCHAR2(240);
5958 result boolean;
5959 BEGIN
5960 -- mdamle 05/31/01 - New Profile for OA_HTML, OA_MEDIA
5961 -- l_Icx_Report_Images := FND_PROFILE.value('ICX_REPORT_IMAGES');
5962
5963 if icx_sec.g_oa_media is null then
5964 result := icx_sec.validateSession;
5965 end if;
5966
5967 if instr(icx_sec.g_oa_media, 'http:') > 0 then
5968 l_Icx_Report_Images := FND_WEB_CONFIG.TRAIL_SLASH(icx_sec.g_oa_media);
5969 else
5970 l_Icx_Report_Images := FND_WEB_CONFIG.WEB_SERVER || FND_WEB_CONFIG.TRAIL_SLASH(icx_sec.g_oa_media);
5971 end if;
5972
5973 RETURN(l_Icx_Report_Images);
5974 END;
5975
5976
5977 FUNCTION Get_NLS_Language RETURN VARCHAR2 IS
5978 NLS_LANGUAGE_CODE VARCHAR2(4);
5979 BEGIN
5980
5981 SELECT l.language_code
5982 INTO NLS_LANGUAGE_CODE
5983 FROM fnd_languages l,
5984 nls_session_parameters p
5985 WHERE p.parameter = 'NLS_LANGUAGE'
5986 AND p.value = l.nls_language;
5987
5988 RETURN (NLS_LANGUAGE_CODE);
5989
5990 END Get_NLS_Language;
5991
5992 PROCEDURE Get_Image_file_structure (icx_report_images IN VARCHAR2,
5993 nls_language_code IN VARCHAR2,
5994 report_image OUT NOCOPY VARCHAR2) IS
5995 BEGIN
5996
5997 REPORT_IMAGE := ICX_REPORT_IMAGES || '/' || NLS_LANGUAGE_CODE || '/bisrelrp.gif' ;
5998
5999 END Get_Image_file_structure;
6000
6001 PROCEDURE build_html_banner -------------------- VERSION 6
6002 ( title IN VARCHAR2,
6003 help_target IN VARCHAR2,
6004 icon_show IN BOOLEAN
6005 )
6006 is
6007 nls_language_code varchar2(2000);
6008 icx_report_images varchar2(2000);
6009 HTML_banner varchar2(32000);
6010 begin
6011 nls_language_code := Get_NLS_Language;
6012 icx_report_images := Get_Images_Server;
6013
6014 htp.p('<SCRIPT LANGUAGE="JavaScript">');
6015 ---
6016 icx_admin_sig.help_win_script(help_target||'TOP', NULL , 'BIS');
6017 --- HACK TO circumvent target slection withing a help file:
6018 --- icx_admin_sig.help_win_script('/OA_DOC/' || help_target ||'?', nls_language_code, 'BIS');
6019 htp.p('</SCRIPT>');
6020
6021 --- --- --- This part used to call the ICX banner builder.
6022 --- icx_plug_utilities.toolbar(
6023 --- p_text => title
6024 --- , p_disp_help => 'Y'
6025 --- , p_disp_exit => 'Y'
6026 --- );
6027 --- --- ---
6028 Build_HTML_Banner (icx_report_images ----------- VERSION 8 (call to )
6029 , '"javascript:help_window()"'
6030 , nls_language_code
6031 , title
6032 , ''
6033 , FALSE
6034 , FALSE
6035 , icon_show
6036 , HTML_Banner
6037 );
6038 htp.p(HTML_Banner);
6039
6040 end Build_HTML_Banner;
6041
6042 PROCEDURE Build_HTML_Banner
6043 ( rdf_filename IN VARCHAR2,
6044 title IN VARCHAR2,
6045 menu_link IN VARCHAR2,
6046 icon_show IN BOOLEAN,
6047 HTML_Banner OUT NOCOPY VARCHAR2
6048 )
6049 is
6050 begin
6051 Build_HTML_Banner( rdf_filename
6052 , title
6053 , menu_link
6054 , FALSE
6055 , FALSE
6056 , icon_show
6057 , HTML_Banner
6058 );
6059 end Build_HTML_Banner;
6060
6061 PROCEDURE build_html_banner ---------- VERSION 8 (definition of)
6062 (icx_report_images IN VARCHAR2,
6063 more_info_directory IN VARCHAR2,
6064 nls_language_code IN VARCHAR2,
6065 title IN VARCHAR2,
6066 menu_link IN VARCHAR2,
6067 related_reports_exist IN BOOLEAN,
6068 parameter_page IN BOOLEAN,
6069 icon_show IN BOOLEAN,
6070 HTML_Banner OUT NOCOPY VARCHAR2
6071 )
6072 IS
6073
6074 Return_Alt VARCHAR2(1000);
6075 Parameters_Alt VARCHAR2(1000);
6076 NewMenu_Alt VARCHAR2(80);
6077 NewHelp_Alt VARCHAR2(80);
6078 Return_Description VARCHAR2(1000);
6079 Parameters_Description VARCHAR2(1000);
6080 NewMenu_Description VARCHAR2(80);
6081 NewHelp_Description VARCHAR2(80);
6082
6083 Related_Alt VARCHAR2(80);
6084 Menu_Alt VARCHAR2(80);
6085 Home_Alt VARCHAR2(80);
6086 Help_Alt VARCHAR2(80);
6087 Related_Description VARCHAR2(80);
6088 Home_Description VARCHAR2(80);
6089 Menu_Description VARCHAR2(80);
6090 Help_Description VARCHAR2(80);
6091 Image_Directory VARCHAR2(250);
6092 Home_page VARCHAR2(2000);
6093 Menu_Padding NUMBER(5);
6094 Home_URL VARCHAR2(200);
6095 Plsql_Agent VARCHAR2(100);
6096 Host_File VARCHAR2(80);
6097 l_profile VARCHAR2(2000);
6098 l_ampersand VARCHAR2(20):=' ';
6099
6100 BEGIN
6101
6102 Get_Translated_Icon_Text ('RELATED', Related_Alt, Related_Description);
6103 Get_Translated_Icon_Text ('MENU', Menu_Alt, Menu_Description);
6104 Get_Translated_Icon_Text ('HOME', Home_Alt, Home_Description);
6105 Get_Translated_Icon_Text ('HELP', Help_Alt, Help_Description);
6106
6107 Get_Translated_Icon_Text ('RETURNTOPORTAL', Return_Alt, Return_Description);
6108 Get_Translated_Icon_Text ('PARAMETERS', Parameters_Alt, Parameters_Description);
6109 Get_Translated_Icon_Text ('NEWHELP', NewHelp_Alt, NewHelp_Description);
6110 Get_Translated_Icon_Text ('NEWMENU', NewMenu_Alt, NewMenu_Description);
6111
6112
6113 Image_Directory := FND_WEB_CONFIG.TRAIL_SLASH(ICX_REPORT_IMAGES);
6114 Home_URL := BIS_REPORT_UTIL_PVT.Get_Home_URL;
6115
6116 HTML_Banner := '';
6117
6118 IF (Parameter_Page) THEN
6119 HTML_Banner := HTML_Banner ||
6120 '<form method=post action="_action_">
6121 <input name="hidden_run_parameters" type=hidden value="_hidden_">
6122 <CENTER><P>
6123 ';
6124 END IF;
6125
6126 HTML_Banner := HTML_Banner ||
6127 '<table border=0 cellspacing=0 cellpadding=0 width=100%>'||
6128 '<tr><td rowspan=2 valign=bottom width=371>'||
6129 '<table border=0 cellspacing=0 cellpadding=0 width=100%>'||
6130 '<tr align=left><td height=30><img src=' || Image_Directory || 'bisorcl.gif border=no height=23
6131 width=141></a></td>'||
6132 '<tr align=left> <td valign=bottom><img src=' || Image_Directory || 'biscollg.gif border=no></a></td></td></tr>'||
6133 '</table>'||
6134 '</td>';
6135
6136 IF (NOT Parameter_Page) AND (Related_Reports_Exist) THEN
6137 Menu_Padding := 50;
6138 ELSE
6139 Menu_Padding := 1000;
6140 END IF;
6141 -- MENU
6142
6143
6144 HTML_Banner := HTML_Banner || '<font face="Arial, Helvetica, sans-serif" size="5" color="#336699">'||bis_utilities_pvt.escape_html(title)||' </font>' ||
6145 '<table width=100% border=0 cellspacing=0 cellpadding=15>'||
6146 '<tr><td>'||
6147 '<table width=100% border=0 cellspacing=0 cellpadding=0>'||
6148 '<tr bgcolor="#CCCC99">'||
6149 '<td height=1><img src='||Image_Directory||'bisspace.gif width=1 height=1></td></tr>'||
6150 '</table>'||
6151 '</td></tr></table>';
6152
6153 HTML_Banner := HTML_Banner ||
6154 '<tr>'||
6155 '<td colspan=2 rowspan=2 valign=bottom align=right>' ||
6156 '<table border=0 cellpadding=0 align=right cellspacing=4>' ||
6157 '<tr valign=bottom>' ;
6158 HTML_Banner := HTML_Banner ||
6159 '<td width=60 align=center> <a href='||menu_Link||'Oraclemypage.home onMouseOver="window.status=''' || ICX_UTIL.replace_onMouseOver_quotes(Return_Description) || '''; return true">';
6160 HTML_Banner := HTML_Banner ||
6161 '<img alt='||ICX_UTIL.replace_alt_quotes(Return_Alt)||' src='||Image_Directory||'bisrtrnp.gif width=32 border=0 height="32"></a></td>';
6162
6163 HTML_Banner := HTML_Banner ||
6164 '<td width=60 align=center>'||
6165 '<a href=' || menu_Link || 'OracleNavigate.Responsibility onMouseOver="window.status=''' ||
6166 ICX_UTIL.replace_onMouseOver_quotes(NewMenu_Description) || '''; return true"><img alt='||ICX_UTIL.replace_alt_quotes(NewMenu_Alt)||' src='||Image_Directory||'bisnmenu.gif
6167 width="32" border=0 height=32></a></td>'; -- '<td width=60 align=center>'||
6168
6169 HTML_Banner := HTML_Banner ||
6170 '<td width=60 align=center valign=bottom><a href="javascript:help_window()", onMouseOver="window.status=''' || ICX_UTIL.replace_onMouseOver_quotes(NewHelp_Description) || '''; return true">';
6171 HTML_Banner := HTML_Banner ||
6172 '<img alt='||ICX_UTIL.replace_alt_quotes(NewHelp_Alt)||' src='||Image_Directory||'bisnhelp.gif border=0 width =32 height=32></a></td>'||
6173 '</tr>';
6174
6175 HTML_Banner := HTML_Banner ||
6176 '<tr align=center valign=top>'||
6177 '<td width=60><a href='||menu_Link||'Oraclemypage.home onMouseOver="window.status=''' || ICX_UTIL.replace_onMouseOver_quotes(Return_Description) || '''; return true">'||
6178 '<font size="2" face="Arial, Helvetica, sans-serif">Return to Portal</font></a></td>';
6179
6180 HTML_Banner := HTML_Banner ||
6181 '<td width=60>'||
6182 '<a href=' || menu_Link || 'OracleNavigate.Responsibility onMouseOver="window.status=''' || ICX_UTIL.replace_onMouseOver_quotes(NewMenu_Description) || '''; return true"><font face="Arial, Helvetica, sans-serif" size="2">Menu</font></a></td>';
6183
6184 HTML_Banner := HTML_Banner ||
6185 '<td width=60><a href="javascript:help_window()", onMouseOver="window.status=''' || ICX_UTIL.replace_onMouseOver_quotes(NewHelp_Description) || '''; return true"><font face="Arial, Helvetica, sans-serif" size="2">Help</font></a></td>'||
6186 '</tr></table>'||
6187 '</td>'||
6188 '</tr></table>'||
6189 '</td></tr>'||
6190 '</table>';
6191
6192 HTML_Banner := HTML_Banner ||
6193 '<table Border=0 cellpadding=0 cellspacing=0 width=100%>'||
6194 '<tbody>'||
6195 '<tr><td bgcolor=#ffffff colspan=3 height=1><img height=1 src='||Image_Directory||'bisspace.gif width=1></td>'||
6196 '</tr>'||
6197 '<tr>';
6198
6199 HTML_Banner := HTML_Banner ||
6200 '<td bgcolor=#31659c colspan=2 height=21><img border=0 height=21 src='||Image_Directory||'bisspace.gif width=1></td>'||
6201 '<td bgcolor=#31659c height=21><font face="Arial, Helvetica, sans-serif" size="4" color="#ffffff">'||l_ampersand||'</font></td>';
6202
6203 HTML_Banner := HTML_Banner ||
6204 '<td background='||Image_Directory||'bisrhshd.gif height=21 width=5><img border=0 height=1
6205 src='||Image_Directory||'bisspace.gif width=1></td>'||
6206 '</tr>';
6207
6208 HTML_Banner := HTML_Banner ||
6209 '<tr>'||
6210 '<td bgcolor=#31659c height=16 width=9><img border=0 height=1 src='||Image_Directory||'bisspace.gif width=9></td>'||
6211 '<td bgcolor=#31659c height=16 width=5><img border=0 height=1 src='||Image_Directory||'bisspace.gif width=5></td>';
6212
6213 HTML_Banner := HTML_Banner ||
6214 '<td background='||Image_Directory||'bisbot.gif width=1000><img align=top height=16
6215 src='||Image_Directory||'bistopar.gif width=26></td>'||
6216 '<td align=left valign=top width=5><img height=8 src='||Image_Directory||'bisrend.gif width=8></td>'||
6217 '</tr>';
6218
6219 HTML_Banner := HTML_Banner ||
6220 '<tr>'||
6221 '<td align=left background='||Image_Directory||'bisbot.gif height=8 valign=top width=9><img height=8
6222 src='||Image_Directory||'bislend.gif width=10></td>'||
6223 '<td background='||Image_Directory||'bisbot.gif height=8 width=5><img border=0 height=1
6224 src='||Image_Directory||'bisspace.gif width=1></td>';
6225
6226 HTML_Banner := HTML_Banner ||
6227 '<td align=left valign=top width=1000><img height=8 src='||Image_Directory||'bisarchc.gif width=9></td>'||
6228 '<td width=5></td>'||
6229 '</tr>'||
6230 '</tbody>'||
6231 '</table>';
6232
6233 HTML_Banner := HTML_Banner||'<br>'|| l_ampersand||l_ampersand||l_ampersand||l_ampersand||'<font face="Arial, Helvetica, sans-serif" size="5" color="#336699">'||bis_utilities_pvt.escape_html(title)||' </font>' ||
6234 '<table width=100% border=0 cellspacing=0 cellpadding=0>'||
6235 '<tr><td>';
6236
6237 HTML_Banner := HTML_Banner ||
6238 '<table width=100% border=0 cellspacing=0 cellpadding=0>'||
6239 '<tr bgcolor="#CCCC99">'||
6240 '<td height=1><img src='||Image_Directory||'bisspace.gif width=1 height=1></td></tr>'||
6241 '</table>'||
6242 '</td></tr></table>';
6243
6244 END Build_HTML_Banner;
6245
6246
6247 PROCEDURE build_html_banner ---- VERSION 9 (definition of)
6248 ( rdf_filename IN VARCHAR2,
6249 title IN VARCHAR2,
6250 menu_link IN VARCHAR2,
6251 related_reports_exist IN BOOLEAN,
6252 parameter_page IN BOOLEAN,
6253 icon_show IN BOOLEAN,
6254 HTML_Banner OUT NOCOPY VARCHAR2
6255 )
6256 is
6257 icx_report_images varchar2(2000);
6258 more_info_directory varchar2(2000);
6259 nls_language_code varchar2(2000);
6260 begin
6261
6262 icx_report_images := Get_Images_Server;
6263 nls_language_code := Get_NLS_Language;
6264
6265 Build_HTML_Banner( icx_report_images -------- VERSION 8 (Call to)
6266 , 'javascript:help_window()'
6267 , nls_language_code
6268 , title
6269 , menu_link
6270 , related_reports_exist
6271 , parameter_page
6272 , icon_show
6273 , HTML_Banner
6274 );
6275
6276 end Build_HTML_Banner;
6277
6278 PROCEDURE build_html_banner ---------VERSION 10 (definition of)
6279 (icx_report_images IN VARCHAR2,
6280 more_info_directory IN VARCHAR2,
6281 nls_language_code IN VARCHAR2,
6282 title IN VARCHAR2,
6283 menu_link IN VARCHAR2,
6284 icon_show IN BOOLEAN,
6285 HTML_Banner OUT NOCOPY VARCHAR2)
6286 is
6287 begin
6288
6289 Build_HTML_Banner( icx_report_images ---- VERSION 8 (call TO)
6290 , more_info_directory
6291 , nls_language_code
6292 , title
6293 , menu_link
6294 , FALSE
6295 , FALSE
6296 , icon_show
6297 , HTML_Banner
6298 );
6299
6300 end Build_HTML_Banner;
6301
6302
6303
6304 -- End of overlapping procedures
6305 -- rchandra 2157402
6306 PROCEDURE getAKRegionItemLongLabel (akRegionItemData IN VARCHAR2,
6307 longlabel OUT NOCOPY VARCHAR2) AS
6308 l_region_code VARCHAR2(1000);
6309 l_region_item VARCHAR2(1000);
6310 l_akRegionItemData VARCHAR2(2000);
6311 CURSOR c_label(cp_regn_code VARCHAR2,
6312 cp_regn_item VARCHAR2) IS
6313 SELECT attribute_label_long FROM ak_region_items_vl WHERE
6314 region_code = cp_regn_code
6315 AND attribute_code = cp_regn_item;
6316 BEGIN
6317 l_akRegionItemData := TRIM(akRegionItemData);
6318 l_region_code := substr(l_akRegionItemData,1,instr(l_akRegionItemData,'.')-1);
6319 l_region_item := substr(l_akRegionItemData,instr(l_akRegionItemData,'.')+1);
6320 OPEN c_label(l_region_code,l_region_item);
6321 FETCH c_label INTO longlabel;
6322 CLOSE c_label;
6323 EXCEPTION
6324 WHEN OTHERS THEN
6325 IF c_label%ISOPEN THEN
6326 CLOSE c_label;
6327 END IF;
6328 END getAKRegionItemLongLabel;
6329 -- rchandra 2157402
6330
6331
6332 --rmohanty
6333
6334 --===========================================================
6335 -- start of change by juwang
6336 -- 15-JAN-02 juwang bug#2184804
6337 --===========================================================
6338 --============================================================
6339 -- PROCEDURE
6340 -- use_current_period
6341 --
6342 -- PURPOSE
6343 -- If in bis_actuals_values, the actual does
6344 -- not exist for the current period, use the period
6345 -- that has the latest last update date
6346 -- PARAMETERS
6347 --
6348 -- HISTORY
6349 -- 08JAN-2002 juwang Created for bug#2173745
6350 --=============================================================
6351 FUNCTION use_current_period(
6352 p_target_rec IN BIS_TARGET_PUB.Target_Rec_Type
6353 ,p_time_dimension_index IN NUMBER
6354 ,p_current_period_id IN VARCHAR2
6355 ,x_last_period_id OUT NOCOPY VARCHAR2
6356 ) RETURN BOOLEAN IS
6357 ldv1 VARCHAR2(80);
6358 ldv2 VARCHAR2(80);
6359 ldv3 VARCHAR2(80);
6360 ldv4 VARCHAR2(80);
6361 ldv5 VARCHAR2(80);
6362 ldv6 VARCHAR2(80);
6363 ldv7 VARCHAR2(80);
6364 l_use_cur_period BOOLEAN := FALSE;
6365 l_first_rec BOOLEAN := TRUE;
6366
6367
6368 CURSOR c_actual_value IS
6369 SELECT
6370 DIMENSION1_LEVEL_VALUE
6371 ,DIMENSION2_LEVEL_VALUE
6372 ,DIMENSION3_LEVEL_VALUE
6373 ,DIMENSION4_LEVEL_VALUE
6374 ,DIMENSION5_LEVEL_VALUE
6375 ,DIMENSION6_LEVEL_VALUE
6376 ,DIMENSION7_LEVEL_VALUE
6377 FROM bisbv_actuals acts
6378 WHERE acts.target_level_id = p_target_rec.target_level_id
6379 AND DECODE(p_time_dimension_index,
6380 1, 'NILL', NVL(acts.dimension1_level_value, 'NILL'))
6381 = DECODE(p_time_dimension_index,
6382 1, 'NILL', NVL(p_target_rec.dim1_level_value_id, 'NILL'))
6383 AND DECODE(p_time_dimension_index,
6384 2, 'NILL', NVL(acts.dimension2_level_value, 'NILL'))
6385 = DECODE(p_time_dimension_index,
6386 2, 'NILL', NVL(p_target_rec.dim2_level_value_id, 'NILL'))
6387 AND DECODE(p_time_dimension_index,
6388 3, 'NILL', NVL(acts.dimension3_level_value, 'NILL'))
6389 = DECODE(p_time_dimension_index,
6390 3, 'NILL', NVL(p_target_rec.dim3_level_value_id, 'NILL'))
6391 AND DECODE(p_time_dimension_index,
6392 4, 'NILL', NVL(acts.dimension4_level_value, 'NILL'))
6393 = DECODE(p_time_dimension_index,
6394 4, 'NILL', NVL(p_target_rec.dim4_level_value_id, 'NILL'))
6395 AND DECODE(p_time_dimension_index,
6396 5, 'NILL', NVL(acts.dimension5_level_value, 'NILL'))
6397 = DECODE(p_time_dimension_index,
6398 5, 'NILL', NVL(p_target_rec.dim5_level_value_id, 'NILL'))
6399 AND DECODE(p_time_dimension_index,
6400 6, 'NILL', NVL(acts.dimension6_level_value, 'NILL'))
6401 = DECODE(p_time_dimension_index,
6402 6, 'NILL', NVL(p_target_rec.dim6_level_value_id, 'NILL'))
6403 AND DECODE(p_time_dimension_index,
6404 7, 'NILL', NVL(acts.dimension7_level_value, 'NILL'))
6405 = DECODE(p_time_dimension_index,
6406 7, 'NILL', NVL(p_target_rec.dim7_level_value_id, 'NILL'))
6407 ORDER BY acts.LAST_UPDATE_DATE DESC;
6408 BEGIN
6409
6410 OPEN c_actual_value;
6411 LOOP
6412 FETCH c_actual_value INTO ldv1, ldv2, ldv3, ldv4, ldv5, ldv6, ldv7;
6413 EXIT WHEN c_actual_value%NOTFOUND;
6414
6415 IF ( l_first_rec ) THEN -- remember the latest period
6416 IF ( p_time_dimension_index = 1 ) THEN
6417 x_last_period_id := ldv1;
6418 ELSIF ( p_time_dimension_index = 2 ) THEN
6419 x_last_period_id := ldv2;
6420 ELSIF ( p_time_dimension_index = 3 ) THEN
6421 x_last_period_id := ldv3;
6422 ELSIF ( p_time_dimension_index = 4 ) THEN
6423 x_last_period_id := ldv4;
6424 ELSIF ( p_time_dimension_index = 5 ) THEN
6425 x_last_period_id := ldv5;
6426 ELSIF ( p_time_dimension_index = 6 ) THEN
6427 x_last_period_id := ldv6;
6428 ELSIF ( p_time_dimension_index = 7 ) THEN
6429 x_last_period_id := ldv7;
6430 END IF;
6431
6432 END IF; -- ( l_first_rec )
6433 l_first_rec := FALSE;
6434
6435 -- check if the given period exists in actuals table
6436 IF ( p_time_dimension_index = 1 ) THEN
6437 IF ( ldv1 = p_current_period_id ) THEN
6438 l_use_cur_period := TRUE;
6439 EXIT;
6440 END IF;
6441 ELSIF ( p_time_dimension_index = 2 ) THEN
6442 IF ( ldv2 = p_current_period_id ) THEN
6443 l_use_cur_period := TRUE;
6444 EXIT;
6445 END IF;
6446 ELSIF ( p_time_dimension_index = 3 ) THEN
6447 IF ( ldv3 = p_current_period_id ) THEN
6448 l_use_cur_period := TRUE;
6449 EXIT;
6450 END IF;
6451 ELSIF ( p_time_dimension_index = 4 ) THEN
6452 IF ( ldv4 = p_current_period_id ) THEN
6453 l_use_cur_period := TRUE;
6454 EXIT;
6455 END IF;
6456 ELSIF ( p_time_dimension_index = 5 ) THEN
6457 IF ( ldv5 = p_current_period_id ) THEN
6458 l_use_cur_period := TRUE;
6459 EXIT;
6460 END IF;
6461 ELSIF ( p_time_dimension_index = 6 ) THEN
6462 IF ( ldv6 = p_current_period_id ) THEN
6463 l_use_cur_period := TRUE;
6464 EXIT;
6465 END IF;
6466 ELSIF ( p_time_dimension_index = 7 ) THEN
6467 IF ( ldv6 = p_current_period_id ) THEN
6468 l_use_cur_period := TRUE;
6469 EXIT;
6470 END IF;
6471 END IF;
6472 END LOOP;
6473 CLOSE c_actual_value;
6474
6475
6476 -- No row at all, should remain
6477 IF ( l_first_rec ) THEN
6478 l_use_cur_period := TRUE;
6479 END IF;
6480 RETURN l_use_cur_period;
6481
6482 EXCEPTION
6483 WHEN OTHERS THEN
6484
6485 IF c_actual_value%ISOPEN THEN
6486 CLOSE c_actual_value;
6487 END IF;
6488 RETURN TRUE;
6489
6490 END use_current_period;
6491
6492
6493
6494
6495
6496 --============================================================
6497 -- PROCEDURE
6498 -- getAKFormatValue
6499 --
6500 -- PURPOSE
6501 -- Tasks include
6502 -- 1. Find the format for this measure in AK
6503 -- 2. Format the p_val according to the AK display format and
6504 -- display format type.
6505 -- 3. Only when both of the above info are null, use default
6506 -- format.
6507 -- PARAMETERS
6508 --
6509 -- HISTORY
6510 -- 09-JAN-2002 juwang Created.
6511 --=============================================================
6512
6513 FUNCTION getAKFormatValue(
6514 p_measure_id IN NUMBER
6515 ,p_val IN NUMBER
6516 ) RETURN VARCHAR2
6517 IS
6518 l_region_code VARCHAR2(30);
6519 l_attribute_code VARCHAR2(30);
6520 l_display_format VARCHAR2(150) := NULL;
6521 l_display_type VARCHAR2(150) := NULL;
6522 l_format_mask VARCHAR2(1000);
6523 l_km_val NUMBER;
6524 l_result VARCHAR2(1000);
6525
6526 BEGIN
6527 IF ( p_val IS NULL) THEN -- should not go here
6528 RETURN BIS_UTILITIES_PVT.Get_FND_Message('BIS_NONE');
6529 END IF;
6530
6531 get_region_code( p_measure_id => p_measure_id
6532 ,x_region_code => l_region_code
6533 ,x_attribute_code => l_attribute_code);
6534
6535 get_ak_display_format( p_region_code => l_region_code
6536 ,p_attribute_code => l_attribute_code
6537 ,x_display_format => l_display_format
6538 ,x_display_type => l_display_type );
6539
6540 IF ( l_display_type IS NULL ) THEN
6541 RETURN getFormatValue(p_val);
6542 END IF;
6543
6544 -- display type is not null
6545
6546 IF ( l_display_type = c_I ) THEN -- Integer
6547 RETURN getFormatValue(p_val => p_val,
6548 p_format_mask => NVL(l_display_format, getFormatMask(p_val, FALSE)));
6549
6550
6551 ELSIF ( l_display_type = c_F ) THEN -- Float
6552 RETURN getFormatValue(p_val => p_val,
6553 p_format_mask => NVL(l_display_format, getFormatMask(p_val, TRUE)));
6554
6555
6556 ELSIF ( l_display_type = c_K ) THEN -- thousand
6557 l_km_val := (p_val/c_thousand);
6558 l_result := getFormatValue(
6559 p_val => l_km_val
6560 ,p_format_mask => NVL(l_display_format,
6561 getFormatMask(l_km_val, TRUE))) || c_K ;
6562 RETURN l_result;
6563
6564
6565 ELSIF ( l_display_type = c_M ) THEN -- million
6566 l_km_val := (p_val/c_million);
6567 l_result := getFormatValue(
6568 p_val => l_km_val
6569 ,p_format_mask => NVL(l_display_format,
6570 getFormatMask(l_km_val, TRUE))) || c_M ;
6571 RETURN l_result;
6572 END IF;
6573
6574
6575 -- all the other types or null
6576 RETURN getFormatValue(p_val);
6577
6578
6579
6580 END getAKFormatValue;
6581
6582
6583
6584 --============================================================
6585 -- PROCEDURE
6586 -- get_ak_display_format
6587 --
6588 -- PURPOSE
6589 -- By the given region code and attribute code, it
6590 -- sets the display format and display type in the out NOCOPY
6591 -- parameters.
6592 -- PARAMETERS
6593 --
6594 -- HISTORY
6595 -- 09-JAN-2002 juwang Created.
6596 --============================================================
6597 PROCEDURE get_ak_display_format(
6598 p_region_code IN VARCHAR2
6599 ,p_attribute_code IN VARCHAR2
6600 ,x_display_format OUT NOCOPY VARCHAR2
6601 ,x_display_type OUT NOCOPY VARCHAR2
6602 ) IS
6603
6604 CURSOR c_ak_item IS
6605 SELECT attribute7, attribute14
6606 FROM ak_region_items
6607 WHERE
6608 region_code = p_region_code
6609 AND attribute_code = p_attribute_code;
6610
6611 BEGIN
6612
6613 IF ( (p_region_code IS NULL ) OR
6614 (p_attribute_code IS NULL ) ) THEN
6615 x_display_format := NULL;
6616 x_display_type := NULL;
6617
6618 RETURN;
6619 END IF;
6620
6621 OPEN c_ak_item;
6622 FETCH c_ak_item INTO x_display_format, x_display_type;
6623 CLOSE c_ak_item;
6624
6625 EXCEPTION
6626 WHEN OTHERS THEN
6627 IF c_ak_item%ISOPEN THEN
6628 CLOSE c_ak_item;
6629 END IF;
6630 END get_ak_display_format;
6631
6632
6633
6634 --============================================================
6635 -- PROCEDURE
6636 -- get_region_code
6637 --
6638 -- PURPOSE
6639 -- By the given measure/indicator id, it sets the out NOCOPY
6640 -- parameters with ak region code and ak attribute code.
6641 -- PARAMETERS
6642 --
6643 -- HISTORY
6644 -- 09-JAN-2002 juwang Created.
6645 --============================================================
6646 PROCEDURE get_region_code(
6647 p_measure_id IN NUMBER
6648 ,x_region_code OUT NOCOPY VARCHAR2
6649 ,x_attribute_code OUT NOCOPY VARCHAR2 )
6650 IS
6651 l_return_status VARCHAR2(32000);
6652 l_msg_count VARCHAR2(32000);
6653 l_msg_data VARCHAR2(32000);
6654 l_Measure_ID NUMBER ;
6655 l_Measure_Short_Name VARCHAR2(30);
6656 l_Measure_Name bis_indicators_tl.name%TYPE ;
6657 l_Description bis_indicators_tl.DESCRIPTION%TYPE ;
6658 l_Dimension1_ID NUMBER ;
6659 l_Dimension2_ID NUMBER ;
6660 l_Dimension3_ID NUMBER ;
6661 l_Dimension4_ID NUMBER ;
6662 l_Dimension5_ID NUMBER ;
6663 l_Dimension6_ID NUMBER ;
6664 l_Dimension7_ID NUMBER ;
6665 l_Unit_Of_Measure_Class VARCHAR2(10) ;
6666 l_actual_data_source_type VARCHAR2(30) ;
6667 l_actual_data_source VARCHAR2(240);
6668 l_function_name VARCHAR2(240) ;
6669 l_comparison_source VARCHAR2(240) ;
6670 l_increase_in_measure VARCHAR2(1);
6671
6672
6673 BEGIN
6674 BIS_PMF_DEFINER_WRAPPER_PVT.Retrieve_Performance_Measure(
6675 P_MEASURE_ID => p_measure_id
6676 ,x_return_status => l_return_status
6677 ,x_msg_count => l_msg_count
6678 ,x_msg_data => l_msg_data
6679 ,x_Measure_ID => l_Measure_ID
6680 ,x_Measure_Short_Name => l_Measure_Short_Name
6681 ,x_Measure_Name => l_Measure_Name
6682 ,x_Description => l_Description
6683 ,x_Dimension1_ID => l_Dimension1_ID
6684 ,x_Dimension2_ID => l_Dimension2_ID
6685 ,x_Dimension3_ID => l_Dimension3_ID
6686 ,x_Dimension4_ID => l_Dimension4_ID
6687 ,x_Dimension5_ID => l_Dimension5_ID
6688 ,x_Dimension6_ID => l_Dimension6_ID
6689 ,x_Dimension7_ID => l_Dimension7_ID
6690 ,x_Unit_Of_Measure_Class => l_Unit_Of_Measure_Class
6691 ,x_actual_data_source_type => l_actual_data_source_type
6692 ,x_actual_data_source => l_actual_data_source
6693 ,x_region_code => x_region_code
6694 ,x_attribute_code => x_attribute_code
6695 ,x_function_name => l_function_name
6696 ,x_comparison_source => l_comparison_source
6697 ,x_increase_in_measure => l_increase_in_measure);
6698
6699
6700
6701 EXCEPTION
6702 WHEN OTHERS THEN
6703
6704 x_region_code := NULL;
6705 x_attribute_code := NULL;
6706 END get_region_code;
6707
6708
6709 --============================================================
6710 -- PROCEDURE
6711 -- getFormatValue
6712 --
6713 -- PURPOSE
6714 -- Default format function.
6715 -- PARAMETERS
6716 --
6717 -- HISTORY
6718 -- 08JAN-2002 juwang Created.
6719 --=============================================================
6720 FUNCTION getFormatValue(
6721 p_val IN NUMBER
6722 ) RETURN VARCHAR2
6723 IS
6724 l_wh_val NUMBER;
6725 l_abs_val NUMBER;
6726 BEGIN
6727 IF ( p_val IS NULL) THEN -- should not go here
6728 RETURN BIS_UTILITIES_PVT.Get_FND_Message('BIS_NONE');
6729 END IF;
6730
6731 l_abs_val := ABS(p_val);
6732 l_wh_val := FLOOR(l_abs_val);
6733 -- IF ( l_abs_val >= c_trillion ) THEN
6734 -- RETURN (TO_CHAR(p_val/c_trillion, c_fmt) || c_T);
6735
6736 IF ( l_abs_val >= c_billion ) THEN
6737 RETURN getBillionValue(p_val);
6738
6739 ELSIF ( l_abs_val >= c_million ) THEN
6740
6741 RETURN (TO_CHAR(p_val/c_million, c_fmt) || c_M);
6742
6743 END IF;
6744
6745 -- -1000000 < x < 1000000
6746 IF ( l_abs_val = l_wh_val ) THEN
6747 RETURN TO_CHAR(p_val, c_long_nod_fmt);
6748 END IF;
6749
6750 RETURN TO_CHAR(p_val, c_longfmt);
6751
6752
6753
6754 END getFormatValue;
6755
6756
6757
6758 --============================================================
6759 FUNCTION getFormatMask(
6760 p_val IN NUMBER
6761 ,p_show_decimal IN BOOLEAN
6762 ) RETURN VARCHAR2
6763 IS
6764
6765 l_num_digits NUMBER;
6766 l_num_thou NUMBER;
6767 l_counter NUMBER := 1;
6768 l_fmt_mask VARCHAR2(1000):='990';
6769 BEGIN
6770
6771 IF ( ABS(p_val) < 1 ) THEN
6772 IF ( p_show_decimal ) THEN
6773 l_fmt_mask := l_fmt_mask || 'D99';
6774 END IF;
6775
6776 RETURN l_fmt_mask;
6777 END IF;
6778
6779 l_num_digits := log(10, ABS(p_val));
6780 l_num_thou := CEIL((l_num_digits/3));
6781
6782 FOR l_counter IN 1 .. l_num_thou LOOP
6783 l_fmt_mask := '999G' || l_fmt_mask ;
6784 END LOOP;
6785
6786 IF ( p_show_decimal ) THEN
6787 l_fmt_mask := l_fmt_mask || 'D99';
6788 END IF;
6789
6790 RETURN l_fmt_mask;
6791
6792 END getFormatMask;
6793
6794
6795
6796 --============================================================
6797 -- PROCEDURE
6798 -- getFormatValue
6799 --
6800 -- PURPOSE
6801 -- Returns the value formatted by the given format mask.
6802 -- If the given value is null, returns 'NONE'.
6803 -- If the given format mask is null, use the default one.
6804 -- PARAMETERS
6805 --
6806 -- HISTORY
6807 -- 08JAN-2002 juwang Created
6808 --=============================================================
6809 FUNCTION getFormatValue(
6810 p_val IN NUMBER
6811 ,p_format_mask IN VARCHAR2
6812 ) RETURN VARCHAR2
6813 IS
6814
6815 BEGIN
6816 IF ( p_val IS NULL) THEN -- should not go here
6817 RETURN BIS_UTILITIES_PVT.Get_FND_Message('BIS_NONE');
6818 END IF;
6819
6820 IF ( p_format_mask IS NULL) THEN
6821 RETURN getFormatValue(p_val);
6822 END IF;
6823
6824 RETURN TO_CHAR(p_val, p_format_mask);
6825
6826 END getFormatValue;
6827
6828
6829 --============================================================
6830 FUNCTION getBillionValue(
6831 p_val IN NUMBER
6832 ) RETURN VARCHAR2
6833 IS
6834 l_bi_val NUMBER;
6835 l_wh_val NUMBER;
6836 l_abs_val NUMBER;
6837 l_fmt_mask VARCHAR2(100);
6838
6839 BEGIN
6840
6841 l_bi_val := p_val/c_billion;
6842 l_abs_val := ABS(l_bi_val);
6843
6844 IF (l_abs_val < 1) THEN
6845 RETURN (TO_CHAR(p_val/c_million, c_fmt) || c_M);
6846 END IF;
6847
6848
6849 l_wh_val := FLOOR(l_abs_val);
6850 l_fmt_mask := getBillionFormatMask(l_bi_val);
6851
6852 IF ( l_abs_val = l_wh_val ) THEN
6853 RETURN (TO_CHAR( l_bi_val, l_fmt_mask) || c_B);
6854 END IF;
6855
6856
6857
6858 RETURN TO_CHAR( l_bi_val, l_fmt_mask||'D99') || c_B ;
6859
6860 END getBillionValue;
6861
6862
6863 --============================================================
6864 -- bug#2172266
6865 FUNCTION getBillionFormatMask(
6866 p_val IN NUMBER
6867 ) RETURN VARCHAR2
6868 IS
6869
6870 l_num_digits NUMBER;
6871 l_num_thou NUMBER;
6872 l_counter NUMBER := 1;
6873 l_fmt_mask VARCHAR2(1000):='990';
6874 BEGIN
6875
6876 IF ( ABS(p_val) < 1 ) THEN
6877 RETURN l_fmt_mask;
6878 END IF;
6879
6880 l_num_digits := log(10, ABS(p_val));
6881 l_num_thou := CEIL((l_num_digits/3));
6882
6883 FOR l_counter IN 1 .. l_num_thou LOOP
6884 l_fmt_mask := '999G' || l_fmt_mask ;
6885 END LOOP;
6886 RETURN l_fmt_mask;
6887
6888 END getBillionFormatMask;
6889
6890
6891
6892 --============================================================
6893 PROCEDURE draw_portlet_header(
6894 p_status_lbl IN VARCHAR2
6895 ,p_measure_lbl IN VARCHAR2
6896 ,p_value_lbl IN VARCHAR2
6897 ,p_change_lbl IN VARCHAR2)
6898 IS
6899 BEGIN
6900
6901 -- style
6902 htp.p('<STYLE TYPE="text/css">');
6903 htp.p('A.OraPortletLink:link {COLOR: #663300; FONT-FAMILY: Arial, Helvetica, Geneva, sans-serif; FONT-SIZE: 9pt}');
6904 htp.p('A.OraPortletLink:active {COLOR: #663300; FONT-FAMILY: Arial, Helvetica, Geneva, sans-serif; FONT-SIZE: 9pt}');
6905 htp.p('A.OraPortletLink:visited {COLOR: #663300; FONT-FAMILY: Arial, Helvetica, Geneva, sans-serif; FONT-SIZE: 9pt}');
6906 htp.p('.OraPortletHeaderSub1 {font-family: Arial, Helvetica, sans-serif; font-size: 9pt; color: #000000;
6907 background-color: #CCCC99}');
6908 htp.p('.OraPortletTableCellText {font-family:Arial, Helvetica, Geneva, sans-serif; font-size:9pt; text-align:left;
6909 background-color:#f7f7e7; color:#000000}');
6910 htp.p('.OraPortletTableCellNumber {font-family:Arial, Helvetica, Geneva, sans-serif; font-size:9pt; text-align:right;
6911 background-color:#f7f7e7; color:#000000; text-indent:1}');
6912 htp.p('.OraPortletBodyTextBlack { FONT-FAMILY: Arial, Helvetica, Geneva, sans-serif; FONT-SIZE: 9pt}');
6913 htp.p('.OraPortletBodyTextGreen { FONT-FAMILY: Arial, Helvetica, Geneva, sans-serif; FONT-SIZE: 9pt; color: #009900}');
6914 htp.p('.OraPortletBodyTextRed { FONT-FAMILY: Arial, Helvetica, Geneva, sans-serif; FONT-SIZE: 9pt; color: #FF0000}');
6915 htp.p('.OraPortletTableCellTextBand {font-family:Arial, Helvetica, Geneva, sans-serif; font-size:9pt; text-align:left;
6916 background-color:#ffffff; color:#000000}');
6917 htp.p('.OraPortletTableCellNumberBand {font-family:Arial, Helvetica, Geneva, sans-serif; font-size:9pt; text-align:right;
6918 background-color:#ffffff; color:#000000; text-indent:1}');
6919 htp.p('</STYLE>');
6920
6921 -- Table
6922 htp.p(' <table bgcolor=white border=0 cellpadding=3 cellspacing=0 width="100%">');
6923
6924
6925 htp.p(' <tr> ');
6926 htp.p(' <th id="'||p_status_lbl||'" class=OraPortletHeaderSub1 ');
6927 htp.p(' style="COLOR: #336699;BORDER-TOP: #f7f7e7 1px solid"
6928 align=left valign=bottom>'||' </th>');
6929 --width="5%"
6930 htp.p(' <th id="'||p_measure_lbl||'" class=OraPortletHeaderSub1 ');
6931 htp.p(' style="BORDER-LEFT: #cccc99 1px solid;COLOR: #336699; BORDER-TOP: #f7f7e7 1px solid" align=left valign=bottom
6932 >'||bis_utilities_pvt.escape_html(p_measure_lbl)||'</th>');
6933 htp.p(' <th id="'||p_value_lbl||'" class=OraPortletHeaderSub1 ');
6934 --bug#2228061
6935
6936 htp.p(' style="BORDER-LEFT: #f7f7e7 1px solid; COLOR: #336699;BORDER-TOP: #f7f7e7 1px solid" align=right valign=bottom> </th>');
6937 htp.p(' <th id="'||p_change_lbl||'" class=OraPortletHeaderSub1 ');
6938 htp.p(' style="BORDER-LEFT: #f7f7e7 1px solid;COLOR: #336699;BORDER-TOP: #f7f7e7 1px solid"
6939 align=right valign=bottom>'||bis_utilities_pvt.escape_html(p_change_lbl)||'</th>');
6940 htp.p(' <th id="'||'change_img'||'" class=OraPortletHeaderSub1');
6941 --htp.p(' style="BORDER-LEFT: #f7f7e7 1px solid; COLOR: #336699;BORDER-TOP: #f7f7e7 1px solid"
6942 htp.p(' style="COLOR: #336699;BORDER-TOP: #f7f7e7 1px solid" align=left valign=bottom>'||' </th>');
6943 htp.p(' </tr>');
6944
6945 END draw_portlet_header ;
6946
6947
6948 --===========================================================
6949 FUNCTION get_row_style(
6950 p_row_style IN VARCHAR2
6951 ) RETURN VARCHAR2
6952 IS
6953
6954 BEGIN
6955
6956 IF (p_row_style = 'Band') THEN
6957 RETURN NULL;
6958 ELSE
6959 RETURN 'Band';
6960 END IF;
6961
6962
6963 EXCEPTION
6964 WHEN OTHERS THEN
6965 RETURN NULL;
6966
6967 END get_row_style;
6968
6969
6970
6971 --============================================================
6972 PROCEDURE draw_portlet_footer
6973 IS
6974 BEGIN
6975
6976 htp.p(' </table>');
6977
6978 END draw_portlet_footer;
6979
6980
6981
6982
6983 --============================================================
6984 -- PROCEDURE
6985 -- draw_status
6986 --
6987 -- PURPOSE
6988 -- p_status_lbl => status header label (for ADA compliant)
6989 -- p_row_style => style of row, white or yellow background
6990 -- p_actual_val => actual value
6991 -- p_target_val => target value
6992 -- p_range1_low_pcnt => percentage for range1 low
6993 -- p_range1_high_pcnt => percentage for range1 high
6994
6995 -- PARAMETERS
6996 --
6997 -- HISTORY
6998 -- 22-JAN-2002 juwang Created.
6999 --============================================================
7000 PROCEDURE draw_status(
7001 p_status_lbl IN VARCHAR2
7002 ,p_row_style IN VARCHAR2
7003 ,p_actual_val IN NUMBER
7004 ,p_target_val IN NUMBER
7005 ,p_range1_low_pcnt IN NUMBER
7006 ,p_range1_high_pcnt IN NUMBER
7007 )
7008 IS
7009 l_range1_low_val NUMBER(20,2);
7010 l_range1_high_val NUMBER(20,2);
7011
7012 BEGIN
7013
7014 -- Compute the min, max value of tolerance ranges
7015 IF ( p_target_val IS NULL ) THEN
7016 l_range1_low_val := NULL;
7017 l_range1_high_val := NULL;
7018
7019 ELSE
7020 l_range1_low_val := p_target_val-((p_range1_low_pcnt/100)*p_target_val);
7021 l_range1_high_val:= p_target_val+ ((p_range1_high_pcnt/100)*p_target_val);
7022 END IF;
7023
7024 -- If actual is inside tolerance range print in forest green color
7025 -- bug#2187778
7026 IF ( (p_target_val IS NULL) OR
7027 (l_range1_low_val IS NULL) OR
7028 (l_range1_high_val IS NULL)) THEN
7029 draw_status(p_status_lbl, 0, p_row_style);
7030
7031 -- target, low, high ranges are not null
7032 ELSIF ((p_actual_val >= NVL(l_range1_low_val, p_target_val)) AND
7033 (p_actual_val <= NVL(l_range1_high_val, p_target_val))) THEN
7034
7035 draw_status(p_status_lbl, 1, p_row_style);
7036
7037 -- If actual is outside tolerance range print in red color
7038 ELSIF (p_actual_val < NVL(l_range1_low_val, p_target_val) OR
7039 p_actual_val > NVL(l_range1_high_val, p_target_val)) THEN
7040
7041 draw_status(p_status_lbl, 2, p_row_style);
7042
7043 ELSE
7044 draw_status(p_status_lbl, 0, p_row_style);
7045
7046 END IF; -- actual colors
7047 END draw_status;
7048
7049
7050
7051 --============================================================
7052 -- p_status :
7053 -- 0 -> None
7054 -- 1 -> within target range
7055 -- 2 -> outside target range
7056 --============================================================
7057 PROCEDURE draw_status(
7058 p_status_lbl IN VARCHAR2
7059 ,p_status IN NUMBER
7060 ,p_row_style IN VARCHAR2)
7061 IS
7062 l_range_lbl VARCHAR2(2000); -- incr the size for 2617137
7063 l_in_range_lbl VARCHAR2(2000);
7064 l_out_range_lbl VARCHAR2(2000);
7065 l_gif VARCHAR2(100);
7066 BEGIN
7067
7068 l_in_range_lbl := BIS_UTILITIES_PVT.Get_FND_Message('BIS_WITHIN_RANGE');
7069 l_out_range_lbl := BIS_UTILITIES_PVT.Get_FND_Message('BIS_OUTSIDE_RANGE');
7070 IF ( p_status = 1 ) THEN
7071 l_gif := 'bisinrng.gif';
7072 l_range_lbl := l_in_range_lbl;
7073 ELSIF ( p_status = 2 ) THEN
7074 l_gif := 'bisourng.gif';
7075 l_range_lbl := l_out_range_lbl;
7076 ELSE
7077 l_gif := 'FNDINVDT.gif';
7078 l_range_lbl := '';
7079 END IF;
7080
7081 --width="5%"
7082 htp.p(' <td headers="'||p_status_lbl||'" class=OraPortletTableCellText'||p_row_style);
7083 htp.p(' style="BORDER-LEFT: #cccc99 1px solid; BORDER-BOTTOM: #cccc99 1px solid; BORDER-TOP: #f7f7e7 1px solid " align=left> <img src="/OA_MEDIA/' || l_gif || '" width="16" height="16" alt="'||
7084 ICX_UTIL.replace_alt_quotes(l_range_lbl)||'">');
7085 htp.p('</td>');
7086
7087 END draw_status;
7088
7089
7090
7091
7092 --============================================================
7093 PROCEDURE draw_measure_name(
7094 p_actual_url IN VARCHAR2
7095 ,p_label IN VARCHAR2
7096 ,p_measure_lbl IN VARCHAR2
7097 ,p_row_style IN VARCHAR2)
7098 IS
7099 BEGIN
7100 htp.p(' <td headers="'||p_measure_lbl||'" class=OraPortletTableCellText'||p_row_style);
7101 htp.p(' style="BORDER-BOTTOM: #cccc99 1px solid; BORDER-TOP: #f7f7e7 1px solid " align=left>');
7102 IF p_actual_url IS NOT NULL THEN
7103 --htp.p('<a href="' || p_actual_url || '" >' || p_label || ' </a> '); -- 2164190 sashaik --
7104 htp.p(bis_utilities_pvt.escape_html(LTRIM(p_label)));
7105 ELSE
7106 htp.p(bis_utilities_pvt.escape_html(LTRIM(p_label)));
7107 END IF;
7108 htp.p(' </td>');
7109 END draw_measure_name;
7110
7111
7112
7113 --============================================================
7114 -- p_formatted_actual -> the value displayed in value column
7115 --============================================================
7116 PROCEDURE draw_actual(
7117 p_value_lbl IN VARCHAR2
7118 ,p_formatted_actual IN VARCHAR2
7119 ,p_row_style IN VARCHAR2)
7120 IS
7121
7122 BEGIN
7123
7124 htp.p(' <td headers="'|| p_value_lbl ||
7125 '" class=OraPortletTableCellNumber'|| p_row_style);
7126 htp.p(' style="BORDER-BOTTOM: #cccc99 1px solid;BORDER-LEFT: #cccc99 1px solid" width="15%" valign="bottom" align=right nowrap> ');
7127 htp.p(' <span class=OraPortletBodyTextBlack>'|| bis_utilities_pvt.escape_html(p_formatted_actual) ||'</span>');
7128 htp.p(' </td>');
7129 END draw_actual;
7130
7131
7132
7133 --============================================================
7134 --
7135 --============================================================
7136 PROCEDURE draw_change(
7137 p_change_lbl IN VARCHAR2
7138 ,p_change IN VARCHAR2
7139 ,p_img IN VARCHAR2
7140 ,p_arrow_alt_text IN VARCHAR2
7141 ,p_row_style IN VARCHAR2
7142 )
7143 IS
7144
7145 BEGIN
7146
7147 htp.p(' <td headers="'|| p_change_lbl||'" class=OraPortletTableCellNumber'|| p_row_style);
7148 htp.p(' style="BORDER-LEFT: #cccc99 1px solid; BORDER-BOTTOM: #cccc99 1px solid; BORDER-TOP: #f7f7e7 1px solid " align="right" valign="bottom" nowrap>'|| bis_utilities_pvt.escape_html(p_change));
7149 htp.p(' </td>');
7150
7151 htp.p(' <td headers="change_img" class=OraPortletTableCellNumber'|| p_row_style);
7152 htp.p(' style="
7153 BORDER-BOTTOM: #cccc99 1px solid;BORDER-TOP: #f7f7e7 1px solid " align="left" valign="bottom" nowrap >');
7154
7155 IF ( p_img IS NOT NULL ) THEN
7156 htp.p(' <img src='|| p_img||' alt="'|| ICX_UTIL.replace_alt_quotes(p_arrow_alt_text)||'" height="12" >');
7157 ELSE
7158 htp.p(' ');
7159 END IF;
7160
7161 htp.p('</td>');
7162 END draw_change;
7163
7164
7165
7166
7167 --===========================================================
7168 FUNCTION is_authroized(
7169 p_cur_user_id IN PLS_INTEGER
7170 ,p_target_level_id IN PLS_INTEGER
7171 ) RETURN BOOLEAN
7172
7173 IS
7174 l_has_access INTEGER;
7175 CURSOR c1 IS
7176 SELECT distinct DECODE(b.user_id, NULL, 0, 1)
7177 FROM
7178 fnd_user_resp_groups b
7179 ,bisbv_target_levels d
7180 ,bis_indicator_resps e
7181 WHERE
7182 b.user_id = p_cur_user_id
7183 AND d.target_level_id = p_target_level_id
7184 AND e.target_level_id = d.target_level_id
7185 AND b.responsibility_id = e.responsibility_id
7186 AND b.start_date <= sysdate
7187 AND (b.end_date IS NULL or b.end_date >= sysdate);
7188
7189
7190
7191 BEGIN
7192
7193 OPEN c1;
7194 FETCH c1 INTO l_has_access;
7195 WHILE c1%FOUND LOOP
7196 IF ( l_has_access = 1 ) THEN
7197 CLOSE c1;
7198 RETURN TRUE;
7199 END IF;
7200 FETCH c1 INTO l_has_access;
7201 END LOOP;
7202
7203 CLOSE c1;
7204 RETURN FALSE;
7205
7206
7207
7208
7209 EXCEPTION
7210 WHEN OTHERS THEN
7211 IF c1%ISOPEN THEN CLOSE c1; END IF;
7212 RETURN FALSE;
7213
7214 END is_authroized;
7215
7216
7217
7218 --===========================================================
7219 -- retriving actual and report url
7220 --===========================================================
7221 PROCEDURE get_actual(
7222 p_target_rec IN BIS_TARGET_PUB.Target_Rec_Type
7223 ,x_actual_url OUT NOCOPY VARCHAR2
7224 ,x_actual_value OUT NOCOPY NUMBER
7225 ,x_comparison_actual_value OUT NOCOPY NUMBER
7226 ,x_err OUT NOCOPY VARCHAR2
7227 )
7228 IS
7229
7230 l_act_in BIS_ACTUAL_PUB.Actual_rec_type; -- 2164190 sashaik
7231 l_act_out BIS_ACTUAL_PUB.Actual_rec_type; -- 2164190 sashaik
7232 l_msg_count NUMBER; -- 2164190 sashaik
7233 l_msg_data VARCHAR2(32000); -- 2164190 sashaik
7234 l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type; -- 2164190 sashaik
7235 l_return_status VARCHAR2(300); -- 2164190 sashaik
7236
7237 BEGIN
7238
7239 l_act_in.Target_level_ID := p_target_rec.target_level_id;
7240 l_act_in.Dim1_Level_Value_ID := p_target_rec.dim1_level_value_id;
7241 l_act_in.Dim2_Level_Value_ID := p_target_rec.dim2_level_value_id;
7242 l_act_in.Dim3_Level_Value_ID := p_target_rec.dim3_level_value_id;
7243 l_act_in.Dim4_Level_Value_ID := p_target_rec.dim4_level_value_id;
7244 l_act_in.Dim5_Level_Value_ID := p_target_rec.dim5_level_value_id;
7245 l_act_in.Dim6_Level_Value_ID := p_target_rec.dim6_level_value_id;
7246 l_act_in.Dim7_Level_Value_ID := p_target_rec.dim7_level_value_id;
7247
7248 bis_actual_pub.Retrieve_Actual
7249 ( p_api_version => 1.0
7250 ,p_all_info => FND_API.G_FALSE
7251 ,p_Actual_Rec => l_act_in
7252 ,x_Actual_Rec => l_act_out
7253 ,x_return_Status => l_return_status
7254 ,x_msg_count => l_msg_count
7255 ,x_msg_data => l_msg_data
7256 ,x_error_tbl => l_error_tbl
7257 );
7258
7259 x_actual_url := l_act_out.Report_URL;
7260 x_actual_value := l_act_out.ACTUAL;
7261 x_comparison_actual_value := l_act_out.COMPARISON_ACTUAL_VALUE;
7262
7263 EXCEPTION
7264 WHEN OTHERS THEN
7265 -- htp.p(l_msg_data);
7266 x_actual_url := NULL;
7267 x_actual_value := NULL;
7268 x_comparison_actual_value := NULL;
7269 x_err := SQLERRM;
7270
7271 END get_actual;
7272
7273
7274
7275
7276
7277 --===========================================================
7278 -- retriving taget, Note: do not use BIS_TARGET_PUB.Rrieve_Target
7279 -- Procedure. Bug exists.
7280 --===========================================================
7281 PROCEDURE get_target(
7282 p_target_in IN BIS_TARGET_PUB.Target_Rec_Type
7283 ,x_target OUT NOCOPY NUMBER
7284 ,x_range1_low OUT NOCOPY NUMBER
7285 ,x_range1_high OUT NOCOPY NUMBER
7286 ,x_range2_low OUT NOCOPY NUMBER
7287 ,x_range2_high OUT NOCOPY NUMBER
7288 ,x_range3_low OUT NOCOPY NUMBER
7289 ,x_range3_high OUT NOCOPY NUMBER
7290 ,x_err OUT NOCOPY VARCHAR2
7291 )
7292 IS
7293
7294 l_comp_tar_id NUMBER;
7295
7296 -- Cursor to get the computing function id
7297 CURSOR c_comp_tar (p_target_level_id pls_integer) IS
7298 SELECT computing_function_id
7299 FROM bisbv_target_levels
7300 WHERE target_level_id = p_target_level_id;
7301
7302
7303 -- Cursor to get the target ranges
7304 -- mdamle 01/15/2001 - Use Dim6 and Dim7
7305 CURSOR c_target_range_rec IS
7306 SELECT
7307 target
7308 ,range1_low, range1_high
7309 ,range2_low, range2_high
7310 ,range3_low, range3_high
7311 FROM bisbv_targets tars
7312 WHERE tars.target_level_id = p_target_in.target_level_id
7313 -- mdamle 01/15/2001
7314 -- AND tars.org_level_value_id = p_target_in.org_level_value_id
7315 -- AND NVL(tars.time_level_value_id,'NILL')
7316 -- = NVL(p_target_in.time_level_value_id, 'NILL')
7317 AND tars.plan_id = p_target_in.plan_id
7318 AND NVL(tars.dim1_level_value_id, 'NILL')
7319 = NVL(p_target_in.dim1_level_value_id, 'NILL')
7320 AND NVL(tars.dim2_level_value_id, 'NILL')
7321 = NVL(p_target_in.dim2_level_value_id, 'NILL')
7322 AND NVL(tars.dim3_level_value_id, 'NILL')
7323 = NVL(p_target_in.dim3_level_value_id, 'NILL')
7324 AND NVL(tars.dim4_level_value_id, 'NILL')
7325 = NVL(p_target_in.dim4_level_value_id, 'NILL')
7326 AND NVL(tars.dim5_level_value_id, 'NILL')
7327 = NVL(p_target_in.dim5_level_value_id, 'NILL')
7328 AND NVL(tars.dim6_level_value_id, 'NILL')
7329 = NVL(p_target_in.dim6_level_value_id, 'NILL')
7330 AND NVL(tars.dim7_level_value_id, 'NILL')
7331 = NVL(p_target_in.dim7_level_value_id, 'NILL');
7332
7333 BEGIN
7334
7335 OPEN c_target_range_rec;
7336 FETCH c_target_range_rec INTO
7337 x_target
7338 ,x_range1_low, x_range1_high
7339 ,x_range2_low, x_range2_high
7340 ,x_range3_low, x_range3_high;
7341
7342 IF c_target_range_rec%NOTFOUND THEN
7343 x_target := NULL;
7344 x_range1_low := NULL;
7345 x_range1_high := NULL;
7346 x_range2_low := NULL;
7347 x_range2_high := NULL;
7348 x_range3_low := NULL;
7349 x_range3_high := NULL;
7350 END IF;
7351 CLOSE c_target_range_rec;
7352
7353 IF x_target IS NULL THEN
7354
7355 OPEN c_comp_tar(p_target_in.target_level_id);
7356 FETCH c_comp_tar INTO l_comp_tar_id;
7357 CLOSE c_comp_tar;
7358
7359 IF (l_comp_tar_id IS NOT NULL) THEN
7360 x_target := BIS_TARGET_PVT.Get_Target(l_comp_tar_id
7361 , p_target_in);
7362 END IF;
7363 END IF;
7364
7365
7366
7367 EXCEPTION
7368
7369 WHEN OTHERS THEN
7370 IF c_target_range_rec%ISOPEN THEN CLOSE c_target_range_rec; END IF;
7371 IF c_comp_tar%ISOPEN THEN CLOSE c_comp_tar; END IF;
7372 x_target := NULL;
7373 x_range1_low := NULL;
7374 x_range1_high := NULL;
7375 x_range2_low := NULL;
7376 x_range2_high := NULL;
7377 x_range3_low := NULL;
7378 x_range3_high := NULL;
7379 x_err := SQLERRM;
7380 END get_target;
7381
7382
7383
7384
7385 --===========================================================
7386 -- 1. Find out NOCOPY the time dimension level index and level id
7387 -- 2. If the above exists, find out NOCOPY the current period id
7388 -- and sets it into x_target_rec.dim[n]_level_value_id
7389 -- 3. If the the current period id doesnt have the actual,
7390 -- use the latest actual
7391 -- 4. If the above does not exist, return immediately
7392 --===========================================================
7393 PROCEDURE get_time_dim_index(
7394 p_ind_selection_id IN NUMBER
7395 ,x_target_rec IN OUT NOCOPY BIS_TARGET_PUB.Target_Rec_Type
7396 ,x_err OUT NOCOPY VARCHAR2
7397 )
7398 IS
7399 e_notimevalue EXCEPTION;
7400 l_time_dimension_level_id NUMBER;
7401 l_time_dimension_index NUMBER;
7402 l_last_period_id VARCHAR2(80) := NULL; -- bug#2173745
7403 l_current_period_id VARCHAR2(32000) := NULL;
7404 l_current_period_name VARCHAR2(32000) := NULL;
7405 isRollingLevel NUMBER;
7406 level_short_name VARCHAR2(3000);
7407
7408 -- meastmon 05/09/2001
7409 -- Cursor to get the index (1 to 7) of the time dimension level and
7410 -- the time dimension level id given a target level id.
7411 -- If the cursor returns no rows or null, then this target level
7412 -- doesn't have a time dimension level
7413
7414 CURSOR c_time_dimension_index (p_tarid pls_integer) IS
7415 SELECT
7416 x.sequence_no,
7417 decode(x.sequence_no,
7418 1, z.dimension1_level_id,
7419 2, z.dimension2_level_id,
7420 3, z.dimension3_level_id,
7421 4, z.dimension4_level_id,
7422 5, z.dimension5_level_id,
7423 6, z.dimension6_level_id,
7424 7, z.dimension7_level_id,
7425 NULL) time_dimension_level_id
7426 FROM
7427 bis_indicator_dimensions x
7428 ,bis_dimensions y
7429 ,bis_target_levels z
7430 WHERE x.dimension_id = y.dimension_id
7431 AND y.short_name=BIS_UTILITIES_PVT.GET_TIME_DIMENSION_NAME_TL(p_tarid,NULL)
7432 AND x.indicator_id = z.indicator_id
7433 AND z.target_level_id = p_tarid;
7434
7435
7436
7437 BEGIN
7438
7439 -- Find out NOCOPY which dimension level index corresponds to time
7440 -- dimension level. Also get the time dimension level id
7441
7442 OPEN c_time_dimension_index(x_target_rec.target_level_id);
7443 FETCH c_time_dimension_index INTO
7444 l_time_dimension_index,
7445 l_time_dimension_level_id;
7446
7447 IF c_time_dimension_index%NOTFOUND THEN -- no time dimension level
7448 l_time_dimension_index := -1;
7449 END IF;
7450 CLOSE c_time_dimension_index;
7451
7452 -- no time dimension level
7453 IF l_time_dimension_index <= 0 THEN
7454 RETURN;
7455 END IF;
7456
7457
7458 SELECT short_name
7459 INTO level_short_name
7460 FROM bis_levels
7461 WHERE level_id = l_time_dimension_level_id;
7462
7463 isRollingLevel := bis_utilities_pvt.Is_Rolling_Period_Level(level_short_name);
7464
7465 IF ( isRollingLevel = 0 ) THEN
7466
7467 -- Set the variable x_target_rec.dimX_level_value_id that correspond
7468 -- to the time dimension whith the value id of the current period.
7469 -- target level contain a time dimension.
7470 -- Get the time level value id and name to be used to get actual and target
7471 -- Right now this is the current period
7472 BIS_INDICATOR_REGION_UI_PVT.getCurrentPeriodInfo(
7473 p_ind_selection_id
7474 ,x_target_rec.target_level_id
7475 ,l_time_dimension_level_id
7476 ,l_current_period_id
7477 ,l_current_period_name);
7478
7479 IF l_current_period_id IS NULL THEN
7480 -- Conflicting!! If there is time level, there is current period
7481 -- Only in this case we raise an excepion ignore this selection
7482
7483 RAISE e_notimevalue;
7484 END IF;
7485
7486
7487 --bug#2173475, if current period id's actual not exist,
7488 --use the latest one
7489 IF ( NOT bis_indicator_region_ui_pvt.use_current_period(x_target_rec
7490 ,l_time_dimension_index
7491 ,l_current_period_id
7492 ,l_last_period_id) ) THEN
7493 -- should use last period id in query
7494
7495 l_current_period_id := l_last_period_id;
7496
7497 END IF;
7498
7499 END IF;
7500
7501
7502 assign_time_level_value_id
7503 ( p_is_rolling_level => isRollingLevel
7504 , p_current_period_id => l_current_period_id
7505 , p_time_dim_idx => l_time_dimension_index
7506 , p_target_rec => x_target_rec
7507 );
7508
7509
7510 EXCEPTION
7511
7512 WHEN e_notimevalue THEN
7513 x_err := 'Time dimension level exists but no current period.';
7514 RAISE e_notimevalue;
7515
7516 WHEN OTHERS THEN
7517 IF c_time_dimension_index%ISOPEN THEN CLOSE c_time_dimension_index; END IF;
7518 x_err := SQLERRM;
7519 END get_time_dim_index;
7520
7521
7522 --===========================================================
7523 -- Assign time level value id
7524 --===========================================================
7525 PROCEDURE assign_time_level_value_id
7526 (
7527 p_is_rolling_level IN NUMBER,
7528 p_current_period_id IN VARCHAR,
7529 p_time_dim_idx IN NUMBER,
7530 p_target_rec IN OUT NOCOPY BIS_TARGET_PUB.Target_Rec_Type
7531 )
7532 IS
7533 BEGIN
7534
7535 -- Set the variable x_target_rec.dimX_level_value_id that correspond to
7536 -- the time dimension whith the value id of the current period.
7537
7538 IF p_time_dim_idx = 1 THEN
7539 IF ( p_is_rolling_level = 0 ) THEN
7540 p_target_rec.dim1_level_value_id := p_current_period_id ;
7541 ELSE
7542 p_target_rec.dim1_level_value_id := '-1';
7543 END IF;
7544 ELSIF p_time_dim_idx = 2 THEN
7545 IF ( p_is_rolling_level = 0 ) THEN
7546 p_target_rec.dim2_level_value_id := p_current_period_id ;
7547 ELSE
7548 p_target_rec.dim2_level_value_id := '-1';
7549 END IF;
7550 ELSIF p_time_dim_idx = 3 THEN
7551 IF ( p_is_rolling_level = 0 ) THEN
7552 p_target_rec.dim3_level_value_id := p_current_period_id ;
7553 ELSE
7554 p_target_rec.dim3_level_value_id := '-1';
7555 END IF;
7556 ELSIF p_time_dim_idx = 4 THEN
7557 IF ( p_is_rolling_level = 0 ) THEN
7558 p_target_rec.dim4_level_value_id := p_current_period_id ;
7559 ELSE
7560 p_target_rec.dim4_level_value_id := '-1';
7561 END IF;
7562 ELSIF p_time_dim_idx = 5 THEN
7563 IF ( p_is_rolling_level = 0 ) THEN
7564 p_target_rec.dim5_level_value_id := p_current_period_id ;
7565 ELSE
7566 p_target_rec.dim5_level_value_id := '-1';
7567 END IF;
7568 ELSIF p_time_dim_idx = 6 THEN
7569 IF ( p_is_rolling_level = 0 ) THEN
7570 p_target_rec.dim6_level_value_id := p_current_period_id ;
7571 ELSE
7572 p_target_rec.dim6_level_value_id := '-1';
7573 END IF;
7574 ELSIF p_time_dim_idx = 7 THEN
7575 IF ( p_is_rolling_level = 0 ) THEN
7576 p_target_rec.dim7_level_value_id := p_current_period_id ;
7577 ELSE
7578 p_target_rec.dim7_level_value_id := '-1';
7579 END IF;
7580 END IF;
7581
7582 EXCEPTION
7583 WHEN OTHERS THEN
7584 NULL;
7585 END assign_time_level_value_id;
7586
7587
7588
7589 --===========================================================
7590 -- retriving actual and report url
7591 --===========================================================
7592 PROCEDURE get_change(
7593 p_actual_value IN NUMBER
7594 ,p_comp_actual_value IN NUMBER
7595 ,p_comp_source IN VARCHAR2
7596 ,p_good_bad IN VARCHAR2
7597 ,p_improve_msg IN VARCHAR2
7598 ,p_worse_msg IN VARCHAR2
7599 ,x_change OUT NOCOPY NUMBER
7600 ,x_img OUT NOCOPY VARCHAR2
7601 ,x_arrow_alt_text IN OUT NOCOPY VARCHAR2
7602 ,x_err OUT NOCOPY VARCHAR2
7603 )
7604 IS
7605 l_long_label VARCHAR2(2000); --2157402
7606
7607 BEGIN
7608 -- 1850860 -- rchandra 22-NOv-2001
7609 -- do not calculate if there is no acutal or comp actual
7610 IF ( (p_comp_actual_value IS NULL) OR (p_actual_value IS NULL) ) THEN
7611 x_change := NULL;
7612 x_img := NULL;
7613 x_arrow_alt_text := NULL;
7614 x_err := NULL;
7615 RETURN;
7616 END IF;
7617
7618
7619 l_long_label := NULL;
7620
7621 IF (p_comp_source IS NOT NULL) THEN -- comparison source is not null
7622 BIS_INDICATOR_REGION_UI_PVT.getAKRegionItemLongLabel(p_comp_source,
7623 l_long_label);
7624 IF (l_long_label IS NOT NULL) THEN
7625 x_arrow_alt_text := l_long_label ||'.';
7626 END IF;
7627
7628 END IF;
7629
7630
7631
7632 -- calculate the change %
7633 x_change := ((p_actual_value - p_comp_actual_value)/ ABS(p_comp_actual_value)) * 100;
7634 -- determine the dirction of arrow and the color
7635
7636 x_change := ROUND( x_change ); -- 2309916
7637
7638 IF x_change < 0 THEN
7639 IF p_good_bad = 'G' THEN
7640
7641 x_img := c_down_green;
7642 x_arrow_alt_text := x_arrow_alt_text ||p_improve_msg;--2157402
7643 ELSIF p_good_bad = 'B' THEN
7644 x_img := c_down_red;
7645 x_arrow_alt_text := x_arrow_alt_text ||p_worse_msg; --2157402
7646 ELSE
7647 x_img := c_down_black;
7648 END IF;
7649 ELSIF x_change > 0 THEN -- 2309916
7650 IF p_good_bad = 'G' THEN
7651 x_img := c_up_green;
7652 x_arrow_alt_text := x_arrow_alt_text ||p_improve_msg;--2157402
7653 ELSIF p_good_bad = 'B' THEN
7654 x_img := c_up_red;
7655 x_arrow_alt_text := x_arrow_alt_text ||p_worse_msg; --2157402
7656 ELSE
7657 x_img := c_up_black;
7658 END IF;
7659
7660 END IF;
7661
7662
7663
7664 EXCEPTION
7665 WHEN OTHERS THEN
7666
7667 x_err := SQLERRM;
7668
7669 END get_change;
7670
7671
7672 --===========================================================
7673 -- end of change by juwang
7674 --===========================================================
7675
7676 -- *******************************************************************
7677 end bis_indicator_region_ui_pvt;