The following lines contain the word 'select', 'insert', 'update' or 'delete':
c_selected_asg_set_range it will
be called in place of
c_selected_asg_set CURSOR,
if RANGE_PERSON_ID is enabled.
31-Dec-2012 rgottipa 115.18 15886428 Done changes to support print
terminate employees and online
'paper' option.
*****************************************************************************/
gv_package VARCHAR2(100) := 'pay_ca_eoy_t4a_amend_reg';
select to_number(pay_ca_eoy_t4a_amend_reg.get_parameter(
'GRE_ID',ppa.legislative_parameters)),
to_number(pay_ca_eoy_t4a_amend_reg.get_parameter(
'PER_ID',ppa.legislative_parameters)),
to_number(pay_ca_eoy_t4a_amend_reg.get_parameter(
'ASG_SET_ID',ppa.legislative_parameters)),
pay_ca_eoy_t4a_amend_reg.get_parameter(
'MODE',ppa.legislative_parameters),
effective_date,
start_date,
business_group_id,
report_type
from pay_payroll_actions ppa
where ppa.payroll_action_id = cp_payroll_action_id;
select to_number(pay_ca_eoy_t4a_amend_reg.get_parameter(
'GRE_ID',ppa.legislative_parameters)),
to_number(pay_ca_eoy_t4a_amend_reg.get_parameter(
'PER_ID',ppa.legislative_parameters)),
to_number(pay_ca_eoy_t4a_amend_reg.get_parameter(
'ASG_SET_ID',ppa.legislative_parameters)),
pay_ca_eoy_t4a_amend_reg.get_parameter(
'MODE',ppa.legislative_parameters),
effective_date,
start_date,
business_group_id,
report_type,
report_qualifier,
report_category,
pay_ca_eoy_t4a_amend_reg.get_parameter(
'PRINT_TERM',ppa.legislative_parameters)
from pay_payroll_actions ppa
where ppa.payroll_action_id = cp_payroll_action_id;
Purpose : This returns the select statement that is
used to created the range rows for the
T4A Amendment PAPER.
Arguments :
Notes : Calls procedure - get_payroll_action_info
******************************************************************/
PROCEDURE range_cursor(
p_payroll_action_id in number
,p_sqlstr out nocopy varchar2)
IS
ld_end_date DATE;
'select distinct asg.person_id person_id
from per_assignments_f asg
where person_id = ' || ln_person_id ||
' and :p_payroll_action_id > 0';
'select distinct paf.person_id
from hr_assignment_set_amendments asgset,
per_assignments_f paf
where assignment_set_id = ' || ln_asg_set || '
and asgset.assignment_id = paf.assignment_id
and asgset.include_or_exclude = ''I''
and :p_payroll_action_id > 0
order by paf.person_id ';
'select distinct paf.person_id
from pay_payroll_actions ppa_arch,
pay_assignment_actions paa_arch,
per_assignments_f paf,
pay_payroll_actions ppa
where paa_arch.assignment_id = paf.assignment_id
and ppa.payroll_action_id = :p_payroll_action_id
and ppa_arch.business_group_id = ppa.business_group_id
and ppa_arch.effective_date = ppa.effective_date
and ppa_arch.report_type = ''CAEOY_T4A_AMEND_PP''
and paa_arch.tax_unit_id = '|| ln_tax_unit_id ||'
and paa_arch.action_status = ''C''
and ppa_arch.payroll_action_id = paa_arch.payroll_action_id
order by paf.person_id ';
'select distinct paf.person_id
from pay_payroll_actions ppa_arch,
pay_assignment_actions paa_arch,
per_assignments_f paf,
pay_payroll_actions ppa
where paa_arch.assignment_id = paf.assignment_id
and ppa.payroll_action_id = :p_payroll_action_id
and ppa_arch.business_group_id = ppa.business_group_id
and ppa_arch.effective_date = ppa.effective_date
and ppa_arch.report_type = ''CAEOY_T4A_AMEND_PP''
and paa_arch.action_status = ''C''
and ppa_arch.payroll_action_id = paa_arch.payroll_action_id
order by paf.person_id ';
CURSOR c_selected_asg_set(cp_start_person in number
,cp_end_person in number
,cp_asg_set in number
,cp_effective_date in date) is
select distinct paf.person_id
from hr_assignment_set_amendments asgset,
per_assignments_f paf,
pay_payroll_actions ppa,
pay_assignment_actions paa
where asgset.assignment_set_id = cp_asg_set
and asgset.include_or_exclude = 'I'
and paf.assignment_id = asgset.assignment_id
and paf.person_id between cp_start_person
and cp_end_person
and ppa.business_group_id = ln_business_group_id
and ppa.report_type = 'CAEOY_T4A_AMEND_PP'
and ppa.payroll_action_id = paa.payroll_action_id
and paa.tax_unit_id = nvl(ln_tax_unit_id, paa.tax_unit_id)
and paa.action_status = 'C'
and ppa.effective_date = cp_effective_date
and paf.person_id = to_number(paa.serial_number);
CURSOR c_selected_asg_set_range(cp_start_person in number
,cp_end_person in number
,cp_asg_set in number
,cp_effective_date in date) is
select distinct paf.person_id
from hr_assignment_set_amendments asgset,
per_assignments_f paf,
pay_payroll_actions ppa,
pay_assignment_actions paa,
pay_population_ranges ppr
where asgset.assignment_set_id = cp_asg_set
and asgset.include_or_exclude = 'I'
and paf.assignment_id = asgset.assignment_id
-- and paf.person_id between cp_start_person
-- and cp_end_person
and ppr.payroll_action_id = p_payroll_action_id
and ppr.chunk_number = p_chunk
and ppr.person_id = paf.person_id
and ppa.business_group_id = ln_business_group_id
and ppa.report_type = 'CAEOY_T4A_AMEND_PP'
and ppa.payroll_action_id = paa.payroll_action_id
and paa.tax_unit_id = nvl(ln_tax_unit_id, paa.tax_unit_id)
and paa.action_status = 'C'
and ppa.effective_date = cp_effective_date
and paf.person_id = to_number(paa.serial_number);
/* Cursor c_all_gres to select T4A Amendment GRE based on Business Group
and effective date */
CURSOR c_all_gres(cp_bg_id number,
cp_eff_date date) IS
select hou.organization_id
from hr_organization_information hoi,
hr_all_organization_units hou
where hou.business_group_id = cp_bg_id
AND hou.organization_id = hoi.organization_id
AND hou.date_from <= cp_eff_date
AND nvl(hou.date_to,fnd_date.canonical_to_date('4712/12/31 00:00:00'))
>= cp_eff_date
AND hoi.org_information_context = 'Canada Employer Identification'
AND hoi.org_information5 in ('T4A/RL1','T4A/RL2')
AND exists ( SELECT 1
FROM pay_payroll_actions ppa ,
pay_assignment_actions paa
WHERE ppa.report_type = 'CAEOY_T4A_AMEND_PP'
AND ppa.report_qualifier = 'CAEOY_T4A_AMEND_PPQ'
AND ppa.business_group_id = cp_bg_id
AND ppa.effective_date = cp_eff_date
AND paa.payroll_action_id = ppa.payroll_action_id
AND paa.tax_unit_id = hou.organization_id);
select distinct paa_arch.serial_number
from pay_payroll_actions ppa_arch,
pay_assignment_actions paa_arch
where ppa_arch.business_group_id = cp_bg_id
and ppa_arch.report_type = 'CAEOY_T4A_AMEND_PP'
AND ppa_arch.report_qualifier = 'CAEOY_T4A_AMEND_PPQ'
and ppa_arch.effective_date = cp_eff_date
and ppa_arch.action_status = 'C'
and paa_arch.payroll_action_id = ppa_arch.payroll_action_id
and paa_arch.action_status = 'C'
and paa_arch.tax_unit_id = nvl(cp_gre,paa_arch.tax_unit_id)
and to_number(paa_arch.serial_number) between
cp_start_person and cp_end_person;
select distinct paa_arch.serial_number
from pay_payroll_actions ppa_arch,
pay_assignment_actions paa_arch,
pay_population_ranges ppr
where ppa_arch.business_group_id = cp_bg_id
and ppa_arch.report_type = 'CAEOY_T4A_AMEND_PP'
AND ppa_arch.report_qualifier = 'CAEOY_T4A_AMEND_PPQ'
and ppa_arch.effective_date = cp_eff_date
and ppa_arch.action_status = 'C'
and paa_arch.payroll_action_id = ppa_arch.payroll_action_id
and paa_arch.action_status = 'C'
and paa_arch.tax_unit_id = nvl(cp_gre,paa_arch.tax_unit_id)
-- and to_number(paa_arch.serial_number) between
-- cp_start_person and cp_end_person;
select ppa.report_type,
paa.assignment_id,
paa.assignment_action_id,
paa.tax_unit_id
from pay_payroll_actions ppa,
pay_assignment_actions paa
where paa.serial_number = to_char(cp_person_id)
and paa.tax_unit_id = nvl(cp_tax_unit_id,paa.tax_unit_id)
and ppa.business_group_id = ln_business_group_id
and paa.action_status = 'C'
and ppa.payroll_action_id = paa.payroll_action_id
and ppa.effective_date = cp_effective_date
and ppa.report_type = 'CAEOY_T4A_AMEND_PP'
and not exists (select 1
from pay_action_interlocks pai,
pay_assignment_actions paa1,
pay_payroll_actions ppa1
where pai.locked_action_id = paa.assignment_action_id
and pai.locking_action_id = paa1.assignment_action_id
and paa1.payroll_action_id = ppa1.payroll_action_id
and ppa1.report_type = ppa.report_type)
and exists (select 1
from per_assignments_f paf
where paf.assignment_id = paa.assignment_id
and paf.effective_start_date <= cp_effective_date
and paf.effective_end_date >= trunc(cp_effective_date,'Y'))
order by paa.assignment_action_id desc;
select ppa.report_type,
paa.assignment_id,
paa.assignment_action_id,
paa.tax_unit_id,
paf.effective_end_date
from pay_payroll_actions ppa,
pay_assignment_actions paa,
per_assignments_f paf
where (paa.serial_number = to_char(cp_person_id) or paf.person_id = cp_person_id)
and paa.assignment_id = paf.assignment_id
and paa.tax_unit_id = nvl(cp_tax_unit_id,paa.tax_unit_id)
and ppa.business_group_id = ln_business_group_id
and paa.action_status = 'C'
and ppa.payroll_action_id = paa.payroll_action_id
and ppa.effective_date = cp_effective_date
and ppa.report_type = 'CAEOY_T4A_AMEND_PP'
and not exists
( SELECT pail.locked_action_id
FROM pay_action_interlocks pail,
pay_payroll_actions pact,
pay_assignment_actions passt
WHERE pact.report_type IN ('PAYCAT4AAMPDF','CAEOY_T4A_AMEND_PP') -- #10352779
AND pact.payroll_action_id = passt.payroll_action_id
AND pact.effective_date = cp_effective_date /*Added for 10381064*/
AND passt.assignment_action_id = pail.locking_action_id
AND passt.assignment_id=paf.assignment_id
AND passt.tax_unit_id = paa.tax_unit_id -- Added this condition #10332249
AND (pail.locked_action_id = paa.assignment_action_id
OR paa.assignment_action_id < passt.assignment_action_id))
and paf.effective_end_date = (select max(paf.effective_end_date)
from per_assignments_f paf
where paf.assignment_id = paa.assignment_id
and paf.effective_start_date <= cp_effective_date
and paf.effective_end_date >= trunc(cp_effective_date,'Y'))
group by paa.assignment_action_id,ppa.report_type,paa.assignment_id,paa.tax_unit_id,paf.effective_end_date
order by paa.assignment_action_id desc;
select ppa.report_type,
paa.assignment_id,
paa.assignment_action_id,
paa.tax_unit_id
from pay_payroll_actions ppa,
pay_assignment_actions paa
where paa.serial_number = to_char(cp_person_id)
and paa.tax_unit_id = nvl(cp_tax_unit_id,paa.tax_unit_id)
and ppa.business_group_id = ln_business_group_id
and paa.action_status = 'C'
and ppa.payroll_action_id = paa.payroll_action_id
and ppa.effective_date = cp_effective_date
and ppa.report_type = 'CAEOY_T4A_AMEND_PP'
and exists (select 1
from per_assignments_f paf
where paf.assignment_id = paa.assignment_id
and paf.effective_start_date <= cp_effective_date
and paf.effective_end_date >= trunc(cp_effective_date,'Y'))
order by paa.assignment_action_id desc;
select ppa.report_type,
paa.assignment_id,
paa.assignment_action_id,
paa.tax_unit_id,
paf.effective_end_date
from pay_payroll_actions ppa,
pay_assignment_actions paa,
per_assignments_f paf
where (paa.serial_number = to_char(cp_person_id) or paf.person_id = cp_person_id)
and paa.assignment_id = paf.assignment_id
and paa.tax_unit_id = nvl(cp_tax_unit_id,paa.tax_unit_id)
and ppa.business_group_id = ln_business_group_id
and paa.action_status = 'C'
and ppa.payroll_action_id = paa.payroll_action_id
and ppa.effective_date = cp_effective_date
and ppa.report_type = 'CAEOY_T4A_AMEND_PP'
and exists
( SELECT pail.locked_action_id
FROM pay_action_interlocks pail,
pay_payroll_actions pact,
pay_assignment_actions passt
WHERE pact.report_type = 'PAYCAT4AAMPDF'
AND pact.payroll_action_id = passt.payroll_action_id
AND pact.effective_date = cp_effective_date /*Added for 10381064*/
AND passt.assignment_action_id = pail.locking_action_id
AND passt.assignment_id=paf.assignment_id
AND passt.tax_unit_id = paa.tax_unit_id --#10352779
AND (pail.locked_action_id = paa.assignment_action_id
OR paa.assignment_action_id < passt.assignment_action_id))
and paf.effective_end_date = (select max(paf.effective_end_date)
from per_assignments_f paf
where paf.assignment_id = paa.assignment_id
and paf.effective_start_date <= cp_effective_date
and paf.effective_end_date >= trunc(cp_effective_date,'Y'))
/* Added not exists condition for # 10323048 */
and not exists (select 1
from pay_payroll_actions ppa2,
pay_assignment_actions paa2
where ppa2.payroll_action_id = paa2.payroll_action_id
and ppa2.report_type = 'CAEOY_T4A_AMEND_PP'
and paa2.assignment_id = paa.assignment_id
and paa2.tax_unit_id = paa.tax_unit_id -- Added this condition #10328209
and ppa2.effective_date = cp_effective_date /*Added for 10381064*/
and paa2.assignment_action_id > paa.assignment_action_id)
group by paa.assignment_action_id,ppa.report_type,paa.assignment_id,paa.tax_unit_id,paf.effective_end_date
order by paa.assignment_action_id desc;
select ppa.report_type,
paa.assignment_id,
paa.assignment_action_id,
paa.tax_unit_id,
paf.effective_end_date
from pay_payroll_actions ppa,
pay_assignment_actions paa,
per_assignments_f paf,
per_periods_of_service pds
where (paa.serial_number = to_char(cp_person_id) or paf.person_id = cp_person_id)
and paa.assignment_id = paf.assignment_id
and paa.tax_unit_id = nvl(cp_tax_unit_id,paa.tax_unit_id)
and ppa.business_group_id = ln_business_group_id
and paa.action_status = 'C'
and ppa.payroll_action_id = paa.payroll_action_id
and ppa.effective_date = cp_effective_date
and ppa.report_type = 'CAEOY_T4A_AMEND_PP'
and not exists
( SELECT pail.locked_action_id
FROM pay_action_interlocks pail,
pay_payroll_actions pact,
pay_assignment_actions passt
WHERE pact.report_type IN ('PAYCAT4AAMPDF','CAEOY_T4A_AMEND_PP') -- #10352779
AND pact.payroll_action_id = passt.payroll_action_id
AND pact.effective_date = cp_effective_date /*Added for 10381064*/
AND passt.assignment_action_id = pail.locking_action_id
AND passt.assignment_id=paf.assignment_id
AND passt.tax_unit_id = paa.tax_unit_id -- Added this condition #10332249
AND (pail.locked_action_id = paa.assignment_action_id
OR paa.assignment_action_id < passt.assignment_action_id))
and paf.effective_end_date = (select max(paf.effective_end_date)
from per_assignments_f paf
where paf.assignment_id = paa.assignment_id
and paf.effective_start_date <= cp_effective_date
and paf.effective_end_date >= trunc(cp_effective_date,'Y'))
and pds.actual_termination_date is not null
and pds.period_of_service_id = paf.period_of_service_id
group by paa.assignment_action_id,ppa.report_type,paa.assignment_id,paa.tax_unit_id,paf.effective_end_date
order by paa.assignment_action_id desc;
select ppa.report_type,
paa.assignment_id,
paa.assignment_action_id,
paa.tax_unit_id,
paf.effective_end_date
from pay_payroll_actions ppa,
pay_assignment_actions paa,
per_assignments_f paf,
per_periods_of_service pds
where (paa.serial_number = to_char(cp_person_id) or paf.person_id = cp_person_id)
and paa.assignment_id = paf.assignment_id
and paa.tax_unit_id = nvl(cp_tax_unit_id,paa.tax_unit_id)
and ppa.business_group_id = ln_business_group_id
and paa.action_status = 'C'
and ppa.payroll_action_id = paa.payroll_action_id
and ppa.effective_date = cp_effective_date
and ppa.report_type = 'CAEOY_T4A_AMEND_PP'
and exists
( SELECT pail.locked_action_id
FROM pay_action_interlocks pail,
pay_payroll_actions pact,
pay_assignment_actions passt
WHERE pact.report_type = 'PAYCAT4AAMPDF'
AND pact.payroll_action_id = passt.payroll_action_id
AND pact.effective_date = cp_effective_date /*Added for 10381064*/
AND passt.assignment_action_id = pail.locking_action_id
AND passt.assignment_id=paf.assignment_id
AND passt.tax_unit_id = paa.tax_unit_id --#10352779
AND (pail.locked_action_id = paa.assignment_action_id
OR paa.assignment_action_id < passt.assignment_action_id))
and paf.effective_end_date = (select max(paf.effective_end_date)
from per_assignments_f paf
where paf.assignment_id = paa.assignment_id
and paf.effective_start_date <= cp_effective_date
and paf.effective_end_date >= trunc(cp_effective_date,'Y'))
/* Added not exists condition for # 10323048 */
and not exists (select 1
from pay_payroll_actions ppa2,
pay_assignment_actions paa2
where ppa2.payroll_action_id = paa2.payroll_action_id
and ppa2.report_type = 'CAEOY_T4A_AMEND_PP'
and paa2.assignment_id = paa.assignment_id
and paa2.tax_unit_id = paa.tax_unit_id -- Added this condition #10328209
and ppa2.effective_date = cp_effective_date /*Added for 10381064*/
and paa2.assignment_action_id > paa.assignment_action_id)
and pds.actual_termination_date is not null
and pds.period_of_service_id = paf.period_of_service_id
group by paa.assignment_action_id,ppa.report_type,paa.assignment_id,paa.tax_unit_id,paf.effective_end_date
order by paa.assignment_action_id desc;
select payroll_action_id
from pay_payroll_actions
where business_group_id = cp_bg_id
and report_type = 'T4A'
and report_qualifier = 'CAEOY'
and action_type = 'X'
and action_status = 'C'
and effective_date = cp_year
and pay_ca_eoy_t4a_amend_reg.get_parameter('TRANSFER_GRE',
legislative_parameters) = to_char(cp_gre);
select substr(full_name,1,48), employee_number
from per_people_f
where person_id = cp_person_id
order by effective_end_date desc;
select value
from ff_archive_items
where context1 = cp_asg_act_id
and user_entity_id = cp_uid_t4amend_flag;
select user_entity_id
from ff_database_items
where user_name = cp_user_name;
select pay_assignment_actions_s.nextval
into ln_t4a_amend_reg_asg_action
from dual;
/* Insert into pay_assignment_actions. */
hr_nonrun_asact.insact(ln_t4a_amend_reg_asg_action
,ln_primary_assignment_id
,p_payroll_action_id
,p_chunk
,ln_tax_unit_id);
** Update the serial number column with
** Archiver assignment_action and Archiver Payroll_action_id
** so that we need not refer back in the reports. This
** logic works for both T4A Amendment PDF report
***********************************************************/
ln_serial_number := lpad(to_char(ln_asg_act_to_lock),14,0)||
lpad(to_char(ln_yepp_pact_id),14,0)||
trim(pay_ca_archive_utils.get_archive_value
(ln_asg_act_to_lock ,
'CAEOY_T4A_NEGATIVE_BALANCE_EXISTS'));
update pay_assignment_actions aa
set aa.serial_number = ln_serial_number
where aa.assignment_action_id = ln_t4a_amend_reg_asg_action;
select pay_assignment_actions_s.nextval
into ln_t4a_amend_reg_asg_action
from dual;
/* Insert into pay_assignment_actions. */
hr_nonrun_asact.insact(ln_t4a_amend_reg_asg_action
,ln_primary_assignment_id
,p_payroll_action_id
,p_chunk
,ln_tax_unit_id);
** Update the serial number column with
** Archiver assignment_action and Archiver Payroll_action_id
** so that we need not refer back in the reports. This
** logic works for both T4A Amendment PDF report
***********************************************************/
ln_serial_number := lpad(to_char(ln_asg_act_to_lock),14,0)||
lpad(to_char(ln_yepp_pact_id),14,0)||
trim(pay_ca_archive_utils.get_archive_value
(ln_asg_act_to_lock ,
'CAEOY_T4A_NEGATIVE_BALANCE_EXISTS'));
update pay_assignment_actions aa
set aa.serial_number = ln_serial_number
where aa.assignment_action_id = ln_t4a_amend_reg_asg_action;
select pay_assignment_actions_s.nextval
into ln_t4a_amend_reg_asg_action
from dual;
/* Insert into pay_assignment_actions. */
hr_nonrun_asact.insact(ln_t4a_amend_reg_asg_action
,ln_primary_assignment_id
,p_payroll_action_id
,p_chunk
,ln_tax_unit_id);
** Update the serial number column with
** Archiver assignment_action and Archiver Payroll_action_id
** so that we need not refer back in the reports. This
** logic works for both T4A Amendment Register and T4A Register
** reports.
***********************************************************/
ln_serial_number := lpad(to_char(ln_asg_act_to_lock),14,0)||
lpad(to_char(ln_yepp_pact_id),14,0);
update pay_assignment_actions aa
set aa.serial_number = ln_serial_number
where aa.assignment_action_id = ln_t4a_amend_reg_asg_action;
select pay_assignment_actions_s.nextval
into ln_t4a_amend_reg_asg_action
from dual;
/* Insert into pay_assignment_actions. */
hr_nonrun_asact.insact(ln_t4a_amend_reg_asg_action
,ln_primary_assignment_id
,p_payroll_action_id
,p_chunk
,ln_tax_unit_id);
** Update the serial number column with
** Archiver assignment_action and Archiver Payroll_action_id
** so that we need not refer back in the reports. This
** logic works for both T4A Amendment Register and T4A Register
** reports.
***********************************************************/
ln_serial_number := lpad(to_char(ln_asg_act_to_lock),14,0)||
lpad(to_char(ln_yepp_pact_id),14,0);
update pay_assignment_actions aa
set aa.serial_number = ln_serial_number
where aa.assignment_action_id = ln_t4a_amend_reg_asg_action;
select report_format
into l_report_format
from pay_report_format_mappings_f
where report_type = lv_ppr_report_type
and report_qualifier = l_state
and report_category = l_report_cat ;
hr_utility.trace('opening c_selected_asg_set_range CURSOR');
OPEN c_selected_asg_set_range (p_start_person_id
,p_end_person_id
,ln_asg_set
,ld_end_date);
hr_utility.trace('opening c_selected_asg_set CURSOR');
OPEN c_selected_asg_set (p_start_person_id
,p_end_person_id
,ln_asg_set
,ld_end_date);
hr_utility.trace('fetching from c_selected_asg_set_range CURSOR');
fetch c_selected_asg_set_range
into ln_set_person_id;
exit when c_selected_asg_set_range%NOTFOUND;
hr_utility.trace('fetching from c_selected_asg_set CURSOR');
fetch c_selected_asg_set
into ln_set_person_id;
exit when c_selected_asg_set%NOTFOUND;
hr_utility.trace('closing c_selected_asg_set_range CURSOR');
close c_selected_asg_set_range;
hr_utility.trace('closing c_selected_asg_set CURSOR');
close c_selected_asg_set;
sqlstr := 'select paa1.rowid
from hr_all_organization_units hou,
hr_all_organization_units hou1,
hr_locations_all loc,
per_all_people_f ppf,
per_all_assignments_f paf,
pay_assignment_actions paa1,
pay_payroll_actions ppa1
where ppa1.payroll_action_id = :p_payroll_action_id
and paa1.payroll_action_id = ppa1.payroll_action_id
and paa1.assignment_id = paf.assignment_id
and paf.effective_start_date =
(select max(paf2.effective_start_date)
from per_all_assignments_f paf2
where paf2.assignment_id= paf.assignment_id
and paf2.effective_start_date
<= ppa1.effective_date)
and paf.effective_end_date >= ppa1.start_date
and paf.assignment_type = ''E''
and hou1.organization_id = paa1.tax_unit_id
and hou.organization_id = paf.organization_id
and loc.location_id = paf.location_id
and ppf.person_id = paf.person_id
and ppf.effective_start_date =
(select max(ppf2.effective_start_date)
from per_all_people_f ppf2
where ppf2.person_id= paf.person_id
and ppf2.effective_start_date
<= ppa1.effective_date)
and ppf.effective_end_date >= ppa1.start_date
order by
decode(pay_ca_t4_reg.get_parameter(''P_S1'',ppa1.legislative_parameters),
''GRE'',hou1.name,
''ORGANIZATION'',hou.name,
''LOCATION'',loc.location_code,null),
decode(pay_ca_t4_reg.get_parameter(''P_S2'',ppa1.legislative_parameters),
''GRE'',hou1.name,
''ORGANIZATION'',hou.name,
''LOCATION'',loc.location_code,null),
decode(pay_ca_t4_reg.get_parameter(''P_S3'',ppa1.legislative_parameters),
''GRE'',hou1.name,
''ORGANIZATION'',hou.name,
''LOCATION'',loc.location_code,null),
ppf.last_name,first_name';