DBA Data[Home] [Help]

PACKAGE: APPS.HXC_TIMEKEEPER_UTILITIES

Source


1 PACKAGE hxc_timekeeper_utilities AS
2 /* $Header: hxctkutil.pkh 120.4 2006/07/13 03:48:24 sechandr noship $ */
3 Type emptcdata is record (timecard_id  number(15),
4 			  resource_id  number(15),
5                           tc_frdt   date,
6     			  tc_todt    date
7 			 );
8 Type emptctab is  table of emptcdata index by binary_integer;
9 Type  Tk_resource_perf_rec is record
10     (res_recperiod       number,
11      res_negentry        varchar2(150),
12      res_appstyle        varchar2(150),
13      res_layout1	 varchar2(150),
14      res_layout2	 varchar2(150),
15      res_layout3	 varchar2(150),
16      res_layout4	 varchar2(150),
17      res_layout5	 varchar2(150),
18      res_layout6	 varchar2(150),
19      res_layout7	 varchar2(150),
20      res_layout8	 varchar2(150),
21      res_edits           varchar2(150),
22      res_past_date       varchar2(150),
23      res_future_date     varchar2(150),
24      res_emp_start_date  date,
25      res_emp_terminate_date date,
26      res_audit_enabled varchar2(150)
27      );
28 Type tk_resource_pref_tab is table of  Tk_resource_perf_rec index by BINARY_INTEGER;
29 ---------------------------------------------------------------------------
30 --------- GLOBAL DECLARATION
31 ---------------------------------------------------------------------------
32 g_resource_perftab   tk_resource_pref_tab;	--index by resource_id
33 g_start_stop_pref_cache   tk_resource_pref_tab; --index by start_index of bulk pref table
34 ----------------------------------------------------------------------------
35 --ADD_BLOCK  used to add a row in timecard block
36 ----------------------------------------------------------------------------
37 PROCEDURE add_block (p_timecard       	in out NOCOPY HXC_BLOCK_TABLE_TYPE,
38 		     p_timecard_id	in NUMBER,
39 		     p_ovn		in NUMBER,
40 		     p_parent_id 	in NUMBER,
41 		     p_parent_ovn	in NUMBER,
42 		     p_approval_style_id in NUMBER,
43 		     p_measure		in NUMBER,
44                      p_scope     	in VARCHAR2,
45                      p_date_to		in date default null,
46                      p_date_from 	in date default null,
47                      p_start_period 	in date,
48                      p_end_period 	in date,
49                      p_resource_id 	in number,
50                      p_changed		in VARCHAR2,
51 		     p_comment_text     in varchar2,
52 		     p_submit_flg       in BOOLEAN,
53 		     p_application_set_id in hxc_time_building_blocks.application_set_id%type,
54 		     p_timecard_index_info in out NOCOPY hxc_timekeeper_process.t_timecard_index_info);
55 
56 -------------------------------------------------------------------------------
57 -- this procedure add a attribute in the attribute_table
58 -------------------------------------------------------------------------------
59 PROCEDURE add_attribute (p_attribute     in out NOCOPY HXC_ATTRIBUTE_TABLE_TYPE,
60 			 p_attribute_id	 in 	NUMBER,
61 			 p_tbb_id	 in     NUMBER,
62 			 p_tbb_ovn       in 	NUMBER,
63 			 p_blk_type      in    	VARCHAR2,
64 			 p_blk_id	 in     NUMBER,
65 			 p_att_category  in	VARCHAR2,
66 			 p_att_1	 in 	VARCHAR2,
67 			 p_att_2	 in 	VARCHAR2,
68 			 p_att_3	 in  	VARCHAR2,
69 			 p_att_4         in     varchar2,
70 		         p_att_5	 in     varchar2 default NULL,
71 			 p_att_6	 in 	VARCHAR2 default NULL,
72 			 p_att_7	 in  	VARCHAR2 default NULL,
73 			 p_att_8         in     varchar2 default NULL,
74 			 p_attribute_index_info in out NOCOPY hxc_timekeeper_process.t_attribute_index_info
75 			 );
76 ----------------------------------------------------------------------------
77 --gets attributes data from hxc_time_attributes table
78 ----------------------------------------------------------------------------
79 PROCEDURE create_attribute_structure
80      		(p_timecard_id 		in number,
81      		 p_timecard_ovn		in number,
82      		 p_resource_id		in number,
83      		 p_start_period		in date,
84      		 p_end_period		in date,
85 		 p_attributes   	out NOCOPY HXC_ATTRIBUTE_TABLE_TYPE,
86 		 p_add_hours_type_id	in number,
87 		 p_attribute_index_info out NOCOPY hxc_timekeeper_process.t_attribute_index_info
88      		 );
89 -------------------------------------------------------------------------------
90 --------------DEBUG PROCEDURE--------------------------------------------------
91 -------------------------------------------------------------------------------
92 PROCEDURE dump_timkeeper_data
93    (p_timekeeper_data 	IN hxc_timekeeper_process.t_timekeeper_table);
94 PROCEDURE dump_buffer_table
95    (p_buffer_table 	hxc_timekeeper_process.t_buffer_table);
96 PROCEDURE dump_resource_tc_table
97    (l_resource_tc_table hxc_timekeeper_process.t_resource_tc_table);
98 PROCEDURE dump_timecard
99    (p_timecard		in  HXC_SELF_SERVICE_TIME_DEPOSIT.TIMECARD_INFO);
100 -------------------------------------------------------------------------------
101 --Used to get the attribute category for the detail dff saved in timecard
102 -------------------------------------------------------------------------------
103 PROCEDURE add_dff_attribute (p_attribute     in out NOCOPY HXC_ATTRIBUTE_TABLE_TYPE,
104 			 p_attribute_id	 in 	NUMBER,
105 			 p_tbb_id	 in     NUMBER,
106 			 p_tbb_ovn       in 	NUMBER,
107 			 p_blk_type      in    	VARCHAR2,
108 			 p_blk_id	 in     NUMBER,
109 			 p_att_category  in	VARCHAR2,
110 			 p_att_1	 in 	VARCHAR2,
111 			 p_att_2	 in 	VARCHAR2,
112 			 p_att_3	 in  	VARCHAR2,
113 			 p_att_4         in     varchar2,
114 			 p_att_5         in     varchar2,
115 			 p_att_6         in     varchar2,
116 			 p_att_7         in     varchar2,
117 			 p_att_8         in     varchar2,
118 			 p_att_9         in     varchar2,
119 			 p_att_10         in     varchar2,
120 			 p_att_11         in     varchar2,
121 			 p_att_12         in     varchar2,
122 			 p_att_13        in     varchar2,
123 			 p_att_14         in     varchar2,
124 			 p_att_15         in     varchar2,
125 			 p_att_16         in     varchar2,
126 			 p_att_17         in     varchar2,
127 			 p_att_18         in     varchar2,
128 			 p_att_19         in     varchar2,
129 			 p_att_20         in     varchar2,
130 			 p_att_21         in     varchar2,
131 			 p_att_22        in     varchar2,
132 			 p_att_23         in     varchar2,
133 			 p_att_24        in     varchar2,
134 			 p_att_25         in     varchar2,
135 			 p_att_26         in     varchar2,
136                          p_att_27         in     varchar2,
137 			 p_att_28         in     varchar2,
138 			 p_att_29         in     varchar2,
139 		         p_att_30         in     varchar2 ,
140 			 p_attribute_index_info in out NOCOPY hxc_timekeeper_process.t_attribute_index_info);
141 PROCEDURE order_building_blocks
142         ( p_timecard       	in out NOCOPY HXC_SELF_SERVICE_TIME_DEPOSIT.TIMECARD_INFO,
143           p_ord_timecard       	in out NOCOPY HXC_SELF_SERVICE_TIME_DEPOSIT.TIMECARD_INFO);
144 -------------------------------------------------------------------------------
145 -- This procedure used to get which attribute in layout is used to decide the
146 -- attribute category.
147 -------------------------------------------------------------------------------
148 FUNCTION get_TK_dff_attrname(p_tkid  number,
149                              p_insert_detail 	in hxc_timekeeper_process.t_time_info,
150 			     p_base_dff         in varchar2,
151                              p_att_tab          in hxc_alias_utility.t_alias_att_info)
152                              return varchar2;
153 -------------------------------------------------------------------------------
154 -- this procedure used to give all timecards including  midperiod timecards
155 -- saved in that range
156 -------------------------------------------------------------------------------
157 Procedure  populate_tc_tab( resource_id  in number,
158                             tc_frdt      in  date,
159 			    tc_todt      in   date,
160 			    emp_tc_info  out nocopy  hxc_timekeeper_utilities.emptctab) ;
161 -------------------------------------------------------------------------------
162 -- this procedure used to query mid period timecards
163 -------------------------------------------------------------------------------
164 Procedure  populate_query_tc_tab( resource_id  in number,
165                                   tc_frdt      in date,
166 				  tc_todt      in date,
167 				  emp_qry_tc_info out nocopy  hxc_timekeeper_utilities.emptctab);
168 -------------------------------------------------------------------------------
169 -- this procedure gives split of timecards
170 -- Used in save procedure to break the timecard
171 --when monthly timecard is
172 -------------------------------------------------------------------------------
173 procedure split_timecard( p_resource_id    in   number,
174                           p_start_date     in   date,
175                           p_end_date       in   date,
176                           p_spemp_tc_info  in   hxc_timekeeper_utilities.emptctab,
177 			  p_TC_list        out nocopy  hxc_timecard_utilities.periods) ;
178 ----------------------------------------------------------------------------
179 -- Called from timekeeper process to get the preference
180 -- associated with a  resource
181 -- instead of calling preference evaluation cache the info.
182 ----------------------------------------------------------------------------
183 procedure get_emp_pref(p_resource_id in number,
184                        neg_pref  out nocopy varchar2,
185 		       recpref  out nocopy number,
186 		       appstyle out nocopy number,
187 		       layout1 out nocopy number,
188 		       layout2 out nocopy number,
189 		       layout3 out nocopy number,
190        		       layout4 out nocopy number,
191        		       layout5 out nocopy number,
192 		       layout6 out nocopy number,
193        		       layout7 out nocopy number,
194        		       layout8 out nocopy number,
195 		       edits   out nocopy varchar2,
196        		       l_pastdate  out nocopy varchar2,
197 		       l_futuredate out nocopy varchar2,
198 		       l_emp_start_date   out nocopy date,
199 		       l_emp_terminate_date   out nocopy date,
200                l_audit_enabled out nocopy varchar2
201                );
202 ----------------------------------------------------------------------------
203 -- get_resource_time_periods return the list of period for
204 -- a range of time
205 -- The p_check_assignment is not used for the moment.
206 ----------------------------------------------------------------------------
207 PROCEDURE get_resource_time_periods(
208   p_resource_id            IN VARCHAR2
209  ,p_resource_type          IN VARCHAR2
210  ,p_current_date           IN DATE
211  ,p_max_date_in_futur	   IN DATE
212  ,p_max_date_in_past	   IN DATE
213  ,p_recurring_period_id	   IN NUMBER
214  ,p_check_assignment	   IN BOOLEAN
215  ,p_periodtab              IN OUT NOCOPY hxc_timecard_utilities.periods
216 );
217 ----------------------------------------------------------------------------
218 -- add_resource_to_perftab is used to popluate the global pl/sql resource
219 -- preference table
220 ----------------------------------------------------------------------------
221 Procedure  add_resource_to_perftab (
222   p_resource_id      IN NUMBER,
223   p_pref_code        IN VARCHAR2,
224   p_attribute1       IN VARCHAR2,
225   p_attribute2       IN VARCHAR2,
226   p_attribute3       IN VARCHAR2,
227   p_attribute4       IN VARCHAR2,
228   p_attribute5       IN VARCHAR2,
229   p_attribute6       IN VARCHAR2,
230   p_attribute7       IN VARCHAR2,
231   p_attribute8       IN VARCHAR2,
232   p_attribute11	     IN VARCHAR2
233    );
234 ----------------------------------------------------------------------------
235 -- This procedure is used to find if timecard update is allowed or not
236 ----------------------------------------------------------------------------
237 PROCEDURE tc_edit_allowed (
238                          p_timecard_id                  HXC_TIME_BUILDING_BLOCKS.TIME_BUILDING_BLOCK_ID%TYPE
239 			,p_timecard_ovn                 HXC_TIME_BUILDING_BLOCKS.OBJECT_VERSION_NUMBER%TYPE
240 			,p_timecard_status              varchar2
241                         ,p_edit_allowed_preference      HXC_PREF_HIERARCHIES.ATTRIBUTE1%TYPE
242                         ,p_edit_allowed IN OUT          NOCOPY VARCHAR2
243                         ) ;
244 ----------------------------------------------------------------------------
245 -- This procedure is used to convert message object type to message pl/sql table
246 ----------------------------------------------------------------------------
247 Procedure convert_type_to_message_table
248            (p_old_messages     in  hxc_message_table_type
249            ,p_messages         out nocopy hxc_self_service_time_deposit.message_table);
250 ------------------------------------------------------------------------------------------
251 -- These procedure are moved to make the timekeeper_process package in small program units
252 -----------------------------------------------------------------------------------------
253 Procedure manage_attributes    ( p_attribute_number     IN NUMBER
254 				,p_insert_data_details	IN hxc_timekeeper_process.t_time_info
255 				,p_old_value		IN OUT NOCOPY varchar2
256 				,p_new_value		IN OUT NOCOPY varchar2
257 			       );
258 Procedure manage_timeinfo      ( p_day_counter		IN NUMBER
259 				,p_insert_detail	IN hxc_timekeeper_process.t_time_info
260 				,p_measure		IN OUT NOCOPY NUMBER
261 				,p_detail_id		IN OUT NOCOPY hxc_time_building_blocks.time_building_block_id%TYPE
262 				,p_detail_ovn		IN OUT NOCOPY NUMBER
263 				,p_detail_time_in	IN OUT NOCOPY DATE
264 				,p_detail_time_out	IN OUT NOCOPY DATE
265 				);
266 Procedure manage_detaildffinfo ( p_detail_id		  IN  hxc_time_building_blocks.time_building_block_id%TYPE
267 				,p_detail_ovn		  IN NUMBER
268 				,p_det_details		  IN OUT NOCOPY hxc_timekeeper_process.g_detail_data%TYPE
269 				,p_attributes		  IN OUT NOCOPY HXC_ATTRIBUTE_TABLE_TYPE
270 				,p_attribute_category     IN VARCHAR2
271 				,p_tbb_id_reference_table IN OUT NOCOPY hxc_alias_utility.t_tbb_id_reference
272 				,p_attribute_index_info	  IN OUT NOCOPY hxc_timekeeper_process.t_attribute_index_info
273 				,p_timecard_index_info    IN OUT NOCOPY hxc_timekeeper_process.t_timecard_index_info
274 				);
275 PROCEDURE check_msg_set_process_flag
276 			        ( p_blocks          in out nocopy HXC_BLOCK_TABLE_TYPE
277    			        , p_attributes      in out nocopy HXC_ATTRIBUTE_TABLE_TYPE
278 			        , p_messages        in out nocopy HXC_MESSAGE_TABLE_TYPE
279 			         );
280 	TYPE r_group IS RECORD
281 	(
282 	group_name              VARCHAR2(80),
283 	recurring_period_id     NUMBER,
284 	group_id                NUMBER,
285 	recurring_period_name   VARCHAR2(80),
286 	start_date     			DATE,
287 	end_date       			DATE,
288 	period_type    		    VARCHAR2(80),
289 	duration_in_days		NUMBER,
290 	show_group_name 	    VARCHAR2(200)
291 	);
292 	TYPE t_group_list is TABLE OF r_group
293 	INDEX BY BINARY_INTEGER;
294 ------------------------------------------------------------------------------------------
295 -- This procedure is used to cache the employees preference in a timekeeper group
296 -----------------------------------------------------------------------------------------
297 PROCEDURE cache_employee_pref_in_group ( p_group_id	  in number
298                                         ,p_timekeeper_id  in number
299 				       );
300 ------------------------------------------------------------------------------------------
301 -- This procedure is used to get the recurring period list in a  group
302 -----------------------------------------------------------------------------------------
303 PROCEDURE get_group_period_list	( p_group_id	      in number,
304   				  p_business_group_id in NUMBER,
305 				  p_periodname_list   OUT NOCOPY hxc_timekeeper_utilities.t_group_list
306 				  );
307 ------------------------------------------------------------------------------------------
308 -- This procedure is used to get the sql for the alternate name attached to attributes
309 -----------------------------------------------------------------------------------------
310 PROCEDURE get_type_sql
311           (p_aliasid    IN  NUMBER,
312   	   p_person_type IN  VARCHAR2 DEFAULT NULL,
313 	   p_alias_typ  OUT NOCOPY VARCHAR2 ,
314 	   p_alias_sql  OUT NOCOPY long ,
315 	   p_maxsize    out NOCOPY number,
316 	   p_minvalue   out NOCOPY number,
317 	   p_maxvalue   out NOCOPY number,
318 	   p_precision  out NOCOPY number,
319 	   p_colmtype   out NOCOPY varchar2);
320 Type att_alias_rec is record
321 (
322 	attr_name  		varchar2(30),
323 	alias_id      	number(15),
324 	alias_sql       long ,
325 	alias_type      varchar2(80),
326 	alias_maxsize   number,
327 	alias_minvalue  number,
328 	alias_maxvalue  number,
329 	alias_precision number,
330 	alias_lovcoltype varchar2(10)
331 );
332 TYPE att_alias_list  is TABLE OF att_alias_rec
333 INDEX BY BINARY_INTEGER;
334 Type  tk_layout_rec is record
335 (
336 	tk_timeflag   varchar2(10),
337 	tk_empno      varchar2(10),
338 	tk_empname    varchar2(10),
339 	tk_base_attr  varchar2(30),
340 	tk_applset    varchar2(30),
341     tk_audit_enabled VARCHAR2(10),
342     tk_data_entry_required VARCHAR2(10),
343     tk_notification_to varchar2(100),
344     tk_notification_type varchar2(100)
345 );
346 Type tk_layout_tab is table of tk_layout_rec index by BINARY_INTEGER;
347 PROCEDURE populate_alias_table( p_timekeeper_id   IN NUMBER,
348 				p_tk_layout_info  OUT NOCOPY hxc_timekeeper_utilities.tk_layout_tab,
349 				p_att_alias_table OUT NOCOPY hxc_timekeeper_utilities.att_alias_list
350 				);
351 PROCEDURE  populate_disable_tc_tab( resource_id  IN number,
352 	                            tc_frdt      IN date,
353 				    tc_todt      IN date,
354 				    p_emptcinfo  OUT NOCOPY hxc_timekeeper_utilities.emptctab
355 				  ) ;
356 PROCEDURE new_timecard( p_resource_id    in   number,
357 			p_start_date	 in   date,
358 			p_end_date       in   date,
359 			p_emptcinfo      OUT NOCOPY hxc_timekeeper_utilities.emptctab);
360 Type hxc_tk_detail_temp_tab IS TABLE OF hxc_tk_detail_temp%ROWTYPE INDEX BY BINARY_INTEGER;
361 g_hxc_tk_detail_temp_tab hxc_tk_detail_temp_tab;
362 PROCEDURE populate_detail_temp(p_Action in number);
363 FUNCTION  get_exp_type_from_alias (p_alias_value_id  in  varchar2) return varchar2;
364 FUNCTION check_global_context
365           (p_context_prefix in VARCHAR2) return boolean  ;
366 end hxc_timekeeper_utilities;