40: --
41: IF(p_duplicate_template = TRUE) THEN
42: l_replace := true;
43: ELSE
44: l_template_index := hxc_timecard_block_utils.find_active_timecard_index
45: (p_blocks);
46:
47:
48: open c_template_is_a_timecard
53: fetch c_template_is_a_timecard into l_dummy_scope;
54: if(c_template_is_a_timecard%NOTFOUND) then
55: l_replace := true;
56: else
57: if(l_dummy_scope = hxc_timecard.c_timecard_scope) then
58: l_replace := true;
59: else
60: l_replace := false;
61: end if;
72: Exit When Not p_blocks.exists(l_block_index);
73: l_block_replacement_ids(p_blocks(l_block_index).time_building_block_id) := l_block_start;
74: p_blocks(l_block_index).time_building_block_id := l_block_start;
75: p_blocks(l_block_index).object_version_number := 1;
76: p_blocks(l_block_index).changed := hxc_timecard.c_yes;
77: p_blocks(l_block_index).new := hxc_timecard.c_yes;
78: p_blocks(l_block_index).process := hxc_timecard.c_yes;
79: p_blocks(l_block_index).parent_is_new := hxc_timecard.c_yes;
80:
73: l_block_replacement_ids(p_blocks(l_block_index).time_building_block_id) := l_block_start;
74: p_blocks(l_block_index).time_building_block_id := l_block_start;
75: p_blocks(l_block_index).object_version_number := 1;
76: p_blocks(l_block_index).changed := hxc_timecard.c_yes;
77: p_blocks(l_block_index).new := hxc_timecard.c_yes;
78: p_blocks(l_block_index).process := hxc_timecard.c_yes;
79: p_blocks(l_block_index).parent_is_new := hxc_timecard.c_yes;
80:
81: l_block_start := l_block_start -1;
74: p_blocks(l_block_index).time_building_block_id := l_block_start;
75: p_blocks(l_block_index).object_version_number := 1;
76: p_blocks(l_block_index).changed := hxc_timecard.c_yes;
77: p_blocks(l_block_index).new := hxc_timecard.c_yes;
78: p_blocks(l_block_index).process := hxc_timecard.c_yes;
79: p_blocks(l_block_index).parent_is_new := hxc_timecard.c_yes;
80:
81: l_block_start := l_block_start -1;
82: l_block_index := p_blocks.next(l_block_index);
75: p_blocks(l_block_index).object_version_number := 1;
76: p_blocks(l_block_index).changed := hxc_timecard.c_yes;
77: p_blocks(l_block_index).new := hxc_timecard.c_yes;
78: p_blocks(l_block_index).process := hxc_timecard.c_yes;
79: p_blocks(l_block_index).parent_is_new := hxc_timecard.c_yes;
80:
81: l_block_start := l_block_start -1;
82: l_block_index := p_blocks.next(l_block_index);
83: End Loop;
105: p_attributes(l_attribute_index).object_version_number := 1;
106: p_attributes(l_attribute_index).building_block_ovn :=1;
107: p_attributes(l_attribute_index).building_block_id :=
108: l_block_replacement_ids(p_attributes(l_attribute_index).building_block_id);
109: p_attributes(l_attribute_index).changed := hxc_timecard.c_yes;
110: p_attributes(l_attribute_index).new := hxc_timecard.c_yes;
111: p_attributes(l_attribute_index).process := hxc_timecard.c_yes;
112: l_attribute_start := l_attribute_start -1;
113: l_attribute_index := p_attributes.next(l_attribute_index);
106: p_attributes(l_attribute_index).building_block_ovn :=1;
107: p_attributes(l_attribute_index).building_block_id :=
108: l_block_replacement_ids(p_attributes(l_attribute_index).building_block_id);
109: p_attributes(l_attribute_index).changed := hxc_timecard.c_yes;
110: p_attributes(l_attribute_index).new := hxc_timecard.c_yes;
111: p_attributes(l_attribute_index).process := hxc_timecard.c_yes;
112: l_attribute_start := l_attribute_start -1;
113: l_attribute_index := p_attributes.next(l_attribute_index);
114: End Loop;
107: p_attributes(l_attribute_index).building_block_id :=
108: l_block_replacement_ids(p_attributes(l_attribute_index).building_block_id);
109: p_attributes(l_attribute_index).changed := hxc_timecard.c_yes;
110: p_attributes(l_attribute_index).new := hxc_timecard.c_yes;
111: p_attributes(l_attribute_index).process := hxc_timecard.c_yes;
112: l_attribute_start := l_attribute_start -1;
113: l_attribute_index := p_attributes.next(l_attribute_index);
114: End Loop;
115:
140: IF (p_mode = 'ADD') THEN
141:
142: IF(p_blocks(l_block_index).type = 'RANGE' ) THEN
143: p_blocks(l_block_index).measure:=
144: (hxc_timecard_block_utils.date_value(p_blocks(l_block_index).stop_time)
145: -hxc_timecard_block_utils.date_value(p_blocks(l_block_index).start_time)
146: )*24;
147: p_blocks(l_block_index).unit_of_measure:= 'HOURS';
148: END IF;
141:
142: IF(p_blocks(l_block_index).type = 'RANGE' ) THEN
143: p_blocks(l_block_index).measure:=
144: (hxc_timecard_block_utils.date_value(p_blocks(l_block_index).stop_time)
145: -hxc_timecard_block_utils.date_value(p_blocks(l_block_index).start_time)
146: )*24;
147: p_blocks(l_block_index).unit_of_measure:= 'HOURS';
148: END IF;
149:
185: EXIT WHEN NOT p_blocks.exists(l_index);
186:
187: l_block := p_blocks(l_index);
188:
189: if(hxc_timecard_block_utils.is_new_block(l_block)) then
190:
191: IF g_debug THEN
192: hr_utility.trace('In hxc_block_attribute_update.set_block_process_flags 1');
193: END IF;
197: IF g_debug THEN
198: hr_utility.trace('In hxc_block_attribute_update.g_tc_api_flag ::'|| hxc_block_attribute_update.g_tc_api_flag);
199: END IF;
200:
201: if(hxc_timecard_block_utils.is_active_block(l_block)) then
202: p_blocks(l_index).process := 'Y';
203: else
204: p_blocks(l_index).process := 'N';
205: end if;
205: end if;
206:
207: else
208: begin
209: l_old_block := hxc_timecard_block_utils.build_block
210: (p_time_building_block_id => l_block.time_building_block_id
211: ,p_time_building_block_ovn => l_block.object_version_number
212: );
213:
212: );
213:
214: IF g_debug THEN
215: hr_utility.trace('In hxc_block_attribute_update.set_block_process_flags 2');
216: hr_utility.trace('calling hxc_timecard_block_utils.blocks_are_different proc.');
217: END IF;
218:
219:
220:
217: END IF;
218:
219:
220:
221: if(hxc_timecard_block_utils.blocks_are_different
222: (p_block1 => l_block
223: ,p_block2 => l_old_block
224: )
225: ) then
244: p_blocks(l_index).process := 'N';
245:
246: end;
247:
248: if(hxc_timecard_block_utils.parent_has_changed(p_blocks,p_blocks(l_index).parent_building_block_id)) then
249: p_blocks(l_index).process := 'Y';
250: end if;
251:
252: end if;
296: hr_utility.trace('hxc_block_attribute_update.g_tc_api_flag is set to ::'|| hxc_block_attribute_update.g_tc_api_flag);
297: END IF;
298:
299: else
300: if(NOT hxc_timecard_attribute_utils.is_system_context(l_attribute)) then
301: begin
302: l_old_attribute := hxc_timecard_attribute_utils.build_attribute
303: (p_time_attribute_id => l_attribute.time_attribute_id
304: ,p_object_version_number => l_attribute.object_version_number
298:
299: else
300: if(NOT hxc_timecard_attribute_utils.is_system_context(l_attribute)) then
301: begin
302: l_old_attribute := hxc_timecard_attribute_utils.build_attribute
303: (p_time_attribute_id => l_attribute.time_attribute_id
304: ,p_object_version_number => l_attribute.object_version_number
305: ,p_time_building_block_id => l_attribute.building_block_id
306: ,p_time_building_block_ovn => l_attribute.building_block_ovn
305: ,p_time_building_block_id => l_attribute.building_block_id
306: ,p_time_building_block_ovn => l_attribute.building_block_ovn
307: );
308:
309: if(hxc_timecard_attribute_utils.attributes_are_different
310: (p_attribute1 => l_attribute
311: ,p_attribute2 => l_old_attribute
312: )
313: ) then
403: l_block_index := p_blocks.first;
404: Loop
405: Exit when not p_blocks.exists(l_block_index);
406:
407: if(p_blocks(l_block_index).process = hxc_timecard.c_yes) then
408: l_process_blocks(p_blocks(l_block_index).time_building_block_id) := l_block_index;
409: end if;
410:
411: l_block_index := p_blocks.next(l_block_index);
426: l_attribute_index := p_attributes.first;
427: Loop
428: Exit when not p_attributes.exists(l_attribute_index);
429:
430: if(p_attributes(l_attribute_index).process = hxc_timecard.c_yes) then
431: l_process_blocks(p_attributes(l_attribute_index).building_block_id):= l_attribute_index;
432: -- p_attributes(l_attribute_index).changed := hxc_timecard.c_yes; -- SHIV
433: else
434: if(l_process_blocks.exists(p_attributes(l_attribute_index).building_block_id))then
428: Exit when not p_attributes.exists(l_attribute_index);
429:
430: if(p_attributes(l_attribute_index).process = hxc_timecard.c_yes) then
431: l_process_blocks(p_attributes(l_attribute_index).building_block_id):= l_attribute_index;
432: -- p_attributes(l_attribute_index).changed := hxc_timecard.c_yes; -- SHIV
433: else
434: if(l_process_blocks.exists(p_attributes(l_attribute_index).building_block_id))then
435: -- p_attributes(l_attribute_index).changed := hxc_timecard.c_yes; --Doubt
436: p_attributes(l_attribute_index).process := hxc_timecard.c_yes; --Doubt
431: l_process_blocks(p_attributes(l_attribute_index).building_block_id):= l_attribute_index;
432: -- p_attributes(l_attribute_index).changed := hxc_timecard.c_yes; -- SHIV
433: else
434: if(l_process_blocks.exists(p_attributes(l_attribute_index).building_block_id))then
435: -- p_attributes(l_attribute_index).changed := hxc_timecard.c_yes; --Doubt
436: p_attributes(l_attribute_index).process := hxc_timecard.c_yes; --Doubt
437: else
438: -- p_attributes(l_attribute_index).changed := hxc_timecard.c_no;
439: p_attributes(l_attribute_index).process := hxc_timecard.c_no;
432: -- p_attributes(l_attribute_index).changed := hxc_timecard.c_yes; -- SHIV
433: else
434: if(l_process_blocks.exists(p_attributes(l_attribute_index).building_block_id))then
435: -- p_attributes(l_attribute_index).changed := hxc_timecard.c_yes; --Doubt
436: p_attributes(l_attribute_index).process := hxc_timecard.c_yes; --Doubt
437: else
438: -- p_attributes(l_attribute_index).changed := hxc_timecard.c_no;
439: p_attributes(l_attribute_index).process := hxc_timecard.c_no;
440: end if;
434: if(l_process_blocks.exists(p_attributes(l_attribute_index).building_block_id))then
435: -- p_attributes(l_attribute_index).changed := hxc_timecard.c_yes; --Doubt
436: p_attributes(l_attribute_index).process := hxc_timecard.c_yes; --Doubt
437: else
438: -- p_attributes(l_attribute_index).changed := hxc_timecard.c_no;
439: p_attributes(l_attribute_index).process := hxc_timecard.c_no;
440: end if;
441: end if;
442: l_attribute_index := p_attributes.next(l_attribute_index);
435: -- p_attributes(l_attribute_index).changed := hxc_timecard.c_yes; --Doubt
436: p_attributes(l_attribute_index).process := hxc_timecard.c_yes; --Doubt
437: else
438: -- p_attributes(l_attribute_index).changed := hxc_timecard.c_no;
439: p_attributes(l_attribute_index).process := hxc_timecard.c_no;
440: end if;
441: end if;
442: l_attribute_index := p_attributes.next(l_attribute_index);
443: End Loop;
450: l_block_index := p_blocks.first;
451: Loop
452: Exit when not p_blocks.exists(l_block_index);
453: if(l_process_blocks.exists(p_blocks(l_block_index).time_building_block_id)) then
454: p_blocks(l_block_index).process := hxc_timecard.c_yes;
455: else
456: p_blocks(l_block_index).process := hxc_timecard.c_no;
457: end if;
458:
452: Exit when not p_blocks.exists(l_block_index);
453: if(l_process_blocks.exists(p_blocks(l_block_index).time_building_block_id)) then
454: p_blocks(l_block_index).process := hxc_timecard.c_yes;
455: else
456: p_blocks(l_block_index).process := hxc_timecard.c_no;
457: end if;
458:
459: -- Modified the following PA Validation code for bug 12916249
460: hr_utility.trace(' Allow Deletion - Profile Value: ' ||FND_PROFILE.VALUE('HXC_ALLW_TC_DEL_CLSD_PRJ'));
463: THEN
464: -- This is for PA validation
465: hr_utility.trace(' Prof In IF ');
466:
467: if(hxc_timecard_block_utils.parent_has_changed(p_blocks,p_blocks(l_block_index).parent_building_block_id)) then
468: p_blocks(l_block_index).changed := hxc_timecard.c_yes;
469: end if;
470: END IF;
471:
464: -- This is for PA validation
465: hr_utility.trace(' Prof In IF ');
466:
467: if(hxc_timecard_block_utils.parent_has_changed(p_blocks,p_blocks(l_block_index).parent_building_block_id)) then
468: p_blocks(l_block_index).changed := hxc_timecard.c_yes;
469: end if;
470: END IF;
471:
472: l_block_index := p_blocks.next(l_block_index);