DBA Data[Home] [Help]

PACKAGE: APPS.HXC_TIMEKEEPER_UTILITIES

Source


1 PACKAGE hxc_timekeeper_utilities AUTHID CURRENT_USER AS
2 /* $Header: hxctkutil.pkh 120.4.12010000.11 2009/09/17 11:48:16 sabvenug ship $ */
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 
31 /* Added for 8775740 HR OTL ABSENCE INTEGRATION
32 
33 */
34 
35 -- change start
36     TYPE t_tk_prepop_info_rec IS RECORD
37     (ALIAS_VALUE_ID		HXC_ALIAS_VALUES.ALIAS_VALUE_ID%TYPE
38     ,ITEM_ATTRIBUTE_CATEGORY	VARCHAR2(80)
39     ,ABSENCE_DATE		DATE
40     ,ABSENCE_DURATION		NUMBER
41     ,ABSENCE_START_TIME		DATE    -- added
42     ,ABSENCE_STOP_TIME		DATE    -- added
43     ,ABSENCE_ATTENDANCE_ID	NUMBER
44     ,TRANSACTION_ID		NUMBER
45     );
46 
47     TYPE t_tk_prepop_info_type IS TABLE OF t_tk_prepop_info_rec
48     	INDEX BY BINARY_INTEGER;
49 -- change end
50 
51 
52 
53  /*Added for Enh 3303359
54         Caching the pref value for Default Recurring Period*/
55   g_default_rec_period		VARCHAR2(15);
56   g_tk_show_absences		NUMBER;
57   g_abs_message_string		VARCHAR2(32000);
58   g_exception_detected		VARCHAR2(1);
59 
60     FUNCTION get_pref_setting(p_pref IN VARCHAR2) return NUMBER;
61 
62 
63 ---------------------------------------------------------------------------
64 --------- GLOBAL DECLARATION
65 ---------------------------------------------------------------------------
66 g_resource_perftab   tk_resource_pref_tab;	--index by resource_id
67 g_start_stop_pref_cache   tk_resource_pref_tab; --index by start_index of bulk pref table
68 ----------------------------------------------------------------------------
69 --ADD_BLOCK  used to add a row in timecard block
70 ----------------------------------------------------------------------------
71 PROCEDURE add_block (p_timecard       	in out NOCOPY HXC_BLOCK_TABLE_TYPE,
72 		     p_timecard_id	in NUMBER,
73 		     p_ovn		in NUMBER,
74 		     p_parent_id 	in NUMBER,
75 		     p_parent_ovn	in NUMBER,
76 		     p_approval_style_id in NUMBER,
77 		     p_measure		in NUMBER,
78                      p_scope     	in VARCHAR2,
79                      p_date_to		in date default null,
80                      p_date_from 	in date default null,
81                      p_start_period 	in date,
82                      p_end_period 	in date,
83                      p_resource_id 	in number,
84                      p_changed		in VARCHAR2,
85 		     p_comment_text     in varchar2,
86 		     p_submit_flg       in BOOLEAN,
87 		     p_application_set_id in hxc_time_building_blocks.application_set_id%type,
88 		     p_timecard_index_info in out NOCOPY hxc_timekeeper_process.t_timecard_index_info);
89 
90 -------------------------------------------------------------------------------
91 -- this procedure add a attribute in the attribute_table
92 -------------------------------------------------------------------------------
93 PROCEDURE add_attribute (p_attribute     in out NOCOPY HXC_ATTRIBUTE_TABLE_TYPE,
94 			 p_attribute_id	 in 	NUMBER,
95 			 p_tbb_id	 in     NUMBER,
96 			 p_tbb_ovn       in 	NUMBER,
97 			 p_blk_type      in    	VARCHAR2,
98 			 p_blk_id	 in     NUMBER,
99 			 p_att_category  in	VARCHAR2,
100 			 p_att_1	 in 	VARCHAR2,
101 			 p_att_2	 in 	VARCHAR2,
102 			 p_att_3	 in  	VARCHAR2,
103 			 p_att_4         in     varchar2,
104 		         p_att_5	 in     varchar2 default NULL,
105 			 p_att_6	 in 	VARCHAR2 default NULL,
106 			 p_att_7	 in  	VARCHAR2 default NULL,
107 			 p_att_8         in     varchar2 default NULL,
108 			 p_attribute_index_info in out NOCOPY hxc_timekeeper_process.t_attribute_index_info
109 			 );
110 ----------------------------------------------------------------------------
111 --gets attributes data from hxc_time_attributes table
112 ----------------------------------------------------------------------------
113 PROCEDURE create_attribute_structure
114      		(p_timecard_id 		in number,
115      		 p_timecard_ovn		in number,
116      		 p_resource_id		in number,
117      		 p_start_period		in date,
118      		 p_end_period		in date,
119 		 p_attributes   	out NOCOPY HXC_ATTRIBUTE_TABLE_TYPE,
120 		 p_add_hours_type_id	in number,
121 		 p_attribute_index_info out NOCOPY hxc_timekeeper_process.t_attribute_index_info
122      		 );
123 -------------------------------------------------------------------------------
124 --------------DEBUG PROCEDURE--------------------------------------------------
125 -------------------------------------------------------------------------------
126 PROCEDURE dump_timkeeper_data
127    (p_timekeeper_data 	IN hxc_timekeeper_process.t_timekeeper_table);
128 PROCEDURE dump_buffer_table
129    (p_buffer_table 	hxc_timekeeper_process.t_buffer_table);
130 PROCEDURE dump_resource_tc_table
131    (l_resource_tc_table hxc_timekeeper_process.t_resource_tc_table);
132 PROCEDURE dump_timecard
133    (p_timecard		in  HXC_SELF_SERVICE_TIME_DEPOSIT.TIMECARD_INFO);
134 -------------------------------------------------------------------------------
135 --Used to get the attribute category for the detail dff saved in timecard
136 -------------------------------------------------------------------------------
137 PROCEDURE add_dff_attribute (p_attribute     in out NOCOPY HXC_ATTRIBUTE_TABLE_TYPE,
138 			 p_attribute_id	 in 	NUMBER,
139 			 p_tbb_id	 in     NUMBER,
140 			 p_tbb_ovn       in 	NUMBER,
141 			 p_blk_type      in    	VARCHAR2,
142 			 p_blk_id	 in     NUMBER,
143 			 p_att_category  in	VARCHAR2,
144 			 p_att_1	 in 	VARCHAR2,
145 			 p_att_2	 in 	VARCHAR2,
146 			 p_att_3	 in  	VARCHAR2,
147 			 p_att_4         in     varchar2,
148 			 p_att_5         in     varchar2,
149 			 p_att_6         in     varchar2,
150 			 p_att_7         in     varchar2,
151 			 p_att_8         in     varchar2,
152 			 p_att_9         in     varchar2,
153 			 p_att_10         in     varchar2,
154 			 p_att_11         in     varchar2,
155 			 p_att_12         in     varchar2,
156 			 p_att_13        in     varchar2,
157 			 p_att_14         in     varchar2,
158 			 p_att_15         in     varchar2,
159 			 p_att_16         in     varchar2,
160 			 p_att_17         in     varchar2,
161 			 p_att_18         in     varchar2,
162 			 p_att_19         in     varchar2,
163 			 p_att_20         in     varchar2,
164 			 p_att_21         in     varchar2,
165 			 p_att_22        in     varchar2,
166 			 p_att_23         in     varchar2,
167 			 p_att_24        in     varchar2,
168 			 p_att_25         in     varchar2,
169 			 p_att_26         in     varchar2,
170                          p_att_27         in     varchar2,
171 			 p_att_28         in     varchar2,
172 			 p_att_29         in     varchar2,
173 		         p_att_30         in     varchar2 ,
174 			 p_attribute_index_info in out NOCOPY hxc_timekeeper_process.t_attribute_index_info);
175 PROCEDURE order_building_blocks
176         ( p_timecard       	in out NOCOPY HXC_SELF_SERVICE_TIME_DEPOSIT.TIMECARD_INFO,
177           p_ord_timecard       	in out NOCOPY HXC_SELF_SERVICE_TIME_DEPOSIT.TIMECARD_INFO);
178 -------------------------------------------------------------------------------
179 -- This procedure used to get which attribute in layout is used to decide the
180 -- attribute category.
181 -------------------------------------------------------------------------------
182 FUNCTION get_TK_dff_attrname(p_tkid  number,
183                              p_insert_detail 	in hxc_timekeeper_process.t_time_info,
184 			     p_base_dff         in varchar2,
185                              p_att_tab          in hxc_alias_utility.t_alias_att_info)
186                              return varchar2;
187 -------------------------------------------------------------------------------
188 -- this procedure used to give all timecards including  midperiod timecards
189 -- saved in that range
190 -------------------------------------------------------------------------------
191 Procedure  populate_tc_tab( resource_id  in number,
192                             tc_frdt      in  date,
193 			    tc_todt      in   date,
194 			    emp_tc_info  out nocopy  hxc_timekeeper_utilities.emptctab) ;
195 -------------------------------------------------------------------------------
196 -- this procedure used to query mid period timecards
197 -------------------------------------------------------------------------------
198 Procedure  populate_query_tc_tab( resource_id  in number,
199                                   tc_frdt      in date,
200 				  tc_todt      in date,
201 				  emp_qry_tc_info out nocopy  hxc_timekeeper_utilities.emptctab);
202 -------------------------------------------------------------------------------
203 -- this procedure gives split of timecards
204 -- Used in save procedure to break the timecard
205 --when monthly timecard is
206 -------------------------------------------------------------------------------
207 procedure split_timecard( p_resource_id    in   number,
208                           p_start_date     in   date,
209                           p_end_date       in   date,
210                           p_spemp_tc_info  in   hxc_timekeeper_utilities.emptctab,
211 			  p_TC_list        out nocopy  hxc_timecard_utilities.periods) ;
212 ----------------------------------------------------------------------------
213 -- Called from timekeeper process to get the preference
214 -- associated with a  resource
215 -- instead of calling preference evaluation cache the info.
216 ----------------------------------------------------------------------------
217 procedure get_emp_pref(p_resource_id in number,
218                        neg_pref  out nocopy varchar2,
219 		       recpref  out nocopy number,
220 		       appstyle out nocopy number,
221 		       layout1 out nocopy number,
222 		       layout2 out nocopy number,
223 		       layout3 out nocopy number,
224        		       layout4 out nocopy number,
225        		       layout5 out nocopy number,
226 		       layout6 out nocopy number,
227        		       layout7 out nocopy number,
228        		       layout8 out nocopy number,
229 		       edits   out nocopy varchar2,
230        		       l_pastdate  out nocopy varchar2,
231 		       l_futuredate out nocopy varchar2,
232 		       l_emp_start_date   out nocopy date,
233 		       l_emp_terminate_date   out nocopy date,
234                l_audit_enabled out nocopy varchar2
235                );
236 ----------------------------------------------------------------------------
237 -- get_resource_time_periods return the list of period for
238 -- a range of time
239 -- The p_check_assignment is not used for the moment.
240 ----------------------------------------------------------------------------
241 PROCEDURE get_resource_time_periods(
242   p_resource_id            IN VARCHAR2
243  ,p_resource_type          IN VARCHAR2
244  ,p_current_date           IN DATE
245  ,p_max_date_in_futur	   IN DATE
246  ,p_max_date_in_past	   IN DATE
247  ,p_recurring_period_id	   IN NUMBER
248  ,p_check_assignment	   IN BOOLEAN
249  ,p_periodtab              IN OUT NOCOPY hxc_timecard_utilities.periods
250 );
251 ----------------------------------------------------------------------------
252 -- add_resource_to_perftab is used to popluate the global pl/sql resource
253 -- preference table
254 ----------------------------------------------------------------------------
255 Procedure  add_resource_to_perftab (
256   p_resource_id      IN NUMBER,
257   p_pref_code        IN VARCHAR2,
258   p_attribute1       IN VARCHAR2,
259   p_attribute2       IN VARCHAR2,
260   p_attribute3       IN VARCHAR2,
261   p_attribute4       IN VARCHAR2,
262   p_attribute5       IN VARCHAR2,
263   p_attribute6       IN VARCHAR2,
264   p_attribute7       IN VARCHAR2,
265   p_attribute8       IN VARCHAR2,
266   p_attribute11	     IN VARCHAR2
267    );
268 ----------------------------------------------------------------------------
269 -- This procedure is used to find if timecard update is allowed or not
270 ----------------------------------------------------------------------------
271 PROCEDURE tc_edit_allowed (
272                          p_timecard_id                  HXC_TIME_BUILDING_BLOCKS.TIME_BUILDING_BLOCK_ID%TYPE
273 			,p_timecard_ovn                 HXC_TIME_BUILDING_BLOCKS.OBJECT_VERSION_NUMBER%TYPE
274 			,p_timecard_status              varchar2
275                         ,p_edit_allowed_preference      HXC_PREF_HIERARCHIES.ATTRIBUTE1%TYPE
276                         ,p_edit_allowed IN OUT          NOCOPY VARCHAR2
277                         ) ;
278 ----------------------------------------------------------------------------
279 -- This procedure is used to convert message object type to message pl/sql table
280 ----------------------------------------------------------------------------
281 Procedure convert_type_to_message_table
282            (p_old_messages     in  hxc_message_table_type
283            ,p_messages         out nocopy hxc_self_service_time_deposit.message_table);
284 ------------------------------------------------------------------------------------------
285 -- These procedure are moved to make the timekeeper_process package in small program units
286 -----------------------------------------------------------------------------------------
287 Procedure manage_attributes    ( p_attribute_number     IN NUMBER
288 				,p_insert_data_details	IN hxc_timekeeper_process.t_time_info
289 				,p_old_value		IN OUT NOCOPY varchar2
290 				,p_new_value		IN OUT NOCOPY varchar2
291 			       );
292 Procedure manage_timeinfo      ( p_day_counter		IN NUMBER
293 				,p_insert_detail	IN hxc_timekeeper_process.t_time_info
294 				,p_measure		IN OUT NOCOPY NUMBER
295 				,p_detail_id		IN OUT NOCOPY hxc_time_building_blocks.time_building_block_id%TYPE
296 				,p_detail_ovn		IN OUT NOCOPY NUMBER
297 				,p_detail_time_in	IN OUT NOCOPY DATE
298 				,p_detail_time_out	IN OUT NOCOPY DATE
299 				);
300 Procedure manage_detaildffinfo ( p_detail_id		  IN  hxc_time_building_blocks.time_building_block_id%TYPE
301 				,p_detail_ovn		  IN NUMBER
302 				,p_det_details		  IN OUT NOCOPY hxc_timekeeper_process.g_detail_data%TYPE
303 				,p_attributes		  IN OUT NOCOPY HXC_ATTRIBUTE_TABLE_TYPE
304 				,p_attribute_category     IN VARCHAR2
305 				,p_tbb_id_reference_table IN OUT NOCOPY hxc_alias_utility.t_tbb_id_reference
306 				,p_attribute_index_info	  IN OUT NOCOPY hxc_timekeeper_process.t_attribute_index_info
307 				,p_timecard_index_info    IN OUT NOCOPY hxc_timekeeper_process.t_timecard_index_info
308 				);
309 PROCEDURE check_msg_set_process_flag
310 			        ( p_blocks          in out nocopy HXC_BLOCK_TABLE_TYPE
311    			        , p_attributes      in out nocopy HXC_ATTRIBUTE_TABLE_TYPE
312 			        , p_messages        in out nocopy HXC_MESSAGE_TABLE_TYPE
313 			         );
314 	TYPE r_group IS RECORD
315 	(
316 	group_name              VARCHAR2(80),
317 	recurring_period_id     NUMBER,
318 	group_id                NUMBER,
319 	recurring_period_name   VARCHAR2(80),
320 	start_date     			DATE,
321 	end_date       			DATE,
322 	period_type    		    VARCHAR2(80),
323 	duration_in_days		NUMBER,
324 	show_group_name 	    VARCHAR2(200)
325 	);
326 	TYPE t_group_list is TABLE OF r_group
327 	INDEX BY BINARY_INTEGER;
328 ------------------------------------------------------------------------------------------
329 -- This procedure is used to cache the employees preference in a timekeeper group
330 -----------------------------------------------------------------------------------------
331 PROCEDURE cache_employee_pref_in_group ( p_group_id	  in number
332                                         ,p_timekeeper_id  in number
333 				       );
334 ------------------------------------------------------------------------------------------
335 -- This procedure is used to get the recurring period list in a  group
336 -----------------------------------------------------------------------------------------
337 PROCEDURE get_group_period_list	( p_group_id	      in number,
338   				  p_business_group_id in NUMBER,
339 				  p_periodname_list   OUT NOCOPY hxc_timekeeper_utilities.t_group_list
340 				  );
341 ------------------------------------------------------------------------------------------
342 -- This procedure is used to get the sql for the alternate name attached to attributes
343 -----------------------------------------------------------------------------------------
344 PROCEDURE get_type_sql
345           (p_aliasid    IN  NUMBER,
346   	   p_person_type IN  VARCHAR2 DEFAULT NULL,
347 	   p_alias_typ  OUT NOCOPY VARCHAR2 ,
348 	   p_alias_sql  OUT NOCOPY long ,
349 	   p_maxsize    out NOCOPY number,
350 	   p_minvalue   out NOCOPY number,
351 	   p_maxvalue   out NOCOPY number,
352 	   p_precision  out NOCOPY number,
353 	   p_colmtype   out NOCOPY varchar2);
354 Type att_alias_rec is record
355 (
356 	attr_name  		varchar2(30),
357 	alias_id      	number(15),
358 	alias_sql       long ,
359 	alias_type      varchar2(80),
360 	alias_maxsize   number,
361 	alias_minvalue  number,
362 	alias_maxvalue  number,
363 	alias_precision number,
364 	alias_lovcoltype varchar2(10)
365 );
366 TYPE att_alias_list  is TABLE OF att_alias_rec
367 INDEX BY BINARY_INTEGER;
368 Type  tk_layout_rec is record
369 (
370 	tk_timeflag   varchar2(10),
371 	tk_empno      varchar2(10),
372 	tk_empname    varchar2(10),
373 	tk_base_attr  varchar2(30),
374 	tk_applset    varchar2(30),
375     tk_audit_enabled VARCHAR2(10),
376     tk_data_entry_required VARCHAR2(10),
377     tk_notification_to varchar2(100),
378     tk_notification_type varchar2(100)
379 );
380 Type tk_layout_tab is table of tk_layout_rec index by BINARY_INTEGER;
381 PROCEDURE populate_alias_table( p_timekeeper_id   IN NUMBER,
382 				p_tk_layout_info  OUT NOCOPY hxc_timekeeper_utilities.tk_layout_tab,
383 				p_att_alias_table OUT NOCOPY hxc_timekeeper_utilities.att_alias_list
384 				);
385 PROCEDURE  populate_disable_tc_tab( resource_id  IN number,
386 	                            tc_frdt      IN date,
387 				    tc_todt      IN date,
388 				    p_emptcinfo  OUT NOCOPY hxc_timekeeper_utilities.emptctab
389 				  ) ;
390 PROCEDURE new_timecard( p_resource_id    in   number,
391 			p_start_date	 in   date,
392 			p_end_date       in   date,
393 			p_emptcinfo      OUT NOCOPY hxc_timekeeper_utilities.emptctab);
394 Type hxc_tk_detail_temp_tab IS TABLE OF hxc_tk_detail_temp%ROWTYPE INDEX BY BINARY_INTEGER;
395 g_hxc_tk_detail_temp_tab hxc_tk_detail_temp_tab;
396 PROCEDURE populate_detail_temp(p_Action in number);
397 FUNCTION  get_exp_type_from_alias (p_alias_value_id  in  varchar2) return varchar2;
398 FUNCTION check_global_context
399           (p_context_prefix in VARCHAR2) return boolean  ;
400 
401 /* Added for 8775740 HR OTL ABSENCE INTEGRATION
402 
403 */
404 
405 -- change start
406 
407 FUNCTION get_pref_eval_date
408   (p_resource_id	IN 	NUMBER
409   ,p_tc_start_date	IN 	DATE
410   ,p_tc_end_date	IN 	DATE)
411 
412    RETURN DATE ;
413 
414 PROCEDURE populate_prepop_detail_id_info
415   (p_timekeeper_data_rec      IN 	    hxc_timekeeper_process.t_time_info,
416    p_tk_prepop_detail_id_tab  IN OUT NOCOPY hxc_timekeeper_process.g_tk_prepop_detail_id_tab_type
417    );
418 
419 
420 
421  FUNCTION get_abs_co_absence_detail_id
422   (p_absence_duration  		IN NUMBER  DEFAULT NULL,
423    p_absence_start_time 	IN DATE    DEFAULT NULL,
424    p_absence_stop_time		IN DATE    DEFAULT NULL,
425    p_absence_attendance_id	IN NUMBER,
426    p_transaction_id		IN NUMBER,
427    p_lock_row_id		IN ROWID,
428    p_resource_id		IN NUMBER,
429    p_start_period      		IN  DATE,
430    p_end_period			IN  DATE,
431    p_tc_start			IN  DATE, -- 8916345 Added for mid period fix
432    p_tc_end			IN  DATE, -- 8916345 Added for mid period fix
433    p_day_value			IN NUMBER
434    )
435    return number ;
436 
437 
438 
439 PROCEDURE build_absence_prepop_table
440    (p_tk_prepop_info	IN  hxc_timekeeper_utilities.t_tk_prepop_info_type,
441     p_tk_abs_tab	OUT NOCOPY hxc_timekeeper_process.t_tk_abs_tab_type,
442     p_start_period      IN  DATE,
443     p_end_period	IN  DATE,
444     p_tc_start		IN  DATE, -- 8916345 Added for mid period fix
445     p_tc_end		IN  DATE, -- 8916345 Added for mid period fix
446     p_lock_row_id	IN  ROWID,
447     p_resource_id	IN  NUMBER,
448     p_timekeeper_id 	IN 	NUMBER
449    );
450 
451 
452 
453   PROCEDURE PRE_POPULATE_ABSENCE_DETAILS
454   (p_timekeeper_id 	IN 	NUMBER,
455    p_start_period 	IN 	DATE,
456    p_end_period 	IN 	DATE,
457    p_tc_start		IN	DATE, -- 8916345 Added for mid period fix
458    p_tc_end		IN 	DATE, -- 8916345
459    p_resource_id 	IN 	NUMBER,
460    p_lock_row_id	IN 	ROWID,
461    p_tk_abs_tab	  	OUT  NOCOPY hxc_timekeeper_process.t_tk_abs_tab_type
462    );
463 
464 
465 -- change end
466 
467 end hxc_timekeeper_utilities;