1 PACKAGE PAY_FR_MAP_CALC AUTHID CURRENT_USER AS
2 /* $Header: pyfrmapp.pkh 115.15 2003/02/10 12:08:57 vsjain noship $ */
3 -----------------------------------------------------------------------
4 -- Date Ver Author Comments
5 -- 16-12-02 115.0 asnell Initial version of package
6 -- 10-01-03 115.1 vjain Added Architectural procedures
7 -- 13-01-03 115.2 vjain Modified procedures following
8 -- comments from formal review
9 -- 13-01-03 115.3 vjain Changes in PLSQL str for IJSS_NET
10 -- 17-01-03 115.4 asnell added t_map_calc columns
11 -- 20-01-03 115.5 vjain added maternity deduction procedure
12 -- 21-01-03 115.6 vjain Changes for init_cpam_absence
13 -- 22-01-03 115.7 asnell added tmap_calc columns
14 -- 03-02-03 115.11 vjain initial changes after map calc review
15 -- ---------------------------------------------------------------------
16 --
17 --
18
19 -- GLOBAL DATA STRUCTURES
20 TYPE T_MAP_ARCH IS RECORD
21 (ASSIGNMENT_ID NUMBER
22 , ELEMENT_ENTRY_ID NUMBER
23 , DATE_EARNED DATE
24 , ASSIGNMENT_ACTION_ID NUMBER
25 , ACTION_START_DATE DATE
26 , ACTION_END_DATE DATE
27 , BUSINESS_GROUP_ID NUMBER
28 , PAYROLL_ACTION_ID NUMBER
29 , PAYROLL_ID NUMBER
30 , ELEMENT_TYPE_ID NUMBER
31 , DEDUCT_FORMULA NUMBER
32 , DED_REF_SALARY NUMBER
33 , NOTIONAL_SS_RATE NUMBER
34 , NET NUMBER
35 );
36 g_map_arch t_map_arch;
37
38 TYPE T_MAP_CALC IS RECORD
39 (ABSENCE_ID NUMBER
40 , PARENT_ABSENCE_ID NUMBER
41 , PERSON_ID NUMBER
42 , ABSENCE_CATEGORY VARCHAR2(30)
43 , PARENT_ABSENCE_START_DATE DATE
44 , PARENT_ABSENCE_END_DATE DATE
45 , DEDUCTION NUMBER
46 , DEDUCTION_RATE NUMBER
47 , DEDUCTION_BASE NUMBER
48 , DEDUCTION_START_DATE DATE
49 , DEDUCTION_END_DATE DATE
50 , START_DATE DATE
51 , END_DATE DATE
52 , ABSENCE_START_DATE DATE
53 , ESTIMATED_IJSS VARCHAR2(1)
54 , GI_ELIGIBLE VARCHAR2(4)
55 , BIRTHS NUMBER
56 , BIRTH_DATE DATE
57 , ELIG_IJSS_HOURS VARCHAR2(1)
58 , ELIG_IJSS_CONTRIB NUMBER
59 , ELIG_IJSS VARCHAR2(1)
60 , SPOUSES_LEAVE NUMBER
61 , IJSS_NET_PAYMENT NUMBER
62 , IJSS_ADJUSTMENT VARCHAR2(1)
63 , GI_PAYMENT NUMBER
64 , GI_IJSS_ADJ NUMBER
65 , IJSS_GROSS NUMBER
66 , IJSS_GROSS_RATE NUMBER
67 , IJSS_GROSS_DAYS NUMBER
68 , IJSS_GROSS_START_DATE DATE
69 , IJSS_GROSS_END_DATE DATE
70 , INITIATOR VARCHAR2(30)
71 );
72
73 g_map_calc t_map_calc;
74
75 TYPE t_ctl IS RECORD
76 (iter NUMBER
77 ,p_mode NUMBER);
78
79
80 -- CALC_SICKNESS_DEDUCTION
81 -- fires legislative or user formula as indicated on the establishment
82 -- to calculate the deduction for sickness absence
83
84 Procedure Calculate_Maternity_Deduction;
85
86 -- calculates maternity IJSS
87 PROCEDURE CALC_MAP_IJSS(
88 p_assignment_id IN Number,
89 p_start_date IN Date,
90 p_end_date IN Date
91 );
92
93 -----------------------------------------------------------------------
94 -- use the PQH shared type mapping to identify how many dependent
95 -- children the emloyee has as of the reference date
96 FUNCTION COUNT_CHILDREN(
97 p_person_id IN Number,
98 p_effective_date IN Date) return NUMBER;
99
100 -----------------------------------------------------------------------
101 -- CALC_MAP
102 -- initiates all sickness calculations and performs comparison of
103 -- most beneficial guarantee over the whole absence period.
104 --
105 PROCEDURE calc_map;
106 --
107 -- init_absence
108 -- populates internal PL/SQL structure with passed parameter values
109 -- Decides skipping based on ijss estimate information.
110 --
111
112 FUNCTION init_map_absence(
113 P_Assignment_id IN Number,
114 P_element_entry_id IN Number,
115 P_date_earned IN Date,
116 p_business_group_id IN Number,
117 p_payroll_id IN Number,
118 p_assignment_action_id IN Number,
119 p_element_type_id IN Number,
120 p_deduction_formula IN Number,
121 p_deduction_ref_salary IN Number,
122 P_action_start_date IN Date,
123 P_action_end_date IN Date,
124 p_notional_ss_rate IN Number)
125 RETURN Varchar2 ;
126 --
127 FUNCTION init_cpam_absence(
128 P_Assignment_id IN Number,
129 P_element_entry_id IN Number,
130 P_date_earned IN Date,
131 p_business_group_id IN Number,
132 p_payroll_id IN Number,
133 p_assignment_action_id IN Number,
134 p_element_type_id IN Number,
135 p_payment_from_date IN Date,
136 p_payment_to_date IN Date,
137 p_days IN Number,
138 p_gross_amount IN Number,
139 p_net_amount IN Number,
140 p_gross_daily_rate IN Number)
141 RETURN Varchar2 ;
142
143 -- get_map_skip
144 -- Gets skip information from internal PL/SQL structure
145 -- Decides skipping or processing of element.
146 --
147
148 FUNCTION get_map_skip
149 RETURN Varchar2 ;
150 --
151
152 -- iterate
153 -- controls iteration logic for process
154 -- Decides number of iteration, finds adjustment and stop processing.
155 --
156
157 FUNCTION iterate(
158 P_Assignment_id IN Number,
159 P_element_entry_id IN Number,
160 P_date_earned IN Date,
161 p_net_pay IN Number,
162 p_stop_processing OUT NOCOPY Varchar2)
163
164 RETURN Number ;
165 --
166
167 -- indirects
168 -- Create indirects for maternity process and populates input values
169 -- Decides which element should be created
170 --
171
172 FUNCTION indirects
173 ( p_absence_id out nocopy number,
174 p_ijss_gross out nocopy number,
175 p_ijss_gross_rate out nocopy number,
176 p_ijss_gross_base out nocopy number,
177 p_ijss_gross_start_date out nocopy date,
178 p_ijss_gross_end_date out nocopy date,
179 p_ijss_estmtd out nocopy varchar2,
180 p_ijss_net_payment out nocopy number,
181 p_map_deduction out nocopy number,
182 p_map_deduction_rate out nocopy number,
183 p_map_deduction_base out nocopy number,
184 p_map_deduct_start_date out nocopy date,
185 p_map_deduct_end_date out nocopy date,
186 p_map_gi_payment out nocopy number,
187 p_map_ijss_adjustment out nocopy number)
188
189 RETURN Number ;
190 --
191
192 PROCEDURE reset_data_structures;
193 --
194
195 PROCEDURE increment_iteration;
196 --
197
198 PROCEDURE set_adjustment
199 (p_net_pay NUMBER);
200 --
201
202 END PAY_FR_MAP_CALC;