1: PACKAGE BODY HXC_ALIAS_TRANSLATOR AS
2: /* $Header: hxcalttlr.pkb 120.7.12010000.2 2008/08/05 11:59:17 ubhat ship $ */
3:
4: g_debug boolean:= hr_utility.debug_enabled;
5:
6: -- ----------------------------------------------------------------------------
7: -- |---------------------------< do_deposit_translation>----------------------|
8: -- ----------------------------------------------------------------------------
46: --l_number_column_id NUMBER;
47:
48: BEGIN
49:
50: g_debug:=hr_utility.debug_enabled;
51:
52: if g_debug then
53: hr_utility.trace('BEFORE DEPOSIT');
54: end if;
49:
50: g_debug:=hr_utility.debug_enabled;
51:
52: if g_debug then
53: hr_utility.trace('BEFORE DEPOSIT');
54: end if;
55: --hxc_alias_utility.dump_bb_attribute_info(p_attributes);
56: if g_debug then
57: hr_utility.trace('------------------------');
53: hr_utility.trace('BEFORE DEPOSIT');
54: end if;
55: --hxc_alias_utility.dump_bb_attribute_info(p_attributes);
56: if g_debug then
57: hr_utility.trace('------------------------');
58: hr_utility.trace('------------------------');
59: hr_utility.trace('------------------------');
60: end if;
61:
54: end if;
55: --hxc_alias_utility.dump_bb_attribute_info(p_attributes);
56: if g_debug then
57: hr_utility.trace('------------------------');
58: hr_utility.trace('------------------------');
59: hr_utility.trace('------------------------');
60: end if;
61:
62: -- create the reference attribute index table for each tbb_id
55: --hxc_alias_utility.dump_bb_attribute_info(p_attributes);
56: if g_debug then
57: hr_utility.trace('------------------------');
58: hr_utility.trace('------------------------');
59: hr_utility.trace('------------------------');
60: end if;
61:
62: -- create the reference attribute index table for each tbb_id
63: hxc_alias_utility.get_tbb_id_reference_table
79: hxc_alias_utility.get_next_negative_attribute_id
80: (p_attributes => p_attributes);
81:
82: if g_debug then
83: hr_utility.trace('Joel : l_neg_attribute_id'||l_neg_attribute_id);
84: end if;
85:
86: -- now we are going to every attribute and if we need to we are doing the translation
87: l_index_attribute := p_attributes.first;
94: l_alias_old_value_id := NULL;
95: --l_alias_value_id := NULL;
96:
97: if g_debug then
98: hr_utility.trace('Joel : p_attributes(l_index_attribute).ATTRIBUTE_CATEGORY'||p_attributes(l_index_attribute).ATTRIBUTE_CATEGORY);
99: end if;
100:
101: -- we found an attribute to translate
102: IF (p_attributes(l_index_attribute).ATTRIBUTE_CATEGORY like 'OTL_ALIAS%') THEN
106: l_time_building_block_id := p_attributes(l_index_attribute).BUILDING_BLOCK_ID;
107: l_changed := p_attributes(l_index_attribute).CHANGED;
108:
109: if g_debug then
110: hr_utility.trace('l_alias_definition_id'||p_attributes(l_index_attribute).ATTRIBUTE2);
111: hr_utility.trace('l_alias_old_value_id'||p_attributes(l_index_attribute).ATTRIBUTE3);
112: hr_utility.trace('l_alias_type'||p_attributes(l_index_attribute).ATTRIBUTE4);
113: end if;
114:
107: l_changed := p_attributes(l_index_attribute).CHANGED;
108:
109: if g_debug then
110: hr_utility.trace('l_alias_definition_id'||p_attributes(l_index_attribute).ATTRIBUTE2);
111: hr_utility.trace('l_alias_old_value_id'||p_attributes(l_index_attribute).ATTRIBUTE3);
112: hr_utility.trace('l_alias_type'||p_attributes(l_index_attribute).ATTRIBUTE4);
113: end if;
114:
115: --l_alias_value_id := p_attributes(l_index_attribute).ATTRIBUTE1;
108:
109: if g_debug then
110: hr_utility.trace('l_alias_definition_id'||p_attributes(l_index_attribute).ATTRIBUTE2);
111: hr_utility.trace('l_alias_old_value_id'||p_attributes(l_index_attribute).ATTRIBUTE3);
112: hr_utility.trace('l_alias_type'||p_attributes(l_index_attribute).ATTRIBUTE4);
113: end if;
114:
115: --l_alias_value_id := p_attributes(l_index_attribute).ATTRIBUTE1;
116: -- look for the alias_definition_id associated
132: p_prompt => l_prompt);
133: END IF;
134:
135: if g_debug then
136: hr_utility.trace('l_alias_definition_id'||p_attributes(l_index_attribute).ATTRIBUTE2);
137: hr_utility.trace('l_alias_old_value_id'||p_attributes(l_index_attribute).ATTRIBUTE3);
138: hr_utility.trace('l_alias_type'||p_attributes(l_index_attribute).ATTRIBUTE4);
139: end if;
140:
133: END IF;
134:
135: if g_debug then
136: hr_utility.trace('l_alias_definition_id'||p_attributes(l_index_attribute).ATTRIBUTE2);
137: hr_utility.trace('l_alias_old_value_id'||p_attributes(l_index_attribute).ATTRIBUTE3);
138: hr_utility.trace('l_alias_type'||p_attributes(l_index_attribute).ATTRIBUTE4);
139: end if;
140:
141: IF l_alias_type = 'OTL_ALT_DDF' THEN
134:
135: if g_debug then
136: hr_utility.trace('l_alias_definition_id'||p_attributes(l_index_attribute).ATTRIBUTE2);
137: hr_utility.trace('l_alias_old_value_id'||p_attributes(l_index_attribute).ATTRIBUTE3);
138: hr_utility.trace('l_alias_type'||p_attributes(l_index_attribute).ATTRIBUTE4);
139: end if;
140:
141: IF l_alias_type = 'OTL_ALT_DDF' THEN
142: l_alias_old_value_id := to_number(p_attributes(l_index_attribute).ATTRIBUTE3);
160: -- debug
161: --
162:
163: if g_debug then
164: hr_utility.trace('before debug table');
165: end if;
166:
167: --hxc_alias_utility.dump_alias_val_att_to_match(l_alias_val_att_to_match);
168:
166:
167: --hxc_alias_utility.dump_alias_val_att_to_match(l_alias_val_att_to_match);
168:
169: if g_debug then
170: hr_utility.trace('After debug table');
171: end if;
172:
173: -- look for the attribute if the bld_blk_exists in the attributes table
174: -- already.
200: ,p_attribute_found => l_attribute_found
201: );
202:
203: if g_debug then
204: hr_utility.trace('l_bld_blk_info_type_id '||l_bld_blk_info_type_id);
205: hr_utility.trace('l_bld_blk_info_type '||l_bld_blk_info_type);
206: end if;
207: -- now we need to check if we need to create an attribute or do an update
208: IF l_attribute_found = FALSE AND l_att_to_delete = FALSE THEN
201: );
202:
203: if g_debug then
204: hr_utility.trace('l_bld_blk_info_type_id '||l_bld_blk_info_type_id);
205: hr_utility.trace('l_bld_blk_info_type '||l_bld_blk_info_type);
206: end if;
207: -- now we need to check if we need to create an attribute or do an update
208: IF l_attribute_found = FALSE AND l_att_to_delete = FALSE THEN
209:
207: -- now we need to check if we need to create an attribute or do an update
208: IF l_attribute_found = FALSE AND l_att_to_delete = FALSE THEN
209:
210: if g_debug then
211: hr_utility.trace('create');
212: end if;
213: l_neg_attribute_id := l_neg_attribute_id -1;
214:
215: p_attributes.extend;
272: */
273:
274: -- now we need to place the id of this alias at the right place
275: if g_debug then
276: hr_utility.trace('l_last_attribute '||l_last_attribute);
277: hr_utility.trace('l_segment '||l_segment);
278: hr_utility.trace('p_value_to_set '||l_value);
279: end if;
280:
273:
274: -- now we need to place the id of this alias at the right place
275: if g_debug then
276: hr_utility.trace('l_last_attribute '||l_last_attribute);
277: hr_utility.trace('l_segment '||l_segment);
278: hr_utility.trace('p_value_to_set '||l_value);
279: end if;
280:
281: hxc_alias_utility.set_attribute_information
274: -- now we need to place the id of this alias at the right place
275: if g_debug then
276: hr_utility.trace('l_last_attribute '||l_last_attribute);
277: hr_utility.trace('l_segment '||l_segment);
278: hr_utility.trace('p_value_to_set '||l_value);
279: end if;
280:
281: hxc_alias_utility.set_attribute_information
282: (p_attributes => p_attributes,
298: ELSE
299: IF (l_attribute_found) THEN
300:
301: if g_debug then
302: hr_utility.trace('l_segment'||l_segment);
303: hr_utility.trace('l_value'||l_value);
304: hr_utility.trace('l_changed'||l_changed);
305: end if;
306: -- update the attribute
299: IF (l_attribute_found) THEN
300:
301: if g_debug then
302: hr_utility.trace('l_segment'||l_segment);
303: hr_utility.trace('l_value'||l_value);
304: hr_utility.trace('l_changed'||l_changed);
305: end if;
306: -- update the attribute
307: -- now we need to place the id of this alias at the right place
300:
301: if g_debug then
302: hr_utility.trace('l_segment'||l_segment);
303: hr_utility.trace('l_value'||l_value);
304: hr_utility.trace('l_changed'||l_changed);
305: end if;
306: -- update the attribute
307: -- now we need to place the id of this alias at the right place
308: IF l_att_to_delete = FALSE THEN
312: p_attribute_to_set => l_segment,
313: p_value_to_set => l_value);
314: ELSE
315: if g_debug then
316: hr_utility.trace('DELETE');
317: hr_utility.trace('l_attribute_index'||l_attribute_index);
318: hr_utility.trace('l_changed'||l_changed);
319: end if;
320: hxc_alias_utility.set_attribute_information
313: p_value_to_set => l_value);
314: ELSE
315: if g_debug then
316: hr_utility.trace('DELETE');
317: hr_utility.trace('l_attribute_index'||l_attribute_index);
318: hr_utility.trace('l_changed'||l_changed);
319: end if;
320: hxc_alias_utility.set_attribute_information
321: (p_attributes => p_attributes,
314: ELSE
315: if g_debug then
316: hr_utility.trace('DELETE');
317: hr_utility.trace('l_attribute_index'||l_attribute_index);
318: hr_utility.trace('l_changed'||l_changed);
319: end if;
320: hxc_alias_utility.set_attribute_information
321: (p_attributes => p_attributes,
322: p_index_in_table => l_attribute_index,
329: p_attributes(l_attribute_index).CHANGED :=
330: nvl(l_changed,p_attributes(l_attribute_index).CHANGED);
331: END IF;
332: if g_debug then
333: hr_utility.trace('p_attributes(l_attribute_index).CHANGED'||p_attributes(l_attribute_index).CHANGED);
334: end if;
335: END IF;
336:
337: END IF;
364: --
365: -- debug
366: --
367: if g_debug then
368: hr_utility.trace(' AFTER TRANSLATION');
369: end if;
370:
371: --hxc_alias_utility.dump_bb_attribute_info(p_attributes);
372:
1026: n number;
1027:
1028: BEGIN
1029:
1030: g_debug:=hr_utility.debug_enabled;
1031:
1032:
1033: if g_debug then
1034: hr_utility.trace('p_start_time '||p_start_time);
1030: g_debug:=hr_utility.debug_enabled;
1031:
1032:
1033: if g_debug then
1034: hr_utility.trace('p_start_time '||p_start_time);
1035: hr_utility.trace('p_stop_time '||p_stop_time);
1036: hr_utility.trace('p_resource_id '||p_resource_id);
1037: hr_utility.trace('p_processing_mode '||p_processing_mode);
1038: end if;
1031:
1032:
1033: if g_debug then
1034: hr_utility.trace('p_start_time '||p_start_time);
1035: hr_utility.trace('p_stop_time '||p_stop_time);
1036: hr_utility.trace('p_resource_id '||p_resource_id);
1037: hr_utility.trace('p_processing_mode '||p_processing_mode);
1038: end if;
1039:
1032:
1033: if g_debug then
1034: hr_utility.trace('p_start_time '||p_start_time);
1035: hr_utility.trace('p_stop_time '||p_stop_time);
1036: hr_utility.trace('p_resource_id '||p_resource_id);
1037: hr_utility.trace('p_processing_mode '||p_processing_mode);
1038: end if;
1039:
1040: --p_attributes := hxc_alias_utility.convert_attribute_to_type(p_attributes_tmp);
1033: if g_debug then
1034: hr_utility.trace('p_start_time '||p_start_time);
1035: hr_utility.trace('p_stop_time '||p_stop_time);
1036: hr_utility.trace('p_resource_id '||p_resource_id);
1037: hr_utility.trace('p_processing_mode '||p_processing_mode);
1038: end if;
1039:
1040: --p_attributes := hxc_alias_utility.convert_attribute_to_type(p_attributes_tmp);
1041: --p_blocks := hxc_alias_utility.convert_timecard_to_type(p_blocks_tmp);
1096: p_start_time => l_start_time,
1097: p_stop_time => l_stop_time);
1098: /*
1099: if g_debug then
1100: hr_utility.trace('count '||l_alias_def_item_tab.count);
1101: hr_utility.trace('ALIAS_DEFINITION_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).ALIAS_DEFINITION_ID);
1102: hr_utility.trace('ITEM_ATTRIBUTE_CATEGORY '||l_alias_def_item_tab(l_alias_def_item_tab.first).ITEM_ATTRIBUTE_CATEGORY);
1103: hr_utility.trace('RESOURCE_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).RESOURCE_ID);
1104: hr_utility.trace('LAYOUT_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).LAYOUT_ID);
1097: p_stop_time => l_stop_time);
1098: /*
1099: if g_debug then
1100: hr_utility.trace('count '||l_alias_def_item_tab.count);
1101: hr_utility.trace('ALIAS_DEFINITION_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).ALIAS_DEFINITION_ID);
1102: hr_utility.trace('ITEM_ATTRIBUTE_CATEGORY '||l_alias_def_item_tab(l_alias_def_item_tab.first).ITEM_ATTRIBUTE_CATEGORY);
1103: hr_utility.trace('RESOURCE_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).RESOURCE_ID);
1104: hr_utility.trace('LAYOUT_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).LAYOUT_ID);
1105: hr_utility.trace('ALIAS_LABEL '||l_alias_def_item_tab(l_alias_def_item_tab.first).ALIAS_LABEL);
1098: /*
1099: if g_debug then
1100: hr_utility.trace('count '||l_alias_def_item_tab.count);
1101: hr_utility.trace('ALIAS_DEFINITION_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).ALIAS_DEFINITION_ID);
1102: hr_utility.trace('ITEM_ATTRIBUTE_CATEGORY '||l_alias_def_item_tab(l_alias_def_item_tab.first).ITEM_ATTRIBUTE_CATEGORY);
1103: hr_utility.trace('RESOURCE_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).RESOURCE_ID);
1104: hr_utility.trace('LAYOUT_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).LAYOUT_ID);
1105: hr_utility.trace('ALIAS_LABEL '||l_alias_def_item_tab(l_alias_def_item_tab.first).ALIAS_LABEL);
1106: hr_utility.trace('PREF_START_DATE '||l_alias_def_item_tab(l_alias_def_item_tab.first).PREF_START_DATE);
1099: if g_debug then
1100: hr_utility.trace('count '||l_alias_def_item_tab.count);
1101: hr_utility.trace('ALIAS_DEFINITION_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).ALIAS_DEFINITION_ID);
1102: hr_utility.trace('ITEM_ATTRIBUTE_CATEGORY '||l_alias_def_item_tab(l_alias_def_item_tab.first).ITEM_ATTRIBUTE_CATEGORY);
1103: hr_utility.trace('RESOURCE_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).RESOURCE_ID);
1104: hr_utility.trace('LAYOUT_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).LAYOUT_ID);
1105: hr_utility.trace('ALIAS_LABEL '||l_alias_def_item_tab(l_alias_def_item_tab.first).ALIAS_LABEL);
1106: hr_utility.trace('PREF_START_DATE '||l_alias_def_item_tab(l_alias_def_item_tab.first).PREF_START_DATE);
1107: hr_utility.trace('PREF_END_DATE '||l_alias_def_item_tab(l_alias_def_item_tab.first).PREF_END_DATE);
1100: hr_utility.trace('count '||l_alias_def_item_tab.count);
1101: hr_utility.trace('ALIAS_DEFINITION_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).ALIAS_DEFINITION_ID);
1102: hr_utility.trace('ITEM_ATTRIBUTE_CATEGORY '||l_alias_def_item_tab(l_alias_def_item_tab.first).ITEM_ATTRIBUTE_CATEGORY);
1103: hr_utility.trace('RESOURCE_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).RESOURCE_ID);
1104: hr_utility.trace('LAYOUT_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).LAYOUT_ID);
1105: hr_utility.trace('ALIAS_LABEL '||l_alias_def_item_tab(l_alias_def_item_tab.first).ALIAS_LABEL);
1106: hr_utility.trace('PREF_START_DATE '||l_alias_def_item_tab(l_alias_def_item_tab.first).PREF_START_DATE);
1107: hr_utility.trace('PREF_END_DATE '||l_alias_def_item_tab(l_alias_def_item_tab.first).PREF_END_DATE);
1108: end if;
1101: hr_utility.trace('ALIAS_DEFINITION_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).ALIAS_DEFINITION_ID);
1102: hr_utility.trace('ITEM_ATTRIBUTE_CATEGORY '||l_alias_def_item_tab(l_alias_def_item_tab.first).ITEM_ATTRIBUTE_CATEGORY);
1103: hr_utility.trace('RESOURCE_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).RESOURCE_ID);
1104: hr_utility.trace('LAYOUT_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).LAYOUT_ID);
1105: hr_utility.trace('ALIAS_LABEL '||l_alias_def_item_tab(l_alias_def_item_tab.first).ALIAS_LABEL);
1106: hr_utility.trace('PREF_START_DATE '||l_alias_def_item_tab(l_alias_def_item_tab.first).PREF_START_DATE);
1107: hr_utility.trace('PREF_END_DATE '||l_alias_def_item_tab(l_alias_def_item_tab.first).PREF_END_DATE);
1108: end if;
1109: */
1102: hr_utility.trace('ITEM_ATTRIBUTE_CATEGORY '||l_alias_def_item_tab(l_alias_def_item_tab.first).ITEM_ATTRIBUTE_CATEGORY);
1103: hr_utility.trace('RESOURCE_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).RESOURCE_ID);
1104: hr_utility.trace('LAYOUT_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).LAYOUT_ID);
1105: hr_utility.trace('ALIAS_LABEL '||l_alias_def_item_tab(l_alias_def_item_tab.first).ALIAS_LABEL);
1106: hr_utility.trace('PREF_START_DATE '||l_alias_def_item_tab(l_alias_def_item_tab.first).PREF_START_DATE);
1107: hr_utility.trace('PREF_END_DATE '||l_alias_def_item_tab(l_alias_def_item_tab.first).PREF_END_DATE);
1108: end if;
1109: */
1110: ELSIF p_processing_mode = HXC_ALIAS_UTILITY.c_tk_processing THEN
1103: hr_utility.trace('RESOURCE_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).RESOURCE_ID);
1104: hr_utility.trace('LAYOUT_ID '||l_alias_def_item_tab(l_alias_def_item_tab.first).LAYOUT_ID);
1105: hr_utility.trace('ALIAS_LABEL '||l_alias_def_item_tab(l_alias_def_item_tab.first).ALIAS_LABEL);
1106: hr_utility.trace('PREF_START_DATE '||l_alias_def_item_tab(l_alias_def_item_tab.first).PREF_START_DATE);
1107: hr_utility.trace('PREF_END_DATE '||l_alias_def_item_tab(l_alias_def_item_tab.first).PREF_END_DATE);
1108: end if;
1109: */
1110: ELSIF p_processing_mode = HXC_ALIAS_UTILITY.c_tk_processing THEN
1111: -- get from the timekeeper preference the list of alias definition
1161: -- ('l_alias_type: '||l_alias_type);
1162: --dbms_output.put_line
1163: -- ('l_reference_object: '||l_reference_object);
1164: if g_debug then
1165: hr_utility.trace
1166: ('l_alias_def_item_tab(l_index_alias_def).alias_definition_id: '||l_alias_def_item_tab(l_index_alias_def).alias_definition_id);
1167: hr_utility.trace
1168: ('l_alias_type: '||l_alias_type);
1169: hr_utility.trace
1163: -- ('l_reference_object: '||l_reference_object);
1164: if g_debug then
1165: hr_utility.trace
1166: ('l_alias_def_item_tab(l_index_alias_def).alias_definition_id: '||l_alias_def_item_tab(l_index_alias_def).alias_definition_id);
1167: hr_utility.trace
1168: ('l_alias_type: '||l_alias_type);
1169: hr_utility.trace
1170: ('l_reference_object: '||l_reference_object);
1171: end if;
1165: hr_utility.trace
1166: ('l_alias_def_item_tab(l_index_alias_def).alias_definition_id: '||l_alias_def_item_tab(l_index_alias_def).alias_definition_id);
1167: hr_utility.trace
1168: ('l_alias_type: '||l_alias_type);
1169: hr_utility.trace
1170: ('l_reference_object: '||l_reference_object);
1171: end if;
1172:
1173: --reset the table.
1195: ----dbms_output.put_line
1196: -- ('c_alias_value.alias_value_id: '||c_alias_value.alias_value_id);
1197:
1198: if g_debug then
1199: hr_utility.trace
1200: ('c_alias_value.alias_value_id: '||c_alias_value.alias_value_id);
1201: end if;
1202:
1203: --hxc_alias_utility.dump_alias_val_att_to_match( l_alias_val_att_to_match);