DBA Data[Home] [Help]

PACKAGE BODY: APPS.HXC_TC_AP_LINKS_PKG

Source


1 package body hxc_tc_ap_links_pkg as
2 /* $Header: hxctalsum.pkb 115.1 2004/06/08 17:50:51 arundell noship $ */
3 
4 
5 procedure insert_summary_row(p_timecard_id in hxc_time_building_blocks.time_building_block_id%type
6                             ,p_application_period_id in hxc_time_building_blocks.time_building_block_id%type) is
7 
8 begin
9 
10 insert into hxc_tc_ap_links
11 (timecard_id
12 ,application_period_id
13 )
14 values
15 (p_timecard_id
16 ,p_application_period_id
17 );
18 
19 end insert_summary_row;
20 
21 procedure delete_summary_row(p_timecard_id in hxc_time_building_blocks.time_building_block_id%type
22                             ,p_application_period_id in hxc_time_building_blocks.time_building_block_id%type) is
23 
24 
25 begin
26 
27 delete from hxc_tc_ap_links
28  where timecard_id = p_timecard_id
29    and application_period_id = p_application_period_id;
30 
31 end delete_summary_row;
32 
33 procedure remove_timecard_links
34            (p_timecard_id in hxc_time_building_blocks.time_building_block_id%type) is
35 
36 begin
37 
38 delete from hxc_tc_ap_links where timecard_id = p_timecard_id;
39 
40 end remove_timecard_links;
41 
42 procedure create_timecard_links
43             (p_timecard_id in hxc_time_building_blocks.time_building_block_id%type) is
44 
45 cursor c_timecard_info(p_id in hxc_time_building_blocks.time_building_block_id%type) is
46   select resource_id
47         ,start_time
48         ,stop_time
49     from hxc_timecard_summary
50    where timecard_id = p_id;
51 
52 cursor c_app_periods(p_resource_id in hxc_time_building_blocks.resource_id%type
53                     ,p_start_time  in hxc_time_building_blocks.start_time%type
54                     ,p_stop_time   in hxc_time_building_blocks.stop_time%type
55                     ) is
56   select application_period_id
57     from hxc_app_period_summary
58    where resource_id = p_resource_id
59      and start_time <= p_stop_time
60      and stop_time >= p_start_time;
61 
62 l_resource_id hxc_timecard_summary.resource_id%type;
63 l_start_time  hxc_timecard_summary.start_time%type;
64 l_stop_time   hxc_timecard_summary.stop_time%type;
65 
66 begin
67 
68 --
69 -- 1. Remove existing links
70 --
71 
72 remove_timecard_links(p_timecard_id);
73 
74 --
75 -- 2. Find timecard information
76 --
77 
78 open c_timecard_info(p_timecard_id);
79 fetch c_timecard_info into l_resource_id, l_start_time, l_stop_time;
80 if(c_timecard_info%notfound) then
81   close c_timecard_info;
82   fnd_message.set_name('HXC','HXC_NO_TC_SUMMARY');
83   fnd_message.raise_error;
84 end if;
85 close c_timecard_info;
86 
87 --
88 -- 3. Find corresponding application period info, and create link
89 --
90 
91 for app_rec in c_app_periods(l_resource_id,l_start_time,l_stop_time) loop
92 
93   insert_summary_row(p_timecard_id,app_rec.application_period_id);
94 
95 end loop;
96 
97 end create_timecard_links;
98 
99 procedure remove_app_period_links
100             (p_application_period_id in hxc_tc_ap_links.application_period_id%type) is
101 
102 Begin
103 
104 delete from hxc_tc_ap_links
105  where application_period_id = p_application_period_id;
106 
107 End remove_app_period_links;
108 
109 
110 procedure create_app_period_links
111             (p_application_period_id in hxc_tc_ap_links.application_period_id%type) is
112 
113 cursor c_app_period_info(p_id in hxc_time_building_blocks.time_building_block_id%type) is
114   select resource_id
115         ,start_time
116         ,stop_time
117     from hxc_app_period_summary
118    where application_period_id = p_id;
119 
120 cursor c_timecards(p_resource_id in hxc_time_building_blocks.resource_id%type
121                   ,p_start_time  in hxc_time_building_blocks.start_time%type
122                   ,p_stop_time   in hxc_time_building_blocks.stop_time%type
123                   ) is
124   select timecard_id
125     from hxc_timecard_summary
126    where resource_id = p_resource_id
127      and start_time <= p_stop_time
128      and stop_time >= p_start_time;
129 
130 l_resource_id hxc_timecard_summary.resource_id%type;
131 l_start_time  hxc_timecard_summary.start_time%type;
132 l_stop_time   hxc_timecard_summary.stop_time%type;
133 
134 begin
135 --
136 -- 1. Remove the existing application period links
137 --
138 remove_app_period_links
139       (p_application_period_id => p_application_period_id);
140 --
141 -- 2. Find application period information
142 --
143 open c_app_period_info(p_application_period_id);
144 fetch c_app_period_info into l_resource_id, l_start_time, l_stop_time;
145 if(c_app_period_info%found) then
146 
147   --
148   -- 3. Find corresponding application period info, and create link
149   --
150 
151   for tc_rec in c_timecards(l_resource_id,l_start_time,l_stop_time) loop
152 
153     insert_summary_row(tc_rec.timecard_id,p_application_period_id);
154 
155   end loop;
156 
157 end if;
158 close c_app_period_info;
159 
160 end create_app_period_links;
161 
162 end hxc_tc_ap_links_pkg;