Showing posts with label Oracle HCM Query. Show all posts
Showing posts with label Oracle HCM Query. Show all posts

Sunday, 24 November 2024

Query For Payroll Run Balances In Oracle Fusion

 SELECT /*+ MATERIALIZE */ main.person_id

      ,main.Employer_Contribution

  ,main.Member_contribution

  ,main.org_information6 as Nest_Employer_Reference_Number

  ,main.NATIONAL_IDENTIFIER_NUMBER as unique_record_identifier

      ,'Norfolk County Council' as Payment_source

      ,'Monthly'  Frequency

      ,'0.00'  as  Pensionable_Earnings

  , to_char(last_day(add_months(sysdate,-1)),'MM-DD-YYYY') as  Earnings_period_end_date

FROM(

      SELECT /*+ inline */

        Bal_val.person_id, 

       SUM (CASE WHEN Balances.balance_name IN (xxxxxxxxx) Employer_Contribution,

       SUM(CASE WHEN Balances.balance_name IN (xxxxxxxxxx) Member_contribution,

TRU.org_information6,

-- Bal_val.period_name,

-- Legal_Emp.name,

-- Bal_val.payroll_name,

-- flow.flow_name,

Bal_val.NATIONAL_IDENTIFIER_NUMBER

      FROM 

        (

              SELECT /*+ MATERIALIZE */

                prb.balance_value, 

                prb.defined_balance_id, 

                prb.tax_unit_id,

                ppa.effective_date,

                ppa.earn_time_period_id,

                Nvl(prg.assignment_id, ppaf.assignment_id) assignment_id, 

                pldg.legislation_code,

ppa.PAY_REQUEST_ID,

ppaf.legal_entity_id,

ppaf.person_id,

ptp.period_name,

papf.payroll_name,

pni.NATIONAL_IDENTIFIER_NUMBER

              FROM 

                pay_run_balances prb, 

                pay_pay_relationships_dn pprd, 

                pay_payroll_rel_actions ppra, 

                pay_payroll_actions ppa, 

                per_all_assignments_f ppaf, 

                pay_rel_groups_dn PRG, 

                per_legislative_data_groups_vl PLDG,

    pay_all_payrolls_f papf,

    pay_time_periods ptp,

per_national_identifiers pni

              WHERE 

                prb.payroll_rel_action_id = ppra.payroll_rel_action_id 

                AND ppra.payroll_action_id = ppa.payroll_action_id 

                AND prb.payroll_relationship_id = pprd.payroll_relationship_id (+) 

                AND pprd.person_id = ppaf.person_id 

                AND prb.effective_date = ppa.effective_date 

                AND ppa.action_type IN ('R', 'B', 'V', 'Q', 'I') 

                AND ppa.effective_date BETWEEN ppaf.effective_start_date 

                AND ppaf.effective_end_date 

                AND ppaf.primary_flag = 'Y' 

                AND pprd.legislative_data_group_id = pldg.legislative_data_group_id 

                AND ppaf.work_terms_assignment_id IS NOT NULL 

AND ppaf.effective_latest_change = 'Y'

                AND ppaf.assignment_type in ('E','C','N','P')

                AND prg.relationship_group_id (+)= prb.payroll_assignment_id 

                AND ppra.retro_component_id IS NULL

AND ppa.payroll_id = papf.payroll_id(+) 

--AND ppaf.person_id=300000004491016 ---200193

--AND ppaf.person_id=100000001628019  -----1915

AND prb.effective_date BETWEEN papf.effective_start_date(+) AND papf.effective_end_date(+)

               AND ppa.earn_time_period_id = ptp.time_period_id 

   AND prb.effective_date BETWEEN ppaf.effective_start_date AND ppaf.effective_end_date

   AND ppaf.person_id = pni.person_id

   AND ((COALESCE(NULL, :p_payroll_name) IS NULL) OR (papf.payroll_name IN (:p_payroll_name)))

               AND   ptp.period_name = nvl(:p_period_name,ptp.period_name)

        ) Bal_val, 

        (

          SELECT /*+ MATERIALIZE */

            pduv.dimension_usage_id, 

            pduv.dimension_name, 

            pduv.legislation_code, 

            pdb.defined_balance_id 

          FROM 

            pay_dimension_usages_vl pduv, 

            pay_defined_balances pdb 

          WHERE 

            pduv.balance_dimension_id = pdb.balance_dimension_id

and pduv.dimension_name = 'Payroll Relationship, Run'

        )Dimension, 

        

      

        (

          SELECT /*+ MATERIALIZE */

            houcf.org_unit_classification_id, 

            houcf.effective_start_date, 

            houcf.effective_end_date, 

            haouf.organization_id AS unit_eo_organization_id, 

            haouf.effective_start_date AS unit_eo_effective_start_date, 

            haouf.effective_end_date AS unit_eo_effective_end_date, 

            houft.organization_id AS unit_tleo_organization_id, 

            houft.effective_start_date AS unit_tleo_effective_start_date, 

            houft.effective_end_date AS unit_tleo_effective_end_date, 

            houft.language, 

            houft.NAME,

HOIF.ORG_INFORMATION6--nest ids

          FROM 

            hr_all_organization_units_f haouf, 

            hr_org_unit_classifications_f houcf, 

            hr_organization_units_f_tl houft,

hr_organization_information_f HOIF

          WHERE  haouf.organization_id = houcf.organization_id(+) 

              AND haouf.organization_id = houft.organization_id(+) 

              AND haouf.effective_start_date = houft.effective_start_date(+) 

              AND haouf.effective_end_date = houft.effective_end_date(+) 

              AND userenv('LANG')= houft.language(+) 

              AND sysdate BETWEEN haouf.effective_start_date AND haouf.effective_end_date

              AND sysdate BETWEEN houcf.effective_start_date(+)AND houcf.effective_end_date(+)

              AND sysdate BETWEEN houft.effective_start_date(+) AND houft.effective_end_date(+)

              AND houcf.classification_code = 'HCM_TRU'

  AND hoif.org_information_context LIKE 'LRU Additional Details'

              AND hoif.organization_id = houft.organization_id

               

        ) TRU, 

         (

          SELECT /*+ MATERIALIZE */

            houcf.org_unit_classification_id, 

            houcf.effective_start_date, 

            houcf.effective_end_date, 

            haouf.organization_id AS unit_eo_organization_id, 

            haouf.effective_start_date AS unit_eo_effective_start_date, 

            haouf.effective_end_date AS unit_eo_effective_end_date, 

            houft.organization_id AS unit_tleo_organization_id, 

            houft.effective_start_date AS unit_tleo_effective_start_date, 

            houft.effective_end_date AS unit_tleo_effective_end_date, 

            houft.language, 

            houft.NAME 

          FROM 

            hr_all_organization_units_f haouf, 

            hr_org_unit_classifications_f houcf, 

            hr_organization_units_f_tl houft 

          WHERE 

            

              haouf.organization_id = houcf.organization_id(+) 

              AND haouf.organization_id = houft.organization_id(+) 

              AND haouf.effective_start_date = houft.effective_start_date(+) 

              AND haouf.effective_end_date = houft.effective_end_date(+) 

              AND userenv('LANG')  = houft.language(+) 

              AND sysdate BETWEEN haouf.effective_start_date AND haouf.effective_end_date

              AND sysdate BETWEEN houcf.effective_start_date(+) 

              AND houcf.effective_end_date(+)

              AND sysdate BETWEEN houft.effective_start_date(+) AND houft.effective_end_date(+)

              AND houcf.classification_code = 'HCM_LEMP'

  AND ((COALESCE(NULL, :P_Legal_Entity) IS NULL) OR (houft.NAME IN (:P_Legal_Entity)))

            

        ) Legal_Emp, 

        (

          SELECT /*+ MATERIALIZE */

            pdb.balance_type_id, 

            pdb.defined_balance_id,

pbtv.balance_name

          FROM 

            pay_defined_balances pdb,

pay_balance_types_vl pbtv

  WHERE pbtv.balance_name in (xxxxxxx)

      AND pdb.balance_type_id = pbtv.balance_type_id 


        ) Balances, 

        (

          SELECT /*+ MATERIALIZE */

            pr.flow_task_instance_id, 

            pr.pay_request_id,

pfti.flow_instance_id, 

            pfti.flow_task_instance_id,

    pft.flow_name

          FROM 

            pay_requests pr,

pay_flow_task_instances pfti,

pay_flow_instances pfi, 

            pay_flows pf, 

            pay_flows_tl pft 

   WHERE  pf.base_flow_id = pfi.base_flow_id (+) 

              AND pf.legislative_data_group_id = pfi.legislative_data_group_id 

              AND pft.flow_id = pf.flow_id 

              AND pft.language = userenv('LANG')

      AND pfti.flow_instance_id = pfi.flow_instance_id(+)

      AND pr.flow_task_instance_id = pfti.flow_task_instance_id(+) 

  AND ((COALESCE(NULL, :p_flow) IS NULL) OR (pfi.INSTANCE_NAME IN (:p_flow)))

        ) Flow

      

      WHERE   Bal_val.defined_balance_id = Dimension.defined_balance_id 

          AND Bal_val.legislation_code = Dimension.legislation_code 

          AND Bal_val.tax_unit_id = TRU.unit_eo_organization_id(+) 

          AND Bal_val.legal_entity_id = Legal_Emp.unit_eo_organization_id(+) 

          AND Bal_val.defined_balance_id = Balances.defined_balance_id 

          AND Bal_val.pay_request_id = Flow.pay_request_id(+) 

          AND Bal_val.effective_date BETWEEN TRU.effective_start_date(+) AND TRU.effective_end_date(+)

       

     GROUP BY  Bal_val.person_id,

           TRU.ORG_INFORMATION6,

   Bal_val.NATIONAL_IDENTIFIER_NUMBER

   -- Bal_val.period_name,

-- Legal_Emp.name,

-- Bal_val.payroll_name,

-- flow.flow_name

    

) main

Thursday, 7 November 2024

Query for Employee Details , Absence , Talent Management , Run Results , Element Entries , Line Manager Details , Direct Reporters , Bank Details

 WITH basic_pay

     AS (SELECT peef.person_id,

                (SELECT Round(( peevf.screen_entry_value / 12 ), 2)

                 FROM   pay_element_entry_values_f peevf,

                        pay_input_values_f pivf

                 WHERE  peevf.element_entry_id = peef.element_entry_id

                        AND peef.last_update_date = peevf.last_update_date

                        AND peef.effective_start_date =

                            peevf.effective_start_date

                        AND peevf.input_value_id = pivf.input_value_id

                        AND pivf.base_name = 'Amount'

                        AND Trunc (SYSDATE) BETWEEN pivf.effective_start_date

                                                    AND

                                                    pivf.effective_end_date

                        AND Trunc (SYSDATE) BETWEEN peevf.effective_start_date

                                                    AND

                                                    peevf.effective_end_date)

                   Basic_Amount

         FROM   per_all_assignments_m asg,

                pay_rel_groups_dn payrel,

                pay_assigned_payrolls_dn papd,

                pay_all_payrolls_f pay,

                per_legislative_data_groups_vl ldg,

                pay_element_types_vl pet,

                pay_element_entries_f peef,

                pay_element_types_f petf,

                pay_entry_usages peu

         WHERE  1 = 1

                AND asg.primary_flag = 'Y'

                AND asg.assignment_type IN ( 'E' )

                --AND asg.assignment_status_type = 'ACTIVE'

                AND asg.assignment_id = payrel.assignment_id

                AND payrel.group_type = 'A'

                AND papd.payroll_term_id = payrel.parent_rel_group_id

                AND papd.payroll_id = pay.payroll_id

                AND ldg.legislation_code = asg.legislation_code

                --AND peef.person_id(+) = papf.person_id

                AND pet.element_type_id = peef.element_type_id

                AND ldg.legislative_data_group_id =

                    pet.legislative_data_group_id

                AND pet.element_type_id = petf.element_type_id

                -- and ser.ATTRIBUTE6 = 'Y'

                AND petf.base_element_name IN ( 'XXXXXXXXXX' ) --Hrdcode elements

                AND peu.element_entry_id = peef.element_entry_id

                AND peu.payroll_relationship_id = payrel.payroll_relationship_id

                -- AND Trunc (SYSDATE) BETWEEN asg.effective_start_date AND

                                            -- asg.effective_end_date

                AND Trunc (SYSDATE) BETWEEN papd.start_date AND

                                            Nvl (papd.lspd, To_date

                                            (

                                            '31/12/4712', 'DD/MM/YYYY'))

                AND Trunc (SYSDATE) BETWEEN pay.effective_start_date AND

                                            pay.effective_end_date

                AND Trunc (SYSDATE) BETWEEN pet.effective_start_date AND

                                            pet.effective_end_date

                AND peu.date_from BETWEEN asg.effective_start_date AND

                                          asg.effective_end_date

                AND peu.date_from BETWEEN payrel.start_date AND payrel.end_date

                AND Trunc (SYSDATE) BETWEEN peef.effective_start_date AND

                                            peef.effective_end_date

         ORDER  BY peef.person_id),

     air_elements

     AS (SELECT peef.person_id,

                (SELECT peevf.screen_entry_value

                 FROM   pay_element_entry_values_f peevf,

                        pay_input_values_f pivf

                 WHERE  peevf.element_entry_id = peef.element_entry_id

                        AND peef.last_update_date = peevf.last_update_date

                        AND peef.effective_start_date =

                            peevf.effective_start_date

                        AND peevf.input_value_id = pivf.input_value_id

                        AND pivf.base_name = 'XXXXXXXXXXXXXXXX'

                        AND Trunc (SYSDATE) BETWEEN pivf.effective_start_date

                                                    AND

                                                    pivf.effective_end_date

                        AND Trunc (SYSDATE) BETWEEN peevf.effective_start_date

                                                    AND

                                                    peevf.effective_end_date)

                   Dependents_Eligible,

      (SELECT peevf.screen_entry_value

                 FROM   pay_element_entry_values_f peevf,

                        pay_input_values_f pivf

                 WHERE  peevf.element_entry_id = peef.element_entry_id

                        AND peef.last_update_date = peevf.last_update_date

                        AND peef.effective_start_date =

                            peevf.effective_start_date

                        AND peevf.input_value_id = pivf.input_value_id

                        AND pivf.base_name = 'XXXXXXXXXXXX'

                        AND Trunc (SYSDATE) BETWEEN pivf.effective_start_date

                                                    AND

                                                    pivf.effective_end_date

                        AND Trunc (SYSDATE) BETWEEN peevf.effective_start_date

                                                    AND

                                                    peevf.effective_end_date)Destination,

   (SELECT peevf.screen_entry_value

                 FROM   pay_element_entry_values_f peevf,

                        pay_input_values_f pivf

                 WHERE  peevf.element_entry_id = peef.element_entry_id

                        AND peef.last_update_date = peevf.last_update_date

                        AND peef.effective_start_date =

                            peevf.effective_start_date

                        AND peevf.input_value_id = pivf.input_value_id

                        AND pivf.base_name = 'XXXXXXXXXXXXXXXX'

                        AND Trunc (SYSDATE) BETWEEN pivf.effective_start_date

                                                    AND

                                                    pivf.effective_end_date

                        AND Trunc (SYSDATE) BETWEEN peevf.effective_start_date

                                                    AND

                                                    peevf.effective_end_date)Class_Of_Travel,

   (SELECT peevf.screen_entry_value

                 FROM   pay_element_entry_values_f peevf,

                        pay_input_values_f pivf

                 WHERE  peevf.element_entry_id = peef.element_entry_id

                        AND peef.last_update_date = peevf.last_update_date

                        AND peef.effective_start_date =

                            peevf.effective_start_date

                        AND peevf.input_value_id = pivf.input_value_id

                        AND pivf.base_name = 'XXXXXXXXXX'

                        AND Trunc (SYSDATE) BETWEEN pivf.effective_start_date

                                                    AND

                                                    pivf.effective_end_date

                        AND Trunc (SYSDATE) BETWEEN peevf.effective_start_date

                                                    AND

                                                    peevf.effective_end_date)Frequency_Of_Travel,

   (SELECT peevf.screen_entry_value

                 FROM   pay_element_entry_values_f peevf,

                        pay_input_values_f pivf

                 WHERE  peevf.element_entry_id = peef.element_entry_id

                        AND peef.last_update_date = peevf.last_update_date

                        AND peef.effective_start_date =

                            peevf.effective_start_date

                        AND peevf.input_value_id = pivf.input_value_id

                        AND pivf.base_name = 'XXXXXXXX'

                        AND Trunc (SYSDATE) BETWEEN pivf.effective_start_date

                                                    AND

                                                    pivf.effective_end_date

                        AND Trunc (SYSDATE) BETWEEN peevf.effective_start_date

                                                    AND

                                                    peevf.effective_end_date)Number_of_Children_Eligible,

                     (SELECT peevf.screen_entry_value

                 FROM   pay_element_entry_values_f peevf,

                        pay_input_values_f pivf

                 WHERE  peevf.element_entry_id = peef.element_entry_id

                        AND peef.last_update_date = peevf.last_update_date

                        AND peef.effective_start_date =

                            peevf.effective_start_date

                        AND peevf.input_value_id = pivf.input_value_id

                        AND pivf.base_name = 'XXXXXXX'

                        AND Trunc (SYSDATE) BETWEEN pivf.effective_start_date

                                                    AND

                                                    pivf.effective_end_date

                        AND Trunc (SYSDATE) BETWEEN peevf.effective_start_date

                                                    AND

                                                    peevf.effective_end_date)Paying_Month

 

--select    peu.*

         FROM   per_all_assignments_m asg,

                pay_rel_groups_dn payrel,

                pay_assigned_payrolls_dn papd,

                 pay_all_payrolls_f pay,

                per_legislative_data_groups_vl ldg,

                 pay_element_types_vl pet,

                pay_element_entries_f peef,

                pay_element_types_f petf,

               pay_entry_usages peu

         WHERE  1 = 1

                AND asg.primary_flag = 'Y'

                AND asg.assignment_type IN ( 'E' )

                AND asg.assignment_status_type = 'ACTIVE'

                AND asg.assignment_id = payrel.assignment_id

                 AND payrel.group_type = 'A'

and asg.EFFECTIVE_LATEST_CHANGE ='Y'

                AND papd.payroll_term_id = payrel.parent_rel_group_id

                AND papd.payroll_id = pay.payroll_id

                AND ldg.legislation_code = asg.legislation_code

                AND pet.element_type_id = peef.element_type_id

                AND ldg.legislative_data_group_id = pet.legislative_data_group_id

                AND pet.element_type_id = petf.element_type_id

                -- and ser.ATTRIBUTE6 = 'Y'

                AND petf.base_element_name IN ( 'XXXXXXX' ) --Hrdcode elements

               AND peu.element_entry_id = peef.element_entry_id

                AND peu.payroll_relationship_id = payrel.payroll_relationship_id

                -- AND Trunc (SYSDATE) BETWEEN asg.effective_start_date AND

                                            -- asg.effective_end_date

                AND Trunc (SYSDATE) BETWEEN papd.start_date AND

                                            Nvl (papd.lspd, To_date

                                            (

                                            '31/12/4712', 'DD/MM/YYYY'))

                AND Trunc (SYSDATE) BETWEEN pay.effective_start_date AND

                                            pay.effective_end_date

                AND Trunc (SYSDATE) BETWEEN pet.effective_start_date AND

                                            pet.effective_end_date

                AND peu.date_from BETWEEN asg.effective_start_date(+) AND

                                          asg.effective_end_date(+)

                AND peu.date_from BETWEEN payrel.start_date AND payrel.end_date

                AND Trunc (SYSDATE) BETWEEN peef.effective_start_date AND

                                            peef.effective_end_date

--and asg.person_id in (100000000786587)

),

     prev_emp_exp

     AS (SELECT SUM(exp) pre_exp,

                person_id

         FROM  (SELECT hrbpei.item_text240_1,

                       hrbpei.item_date_1,

                       hrbpei.item_date_2,

                       Trunc(To_date(hrbpei.item_date_2, 'YYYY-MM-DD') -

                             To_date(hrbpei.item_date_1, 'YYYY-MM-DD')) exp,

                       asg.person_id

                FROM   hrt_profiles_b hrpb,

                       hrt_bi_prev_employment_items_v hrbpei,

                       hrt_content_types_b hrct,

                       hrt_content_types_tl hrctt,

                       hrt_profile_items hrpi,

                       per_all_assignments_m asg

                WHERE  hrpb.profile_id = hrbpei.profile_id(+)

                       AND hrbpei.content_type_id = hrct.content_type_id(+)

                       AND hrbpei.business_group_id = hrct.business_group_id(+)

                       AND hrct.content_type_id = hrctt.content_type_id(+)

                       AND hrct.business_group_id = hrctt.business_group_id(+)

                       AND hrctt.content_type_name = 'XXXXXXXX'

                       AND hrpb.profile_id = hrpi.profile_id(+)

                       AND hrpi.profile_item_id = hrbpei.profile_item_id(+)

                       AND hrpi.business_group_id = hrbpei.business_group_id(+)

                       AND asg.effective_latest_change = 'Y'

                       AND asg.primary_flag = 'Y'

                       AND asg.assignment_type = 'E'

                       AND asg.ASSIGNMENT_STATUS_TYPE <> 'INACTIVE'

                       AND hrpb.person_id = asg.person_id

                       AND hrpi.date_to BETWEEN asg.effective_start_date AND

                                                asg.effective_end_date

                       AND SYSDATE BETWEEN asg.effective_start_date AND

                                           asg.effective_end_date

                       AND Userenv('LANG') = hrctt.LANGUAGE(+))a

         WHERE  1 = 1

         --and a.person_id =  paaf.person_id  ----0122

         GROUP  BY person_id)

SELECT DISTINCT person_id,

                person_number,

                assignment_number,

                title,

                employee_full_name,

                first_name,

                middle_name,

                family_name,

                display_name,

                employee_name_arabic,

                arabic_first_name,

                arabic_middle_name,

                arabic_family_name,

                date_of_joining,

                date_of_birth,

                age,

                gender,

                marital_status,

                religion,

                nationality,

                personal_phone_number,

                personal_mobile_number,

                work_phone_number,

                work_mobile_number,

                line_manager_number,

                line_manager_name,

                legal_employer_name,

                personal_email_addreess,

                company_email_addreess,

                business_unit_name,

                location_name,

                payroll_name,

                department,

                sector,

                grade_name,

                job,

                position,

                employee_category,

                assignment_category,

                person_type,

                assignment_status,

                primary_assignment_number,

                (trunc(years_of_service_with_company / 365.25) || ' Years '|| trunc(mod(years_of_service_with_company,365.25) / 30) || ' Months ')years_of_service_with_company,

                highest_education_level,

                segment1,

                segment2,

                segment3,

                segment4,

                citizenship,

                citizenship_status,

                citizenship_from_date,

                passport_number,

                paassport_expiry_date,

                length_of_service_with_company,

                bank_name,

                bank_account_num,

                iban,

                spouse,

                child1,

                child2,

                child3,

                direct_reporters,

                air_ticket_destination,

                air_ticket_class_of_travel,

                air_ticket_frequency_of_travel,

                air_ticket_dependents_eligible,

                air_ticket_number_of_children_eligible,

                air_ticket_paying_month,

                civil_id,

                civil_id_expiration_date,

                probation_start_date,

                probation_end_date,

                length_of_service,

                leaving_reason,

                termination_action,

                last_working_date,

                notification_on_date,

                rehire_recommendation,

                employer_comments,

                annual_leave_balance,

                annual_leave_availed_in_current_year,

                "Annual Leave Availed(As of now)",

                "Sick Leave Count Current Year",

                "Sick Leave Availed (as of now)",

                "Unpaid Leave Count Current Year",

                "Unpaid Leave Availed (as of now)",

                "Air Ticket - Total",

                grosss_salary,

                basic_salary,

               (trunc(over_all_exp / 365.25) || ' Years '|| trunc(mod(over_all_exp,365.25) / 30) || ' Months ')    total_years_of_exp

FROM   (SELECT DISTINCT papf.person_id,

                        papf.person_number,

                        paaf.assignment_number,

                        (SELECT ppnf.title

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'GLOBAL'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))    Title,

                        (SELECT ppnf.full_name

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'GLOBAL'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))

                                Employee_Full_Name,

                        (SELECT ppnf.first_name

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'GLOBAL'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))

                        First_Name,

                        (SELECT ppnf.middle_names

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'GLOBAL'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))

                        Middle_Name,

                        (SELECT ppnf.last_name

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'GLOBAL'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))

                        Family_Name,

                        (SELECT ppnf.display_name

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'GLOBAL'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))

                        Display_Name,

                        (SELECT ppnf.full_name

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'KW'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))

                                Employee_Name_Arabic,

                        (SELECT ppnf.first_name

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'KW'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))

                               Arabic_First_Name

                                ,

                        (SELECT ppnf.middle_names

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'KW'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))

                                Arabic_Middle_Name,

                        (SELECT ppnf.last_name

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'KW'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))

                                Arabic_Family_Name,

                        To_char(Trunc(papf.start_date), 'DD-Mon-YYYY')

                                Date_of_Joining,

                        To_char(Trunc(pp.date_of_birth), 'DD-Mon-YYYY')

                                Date_of_Birth,

                        Trunc(( SYSDATE - To_date(pp.date_of_birth, 'YYYY-MM-DD'

                                          ) ) /

                              365.25) Age,

                        Decode (pplf.sex, 'M', 'Male',

                                          'F', 'Female',

                                          pplf.sex)

                                Gender,

                        (SELECT meaning

                         FROM   fnd_lookup_values_tl

                         WHERE  pplf.marital_status = lookup_code

                                AND lookup_type = 'MAR_STATUS'

                                AND LANGUAGE = 'US')

                                Marital_Status,

                        (SELECT meaning

                         FROM   fnd_lookup_values_tl

                         WHERE  pr.religion = lookup_code

                                AND lookup_type = 'PER_RELIGION'

                                AND LANGUAGE = 'US')

                                Religion,

                        (SELECT meaning

                         FROM   fnd_lookup_values_tl

                         WHERE  PC.legislation_code = lookup_code

                                AND lookup_type = 'NATIONALITY'

                                AND LANGUAGE = 'US')

                                Nationality,

                        (SELECT pph.phone_number

                         FROM   per_phones pph

                         WHERE  pph.person_id = papf.person_id

                                AND Pph.phone_type = 'H1')

                                Personal_Phone_Number,

                        (SELECT pph.phone_number

                         FROM   per_phones pph

                         WHERE  pph.person_id = papf.person_id

                                AND Pph.phone_type = 'MOBILE')

                                Personal_Mobile_Number,

                        (SELECT pph.phone_number

                         FROM   per_phones pph

                         WHERE  pph.person_id = papf.person_id

                                AND Pph.phone_type = 'W1')

                                Work_Phone_Number,

                        (SELECT pph.phone_number

                         FROM   per_phones pph

                         WHERE  pph.person_id = papf.person_id

                                AND Pph.phone_type = 'WM')

                                Work_Mobile_Number,

                        manager_info.line_manager_number,

                        manager_info.line_manager_name,

                        ple.name

                                Legal_Employer_Name,

                        (SELECT pea.email_address

                         FROM   per_email_addresses pea

                         WHERE  pea.email_type = 'H1'

                                AND pea.person_id = papf.person_id)

                                Personal_Email_addreess,

                        (SELECT pea.email_address

                         FROM   per_email_addresses pea

                         WHERE  pea.email_type = 'W1'

                                AND pea.person_id = papf.person_id)

                                Company_Email_addreess,

                        hou.name

                                Business_Unit_Name,

                        pldft.location_name,

                        pay.payroll_name,

                        pd.name

                                Department,

                        paaf.ass_attribute1

                                sector,

                        pgft.name

                                grade_name,

                        pjft.name

                                Job,

                        hapft.name

                                Position,

                        (SELECT meaning

                         FROM   fnd_lookup_values_tl

                         WHERE  paaf.employee_category = lookup_code

                                AND lookup_type = 'EMPLOYEE_CATG'

                                AND LANGUAGE = 'US')

                                Employee_Category,

                        (SELECT meaning

                         FROM   fnd_lookup_values_tl

                         WHERE  paaf.employment_category = lookup_code

                                AND lookup_type = 'EMP_CAT'

                                AND LANGUAGE = 'US')

                                Assignment_Category,

                        ppt.user_person_type

                                person_type,

                        paaf.assignment_status_type

                                assignment_status,

                        paaf.assignment_number

                                primary_assignment_number,

                        --Trunc(((MONTHS_BETWEEN(SYSDATE,papf.start_date) /12) - Trunc(MONTHS_BETWEEN(SYSDATE,papf.start_date) /12))*12)) years

                        Trunc(( SYSDATE - To_date(papf.start_date, 'YYYY-MM-DD')

                              ))

                                       Years_of_Service_with_company,

                        --(MONTHS_BETWEEN(SYSDATE,papf.start_date) /12) years

                        (SELECT meaning

                         FROM   fnd_lookup_values_tl

                         WHERE  pplf.highest_education_level = lookup_code

                                AND lookup_type = 'ORA_PER_HIGHEST_EDUCATION_LEVE'

                                AND LANGUAGE = 'US')highest_education_level,

                        ppg.segment1,

                        ppg.segment2,

                        ppg.segment3,

                        ppg.segment4,

                        (SELECT meaning

                         FROM   fnd_lookup_values_tl

                         WHERE  PC.legislation_code = lookup_code

                                AND lookup_type = 'NATIONALITY'

                                AND LANGUAGE = 'US')

                                citizenship,

                        (SELECT meaning

                         FROM   fnd_lookup_values_tl

                         WHERE  PC.citizenship_status = lookup_code

                                AND lookup_type = 'PER_CITIZENSHIP_STATUS'

                                AND LANGUAGE = 'US')

                                citizenship_status,

                        To_char(pc.date_from, 'DD-Mon-YYYY')

                                citizenship_From_Date,

                        pass.passport_number,

                        To_char(pass.expiration_date, 'DD-Mon-YYYY')

                                paassport_expiry_date,

                        Trunc(SYSDATE - To_date(papf.start_date, 'YYYY-MM-DD'))

                                length_of_Service_with_company,

                        Bank_Details.bank_name,

                        Bank_Details.bank_account_num,

                        Bank_Details.iban,

                        (SELECT ppnfc.full_name

                         FROM   per_person_names_f ppnfc,

                                per_all_people_f papfc,

                                per_contact_relships_f pcr

                         WHERE  pcr.contact_person_id = papfc.person_id

                                AND pcr.person_id = papf.person_id

                                AND ppnfc.person_id = papfc.person_id

                                AND pcr.contact_type = 'S'

                                AND ppnfc.name_type = 'GLOBAL'

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnfc.effective_start_date) AND

                                    Trunc(ppnfc.effective_end_date))   SPOUSE,

                        (SELECT ppnfc.full_name

                         FROM   per_person_names_f ppnfc,

                                per_all_people_f papfc,

                                per_contact_relships_f pcr

                         WHERE  pcr.contact_person_id = papfc.person_id

                                AND pcr.person_id = papf.person_id

                                AND ppnfc.person_id = papfc.person_id

                                AND pcr.contact_type = 'C'

                                AND PCR.cont_attribute1 = 'Child1'

                                AND ppnfc.name_type = 'GLOBAL'

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnfc.effective_start_date) AND

                                    Trunc(ppnfc.effective_end_date))   Child1,

                        (SELECT ppnfc.full_name

                         FROM   per_person_names_f ppnfc,

                                per_all_people_f papfc,

                                per_contact_relships_f pcr

                         WHERE  pcr.contact_person_id = papfc.person_id

                                AND pcr.person_id = papf.person_id

                                AND ppnfc.person_id = papfc.person_id

                                AND pcr.contact_type = 'C'

                                AND PCR.cont_attribute1 = 'Child2'

                                AND ppnfc.name_type = 'GLOBAL'

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnfc.effective_start_date) AND

                                    Trunc(ppnfc.effective_end_date))   Child2,

                        (SELECT ppnfc.full_name

                         FROM   per_person_names_f ppnfc,

                                per_all_people_f papfc,

                                per_contact_relships_f pcr

                         WHERE  pcr.contact_person_id = papfc.person_id

                                AND pcr.person_id = papf.person_id

                                AND ppnfc.person_id = papfc.person_id

                                AND pcr.contact_type = 'C'

                                AND PCR.cont_attribute1 = 'Child3'

                                AND ppnfc.name_type = 'GLOBAL'

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnfc.effective_start_date) AND

                                    Trunc(ppnfc.effective_end_date))   Child3,

                        direct_reporters.count_no

                                direct_reporters,

                        ae.destination

                                Air_Ticket_Destination,

                        ae.class_of_travel

                                Air_Ticket_Class_Of_Travel,

                        ae.frequency_of_travel

                                Air_Ticket_Frequency_Of_Travel,

                        ae.dependents_eligible

                                Air_Ticket_Dependents_Eligible,

                        ae.number_of_children_eligible

                                Air_Ticket_Number_of_Children_Eligible,

                        ae.paying_month

                                Air_Ticket_Paying_Month,

                        (SELECT national_identifier_number

                         FROM   per_national_identifiers

                         WHERE  person_id = papf.person_id

                                AND national_identifier_type = 'CI')

                                Civil_Id,

                        (SELECT expiration_date

                         FROM   per_national_identifiers

                         WHERE  person_id = papf.person_id

                                AND national_identifier_type = 'CI')

                                Civil_Id_EXPIRATION_DATE,

                        paaf.probation_period

                                probation_start_date,

                        To_char(paaf.date_probation_end, 'DD-Mon-YYYY')

                                probation_end_date,

                        NULL

                                length_of_service,

                        NULL

                                leaving_reason,

                        NULL

                                termination_action,

                        NULL

                                last_working_date,

                        NULL

                                notification_on_date,

                        NULL

                                REHIRE_RECOMMENDATION,

                        NULL

                                Employer_Comments,

                        (SELECT DISTINCT Round(SUM(acrl1.end_bal), 2)

                                         plan_balance

                         FROM   per_all_assignments_m paam,

                                per_all_people_f papf2,

                                anc_per_plan_enrollment appe,

                                anc_absence_plans_f_tl aapft,

                                anc_per_accrual_entries acrl1

                         WHERE  paam.person_id = papf2.person_id

                                AND appe.person_id = papf2.person_id

                                AND aapft.absence_plan_id = appe.plan_id

                                AND paam.assignment_status_type = 'ACTIVE'

                                AND aapft.name = 'Annual Leave'

                                AND appe.work_term_asg_id(+) =

                                    paam.work_terms_assignment_id

                                AND acrl1.person_id = papf2.person_id

                                AND acrl1.work_term_asg_id(+) =

                                    paam.work_terms_assignment_id

                                AND acrl1.plan_id = ( appe.plan_id )

                                AND acrl1.accrual_period = (SELECT

                                    Max(acrl2.accrual_period)

                                                            FROM

                                    anc_per_accrual_entries acrl2

                                                            WHERE

                                    person_id = papf2.person_id

                                    AND acrl2.plan_id = appe.plan_id)

                                AND aapft.LANGUAGE = 'US'

                                AND Trunc(SYSDATE) BETWEEN

                                    paam.effective_start_date

                                    AND

                                    paam.effective_end_date

                                AND Trunc(SYSDATE) BETWEEN

                                    paam.effective_start_date

                                    AND

                                    paam.effective_end_date

                                AND Trunc(SYSDATE) BETWEEN

                                    aapft.effective_start_date

                                    AND

                                    aapft.effective_end_date

                                AND paam.primary_flag = 'Y'

                                AND papf2.person_id = papf.person_id

                                --AND papf.person_number = '0047'

                                AND paam.assignment_type = 'E')

                                annual_leave_balance,

                        (SELECT DISTINCT SUM(apate.leave_duration)

                         FROM   per_all_people_f peo,

                                per_all_assignments_f asg,

                                per_person_names_f per_name,

                                per_periods_of_service ser,

                                per_person_types_tl per_typ,

                                per_legal_employers ple,

                                anc_absence_plans_f_tl aapft,

                                anc_absence_plans_f aapf,

                                anc_per_accrual_entries acc_ent,

                                anc_per_abs_type_entries apate

                         WHERE  asg.person_id = peo.person_id

                                AND ser.person_id = peo.person_id

                                AND per_name.person_id = peo.person_id

                                AND acc_ent.person_id = peo.person_id

                                AND asg.period_of_service_id =

                                    ser.period_of_service_id

                                AND acc_ent.prd_of_svc_id =

                                    asg.period_of_service_id

                                AND asg.person_type_id = per_typ.person_type_id

                                AND asg.legal_entity_id = ple.organization_id

                                AND aapft.absence_plan_id = aapf.absence_plan_id

                                AND acc_ent.plan_id = aapf.absence_plan_id

                                AND acc_ent.accrual_period =

                                    (SELECT

                                    Max (acc_ent1.accrual_period)

                                                              FROM

                                    anc_per_accrual_entries acc_ent1

                                                              WHERE

                                    acc_ent1.accrual_period <=

                                    To_date (Substr (Trunc (SYSDATE), 1

                                             , 10))

                                    AND acc_ent1.person_id =

                                        acc_ent.person_id

                                    AND

                                        acc_ent1.prd_of_svc_id =

                                        acc_ent.prd_of_svc_id

                                            AND

                                    acc_ent1.plan_id =

        acc_ent.plan_id)

        AND asg.assignment_id = apate.assignment_id

        AND asg.primary_flag = 'Y'

        AND asg.assignment_type IN ( 'E', 'C', 'N', 'P' )

        AND asg.assignment_status_type = 'ACTIVE'

        AND per_name.name_type = 'GLOBAL'

        AND ple.status = 'A'

        AND per_typ.LANGUAGE = Userenv ('LANG')

        AND aapf.plan_status = 'A'

        AND aapft.LANGUAGE = 'US'

        AND acc_ent.end_bal <> 0

        AND Trunc (SYSDATE) BETWEEN peo.effective_start_date AND

        peo.effective_end_date

        AND Trunc (SYSDATE) BETWEEN asg.effective_start_date AND

        asg.effective_end_date

        AND Trunc (SYSDATE) BETWEEN per_name.effective_start_date AND

        per_name.effective_end_date

        AND Trunc (SYSDATE) BETWEEN ple.effective_start_date AND

        ple.effective_end_date

        AND Trunc (SYSDATE) BETWEEN aapf.effective_start_date AND

        aapf.effective_end_date

        AND Trunc (SYSDATE) BETWEEN aapft.effective_start_date AND

        aapft.effective_end_date

        AND apate.start_datetime >= ( Trunc(SYSDATE, 'YY') )

        AND aapft.name = 'Annual Leave'

        AND papf.person_id = peo.person_id

        AND apate.uom = 'D')

                                Annual_Leave_availed_in_current_year,

        (SELECT DISTINCT SUM(apate.leave_duration)

        FROM   per_all_people_f peo,

        per_all_assignments_f asg,

        per_person_names_f per_name,

        per_periods_of_service ser,

        per_person_types_tl per_typ,

        per_legal_employers ple,

        anc_absence_plans_f_tl aapft,

        anc_absence_plans_f aapf,

        anc_per_accrual_entries acc_ent,

        anc_per_abs_type_entries apate

        WHERE  asg.person_id = peo.person_id

        AND ser.person_id = peo.person_id

        AND per_name.person_id = peo.person_id

        AND acc_ent.person_id = peo.person_id

        AND asg.period_of_service_id = ser.period_of_service_id

        AND acc_ent.prd_of_svc_id = asg.period_of_service_id

        AND asg.person_type_id = per_typ.person_type_id

        AND asg.legal_entity_id = ple.organization_id

        AND aapft.absence_plan_id = aapf.absence_plan_id

        AND acc_ent.plan_id = aapf.absence_plan_id

        AND acc_ent.accrual_period = (SELECT Max (acc_ent1.accrual_period)

        FROM   anc_per_accrual_entries acc_ent1

        WHERE  acc_ent1.accrual_period <=

        To_date (Substr (Trunc (SYSDATE), 1

             , 10))

        AND acc_ent1.person_id =

        acc_ent.person_id

        AND

        acc_ent1.prd_of_svc_id = acc_ent.prd_of_svc_id

        AND acc_ent1.plan_id =

        acc_ent.plan_id)

        AND asg.assignment_id = apate.assignment_id

        AND asg.primary_flag = 'Y'

        AND asg.assignment_type IN ( 'E', 'C', 'N', 'P' )

        AND asg.assignment_status_type = 'ACTIVE'

        AND per_name.name_type = 'GLOBAL'

        AND ple.status = 'A'

        AND per_typ.LANGUAGE = Userenv ('LANG')

        AND aapf.plan_status = 'A'

        AND aapft.LANGUAGE = 'US'

        AND acc_ent.end_bal <> 0

        AND Trunc (SYSDATE) BETWEEN peo.effective_start_date AND

        peo.effective_end_date

        AND Trunc (SYSDATE) BETWEEN asg.effective_start_date AND

        asg.effective_end_date

        AND Trunc (SYSDATE) BETWEEN per_name.effective_start_date AND

        per_name.effective_end_date

        AND Trunc (SYSDATE) BETWEEN ple.effective_start_date AND

        ple.effective_end_date

        AND Trunc (SYSDATE) BETWEEN aapf.effective_start_date AND

        aapf.effective_end_date

        AND Trunc (SYSDATE) BETWEEN aapft.effective_start_date AND

        aapft.effective_end_date

        AND apate.start_datetime >= (SELECT Trunc(asg1.start_date, 'YY')

        FROM   per_all_people_f asg1

        WHERE  1 = 1

        AND asg.person_id = asg1.person_id

        AND Trunc(SYSDATE) BETWEEN

        Trunc(asg1.effective_start_date)

        AND

        Trunc(asg1.effective_end_date))

        AND peo.person_id = papf.person_id

        --and peo.person_number ='0047'

        AND aapft.name = 'Annual Leave'

        AND apate.uom = 'D')

                                "Annual Leave Availed(As of now)",

        (SELECT SUM(apate.leave_duration)

        FROM   anc_absence_types_f_tl aapft,

        anc_absence_types_f aapf,

        per_all_people_f peo,

        per_all_assignments_f asg,

        anc_per_abs_type_entries apate

        WHERE  aapft.absence_type_id = aapf.absence_type_id

        AND apate.absence_type_id = aapf.absence_type_id

        AND aapft.name = 'Sick Leave'

        AND aapf.status = 'A'

        AND aapft.LANGUAGE = 'US'

        AND asg.assignment_id = apate.assignment_id

        AND asg.person_id = peo.person_id

        AND Trunc (SYSDATE) BETWEEN aapf.effective_start_date AND

        aapf.effective_end_date

        AND Trunc (SYSDATE) BETWEEN aapft.effective_start_date AND

        aapft.effective_end_date

        AND Trunc (SYSDATE) BETWEEN peo.effective_start_date AND

        peo.effective_end_date

        AND Trunc (SYSDATE) BETWEEN asg.effective_start_date AND

        asg.effective_end_date

        AND papf.person_id = peo.person_id

        AND apate.start_datetime >= ( Trunc(SYSDATE, 'YY') ))

                             "Sick Leave Count Current Year",

        (SELECT SUM(apate.leave_duration)

        FROM   anc_absence_types_f_tl aapft,

        anc_absence_types_f aapf,

        per_all_people_f peo,

        per_all_assignments_f asg,

        anc_per_abs_type_entries apate

        WHERE  aapft.absence_type_id = aapf.absence_type_id

        AND apate.absence_type_id = aapf.absence_type_id

        AND aapft.name = 'Sick Leave'

        AND aapf.status = 'A'

        AND aapft.LANGUAGE = 'US'

        AND asg.assignment_id = apate.assignment_id

        AND asg.person_id = peo.person_id

        AND Trunc (SYSDATE) BETWEEN aapf.effective_start_date AND

        aapf.effective_end_date

        AND Trunc (SYSDATE) BETWEEN aapft.effective_start_date AND

        aapft.effective_end_date

        AND Trunc (SYSDATE) BETWEEN peo.effective_start_date AND

        peo.effective_end_date

        AND Trunc (SYSDATE) BETWEEN asg.effective_start_date AND

        asg.effective_end_date

        AND papf.person_id = peo.person_id

        AND apate.start_datetime >= (SELECT Trunc(start_date, 'YY')

        FROM   per_all_people_f

        WHERE  1 = 1

        AND asg.person_id = person_id

        AND

        Trunc(SYSDATE) BETWEEN Trunc(effective_start_date) AND Trunc(

        effective_end_date)))

                             "Sick Leave Availed (as of now)",

        (SELECT SUM(apate.leave_duration)

        FROM   anc_absence_types_f_tl aapft,

        anc_absence_types_f aapf,

        per_all_people_f peo,

        per_all_assignments_f asg,

        anc_per_abs_type_entries apate

        WHERE  aapft.absence_type_id = aapf.absence_type_id

        AND apate.absence_type_id = aapf.absence_type_id

        AND aapft.name = 'Unpaid Leave'

        AND aapf.status = 'A'

        AND aapft.LANGUAGE = 'US'

        AND asg.assignment_id = apate.assignment_id

        AND asg.person_id = peo.person_id

        AND Trunc (SYSDATE) BETWEEN aapf.effective_start_date AND

        aapf.effective_end_date

        AND Trunc (SYSDATE) BETWEEN aapft.effective_start_date AND

        aapft.effective_end_date

        AND Trunc (SYSDATE) BETWEEN peo.effective_start_date AND

        peo.effective_end_date

        AND Trunc (SYSDATE) BETWEEN asg.effective_start_date AND

        asg.effective_end_date

        AND papf.person_id = peo.person_id

        --and peo.person_number = '0160'

        AND apate.uom = 'C'

        AND apate.start_datetime >= ( Trunc(SYSDATE, 'YY') ))

                             "Unpaid Leave Count Current Year",

        (SELECT SUM(apate.leave_duration)

        FROM   anc_absence_types_f_tl aapft,

        anc_absence_types_f aapf,

        per_all_people_f peo,

        per_all_assignments_f asg,

        anc_per_abs_type_entries apate

        WHERE  aapft.absence_type_id = aapf.absence_type_id

        AND apate.absence_type_id = aapf.absence_type_id

        AND aapft.name = 'Unpaid Leave'

        AND aapf.status = 'A'

        AND aapft.LANGUAGE = 'US'

        AND asg.assignment_id = apate.assignment_id

        AND asg.person_id = peo.person_id

        AND Trunc (SYSDATE) BETWEEN aapf.effective_start_date AND

        aapf.effective_end_date

        AND Trunc (SYSDATE) BETWEEN aapft.effective_start_date AND

        aapft.effective_end_date

        AND Trunc (SYSDATE) BETWEEN peo.effective_start_date AND

        peo.effective_end_date

        AND Trunc (SYSDATE) BETWEEN asg.effective_start_date AND

        asg.effective_end_date

        AND papf.person_id = peo.person_id

        --and peo.person_number = '0160'

        AND apate.uom = 'C'

        AND apate.start_datetime >= (SELECT Trunc(start_date, 'YY')

        FROM   per_all_people_f

        WHERE  1 = 1

        AND asg.person_id = person_id

        AND

        Trunc(SYSDATE) BETWEEN Trunc(effective_start_date) AND Trunc(

        effective_end_date)))

                             "Unpaid Leave Availed (as of now)",

        (SELECT DISTINCT ( prv.result_value * 12 ) Air_Tickets

        FROM   pay_payroll_actions G,

        pay_payroll_rel_actions H,

        pay_run_results PR,

        pay_run_result_values PRV,

        pay_balance_feeds_f PBF,

        pay_balance_types_vl pbt,

        pay_payroll_assignments payass,

        pay_input_values_vl piv,

        pay_element_types_vl pet

        WHERE  G.payroll_action_id = H.payroll_action_id

        --AND G.ACTION_TYPE IN ('B','I','Q','R')

        AND G.action_status IN ( 'C', 'P' )

        AND pbt.balance_type_id = pbf.balance_type_id

        AND H.action_status = 'C'

        AND pbt.balance_name LIKE 'Gross Earnings'

        AND G.date_earned >= ( Trunc(SYSDATE, 'YY') )

        AND PBF.input_value_id = PRV.input_value_id

        AND PR.run_result_id = PRV.run_result_id

        AND PR.payroll_rel_action_id = H.payroll_rel_action_id

        AND PBF.balance_type_id = pbt.balance_type_id

        AND pbf.input_value_id = piv.input_value_id

        AND piv.element_type_id = pet.element_type_id

        AND pet.element_name = 'Air Ticket Payment'

        --and g.payroll_id = 300000018200440

        AND g.legislation_code = 'KW'

        AND g.assignment_set_id IS NOT NULL

        AND payass.hr_assignment_id IN (SELECT DISTINCT assignment_id

        FROM   per_all_assignments_m

        WHERE  person_id = paaf.person_id

        AND assignment_type = 'E'

        AND SYSDATE BETWEEN

          effective_start_date

          AND

          effective_end_date

        AND primary_flag = 'Y'

        AND effective_latest_change = 'Y'

        ))                             "Air Ticket - Total",

        cs.annual_salary

                                grosss_salary,

        bp.basic_amount

                                basic_salary,

         (nvl(pee.pre_exp,0)+  Trunc(SYSDATE - To_date(papf.start_date, 'YYYY-MM-DD'))) over_all_exp

        FROM   per_all_people_f papf,

               per_all_assignments_m paaf,

               per_persons pp,

               per_people_legislative_f pplf,

               per_religions pr,

               per_citizenships PC,

               per_legal_employers ple,

               hr_all_organization_units hou,

               per_location_details_f pldf,

               per_location_details_f_tl pldft,

               pay_rel_groups_dn payrel,

               pay_assigned_payrolls_dn papd,

               pay_all_payrolls_f pay,

               per_departments PD,

               per_grades_f_tl pgft,

               per_jobs_f_tl pjft,

               hr_all_positions_f_tl hapft,

               per_person_types_tl ppt,

               per_people_groups ppg,

               per_passports pass,

               basic_pay bp,

               air_elements ae,

               cmp_salary cs,

               prev_emp_exp pee,

               (SELECT pasf.assignment_id,

                       papf.person_number line_manager_number,

                       ppnf.display_name  line_manager_name

                FROM   per_all_people_f papf,

                       per_person_names_f ppnf,

                       per_all_assignments_f paaf,

                       per_assignment_supervisors_f pasf

                WHERE  papf.person_id = pasf.manager_id

                       AND ppnf.person_id = pasf.manager_id

                       AND paaf.person_id = pasf.person_id

                       AND paaf.assignment_id = pasf.assignment_id

                       AND pasf.manager_type = 'LINE_MANAGER'

                       ------to get line manager

                       AND ppnf.name_type = 'GLOBAL' ---For english name

                       AND paaf.effective_latest_change = 'Y'

                       ------to get latest changed records

                       AND paaf.assignment_type = 'E' --  Employee only

                       AND Trunc (SYSDATE) BETWEEN

                           Trunc (papf.effective_start_date)

                           AND

                           Trunc (papf.effective_end_date)

                       AND Trunc (SYSDATE) BETWEEN

                           Trunc (ppnf.effective_start_date)

                           AND

                           Trunc (ppnf.effective_end_date)

                       AND Trunc (SYSDATE) BETWEEN

                           Trunc (paaf.effective_start_date)

                           AND

                           Trunc (paaf.effective_end_date)

                       AND Trunc (SYSDATE) BETWEEN

                           Trunc (pasf.effective_start_date)

                           AND

                           Trunc (pasf.effective_end_date))

               manager_info,

               (SELECT 

 pprd.PERSON_ID,

  EBA.BANK_ACCOUNT_NAME,

  EBA.bank_account_num,

  EBA.MASKED_BANK_ACCOUNT_NUM,

  EBA.BANK_ACCOUNT_NUM_ELECTRONIC,

  EBA.IBAN,

   BANK.bank_name, 

   

   BANK.BANK_NUMBER

FROM PAY_PERSON_PAY_METHODS_F ppmf, 

PAY_PAY_RELATIONSHIPS_DN pprd,

CE_ALL_BANKS_V BANK, 

CE_ALL_BANK_BRANCHES_V BRANCH, 

IBY_EXT_BANK_ACCOUNTS EBA,

 fnd_lookups LKP

WHERE ppmf.PAYROLL_RELATIONSHIP_ID = pprd.PAYROLL_RELATIONSHIP_ID 

and EBA.BANK_ID = BANK.BANK_PARTY_ID

and ppmf.BANK_ACCOUNT_ID = EBA.EXT_BANK_ACCOUNT_ID(+)

     AND EBA.BRANCH_ID = BRANCH.BRANCH_PARTY_ID

  AND LKP.LOOKUP_CODE(+)         = EBA.BANK_ACCOUNT_TYPE

  AND LKP.LOOKUP_TYPE(+)         = 'IBY_BANKACCT_TYPES'

 --and  pprd.PERSON_ID in ('300000030302137','300000033468350')

AND sysdate  BETWEEN ppmf.EFFECTIVE_START_DATE AND ppmf.EFFECTIVE_END_DATE 

) Bank_Details,

               (SELECT Count(papf1.person_number) count_no,

                       papf_s.person_id

                FROM   per_all_people_f papf1,

                       per_person_names_f ppnf,

                       per_all_assignments_m paam,

                       per_assignment_supervisors_f pasf,

                       per_all_people_f papf_s,

                       per_person_names_f ppnf_s,

                       per_all_assignments_m paam_s

                WHERE  papf1.person_id = ppnf.person_id

                       AND papf1.person_id = paam.person_id

                       AND papf1.person_id = pasf.person_id

                       AND paam.assignment_id = pasf.assignment_id

                       AND papf1.person_id = pasf.person_id

                       AND pasf.manager_assignment_id = paam_s.assignment_id

                       AND pasf.manager_id = papf_s.person_id

                       AND papf_s.person_id = ppnf_s.person_id

                       AND ppnf.name_type = 'GLOBAL'

                       AND ppnf_s.name_type = 'GLOBAL'

                       --AND pasf.person_id = papf.person_id

                       AND SYSDATE BETWEEN ppnf.effective_start_date AND

                                           ppnf.effective_end_date

                       AND SYSDATE BETWEEN ppnf_s.effective_start_date AND

                                           ppnf_s.effective_end_date

                       AND SYSDATE BETWEEN papf1.effective_start_date AND

                                           papf1.effective_end_date

                       AND SYSDATE BETWEEN papf_s.effective_start_date AND

                                           papf_s.effective_end_date

                       AND SYSDATE BETWEEN paam_s.effective_start_date AND

                                           paam_s.effective_end_date

                       AND SYSDATE BETWEEN paam.effective_start_date AND

                                           paam.effective_end_date

                GROUP  BY papf_s.person_id)direct_reporters

        WHERE  papf.person_id = paaf.person_id

               AND paaf.assignment_type = 'E'

               AND paaf.primary_flag = 'Y'

               AND paaf.assignment_status_type = 'ACTIVE'

               AND pp.person_id(+) = papf.person_id

               AND pplf.person_id(+) = papf.person_id

               AND pr.person_id(+) = papf.person_id

               AND PC.person_id(+) = papf.person_id

               AND pc.citizenship_status(+) = 'A'

               AND manager_info.assignment_id(+) = paaf.assignment_id

               AND ple.organization_id(+) = paaf.legal_entity_id

               AND ple.status(+) = 'A'

               AND hou.organization_id(+) = paaf.business_unit_id

               AND paaf.location_id = pldf.location_id(+)

               AND pldft.LANGUAGE(+) = 'US'

               AND pldf.location_details_id = pldft.location_details_id(+)

               AND paaf.assignment_id = payrel.assignment_id(+)

               AND payrel.group_type(+) = 'A'

               AND papd.payroll_term_id = payrel.parent_rel_group_id

               AND papd.payroll_id = pay.payroll_id

               AND paaf.organization_id = pd.organization_id(+)

               AND pgft.grade_id = paaf.grade_id

               AND PGFt.LANGUAGE(+) = 'US'

               AND pjft.job_id(+) = paaf.job_id

               AND PJFt.LANGUAGE(+) = 'US'

               AND hapft.position_id(+) = paaf.position_id

               AND hapft.LANGUAGE (+)= 'US'

               AND ppt.person_type_id(+) = paaf.person_type_id

               AND ppt.LANGUAGE(+) = 'US'

               AND ppg.people_group_id(+) = paaf.people_group_id

               AND papf.person_id = pass.person_id(+)

               AND Bank_Details.person_id(+) =(papf.person_id)

               AND direct_reporters.person_id(+) = papf.person_id

               AND bp.person_id(+) = papf.person_id

               AND ae.person_id(+) = papf.person_id

               AND cs.person_id = papf.person_id

               AND pee.person_id(+) = paaf.person_id

               AND Trunc(:p_effective_date) BETWEEN

                   Trunc(papf.effective_start_date)

                   AND

                   Trunc(papf.effective_end_date)

               AND Trunc(:p_effective_date) BETWEEN

                   Trunc(paaf.effective_start_date)

                   AND

                   Trunc(paaf.effective_end_date)

               AND Trunc(SYSDATE) BETWEEN Nvl(PPLF.effective_start_date, SYSDATE

                                          )AND

                                          Nvl(PPLF.effective_end_date, SYSDATE)

               AND Trunc(SYSDATE) BETWEEN Trunc(cs.date_from) AND

                                          Trunc(cs.date_to)

               AND ( Coalesce(NULL, :legal_emp) IS NULL

                      OR ple.organization_id IN ( :legal_emp ) )

               AND ( Coalesce(NULL, :assignment_status) IS NULL

                      OR paaf.assignment_status_type IN ( :assignment_status ) )

               AND ( Coalesce(NULL, :department_name) IS NULL

                      OR pd.name IN ( :department_name ) )

        UNION ALL

        SELECT DISTINCT papf.person_id,

                        papf.person_number,

                        paaf.assignment_number,

                        (SELECT ppnf.title

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'GLOBAL'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))    Title,

                        (SELECT ppnf.full_name

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'GLOBAL'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))

                        Employee_Full_Name,

                        (SELECT ppnf.first_name

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'GLOBAL'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))

                        First_Name,

                        (SELECT ppnf.middle_names

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'GLOBAL'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))

                        Middle_Name,

                        (SELECT ppnf.last_name

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'GLOBAL'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))

                        Family_Name,

                        (SELECT ppnf.display_name

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'GLOBAL'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))

                        Display_Name,

                        (SELECT ppnf.full_name

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'KW'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))

                        Employee_Name_Arabic,

                        (SELECT ppnf.first_name

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'KW'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))

                        Arabic_First_Name

                        ,

                        (SELECT ppnf.middle_names

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'KW'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))

                        Arabic_Middle_Name,

                        (SELECT ppnf.last_name

                         FROM   per_person_names_f ppnf

                         WHERE  ppnf.name_type = 'KW'

                                AND ppnf.person_id = papf.person_id

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnf.effective_start_date) AND

                                    Trunc(ppnf.effective_end_date))

                        Arabic_Family_Name,

                        To_char(Trunc(papf.start_date), 'DD-Mon-YYYY')

                        Date_of_Joining,

                        To_char(Trunc(pp.date_of_birth), 'DD-Mon-YYYY')

                        Date_of_Birth,

                        Trunc(( SYSDATE - To_date(pp.date_of_birth, 'YYYY-MM-DD'

                                          ) ) /

                              365.25) Age,

                        Decode (pplf.sex, 'M', 'Male',

                                          'F', 'Female',

                                          pplf.sex)

                        Gender,

                        (SELECT meaning

                         FROM   fnd_lookup_values_tl

                         WHERE  pplf.marital_status = lookup_code

                                AND lookup_type = 'MAR_STATUS'

                                AND LANGUAGE = 'US')

                        Marital_Status,

                        (SELECT meaning

                         FROM   fnd_lookup_values_tl

                         WHERE  pr.religion = lookup_code

                                AND lookup_type = 'PER_RELIGION'

                                AND LANGUAGE = 'US')

                        Religion,

                        (SELECT meaning

                         FROM   fnd_lookup_values_tl

                         WHERE  PC.legislation_code = lookup_code

                                AND lookup_type = 'NATIONALITY'

                                AND LANGUAGE = 'US')

                        Nationality,

                        (SELECT pph.phone_number

                         FROM   per_phones pph

                         WHERE  pph.person_id = papf.person_id

                                AND Pph.phone_type = 'H1')

                        Personal_Phone_Number,

                        (SELECT pph.phone_number

                         FROM   per_phones pph

                         WHERE  pph.person_id = papf.person_id

                                AND Pph.phone_type = 'MOBILE')

                        Personal_Mobile_Number,

                        (SELECT pph.phone_number

                         FROM   per_phones pph

                         WHERE  pph.person_id = papf.person_id

                                AND Pph.phone_type = 'W1')

                        Work_Phone_Number,

                        (SELECT pph.phone_number

                         FROM   per_phones pph

                         WHERE  pph.person_id = papf.person_id

                                AND Pph.phone_type = 'WM')

                        Work_Mobile_Number,

                        manager_info.line_manager_number,

                        manager_info.line_manager_name,

                        ple.name

                        Legal_Employer_Name,

                        (SELECT pea.email_address

                         FROM   per_email_addresses pea

                         WHERE  pea.email_type = 'H1'

                                AND pea.person_id = papf.person_id)

                        Personal_Email_addreess,

                        (SELECT pea.email_address

                         FROM   per_email_addresses pea

                         WHERE  pea.email_type = 'W1'

                                AND pea.person_id = papf.person_id)

                        Company_Email_addreess,

                        hou.name

                        Business_Unit_Name,

                        pldft.location_name,

                        pay.payroll_name,

                        pd.name

                        Department,

                        paaf.ass_attribute1

                        sector,

                        pgft.name

                        grade_name,

                        pjft.name

                        Job,

                        hapft.name

                        Position,

                        (SELECT meaning

                         FROM   fnd_lookup_values_tl

                         WHERE  paaf.employee_category = lookup_code

                                AND lookup_type = 'EMPLOYEE_CATG'

                                AND LANGUAGE = 'US')

                        Employee_Category,

                        (SELECT meaning

                         FROM   fnd_lookup_values_tl

                         WHERE  paaf.employment_category = lookup_code

                                AND lookup_type = 'EMP_CAT'

                                AND LANGUAGE = 'US')

                        Assignment_Category,

                        ppt.user_person_type

                        person_type,

                        paaf.assignment_status_type

                        assignment_status,

                        paaf.assignment_number

                        primary_assignment_number,

                        --Trunc(((MONTHS_BETWEEN(SYSDATE,papf.start_date) /12) - Trunc(MONTHS_BETWEEN(SYSDATE,papf.start_date) /12))*12)) years

                        Trunc(( SYSDATE - To_date(papf.start_date, 'YYYY-MM-DD')

                              ))

                                       Years_of_Service_with_company,

                        --(MONTHS_BETWEEN(SYSDATE,papf.start_date) /12) years

                       (SELECT meaning

                         FROM   fnd_lookup_values_tl

                         WHERE  pplf.highest_education_level = lookup_code

                                AND lookup_type = 'ORA_PER_HIGHEST_EDUCATION_LEVE'

                                AND LANGUAGE = 'US')highest_education_level,

                        ppg.segment1,

                        ppg.segment2,

                        ppg.segment3,

                        ppg.segment4,

                        (SELECT meaning

                         FROM   fnd_lookup_values_tl

                         WHERE  PC.legislation_code = lookup_code

                                AND lookup_type = 'NATIONALITY'

                                AND LANGUAGE = 'US')

                        citizenship,

                        (SELECT meaning

                         FROM   fnd_lookup_values_tl

                         WHERE  PC.citizenship_status = lookup_code

                                AND lookup_type = 'PER_CITIZENSHIP_STATUS'

                                AND LANGUAGE = 'US')

                        citizenship_status,

                        To_char(pc.date_from, 'DD-Mon-YYYY')

                        citizenship_From_Date,

                        pass.passport_number,

                        To_char(pass.expiration_date, 'DD-Mon-YYYY')

                        paassport_expiry_date,

                        Trunc(SYSDATE - To_date(papf.start_date, 'YYYY-MM-DD'))

                        length_of_Service_with_company,

                        Bank_Details.bank_name,

                        Bank_Details.bank_account_num,

                        Bank_Details.iban,

                        (SELECT ppnfc.full_name

                         FROM   per_person_names_f ppnfc,

                                per_all_people_f papfc,

                                per_contact_relships_f pcr

                         WHERE  pcr.contact_person_id = papfc.person_id

                                AND pcr.person_id = papf.person_id

                                AND ppnfc.person_id = papfc.person_id

                                AND pcr.contact_type = 'S'

                                AND ppnfc.name_type = 'GLOBAL'

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnfc.effective_start_date) AND

                                    Trunc(ppnfc.effective_end_date))   SPOUSE,

                        (SELECT ppnfc.full_name

                         FROM   per_person_names_f ppnfc,

                                per_all_people_f papfc,

                                per_contact_relships_f pcr

                         WHERE  pcr.contact_person_id = papfc.person_id

                                AND pcr.person_id = papf.person_id

                                AND ppnfc.person_id = papfc.person_id

                                AND pcr.contact_type = 'C'

                                AND PCR.cont_attribute1 = 'Child1'

                                AND ppnfc.name_type = 'GLOBAL'

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnfc.effective_start_date) AND

                                    Trunc(ppnfc.effective_end_date))   Child1,

                        (SELECT ppnfc.full_name

                         FROM   per_person_names_f ppnfc,

                                per_all_people_f papfc,

                                per_contact_relships_f pcr

                         WHERE  pcr.contact_person_id = papfc.person_id

                                AND pcr.person_id = papf.person_id

                                AND ppnfc.person_id = papfc.person_id

                                AND pcr.contact_type = 'C'

                                AND PCR.cont_attribute1 = 'Child2'

                                AND ppnfc.name_type = 'GLOBAL'

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnfc.effective_start_date) AND

                                    Trunc(ppnfc.effective_end_date))   Child2,

                        (SELECT ppnfc.full_name

                         FROM   per_person_names_f ppnfc,

                                per_all_people_f papfc,

                                per_contact_relships_f pcr

                         WHERE  pcr.contact_person_id = papfc.person_id

                                AND pcr.person_id = papf.person_id

                                AND ppnfc.person_id = papfc.person_id

                                AND pcr.contact_type = 'C'

                                AND PCR.cont_attribute1 = 'Child3'

                                AND ppnfc.name_type = 'GLOBAL'

                                AND Trunc(SYSDATE) BETWEEN

                                    Trunc(ppnfc.effective_start_date) AND

                                    Trunc(ppnfc.effective_end_date))   Child3,

                        direct_reporters.count_no

                        direct_reporters,

                        ae.destination

                        Air_Ticket_Destination,

                        ae.class_of_travel

                        Air_Ticket_Class_Of_Travel,

                        ae.frequency_of_travel

                        Air_Ticket_Frequency_Of_Travel,

                        ae.dependents_eligible

                        Air_Ticket_Dependents_Eligible,

                        ae.number_of_children_eligible

                        Air_Ticket_Number_of_Children_Eligible,

                        ae.paying_month

                        Air_Ticket_Paying_Month,

                        (SELECT national_identifier_number

                         FROM   per_national_identifiers

                         WHERE  person_id = papf.person_id

                                AND national_identifier_type = 'CI')

                        Civil_Id,

                        (SELECT expiration_date

                         FROM   per_national_identifiers

                         WHERE  person_id = papf.person_id

                                AND national_identifier_type = 'CI')

                        Civil_Id_EXPIRATION_DATE,

                        paaf.probation_period

                        probation_start_date,

                        To_char(paaf.date_probation_end, 'DD-Mon-YYYY')

                        probation_end_date,

                        Trunc(To_date(pps.actual_termination_date, 'YYYY-MM-DD')

                              -

                              To_date(papf.start_date, 'YYYY-MM-DD'))

                        length_of_service,

                        part.action_reason

                        leaving_reason,

                        pat.action_name

                        termination_action,

                        To_char(pps.actual_termination_date, 'DD-Mon-YYYY')

                        last_working_date,

                        To_char(pps.notified_termination_date, 'DD-Mon-YYYY')

                        notification_on_date,

                        pps.worker_comments

                        Employer_Comments,

                        Decode(pps.rehire_recommendation, 'Y', 'Yes',

                                                          'N', 'No',

                                                          'Not Specified')

                        REHIRE_RECOMMENDATION,

                        (SELECT DISTINCT Round(SUM(acrl1.end_bal), 2)

                                         plan_balance

                         FROM   per_all_assignments_m paam,

                                per_all_people_f papf2,

                                anc_per_plan_enrollment appe,

                                anc_absence_plans_f_tl aapft,

                                anc_per_accrual_entries acrl1

                         WHERE  paam.person_id = papf2.person_id

                                AND appe.person_id = papf2.person_id

                                AND aapft.absence_plan_id = appe.plan_id

                                --AND paam.assignment_status_type = 'ACTIVE'

                                AND aapft.name = 'Annual Leave'

                                AND appe.work_term_asg_id(+) =

                                    paam.work_terms_assignment_id

                                AND acrl1.person_id = papf2.person_id

                                AND acrl1.work_term_asg_id(+) =

                                    paam.work_terms_assignment_id

                                AND acrl1.plan_id = ( appe.plan_id )

                                AND acrl1.accrual_period = (SELECT

                                    Max(acrl2.accrual_period)

                                                            FROM

                                    anc_per_accrual_entries acrl2

                                                            WHERE

                                    person_id = papf2.person_id

                                    AND acrl2.plan_id = appe.plan_id)

                                AND aapft.LANGUAGE = 'US'

                                AND Trunc(SYSDATE) BETWEEN

                                    paam.effective_start_date

                                    AND

                                    paam.effective_end_date

                                AND Trunc(SYSDATE) BETWEEN

                                    paam.effective_start_date

                                    AND

                                    paam.effective_end_date

                                AND Trunc(SYSDATE) BETWEEN

                                    aapft.effective_start_date

                                    AND

                                    aapft.effective_end_date

                                AND paam.primary_flag = 'Y'

                                AND paam.assignment_type = 'E'

                                AND papf.person_id = papf2.person_id)

                        annual_leave_balance,

                        (SELECT DISTINCT SUM(apate.leave_duration)

                         FROM   per_all_people_f peo,

                                per_all_assignments_f asg,

                                per_person_names_f per_name,

                                per_periods_of_service ser,

                                per_person_types_tl per_typ,

                                per_legal_employers ple,

                                anc_absence_plans_f_tl aapft,

                                anc_absence_plans_f aapf,

                                anc_per_accrual_entries acc_ent,

                                anc_per_abs_type_entries apate

                         WHERE  asg.person_id = peo.person_id

                                AND ser.person_id = peo.person_id

                                AND per_name.person_id = peo.person_id

                                AND acc_ent.person_id = peo.person_id

                                AND asg.period_of_service_id =

                                    ser.period_of_service_id

                                AND acc_ent.prd_of_svc_id =

                                    asg.period_of_service_id

                                AND asg.person_type_id = per_typ.person_type_id

                                AND asg.legal_entity_id = ple.organization_id

                                AND aapft.absence_plan_id = aapf.absence_plan_id

                                AND acc_ent.plan_id = aapf.absence_plan_id

                                AND acc_ent.accrual_period =

                                    (SELECT

                                    Max (acc_ent1.accrual_period)

                                                              FROM

                                    anc_per_accrual_entries acc_ent1

                                                              WHERE

                                    acc_ent1.accrual_period <=

                                    To_date (Substr (Trunc (SYSDATE), 1

                                             , 10))

                                    AND acc_ent1.person_id =

                                        acc_ent.person_id

                                    AND

                                        acc_ent1.prd_of_svc_id =

                                        acc_ent.prd_of_svc_id

                                            AND

                                    acc_ent1.plan_id =

        acc_ent.plan_id)

        AND asg.assignment_id = apate.assignment_id

        AND asg.primary_flag = 'Y'

        AND asg.assignment_type IN ( 'E' )--, 'C', 'N', 'P')

        --AND asg.assignment_status_type = 'ACTIVE'

        AND per_name.name_type = 'GLOBAL'

        AND ple.status = 'A'

        AND per_typ.LANGUAGE = Userenv ('LANG')

        AND aapf.plan_status = 'A'

        AND aapft.LANGUAGE = 'US'

        AND acc_ent.end_bal <> 0

        AND Trunc (ser.actual_termination_date) BETWEEN

        peo.effective_start_date AND peo.effective_end_date

        AND Trunc (ser.actual_termination_date) BETWEEN

        asg.effective_start_date AND asg.effective_end_date

        AND Trunc (ser.actual_termination_date) BETWEEN

        per_name.effective_start_date AND per_name.effective_end_date

        AND Trunc (ser.actual_termination_date) BETWEEN

        ple.effective_start_date AND ple.effective_end_date

        AND Trunc (ser.actual_termination_date) BETWEEN

        aapf.effective_start_date AND aapf.effective_end_date

        AND Trunc (ser.actual_termination_date) BETWEEN

        aapft.effective_start_date AND aapft.effective_end_date

        AND apate.start_datetime >= ( Trunc(SYSDATE, 'YY') )

        AND aapft.name = 'Annual Leave'

        AND paaf.person_id = peo.person_id

        AND apate.uom = 'D')

                        Annual_Leave_availed_in_current_year,

        (SELECT DISTINCT SUM(apate.leave_duration)

        FROM   per_all_people_f peo,

        per_all_assignments_f asg,

        per_person_names_f per_name,

        per_periods_of_service ser,

        per_person_types_tl per_typ,

        per_legal_employers ple,

        anc_absence_plans_f_tl aapft,

        anc_absence_plans_f aapf,

        anc_per_accrual_entries acc_ent,

        anc_per_abs_type_entries apate

        WHERE  asg.person_id = peo.person_id

        AND ser.person_id = peo.person_id

        AND per_name.person_id = peo.person_id

        AND acc_ent.person_id = peo.person_id

        AND asg.period_of_service_id = ser.period_of_service_id

        AND acc_ent.prd_of_svc_id = asg.period_of_service_id

        AND asg.person_type_id = per_typ.person_type_id

        AND asg.legal_entity_id = ple.organization_id

        AND aapft.absence_plan_id = aapf.absence_plan_id

        AND acc_ent.plan_id = aapf.absence_plan_id

        AND acc_ent.accrual_period = (SELECT Max (acc_ent1.accrual_period)

        FROM   anc_per_accrual_entries acc_ent1

        WHERE  acc_ent1.accrual_period <=

        To_date (Substr (Trunc (SYSDATE), 1

             , 10))

        AND acc_ent1.person_id =

        acc_ent.person_id

        AND

        acc_ent1.prd_of_svc_id = acc_ent.prd_of_svc_id

        AND acc_ent1.plan_id =

        acc_ent.plan_id)

        AND asg.assignment_id = apate.assignment_id

        AND asg.primary_flag = 'Y'

        AND asg.assignment_type IN ( 'E', 'C', 'N', 'P' )

        --AND asg.assignment_status_type = 'ACTIVE'

        AND per_name.name_type = 'GLOBAL'

        AND ple.status = 'A'

        AND per_typ.LANGUAGE = Userenv ('LANG')

        AND aapf.plan_status = 'A'

        AND aapft.LANGUAGE = 'US'

        AND acc_ent.end_bal <> 0

        AND Trunc (ser.actual_termination_date) BETWEEN

        peo.effective_start_date AND peo.effective_end_date

        AND Trunc (ser.actual_termination_date) BETWEEN

        asg.effective_start_date AND asg.effective_end_date

        AND Trunc (ser.actual_termination_date) BETWEEN

        per_name.effective_start_date AND per_name.effective_end_date

        AND Trunc (ser.actual_termination_date) BETWEEN

        ple.effective_start_date AND ple.effective_end_date

        AND Trunc (ser.actual_termination_date) BETWEEN

        aapf.effective_start_date AND aapf.effective_end_date

        AND Trunc (ser.actual_termination_date) BETWEEN

        aapft.effective_start_date AND aapft.effective_end_date

        AND apate.start_datetime >= (SELECT Trunc(asg1.start_date, 'YY')

        FROM   per_all_people_f asg1

        WHERE  1 = 1

        AND asg.person_id = asg1.person_id

        AND Trunc(SYSDATE) BETWEEN

        Trunc(asg1.effective_start_date)

        AND

        Trunc(asg1.effective_end_date))

        AND peo.person_id = papf.person_id

        --and peo.person_number ='0047'

        AND aapft.name = 'Annual Leave'

        AND apate.uom = 'D')

                        "Annual Leave Availed(As of now)",

        (SELECT SUM(apate.leave_duration)

        FROM   anc_absence_types_f_tl aapft,

        anc_absence_types_f aapf,

        per_all_people_f peo,

        per_all_assignments_f asg,

        anc_per_abs_type_entries apate

        WHERE  aapft.absence_type_id = aapf.absence_type_id

        AND apate.absence_type_id = aapf.absence_type_id

        AND aapft.name = 'Sick Leave'

        AND aapf.status = 'A'

        AND aapft.LANGUAGE = 'US'

        AND asg.assignment_id = apate.assignment_id

        AND asg.person_id = peo.person_id

        AND Trunc (SYSDATE) BETWEEN aapf.effective_start_date AND

        aapf.effective_end_date

        AND Trunc (SYSDATE) BETWEEN aapft.effective_start_date AND

        aapft.effective_end_date

        AND Trunc (SYSDATE) BETWEEN peo.effective_start_date AND

        peo.effective_end_date

        AND Trunc (SYSDATE) BETWEEN asg.effective_start_date AND

        asg.effective_end_date

        AND papf.person_id = peo.person_id

        AND apate.start_datetime >= ( Trunc(SYSDATE, 'YY') ))

                             "Sick Leave Count Current Year",

        (SELECT SUM(apate.leave_duration)

        FROM   anc_absence_types_f_tl aapft,

        anc_absence_types_f aapf,

        per_all_people_f peo,

        per_all_assignments_f asg,

        anc_per_abs_type_entries apate

        WHERE  aapft.absence_type_id = aapf.absence_type_id

        AND apate.absence_type_id = aapf.absence_type_id

        AND aapft.name = 'Sick Leave'

        AND aapf.status = 'A'

        AND aapft.LANGUAGE = 'US'

        AND asg.assignment_id = apate.assignment_id

        AND asg.person_id = peo.person_id

        AND Trunc (SYSDATE) BETWEEN aapf.effective_start_date AND

        aapf.effective_end_date

        AND Trunc (SYSDATE) BETWEEN aapft.effective_start_date AND

        aapft.effective_end_date

        AND Trunc (SYSDATE) BETWEEN peo.effective_start_date AND

        peo.effective_end_date

        AND Trunc (SYSDATE) BETWEEN asg.effective_start_date AND

        asg.effective_end_date

        AND papf.person_id = peo.person_id

        AND apate.start_datetime >= (SELECT Trunc(start_date, 'YY')

        FROM   per_all_people_f

        WHERE  1 = 1

        AND asg.person_id = person_id

        AND

        Trunc(SYSDATE) BETWEEN Trunc(effective_start_date) AND Trunc(

        effective_end_date)))

                             "Sick Leave Availed (as of now)",

        (SELECT SUM(apate.leave_duration)

        FROM   anc_absence_types_f_tl aapft,

        anc_absence_types_f aapf,

        per_all_people_f peo,

        per_all_assignments_f asg,

        anc_per_abs_type_entries apate

        WHERE  aapft.absence_type_id = aapf.absence_type_id

        AND apate.absence_type_id = aapf.absence_type_id

        AND aapft.name = 'Unpaid Leave'

        AND aapf.status = 'A'

        AND aapft.LANGUAGE = 'US'

        AND asg.assignment_id = apate.assignment_id

        AND asg.person_id = peo.person_id

        AND Trunc (SYSDATE) BETWEEN aapf.effective_start_date AND

        aapf.effective_end_date

        AND Trunc (SYSDATE) BETWEEN aapft.effective_start_date AND

        aapft.effective_end_date

        AND Trunc (SYSDATE) BETWEEN peo.effective_start_date AND

        peo.effective_end_date

        AND Trunc (SYSDATE) BETWEEN asg.effective_start_date AND

        asg.effective_end_date

        AND papf.person_id = peo.person_id

        --and peo.person_number = '0160'

        AND apate.uom = 'C'

        AND apate.start_datetime >= ( Trunc(SYSDATE, 'YY') ))

                             "Unpaid Leave Count Current Year",

        (SELECT SUM(apate.leave_duration)

        FROM   anc_absence_types_f_tl aapft,

        anc_absence_types_f aapf,

        per_all_people_f peo,

        per_all_assignments_f asg,

        anc_per_abs_type_entries apate

        WHERE  aapft.absence_type_id = aapf.absence_type_id

        AND apate.absence_type_id = aapf.absence_type_id

        AND aapft.name = 'Unpaid Leave'

        AND aapf.status = 'A'

        AND aapft.LANGUAGE = 'US'

        AND asg.assignment_id = apate.assignment_id

        AND asg.person_id = peo.person_id

        AND Trunc (SYSDATE) BETWEEN aapf.effective_start_date AND

        aapf.effective_end_date

        AND Trunc (SYSDATE) BETWEEN aapft.effective_start_date AND

        aapft.effective_end_date

        AND Trunc (SYSDATE) BETWEEN peo.effective_start_date AND

        peo.effective_end_date

        AND Trunc (SYSDATE) BETWEEN asg.effective_start_date AND

        asg.effective_end_date

        AND papf.person_id = peo.person_id

        AND apate.uom = 'C'

        AND apate.start_datetime >= (SELECT Trunc(start_date, 'YY')

        FROM   per_all_people_f

        WHERE  1 = 1

        AND asg.person_id = person_id

        AND

        Trunc(SYSDATE) BETWEEN Trunc(effective_start_date) AND Trunc(

        effective_end_date)))

                             "Unpaid Leave Availed (as of now)",

        (SELECT DISTINCT ( prv.result_value * 12 ) Air_Tickets

        FROM   pay_payroll_actions G,

        pay_payroll_rel_actions H,

        pay_run_results PR,

        pay_run_result_values PRV,

        pay_balance_feeds_f PBF,

        pay_balance_types_vl pbt,

        pay_payroll_assignments payass,

        pay_input_values_vl piv,

        pay_element_types_vl pet

        WHERE  G.payroll_action_id = H.payroll_action_id

        --AND G.ACTION_TYPE IN ('B','I','Q','R')

        AND G.action_status IN ( 'C', 'P' )

        AND pbt.balance_type_id = pbf.balance_type_id

        AND H.action_status = 'C'

        AND pbt.balance_name LIKE 'Gross Earnings'

        AND G.date_earned >= ( Trunc(SYSDATE, 'YY') )

        AND PBF.input_value_id = PRV.input_value_id

        AND PR.run_result_id = PRV.run_result_id

        AND PR.payroll_rel_action_id = H.payroll_rel_action_id

        AND PBF.balance_type_id = pbt.balance_type_id

        AND pbf.input_value_id = piv.input_value_id

        AND piv.element_type_id = pet.element_type_id

        AND pet.element_name = 'Air Ticket Payment'

        --and g.payroll_id = 300000018200440

        AND g.legislation_code = 'KW'

        AND g.assignment_set_id IS NOT NULL

        AND payass.hr_assignment_id IN (SELECT DISTINCT assignment_id

        FROM   per_all_assignments_m

        WHERE  person_id = paaf.person_id

        AND assignment_type = 'E'

        AND SYSDATE BETWEEN

          effective_start_date

          AND

          effective_end_date

        AND primary_flag = 'Y'

        AND effective_latest_change = 'Y'

        ))                             "Air Ticket - Total",

        cs.annual_salary

                        grosss_salary,

        bp.basic_amount

                        basic_salary,

         (nvl(pee.pre_exp,0)+  Trunc(SYSDATE - To_date(papf.start_date, 'YYYY-MM-DD'))) over_all_exp

        FROM   per_all_people_f papf,

               per_all_assignments_m paaf,

               per_persons pp,

               per_people_legislative_f pplf,

               per_religions pr,

               per_citizenships PC,

               per_legal_employers ple,

               hr_all_organization_units hou,

               per_location_details_f pldf,

               per_location_details_f_tl pldft,

               pay_rel_groups_dn payrel,

               pay_assigned_payrolls_dn papd,

               pay_all_payrolls_f pay,

               per_departments PD,

               per_grades_f_tl pgft,

               per_jobs_f_tl pjft,

               hr_all_positions_f_tl hapft,

               per_person_types_tl ppt,

               per_people_groups ppg,

               per_passports pass,

               basic_pay bp,

               air_elements ae,

               prev_emp_exp pee,

               per_periods_of_service pps,

               per_action_occurrences pao,

               per_action_reasons_b parb,

               per_action_reasons_tl part,

               per_actions_b pab,

               per_actions_tl pat,

               cmp_salary cs,

               (SELECT pasf.assignment_id,

                       papf.person_number line_manager_number,

                       ppnf.display_name  line_manager_name

                FROM   per_all_people_f papf,

                       per_person_names_f ppnf,

                       per_all_assignments_f paaf,

                       per_assignment_supervisors_f pasf

                WHERE  papf.person_id = pasf.manager_id

                       AND ppnf.person_id = pasf.manager_id

                       AND paaf.person_id = pasf.person_id

                       AND paaf.assignment_id = pasf.assignment_id

                       AND pasf.manager_type = 'LINE_MANAGER'

                       ------to get line manager

                       AND ppnf.name_type = 'GLOBAL' ---For english name

                       AND paaf.effective_latest_change = 'Y'

                       ------to get latest changed records

                       AND paaf.assignment_type = 'E' --  Employee only

                       AND Trunc(:p_effective_date) BETWEEN

                           Trunc (papf.effective_start_date)

                           AND Trunc

                           (

                           papf.effective_end_date)

                       AND Trunc (:p_effective_date) BETWEEN

                           Trunc (ppnf.effective_start_date)

                           AND

                           Trunc (

                           ppnf.effective_end_date)

                       AND Trunc (:p_effective_date) BETWEEN

                           Trunc (paaf.effective_start_date)

                           AND

                           Trunc (

                           paaf.effective_end_date)

                       AND Trunc (:p_effective_date) BETWEEN

                           Trunc (pasf.effective_start_date)

                           AND Trunc (

                           pasf.effective_end_date))

               manager_info,

               (SELECT 

 pprd.PERSON_ID,

  EBA.BANK_ACCOUNT_NAME,

  EBA.bank_account_num,

  EBA.MASKED_BANK_ACCOUNT_NUM,

  EBA.BANK_ACCOUNT_NUM_ELECTRONIC,

  EBA.IBAN,

   BANK.bank_name, 

   

   BANK.BANK_NUMBER

FROM PAY_PERSON_PAY_METHODS_F ppmf, 

PAY_PAY_RELATIONSHIPS_DN pprd,

CE_ALL_BANKS_V BANK, 

CE_ALL_BANK_BRANCHES_V BRANCH, 

IBY_EXT_BANK_ACCOUNTS EBA,

 fnd_lookups LKP

WHERE ppmf.PAYROLL_RELATIONSHIP_ID = pprd.PAYROLL_RELATIONSHIP_ID 

and EBA.BANK_ID = BANK.BANK_PARTY_ID

and ppmf.BANK_ACCOUNT_ID = EBA.EXT_BANK_ACCOUNT_ID(+)

     AND EBA.BRANCH_ID = BRANCH.BRANCH_PARTY_ID

  AND LKP.LOOKUP_CODE(+)         = EBA.BANK_ACCOUNT_TYPE

  AND LKP.LOOKUP_TYPE(+)         = 'IBY_BANKACCT_TYPES'

 --and  pprd.PERSON_ID in ('300000030302137','300000033468350')

AND sysdate  BETWEEN ppmf.EFFECTIVE_START_DATE AND ppmf.EFFECTIVE_END_DATE 

) Bank_Details,

               (SELECT Count(papf1.person_number) count_no,

                       papf_s.person_id

                FROM   per_all_people_f papf1,

                       per_person_names_f ppnf,

                       per_all_assignments_m paam,

                       per_assignment_supervisors_f pasf,

                       per_all_people_f papf_s,

                       per_person_names_f ppnf_s,

                       per_all_assignments_m paam_s

                WHERE  papf1.person_id = ppnf.person_id

                       AND papf1.person_id = paam.person_id

                       AND papf1.person_id = pasf.person_id

                       AND paam.assignment_id = pasf.assignment_id

                       AND papf1.person_id = pasf.person_id

                       AND pasf.manager_assignment_id = paam_s.assignment_id

                       AND pasf.manager_id = papf_s.person_id

                       AND papf_s.person_id = ppnf_s.person_id

                       AND ppnf.name_type = 'GLOBAL'

                       AND ppnf_s.name_type = 'GLOBAL'

                       --AND pasf.person_id = papf.person_id

                       AND Trunc(:p_effective_date) BETWEEN

                           ppnf.effective_start_date AND ppnf.effective_end_date

                       AND Trunc(:p_effective_date) BETWEEN

                           ppnf_s.effective_start_date AND

                           ppnf_s.effective_end_date

                       AND Trunc(:p_effective_date) BETWEEN

                           papf1.effective_start_date AND

                           papf1.effective_end_date

                       AND Trunc(:p_effective_date) BETWEEN

                           papf_s.effective_start_date AND

                           papf_s.effective_end_date

                       AND Trunc(:p_effective_date) BETWEEN

                           paam_s.effective_start_date AND

                           paam_s.effective_end_date

                       AND Trunc(:p_effective_date) BETWEEN

                           paam.effective_start_date AND paam.effective_end_date

                GROUP  BY papf_s.person_id)direct_reporters

        WHERE  papf.person_id = paaf.person_id

               AND paaf.assignment_type = 'E'

               AND paaf.primary_flag = 'Y'

               AND paaf.assignment_status_type = 'INACTIVE'

               AND pp.person_id(+) = papf.person_id

               AND pplf.person_id(+) = papf.person_id

               AND pr.person_id(+) = papf.person_id

               AND PC.person_id(+) = papf.person_id

               AND pc.citizenship_status(+) = 'A'

               AND manager_info.assignment_id(+) = paaf.assignment_id

               AND ple.organization_id(+) = paaf.legal_entity_id

               AND ple.status(+) = 'A'

               AND hou.organization_id(+) = paaf.business_unit_id

               AND paaf.location_id = pldf.location_id(+)

               AND pldft.LANGUAGE(+) = 'US'

               AND pldf.location_details_id = pldft.location_details_id(+)

               AND paaf.assignment_id = payrel.assignment_id(+)

               AND payrel.group_type(+) = 'A'

               AND papd.payroll_term_id = payrel.parent_rel_group_id

               AND papd.payroll_id = pay.payroll_id

               AND paaf.organization_id = pd.organization_id(+)

               AND pgft.grade_id = paaf.grade_id

               AND PGFt.LANGUAGE(+) = 'US'

               AND pjft.job_id(+) = paaf.job_id

               AND PJFt.LANGUAGE (+)= 'US'

               AND hapft.position_id(+) = paaf.position_id

               AND hapft.LANGUAGE(+) = 'US'

               AND ppt.person_type_id(+) = paaf.person_type_id

               AND ppt.LANGUAGE(+) = 'US'

               AND ppg.people_group_id(+) = paaf.people_group_id

               AND papf.person_id = pass.person_id(+)

               AND Bank_Details.person_id(+) =papf.person_id

               AND direct_reporters.person_id(+) = papf.person_id

               AND bp.person_id(+) = papf.person_id

               AND ae.person_id(+) = papf.person_id

               AND pee.person_id(+) = paaf.person_id

               AND pps.person_id = papf.person_id

               AND paaf.period_of_service_id = pps.period_of_service_id

               AND pps.actual_termination_date IS NOT NULL

               AND cs.person_id = papf.person_id

               --and papf.person_number = '0154'

               AND pao.action_occurrence_id = pps.action_occurrence_id

               AND pao.parent_entity_key_id = papf.person_id

               AND parb.action_reason_id = pao.action_reason_id

               AND part.action_reason_id = parb.action_reason_id

               AND pao.action_id = pab.action_id

               AND pat.action_id = pab.action_id

               AND part.LANGUAGE = 'US'

               AND pat.source_lang = 'US'

               AND Trunc(:p_effective_date) BETWEEN

                   Trunc(papf.effective_start_date)

                   AND

                   Trunc(papf.effective_end_date)

               AND Trunc(:p_effective_date) BETWEEN

                   Trunc(paaf.effective_start_date)

                   AND

                   Trunc(paaf.effective_end_date)

               AND Trunc(:p_effective_date) BETWEEN

                   Nvl(PPLF.effective_start_date, SYSDATE)AND

                   Nvl(

                   PPLF.effective_end_date, SYSDATE)

               AND Trunc(:p_effective_date) BETWEEN

                   Trunc(cs.date_from) AND Trunc(cs.date_to)

               AND ( Coalesce(NULL, :legal_emp) IS NULL

                      OR ple.organization_id IN ( :legal_emp ) )

               AND ( Coalesce(NULL, :assignment_status) IS NULL

                      OR paaf.assignment_status_type IN ( :assignment_status ) )

               AND ( Coalesce(NULL, :department_name) IS NULL

                      OR pd.name IN ( :department_name ) )

             --  AND papf.person_number = '0122'

       --where 1=1

       )

ORDER  BY 2