[Home] [Help]
PACKAGE BODY: APPS.PAY_ZA_TAX_REG_AR
Source
1 PACKAGE BODY PAY_ZA_TAX_REG_AR as
2 /* $Header: pyzatxreg.pkb 120.1.12020000.3 2013/02/07 10:42:56 abdash noship $ */
3 /* Copyright (c) 2001 Oracle Corporation Redwood Shores, California, USA */
4 /* All rights reserved.
5
6 Change List:
7 ------------
8
9 Name Date Version Bug Text
10 -------------- ----------- ------- ------- -----------------------
11 NCHINNAM 29-NOv-2011 120.0.12010000.1 Initial Version
12 ABDASH 01-Feb-2013 120.0.12010000.3 16174886 ADDING OF LEGAL ENTITY PARAMETER TO TAX REGISTER REPORT(XML)
13 ABDASH 05-Feb-2013 120.0.12010000.4 16174886 ADDING OF LEGAL ENTITY PARAMETER TO TAX REGISTER REPORT(XML)
14 ABDASH 07-Feb-2013 120.0.12010000.5 16174886 ADDING OF LEGAL ENTITY PARAMETER TO TAX REGISTER REPORT(XML)
15 */
16
17 -------------------------------------------------------------------------------
18 -- PACKAGE BODY --
19 -------------------------------------------------------------------------------
20
21 ------------------
22 -- Package Globals
23 ------------------
24 g_package constant varchar2(30):= 'pay_za_tax_reg_rep.';
25
26 -- Legislative Parameters
27 g_payroll_id pay_payrolls_f.payroll_id%type ;
28 g_st_period_id per_time_periods.time_period_id%type;
29 g_end_period_id per_time_periods.time_period_id%type;
30 g_payroll_name pay_payrolls_f.payroll_name%type := null;
31 g_end_period_date per_time_periods.end_date%type;
32 g_inc_all_asg VARCHAR2(1);
33 g_spc_asg_id per_all_assignments_f.assignment_id%TYPE;
34 g_ret_ptd VARCHAR2(1);
35 g_ret_mtd VARCHAR2(1);
36 g_ret_ytd VARCHAR2(1);
37 g_sort1 VARCHAR2(100);
38 g_sort2 VARCHAR2(100);
39 g_sort3 VARCHAR2(100);
40 g_print_det VARCHAR2(1);
41 g_debug VARCHAR2(1);
42 g_legal_entity_id NUMBER;
43
44 g_tax_year per_time_periods.prd_information1%type;
45
46
47 FUNCTION get_parameter(p_parameter_string IN VARCHAR2,
48 p_token IN VARCHAR2) RETURN VARCHAR2
49 IS
50 l_parameter pay_payroll_actions.legislative_parameters%TYPE:=NULL;
51 l_start_pos NUMBER;
52 l_delimiter varchar2(1):=' ';
53 BEGIN
54 l_start_pos := instr(' '||p_parameter_string,l_delimiter||p_token||'=');
55 IF l_start_pos = 0 THEN
56 l_delimiter := '|';
57 l_start_pos := instr(' '||p_parameter_string,l_delimiter||p_token||'=');
58 end if;
59 IF l_start_pos <> 0 THEN
60 l_start_pos := l_start_pos + length(p_token||'=');
61 l_parameter := substr(p_parameter_string,
62 l_start_pos,
63 instr(p_parameter_string||' ',
64 l_delimiter,l_start_pos)
65 - l_start_pos);
66 END IF;
67 RETURN l_parameter;
68 END get_parameter;
69
70 procedure range_cursor(pactid in number,
71 sqlstr out nocopy varchar2)
72 is
73 l_proc constant varchar2(80) := g_package ||'range_cursor';
74
75 leg_param pay_payroll_actions.legislative_parameters%type;
76
77 begin
78 -- hr_utility.trace_on(null,'ZATAXREGAR');
79 hr_utility.set_location('Entering: '||l_proc,10);
80 hr_utility.set_location('pactid: '||pactid,10);
81
82 -- Retrieve legislative parameters from the archiver payroll action
83 select legislative_parameters
84 into leg_param
85 from pay_payroll_actions
86 where payroll_action_id = pactid;
87
88 hr_utility.set_location('leg_param:'||leg_param,20);
89
90 -- Get Parameters
91 g_legal_entity_id := get_parameter(leg_param,'LEGAL_ENTITY');
92 g_end_period_date := fnd_date.canonical_to_date(get_parameter(leg_param,'END_PERIOD_DATE'));
93 g_spc_asg_id := get_parameter(leg_param,'SPC_ASG');
94
95 hr_utility.set_location('g_legal_entity_id:'||g_legal_entity_id,20);
96 hr_utility.set_location('g_end_period_date:'||g_end_period_date,20);
97
98 -- commenting this out as this range cursor is no longer valid
99 /*
100 sqlstr :=
101 'SELECT distinct PAF.person_id
102 FROM per_assignments_f PAF,
103 pay_payrolls_f PPY,
104 pay_payroll_actions PPA
105 WHERE PPA.payroll_action_id = :payroll_action_id
106 AND PAF.business_group_id = PPA.business_group_id
107 AND PPY.payroll_id = PAF.payroll_id
108 AND PPY.payroll_id = '||g_payroll_id||'
109 ORDER BY PAF.person_id';
110 */
111
112 -- new range cursor
113 sqlstr :=
114 'SELECT distinct PAF.person_id
115 FROM per_assignments_f PAF,
116 pay_payrolls_f PPY,
117 pay_payroll_actions PPA,
118 per_assignment_extra_info AEI
119 WHERE PPA.payroll_action_id = :payroll_action_id
120 AND PAF.business_group_id = PPA.business_group_id
121 AND PPY.payroll_id = PAF.payroll_id
122 AND AEI.assignment_id = PAF.assignment_id
123 AND AEI.aei_information_category = ''ZA_SPECIFIC_INFO''
124 AND AEI.aei_information7 = to_char('||g_legal_entity_id||')';
125
126 if (g_spc_asg_id is not null) then
127 sqlstr := sqlstr ||' AND PAF.assignment_id = '||g_spc_asg_id;
128 end if;
129
130 sqlstr := sqlstr|| ' ORDER BY PAF.person_id';
131
132 hr_utility.set_location(' Leaving: '||l_proc,100);
133 end range_cursor;
134
135 procedure action_creation(pactid in number,
136 stperson in number,
137 endperson in number,
138 chunk in number)
139 is
140
141 -----------------------------------------------------------------
142 -- Cursor csr_processed_assignments
143 -- Selects processed assignments and corresponding person details
144 -- for a specific legal entity within two time periods
145 -- returning the maximum assignment action
146
147 -----------------------------------------------------------------
148 -- TODO Tune this cursor so as to retrive only required onfo
149 CURSOR csr_processed_assignments (
150 p_payroll_id IN pay_all_payrolls_f.payroll_id%TYPE DEFAULT NULL
151 , p_period_end_date IN per_time_periods.end_date%TYPE
152 , p_asg_id IN per_all_assignments_f.assignment_id%TYPE DEFAULT NULL
153 , p_legal_entity_id NUMBER
154 )
155 IS
156 SELECT PAF.assignment_id
157 FROM per_assignments_f PAF
158 , per_assignment_extra_info aei
159 , per_time_periods ptp
160 WHERE PAF.payroll_id = nvl(p_payroll_id, PAF.payroll_id)
161 AND PAF.assignment_id = nvl(p_asg_id, PAF.assignment_id)
162 AND aei.assignment_id = PAF.assignment_id
163 AND aei.aei_information_category = 'ZA_SPECIFIC_INFO'
164 AND aei.aei_information7 = to_char(p_legal_entity_id)
165 AND PAF.effective_end_date = (select max(PAF2.effective_end_date)
166 from per_assignments_f PAF2
167 where PAF2.assignment_id = PAF.assignment_id
168 and PAF2.payroll_id = PAF.payroll_id)
169 AND PAF.person_id BETWEEN stperson and endperson
170 AND ptp.payroll_id = PAF.payroll_id
171 and p_period_end_date between ptp.start_date and ptp.end_date
172 AND exists
173 ( select 1 from
174 pay_assignment_actions paa3,
175 pay_payroll_actions ppa2
176 where paa3.assignment_id = PAF.assignment_id
177 and paa3.payroll_action_id = ppa2.payroll_action_id
178 and ppa2.action_type IN ('R', 'Q', 'I', 'B', 'V')
179 and ppa2.time_period_id >= (select MIN(ptp1.time_period_id) min_time_period
180 from per_time_periods ptp1
181 where ptp1.payroll_id = PAF.payroll_id
182 and ptp1.prd_information1 = ptp.prd_information1
183 )
184 and ppa2.time_period_id <= ptp.time_period_id
185 and ppa2.payroll_id = PAF.payroll_id
186 and paa3.ACTION_STATUS in ( 'C', 'S')
190
187 );
188
189 l_proc constant varchar2(80) := g_package ||'action_creation';
191 l_ass_act_id pay_assignment_actions.assignment_action_id%type;
192
193 leg_param pay_payroll_actions.legislative_parameters%type;
194
195 begin
196 hr_utility.set_location('Entering: '||l_proc,10);
197 hr_utility.set_location('chunk: '||chunk,10);
198
199 -- Retrieve legislative parameters from the archiver payroll action
200 select legislative_parameters
201 into leg_param
202 from pay_payroll_actions
203 where payroll_action_id = pactid;
204
205 hr_utility.set_location('leg_param:'||leg_param,20);
206
207 -- Get Parameters
208 g_legal_entity_id := get_parameter(leg_param,'LEGAL_ENTITY');
209 g_payroll_id := get_parameter(leg_param,'PAYROLL_ID');
210 g_end_period_date := fnd_date.canonical_to_date(get_parameter(leg_param,'END_PERIOD_DATE'));
211 g_inc_all_asg := get_parameter(leg_param,'INC_ALL_ASG');
212 g_spc_asg_id := get_parameter(leg_param,'SPC_ASG');
213
214 hr_utility.set_location('g_legal_entity_id:'||g_legal_entity_id,20);
215 hr_utility.set_location('g_end_period_date:'||g_end_period_date,20);
216 hr_utility.set_location('g_payroll_id :'||g_payroll_id ,20);
217 hr_utility.set_location('g_spc_asg_id:'||g_spc_asg_id,20);
218 hr_utility.set_location('g_inc_all_asg:'||g_inc_all_asg,20);
219
220 FOR v_assignments IN csr_processed_assignments
221 ( p_payroll_id => g_payroll_id
222 , p_period_end_date => g_end_period_date
223 , p_asg_id => g_spc_asg_id
224 , p_legal_entity_id => g_legal_entity_id
225 )
226 LOOP
227 hr_utility.set_location('Assignment ID:'||v_assignments.assignment_id,20);
228
229 IF (py_za_tax_reg.include_assignment(v_assignments.assignment_id,
230 g_end_period_date,
231 g_inc_all_asg) = 'Y') THEN
232 hr_utility.set_location('Incl Assignment ID:'||v_assignments.assignment_id,30);
233
234 select pay_assignment_actions_s.nextval
235 into l_ass_act_id
236 from dual;
237
238 -- insert into pay_assignment_actions.
239 hr_nonrun_asact.insact(l_ass_act_id,
240 v_assignments.assignment_id,
241 pactid,
242 chunk,
243 null);
244 END IF;
245
246
247 END LOOP; -- End of Loop csr_processed_assignments
248
249 hr_utility.set_location(' Leaving: '||l_proc,100);
250 end action_creation;
251
252 procedure archinit(p_payroll_action_id in number)
253 is
254 l_proc constant varchar2(80) := g_package ||'archinit';
255
256 leg_param pay_payroll_actions.legislative_parameters%type;
257
258
259 begin
260 hr_utility.set_location('Entering: '||l_proc,10);
261
262
263 -- Commenting out below portion as it is not required to set
264 -- the globals from archinit when they are getting set in
265 -- archive_code
266 /*
267
268 -- Retrieve legislative parameters from the archiver payroll action
269 select legislative_parameters
270 into leg_param
271 from pay_payroll_actions
272 where payroll_action_id = p_payroll_action_id;
273
274 hr_utility.set_location('leg_param:'||leg_param,20);
275
276 -- Get Parameters
277 g_legal_entity_id := get_parameter(leg_param,'LEGAL_ENTITY');
278 g_payroll_id := get_parameter(leg_param,'PAYROLL_ID');
279 -- g_st_period_id := get_parameter(leg_param,'ST_PERIOD_ID');
280 -- g_end_period_id := get_parameter(leg_param,'END_PERIOD_ID');
281 -- g_payroll_name := get_parameter(leg_param,'PAYROLL_NAME');
282 g_end_period_date := fnd_date.canonical_to_date(get_parameter(leg_param,'END_PERIOD_DATE'));
283 -- g_inc_all_asg := get_parameter(leg_param,'INC_ALL_ASG');
284 -- g_spc_asg_id := get_parameter(leg_param,'SPC_ASG');
285 -- g_ret_ptd := get_parameter(leg_param,'RET_PTD');
286 -- g_ret_mtd := get_parameter(leg_param,'RET_MTD');
287 -- g_ret_ytd := get_parameter(leg_param,'RET_YTD');
288 -- g_sort1 := get_parameter(leg_param,'SORT1');
289 -- g_sort2 := get_parameter(leg_param,'SORT2');
290 -- g_sort3 := get_parameter(leg_param,'SORT3');
291 -- g_print_det := get_parameter(leg_param,'PRINT_DET');
292 -- g_debug := get_parameter(leg_param,'DEBUG');
293
294
295 py_za_tax_reg.archive_set_globals(
296 p_payroll_id => g_payroll_id
297 , p_start_period_id => g_st_period_id
298 , p_end_period_id => g_end_period_id
299 , p_include => g_inc_all_asg
300 , p_retrieve_ptd => g_ret_ptd
301 , p_retrieve_mtd => g_ret_mtd
302 , p_retrieve_ytd => g_ret_ytd
303 , p_tax_year => g_tax_year
304 );
305 */
306
307 hr_utility.set_location('Leaving: '||l_proc,100);
308 end archinit;
309
310 procedure archive_code(p_assactid in number,
311 p_effective_date in date)
312 is
313 l_proc constant varchar2(80) := g_package ||'archive_code';
314
315 l_asg_id pay_assignment_actions.assignment_id%type;
316
317 l_tax_register_id pay_za_tax_registers.tax_register_id%TYPE;
318 l_payroll_name pay_all_payrolls_f.payroll_name%TYPE;
322 l_tot_employees NUMBER;
319 l_period_num per_time_periods.period_num%TYPE;
320 l_period_start_date per_time_periods.start_date%TYPE;
321 l_period_end_date per_time_periods.end_date%TYPE;
323 l_tot_assignments NUMBER;
324
325 leg_param pay_payroll_actions.legislative_parameters%type;
326
327 l_payroll_action_id pay_payroll_actions.payroll_action_id%type;
328 l_action_info_id number;
329 l_ovn number;
330 l_qtr_num number;
331 l_pay_advice_date per_time_periods.end_date%type;
332
333 begin
334 hr_utility.set_location('Entering: '||l_proc,10);
335 hr_utility.set_location('Processing Action ID:'||p_assactid,10);
336
337 -- Retrieve legislative parameters from the archiver payroll action
338 select ppa.legislative_parameters, ppa.payroll_action_id
339 into leg_param, l_payroll_action_id
340 from pay_payroll_actions ppa,
341 pay_assignment_actions paa
342 where paa.payroll_action_id = ppa.payroll_action_id
343 and paa.assignment_action_id = p_assactid;
344
345 hr_utility.set_location('leg_param:'||leg_param,20);
346
347 -- Get Parameters
348 g_payroll_name := get_parameter(leg_param,'PAYROLL_NAME');
349 g_end_period_date := fnd_date.canonical_to_date(get_parameter(leg_param,'END_PERIOD_DATE'));
350 g_inc_all_asg := get_parameter(leg_param,'INC_ALL_ASG');
351 g_spc_asg_id := get_parameter(leg_param,'SPC_ASG');
352 g_ret_ptd := get_parameter(leg_param,'RET_PTD');
353 g_ret_mtd := get_parameter(leg_param,'RET_MTD');
354 g_ret_ytd := get_parameter(leg_param,'RET_YTD');
355 g_sort1 := get_parameter(leg_param,'SORT1');
356 g_sort2 := get_parameter(leg_param,'SORT2');
357 g_sort3 := get_parameter(leg_param,'SORT3');
358 g_print_det := get_parameter(leg_param,'PRINT_DET');
359 g_debug := get_parameter(leg_param,'DEBUG');
360 g_legal_entity_id := get_parameter(leg_param,'LEGAL_ENTITY');
361
362
363 select assignment_id
364 into l_asg_id
365 from pay_assignment_actions
366 where assignment_action_id = p_assactid;
367
368
369 select ptp.prd_information1,PAF.payroll_id, ptp.time_period_id, ptp.prd_information2, ptp.pay_advice_date
370 into g_tax_year, g_payroll_id, g_end_period_id, l_qtr_num, l_pay_advice_date
371 from per_time_periods ptp
372 ,pay_assignment_actions paa
373 ,per_assignments_f PAF
374 where paa.assignment_action_id = p_assactid
375 and PAF.assignment_id = paa.assignment_id
376 and ptp.payroll_id = PAF.payroll_id
377 -- and g_end_period_date between PAF.effective_start_date and PAF.effective_end_date
378 and PAF.effective_start_date = (select max(effective_start_date) from per_all_assignments_f paf2
379 where paf2.assignment_id = paa.assignment_id
380 and effective_start_date <= g_end_period_date)
381 and g_end_period_date between ptp.start_date and ptp.end_date;
382
383 hr_utility.set_location('g_tax_year:'||g_tax_year,20);
384 hr_utility.set_location('g_end_period_id:'||g_end_period_id,20);
385 hr_utility.set_location('l_qtr_num:'||l_qtr_num,20);
386 hr_utility.set_location('l_pay_advice_date:'||l_pay_advice_date,20);
387
388
389 if to_char(g_end_period_date, 'Mon') = 'Aug' then
390 if l_qtr_num <> 2 then
391 g_end_period_id := g_end_period_id-1;
392 end if;
393 elsif to_char(g_end_period_date, 'Mon') = 'Feb' then
394 if l_qtr_num <> 4 then
395 g_end_period_id := g_end_period_id-1;
396 g_tax_year := g_tax_year - 1;
397 end if;
398 else
399 if to_char(g_end_period_date, 'Mon') <> to_char(l_pay_advice_date, 'Mon') then
400 g_end_period_id := g_end_period_id-1;
401 end if;
402
403 end if;
404
405 hr_utility.set_location('g_tax_year:'||g_tax_year,20);
406 hr_utility.set_location('g_end_period_id:'||g_end_period_id,20);
407
408
409 select MIN(ptp.time_period_id)
410 into g_st_period_id
411 from per_time_periods ptp
412 where ptp.payroll_id = g_payroll_id
413 and ptp.prd_information1 = g_tax_year;
414
415
416 py_za_tax_reg.archive_set_globals(
417 p_payroll_id => g_payroll_id
418 , p_start_period_id => g_st_period_id
419 , p_end_period_id => g_end_period_id
420 , p_include => g_inc_all_asg
421 , p_retrieve_ptd => g_ret_ptd
422 , p_retrieve_mtd => g_ret_mtd
423 , p_retrieve_ytd => g_ret_ytd
424 , p_tax_year => g_tax_year
425 );
426
427 hr_utility.set_location('Assignment ID:'||l_asg_id,20);
428
429 IF ( g_tax_year <= '2009') THEN
430 py_za_tax_reg.pre_process(
431 p_payroll_id => g_payroll_id
432 , p_start_period_id => g_st_period_id
433 , p_end_period_id => g_end_period_id
434 , p_include => g_inc_all_asg
435 , p_assignment_id => l_asg_id
436 , p_retrieve_ptd => g_ret_ptd
437 , p_retrieve_mtd => g_ret_mtd
438 , p_retrieve_ytd => g_ret_ytd
439 , p_tax_register_id => l_tax_register_id
440 , p_payroll_name => l_payroll_name
441 , p_period_num => l_period_num
445 , p_tot_assignments => l_tot_assignments
442 , p_period_start_date => l_period_start_date
443 , p_period_end_date => l_period_end_date
444 , p_tot_employees => l_tot_employees
446 , p_assactid => p_assactid
447 );
448 ELSE
449 py_za_tax_reg.pre_process_01032009(
450 p_payroll_id => g_payroll_id
451 , p_start_period_id => g_st_period_id
452 , p_end_period_id => g_end_period_id
453 , p_include => g_inc_all_asg
454 , p_assignment_id => l_asg_id
455 , p_retrieve_ptd => g_ret_ptd
456 , p_retrieve_mtd => g_ret_mtd
457 , p_retrieve_ytd => g_ret_ytd
458 , p_tax_register_id => l_tax_register_id
459 , p_payroll_name => l_payroll_name
460 , p_period_num => l_period_num
461 , p_period_start_date => l_period_start_date
462 , p_period_end_date => l_period_end_date
463 , p_tot_employees => l_tot_employees
464 , p_tot_assignments => l_tot_assignments
465 , p_assactid => p_assactid
466 );
467 END IF;
468
469 hr_utility.set_location('l_tot_assignments '||l_tax_register_id,30);
470 hr_utility.set_location('l_tot_assignments '||l_tot_assignments,30);
471
472 hr_utility.set_location('Leaving: '||l_proc,100);
473 end archive_code;
474
475
476 procedure deinit_code(pactid in number)
477 is
478
479 CURSOR get_legal_entity_name(p_organization_id number)IS
480 select haou.name
481 from hr_all_organization_units haou,
482 hr_organization_information hoi,
483 hr_organization_information hoi2
484 where haou.organization_id = p_organization_id
485 and hoi.organization_id = haou.organization_id
486 and hoi.org_information_context = 'ZA_LEGAL_ENTITY'
487 and hoi2.organization_id = haou.organization_id
488 and hoi2.org_information_context = 'CLASS'
489 and hoi2.org_information1 = 'HR_LEGAL'
490 and hoi2.org_information2 = 'Y' ;
491
492 CURSOR get_payroll_info IS
493 select distinct pai.action_information21 payroll_id,
494 ppa.effective_date effective_date,
495 ppf.payroll_name payroll_name,
496 ptp.start_date start_date,
497 ptp.end_date end_date
498 from pay_payroll_actions ppa
499 , pay_assignment_actions paa
500 , pay_action_information pai
501 , pay_all_payrolls_f ppf
502 , per_time_periods ptp
503 where ppa.payroll_action_id = pactid
504 and ppa.action_status = 'C'
505 and paa.payroll_action_id = ppa.payroll_action_id
506 and paa.action_status = 'C'
507 and pai.action_context_id = paa.assignment_action_id
508 and pai.action_context_type = 'AAP'
509 and pai.action_information_category = 'ZA_TAX_REG_REP'
510 and ppf.payroll_id = pai.action_information21
511 and ptp.payroll_id = ppf.payroll_id
512 and ptp.time_period_id = pai.action_information22
513 order by payroll_id;
514
515
516 xml_layout boolean;
517 l_request_id fnd_concurrent_requests.request_id%TYPE;
518
519 leg_param pay_payroll_actions.legislative_parameters%type;
520
521 l_legal_entity_name varchar2(240);
522 l_action_info_id number;
523 l_ovn number;
524
525 begin
526
527 -- Retrieve legislative parameters from the archiver payroll action
528 select legislative_parameters
529 into leg_param
530 from pay_payroll_actions
531 where payroll_action_id = pactid;
532
533 hr_utility.set_location('leg_param:'||leg_param,10);
534
535 -- Get Parameters
536 g_end_period_date := fnd_date.canonical_to_date(get_parameter(leg_param,'END_PERIOD_DATE'));
537 g_inc_all_asg := get_parameter(leg_param,'INC_ALL_ASG');
538 g_spc_asg_id := get_parameter(leg_param,'SPC_ASG');
539 g_ret_ptd := get_parameter(leg_param,'RET_PTD');
540 g_ret_mtd := get_parameter(leg_param,'RET_MTD');
541 g_ret_ytd := get_parameter(leg_param,'RET_YTD');
542 g_sort1 := get_parameter(leg_param,'SORT1');
543 g_sort2 := get_parameter(leg_param,'SORT2');
544 g_sort3 := get_parameter(leg_param,'SORT3');
545 g_print_det := get_parameter(leg_param,'PRINT_DET');
546 g_debug := get_parameter(leg_param,'DEBUG');
547 g_legal_entity_id := get_parameter(leg_param,'LEGAL_ENTITY');
548
549
550 open get_legal_entity_name(g_legal_entity_id);
551 fetch get_legal_entity_name into l_legal_entity_name ;
552 close get_legal_entity_name ;
553
554
555
556 for pay in get_payroll_info
557 loop
558 hr_utility.set_location('Archiving payroll info',20);
559 -- Archive PAYROLL DETAILS
560 pay_action_information_api.create_action_information
561 (
562 p_action_information_id => l_action_info_id,
563 p_action_context_id => pactid,
564 p_action_context_type => 'PA',
565 p_object_version_number => l_ovn,
566 p_effective_date => pay.effective_date ,
567 p_action_information_category => 'ZA_TAX_REG_REP_PAY_DET',
568 p_action_information1 => pay.payroll_id,
569 p_action_information2 => pay.payroll_name,
570 p_action_information3 => pay.start_date,
571 p_action_information4 => pay.end_date
572 );
573
574 hr_utility.set_location('Archived payroll info',30);
575 end loop;
576
577
578 xml_layout := FND_REQUEST.ADD_LAYOUT('PAY','PYZATXREGREP','en','US','PDF');
579
580 IF xml_layout = true
581 THEN
582
583 l_request_id := fnd_request.submit_request
584 (application => 'PAY'
585 ,program => 'PYZATXREGREP'
586 ,argument1 => g_end_period_date
587 ,argument2 => g_inc_all_asg
588 ,argument3 => g_spc_asg_id
589 ,argument4 => g_ret_ptd
590 ,argument5 => g_ret_mtd
591 ,argument6 => g_ret_ytd
592 ,argument7 => g_sort1
593 ,argument8 => g_sort2
594 ,argument9 => g_sort3
595 ,argument10 => g_print_det
596 ,argument11 => pactid
597 ,argument12 => l_legal_entity_name
598 ,argument13 => g_debug
599 );
600 -- Commit;
601 --check for process submit error
602 IF l_request_id = 0
603 THEN
604 hr_utility.set_location('Error spawning new process',1);
605 END IF;
606 END IF;
607
608 end deinit_code;
609
610 FUNCTION BEFOREREPORT RETURN BOOLEAN
611 IS
612 BEGIN
613 SORT_ORDER := 'order by cmpy_tax_reference_no, ' || P_SORT_1 || ', ' || P_SORT_2 || ', ' || P_SORT_3;
614
615
616 -- This information is no longer required.
617 /*
618 SELECT ptp.period_num
619 , fnd_date.date_to_displaydate(ptp.start_date)
620 , fnd_date.date_to_displaydate(ptp.end_date)
621 INTO c_period_num
622 ,c_period_start
623 ,c_period_end
624 FROM per_time_periods ptp
625 WHERE ptp.time_period_id = p_end_period_id;
626
627 */
628
629 -- Can be done in the RTF
630 /*
631 SELECT count( DISTINCT pai.action_information3)
632 INTO CP_Total_Employees
633 FROM pay_action_information pai
634 ,pay_assignment_actions paa
635 WHERE pai.action_context_id = paa.assignment_action_id
636 AND paa.payroll_action_id = p_payroll_action_id;
637
638 SELECT count( DISTINCT pai.action_information11)
639 INTO CP_Total_Assignments
640 FROM pay_action_information pai
641 ,pay_assignment_actions paa
642 WHERE pai.action_context_id = paa.assignment_action_id
643 AND paa.payroll_action_id = p_payroll_action_id;
644 */
645
646 RETURN (TRUE);
647 END BEFOREREPORT;
648
649 FUNCTION AFTERREPORT RETURN BOOLEAN
650 IS
651 BEGIN
652
653 -- Purge Data
654
655 DELETE
656 FROM pay_action_information
657 WHERE action_context_id in
658 (
659 SELECT assignment_action_id
660 FROM pay_assignment_actions
661 WHERE payroll_action_id = p_payroll_action_id
662 )
663 AND action_information_category = 'ZA_TAX_REG_REP';
664
665 DELETE
666 FROM pay_action_information
667 WHERE action_context_id = p_payroll_action_id
668 AND action_information_category = 'ZA_TAX_REG_REP_PAY_DET';
669
670 DELETE
671 FROM pay_assignment_actions
672 WHERE payroll_action_id = p_payroll_action_id;
673
674 DELETE
675 FROM pay_payroll_actions
676 WHERE payroll_action_id = p_payroll_action_id;
677
678 COMMIT;
679
680
681 RETURN (TRUE);
682
683
684 END AFTERREPORT;
685
686
687 end pay_za_tax_reg_ar;