1 package pay_nz_holidays_2003 as
2 -- $Header: pynzhl2003.pkh 120.1.12010000.1 2008/07/27 23:17:11 appldev ship $
3 --
4 -- Copyright (C) 1999 Oracle Corporation
5 -- All Rights Reserved
6 --
7 -- Change List
8 -- ===========
9 --
10 -- Date Author Reference Description
11 -- -----------+-----------+---------+--------------------------------------------
12 -- 08 JAN 2004 sclarke Removed get_anniversary_details
13 -- 30 DEC 2003 sclarke Changed parameters to annual_leave_calc_1
14 -- 04 Dec 2003 sclarke Updates after testing
15 -- 19 Nov 2003 sclarke 3064179 Created
16 -- 12 Mar 2004 sclarke 3547116 Recurring absences
17 -- 02 APR 2004 sclarke 3541500 Anniversary Date is not moved the initial 7 days
18 -- 11 JUN 2004 puchil 3654766 Changed the definition of get_previous_rate
19 -- to accept p_assignment_action_id
20 -- 23 JUN 2004 bramajey 3608752 Parental Leave Changes. Created
21 -- functions is_parental_leave_taken
22 -- ,get_entitled_amount and
23 -- get_recur_abs_prev_period
24 -- 05 AUG 2005 rpalli 4536217 As part of bug 4536217(performance issue):
25 -- Added overloaded function determine_work_week.
26 -- Removed eligible_for_accrual function.
27 -- Modified calculate_daily_accrual function.
28 -- ------------------------------------------------------------------------------
29 --
30 --
31 -- Returns the UOM for the given Accrual Plan
32 --
33 function get_accrual_plan_uom
34 (p_accrual_plan_id number
35 ) return varchar2;
36 --
37 function cache_anniversary_details
38 (p_payroll_id in number
39 ,p_assignment_id in number
40 ,p_accrual_plan_id in number
41 ,p_calculation_date in date
42 ,p_service_start_date in date default null
43 ,p_anniversary_start_date out nocopy date
44 ,p_anniversary_end_date out nocopy date
45 ,p_years_of_service out nocopy number
46 ) return number;
47 --
48 function get_working_days_balance
49 (p_assignment_id in number
50 ,p_effective_date in date
51 ) return number;
52 --
53 function get_balance
54 (p_assignment_id in number
55 ,p_effective_date in date
56 ,p_balance_name varchar2
57 ,p_dimension_name varchar2
58 ) return number;
59
60 function get_standard_work_week
61 (p_assignment_id in number
62 ,p_effective_date in date
63 ) return number;
64 --
65 function calculate_daily_accrual
66 (p_person_id in number
67 ,p_accrual_plan_id in number
68 ,p_start_date in date
69 ,p_end_date in date
70 ,p_annual_accrual in number
71 ,p_work_week in number
72 )
73 return number;
74 --
75 function determine_work_week
76 (p_assignment_id in number
77 ,p_current_day in date
78 ,p_uom in varchar2
79 ,p_annual_accrual in number
80 ,p_chg_asg_hours IN boolean
81 ,p_asg_hours IN number
82 ,p_freq IN varchar2
83 ) return number;
84
85 function determine_work_week
86 (p_assignment_id in number
87 ,p_current_day in date
88 ,p_uom in varchar2
89 ,p_annual_accrual in number
90 ) return number;
91 --
92 -- Used by Formula Function
93 --
94 function daily_accrual_loop
95 (p_payroll_id in number
96 ,p_assignment_id in number
97 ,p_accrual_plan_id in number
98 ,p_service_start_date in date default null
99 ,p_start_date in date
100 ,p_end_date in date
101 ) return number;
102 --
103 -- Used by Formula Function
104 --
105 function get_annual_leave_percentage
106 (p_accrual_plan_id number)
107 return number;
108 --
109 -- Used by Formula Function
110 --
111 function annual_leave_rate_calc_1
112 (p_ordinary_rate in number
113 ,p_earnings_prev_12mths in number
114 ,p_earnings_td in number
115 ,p_time_worked_prev_12mths in number
116 ,p_time_worked_td in number
117 ,p_work_week in number
118 ,p_hire_date in date
119 ,p_period_start_date in date
120 ,p_period_end_date in date
121 )
122 return number;
123 --
124 -- Used by Formula Function
125 --
126 function annual_leave_rate_calc_2
127 (p_percentage in number
128 ,p_gross_earnings in number
129 ,p_advance_leave_earnings in number
130 ) return number;
131 --
132 function previous_period_end_date
133 (p_payroll_id in number
134 ,p_time_period_id in number
135 ) return date;
136 --
137
138 FUNCTION get_accrual_entitlement
139 (p_assignment_id IN NUMBER
140 ,p_payroll_id IN NUMBER
141 ,p_business_group_id IN NUMBER
142 ,p_plan_id IN NUMBER
143 ,p_calculation_date IN DATE
144 ,p_net_accrual OUT NOCOPY NUMBER
145 ,p_net_entitlement OUT NOCOPY NUMBER
146 ,p_calc_start_date OUT NOCOPY DATE
147 ,p_last_accrual OUT NOCOPY DATE
148 ,p_next_period_end OUT NOCOPY DATE)
149 RETURN NUMBER;
150 --
151 ---------------------------------------------------------------------
152 --
153 -- ANNUAL_LEAVE_NET_ENTITLEMENT
154 --
155 -- Purpose : Wraps get_accrual_entitlement with parameters
156 -- to match the Leave liability process.
157 -- Returns : Total entitlement
158 --
159 ---------------------------------------------------------------------
160 --
161 PROCEDURE annual_leave_net_entitlement
162 (p_assignment_id IN NUMBER
163 ,p_payroll_id IN NUMBER
164 ,p_business_group_id IN NUMBER
165 ,p_plan_id IN NUMBER
166 ,p_calculation_date IN DATE
167 ,p_start_date OUT NOCOPY DATE
168 ,p_end_date OUT NOCOPY DATE
169 ,p_net_entitlement OUT NOCOPY NUMBER);
170
171 function get_previous_rate
172 (p_element_type_id number
173 ,p_assignment_action_id number /*Bug 3654766*/
174 ,p_rate_name varchar2
175 ) return number;
176 --
177
178 -- Bug 3608752
179 -- Parental Leave changes
180 -- Created the following functions
181 --
182 FUNCTION is_parental_leave_taken
183 (p_assignment_id IN NUMBER
184 ,p_business_group_id IN NUMBER
185 ,p_start_date IN DATE
186 ,p_end_date IN DATE)
187 RETURN NUMBER;
188 --
189 FUNCTION get_entitled_amount
190 (p_payroll_id NUMBER
191 ,p_payroll_action_id NUMBER
192 ,p_assignment_id NUMBER
193 ,p_business_group_id NUMBER
194 ,p_accrual_plan_id NUMBER
195 ,p_absence_start_date DATE
196 ,p_period_start_date DATE
197 ,p_period_end_date DATE
198 ,p_entitled_leave_taken NUMBER
199 ,p_curr_rate NUMBER
200 ,p_hire_date DATE
201 ,p_average_rate_p12mths NUMBER)
202 RETURN NUMBER;
203 --
204 FUNCTION get_recur_abs_prev_period
205 (p_assignment_id IN NUMBER
206 ,p_payroll_id IN NUMBER
207 ,p_absence_start_date IN DATE
208 ,p_curr_aniv_start IN DATE
209 ,p_prev_period_end_date IN DATE
210 ,p_plan_id IN NUMBER
211 )
212 RETURN NUMBER;
213
214 end pay_nz_holidays_2003;