DBA Data[Home] [Help]

PACKAGE: APPS.PQP_US_SRS_EXTRACTS

Source


1 Package PQP_US_SRS_Extracts AUTHID CURRENT_USER As
2 -- $Header: pqpussrs.pkh 120.1 2005/06/09 15:10:46 rpinjala noship $
3 -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 -- ~ Global Variables         ~
5 -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6 
7 g_proc_name               varchar2(65):= 'PQP_US_SRS_Extracts.';
8 g_assignment_id           per_all_assignments_f.assignment_id%Type;
9 g_business_group_id       per_all_assignments_f.business_group_id%TYPE;
10 g_legislation_code        varchar2(20);
11 g_ext_dtl_rcd_id          ben_ext_rcd.ext_rcd_id%TYPE;
12 g_ext_dfn_type            pqp_extract_attributes.ext_dfn_type%TYPE;
13 g_ext_dfn_id              pqp_extract_attributes.ext_dfn_id%TYPE;
14 g_effective_date          date;
15 g_extract_start_date      date;
16 g_extract_end_date        date;
17 g_extract_pay_date        date;
18 g_payroll_frequency       varchar(150);
19 
20 g_eligible_comp_balance_C varchar2(150) := ' Eligible Comp';
21 g_SRS_balance_C           varchar2(150) := ' SRS Plan Name';
22 g_ER_balance_C            varchar2(150) := ' ER Contribution';
23 g_AT_Contribution_C       varchar2(150) := ' AT';
24 g_BuyBack_Balance_C       varchar2(150) := ' Buy Back';
25 g_Additional_Balance_C    varchar2(150) := ' Addl EE Contr Amt';
26 g_ER_Additional_C         varchar2(150) := ' Addl ER Contr Amt';
27 
28 g_srs_balance             varchar2(150);
29 g_eligible_comp_balance   varchar2(150);
30 g_ER_balance              varchar2(150);
31 g_AT_Contribution         varchar2(150);
32 g_BuyBack_Balance         varchar2(150);
33 g_Additional_Balance      varchar2(150);
34 g_ER_Additional           varchar2(150);
35 
36 g_dimension_name          varchar2(100);
37 
38 g_plan_person_identifier  varchar2(150);
39 g_qualifies_10yr_rule     varchar2(150);
40 g_qualifies_GrdFathering  varchar2(150);
41 g_plan_start_date         date;
42 g_plan_end_date           date;
43 --
44 Type g_srs_plan_rec Is Record
45             ( plan_name  varchar2(150)
46              ,assignment_id per_all_assignments_f.assignment_id%TYPE);
47 Type t_srs_plan_type Is Table Of g_srs_plan_rec Index By Binary_Integer;
48 g_extract_plan_names   t_srs_plan_type ;
49 g_extract_plan_name    varchar2(150);
50 --
51 --
52 Type g_srs_payroll_rec Is Record
53             (payroll_name  varchar2(150) );
54 Type t_srs_payroll_type Is Table Of g_srs_payroll_rec Index By Binary_Integer;
55 g_extract_payroll_names   t_srs_payroll_type ;
56 --
57 --
58 Type g_payroll_details Is Record
59       (payroll_name        pay_payrolls_f.payroll_name%TYPE
60       ,period_type         pay_payrolls_f.period_type%TYPE
61       ,payroll_start_date  date
62       ,payroll_end_date    date
63       ,actual_pay_date     date
64       );
65 Type t_payroll_details_type Is Table Of g_payroll_details Index By Binary_Integer;
66 g_payroll_names  t_payroll_details_type;
67 --
68 --
69 -- ============================
70 -- ~ Cursors Declarations     ~
71 -- ============================
72 --
73 -- Cursor to get the extract record id
74 --
75 Cursor csr_ext_rcd_id(c_hide_flag	In Varchar2
76 		             ,c_rcd_type_cd	In Varchar2
77                       ) Is
78 select rcd.ext_rcd_id
79  from  ben_ext_rcd rcd
80       ,ben_ext_rcd_in_file rin
81       ,ben_ext_dfn dfn
82 Where dfn.ext_dfn_id   = ben_ext_thread.g_ext_dfn_id -- The extract executing currently
83   And rin.ext_file_id  = dfn.ext_file_id
84   And rin.hide_flag    = c_hide_flag                 -- Y=Hidden, N=Not Hidden
85   And rin.ext_rcd_id   = rcd.ext_rcd_id
86   And rcd.rcd_type_cd  = c_rcd_type_cd;              -- D=Detail,H=Header,F=Footer
87 
88 --
89 -- Cursor to get the defined balance id for a given balance and dimension
90 --
91 cursor csr_defined_bal ( c_balance_name    in varchar2
92                         ,c_dimension_name  in varchar2
93                         ,c_business_group_id in number) is
94  select db.defined_balance_id
95    from pay_balance_types pbt
96        ,pay_defined_balances db
97        ,pay_balance_dimensions bd
98   where pbt.balance_name        = c_balance_name
99     and pbt.balance_type_id     = db.balance_type_id
100     and bd.balance_dimension_id = db.balance_dimension_id
101     and bd.dimension_name       = c_dimension_name
102     and (pbt.business_group_id  = c_business_group_id or
103          pbt.legislation_code   = g_legislation_code)
104     and (db.business_group_id   = pbt.business_group_id or
105          db.legislation_code    = g_legislation_code);
106 --
107 -- Get the Payroll Id for the given assignment id, used in case the extract is PTD type
108 --
109 Cursor csr_get_payroll_id
110         ( c_assignment_id  In per_all_assignments_f.assignment_id%TYPE
111          ,c_effective_date In date) Is
112  Select  paa.payroll_id
113         ,paa.effective_start_date
114         ,paa.effective_end_date
115    from per_all_assignments_f paa
116   where paa.assignment_id = c_assignment_id
117     and ((c_effective_date between paa.effective_start_date
118                                and paa.effective_end_date
119           )
120          Or
121          (paa.effective_start_date =( select max(pax.effective_start_date)
122                                         from per_all_assignments_f pax
123                                        where pax.assignment_id = c_assignment_id)
124           )
125          );
126 --
127 -- Get the payroll_name and payroll frequency
128 --
129 Cursor csr_payroll_name (c_payroll_id     In per_all_assignments_f.payroll_id%TYPE
130                         ,c_effective_date In date ) Is
131   Select payroll_name, period_type
132     from pay_payrolls_f
133    Where c_effective_date Between effective_start_date
134                               and effective_end_date
135      and payroll_id = c_payroll_id;
136 
137 --
138 -- Cursor to get the SRS Plans assignment extra info
139 --
140 Cursor csr_assig_extra_info
141        ( c_assignment_id In per_all_assignments_f.assignment_id%TYPE
142          ) Is
143  Select *
144    From per_assignment_extra_info pae
145   Where pae.assignment_id            = c_assignment_id
146     and pae.information_type         = 'PQP_US_SRS_PLAN_ASG_INFO'
147     and pae.aei_information_category = 'PQP_US_SRS_PLAN_ASG_INFO'  ;
148 
149 -- Based on the Payroll id and the effective date of the extract get the start
150 -- and end date of the period. Used only in case of the PTD as each assign. may have
151 -- different payroll frequency i.e. Monthly, Semi-Month, Weekly etc..
152 Cursor csr_time_period ( c_payroll_id     In pay_payrolls_f.payroll_id%TYPE
153                         ,c_effective_date In date) Is
154  Select start_date, end_date
155    from per_time_periods
156   where payroll_id  = c_payroll_id
157     and c_effective_date between start_date
158                              and end_date;
159 --
160 -- Cursor to get the primary assig. records active as of the given period
161 --
162 Cursor csr_assig_rec
163        ( c_assignment_id      in per_all_assignments_f.assignment_id%TYPE
164         ,c_business_group_id  in per_all_assignments_f.business_group_id%TYPE
165         ,c_effective_date     in date
166         ,c_extract_start_date in date
167         ,c_extract_end_date   in date ) Is
168   select *
169     from per_all_assignments_f paa
170    where paa.business_group_id = c_business_group_id
171      and paa.assignment_id     = c_assignment_id
172      and paa.primary_flag      = 'Y'
173      and ((c_effective_date between paa.effective_start_date
174                                 and paa.effective_end_date
175            )
176          Or
177           ( paa.effective_end_date = ( Select max(asx.effective_end_date)
178                                          from per_all_assignments_f asx
179                                         Where asx.assignment_id       = paa.assignment_id
180                                           and asx.primary_flag        = 'Y'
181                                           and ((asx.effective_end_date between c_extract_start_date
182                                                                            and c_extract_end_date
183                                                 )
184                                                Or
185                                                (asx.effective_start_date between c_extract_start_date
186                                                                              and c_extract_end_date
187                                                 )
188                                               )
189                                       )
190            )
191          );
192 
193 Type t_pri_asg_type Is Table of  csr_assig_rec%ROWTYPE Index By BINARY_INTEGER;
194 g_primary_asg    t_pri_asg_type;
195 --
196 -- Cursor to get the secondary assig. records active as of the given period.
197 --
198 Cursor csr_sec_assignments
199            (c_primary_assignment_id In per_all_assignments_f.assignment_id%TYPE
200            ,c_person_id		        In per_all_people_f.person_id%TYPE
201            ,c_effective_date    	In date
202            ,c_extract_start_date    In date
203            ,c_extract_end_date      In Date ) Is
204   Select  *
205     From per_all_assignments_f  asg
206    Where asg.person_id = c_person_id
207      And asg.assignment_id <> c_primary_assignment_id
208      And asg.assignment_type ='E'
209      And (( c_effective_date  Between asg.effective_start_date
210                                  And asg.effective_end_date
211            )
212           Or
213           ( asg.effective_end_date = ( Select max(asx.effective_end_date)
214                                          from per_all_assignments_f asx
215                                         Where asx.assignment_id   = asg.assignment_id
216                                           and asx.person_id       = c_person_id
217                                           and asx.assignment_type ='E'
218                                           and ((asx.effective_end_date between c_extract_start_date
219                                                                            and c_extract_end_date
220                                                 )
221                                                 Or
222                                                (asx.effective_start_date between c_extract_start_date
223                                                                              and c_extract_end_date
224                                                 )
225                                                )
226                                       )
227            )
228           )
229    ORDER BY asg.effective_start_date ASC; -- effective first then future rows
230 TYPE t_sec_asgs_type IS TABLE OF csr_sec_assignments%ROWTYPE INDEX BY BINARY_INTEGER;
231 g_all_sec_asgs	t_sec_asgs_type;
232 
233 -- ============================
234 -- ~ Functions Declarations   ~
235 -- ============================
236 Function Get_Header_Information
237         (p_header_type In varchar2
238         ,p_header_name In out nocopy Varchar2) Return Number;
239 
240 Function Get_Payroll_Names
241         (p_effective_date In Date
242         ,p_payroll_name   In varchar2) Return Varchar2;
243 Function Get_Payroll_Name
244         (p_assignment_id In per_all_assignments_f.assignment_id%TYPE
245         ,p_payroll_name  In out nocopy varchar2) Return Number;
246 
247 Function Get_Payroll_Start_Date
248         (p_assignment_id In per_all_assignments_f.assignment_id%TYPE
249         ,p_start_date    In out nocopy Varchar2) Return Number;
250 
251 Function Get_Payroll_End_Date
252         (p_assignment_id In per_all_assignments_f.assignment_id%TYPE
253         ,p_end_date      In out nocopy Varchar2) Return Number;
254 
255 Function Get_Actual_Pay_Date
256         (p_assignment_id In per_all_assignments_f.assignment_id%TYPE
257         ,p_pay_date      In out nocopy Varchar2) Return Number;
258 
259 Function Get_SRS_Plan_Name
260         (p_assignment_id In per_all_assignments_f.assignment_id%TYPE
261         ,p_SRS_Plan_Name In out nocopy Varchar2) Return Number;
262 
263 Function Get_Separation_Date
264         (p_assignment_id  In per_all_assignments_f.assignment_id%TYPE
265         ,p_Separation_Date In out nocopy Varchar2) Return Number;
266 
267 Function Get_Assig_Status
268         (p_assignment_id In per_all_assignments_f.assignment_id%TYPE
269         ,p_status_code   In out nocopy Varchar2) Return Number;
270 
271 Function Get_Person_Indentifier
272         (p_assignment_id     In per_all_assignments_f.assignment_id%TYPE -- context
273         ,p_person_identifier In out nocopy Varchar2 ) Return Number;
274 
275 Function Get_SRS_Deduction_Balances
276         (p_assignment_id  In per_all_assignments_f.assignment_id%TYPE
277         ,p_balance_name   In pay_balance_types.balance_name%TYPE
278         ,p_balance_amount In out nocopy Number
279          ) Return Number;
280 
281 Function Get_Balance_Value
282         (p_business_group_id In per_all_assignments_f.business_group_id%TYPE
283         ,p_assignment_id     In per_all_assignments_f.assignment_id%TYPE
284         ,p_effective_date    In date
285         ,p_balance_name      In varchar2
286         ,p_dimension_name    In varchar2
287          ) Return Number;
288 
289 Function Get_Plan_Names
290         (p_effective_date In Date
291         ,p_extract_name   In varchar2 ) Return Varchar2;
292 
293 Function Pay_US_SRS_Main_Criteria
294         (p_assignment_id        In per_all_assignments_f.assignment_id%TYPE
295         ,p_effective_date       In date
296         ,p_business_group_id    In per_all_assignments_f.business_group_id%TYPE
297         ,p_extract_plan_name    In Varchar2
298         ,p_extract_payroll_name In Varchar2 Default Null
299         ) Return Varchar2;
300 
301 Function Create_Secondary_Assig_Lines
302          (p_assignment_id in per_all_assignments_f.assignment_id%TYPE
303           ) Return Varchar2;
304 Procedure Create_New_Lines
305          (p_pri_assignment_id  In per_all_assignments_f.assignment_id%TYPE
306          ,p_sec_assignment_id  In per_all_assignments_f.assignment_id%TYPE
307          ,p_person_id          In per_all_people_f.person_id%TYPE
308          ,p_record_name        In Varchar2
309           );
310 
311 Function Get_Secondary_Assignments
312         (p_primary_assignment_id In per_all_assignments_f.assignment_id%TYPE
313         ,p_person_id             In per_all_people_f.person_id%TYPE
314         ,p_effective_date        In date
315         ,p_extract_start_date    In date
316         ,p_extract_end_date      In date ) Return Varchar2;
317 
318 Function Check_Assig_Extra_Info
319         (p_assignment_id      In per_all_assignments_f.assignment_id%TYPE
320         ,p_extract_plan_name  In varchar2
321         ,p_extract_start_date In date
322         ,p_extract_end_date   In date
323          ) Return Varchar2 ;
324 
325 Function Del_Service_Detail_Recs
326         (p_business_group_id  ben_ext_rslt_dtl.business_group_id%TYPE
327          )Return Number;
328 
329 ---Added new function to get EE DCP contribution Limit
330 Function get_dcp_limit
331         (p_effective_date date
332          ) Return number;
333 
334 ---------------------------
335 -- ============================
336 -- ~ Procedures               ~
337 -- ============================
338 Procedure Update_Record_Values
339          (p_ext_rcd_id            In ben_ext_rcd.ext_rcd_id%TYPE
340          ,p_ext_data_element_name In ben_ext_data_elmt.name%TYPE
341          ,p_data_element_value    In ben_ext_rslt_dtl.val_01%TYPE
342          ,p_data_ele_seqnum       In Number Default Null
343          ,p_ext_dtl_rec           In out nocopy ben_ext_rslt_dtl%ROWTYPE
344          );
345 
346 Function Get_PTD_Start_End_Date
347         (p_assignment_id  In per_all_assignments_f.assignment_id%TYPE
348         ,p_effective_date In Date
349          ) Return Varchar2;
350 
351 Procedure Ins_Rslt_Dtl
352           (p_dtl_rec In out nocopy ben_ext_rslt_dtl%ROWTYPE );
353 
354 
355 End PQP_US_SRS_Extracts;