Skip to main content

port4


BsWifit ad HOC

SELECT
'1' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
'' AS LAST_NAME_EFFECTIVE_DATE,
'' AS NICKNAME,
'' AS SOCIAL_SECURITY_NUMBER,
'' AS DATE_OF_BIRTH,
'' AS GENDER,
'' AS Race_Ethnicity,
--BEN.DISABILITY_STATUS AS DISABLED,
--BEN.TOBACCO_TYPE_USAGE AS TOBACCO_USER,
'' AS BENEFIT_CLASS_CODE,
'' AS BENEFIT_CLASS_DATE,
'' AS COMPENSATION_DATE,
null AS SALARY,
null AS HOURLY_RATE,
null AS HOURS_PER_WEEK,
null AS BENEFITS_BASE_SALARY,
'' AS BONUS,
'' AS COMMISSION,
'' AS HIRE_DATE,
'' AS REHIRE_DATE,
'' AS Demographic_Field_1,
'' AS DEPT_CODE,
'' AS DEPARTMENT_EFF_DATE,
'' AS LOCATION_CODE,
'' AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
'' AS JOB_TITLE,
'' AS JOB_TITLE_EFF_DATE,
'' AS REGION_CODE,
'' AS REGION_eff_date,
'' AS BU_CODE,
'' as BU_EFF_DATE,
'' AS SUPERVISOR_CODE,
'3' AS PAY_FREQUENCY,
'' AS TIME_STATUS,
'' AS OVERTIME_STATUS,
'' AS HCE,
''  AS WORK_PHONE,
''  AS WORK_PHONE_EXTENSION,
'' AS WORK_FAX,
'' AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
'' AS ADD_EFF_DATE,
'' AS HOME_ADDRESS1,
'' AS HOME_ADDRESS2,
'' AS CITY,
'' AS STATE_,
'' AS ZIP,
'' AS COUNTY,
'' AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
'' AS HOME_EMAIL,
'' AS USERNAME,
'' as LOGIN_ACCESS,
'' AS LOA_START_DATE,
'' AS LOA_END_DATE,
'' AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
CASE WHEN PPS.ACTUAL_TERMINATION_DATE is not null then 'T' else '' end AS EMPLOYMENT_STATUS,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN AR.ACTION_REASON_CODE IN ('CONTRACT_EXPIRED','BB_DISSAT_W_TYPE_OF_WORK','DISSATISFIED_W/WORK_CONDITIONS','DISSATISFIED_WITH_LOCATION', 'DISSATISFIED_WITH_PAY','DISSATISFIED_WITH_SUPERVISION','END_TEMPORARY_EMPLOYMENT','HEALTH_REASONS','JOB_ABANDONMENT',   'LACK_CAREER_DEV/PROMO_OPPS','NEVER_STARTED_EMPLOYMENT','PARTIAL/TOTAL_DISABILITY','PERSONAL/FAMILY_REASONS',    'QUIT_WITHOUT_NOTICE','RESIGNATION','RETIRE','RETIREMENT','RETIRE_EARLY_VOLUNTARY','RETIRE_EARLY_INVOLUNTARY','RETURN_TO_SCHOOL','BB_REASON_TBD') THEN '1'
WHEN AR.ACTION_REASON_CODE = 'DEATH' THEN '4'
WHEN AR.ACTION_REASON_CODE IN ('ATTENDENCE','POSITION_ELIMINATION','POSITION_ELIMINATION_SIN','MISCONDUCT','MUTUAL_CONSENT','RELEASE_DURING_PROBATION','UNSATISFACTORY_PERFORMANCE','FAILURE_TO_COMPLY_WITH_POLICY') THEN '12'
ELSE '1' END AS TERMINATION_REASON,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'' AS AUTO_ENROLL,
(select DISTINCT XLE.registration_number from XLE_REGISTRATIONS XLE, per_legal_employers ple
WHERE ple.organization_id(+) =  ASS.legal_entity_id
AND XLE.SOURCE_ID(+) = ple.LEGAL_ENTITY_ID
AND  XLE.source_table  ='XLE_ENTITY_PROFILES'
AND TRUNC(SYSDATE) BETWEEN PLE.EFFECTIVE_START_DATE(+) AND PLE.EFFECTIVE_END_DATE(+)) AS FEIN,
 CASE
  WHEN (SELECT distinct (1) FROM  PER_ALL_ASSIGNMENTS_M  WHERE PERSON_ID=ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E','C')
                                                 AND (ACTION_CODE IN  ('GLB_TRANSFER') or REASON_CODE in ('REHIRE'))) = 1
  THEN
  TO_CHAR(( SELECT distinct MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M
                                WHERE PERSON_ID=ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E','C')
                                                AND (ACTION_CODE IN  ('GLB_TRANSFER') or REASON_CODE in ('REHIRE'))),'MM/DD/YYYY')
  else
  TO_CHAR(( SELECT distinct MIN(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M
                WHERE PERSON_ID = ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E','C')
                                        AND ACTION_CODE in ('HIRE','ADD_AN_EMPLOYEE','HIRE_ADD_WORK_RELATION')),'MM/DD/YYYY')
  end as FEIN_EFF_DATE

FROM

PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
-- HCM_LOOKUPS LUKUP,
PER_PERIODS_OF_SERVICE PPS,
PER_ACTION_OCCURRENCES AOCC,
PER_ACTION_REASONS_B AR

WHERE
PER.PERSON_ID=ASS.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
-- AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND AOCC.ACTION_OCCURRENCE_ID(+)=ASS.ACTION_OCCURRENCE_ID
AND AOCC.ACTION_REASON_ID=AR.ACTION_REASON_ID(+)
-- AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.ASSIGNMENT_STATUS_TYPE = 'INACTIVE'
AND ASS.LEGISLATION_CODE = 'US'

AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
  AND ASSIGNMENT_TYPE = 'E'
  AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
  AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND
(
(PPS.ACTUAL_TERMINATION_DATE BETWEEN TRUNC(SYSDATE - 7) AND TRUNC(SYSDATE))
OR
(
TRUNC(PPS.LAST_UPDATE_DATE) = TRUNC(SYSDATE) AND PPS.ACTUAL_TERMINATION_DATE <= TRUNC(SYSDATE) AND PPS.DATE_START < PPS.ACTUAL_TERMINATION_DATE)
)
AND ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION','RESIGNATION','TERMINATION','OTHER')
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN AR.START_DATE(+) AND AR.END_DATE(+)


union

SELECT
'2' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
'' AS LAST_NAME_EFFECTIVE_DATE,
'' AS NICKNAME,
'' AS SOCIAL_SECURITY_NUMBER,
'' AS DATE_OF_BIRTH,
'' AS GENDER,
'' AS Race_Ethnicity,
--BEN.DISABILITY_STATUS AS DISABLED,
--BEN.TOBACCO_TYPE_USAGE AS TOBACCO_USER,
'' AS BENEFIT_CLASS_CODE,
'' AS BENEFIT_CLASS_DATE,
'' AS COMPENSATION_DATE,
null AS SALARY,
null AS HOURLY_RATE,
null AS HOURS_PER_WEEK,
null AS BENEFITS_BASE_SALARY,
'' AS BONUS,
'' AS COMMISSION,
'' AS HIRE_DATE,
'' AS REHIRE_DATE,
'' AS Demographic_Field_1,
'' AS DEPT_CODE,
'' AS DEPARTMENT_EFF_DATE,
'' AS LOCATION_CODE,
'' AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
'' AS JOB_TITLE,
'' AS JOB_TITLE_EFF_DATE,
'' AS REGION_CODE,
'' as REGION_eff_date,
'' AS BU_CODE,
'' as BU_EFF_DATE,
'' AS SUPERVISOR_CODE,
'3' AS PAY_FREQUENCY,
'' AS TIME_STATUS,
'' AS OVERTIME_STATUS,
'' AS HCE,
''  AS WORK_PHONE,
''  AS WORK_PHONE_EXTENSION,
'' AS WORK_FAX,
'' AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
'' AS ADD_EFF_DATE,
'' AS HOME_ADDRESS1,
'' AS HOME_ADDRESS2,
'' AS CITY,
'' AS STATE_,
'' AS ZIP,
'' AS COUNTY,
'' AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
'' AS HOME_EMAIL,
'' AS USERNAME,
'' as LOGIN_ACCESS,
'' AS LOA_START_DATE,
'' AS LOA_END_DATE,
'' AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
'T' AS EMPLOYMENT_STATUS,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('BENEFIT_UPDATE') THEN ASS.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'' AS AUTO_ENROLL,
(select DISTINCT XLE.registration_number from XLE_REGISTRATIONS XLE, per_legal_employers ple
WHERE ple.organization_id(+) =  ASS.legal_entity_id
AND XLE.SOURCE_ID(+) = ple.LEGAL_ENTITY_ID
AND  XLE.source_table  ='XLE_ENTITY_PROFILES'
AND TRUNC(SYSDATE) BETWEEN PLE.EFFECTIVE_START_DATE(+) AND PLE.EFFECTIVE_END_DATE(+)) AS FEIN,
 CASE
  WHEN (SELECT distinct (1) FROM  PER_ALL_ASSIGNMENTS_M  WHERE PERSON_ID=ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E','C')
                                                 AND (ACTION_CODE IN  ('GLB_TRANSFER') or REASON_CODE in ('REHIRE'))) = 1
  THEN
  TO_CHAR(( SELECT distinct MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M
                                WHERE PERSON_ID=ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E','C')
                                                AND (ACTION_CODE IN  ('GLB_TRANSFER') or REASON_CODE in ('REHIRE'))),'MM/DD/YYYY')
  else
  TO_CHAR(( SELECT distinct MIN(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M
                WHERE PERSON_ID = ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E','C')
                                        AND ACTION_CODE in ('HIRE','ADD_AN_EMPLOYEE','HIRE_ADD_WORK_RELATION')),'MM/DD/YYYY')
  end as FEIN_EFF_DATE

FROM

PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
-- HCM_LOOKUPS LUKUP,
PER_PERIODS_OF_SERVICE PPS

WHERE
PER.PERSON_ID=ASS.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
-- AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
-- AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
---AND ASS.ASSIGNMENT_STATUS_TYPE = 'INACTIVE'
AND ASS.PERSON_ID = (SELECT PAA_NEW.PERSON_ID
                       FROM PER_ALL_ASSIGNMENTS_M PAA_NEW,
        PER_ALL_ASSIGNMENTS_M PAA_OLD
  WHERE PAA_NEW.PERSON_ID = PER.PERSON_ID
    AND PAA_NEW.PERSON_ID = PAA_OLD.PERSON_ID
AND PAA_NEW.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.LEGISLATION_CODE = 'US'
AND PAA_NEW.LEGISLATION_CODE = 'US'
AND PAA_OLD.ASS_ATTRIBUTE3 IN ('BB1','BB9', 'BB7', 'BSS', 'EXP' , 'NBE' )
AND PAA_NEW.ASS_ATTRIBUTE3 NOT IN ('BB1','BB9','BB7', 'BSS', 'EXP' , 'NBE' )
-- AND SUBSTR(PAA_NEW.EFFECTIVE_END_DATE,1,10) = '4712-12-31'
AND TRUNC(SYSDATE) BETWEEN PAA_NEW.EFFECTIVE_START_DATE AND PAA_NEW.EFFECTIVE_END_DATE
AND SUBSTR(PAA_OLD.EFFECTIVE_END_DATE,1,10) = SUBSTR(PAA_NEW.EFFECTIVE_START_DATE-1,1,10)
AND PAA_NEW.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
                                     FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = PAA_NEW.PERSON_ID
  AND ASSIGNMENT_TYPE = 'E'
  AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
  AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND PAA_NEW.ASSIGNMENT_SEQUENCE = PAA_OLD.ASSIGNMENT_SEQUENCE
AND PAA_NEW.EFFECTIVE_LATEST_CHANGE = 'Y'
AND PAA_OLD.EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
  AND ASSIGNMENT_TYPE = 'E'
  AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
  AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.EFFECTIVE_START_DATE BETWEEN TRUNC(SYSDATE - 7) AND TRUNC(SYSDATE)
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE


UNION

SELECT
'3' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
TO_CHAR(NAME.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS LAST_NAME_EFFECTIVE_DATE,
NAME.KNOWN_AS AS NICKNAME,
NID.NATIONAL_IDENTIFIER_NUMBER AS SOCIAL_SECURITY_NUMBER,
TO_CHAR(PP.DATE_OF_BIRTH,'MM/DD/YYYY') AS DATE_OF_BIRTH,
CASE WHEN PPL.SEX IS NOT NULL THEN PPL.SEX
WHEN PPL.SEX IS NULL THEN 'U' END AS GENDER,
case when ETHN.ETHNICITY = 'BB_7' then '1'
when ETHN.ETHNICITY = 'BB_4' then '2'
when ETHN.ETHNICITY = 'BB_6' then '3'
when ETHN.ETHNICITY = 'BB_3' then '4'
when ETHN.ETHNICITY = 'BB_1' then '5'
when ETHN.ETHNICITY = 'BB_5' then '6'
when ETHN.ETHNICITY = 'BB_NSPEC' then '7'
ELSE ''
 end AS Race_Ethnicity,

ASS.ASS_ATTRIBUTE3 AS BENEFIT_CLASS_CODE,
TO_CHAR(GREATEST(NVL((SELECT MAX(PAA_OLD.EFFECTIVE_END_DATE+1)
  FROM PER_ALL_ASSIGNMENTS_M PAA_OLD,
       PER_ALL_ASSIGNMENTS_M PAA_NEW
WHERE TRUNC(SYSDATE) BETWEEN PAA_NEW.EFFECTIVE_START_DATE AND PAA_NEW.EFFECTIVE_END_DATE
   AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = PAA_OLD.ASSIGNMENT_STATUS_TYPE
   AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = 'ACTIVE'
   AND PAA_NEW.PERSON_ID = PAA_OLD.PERSON_ID
   AND PAA_NEW.PERSON_ID = ASS.PERSON_ID
   AND PAA_NEW.ASS_ATTRIBUTE3 <> PAA_OLD.ASS_ATTRIBUTE3
   ----------AND PAA_OLD.LEGISLATION_CODE = 'US'
   AND PAA_NEW.LEGISLATION_CODE = 'US'
   AND PAA_NEW.ASSIGNMENT_TYPE = 'E'
   AND PAA_OLD.ASSIGNMENT_TYPE = 'E'
   AND PAA_NEW.ASSIGNMENT_TYPE = PAA_OLD.ASSIGNMENT_TYPE),to_date('01-01-1900','dd-mm-yyyy')),(SELECT MAX(effective_START_date)
                                                            FROM PER_ALL_ASSIGNMENTS_M
                                                                                                                                                                                                                                   WHERE PERSON_ID = ASS.PERSON_ID
                                                                                                                                                                                                                                     AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE') AND ASSIGNMENT_TYPE = 'E')),'MM/DD/YYYY') as BENEFIT_CLASS_DATE,
TO_CHAR(GREATEST(
 (SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))
,(SELECT max(DATE_FROM) FROM CMP_SALARY WHERE ASS.ASSIGNMENT_ID=ASSIGNMENT_ID AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO)
,(SELECT NVL(MAX(ASS.EFFECTIVE_START_DATE),'1900-01-01') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE = 'BENEFIT_UPDATE' AND REASON_CODE = 'ANNUAL_BASE_BENEFIT_UPDATE')),
'MM/DD/YYYY'
) AS COMPENSATION_DATE,
ROUND((SELECT
SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='S'
AND TRUNC(SYSDATE) BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS SALARY,
ROUND((SELECT
(SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)/2080

FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='H'
AND TRUNC(SYSDATE) BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS HOURLY_RATE,

ROUND(ASS.NORMAL_HOURS,2) AS HOURS_PER_WEEK,
ROUND(ASS.ASS_ATTRIBUTE_NUMBER1,2) AS BENEFITS_BASE_SALARY,
(SELECT
PE.SCREEN_ENTRY_VALUE
FROM
PAY_ELEMENT_ENTRIES_F EE,
PAY_ELEMENT_ENTRY_VALUES_F PE,
pay_input_values_f IV
WHERE
PER.PERSON_ID=EE.PERSON_ID
and EE.ELEMENT_ENTRY_ID=PE.ELEMENT_ENTRY_ID
AND PE.INPUT_VALUE_ID=IV.INPUT_VALUE_ID
AND (IV.BASE_NAME(+) ='ANNUAL_BONUS')
AND TRUNC(SYSDATE) BETWEEN PE.EFFECTIVE_START_DATE AND PE.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN IV.EFFECTIVE_START_DATE AND IV.EFFECTIVE_END_DATE) AS BONUS,
'' AS COMMISSION,
TO_CHAR((SELECT MIN(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('HIRE','ADD_AN_EMPLOYEE') AND ASSIGNMENT_TYPE IN ('E') ),'MM/DD/YYYY') AS HIRE_DATE,
to_char((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND (reason_CODE IN ('REHIRE','REHIRE_WKR') or (ACTION_CODE in ('REHIRE')))),'MM/DD/YYYY') AS REHIRE_DATE,
'' AS Demographic_Field_1,
CASE WHEN INSTR(HRC.NAME,'__',1) != 0  THEN SUBSTR(HRC.NAME, NVL(INSTR(HRC.NAME,'__',1),0)+2)

                                     WHEN INSTR(HRC.NAME,'__',1) = 0  THEN NULL END AS DEPT_CODE,


TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS DEPARTMENT_EFF_DATE,
LOC.internal_LOCATION_CODE AS LOCATION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
ASS.ASS_ATTRIBUTE4 AS JOB_TITLE,

TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'JOB_DTL_CHG'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS JOB_TITLE_EFF_DATE,
LOC.internal_LOCATION_CODE AS REGION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS REGION_eff_date,
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS BU_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') as BU_EFF_DATE,
-- CASE WHEN ASS.MANAGER_FLAG='Y' THEN '1'
-- WHEN ASS.MANAGER_FLAG='N' THEN '0'
-- ELSE ''
-- END AS SUPERVISOR_CODE,

'' AS SUPERVISOR_CODE,
'3' AS PAY_FREQUENCY,
-- LUKUP1.MEANING AS TIME_STATUS,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '1'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '5'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '6'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '2'
ELSE '' END AS TIME_STATUS,
CASE WHEN JOBF.INFORMATION1='NONEXEMPT' THEN '0'
WHEN JOBF.INFORMATION1 = 'EXEMPT' THEN '1'
ELSE ''
END AS OVERTIME_STATUS,
'' AS HCE,
(SELECT case when INSTR(PH.PHONE_NUMBER,'x') = 0 then REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','')  else REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTR(PH.PHONE_NUMBER,1,nvl((INSTR(PH.PHONE_NUMBER,'x',1,1)-2),15)),'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') end FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO )  AS WORK_PHONE,
(SELECT PH.EXTENSION FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO)  AS WORK_PHONE_EXTENSION,
(SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')','') FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='WF' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO)  AS WORK_FAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1' and rownum=1) AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
TO_CHAR(GREATEST((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE')),(SELECT max(AD1.EFFECTIVE_START_DATE) FROM PER_PERSON_ADDR_USAGES_F AD,PER_ADDRESSES_F AD1 WHERE ASS.PERSON_ID =AD.PERSON_ID AND AD.ADDRESS_ID(+)=AD1.ADDRESS_ID AND AD.ADDRESS_TYPE(+) = 'HOME' AND TRUNC(SYSDATE) BETWEEN AD1.effective_START_date AND ad1.effective_end_date)),'MM/DD/YYYY') AS ADD_EFF_DATE,
ADDR.ADDRESS_LINE_1 AS HOME_ADDRESS1,
ADDR.ADDRESS_LINE_2 AS HOME_ADDRESS2,
ADDR.TOWN_OR_CITY AS CITY,
ADDR.REGION_2 AS STATE_,
SUBSTR(ADDR.POSTAL_CODE,1,5) AS ZIP,
ADDR.REGION_3 AS COUNTY,
(SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='H1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO)  AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,

(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE in (SELECT (CASE WHEN E.EMAIL_TYPE='H1' THEN 'H1'
WHEN E.EMAIL_TYPE NOT IN 'H1' AND E.EMAIL_TYPE='BB_OTHR' THEN'BB_OTHR' END)
FROM PER_EMAIL_ADDRESSES E
WHERE E.PERSON_ID=PER.PERSON_ID)
and rownum=1) AS HOME_EMAIL,
-- (SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID and EMAIL_TYPE in ('H1','BB_OTHR') and rownum=1) AS HOME_EMAIL,
--PU.USERNAME AS USERNAME,
'' AS USERNAME,
'' as LOGIN_ACCESS,


-- Modified condition for any other updates other than LOA
CASE
 WHEN ( (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE')  AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 --added condition for last_update_date
 WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 -- Modified last_update_date condition in sqls below
 WHEN ( (ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) OR TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE)) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( (ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) OR TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE))  AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END    AS LOA_START_DATE,

CASE
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
 -- change to trunc(last_update_date)
 WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
 -- added condition assgn effective date > max loa date
 WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < ASS.EFFECTIVE_START_DATE THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- WHEN ( MAX_LOA.MAX_LOA_DATE is not null and PPS.ACTUAL_TERMINATION_DATE = TRUNC(SYSDATE)) THEN TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY')
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE)  AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')

ELSE NULL
END   AS LOA_END_DATE,

-- Modified condition for any other updates other than LOA
CASE WHEN (CASE
 WHEN ( (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE')  AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL

WHEN ( (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 --added condition for last_update_date
 WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 -- Modified last_update_date condition in sqls below
 WHEN ( (ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) OR TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE)) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( (ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) OR TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE))  AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END ) IS NOT NULL THEN (select SUBSTR(ACT_REASON.ACTION_REASON_CODE,1,instr(ACT_REASON.ACTION_REASON_CODE,'_')-1) from PER_ACTION_REASONS_B ACT_REASON, PER_ACTION_OCCURRENCES  ACT_OCC, PER_ALL_ASSIGNMENTS_M PAA where ACT_OCC.ACTION_REASON_ID=ACT_REASON.ACTION_REASON_ID AND PAA.ACTION_OCCURRENCE_ID = ACT_OCC.ACTION_OCCURRENCE_ID AND PAA.PERSON_ID = PER.PERSON_ID AND PAA.ASSIGNMENT_TYPE IN ('E','C') AND PAA.ACTION_CODE='LEAVE_OF_ABSENCE' AND TO_CHAR(PAA.EFFECTIVE_START_DATE,'MM/DD/YYYY') = (CASE
 WHEN ( (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE')  AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL

WHEN ( (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 --added condition for last_update_date
 WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 -- Modified last_update_date condition in sqls below
 WHEN ( (ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) OR TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE)) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( (ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) OR TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE))  AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END) ) END AS LOA_STATUS,

'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
CASE WHEN ASS.ACTION_CODE='VOLUNTARY_TERMINATION' AND ASS.REASON_CODE='RETIRE' THEN 'R'
WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') AND ASS.REASON_CODE NOT IN ('RETIRE') THEN 'T'
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN 'A'
ELSE '' END AS EMPLOYMENT_STATUS,
-- greatest((select TO_CHAR(min(ORIGINAL_DATE_OF_HIRE),'MM/DD/YYYY') FROM per_periods_of_service where person_id=per.person_id), (SELECT TO_CHAR(MAX(effective_START_date),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ((reason_CODE IN ('REHIRE','REHIRE_WKR')) or (ACTION_CODE in ('REHIRE'))))) AS EMPLOYMENT_EFF_DT,
TO_CHAR(PPS.DATE_start,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') THEN ASS.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
'' AS TERMINATION_DATE,
'' AS LAST_WORKED_DAY,
'1' AS AUTO_ENROLL,
(select DISTINCT XLE.registration_number from XLE_REGISTRATIONS XLE, per_legal_employers ple
WHERE ple.organization_id(+) =  ASS.legal_entity_id
AND XLE.SOURCE_ID(+) = ple.LEGAL_ENTITY_ID
AND  XLE.source_table  ='XLE_ENTITY_PROFILES'
AND TRUNC(SYSDATE) BETWEEN PLE.EFFECTIVE_START_DATE(+) AND PLE.EFFECTIVE_END_DATE(+)) AS FEIN,
 CASE
  WHEN (SELECT distinct (1) FROM  PER_ALL_ASSIGNMENTS_M  WHERE PERSON_ID=ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E','C')
                                                 AND (ACTION_CODE IN  ('GLB_TRANSFER') or REASON_CODE in ('REHIRE'))) = 1
  THEN
  TO_CHAR(( SELECT distinct MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M
                                WHERE PERSON_ID=ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E','C')
                                                AND (ACTION_CODE IN  ('GLB_TRANSFER') or REASON_CODE in ('REHIRE'))),'MM/DD/YYYY')
  else
  TO_CHAR(( SELECT distinct MIN(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M
                WHERE PERSON_ID = ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E','C')
                                        AND ACTION_CODE in ('HIRE','ADD_AN_EMPLOYEE','HIRE_ADD_WORK_RELATION')),'MM/DD/YYYY')
  end as FEIN_EFF_DATE

FROM

PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_ETHNICITIES ETHN,
PER_NATIONAL_IDENTIFIERS NID,
PER_PERSONS PP,
PER_EMAIL_ADDRESSES EML,

PER_PERIODS_OF_SERVICE PPS,
HR_LOCATIONS LOC,
-- HCM_LOOKUPS LUKUP,
-- HCM_LOOKUPS LUKUP1,
PER_JOB_LEG_F JOBF,
PER_PERSON_ADDR_USAGES_F ADDRE,
PER_ADDRESSES_F ADDR,
PER_USERS PU,

HR_ALL_ORGANIZATION_UNITS_F_VL HRC,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_LOA_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'LEAVE_OF_ABSENCE' AND EFFECTIVE_START_DATE <  TRUNC(SYSDATE) GROUP BY PERSON_ID) MAX_LOA,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_RFL_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'RETURN_FROM_LEAVE' AND EFFECTIVE_START_DATE <  TRUNC(SYSDATE) GROUP BY PERSON_ID) MAX_RFL


WHERE
PER.PERSON_ID=MAX_LOA.PERSON_ID(+)
AND per.person_id=ASS.PERSON_ID
AND (EML.PERSON_ID=PER.PERSON_ID AND EML.EMAIL_TYPE='W1')
AND PER.PERSON_ID=MAX_RFL.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND ASS.PERSON_ID = ETHN.PERSON_ID(+)
AND ASS.PERSON_ID = PPL.PERSON_ID(+)
AND PPL.LEGISLATION_CODE(+)='US'
AND ASS.PERSON_ID = NID.PERSON_ID(+)
AND NATIONAL_IDENTIFIER_TYPE(+) = 'SSN'
AND ASS.PERSON_ID = PP.PERSON_ID(+)

AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=HRC.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)

AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
-- AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
-- AND ASS.EMPLOYMENT_CATEGORY=LUKUP1.LOOKUP_CODE(+)
AND ASS.JOB_ID=JOBF.JOB_ID(+)
-- AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
-- AND LUKUP1.LOOKUP_TYPE(+) = 'EMP_CAT'
AND JOBF.INFORMATION_CATEGORY(+)='HRX_US_JOBS'
AND ADDRE.PERSON_ID(+)=ASS.PERSON_ID
AND ADDR.ADDRESS_ID(+)=ADDRE.ADDRESS_ID
AND ASS.PERSON_ID=PU.PERSON_ID(+)
AND ASS.ASS_ATTRIBUTE3 IN ('BB1','BB9','BB7', 'BSS', 'EXP' , 'NBE' )
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.LEGISLATION_CODE='US'
AND ADDRE.ADDRESS_TYPE(+)='HOME'
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND ADDR.LAST_UPDATE_DATE IN (SELECT MAX(A.LAST_UPDATE_DATE) FROM PER_ADDRESSES_F A, PER_PERSON_ADDR_USAGES_F B  WHERE A.ADDRESS_ID(+)=B.ADDRESS_ID AND B.PERSON_ID(+)=ASS.PERSON_ID AND B.ADDRESS_TYPE(+)='HOME' AND TRUNC(SYSDATE) BETWEEN A.EFFECTIVE_START_DATE(+) AND A.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN B.EFFECTIVE_START_DATE(+) AND B.EFFECTIVE_END_DATE(+))
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HRC.EFFECTIVE_START_DATE(+) AND HRC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOBF.EFFECTIVE_START_DATE(+) AND JOBF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDRE.EFFECTIVE_START_DATE(+) AND ADDRE.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PU.START_DATE(+) AND PU.END_DATE(+)
AND PER.PERSON_NUMBER NOT IN (SELECT CI.VALUE
  FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID = T.USER_TABLE_ID
   AND R.USER_TABLE_ID = T.USER_TABLE_ID
   AND SYSDATE BETWEEN R.EFFECTIVE_START_DATE AND R.EFFECTIVE_END_DATE
   AND T.USER_TABLE_NAME = 'BB_BSWIFT_INTF_BACK_DATED_LOA'
   AND TRUNC(CI.CREATION_DATE) = TRUNC(SYSDATE)
)


UNION

SELECT
'4' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
TO_CHAR(NAME.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS LAST_NAME_EFFECTIVE_DATE,
NAME.KNOWN_AS AS NICKNAME,
NID.NATIONAL_IDENTIFIER_NUMBER AS SOCIAL_SECURITY_NUMBER,
TO_CHAR(PP.DATE_OF_BIRTH,'MM/DD/YYYY') AS DATE_OF_BIRTH,
CASE WHEN PPL.SEX IS NOT NULL THEN PPL.SEX
WHEN PPL.SEX IS NULL THEN 'U' END AS GENDER,
case when ETHN.ETHNICITY = 'BB_7' then '1'
when ETHN.ETHNICITY = 'BB_4' then '2'
when ETHN.ETHNICITY = 'BB_6' then '3'
when ETHN.ETHNICITY = 'BB_3' then '4'
when ETHN.ETHNICITY = 'BB_1' then '5'
when ETHN.ETHNICITY = 'BB_5' then '6'
when ETHN.ETHNICITY = 'BB_NSPEC' then '7'
ELSE ''
 end AS Race_Ethnicity,

ASS.ASS_ATTRIBUTE3 AS BENEFIT_CLASS_CODE,
TO_CHAR(GREATEST(NVL((SELECT MAX(PAA_OLD.EFFECTIVE_END_DATE+1)
  FROM PER_ALL_ASSIGNMENTS_M PAA_OLD,
       PER_ALL_ASSIGNMENTS_M PAA_NEW
WHERE TRUNC(SYSDATE) BETWEEN PAA_NEW.EFFECTIVE_START_DATE AND PAA_NEW.EFFECTIVE_END_DATE
   AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = PAA_OLD.ASSIGNMENT_STATUS_TYPE
   AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = 'ACTIVE'
   AND PAA_NEW.PERSON_ID = PAA_OLD.PERSON_ID
   AND PAA_NEW.PERSON_ID = ASS.PERSON_ID
   AND PAA_NEW.ASS_ATTRIBUTE3 <> PAA_OLD.ASS_ATTRIBUTE3
   ------AND PAA_OLD.LEGISLATION_CODE = 'US'
   AND PAA_NEW.LEGISLATION_CODE = 'US'
   AND PAA_NEW.ASSIGNMENT_TYPE = 'E'
   AND PAA_OLD.ASSIGNMENT_TYPE = 'E'
   AND PAA_NEW.ASSIGNMENT_TYPE = PAA_OLD.ASSIGNMENT_TYPE),to_date('01-01-1900','dd-mm-yyyy')),(SELECT MAX(effective_START_date)
                                                            FROM PER_ALL_ASSIGNMENTS_M
                                                                                                                                                                                                                                   WHERE PERSON_ID = ASS.PERSON_ID
                                                                                                                                                                                                                                     AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE') AND ASSIGNMENT_TYPE = 'E')),'MM/DD/YYYY') as BENEFIT_CLASS_DATE,
TO_CHAR(GREATEST(
 (SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))
,(SELECT max(DATE_FROM) FROM CMP_SALARY WHERE ASS.ASSIGNMENT_ID=ASSIGNMENT_ID AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO)
,(SELECT NVL(MAX(ASS.EFFECTIVE_START_DATE),'1900-01-01') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE = 'BENEFIT_UPDATE' AND REASON_CODE = 'ANNUAL_BASE_BENEFIT_UPDATE')),
'MM/DD/YYYY'
) AS COMPENSATION_DATE,
ROUND((SELECT
SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='S'
AND TRUNC(SYSDATE) BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS SALARY,
ROUND((SELECT
(SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)/2080

FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='H'
AND TRUNC(SYSDATE) BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS HOURLY_RATE,

ROUND(ASS.NORMAL_HOURS,2) AS HOURS_PER_WEEK,
ROUND(ASS.ASS_ATTRIBUTE_NUMBER1,2) AS BENEFITS_BASE_SALARY,
(SELECT
PE.SCREEN_ENTRY_VALUE
FROM
PAY_ELEMENT_ENTRIES_F EE,
PAY_ELEMENT_ENTRY_VALUES_F PE,
pay_input_values_f IV
WHERE
PER.PERSON_ID=EE.PERSON_ID
and EE.ELEMENT_ENTRY_ID=PE.ELEMENT_ENTRY_ID
AND PE.INPUT_VALUE_ID=IV.INPUT_VALUE_ID
AND (IV.BASE_NAME(+) ='ANNUAL_BONUS')
AND TRUNC(SYSDATE) BETWEEN PE.EFFECTIVE_START_DATE AND PE.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN IV.EFFECTIVE_START_DATE AND IV.EFFECTIVE_END_DATE) AS BONUS,
'' AS COMMISSION,
TO_CHAR((SELECT MIN(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('HIRE','ADD_AN_EMPLOYEE') AND ASSIGNMENT_TYPE IN ('E') ),'MM/DD/YYYY') AS HIRE_DATE,
TO_CHAR((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND (reason_CODE IN ('REHIRE','REHIRE_WKR') or (ACTION_CODE in ('REHIRE')))),'MM/DD/YYYY') AS REHIRE_DATE,
'' AS Demographic_Field_1,
CASE WHEN INSTR(HRC.NAME,'__',1) != 0  THEN SUBSTR(HRC.NAME, NVL(INSTR(HRC.NAME,'__',1),0)+2)

                                     WHEN INSTR(HRC.NAME,'__',1) = 0  THEN NULL END AS DEPT_CODE,



TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS DEPARTMENT_EFF_DATE,
LOC.internal_LOCATION_CODE AS LOCATION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
ASS.ASS_ATTRIBUTE4 AS JOB_TITLE,

TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'JOB_DTL_CHG'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS JOB_TITLE_EFF_DATE,
LOC.internal_LOCATION_CODE AS REGION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS REGION_eff_date,
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS BU_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') as BU_EFF_DATE,
-- CASE WHEN ASS.MANAGER_FLAG='Y' THEN '1'
-- WHEN ASS.MANAGER_FLAG='N' THEN '0'
-- ELSE ''
-- END AS SUPERVISOR_CODE,

'' AS SUPERVISOR_CODE,
'3' AS PAY_FREQUENCY,
-- LUKUP1.MEANING AS TIME_STATUS,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '1'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '5'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '6'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '2'
ELSE '' END AS TIME_STATUS,
CASE WHEN JOBF.INFORMATION1='NONEXEMPT' THEN '0'
WHEN JOBF.INFORMATION1 = 'EXEMPT' THEN '1'
ELSE ''
END AS OVERTIME_STATUS,
'' AS HCE,
(SELECT case when INSTR(PH.PHONE_NUMBER,'x') = 0 then REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','')  else REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTR(PH.PHONE_NUMBER,1,nvl((INSTR(PH.PHONE_NUMBER,'x',1,1)-2),15)),'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') end FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO )  AS WORK_PHONE,
(SELECT PH.EXTENSION FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO)  AS WORK_PHONE_EXTENSION,
(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='WF' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO)  AS WORK_FAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1' and rownum=1) AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
TO_CHAR(GREATEST((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE')),(SELECT max(AD1.EFFECTIVE_START_DATE) FROM PER_PERSON_ADDR_USAGES_F AD,PER_ADDRESSES_F AD1 WHERE ASS.PERSON_ID =AD.PERSON_ID AND AD.ADDRESS_ID(+)=AD1.ADDRESS_ID AND AD.ADDRESS_TYPE(+) = 'HOME' AND TRUNC(SYSDATE) BETWEEN AD1.effective_START_date AND ad1.effective_end_date)),'MM/DD/YYYY') AS ADD_EFF_DATE,
ADDR.ADDRESS_LINE_1 AS HOME_ADDRESS1,
ADDR.ADDRESS_LINE_2 AS HOME_ADDRESS2,
ADDR.TOWN_OR_CITY AS CITY,
ADDR.REGION_2 AS STATE_,
SUBSTR(ADDR.POSTAL_CODE,1,5) AS ZIP,
ADDR.REGION_3 AS COUNTY,
(SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='H1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO)  AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,

(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE in (SELECT (CASE WHEN E.EMAIL_TYPE='H1' THEN 'H1'
WHEN E.EMAIL_TYPE NOT IN 'H1' AND E.EMAIL_TYPE='BB_OTHR' THEN'BB_OTHR' END) FROM PER_EMAIL_ADDRESSES E WHERE E.PERSON_ID=PER.PERSON_ID) and rownum=1) AS HOME_EMAIL,


-- CASE WHEN (SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE in ('H1','BB_OTHR') and rownum=1) AS HOME_EMAIL,
--PU.USERNAME AS USERNAME,
'' AS USERNAME,
'' as LOGIN_ACCESS,


-- Modified condition for any other updates other than LOA
CASE
 WHEN ( (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE')  AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 --added condition for last_update_date
 WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 -- Modified last_update_date condition in sqls below
 WHEN ( (ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) OR TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE)) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( (ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) OR TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE))  AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END    AS LOA_START_DATE,

CASE
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
 -- change to trunc(last_update_date)
 WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
 -- added condition assgn effective date > max loa date
 WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < ASS.EFFECTIVE_START_DATE THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- WHEN ( MAX_LOA.MAX_LOA_DATE is not null and PPS.ACTUAL_TERMINATION_DATE = TRUNC(SYSDATE)) THEN TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY')
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE)  AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')

ELSE NULL
END   AS LOA_END_DATE,

-- Modified condition for any other updates other than LOA
CASE WHEN (CASE
 WHEN ( (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE')  AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL

WHEN ( (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 --added condition for last_update_date
 WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 -- Modified last_update_date condition in sqls below
 WHEN ( (ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) OR TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE)) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( (ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) OR TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE))  AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END ) IS NOT NULL THEN (select SUBSTR(ACT_REASON.ACTION_REASON_CODE,1,instr(ACT_REASON.ACTION_REASON_CODE,'_')-1) from PER_ACTION_REASONS_B ACT_REASON, PER_ACTION_OCCURRENCES  ACT_OCC, PER_ALL_ASSIGNMENTS_M PAA where ACT_OCC.ACTION_REASON_ID=ACT_REASON.ACTION_REASON_ID AND PAA.ACTION_OCCURRENCE_ID = ACT_OCC.ACTION_OCCURRENCE_ID AND PAA.PERSON_ID = PER.PERSON_ID AND PAA.ASSIGNMENT_TYPE IN ('E','C') AND PAA.ACTION_CODE='LEAVE_OF_ABSENCE' AND TO_CHAR(PAA.EFFECTIVE_START_DATE,'MM/DD/YYYY') = (CASE
 WHEN ( (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE')  AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL

WHEN ( (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 --added condition for last_update_date
 WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 -- Modified last_update_date condition in sqls below
 WHEN ( (ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) OR TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE)) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( (ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) OR TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE))  AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END) ) END AS LOA_STATUS,

'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
CASE WHEN ASS.ACTION_CODE='VOLUNTARY_TERMINATION' AND ASS.REASON_CODE='RETIRE' THEN 'R'
WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') AND ASS.REASON_CODE NOT IN ('RETIRE') THEN 'T'
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN 'A'
ELSE '' END AS EMPLOYMENT_STATUS,
-- greatest((select TO_CHAR(min(ORIGINAL_DATE_OF_HIRE),'MM/DD/YYYY') FROM per_periods_of_service where person_id=per.person_id), (SELECT TO_CHAR(MAX(effective_START_date),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ((reason_CODE IN ('REHIRE','REHIRE_WKR')) or (ACTION_CODE in ('REHIRE'))))) AS EMPLOYMENT_EFF_DT,
TO_CHAR(PPS.DATE_start,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') THEN ASS.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
'' AS TERMINATION_DATE,
'' AS LAST_WORKED_DAY,
'1' AS AUTO_ENROLL,
(select DISTINCT XLE.registration_number from XLE_REGISTRATIONS XLE, per_legal_employers ple
WHERE ple.organization_id(+) =  ASS.legal_entity_id
AND XLE.SOURCE_ID(+) = ple.LEGAL_ENTITY_ID
AND  XLE.source_table  ='XLE_ENTITY_PROFILES'
AND TRUNC(SYSDATE) BETWEEN PLE.EFFECTIVE_START_DATE(+) AND PLE.EFFECTIVE_END_DATE(+)) AS FEIN,
 CASE
  WHEN (SELECT distinct (1) FROM  PER_ALL_ASSIGNMENTS_M  WHERE PERSON_ID=ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E','C')
                                                 AND (ACTION_CODE IN  ('GLB_TRANSFER') or REASON_CODE in ('REHIRE'))) = 1
  THEN
  TO_CHAR(( SELECT distinct MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M
                                WHERE PERSON_ID=ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E','C')
                                                AND (ACTION_CODE IN  ('GLB_TRANSFER') or REASON_CODE in ('REHIRE'))),'MM/DD/YYYY')
  else
  TO_CHAR(( SELECT distinct MIN(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M
                WHERE PERSON_ID = ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E','C')
                                        AND ACTION_CODE in ('HIRE','ADD_AN_EMPLOYEE','HIRE_ADD_WORK_RELATION')),'MM/DD/YYYY')
  end as FEIN_EFF_DATE

FROM

PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_ETHNICITIES ETHN,
PER_NATIONAL_IDENTIFIERS NID,
PER_PERSONS PP,
PER_EMAIL_ADDRESSES EML,


PER_PERIODS_OF_SERVICE PPS,
HR_LOCATIONS LOC,
-- HCM_LOOKUPS LUKUP,
-- HCM_LOOKUPS LUKUP1,
PER_JOB_LEG_F JOBF,
PER_PERSON_ADDR_USAGES_F ADDRE,
PER_ADDRESSES_F ADDR,
PER_USERS PU,

HR_ALL_ORGANIZATION_UNITS_F_VL HRC,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_LOA_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'LEAVE_OF_ABSENCE' AND EFFECTIVE_START_DATE <=  TRUNC(SYSDATE) GROUP BY PERSON_ID) MAX_LOA,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_RFL_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'RETURN_FROM_LEAVE' AND EFFECTIVE_START_DATE <=  TRUNC(SYSDATE) GROUP BY PERSON_ID) MAX_RFL


WHERE
PER.PERSON_ID=MAX_LOA.PERSON_ID(+)
AND per.person_id=ASS.PERSON_ID
AND (EML.PERSON_ID=PER.PERSON_ID AND EML.EMAIL_TYPE='W1')
AND PER.PERSON_ID=MAX_RFL.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND ASS.PERSON_ID = ETHN.PERSON_ID(+)
AND ASS.PERSON_ID = PPL.PERSON_ID(+)
AND PPL.LEGISLATION_CODE(+)='US'
AND ASS.PERSON_ID = NID.PERSON_ID(+)
AND NATIONAL_IDENTIFIER_TYPE(+) = 'SSN'
AND ASS.PERSON_ID = PP.PERSON_ID(+)

AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=HRC.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)

AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
-- AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
-- AND ASS.EMPLOYMENT_CATEGORY=LUKUP1.LOOKUP_CODE(+)
AND ASS.JOB_ID=JOBF.JOB_ID(+)
-- AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
-- AND LUKUP1.LOOKUP_TYPE(+) = 'EMP_CAT'
AND JOBF.INFORMATION_CATEGORY(+)='HRX_US_JOBS'
AND ADDRE.PERSON_ID(+)=ASS.PERSON_ID
AND ADDR.ADDRESS_ID(+)=ADDRE.ADDRESS_ID
AND ASS.PERSON_ID=PU.PERSON_ID(+)
AND ASS.ASS_ATTRIBUTE3 IN ('BB1','BB9','BB7', 'BSS', 'EXP' , 'NBE' )
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.LEGISLATION_CODE='US'
AND ADDRE.ADDRESS_TYPE(+)='HOME'
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND ADDR.LAST_UPDATE_DATE IN (SELECT MAX(A.LAST_UPDATE_DATE) FROM PER_ADDRESSES_F A, PER_PERSON_ADDR_USAGES_F B  WHERE A.ADDRESS_ID(+)=B.ADDRESS_ID AND B.PERSON_ID(+)=ASS.PERSON_ID AND B.ADDRESS_TYPE(+)='HOME' AND TRUNC(SYSDATE) BETWEEN A.EFFECTIVE_START_DATE(+) AND A.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN B.EFFECTIVE_START_DATE(+) AND B.EFFECTIVE_END_DATE(+))
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HRC.EFFECTIVE_START_DATE(+) AND HRC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOBF.EFFECTIVE_START_DATE(+) AND JOBF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDRE.EFFECTIVE_START_DATE(+) AND ADDRE.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PU.START_DATE(+) AND PU.END_DATE(+)
AND PER.PERSON_NUMBER IN (SELECT CI.VALUE
  FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID = T.USER_TABLE_ID
   AND R.USER_TABLE_ID = T.USER_TABLE_ID
   AND SYSDATE BETWEEN R.EFFECTIVE_START_DATE AND R.EFFECTIVE_END_DATE
   AND T.USER_TABLE_NAME = 'BB_BSWIFT_INTF_BACK_DATED_LOA'
   AND TRUNC(CI.CREATION_DATE) = TRUNC(SYSDATE)  
)
AND EXISTS (SELECT 1 FROM PER_ALL_ASSIGNMENTS_M ASS_LOA WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS_LOA.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) AND ASS_LOA.EFFECTIVE_START_DATE > NVL(MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')))



order by orderby,EMPLOYEE_ID


***********************************************************************************************************************************************

SELECT
'1' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
NAME.MIDDLE_NAMES AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
'' AS LAST_NAME_EFFECTIVE_DATE,
'' AS NICKNAME,
'' AS SOCIAL_SECURITY_NUMBER,
'' AS DATE_OF_BIRTH,
'' AS GENDER,
'' AS Race_Ethnicity,
--BEN.DISABILITY_STATUS AS DISABLED,
--BEN.TOBACCO_TYPE_USAGE AS TOBACCO_USER,
'' AS BENEFIT_CLASS_CODE,
'' AS BENEFIT_CLASS_DATE,
'' AS COMPENSATION_DATE,
'' AS SALARY,
'' AS HOURLY_RATE,
'' AS HOURS_PER_WEEK,
'' AS BENEFITS_BASE_SALARY,
'' AS BONUS,
'' AS COMMISSION,
'' AS HIRE_DATE,
'' AS REHIRE_DATE,
'' AS Demographic_Field_1,
'' AS DEPT_CODE,
'' AS DEPARTMENT_EFF_DATE,
'' AS LOCATION_CODE,
'' AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
'' AS JOB_TITLE,
'' AS JOB_TITLE_EFF_DATE,
'' AS REGION_CODE,
'' as REGION_eff_date,
'' AS BU_CODE,
'' AS SUPERVISOR_CODE,
LUKUP.MEANING AS PAY_FREQUENCY,
'' AS TIME_STATUS,
'' AS OVERTIME_STATUS,
'' AS HCE,
''  AS WORK_PHONE,
''  AS WORK_PHONE_EXTENSION,
'' AS WORK_FAX,
'' AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
'' AS ADD_EFF_DATE,
'' AS HOME_ADDRESS1,
'' AS HOME_ADDRESS2,
'' AS CITY,
'' AS STATE_,
'' AS ZIP,
'' AS COUNTY,
'' AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
'' AS HOME_EMAIL,
'' AS USERNAME,
'' as LOGIN_ACCESS,
'' AS LOA_START_DATE,
'' AS LOA_END_DATE,
'' AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
'' AS EMPLOYMENT_STATUS,
'' AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('TRANSFER','GLB_TRANSFER') THEN ASS.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
'' AS LAST_WORKED_DAY,
'' AS AUTO_ENROLL

FROM

PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
HCM_LOOKUPS LUKUP,
PER_PERIODS_OF_SERVICE PPS

WHERE
PER.PERSON_ID=ASS.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
---AND ASS.ASSIGNMENT_STATUS_TYPE = 'INACTIVE'
AND ASS.PERSON_ID = (SELECT PAA_NEW.PERSON_ID
                       FROM PER_ALL_ASSIGNMENTS_M PAA_NEW,
        PER_ALL_ASSIGNMENTS_M PAA_OLD
  WHERE PAA_NEW.PERSON_ID = PER.PERSON_ID
    AND PAA_NEW.PERSON_ID = PAA_OLD.PERSON_ID
AND PAA_NEW.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.LEGISLATION_CODE = 'US'
AND PAA_NEW.LEGISLATION_CODE <> 'US'
AND SUBSTR(PAA_NEW.EFFECTIVE_END_DATE,1,10) = '4712-12-31'
AND SUBSTR(PAA_OLD.EFFECTIVE_END_DATE,1,10) = SUBSTR(PAA_NEW.EFFECTIVE_START_DATE-1,1,10)
AND PAA_NEW.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
                                     FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = PAA_NEW.PERSON_ID
  AND ASSIGNMENT_TYPE = 'E'
  AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
  AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND PAA_OLD.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE-1)
                                     FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = PAA_OLD.PERSON_ID
  AND ASSIGNMENT_TYPE = 'E'
  AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
  AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND PAA_NEW.EFFECTIVE_LATEST_CHANGE = 'Y'
AND PAA_OLD.EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
  AND ASSIGNMENT_TYPE = 'E'
  AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
  AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE)
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE


UNION


SELECT
'2' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
NAME.MIDDLE_NAMES AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
'' AS LAST_NAME_EFFECTIVE_DATE,
'' AS NICKNAME,
'' AS SOCIAL_SECURITY_NUMBER,
'' AS DATE_OF_BIRTH,
'' AS GENDER,
'' AS Race_Ethnicity,
--BEN.DISABILITY_STATUS AS DISABLED,
--BEN.TOBACCO_TYPE_USAGE AS TOBACCO_USER,
'' AS BENEFIT_CLASS_CODE,
'' AS BENEFIT_CLASS_DATE,
'' AS COMPENSATION_DATE,
'' AS SALARY,
'' AS HOURLY_RATE,
'' AS HOURS_PER_WEEK,
'' AS BENEFITS_BASE_SALARY,
'' AS BONUS,
'' AS COMMISSION,
'' AS HIRE_DATE,
'' AS REHIRE_DATE,
'' AS Demographic_Field_1,
'' AS DEPT_CODE,
'' AS DEPARTMENT_EFF_DATE,
'' AS LOCATION_CODE,
'' AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
'' AS JOB_TITLE,
'' AS JOB_TITLE_EFF_DATE,
'' AS REGION_CODE,
'' AS REGION_eff_date,
'' AS BU_CODE,
'' AS SUPERVISOR_CODE,
LUKUP.MEANING AS PAY_FREQUENCY,
'' AS TIME_STATUS,
'' AS OVERTIME_STATUS,
'' AS HCE,
''  AS WORK_PHONE,
''  AS WORK_PHONE_EXTENSION,
'' AS WORK_FAX,
'' AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
'' AS ADD_EFF_DATE,
'' AS HOME_ADDRESS1,
'' AS HOME_ADDRESS2,
'' AS CITY,
'' AS STATE_,
'' AS ZIP,
'' AS COUNTY,
'' AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
'' AS HOME_EMAIL,
'' AS USERNAME,
'' as LOGIN_ACCESS,
'' AS LOA_START_DATE,
'' AS LOA_END_DATE,
'' AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
CASE WHEN PPS.ACTUAL_TERMINATION_DATE is not null then 'T' else '' end AS EMPLOYMENT_STATUS,
'' AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') THEN Ass.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'' AS AUTO_ENROLL

FROM

PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
HCM_LOOKUPS LUKUP,
PER_PERIODS_OF_SERVICE PPS,
PER_ACTION_OCCURRENCES AOCC,
PER_ACTION_REASONS_B AR

WHERE
PER.PERSON_ID=ASS.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND AOCC.ACTION_OCCURRENCE_ID(+)=ASS.ACTION_OCCURRENCE_ID
AND AOCC.ACTION_REASON_ID=AR.ACTION_REASON_ID(+)
AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.ASSIGNMENT_STATUS_TYPE = 'INACTIVE'
AND ASS.LEGISLATION_CODE = 'US'
/*AND ASS.PERSON_ID = (SELECT PAA_NEW.PERSON_ID
                       FROM PER_ALL_ASSIGNMENTS_M PAA_NEW,
        PER_ALL_ASSIGNMENTS_M PAA_OLD
  WHERE PAA_NEW.PERSON_ID = PER.PERSON_ID
    AND PAA_NEW.PERSON_ID = PAA_OLD.PERSON_ID
AND PAA_NEW.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.LEGISLATION_CODE = 'US'
AND PAA_NEW.LEGISLATION_CODE <> 'US'
AND SUBSTR(PAA_NEW.EFFECTIVE_END_DATE,1,10) = '4712-12-31'
AND SUBSTR(PAA_OLD.EFFECTIVE_END_DATE,1,10) = SUBSTR(PAA_NEW.EFFECTIVE_START_DATE-1,1,10)
AND PAA_NEW.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
                                     FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = PAA_NEW.PERSON_ID
  AND ASSIGNMENT_TYPE = 'E'
  AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
  AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND PAA_OLD.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE-1)
                                     FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = PAA_OLD.PERSON_ID
  AND ASSIGNMENT_TYPE = 'E'
  AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
  AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND PAA_NEW.EFFECTIVE_LATEST_CHANGE = 'Y'
AND PAA_OLD.EFFECTIVE_LATEST_CHANGE = 'Y')*/
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
  AND ASSIGNMENT_TYPE = 'E'
  AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
  AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND (PPS.ACTUAL_TERMINATION_DATE = TRUNC(SYSDATE) OR (TRUNC(PPS.LAST_UPDATE_DATE)= TRUNC(SYSDATE) AND PPS.ACTUAL_TERMINATION_DATE <= TRUNC(SYSDATE) AND PPS.DATE_START < PPS.ACTUAL_TERMINATION_DATE))
AND ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION','RESIGNATION')
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN AR.START_DATE(+) AND AR.END_DATE(+)

union

SELECT
'3' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
NAME.MIDDLE_NAMES AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
TO_CHAR(NAME.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS LAST_NAME_EFFECTIVE_DATE,
NAME.KNOWN_AS AS NICKNAME,
NID.NATIONAL_IDENTIFIER_NUMBER AS SOCIAL_SECURITY_NUMBER,
TO_CHAR(PP.DATE_OF_BIRTH,'MM/DD/YYYY') AS DATE_OF_BIRTH,
PPL.SEX AS GENDER,
ETHN.ETHNICITY AS Race_Ethnicity,

ASS.ASS_ATTRIBUTE3 AS BENEFIT_CLASS_CODE,
CASE WHEN ASS.ACTION_CODE='BENEFIT UPDATE' THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ACTION_CODE='BENEFIT UPDATE')
WHEN ASS.ACTION_CODE not in ('BENEFIT UPDATE') then TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY')
ELSE ''
END AS BENEFIT_CLASS_DATE,

TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS COMPENSATION_DATE,
TO_CHAR((SELECT
SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='S'
AND TRUNC(SYSDATE) BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),'99999999999D99') AS SALARY,
TO_CHAR((SELECT
SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='H'
AND TRUNC(SYSDATE) BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),'99999999999D99') AS HOURLY_RATE,
TO_CHAR(ASS.NORMAL_HOURS,999) AS HOURS_PER_WEEK,
TO_CHAR(ASS.ASS_ATTRIBUTE_NUMBER1,'99999999999D99') AS BENEFITS_BASE_SALARY,
(SELECT
PE.SCREEN_ENTRY_VALUE
FROM
PAY_ELEMENT_ENTRIES_F EE,
PAY_ELEMENT_ENTRY_VALUES_F PE,
pay_input_values_f IV
WHERE
PER.PERSON_ID=EE.PERSON_ID
and EE.ELEMENT_ENTRY_ID=PE.ELEMENT_ENTRY_ID
AND PE.INPUT_VALUE_ID=IV.INPUT_VALUE_ID
AND (IV.BASE_NAME(+) ='ANNUAL_BONUS')
AND TRUNC(SYSDATE) BETWEEN PE.EFFECTIVE_START_DATE AND PE.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN IV.EFFECTIVE_START_DATE AND IV.EFFECTIVE_END_DATE) AS BONUS,
ASS.ASS_ATTRIBUTE9 AS COMMISSION,
(SELECT TO_CHAR(MIN(DATE_START),'MM/DD/YYYY') FROM PER_PERIODS_OF_SERVICE WHERE PERSON_ID=ASS.PERSON_ID AND ASS.PERIOD_OF_SERVICE_ID = PERIOD_OF_SERVICE_ID ) AS HIRE_DATE,
(SELECT TO_CHAR(MAX(DATE_START),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE='REHIRE') AS REHIRE_DATE,
CASE WHEN  (ASS.ACTION_CODE='HIRE' AND REASON_CODE IS NOT NULL) THEN TO_CHAR(PPS.ADJUSTED_SVC_DATE,'MM/DD/YYYY')
ELSE ''
END AS Demographic_Field_1,
CASE WHEN INSTR(HRC.NAME,'__',1) != 0  THEN SUBSTR(HRC.NAME, NVL(INSTR(HRC.NAME,'__',1),0)+2)

                                     WHEN INSTR(HRC.NAME,'__',1) = 0  THEN NULL END AS DEPT_CODE,


CASE WHEN ASS.ACTION_CODE='DEPARTMENT CHANGE' THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ACTION_CODE='DEPARTMENT CHANGE')
WHEN ASS.ACTION_CODE not in ('DEPARTMENT CHANGE') then TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY')
ELSE ''
END AS DEPARTMENT_EFF_DATE,
LOC.internal_LOCATION_CODE AS LOCATION_CODE,
CASE WHEN ASS.ACTION_CODE='LOCATION_CHANGE' THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ACTION_CODE='LOCATION_CHANGE')
WHEN ASS.ACTION_CODE not in ('LOCATION_CHANGE') then TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY')
ELSE ''
END AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
ASS.ASS_ATTRIBUTE4 AS JOB_TITLE,
CASE WHEN ASS.ACTION_CODE='JOB_DETAIL_CHANGE' THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ACTION_CODE='JOB_DETAIL_CHANGE')
WHEN ASS.ACTION_CODE not in ('JOB_DETAIL_CHANGE') then TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY')
ELSE ''
END AS JOB_TITLE_EFF_DATE,
LOC.LOCATION_CODE AS REGION_CODE,
CASE WHEN ASS.ACTION_CODE IN('TRANSFER','GLB_TRANSFER') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ACTION_CODE IN('TRANSFER','GLB_TRANSFER'))
WHEN ASS.ACTION_CODE not IN('TRANSFER','GLB_TRANSFER') then TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY')
ELSE ''
END AS REGION_eff_date,
ASS.ASS_ATTRIBUTE7 AS BU_CODE,
CASE WHEN ASS.MANAGER_FLAG='Y' THEN '1'
WHEN ASS.MANAGER_FLAG='N' THEN '0'
ELSE ''
END AS SUPERVISOR_CODE,
LUKUP.MEANING AS PAY_FREQUENCY,
LUKUP1.MEANING AS TIME_STATUS,
CASE WHEN JOBF.INFORMATION1='NONEXEMPT' THEN '0'
WHEN JOBF.INFORMATION1 = 'EXEMPT' THEN '1'
ELSE ''
END AS OVERTIME_STATUS,
'' AS HCE,
(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO)  AS WORK_PHONE,
(SELECT PH.EXTENSION FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO)  AS WORK_PHONE_EXTENSION,
(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='WF' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO)  AS WORK_FAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1') AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS ADD_EFF_DATE,
ADDR.ADDRESS_LINE_1 AS HOME_ADDRESS1,
ADDR.ADDRESS_LINE_2 AS HOME_ADDRESS2,
ADDR.TOWN_OR_CITY AS CITY,
ADDR.REGION_2 AS STATE_,
ADDR.POSTAL_CODE AS ZIP,
ADDR.REGION_3 AS COUNTY,
(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='H1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO)  AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
'' AS HOME_EMAIL,
PU.USERNAME AS USERNAME,
'' as LOGIN_ACCESS,


-- Modified condition for any other updates other than LOA
CASE WHEN ( (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 --added condition for last_update_date
 WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 -- Modified last_update_date condition in sqls below
 WHEN ( (ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) OR TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE)) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( (ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) OR TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE))  AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END    AS LOA_START_DATE,

CASE
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
 -- change to trunc(last_update_date)
 WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
 -- added condition assgn effective date > max loa date
 WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < ASS.EFFECTIVE_START_DATE THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- WHEN ( MAX_LOA.MAX_LOA_DATE is not null and PPS.ACTUAL_TERMINATION_DATE = TRUNC(SYSDATE)) THEN TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY')
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE)  AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')

ELSE NULL
END   AS LOA_END_DATE,

-- Modified condition for any other updates other than LOA
CASE WHEN (CASE WHEN ( (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA
when ((ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE)  AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
-- Modified condition for any other updates other than LOA
END ) IS NOT NULL THEN (select SUBSTR(ACT_REASON.ACTION_REASON_CODE,1,instr(ACT_REASON.ACTION_REASON_CODE,'_')-1) from PER_ACTION_REASONS_B ACT_REASON, PER_ACTION_OCCURRENCES  ACT_OCC, PER_ALL_ASSIGNMENTS_M PAA where ACT_OCC.ACTION_REASON_ID=ACT_REASON.ACTION_REASON_ID AND PAA.ACTION_OCCURRENCE_ID = ACT_OCC.ACTION_OCCURRENCE_ID AND PAA.PERSON_ID = PER.PERSON_ID AND PAA.ASSIGNMENT_TYPE IN ('E','C') AND PAA.ACTION_CODE='LEAVE_OF_ABSENCE' AND TO_CHAR(PAA.EFFECTIVE_START_DATE,'MM/DD/YYYY') = (CASE WHEN ( (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
when ((ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE)  AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END) ) END AS LOA_STATUS,

'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
CASE WHEN ASS.ACTION_CODE='VOLUNTARY_TERMINATION' AND ASS.REASON_CODE='RETIRE' THEN 'R'
WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') AND ASS.REASON_CODE NOT IN ('RETIRE') THEN 'T'
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN 'A'
ELSE '' END AS EMPLOYMENT_STATUS,
TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') THEN ASS.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'1' AS AUTO_ENROLL

FROM

PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_ETHNICITIES ETHN,
PER_NATIONAL_IDENTIFIERS NID,
PER_PERSONS PP,

PER_PERIODS_OF_SERVICE PPS,
HR_LOCATIONS LOC,
HCM_LOOKUPS LUKUP,
HCM_LOOKUPS LUKUP1,
PER_JOB_LEG_F JOBF,
PER_PERSON_ADDR_USAGES_F ADDRE,
PER_ADDRESSES_F ADDR,
PER_USERS PU,

HR_ALL_ORGANIZATION_UNITS_F_VL HRC,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_LOA_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'LEAVE_OF_ABSENCE' AND EFFECTIVE_START_DATE <  TRUNC(SYSDATE) GROUP BY PERSON_ID) MAX_LOA,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_RFL_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'RETURN_FROM_LEAVE' AND EFFECTIVE_START_DATE <  TRUNC(SYSDATE) GROUP BY PERSON_ID) MAX_RFL


WHERE
PER.PERSON_ID=MAX_LOA.PERSON_ID(+)
AND per.person_id=ASS.PERSON_ID
AND PER.PERSON_ID=MAX_RFL.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND ASS.PERSON_ID = ETHN.PERSON_ID(+)
AND ASS.PERSON_ID = PPL.PERSON_ID(+)
AND PPL.LEGISLATION_CODE(+)='US'
AND ASS.PERSON_ID = NID.PERSON_ID(+)
AND NATIONAL_IDENTIFIER_TYPE(+) = 'SSN'
AND ASS.PERSON_ID = PP.PERSON_ID(+)

AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=HRC.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)

AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
AND ASS.EMPLOYMENT_CATEGORY=LUKUP1.LOOKUP_CODE(+)
AND ASS.JOB_ID=JOBF.JOB_ID(+)
AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
AND LUKUP1.LOOKUP_TYPE(+) = 'EMP_CAT'
AND JOBF.INFORMATION_CATEGORY(+)='HRX_US_JOBS'
AND ADDRE.PERSON_ID(+)=ASS.PERSON_ID
AND ADDR.ADDRESS_ID(+)=ADDRE.ADDRESS_ID
AND ASS.PERSON_ID=PU.PERSON_ID(+)
AND ASS.ASS_ATTRIBUTE3 IN ('BB1', 'BB7', 'BSS', 'EXP' , 'NBE' )
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.LEGISLATION_CODE='US'
AND ADDRE.ADDRESS_TYPE(+)='HOME'
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND ADDR.EFFECTIVE_START_DATE IN (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ADDRESSES_F A, PER_PERSON_ADDR_USAGES_F B  WHERE A.ADDRESS_ID(+)=B.ADDRESS_ID AND B.PERSON_ID(+)=ASS.PERSON_ID AND B.ADDRESS_TYPE(+)='HOME' AND TRUNC(SYSDATE) BETWEEN A.EFFECTIVE_START_DATE(+) AND A.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN B.EFFECTIVE_START_DATE(+) AND B.EFFECTIVE_END_DATE(+))
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HRC.EFFECTIVE_START_DATE(+) AND HRC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOBF.EFFECTIVE_START_DATE(+) AND JOBF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDRE.EFFECTIVE_START_DATE(+) AND ADDRE.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PU.START_DATE(+) AND PU.END_DATE(+)





order by orderby,EMPLOYEE_ID


----

SELECT
'3' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
NAME.MIDDLE_NAMES AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
TO_CHAR(NAME.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS LAST_NAME_EFFECTIVE_DATE,
NAME.KNOWN_AS AS NICKNAME,
NID.NATIONAL_IDENTIFIER_NUMBER AS SOCIAL_SECURITY_NUMBER,
TO_CHAR(PP.DATE_OF_BIRTH,'MM/DD/YYYY') AS DATE_OF_BIRTH,
PPL.SEX AS GENDER,
ETHN.ETHNICITY AS Race_Ethnicity,

ASS.ASS_ATTRIBUTE3 AS BENEFIT_CLASS_CODE,
CASE WHEN ASS.ACTION_CODE='BENEFIT UPDATE' THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ACTION_CODE='BENEFIT UPDATE')
WHEN ASS.ACTION_CODE not in ('BENEFIT UPDATE') then TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY')
ELSE ''
END AS BENEFIT_CLASS_DATE,

TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS COMPENSATION_DATE,
TO_CHAR((SELECT
SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='S'
AND TRUNC(SYSDATE) BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),'99999999999D99') AS SALARY,
TO_CHAR((SELECT
SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='H'
AND TRUNC(SYSDATE) BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),'99999999999D99') AS HOURLY_RATE,
TO_CHAR(ASS.NORMAL_HOURS,999) AS HOURS_PER_WEEK,
TO_CHAR(ASS.ASS_ATTRIBUTE_NUMBER1,'99999999999D99') AS BENEFITS_BASE_SALARY,
(SELECT
PE.SCREEN_ENTRY_VALUE
FROM
PAY_ELEMENT_ENTRIES_F EE,
PAY_ELEMENT_ENTRY_VALUES_F PE,
pay_input_values_f IV
WHERE
PER.PERSON_ID=EE.PERSON_ID
and EE.ELEMENT_ENTRY_ID=PE.ELEMENT_ENTRY_ID
AND PE.INPUT_VALUE_ID=IV.INPUT_VALUE_ID
AND (IV.BASE_NAME(+) ='ANNUAL_BONUS')
AND TRUNC(SYSDATE) BETWEEN PE.EFFECTIVE_START_DATE AND PE.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN IV.EFFECTIVE_START_DATE AND IV.EFFECTIVE_END_DATE) AS BONUS,
ASS.ASS_ATTRIBUTE9 AS COMMISSION,
(SELECT TO_CHAR(MIN(DATE_START),'MM/DD/YYYY') FROM PER_PERIODS_OF_SERVICE WHERE PERSON_ID=ASS.PERSON_ID AND ASS.PERIOD_OF_SERVICE_ID = PERIOD_OF_SERVICE_ID ) AS HIRE_DATE,
(SELECT TO_CHAR(MAX(DATE_START),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE='REHIRE') AS REHIRE_DATE,
CASE WHEN  (ASS.ACTION_CODE='HIRE' AND REASON_CODE IS NOT NULL) THEN TO_CHAR(PPS.ADJUSTED_SVC_DATE,'MM/DD/YYYY')
ELSE ''
END AS Demographic_Field_1,
CASE WHEN INSTR(HRC.NAME,'__',1) != 0  THEN SUBSTR(HRC.NAME, NVL(INSTR(HRC.NAME,'__',1),0)+2)

                                     WHEN INSTR(HRC.NAME,'__',1) = 0  THEN NULL END AS DEPT_CODE,


CASE WHEN ASS.ACTION_CODE='DEPARTMENT CHANGE' THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ACTION_CODE='DEPARTMENT CHANGE')
WHEN ASS.ACTION_CODE not in ('DEPARTMENT CHANGE') then TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY')
ELSE ''
END AS DEPARTMENT_EFF_DATE,
LOC.internal_LOCATION_CODE AS LOCATION_CODE,
CASE WHEN ASS.ACTION_CODE='LOCATION_CHANGE' THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ACTION_CODE='LOCATION_CHANGE')
WHEN ASS.ACTION_CODE not in ('LOCATION_CHANGE') then TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY')
ELSE ''
END AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
ASS.ASS_ATTRIBUTE4 AS JOB_TITLE,
CASE WHEN ASS.ACTION_CODE='JOB_DETAIL_CHANGE' THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ACTION_CODE='JOB_DETAIL_CHANGE')
WHEN ASS.ACTION_CODE not in ('JOB_DETAIL_CHANGE') then TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY')
ELSE ''
END AS JOB_TITLE_EFF_DATE,
LOC.LOCATION_CODE AS REGION_CODE,
CASE WHEN ASS.ACTION_CODE IN('TRANSFER','GLB_TRANSFER') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ACTION_CODE IN('TRANSFER','GLB_TRANSFER'))
WHEN ASS.ACTION_CODE not IN('TRANSFER','GLB_TRANSFER') then TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY')
ELSE ''
END AS REGION_eff_date,
ASS.ASS_ATTRIBUTE7 AS BU_CODE,
CASE WHEN ASS.MANAGER_FLAG='Y' THEN '1'
WHEN ASS.MANAGER_FLAG='N' THEN '0'
ELSE ''
END AS SUPERVISOR_CODE,
LUKUP.MEANING AS PAY_FREQUENCY,
LUKUP1.MEANING AS TIME_STATUS,
CASE WHEN JOBF.INFORMATION1='NONEXEMPT' THEN '0'
WHEN JOBF.INFORMATION1 = 'EXEMPT' THEN '1'
ELSE ''
END AS OVERTIME_STATUS,
'' AS HCE,
(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO)  AS WORK_PHONE,
(SELECT PH.EXTENSION FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO)  AS WORK_PHONE_EXTENSION,
(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='WF' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO)  AS WORK_FAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1') AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS ADD_EFF_DATE,
ADDR.ADDRESS_LINE_1 AS HOME_ADDRESS1,
ADDR.ADDRESS_LINE_2 AS HOME_ADDRESS2,
ADDR.TOWN_OR_CITY AS CITY,
ADDR.REGION_2 AS STATE_,
ADDR.POSTAL_CODE AS ZIP,
ADDR.REGION_3 AS COUNTY,
(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='H1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO)  AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
'' AS HOME_EMAIL,
PU.USERNAME AS USERNAME,
'' as LOGIN_ACCESS,


-- Modified condition for any other updates other than LOA
CASE WHEN ( (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 --added condition for last_update_date
 WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 -- Modified last_update_date condition in sqls below
 WHEN ( (ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) OR TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE)) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( (ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) OR TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE))  AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END    AS LOA_START_DATE,

CASE
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
 -- change to trunc(last_update_date)
 WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
 -- added condition assgn effective date > max loa date
 WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < ASS.EFFECTIVE_START_DATE THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- WHEN ( MAX_LOA.MAX_LOA_DATE is not null and PPS.ACTUAL_TERMINATION_DATE = TRUNC(SYSDATE)) THEN TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY')
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE)  AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')

ELSE NULL
END   AS LOA_END_DATE,

-- Modified condition for any other updates other than LOA
CASE WHEN (CASE WHEN ( (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA
when ((ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE)  AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
-- Modified condition for any other updates other than LOA
END ) IS NOT NULL THEN (select SUBSTR(ACT_REASON.ACTION_REASON_CODE,1,instr(ACT_REASON.ACTION_REASON_CODE,'_')-1) from PER_ACTION_REASONS_B ACT_REASON, PER_ACTION_OCCURRENCES  ACT_OCC, PER_ALL_ASSIGNMENTS_M PAA where ACT_OCC.ACTION_REASON_ID=ACT_REASON.ACTION_REASON_ID AND PAA.ACTION_OCCURRENCE_ID = ACT_OCC.ACTION_OCCURRENCE_ID AND PAA.PERSON_ID = PER.PERSON_ID AND PAA.ASSIGNMENT_TYPE IN ('E','C') AND PAA.ACTION_CODE='LEAVE_OF_ABSENCE' AND TO_CHAR(PAA.EFFECTIVE_START_DATE,'MM/DD/YYYY') = (CASE WHEN ( (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
when ((ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE)  AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END) ) END AS LOA_STATUS,

'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
CASE WHEN ASS.ACTION_CODE='VOLUNTARY_TERMINATION' AND ASS.REASON_CODE='RETIRE' THEN 'R'
WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') AND ASS.REASON_CODE NOT IN ('RETIRE') THEN 'T'
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN 'A'
ELSE '' END AS EMPLOYMENT_STATUS,
TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') THEN ASS.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'1' AS AUTO_ENROLL

FROM

PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_ETHNICITIES ETHN,
PER_NATIONAL_IDENTIFIERS NID,
PER_PERSONS PP,

PER_PERIODS_OF_SERVICE PPS,
HR_LOCATIONS LOC,
HCM_LOOKUPS LUKUP,
HCM_LOOKUPS LUKUP1,
PER_JOB_LEG_F JOBF,
PER_PERSON_ADDR_USAGES_F ADDRE,
PER_ADDRESSES_F ADDR,
PER_USERS PU,

HR_ALL_ORGANIZATION_UNITS_F_VL HRC,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_LOA_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'LEAVE_OF_ABSENCE' AND EFFECTIVE_START_DATE <  TRUNC(SYSDATE) GROUP BY PERSON_ID) MAX_LOA,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_RFL_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'RETURN_FROM_LEAVE' AND EFFECTIVE_START_DATE <  TRUNC(SYSDATE) GROUP BY PERSON_ID) MAX_RFL


WHERE
PER.PERSON_ID=MAX_LOA.PERSON_ID(+)
AND per.person_id=ASS.PERSON_ID
AND PER.PERSON_ID=MAX_RFL.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND ASS.PERSON_ID = ETHN.PERSON_ID(+)
AND ASS.PERSON_ID = PPL.PERSON_ID(+)
AND PPL.LEGISLATION_CODE(+)='US'
AND ASS.PERSON_ID = NID.PERSON_ID(+)
AND NATIONAL_IDENTIFIER_TYPE(+) = 'SSN'
AND ASS.PERSON_ID = PP.PERSON_ID(+)

AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=HRC.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)

AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
AND ASS.EMPLOYMENT_CATEGORY=LUKUP1.LOOKUP_CODE(+)
AND ASS.JOB_ID=JOBF.JOB_ID(+)
AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
AND LUKUP1.LOOKUP_TYPE(+) = 'EMP_CAT'
AND JOBF.INFORMATION_CATEGORY(+)='HRX_US_JOBS'
AND ADDRE.PERSON_ID(+)=ASS.PERSON_ID
AND ADDR.ADDRESS_ID(+)=ADDRE.ADDRESS_ID
AND ASS.PERSON_ID=PU.PERSON_ID(+)
AND ASS.ASS_ATTRIBUTE3 IN ('BB1', 'BB7', 'BSS', 'EXP' , 'NBE' )
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.LEGISLATION_CODE='US'
AND ADDRE.ADDRESS_TYPE(+)='HOME'
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND ADDR.EFFECTIVE_START_DATE IN (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ADDRESSES_F A, PER_PERSON_ADDR_USAGES_F B  WHERE A.ADDRESS_ID(+)=B.ADDRESS_ID AND B.PERSON_ID(+)=ASS.PERSON_ID AND B.ADDRESS_TYPE(+)='HOME' AND TRUNC(SYSDATE) BETWEEN A.EFFECTIVE_START_DATE(+) AND A.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN B.EFFECTIVE_START_DATE(+) AND B.EFFECTIVE_END_DATE(+))
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HRC.EFFECTIVE_START_DATE(+) AND HRC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOBF.EFFECTIVE_START_DATE(+) AND JOBF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDRE.EFFECTIVE_START_DATE(+) AND ADDRE.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PU.START_DATE(+) AND PU.END_DATE(+)





order by orderby,EMPLOYEE_ID

-------------

SELECT
'2' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
NAME.MIDDLE_NAMES AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
'' AS LAST_NAME_EFFECTIVE_DATE,
'' AS NICKNAME,
'' AS SOCIAL_SECURITY_NUMBER,
'' AS DATE_OF_BIRTH,
'' AS GENDER,
'' AS Race_Ethnicity,
--BEN.DISABILITY_STATUS AS DISABLED,
--BEN.TOBACCO_TYPE_USAGE AS TOBACCO_USER,
'' AS BENEFIT_CLASS_CODE,
'' AS BENEFIT_CLASS_DATE,
'' AS COMPENSATION_DATE,
'' AS SALARY,
'' AS HOURLY_RATE,
'' AS HOURS_PER_WEEK,
'' AS BENEFITS_BASE_SALARY,
'' AS BONUS,
'' AS COMMISSION,
'' AS HIRE_DATE,
'' AS REHIRE_DATE,
'' AS Demographic_Field_1,
'' AS DEPT_CODE,
'' AS DEPARTMENT_EFF_DATE,
'' AS LOCATION_CODE,
'' AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
'' AS JOB_TITLE,
'' AS JOB_TITLE_EFF_DATE,
'' AS REGION_CODE,
'' AS REGION_eff_date,
'' AS BU_CODE,
'' AS SUPERVISOR_CODE,
LUKUP.MEANING AS PAY_FREQUENCY,
'' AS TIME_STATUS,
'' AS OVERTIME_STATUS,
'' AS HCE,
''  AS WORK_PHONE,
''  AS WORK_PHONE_EXTENSION,
'' AS WORK_FAX,
'' AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
'' AS ADD_EFF_DATE,
'' AS HOME_ADDRESS1,
'' AS HOME_ADDRESS2,
'' AS CITY,
'' AS STATE_,
'' AS ZIP,
'' AS COUNTY,
'' AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
'' AS HOME_EMAIL,
'' AS USERNAME,
'' as LOGIN_ACCESS,
CASE WHEN ( ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
when (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE)  AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END    AS LOA_START_DATE,

CASE WHEN  (CASE WHEN ( ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
when (ASS.EFFECTIVE_START_DATE <> TRUNC(SYSDATE) AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
 WHEN ( ASS.EFFECTIVE_START_DATE = TRUNC(SYSDATE)  AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')

END) is not null then TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') else '' end AS LOA_END_DATE,
'' AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
CASE WHEN PPS.ACTUAL_TERMINATION_DATE is not null then 'T' else '' end AS EMPLOYMENT_STATUS,
'' AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') THEN Ass.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(PPS.LAST_WORKING_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'' AS AUTO_ENROLL

FROM

PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
HCM_LOOKUPS LUKUP,
PER_PERIODS_OF_SERVICE PPS,
PER_ACTION_OCCURRENCES AOCC,
PER_ACTION_REASONS_B AR,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_LOA_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'LEAVE_OF_ABSENCE' AND EFFECTIVE_START_DATE <  TRUNC(SYSDATE) GROUP BY PERSON_ID) MAX_LOA,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_RFL_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'RETURN_FROM_LEAVE' AND EFFECTIVE_START_DATE <  TRUNC(SYSDATE) GROUP BY PERSON_ID) MAX_RFL

WHERE
PER.PERSON_ID=MAX_LOA.PERSON_ID(+)
AND per.person_id=ASS.PERSON_ID(+)
AND PER.PERSON_ID=MAX_RFL.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND AOCC.ACTION_OCCURRENCE_ID(+)=ASS.ACTION_OCCURRENCE_ID
AND AOCC.ACTION_REASON_ID=AR.ACTION_REASON_ID(+)
AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.ASSIGNMENT_STATUS_TYPE = 'INACTIVE'
AND ASS.LEGISLATION_CODE = 'US'
/*AND ASS.PERSON_ID = (SELECT PAA_NEW.PERSON_ID
                       FROM PER_ALL_ASSIGNMENTS_M PAA_NEW,
        PER_ALL_ASSIGNMENTS_M PAA_OLD
  WHERE PAA_NEW.PERSON_ID = PER.PERSON_ID
    AND PAA_NEW.PERSON_ID = PAA_OLD.PERSON_ID
AND PAA_NEW.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.LEGISLATION_CODE = 'US'
AND PAA_NEW.LEGISLATION_CODE <> 'US'
AND SUBSTR(PAA_NEW.EFFECTIVE_END_DATE,1,10) = '4712-12-31'
AND SUBSTR(PAA_OLD.EFFECTIVE_END_DATE,1,10) = SUBSTR(PAA_NEW.EFFECTIVE_START_DATE-1,1,10)
AND PAA_NEW.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
                                     FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = PAA_NEW.PERSON_ID
  AND ASSIGNMENT_TYPE = 'E'
  AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
  AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND PAA_OLD.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE-1)
                                     FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = PAA_OLD.PERSON_ID
  AND ASSIGNMENT_TYPE = 'E'
  AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
  AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND PAA_NEW.EFFECTIVE_LATEST_CHANGE = 'Y'
AND PAA_OLD.EFFECTIVE_LATEST_CHANGE = 'Y')*/
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
  AND ASSIGNMENT_TYPE = 'E'
  AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
  AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
-- AND (PPS.ACTUAL_TERMINATION_DATE = TRUNC(SYSDATE) OR TRUNC(PPS.LAST_UPDATE_DATE)= TRUNC(SYSDATE-1))
AND (PPS.ACTUAL_TERMINATION_DATE = TRUNC(SYSDATE) OR (SELECT TRUNC(LAST_UPDATE_DATE) from PER_PERIODS_OF_SERVICE where ASS.PERSON_ID = PERSON_ID(+) AND ASS.PERIOD_OF_SERVICE_ID = PERIOD_OF_SERVICE_ID(+) and ACTUAL_TERMINATION_DATE IS NOT NULL) = TRUNC(SYSDATE-1))
AND ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION','RESIGNATION')
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN AR.START_DATE(+) AND AR.END_DATE(+)

***********************************************************************************************************************************************


 BswiftLOANotification

 select
PER.PERSON_ID,
NAME.FULL_NAME AS NAME,
PER.person_NUMBER

from
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
per_all_assignments_m ass,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_LOA_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'LEAVE_OF_ABSENCE' AND EFFECTIVE_START_DATE <  TRUNC(SYSDATE) GROUP BY PERSON_ID) MAX_LOA,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_RFL_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'RETURN_FROM_LEAVE' AND EFFECTIVE_START_DATE <  TRUNC(SYSDATE) GROUP BY PERSON_ID) MAX_RFL
where
PER.PERSON_ID=MAX_LOA.PERSON_ID(+)
AND PER.PERSON_ID=MAX_RFL.PERSON_ID(+)
and per.person_id=ass.person_id(+)
AND PER.PERSON_ID= NAME.person_id(+)
AND ASS.ASSIGNMENT_TYPE IN ('E','C')
AND ((MAX_LOA.MAX_LOA_DATE is null) OR ((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=PER.PERSON_ID AND action_code='RETURN_FROM_LEAVE' AND EFFECTIVE_START_DATE<MAX_RFL_DATE) BETWEEN MAX_LOA_DATE AND MAX_RFL_DATE) AND (NVL(MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < NVL (MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))))
and ass.action_code='RETURN_FROM_LEAVE'
AND NAME.NAME_TYPE='GLOBAL'
AND trunc(sysdate) between ASS.effective_start_date(+) and ASS.EFFECTIVE_end_date(+)
AND trunc(sysdate) between PER.effective_start_date and PER.EFFECTIVE_end_date
AND trunc(sysdate) between NAME.effective_start_date(+) and NAME.EFFECTIVE_end_date(+)
and ASS.effective_start_date between sysdate-1 and sysdate

***********************************************************************************************************************************************

Salesforce DM

SELECT PER.PERSON_NUMBER,
DEPT.NAME AS A,
-- (SELECT DISTINCT PERSON_NUMBER FROM PER_ALL_PEOPLE_F PER WHERE PER.PERSON_ID=SUP.MANAGER_ID AND SUP.ASSIGNMENT_ID=ASS.ASSIGNMENT_ID AND
--SUP.PERSON_ID=ASS.PERSON_ID  AND ASS.ASSIGNMENT_TYPE IN ('E','C') AND SUP.MANAGER_TYPE='LINE_MANAGER' ) AS MANAGER_NUMBER,
PERSUP.PERSON_NUMBER AS MANAGER_PERSON_ID,
PERSUPF.PERSON_NUMBER AS MANAGER_PERSON_ID_FUTURE,
CASE WHEN PERSUP.PERSON_NUMBER IS NULL THEN PERSUPF.PERSON_NUMBER ELSE PERSUP.PERSON_NUMBER END AS MANAGER_NUMBER,


NAME.FIRST_NAME,
NAME.LAST_NAME,
                NAME.KNOWN_AS,
CASE WHEN NAME.MIDDLE_NAMES IS NOT NULL THEN (NAME.FIRST_NAME)||' '||(NAME.MIDDLE_NAMES)||' '||(NAME.LAST_NAME)
WHEN NAME.MIDDLE_NAMES IS NULL THEN (NAME.FIRST_NAME)||' '||(NAME.LAST_NAME) END AS FULL_NAME,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN 'A'
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('SUSPENDED') THEN 'S'
ELSE 'T' END AS EMP_STATUS,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN 'ACTIVE'
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('SUSPENDED') THEN 'SUSPENDED'
ELSE 'TERMINATED' END AS EMP_STATUS_DESC,

(SELECT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE = 'ACTIVE'  THEN EMAIL_ADDRESS ELSE '' END FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS EMAIL_ID,
JOB.JOB_CODE,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS EFFECTIVE_START_DATE,

(SELECT MAX(TO_CHAR(DATE_START,'MM/DD/YYYY')) FROM PER_PERIODS_OF_SERVICE WHERE PERIOD_OF_SERVICE_ID=ASS.PERIOD_OF_SERVICE_ID AND

PERSON_ID=ASS.PERSON_ID) AS DATE_START,


(SELECT LOOKUP_CODE FROM HCM_LOOKUPS WHERE LOOKUP_TYPE='BB_3CHAR_COUNTRY' AND MEANING=LOC.COUNTRY AND TRUNC(SYSDATE)BETWEEN

START_DATE_ACTIVE(+) AND NVL(END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS COUNTRY,
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1)  AS DIV_NAME,

(SELECT DISTINCT HROF.ORG_INFORMATION2
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS DIV_CODE,

ASS.ORGANIZATION_ID,
CASE WHEN INSTR(DEPT.NAME,'__',1) != 0  THEN SUBSTR(DEPT.NAME, NVL(INSTR(DEPT.NAME,'__',1),0)+2)
WHEN INSTR(DEPT.NAME,'__',1) = 0  THEN NULL END AS DEPT_CODE,
CASE WHEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) IS NOT NULL THEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) ELSE DEPT.NAME

END AS DEPT_DESC,
ASS.HOURLY_SALARIED_CODE,
ASS.EMPLOYMENT_CATEGORY,
ASS.ASS_ATTRIBUTE4 AS BUSINESS_TITLE,
LOC.INTERNAL_LOCATION_CODE,
LOC.LOCATION_NAME,
ASS.ASS_ATTRIBUTE1 AS TITLE_LEVEL,
ASS.ASS_ATTRIBUTE3 AS BEN_PROGRAM,
CASE WHEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) IS NOT NULL THEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) ELSE DEPT.NAME

END AS FIN_DEPT_NAME,
PP.ATTRIBUTE6 AS AD_USER,
(SELECT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE = 'ACTIVE'  THEN EMAIL_ADDRESS ELSE '' END FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND ASS.EFFECTIVE_START_DATE BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS WORK_EMAIL,
case
when NVL(ASS.WORK_AT_HOME,'N') = 'Y' and JOB.JOB_CODE IN ('UR0101','UR0102','UR0901','US0201') then 'R'||ASS.ASSIGNMENT_TYPE||'-CSR'
when NVL(ASS.WORK_AT_HOME,'N') = 'Y' and JOB.JOB_CODE NOT IN ('UR0101','UR0102','UR0901','US0201') then 'R'||ASS.ASSIGNMENT_TYPE
when NVL(ASS.WORK_AT_HOME,'N') = 'N' and JOB.JOB_CODE IN ('UR0101','UR0102','UR0901','US0201') then 'O'||ASS.ASSIGNMENT_TYPE||'-CSR'
when NVL(ASS.WORK_AT_HOME,'N') = 'N' and JOB.JOB_CODE NOT IN ('UR0101','UR0102','UR0901','US0201') then 'O'||ASS.ASSIGNMENT_TYPE
when NVL(ASS.WORK_AT_HOME,'N') = '' and JOB.JOB_CODE IN ('UR0101','UR0102','UR0901','US0201') then 'O'||ASS.ASSIGNMENT_TYPE||'-CSR'
end as ASSIGNMENT_TYPE,
ASS.LAST_UPDATE_DATE AS LAST_UPDATE_DATE,

NAME.MIDDLE_NAMES,
'' as NATIONAL_IDENTIFIER_NUMBER,
ASS.ASS_ATTRIBUTE_DATE1 AS CONTRACTOR_ENDDATE
CASE WHEN ASS.SYSTEM_PERSON_TYPE ='CWK' THEN ASS.PROJECTED_ASSIGNMENT_END
ELSE NULL END AS CONTRACTOR_ENDDATE--just added this recently.

FROM PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
PER_ASSIGNMENT_SUPERVISORS_F SUP,
PER_ALL_PEOPLE_F PERSUP,

PER_ASSIGNMENT_SUPERVISORS_F SUPF,
PER_ALL_PEOPLE_F PERSUPF,

PER_JOBS_F_VL JOB,
HR_LOCATIONS_ALL_F_VL LOC,
PER_DEPARTMENTS DEPT,
PER_PERIODS_OF_SERVICE POS,
PER_NATIONAL_IDENTIFIERS NID,
PER_PERSONS PP

WHERE PER.PERSON_ID=ASS.PERSON_ID
AND NAME.PERSON_ID=PER.PERSON_ID
AND SUP.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND SUP.PERSON_ID(+)=ASS.PERSON_ID

AND SUPF.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND SUPF.PERSON_ID(+)=ASS.PERSON_ID


AND PERSUP.PERSON_ID(+)=SUP.MANAGER_ID
AND TRUNC(SYSDATE) BETWEEN PERSUP.EFFECTIVE_START_DATE(+) AND PERSUP.EFFECTIVE_END_DATE(+)

AND PERSUPF.PERSON_ID(+)=SUPF.MANAGER_ID
AND TRUNC(SYSDATE) BETWEEN PERSUPF.EFFECTIVE_START_DATE(+) AND PERSUPF.EFFECTIVE_END_DATE(+)


AND JOB.JOB_ID(+)=ASS.JOB_ID
--AND PER.PERSON_NUMBER IN ('502181','800151','991353')
AND LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND DEPT.ORGANIZATION_ID(+)=ASS.ORGANIZATION_ID
AND NID.PERSON_ID(+)=PER.PERSON_ID
AND NID.NATIONAL_IDENTIFIER_ID(+)=PER.PRIMARY_NID_ID
AND POS.PERSON_ID(+)=ASS.PERSON_ID
AND POS.PERIOD_OF_SERVICE_ID(+)=ASS.PERIOD_OF_SERVICE_ID
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E','C')
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND
ASSIGNMENT_TYPE IN ('E','C') AND EFFECTIVE_LATEST_CHANGE= 'Y' AND EFFECTIVE_START_DATE = ASS.EFFECTIVE_START_DATE)

AND ASS.EFFECTIVE_LATEST_CHANGE= 'Y'
AND SUP.MANAGER_TYPE(+)='LINE_MANAGER'
AND SUPF.MANAGER_TYPE(+)='LINE_MANAGER'
AND PER.EFFECTIVE_START_DATE= (SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_PEOPLE_F WHERE PERSON_ID = PER.PERSON_ID)

AND ASS.EFFECTIVE_START_DATE =  (SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID
AND ASSIGNMENT_TYPE IN ('E','C') )

AND POS.DATE_START = (SELECT MAX(DATE_START) FROM PER_PERIODS_OF_SERVICE WHERE PERSON_ID=ASS.PERSON_ID)

AND NAME.EFFECTIVE_START_DATE = (SELECT MAX(EFFECTIVE_START_DATE) FROM PER_PERSON_NAMES_F WHERE PERSON_ID= NAME.PERSON_ID)

AND TRUNC(SYSDATE) BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)

AND TRUNC(SYSDATE) BETWEEN TRUNC(SYSDATE) AND SUPF.EFFECTIVE_START_DATE(+)


AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN DEPT.EFFECTIVE_START_DATE(+) AND DEPT.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
ORDER BY PER.PERSON_NUMBER

***********************************************************************************************************************************************

UltiproDemographics

SELECT ASS.PERSON_ID,
CASE WHEN ASS.ACTION_CODE IN ('HIRE','REHIRE','HIRE_ADD_WORK_RELATION','ADD_AN_EMPLOYEE','ADD_PERSON_OF_INTEREST') and GREATEST(TRUNC(ASS.LAST_UPDATE_DATE),TRUNC(ASS.EFFECTIVE_START_DATE)) BETWEEN TRUNC(SYSDATE - 18) AND TRUNC(SYSDATE) THEN 'H'
WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') THEN 'T'
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'T'
ELSE 'J'
END AS TRANSACTION_TYPE,

(SELECT LEGAL_ENTITY_IDENTIFIER FROM XLE_ENTITY_PROFILES WHERE NAME=LE.NAME AND TRUNC(SYSDATE) BETWEEN NVL(EFFECTIVE_FROM, TO_DATE('1900.01.01', 'YYYY.MM.DD')) AND NVL(EFFECTIVE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS COMPANY,
REPLACE(REPLACE (SSN.NATIONAL_IDENTIFIER_NUMBER, '-', ''),' ','') AS NATIONAL_ID,
REPLACE(NAME.FIRST_NAME,'?','') AS EMPLOYEE_FIRST_NAME,
REPLACE(NAME.MIDDLE_NAMES,'?','') AS MIDDLE_NAME,
REPLACE(NAME.LAST_NAME,'?','') AS EMPLOYEE_LAST_NAME,
PER.PERSON_NUMBER AS EMPLID,
ADDR.ADDRESS_LINE_1,
ADDR.ADDRESS_LINE_2,
ADDR.TOWN_OR_CITY AS CITY,
ADDR.REGION_2 AS STATE_POSTAL_CODE,
ADDR.POSTAL_CODE AS ZIP_CODE,
REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+','') AS PHONE_NUMBER,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_TYPE = 'W1' AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS BUSN_EMAIL_ID,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL2.EMAIL_TYPE IN ('H1','BB_OTHR') AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD')) AND ROWNUM < 2) AS ALTERNATE_EMAIL,
TO_CHAR (PP.DATE_OF_BIRTH,'MMDDYYYY') AS BIRTH_DATE,
PPL.SEX AS GENDER,
PPL.MARITAL_STATUS AS ACTUAL_MARITAL_STATUS,
(SELECT MEANING FROM HCM_LOOKUPS WHERE LOOKUP_CODE=ETHN.ETHNICITY AND LOOKUP_TYPE='PER_ETHNICITY' AND TRUNC(SYSDATE) BETWEEN START_DATE_ACTIVE AND NVL(END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS ETHNIC_ORIGIN,
(SELECT MEANING FROM HCM_LOOKUPS WHERE LOOKUP_CODE=ETHN.ETHNICITY AND LOOKUP_TYPE='PER_ETHNICITY' AND TRUNC(SYSDATE) BETWEEN START_DATE_ACTIVE AND NVL(END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS ETHNICITY,
FT.ISO_TERRITORY_CODE AS COUNTRY,
/* Code changes start by Ismail, Commented below line for ORIG_HIRE_DATE and rebuild the new logic for the same as part of CR#CHG0135353/TP#29443*/
--(select TO_CHAR(min(ORIGINAL_DATE_OF_HIRE),'MMDDYYYY') FROM per_periods_of_service where person_id=per.person_id) AS ORIG_HIRE_DATE,
 CASE
  WHEN (SELECT distinct (1) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ASSIGNMENT_TYPE in ('E','C') and
                                             ((reason_CODE IN ('REHIRE','REHIRE_WKR')) or (ACTION_CODE in ('REHIRE')))) = 1
 
  THEN
  TO_CHAR(( SELECT distinct MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M  WHERE PERSON_ID=ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E','C')
                                                AND ((reason_CODE IN ('REHIRE','REHIRE_WKR')) or (ACTION_CODE in ('REHIRE')))),'MMDDYYYY')
  else
  TO_CHAR(( SELECT distinct min(ORIGINAL_DATE_OF_HIRE) from per_periods_of_service where person_id=per.person_id),'MMDDYYYY') end AS ORIG_HIRE_DATE,
  /* Code changes End by Ismail, Commented line for ORIG_HIRE_DATE and rebuild the new logic for the same as part of CR#CHG0135353/TP#29443*/
(SELECT TO_CHAR(MAX(effective_START_date),'MMDDYYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ((reason_CODE IN ('REHIRE','REHIRE_WKR')) or (ACTION_CODE in ('REHIRE')))) AS REHIRE_DATE,

(select TO_CHAR(min(ORIGINAL_DATE_OF_HIRE),'MMDDYYYY') FROM per_periods_of_service where person_id=per.person_id) AS ADJUSTED_SVC_DATE,

(SELECT DISTINCT PERSON_NUMBER FROM PER_ALL_PEOPLE_F PER WHERE PER.PERSON_ID=SUP.MANAGER_ID AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE) AS SUPERVISOR,
JOB.ATTRIBUTE1  AS WORKERS_COMP_CODE,
ASS.ASS_ATTRIBUTE4 AS ALTERNATE_JOB,
-- LOC.INTERNAL_LOCATION_CODE AS LOCATION,

CASE WHEN LOC.INTERNAL_LOCATION_cODE = 'AZ01' THEN 'AZ'
     WHEN LOC.INTERNAL_LOCATION_cODE = 'DC01' THEN 'DC'
     WHEN LOC.INTERNAL_LOCATION_cODE = 'KY01' THEN 'KY'
     WHEN LOC.INTERNAL_LOCATION_cODE = 'MA01' THEN 'MA'
     WHEN LOC.INTERNAL_LOCATION_cODE = 'MD02' THEN 'MD'
     WHEN LOC.INTERNAL_LOCATION_cODE = 'TX01' THEN 'TX'
     WHEN LOC.INTERNAL_LOCATION_cODE = 'VA01' THEN 'VA'
     WHEN LOC.INTERNAL_LOCATION_CODE = 'REMOTE' THEN 'TELE'||ADDR.REGION_2
ELSE LOC.INTERNAL_LOCATION_CODE END AS LOCATION,




(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,7,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS DEPARTMENT,

(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,11,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS MARKET,

(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,15,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS REGION,

(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,19,4)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS OPERATING_UNIT,


CMV.LOCAL_CURRENCY,

CASE WHEN UPPER(ASS.ASS_ATTRIBUTE8) = 'NONEXEMPT' THEN 'N'
     WHEN UPPER(ASS.ASS_ATTRIBUTE8) = 'EXEMPT' THEN 'E'
     ELSE ' ' END AS FLSA_CODE,

-- CASE WHEN PAY.PAYROLL_NAME LIKE ('%Hourly%') THEN ROUND(((CM.SALARY_AMOUNT * SALARY_ANNUALIZATION_FACTOR ) /2080),2)
-- WHEN PAY.PAYROLL_NAME LIKE ('%Monthly%') THEN ROUND(((CM.SALARY_AMOUNT * SALARY_ANNUALIZATION_FACTOR )/12),2)
-- WHEN PAY.PAYROLL_NAME LIKE ('%Biweekly%') THEN ROUND(((CM.SALARY_AMOUNT * SALARY_ANNUALIZATION_FACTOR ) /26),2)
-- WHEN PAY.PAYROLL_NAME LIKE ('%Annually%') THEN ROUND(CM.SALARY_AMOUNT,2)
-- ELSE ROUND(CM.SALARY_AMOUNT,2) END AS PAY_RATE,


CASE WHEN SLA.SALARY_BASIS_CODE IN ('HOURLY') THEN ROUND(CM.SALARY_AMOUNT,2)
     WHEN SLA.SALARY_BASIS_CODE NOT IN ('HOURLY') AND ASS.LEGISLATION_CODE IN ('US','CA') THEN ROUND(((CM.SALARY_AMOUNT * SALARY_ANNUALIZATION_FACTOR )/26),2)
     WHEN SLA.SALARY_BASIS_CODE NOT IN ('HOURLY') AND ASS.LEGISLATION_CODE NOT IN ('US','CA') AND SLA.NAME NOT LIKE '%13%' AND SLA.NAME NOT LIKE '%14%' THEN ROUND(((CM.SALARY_AMOUNT * SALARY_ANNUALIZATION_FACTOR )/12),2)
     WHEN SLA.SALARY_BASIS_CODE NOT IN ('HOURLY') AND ASS.LEGISLATION_CODE NOT IN ('US','CA') AND SLA.NAME LIKE '%13%' AND SLA.NAME NOT LIKE '%14%' THEN ROUND(((CM.SALARY_AMOUNT * SALARY_ANNUALIZATION_FACTOR )/13),2)
     WHEN SLA.SALARY_BASIS_CODE NOT IN ('HOURLY') AND ASS.LEGISLATION_CODE NOT IN ('US','CA') AND SLA.NAME NOT LIKE '%13%' AND SLA.NAME LIKE '%14%' THEN ROUND(((CM.SALARY_AMOUNT * SALARY_ANNUALIZATION_FACTOR )/14),2)
ELSE 0 END AS PAY_RATE,


CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','PR') THEN 'R'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FT','PT') THEN 'T'
ELSE '' END AS EMPLOYEE_TYPE,

ASS.HOURLY_SALARIED_CODE AS  HOURLY_SALARIED,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'F'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'P'
ELSE '' END AS FULL_PART_TIME,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MMDDYYYY') AS CHANGE_JOB_DATE,
ASS.REASON_CODE AS CHANGE_REASON_CODE,
CASE WHEN ACTION_CODE IN ('INVOLUNTARY_TERMINATION','VOLUNTARY_TERMINATION') THEN TO_CHAR(POS.ACTUAL_TERMINATION_DATE,'MMDDYYYY')
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN TO_CHAR(ass.effective_start_DATE,'MMDDYYYY') ELSE '' end AS TERMINATION_DATE,
ASS.ASSIGNMENT_STATUS_TYPE,

/* Begin - Changes made as a part of TP ID#36138  - CHG0144902 - Below is the modified sql to make sure Employee Status is sent as 'A' when a person has RFL on top of LOA. Rest all remains same*/

CASE
WHEN ASS.ACTION_CODE IN ('LEAVE_OF_ABSENCE') THEN 'L'
WHEN ASS.ACTION_CODE IN ('RETURN_FROM_LEAVE') THEN 'A'
WHEN ((SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M A WHERE A.ACTION_CODE='LEAVE_OF_ABSENCE' AND A.PERSON_ID=ASS.PERSON_ID)>= (SELECT NVL(MAX(B.EFFECTIVE_START_DATE),TO_DATE('01-01-1901','DD-MM-YYYY')) FROM PER_ALL_ASSIGNMENTS_M B WHERE B.ACTION_CODE='RETURN_FROM_LEAVE' AND B.PERSON_ID=ASS.PERSON_ID)) THEN 'L'
ELSE 'A'
END AS EMPLOYEE_STATUS,

/* End - Changes made as a part of TP ID#36138  - CHG0144902 - Above is the modified sql to make sure Employee Status is sent as 'A' when a person has RFL on top of LOA. Rest all remains same*/



TO_CHAR(ASS.EFFECTIVE_START_DATE,'MMDDYYYY') AS EMPLOYEE_STATUS_CHANGE_DATE,
CASE WHEN ASS.ACTION_CODE IN ('DEATH') THEN 'Y' ELSE 'N' END AS DECEASED,

CASE WHEN
(GREATEST(TRUNC(NAME.EFFECTIVE_START_DATE),TRUNC(NAME.LAST_UPDATE_DATE),TRUNC(ADDR.EFFECTIVE_START_DATE),TRUNC(ADDR.LAST_UPDATE_DATE),NVL( PH.LAST_UPDATE_DATE, TO_DATE('1900-01-01', 'YYYY.MM.DD')),NVL( PH.DATE_FROM, TO_DATE('1900-01-01', 'YYYY.MM.DD')))) BETWEEN TRUNC(SYSDATE-1) AND (SYSDATE)
THEN (TO_CHAR(GREATEST(NVL(NAME.EFFECTIVE_START_DATE,TO_date('01011900', 'MMDDYYYY')),NVL(ADDR.EFFECTIVE_START_DATE,TO_date('01011900', 'MMDDYYYY')),NVL(PH.DATE_FROM,TO_date('01011900', 'MMDDYYYY'))),'MMDDYYYY'))
ELSE '' END AS NAME_ADDRESS_PHONE_CHANGE_DATE,
PH.DATE_FROM,
ASS.FREQUENCY,
SLA.SALARY_BASIS_CODE,
CM.SALARY_AMOUNT

FROM PER_ALL_ASSIGNMENTS_F ASS,
PER_NATIONAL_IDENTIFIERS SSN,
PER_PERSON_NAMES_F NAME,
PER_ALL_PEOPLE_F PER,
PER_PERSONS PP,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_LEGAL_EMPLOYERS LE,
PER_ETHNICITIES ETHN,
PER_PERIODS_OF_SERVICE POS,
PER_ASSIGNMENT_SUPERVISORS_F SUP,
PER_DEPARTMENTS DEPT,
CMP_SALARY CM,
CMP_SALARY_V CMV,
CMP_SALARY_BASES SLA,
PER_ADDRESSES_F ADDR,
PER_PERSON_ADDR_USAGES_F ADF,
HR_LOCATIONS_ALL LOC,
FND_TERRITORIES_VL FT,
PER_JOBS_F_VL JOB,
PER_PHONES_V PH,
PAY_ALL_PAYROLLS_F PAY,
        PAY_REL_GROUPS_DN PREL,

        PAY_ASSIGNED_PAYROLLS_DN PAP

WHERE --ASS.ASSIGNMENT_TYPE IN ('E')
        (ASS.ASSIGNMENT_TYPE IN ('E') or PER.PERSON_NUMBER in ('505440')) /* Changes made as part of CR # CHG0162395 / TP # 42255 to include on Contractor.*/
AND NAME.NAME_TYPE='GLOBAL'
AND FT.TERRITORY_CODE(+)=ADDR.COUNTRY
AND ASS.PERSON_ID=PER.PERSON_ID
AND PER.PERSON_ID=SSN.PERSON_ID(+)
and per.pRIMARY_NID_ID=SSN.NATIONAL_IDENTIFIER_ID(+)
AND PER.PERSON_ID=NAME.PERSON_ID
-----AND PER.PERSON_NUMBER = '501221'
AND PER.PERSON_ID=PP.PERSON_ID(+)
AND PER.PERSON_ID=PPL.PERSON_ID(+)
AND LE.ORGANIZATION_ID(+)=ASS.LEGAL_ENTITY_ID
AND ASS.PERSON_ID=ETHN.PERSON_ID(+)
AND ASS.PERSON_ID=POS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID=POS.PERIOD_OF_SERVICE_ID(+)
AND ASS.ASSIGNMENT_ID=SUP.ASSIGNMENT_ID(+)
AND ASS.PERSON_ID=SUP.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=DEPT.ORGANIZATION_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND CM.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND CMV.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND CM.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ADF.ADDRESS_ID=ADDR.ADDRESS_ID(+)
AND ADF.PERSON_ID(+)=PER.PERSON_ID
AND SUP.MANAGER_TYPE(+)='LINE_MANAGER'
AND ADF.ADDRESS_TYPE(+)='HOME'

AND PH.PHONE_TYPE(+) ='H1'
AND PH.PERSON_ID(+) = PER.PERSON_ID
AND ASS.ASSIGNMENT_NUMBER=PREL.ASSIGNMENT_NUMBER(+)
AND PREL.PARENT_REL_GROUP_ID = PAP.PAYROLL_TERM_ID(+)
AND PAP.PAYROLL_ID = PAY.PAYROLL_ID(+)
AND TRUNC(SYSDATE) BETWEEN PAY.EFFECTIVE_START_DATE(+) AND PAY.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PAP.START_DATE(+) AND PAP.END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PREL.START_DATE(+) AND PREL.END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM(+) AND nvl(PH.DATE_TO, TO_DATE('4712-01-01', 'YYYY-MM-DD'))

        /* Code changes Start by Ismail, to Restrict "Higher One Inc." - LE employees from Feed,as part of CR # CHG0158667 - TP # 41060  */
        /*AND ((ASS.LEGAL_ENTITY_ID NOT IN (SELECT distinct ORGANIZATION_ID FROM PER_LEGAL_EMPLOYERS  WHERE  NAME IN ('Higher One Inc.','Higher One India Ltd')
                                AND TRUNC(sysdate) between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE))
OR ASS.ASS_ATTRIBUTE3 NOT IN ('BB9')) */


/* Code change Start by Chad, remove code that restricts the US employee*/
/*AND ASS.LEGAL_ENTITY_ID NOT IN ('300000131391295','300000127921941')*/

AND ASS.LEGAL_ENTITY_ID NOT IN ('300000131391295')

/* Code Change End by Chad, remove code that restricts the US employee*/


/* Code changes End by Ismail, to Restrict "Higher One Inc." - LE employees from Feed,as part of CR # CHG0158667 - TP # 41060  */

-- AND (GREATEST(TRUNC(PER.LAST_UPDATE_DATE),TRUNC(PER.EFFECTIVE_START_DATE)) BETWEEN TRUNC(SYSDATE - 12) AND  TRUNC(SYSDATE)
-- OR GREATEST(TRUNC(ASS.LAST_UPDATE_DATE),TRUNC(ASS.EFFECTIVE_START_DATE)) BETWEEN TRUNC(SYSDATE - 12) AND  TRUNC(SYSDATE)
-- OR GREATEST(TRUNC(ADDR.LAST_UPDATE_DATE),TRUNC(ADDR.EFFECTIVE_START_DATE)) BETWEEN TRUNC(SYSDATE - 12) AND  TRUNC(SYSDATE)
-- OR GREATEST(TRUNC(CM.LAST_UPDATE_DATE),TRUNC(CM.DATE_FROM)) BETWEEN TRUNC(SYSDATE - 12) AND  TRUNC(SYSDATE)
-- OR GREATEST(TRUNC(NAME.LAST_UPDATE_DATE),TRUNC(NAME.EFFECTIVE_START_DATE)) BETWEEN TRUNC(SYSDATE - 12) AND  TRUNC(SYSDATE))

AND (TRUNC(ASS.EFFECTIVE_START_DATE)     BETWEEN TRUNC(SYSDATE - 18) AND  TRUNC(SYSDATE)
OR   TRUNC(ADDR.EFFECTIVE_START_DATE)    BETWEEN TRUNC(SYSDATE - 18) AND  TRUNC(SYSDATE)
OR   TRUNC(CM.DATE_FROM)                 BETWEEN TRUNC(SYSDATE - 18) AND  TRUNC(SYSDATE)
OR   TRUNC(NAME.EFFECTIVE_START_DATE)    BETWEEN TRUNC(SYSDATE - 18) AND  TRUNC(SYSDATE)

OR TRUNC(ASS.LAST_UPDATE_DATE)     BETWEEN TRUNC(SYSDATE - 18) AND  TRUNC(SYSDATE)
OR   TRUNC(ADDR.LAST_UPDATE_DATE)    BETWEEN TRUNC(SYSDATE - 18) AND  TRUNC(SYSDATE)
OR   TRUNC(CM.LAST_UPDATE_DATE)                 BETWEEN TRUNC(SYSDATE - 18) AND  TRUNC(SYSDATE)
OR   TRUNC(NAME.LAST_UPDATE_DATE)    BETWEEN TRUNC(SYSDATE - 18) AND  TRUNC(SYSDATE)
)


AND ((ADDR.EFFECTIVE_START_DATE = (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ADDRESSES_F A, PER_PERSON_ADDR_USAGES_F B  WHERE A.ADDRESS_ID(+)=B.ADDRESS_ID AND B.PERSON_ID(+)=ASS.PERSON_ID AND B.ADDRESS_TYPE(+)='HOME' AND TRUNC(sysdate) between A.EFFECTIVE_START_DATE(+) and A.EFFECTIVE_END_DATE(+) AND TRUNC(sysdate) between B.EFFECTIVE_START_DATE(+) and B.EFFECTIVE_END_DATE(+))) OR (ADDR.EFFECTIVE_START_DATE IS NULL))

AND PPL.PERSON_LEGISLATIVE_ID = (SELECT MAX(PERSON_LEGISLATIVE_ID) FROM PER_PEOPLE_LEGISLATIVE_F WHERE PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE)

AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND ASS.PRIMARY_FLAG='Y'
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE AND NAME.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN DEPT.EFFECTIVE_START_DATE(+) AND DEPT.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN LE.EFFECTIVE_START_DATE(+) AND LE.EFFECTIVE_END_DATE(+)
AND TRUNC(sysdate) between ADDR.EFFECTIVE_START_DATE(+) and ADDR.EFFECTIVE_END_DATE(+)
AND TRUNC(sysdate) between ADF.EFFECTIVE_START_DATE(+) and ADF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN CM.DATE_FROM(+) AND CM.DATE_TO(+)
AND TRUNC(SYSDATE) BETWEEN CMV.DATE_FROM(+) AND CMV.DATE_TO(+)
ORDER BY PER.PERSON_NUMBER

-----

SELECT ASS.PERSON_ID,
CASE WHEN ASS.ACTION_CODE IN ('HIRE','REHIRE','HIRE_ADD_WORK_RELATION','ADD_AN_EMPLOYEE','ADD_PERSON_OF_INTEREST') and GREATEST(TRUNC(ASS.LAST_UPDATE_DATE),TRUNC(ASS.EFFECTIVE_START_DATE)) BETWEEN TRUNC(SYSDATE - 18) AND TRUNC(SYSDATE) THEN 'H'
WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') THEN 'T'
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'T'
ELSE 'J'
END AS TRANSACTION_TYPE,

(SELECT LEGAL_ENTITY_IDENTIFIER FROM XLE_ENTITY_PROFILES WHERE NAME=LE.NAME AND TRUNC(SYSDATE) BETWEEN NVL(EFFECTIVE_FROM, TO_DATE('1900.01.01', 'YYYY.MM.DD')) AND NVL(EFFECTIVE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS COMPANY,
REPLACE(REPLACE (SSN.NATIONAL_IDENTIFIER_NUMBER, '-', ''),' ','') AS NATIONAL_ID,
REPLACE(NAME.FIRST_NAME,'?','') AS EMPLOYEE_FIRST_NAME,
REPLACE(NAME.MIDDLE_NAMES,'?','') AS MIDDLE_NAME,
REPLACE(NAME.LAST_NAME,'?','') AS EMPLOYEE_LAST_NAME,
PER.PERSON_NUMBER AS EMPLID,
ADDR.ADDRESS_LINE_1,
ADDR.ADDRESS_LINE_2,
ADDR.TOWN_OR_CITY AS CITY,
ADDR.REGION_2 AS STATE_POSTAL_CODE,
ADDR.POSTAL_CODE AS ZIP_CODE,
REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+','') AS PHONE_NUMBER,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_TYPE = 'W1' AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS BUSN_EMAIL_ID,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL2.EMAIL_TYPE IN ('H1','BB_OTHR') AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD')) AND ROWNUM < 2) AS ALTERNATE_EMAIL,
TO_CHAR (PP.DATE_OF_BIRTH,'MMDDYYYY') AS BIRTH_DATE,
PPL.SEX AS GENDER,
PPL.MARITAL_STATUS AS ACTUAL_MARITAL_STATUS,
(SELECT MEANING FROM HCM_LOOKUPS WHERE LOOKUP_CODE=ETHN.ETHNICITY AND LOOKUP_TYPE='PER_ETHNICITY' AND TRUNC(SYSDATE) BETWEEN START_DATE_ACTIVE AND NVL(END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS ETHNIC_ORIGIN,
(SELECT MEANING FROM HCM_LOOKUPS WHERE LOOKUP_CODE=ETHN.ETHNICITY AND LOOKUP_TYPE='PER_ETHNICITY' AND TRUNC(SYSDATE) BETWEEN START_DATE_ACTIVE AND NVL(END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS ETHNICITY,
FT.ISO_TERRITORY_CODE AS COUNTRY,
/* Code changes start by Ismail, Commented below line for ORIG_HIRE_DATE and rebuild the new logic for the same as part of CR#CHG0135353/TP#29443*/
--(select TO_CHAR(min(ORIGINAL_DATE_OF_HIRE),'MMDDYYYY') FROM per_periods_of_service where person_id=per.person_id) AS ORIG_HIRE_DATE,
 CASE
  WHEN (SELECT distinct (1) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ASSIGNMENT_TYPE in ('E','C') and
                                             ((reason_CODE IN ('REHIRE','REHIRE_WKR')) or (ACTION_CODE in ('REHIRE')))) = 1
 
  THEN
  TO_CHAR(( SELECT distinct MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M  WHERE PERSON_ID=ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E','C')
                                                AND ((reason_CODE IN ('REHIRE','REHIRE_WKR')) or (ACTION_CODE in ('REHIRE')))),'MMDDYYYY')
  else
  TO_CHAR(( SELECT distinct min(ORIGINAL_DATE_OF_HIRE) from per_periods_of_service where person_id=per.person_id),'MMDDYYYY') end AS ORIG_HIRE_DATE,
  /* Code changes End by Ismail, Commented line for ORIG_HIRE_DATE and rebuild the new logic for the same as part of CR#CHG0135353/TP#29443*/
(SELECT TO_CHAR(MAX(effective_START_date),'MMDDYYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ((reason_CODE IN ('REHIRE','REHIRE_WKR')) or (ACTION_CODE in ('REHIRE')))) AS REHIRE_DATE,

(select TO_CHAR(min(ORIGINAL_DATE_OF_HIRE),'MMDDYYYY') FROM per_periods_of_service where person_id=per.person_id) AS ADJUSTED_SVC_DATE,

(SELECT DISTINCT PERSON_NUMBER FROM PER_ALL_PEOPLE_F PER WHERE PER.PERSON_ID=SUP.MANAGER_ID AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE) AS SUPERVISOR,
JOB.ATTRIBUTE1  AS WORKERS_COMP_CODE,
ASS.ASS_ATTRIBUTE4 AS ALTERNATE_JOB,
-- LOC.INTERNAL_LOCATION_CODE AS LOCATION,

CASE WHEN LOC.INTERNAL_LOCATION_cODE = 'AZ01' THEN 'AZ'
     WHEN LOC.INTERNAL_LOCATION_cODE = 'DC01' THEN 'DC'
     WHEN LOC.INTERNAL_LOCATION_cODE = 'KY01' THEN 'KY'
     WHEN LOC.INTERNAL_LOCATION_cODE = 'MA01' THEN 'MA'
     WHEN LOC.INTERNAL_LOCATION_cODE = 'MD02' THEN 'MD'
     WHEN LOC.INTERNAL_LOCATION_cODE = 'TX01' THEN 'TX'
     WHEN LOC.INTERNAL_LOCATION_cODE = 'VA01' THEN 'VA'
     WHEN LOC.INTERNAL_LOCATION_CODE = 'REMOTE' THEN 'TELE'||ADDR.REGION_2
ELSE LOC.INTERNAL_LOCATION_CODE END AS LOCATION,




(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,7,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS DEPARTMENT,

(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,11,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS MARKET,

(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,15,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS REGION,

(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,19,4)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS OPERATING_UNIT,


CMV.LOCAL_CURRENCY,

CASE WHEN UPPER(ASS.ASS_ATTRIBUTE8) = 'NONEXEMPT' THEN 'N'
     WHEN UPPER(ASS.ASS_ATTRIBUTE8) = 'EXEMPT' THEN 'E'
     ELSE ' ' END AS FLSA_CODE,

-- CASE WHEN PAY.PAYROLL_NAME LIKE ('%Hourly%') THEN ROUND(((CM.SALARY_AMOUNT * SALARY_ANNUALIZATION_FACTOR ) /2080),2)
-- WHEN PAY.PAYROLL_NAME LIKE ('%Monthly%') THEN ROUND(((CM.SALARY_AMOUNT * SALARY_ANNUALIZATION_FACTOR )/12),2)
-- WHEN PAY.PAYROLL_NAME LIKE ('%Biweekly%') THEN ROUND(((CM.SALARY_AMOUNT * SALARY_ANNUALIZATION_FACTOR ) /26),2)
-- WHEN PAY.PAYROLL_NAME LIKE ('%Annually%') THEN ROUND(CM.SALARY_AMOUNT,2)
-- ELSE ROUND(CM.SALARY_AMOUNT,2) END AS PAY_RATE,


CASE WHEN SLA.SALARY_BASIS_CODE IN ('HOURLY') THEN ROUND(CM.SALARY_AMOUNT,2)
     WHEN SLA.SALARY_BASIS_CODE NOT IN ('HOURLY') AND ASS.LEGISLATION_CODE IN ('US','CA') THEN ROUND(((CM.SALARY_AMOUNT * SALARY_ANNUALIZATION_FACTOR )/26),2)
     WHEN SLA.SALARY_BASIS_CODE NOT IN ('HOURLY') AND ASS.LEGISLATION_CODE NOT IN ('US','CA') AND SLA.NAME NOT LIKE '%13%' AND SLA.NAME NOT LIKE '%14%' THEN ROUND(((CM.SALARY_AMOUNT * SALARY_ANNUALIZATION_FACTOR )/12),2)
     WHEN SLA.SALARY_BASIS_CODE NOT IN ('HOURLY') AND ASS.LEGISLATION_CODE NOT IN ('US','CA') AND SLA.NAME LIKE '%13%' AND SLA.NAME NOT LIKE '%14%' THEN ROUND(((CM.SALARY_AMOUNT * SALARY_ANNUALIZATION_FACTOR )/13),2)
     WHEN SLA.SALARY_BASIS_CODE NOT IN ('HOURLY') AND ASS.LEGISLATION_CODE NOT IN ('US','CA') AND SLA.NAME NOT LIKE '%13%' AND SLA.NAME LIKE '%14%' THEN ROUND(((CM.SALARY_AMOUNT * SALARY_ANNUALIZATION_FACTOR )/14),2)
ELSE 0 END AS PAY_RATE,


CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','PR') THEN 'R'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FT','PT') THEN 'T'
ELSE '' END AS EMPLOYEE_TYPE,

ASS.HOURLY_SALARIED_CODE AS  HOURLY_SALARIED,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'F'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'P'
ELSE '' END AS FULL_PART_TIME,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MMDDYYYY') AS CHANGE_JOB_DATE,
ASS.REASON_CODE AS CHANGE_REASON_CODE,
CASE WHEN ACTION_CODE IN ('INVOLUNTARY_TERMINATION','VOLUNTARY_TERMINATION') THEN TO_CHAR(POS.ACTUAL_TERMINATION_DATE,'MMDDYYYY')
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN TO_CHAR(ass.effective_start_DATE,'MMDDYYYY') ELSE '' end AS TERMINATION_DATE,
ASS.ASSIGNMENT_STATUS_TYPE,

/* Begin - Changes made as a part of TP ID#36138  - CHG0144902 - Below is the modified sql to make sure Employee Status is sent as 'A' when a person has RFL on top of LOA. Rest all remains same*/

CASE
WHEN ASS.ACTION_CODE IN ('LEAVE_OF_ABSENCE') THEN 'L'
WHEN ASS.ACTION_CODE IN ('RETURN_FROM_LEAVE') THEN 'A'
WHEN ((SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M A WHERE A.ACTION_CODE='LEAVE_OF_ABSENCE' AND A.PERSON_ID=ASS.PERSON_ID)>= (SELECT NVL(MAX(B.EFFECTIVE_START_DATE),TO_DATE('01-01-1901','DD-MM-YYYY')) FROM PER_ALL_ASSIGNMENTS_M B WHERE B.ACTION_CODE='RETURN_FROM_LEAVE' AND B.PERSON_ID=ASS.PERSON_ID)) THEN 'L'
ELSE 'A'
END AS EMPLOYEE_STATUS,

/* End - Changes made as a part of TP ID#36138  - CHG0144902 - Above is the modified sql to make sure Employee Status is sent as 'A' when a person has RFL on top of LOA. Rest all remains same*/



TO_CHAR(ASS.EFFECTIVE_START_DATE,'MMDDYYYY') AS EMPLOYEE_STATUS_CHANGE_DATE,
CASE WHEN ASS.ACTION_CODE IN ('DEATH') THEN 'Y' ELSE 'N' END AS DECEASED,

CASE WHEN
(GREATEST(TRUNC(NAME.EFFECTIVE_START_DATE),TRUNC(NAME.LAST_UPDATE_DATE),TRUNC(ADDR.EFFECTIVE_START_DATE),TRUNC(ADDR.LAST_UPDATE_DATE),NVL( PH.LAST_UPDATE_DATE, TO_DATE('1900-01-01', 'YYYY.MM.DD')),NVL( PH.DATE_FROM, TO_DATE('1900-01-01', 'YYYY.MM.DD')))) BETWEEN TRUNC(SYSDATE-1) AND (SYSDATE)
THEN (TO_CHAR(GREATEST(NVL(NAME.EFFECTIVE_START_DATE,TO_date('01011900', 'MMDDYYYY')),NVL(ADDR.EFFECTIVE_START_DATE,TO_date('01011900', 'MMDDYYYY')),NVL(PH.DATE_FROM,TO_date('01011900', 'MMDDYYYY'))),'MMDDYYYY'))
ELSE '' END AS NAME_ADDRESS_PHONE_CHANGE_DATE,
PH.DATE_FROM,
ASS.FREQUENCY,
SLA.SALARY_BASIS_CODE,
CM.SALARY_AMOUNT

FROM PER_ALL_ASSIGNMENTS_F ASS,
PER_NATIONAL_IDENTIFIERS SSN,
PER_PERSON_NAMES_F NAME,
PER_ALL_PEOPLE_F PER,
PER_PERSONS PP,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_LEGAL_EMPLOYERS LE,
PER_ETHNICITIES ETHN,
PER_PERIODS_OF_SERVICE POS,
PER_ASSIGNMENT_SUPERVISORS_F SUP,
PER_DEPARTMENTS DEPT,
CMP_SALARY CM,
CMP_SALARY_V CMV,
CMP_SALARY_BASES SLA,
PER_ADDRESSES_F ADDR,
PER_PERSON_ADDR_USAGES_F ADF,
HR_LOCATIONS_ALL LOC,
FND_TERRITORIES_VL FT,
PER_JOBS_F_VL JOB,
PER_PHONES_V PH,
PAY_ALL_PAYROLLS_F PAY,
        PAY_REL_GROUPS_DN PREL,

        PAY_ASSIGNED_PAYROLLS_DN PAP

WHERE --ASS.ASSIGNMENT_TYPE IN ('E')
        (ASS.ASSIGNMENT_TYPE IN ('E') or PER.PERSON_NUMBER in ('505440')) /* Changes made as part of CR # CHG0162395 / TP # 42255 to include on Contractor.*/
AND NAME.NAME_TYPE='GLOBAL'
AND FT.TERRITORY_CODE(+)=ADDR.COUNTRY
AND ASS.PERSON_ID=PER.PERSON_ID
AND PER.PERSON_ID=SSN.PERSON_ID(+)
and per.pRIMARY_NID_ID=SSN.NATIONAL_IDENTIFIER_ID(+)
AND PER.PERSON_ID=NAME.PERSON_ID
-----AND PER.PERSON_NUMBER = '501221'
AND PER.PERSON_ID=PP.PERSON_ID(+)
AND PER.PERSON_ID=PPL.PERSON_ID(+)
AND LE.ORGANIZATION_ID(+)=ASS.LEGAL_ENTITY_ID
AND ASS.PERSON_ID=ETHN.PERSON_ID(+)
AND ASS.PERSON_ID=POS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID=POS.PERIOD_OF_SERVICE_ID(+)
AND ASS.ASSIGNMENT_ID=SUP.ASSIGNMENT_ID(+)
AND ASS.PERSON_ID=SUP.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=DEPT.ORGANIZATION_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND CM.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND CMV.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND CM.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ADF.ADDRESS_ID=ADDR.ADDRESS_ID(+)
AND ADF.PERSON_ID(+)=PER.PERSON_ID
AND SUP.MANAGER_TYPE(+)='LINE_MANAGER'
AND ADF.ADDRESS_TYPE(+)='HOME'

AND PH.PHONE_TYPE(+) ='H1'
AND PH.PERSON_ID(+) = PER.PERSON_ID
AND ASS.ASSIGNMENT_NUMBER=PREL.ASSIGNMENT_NUMBER(+)
AND PREL.PARENT_REL_GROUP_ID = PAP.PAYROLL_TERM_ID(+)
AND PAP.PAYROLL_ID = PAY.PAYROLL_ID(+)
AND TRUNC(SYSDATE) BETWEEN PAY.EFFECTIVE_START_DATE(+) AND PAY.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PAP.START_DATE(+) AND PAP.END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PREL.START_DATE(+) AND PREL.END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM(+) AND nvl(PH.DATE_TO, TO_DATE('4712-01-01', 'YYYY-MM-DD'))

/* Code changes Start by Ismail, to Restrict "Higher One." - LE employees from Feed,as part of CR # CHG0158667 - TP # 41060  */
        /*AND ((ASS.LEGAL_ENTITY_ID NOT IN (SELECT distinct ORGANIZATION_ID FROM PER_LEGAL_EMPLOYERS  WHERE  NAME IN ('Higher One Inc.','Higher One India Ltd')
                                AND TRUNC(sysdate) between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE))
OR ASS.ASS_ATTRIBUTE3 NOT IN ('BB9')) */

/* Code change Start by Chad, remove code that restricts the US employee*/
/*AND ASS.LEGAL_ENTITY_ID NOT IN ('300000131391295','300000127921941')*/

AND ASS.LEGAL_ENTITY_ID NOT IN ('300000131391295')

/* Code Change End by Chad, remove code that restricts the US employee*/

/* Code changes End by Ismail, to Restrict "Higher One." - LE employees from Feed,as part of CR # CHG0158667 - TP # 41060  */


-- AND (GREATEST(TRUNC(PER.LAST_UPDATE_DATE),TRUNC(PER.EFFECTIVE_START_DATE)) BETWEEN TRUNC(SYSDATE - 12) AND  TRUNC(SYSDATE)
-- OR GREATEST(TRUNC(ASS.LAST_UPDATE_DATE),TRUNC(ASS.EFFECTIVE_START_DATE)) BETWEEN TRUNC(SYSDATE - 12) AND  TRUNC(SYSDATE)
-- OR GREATEST(TRUNC(ADDR.LAST_UPDATE_DATE),TRUNC(ADDR.EFFECTIVE_START_DATE)) BETWEEN TRUNC(SYSDATE - 12) AND  TRUNC(SYSDATE)
-- OR GREATEST(TRUNC(CM.LAST_UPDATE_DATE),TRUNC(CM.DATE_FROM)) BETWEEN TRUNC(SYSDATE - 12) AND  TRUNC(SYSDATE)
-- OR GREATEST(TRUNC(NAME.LAST_UPDATE_DATE),TRUNC(NAME.EFFECTIVE_START_DATE)) BETWEEN TRUNC(SYSDATE - 12) AND  TRUNC(SYSDATE))

/* AND (TRUNC(ASS.EFFECTIVE_START_DATE)     BETWEEN TRUNC(SYSDATE - 18) AND  TRUNC(SYSDATE)
OR   TRUNC(ADDR.EFFECTIVE_START_DATE)    BETWEEN TRUNC(SYSDATE - 18) AND  TRUNC(SYSDATE)
OR   TRUNC(CM.DATE_FROM)                 BETWEEN TRUNC(SYSDATE - 18) AND  TRUNC(SYSDATE)
OR   TRUNC(NAME.EFFECTIVE_START_DATE)    BETWEEN TRUNC(SYSDATE - 18) AND  TRUNC(SYSDATE)

OR TRUNC(ASS.LAST_UPDATE_DATE)     BETWEEN TRUNC(SYSDATE - 18) AND  TRUNC(SYSDATE)
OR   TRUNC(ADDR.LAST_UPDATE_DATE)    BETWEEN TRUNC(SYSDATE - 18) AND  TRUNC(SYSDATE)
OR   TRUNC(CM.LAST_UPDATE_DATE)                 BETWEEN TRUNC(SYSDATE - 18) AND  TRUNC(SYSDATE)
OR   TRUNC(NAME.LAST_UPDATE_DATE)    BETWEEN TRUNC(SYSDATE - 18) AND  TRUNC(SYSDATE)
)
*/

AND ((ADDR.EFFECTIVE_START_DATE = (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ADDRESSES_F A, PER_PERSON_ADDR_USAGES_F B  WHERE A.ADDRESS_ID(+)=B.ADDRESS_ID AND B.PERSON_ID(+)=ASS.PERSON_ID AND B.ADDRESS_TYPE(+)='HOME' AND TRUNC(sysdate) between A.EFFECTIVE_START_DATE(+) and A.EFFECTIVE_END_DATE(+) AND TRUNC(sysdate) between B.EFFECTIVE_START_DATE(+) and B.EFFECTIVE_END_DATE(+))) OR (ADDR.EFFECTIVE_START_DATE IS NULL))

AND PPL.PERSON_LEGISLATIVE_ID = (SELECT MAX(PERSON_LEGISLATIVE_ID) FROM PER_PEOPLE_LEGISLATIVE_F WHERE PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE)

AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND ASS.PRIMARY_FLAG='Y'
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE AND NAME.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN DEPT.EFFECTIVE_START_DATE(+) AND DEPT.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN LE.EFFECTIVE_START_DATE(+) AND LE.EFFECTIVE_END_DATE(+)
AND TRUNC(sysdate) between ADDR.EFFECTIVE_START_DATE(+) and ADDR.EFFECTIVE_END_DATE(+)
AND TRUNC(sysdate) between ADF.EFFECTIVE_START_DATE(+) and ADF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN CM.DATE_FROM(+) AND CM.DATE_TO(+)
AND TRUNC(SYSDATE) BETWEEN CMV.DATE_FROM(+) AND CMV.DATE_TO(+)
ORDER BY PER.PERSON_NUMBER

***********************************************************************************************************************************************


Ascendify

select
per.person_number as PERSONID,
ppnf.FIRST_NAME,
ppnf.MIDDLE_NAMES,
ppnf.LAST_NAME,
case when ass.assignment_status_type ='ACTIVE' then 'A' else 'I' END as STATUS,
ass.manager_flag as MANAGER_FLG,
ass.last_update_date,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2
WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_TYPE = 'W1' AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS BUSN_EMAIL_ID,
PP.ATTRIBUTE1 AS CANDIDATE_ID


from
per_all_people_f per,
per_all_assignments_m ass,
PER_PERSON_NAMES_F ppnf,
PER_PERSONS PP

where
per.person_id=ass.person_id
and ass.person_id=ppnf.person_id(+)
AND PP.PERSON_ID(+)=PER.PERSON_ID
and ((greatest(ass.last_update_date,ass.effective_start_date) between sysdate-7 and sysdate)
      or (greatest(ppnf.last_update_date,ppnf.effective_start_date) between sysdate-7 and sysdate))
and ass.assignment_SEQUENCE=(select max(assignment_SEQUENCE) from per_all_assignments_m where person_id=ass.person_id and assignment_type=ass.assignment_type and trunc(SYSDATE) between effective_start_date  and effective_end_date )
and ppnf.NAME_TYPE ='GLOBAL'
AND ass.ASSIGNMENT_TYPE = ('E')
and ass.EFFECTIVE_LATEST_CHANGE = 'Y'
and ass.effective_start_date between per.effective_start_date  and per.effective_end_date
AND trunc(SYSDATE) BETWEEN PPNF.EFFECTIVE_START_DATE(+) AND PPNF.EFFECTIVE_END_DATE(+)
and trunc(SYSDATE) between ass.effective_start_date  and ass.effective_end_date
order by person_number

---

select
job.job_code as JOBCODE,
job.name as DESCR,
job.active_status as STATUS
from
PER_JOBS_F_VL job
where
greatest(job.last_update_date,job.effective_start_date) between sysdate-7 and sysdate

and SYSDATE between job.effective_start_date  and job.effective_end_date
order by job_code

----------

select
CASE WHEN INSTR(DEPT.NAME,'__',1) != 0  THEN SUBSTR(DEPT.NAME, NVL(INSTR(DEPT.NAME,'__',1),0)+2)
WHEN INSTR(DEPT.NAME,'__',1) = 0  THEN NULL  END as DEPARTMENTCODE,

CASE WHEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) IS NOT NULL THEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) ELSE DEPT.NAME END AS  DESCR,

hac.status as STATUS

from
HR_ALL_ORGANIZATION_UNITS_F_VL dept,
HR_ORG_UNIT_CLASSIFICATIONS_F hac

where
dept.organization_id=hac.ORGANIZATION_ID
and hac.CLASSIFICATION_CODE = 'DEPARTMENT'
and greatest(dept.last_update_date,dept.effective_start_date) between sysdate-7 and sysdate
and SYSDATE between dept.effective_start_date and dept.effective_end_date
and SYSDATE between hac.effective_start_date and hac.effective_end_date
order by attribute3

------------

select
loc.internal_location_code as LOCATION,
loc.location_name as DESCR,
loc.ADDRESS_LINE_1 as ADDRESS1,
loc.ADDRESS_LINE_2 as ADDRESS2,
loc.TOWN_OR_CITY as CITY,
loc.REGION_2 as STATE_,
loc.POSTAL_CODE as POSTAL,
loc.COUNTRY as COUNTRY,
loc.ACTIVE_STATUS as STATUS


from
HR_LOCATIONS loc

where
greatest(loc.last_update_date,loc.effective_start_date) between sysdate-7 and sysdate
and trunc(SYSDATE) between loc.effective_start_date and loc.effective_end_date
order by location_code

***********************************************************************************************************************************************


Verint Hourly Employee Feed_DM

----------------------ASSIGNMENTS_HOURLY-------------------------
SELECT  DISTINCT PER.PERSON_NUMBER AS EMPLID,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS EFFDT,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'YYYY/MM/DD') AS EFFDAT,
ASS.EFFECTIVE_SEQUENCE AS EFFSEQ,
PPNF.FIRST_NAME,
PPNF.LAST_NAME,
(SELECT DISTINCT HROF.ORG_INFORMATION2 FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
/*Modified as per TP#37357 - Begin */
/*AND ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)*/
/*Modified as per TP#37357 - End*/
AND ROWNUM=1) AS DEPTID,
ASS.HOURLY_SALARIED_CODE AS EMPL_TYPE,
TO_CHAR(PPOS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS HIRE_DT,
PJ.JOB_CODE AS JOBCODE,
TO_CHAR(PPOS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DT,
-- LOC.TIMEZONE_CODE AS TIMEZONE,
'' AS NATION_ID,
LOC.INTERNAL_LOCATION_CODE AS LOCATION,
ASS.ACTION_CODE,
NVL((SELECT DISTINCT ACTION_CODE
FROM PER_ALL_ASSIGNMENTS_F
WHERE 1=1 AND ACTION_CODE IN ('REHIRE') AND PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C')
AND HOURLY_SALARIED_CODE in ('H','S') AND LEGISLATION_CODE='US'),'HIRE')
AS HIRE_RULE_ID,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','PR') THEN 'R'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PT','FT') THEN 'T' END AS REG_TEMP,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'F'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'P' END AS FULL_PART_TIME,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F WHERE PASF.MANAGER_ID=PERSON_ID AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_ID,
(SELECT LAST_NAME||','||FIRST_NAME FROM PER_PERSON_NAMES_F  WHERE PASF.MANAGER_ID=PERSON_ID AND NAME_TYPE='GLOBAL' AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_NAME,
CASE WHEN ASS.HOURLY_SALARIED_CODE = 'H' THEN CS.SALARY_AMOUNT ELSE 0 END AS HOURLY_RT,
(SELECT DISTINCT HROF.ORG_INFORMATION2
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
/*Modified as per TP#37357 - Begin */
/*AND ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)*/
/*Modified as per TP#37357 - End*/
AND ROWNUM=1) AS CHARTFIELD_LABEL,
CASE WHEN LOC.LOCATION_NAME LIKE '%Remote%' THEN 'REMOTE' ELSE LOC.INTERNAL_LOCATION_CODE END AS BB_PHYSICAL_LOC_CD,
LOC.INTERNAL_LOCATION_CODE,
/*CASE WHEN ASS.WORK_AT_HOME='Y'
THEN (SELECT PA.REGION_2
  FROM PER_ADDRESSES_F PA,PER_PERSON_ADDR_USAGES_F PAA
  WHERE PAA.ADDRESS_TYPE(+)='H1'
AND ASS.PERSON_ID=PAA.PERSON_ID(+)
AND PAA.ADDRESS_ID=PA.ADDRESS_ID(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PAA.EFFECTIVE_START_DATE  AND PAA.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN PA.EFFECTIVE_START_DATE  AND PA.EFFECTIVE_END_DATE)
ELSE LOC.REGION_2 END AS STATE_,*/
LOC.REGION_2 AS STATE_,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'Y' ELSE 'N' END AS TERM_LBL,
PP.ATTRIBUTE1 AS ALTER_EMPLID,



NVL((SELECT DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET,PAY_ELEMENT_ENTRIES_F EE
WHERE ET.ELEMENT_TYPE_ID(+)=EE.ELEMENT_TYPE_ID
AND EE.PERSON_ID(+)=ASS.PERSON_ID
AND ET.ELEMENT_NAME IN ('Performance Differential 1 US')
AND ASS.EFFECTIVE_START_DATE between EE.EFFECTIVE_START_DATE and NVL( EE.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND ASS.EFFECTIVE_START_DATE between ET.EFFECTIVE_START_DATE and NVL( ET.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_01,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET1,PAY_ELEMENT_ENTRIES_F EE1
WHERE ET1.ELEMENT_TYPE_ID(+)=EE1.ELEMENT_TYPE_ID
AND EE1.PERSON_ID(+)=ASS.PERSON_ID
AND ET1.ELEMENT_NAME IN ('Performance Differential 2 US')
AND ASS.EFFECTIVE_START_DATE between EE1.EFFECTIVE_START_DATE(+) and NVL(EE1.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND ASS.EFFECTIVE_START_DATE between ET1.EFFECTIVE_START_DATE(+) and NVL( ET1.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_02,

NVL((SELECT  DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET2,PAY_ELEMENT_ENTRIES_F EE2
WHERE ET2.ELEMENT_TYPE_ID(+)=EE2.ELEMENT_TYPE_ID
AND EE2.PERSON_ID(+)=ASS.PERSON_ID
AND ET2.ELEMENT_NAME IN ('Performance Differential 125 US')
AND ASS.EFFECTIVE_START_DATE between EE2.EFFECTIVE_START_DATE(+) and NVL(EE2.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND ASS.EFFECTIVE_START_DATE between ET2.EFFECTIVE_START_DATE(+) and NVL( ET2.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_03,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET3,PAY_ELEMENT_ENTRIES_F EE3
WHERE ET3.ELEMENT_TYPE_ID(+)=EE3.ELEMENT_TYPE_ID
AND EE3.PERSON_ID(+)=ASS.PERSON_ID
AND ET3.ELEMENT_NAME IN ('Performance Differential 225 US')
AND ASS.EFFECTIVE_START_DATE between EE3.EFFECTIVE_START_DATE(+) and NVL(EE3.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND ASS.EFFECTIVE_START_DATE between ET3.EFFECTIVE_START_DATE(+) and NVL( ET3.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_04,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET4,PAY_ELEMENT_ENTRIES_F EE4
WHERE ET4.ELEMENT_TYPE_ID(+)=EE4.ELEMENT_TYPE_ID
AND EE4.PERSON_ID(+)=ASS.PERSON_ID
AND ET4.ELEMENT_NAME IN ('Performance Differential 3 US')
AND ASS.EFFECTIVE_START_DATE between EE4.EFFECTIVE_START_DATE(+) and NVL(EE4.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND ASS.EFFECTIVE_START_DATE between ET4.EFFECTIVE_START_DATE(+) and NVL( ET4.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_05,

NVL((SELECT  DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET5,PAY_ELEMENT_ENTRIES_F EE5
WHERE ET5.ELEMENT_TYPE_ID(+)=EE5.ELEMENT_TYPE_ID
AND EE5.PERSON_ID(+)=ASS.PERSON_ID
AND ET5.ELEMENT_NAME IN ('Georgetown LOB premium US')
AND ASS.EFFECTIVE_START_DATE between EE5.EFFECTIVE_START_DATE(+) and NVL(EE5.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND ASS.EFFECTIVE_START_DATE between ET5.EFFECTIVE_START_DATE(+) and NVL( ET5.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N')  AS PAY_PREM_01,


--(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND  TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS BUSN_EMAIL_ID,
        --(SELECT DISTINCT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE) AS BUSN_EMAIL_ID,
          (SELECT DISTINCT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL2.EMAIL_TYPE in ('W1')             AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE) AS BUSN_EMAIL_ID,

CASE WHEN PP.ATTRIBUTE6 = '_' THEN '' ELSE PP.ATTRIBUTE6 END AS AD_USERNAME,
PP.ATTRIBUTE2 AS REQUESTION_ID,
PPNF.MIDDLE_NAMES,
ASS.WORK_AT_HOME,
        CASE WHEN ASS.WORK_AT_HOME='N' THEN
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=LOC.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND  NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
ELSE
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=ADDR.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND  NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
END AS TIMEZONE

FROM PER_ALL_PEOPLE_F PER,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PERSON_NAMES_F PPNF,
PER_DEPARTMENTS DEPT,
PER_PERIODS_OF_SERVICE PPOS,
PER_JOBS_F PJ,
HR_LOCATIONS_ALL_F_VL LOC,
PER_NATIONAL_IDENTIFIERS NID,
PER_ASSIGNMENT_SUPERVISORS_F PASF,
CMP_SALARY CS,
PER_ADDRESSES_F ADDR,
PER_PERSON_ADDR_USAGES_F ADF,
PER_PERSONS PP

WHERE ASS.PERSON_ID IN (SELECT PERSON_ID FROM PER_ALL_ASSIGNMENTS_M ASS1 WHERE HOURLY_SALARIED_CODE = 'H')
AND ASS.LEGISLATION_CODE(+)='US'
AND PPNF.NAME_TYPE(+) ='GLOBAL'
AND ADF.ADDRESS_TYPE(+)='HOME'
AND ADF.ADDRESS_ID=ADDR.ADDRESS_ID(+)
AND ASS.PERSON_ID=ADF.PERSON_ID(+)
AND PER.PERSON_ID=ASS.PERSON_ID
AND ASS.PERSON_ID=PPNF.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=DEPT.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID=PPOS.PERIOD_OF_SERVICE_ID(+)
AND ASS.PERSON_ID=PPOS.PERSON_ID(+)
AND ASS.JOB_ID=PJ.JOB_ID(+)
AND ASS.PERSON_ID=NID.PERSON_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
AND ASS.ASSIGNMENT_ID=CS.ASSIGNMENT_ID(+)
AND ASS.PERSON_ID=PASF.PERSON_ID(+)
AND ASS.ASSIGNMENT_ID=PASF.ASSIGNMENT_ID(+)
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND NID.NATIONAL_IDENTIFIER_TYPE(+) ='SSN'
AND PASF.MANAGER_TYPE(+)='LINE_MANAGER'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND ASS.EFFECTIVE_START_DATE BETWEEN PPNF.EFFECTIVE_START_DATE(+)  AND PPNF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN DEPT.EFFECTIVE_START_DATE(+)  AND DEPT.EFFECTIVE_END_DATE(+)
AND ADF.EFFECTIVE_START_DATE BETWEEN ADDR.EFFECTIVE_START_DATE(+)  AND ADDR.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN ADF.EFFECTIVE_START_DATE(+)  AND ADF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PJ.EFFECTIVE_START_DATE(+) AND PJ.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN ADDR.EFFECTIVE_START_DATE AND ADDR.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN PASF.EFFECTIVE_START_DATE(+) AND PASF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN CS.DATE_FROM(+) AND CS.DATE_TO(+)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE


UNION

-----------------------SALARY-------------------------

SELECT  DISTINCT PER.PERSON_NUMBER AS EMPLID,
TO_CHAR(CS.DATE_FROM,'MM/DD/YYYY') AS EFFDT,
TO_CHAR(CS.DATE_FROM,'YYYY/MM/DD') AS EFFDAT,
ASS.EFFECTIVE_SEQUENCE AS EFFSEQ,
PPNF.FIRST_NAME,
PPNF.LAST_NAME,
(SELECT DISTINCT HROF.ORG_INFORMATION2
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
/*Modified as per TP#37357- Begin*/
/*AND ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)*/
/*Modified as per TP#37357 -  End*/
AND ROWNUM=1) AS DEPTID,
ASS.HOURLY_SALARIED_CODE AS EMPL_TYPE,
TO_CHAR(PPOS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS HIRE_DT,
PJ.JOB_CODE AS JOBCODE,
TO_CHAR(PPOS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DT,
-- LOC.TIMEZONE_CODE AS TIMEZONE,
'' AS NATION_ID,
LOC.INTERNAL_LOCATION_CODE AS LOCATION,
ASS.ACTION_CODE,
NVL((SELECT DISTINCT ACTION_CODE
FROM PER_ALL_ASSIGNMENTS_F
WHERE 1=1 AND ACTION_CODE IN ('REHIRE') AND PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C')
AND HOURLY_SALARIED_CODE in ('H','S') AND LEGISLATION_CODE='US'),'HIRE')
AS HIRE_RULE_ID,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','PR') THEN 'R'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PT','FT') THEN 'T' END AS REG_TEMP,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'F'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'P' END AS FULL_PART_TIME,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F WHERE PASF.MANAGER_ID=PERSON_ID AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_ID,
(SELECT LAST_NAME||','||FIRST_NAME FROM PER_PERSON_NAMES_F  WHERE PASF.MANAGER_ID=PERSON_ID AND NAME_TYPE='GLOBAL' AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_NAME,
CASE WHEN ASS.HOURLY_SALARIED_CODE = 'H' THEN CS.SALARY_AMOUNT ELSE 0 END AS HOURLY_RT,
(SELECT DISTINCT HROF.ORG_INFORMATION2
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
/*Modified as per TP#37357- Begin*/
/*AND ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)*/
/*Modified as per TP#37357 -  End*/
AND ROWNUM=1) AS CHARTFIELD_LABEL,
CASE WHEN LOC.LOCATION_NAME LIKE '%Remote%' THEN 'REMOTE' ELSE LOC.INTERNAL_LOCATION_CODE END AS BB_PHYSICAL_LOC_CD,
LOC.INTERNAL_LOCATION_CODE,
/*CASE WHEN ASS.WORK_AT_HOME='Y'
THEN (SELECT PA.REGION_2
  FROM PER_ADDRESSES_F PA,PER_PERSON_ADDR_USAGES_F PAA
  WHERE PAA.ADDRESS_TYPE(+)='H1'
AND ASS.PERSON_ID=PAA.PERSON_ID(+)
AND PAA.ADDRESS_ID=PA.ADDRESS_ID(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PAA.EFFECTIVE_START_DATE  AND PAA.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN PA.EFFECTIVE_START_DATE  AND PA.EFFECTIVE_END_DATE)
ELSE LOC.REGION_2 END AS STATE_,*/
LOC.REGION_2 AS STATE_,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'Y' ELSE 'N' END AS TERM_LBL,
PP.ATTRIBUTE1 AS ALTER_EMPLID,



NVL((SELECT  DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET,PAY_ELEMENT_ENTRIES_F EE
WHERE ET.ELEMENT_TYPE_ID(+)=EE.ELEMENT_TYPE_ID
AND EE.PERSON_ID=ASS.PERSON_ID
AND ET.ELEMENT_NAME IN ('Performance Differential 1 US')
AND CS.DATE_FROM between EE.EFFECTIVE_START_DATE and NVL( EE.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND CS.DATE_FROM between ET.EFFECTIVE_START_DATE and NVL( ET.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_01,

NVL((SELECT  DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET1,PAY_ELEMENT_ENTRIES_F EE1
WHERE ET1.ELEMENT_TYPE_ID(+)=EE1.ELEMENT_TYPE_ID
AND EE1.PERSON_ID =ASS.PERSON_ID
AND ET1.ELEMENT_NAME IN ('Performance Differential 2 US')
AND CS.DATE_FROM between EE1.EFFECTIVE_START_DATE and NVL(EE1.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND CS.DATE_FROM between ET1.EFFECTIVE_START_DATE and NVL( ET1.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_02,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET2,PAY_ELEMENT_ENTRIES_F EE2
WHERE ET2.ELEMENT_TYPE_ID(+)=EE2.ELEMENT_TYPE_ID
AND EE2.PERSON_ID =ASS.PERSON_ID
AND ET2.ELEMENT_NAME IN ('Performance Differential 125 US')
AND CS.DATE_FROM between EE2.EFFECTIVE_START_DATE and NVL(EE2.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND CS.DATE_FROM between ET2.EFFECTIVE_START_DATE and NVL( ET2.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_03,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET3,PAY_ELEMENT_ENTRIES_F EE3
WHERE ET3.ELEMENT_TYPE_ID(+)=EE3.ELEMENT_TYPE_ID
AND EE3.PERSON_ID=ASS.PERSON_ID
AND ET3.ELEMENT_NAME IN ('Performance Differential 225 US')
AND CS.DATE_FROM between EE3.EFFECTIVE_START_DATE and NVL(EE3.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND CS.DATE_FROM between ET3.EFFECTIVE_START_DATE and NVL( ET3.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_04,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET4,PAY_ELEMENT_ENTRIES_F EE4
WHERE ET4.ELEMENT_TYPE_ID(+)=EE4.ELEMENT_TYPE_ID
AND EE4.PERSON_ID=ASS.PERSON_ID
AND ET4.ELEMENT_NAME IN ('Performance Differential 3 US')
AND CS.DATE_FROM between EE4.EFFECTIVE_START_DATE and NVL(EE4.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND CS.DATE_FROM between ET4.EFFECTIVE_START_DATE and NVL( ET4.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_05,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET5,PAY_ELEMENT_ENTRIES_F EE5
WHERE ET5.ELEMENT_TYPE_ID(+)=EE5.ELEMENT_TYPE_ID
AND EE5.PERSON_ID=ASS.PERSON_ID
AND ET5.ELEMENT_NAME IN ('Georgetown LOB premium US')
AND CS.DATE_FROM between EE5.EFFECTIVE_START_DATE and NVL(EE5.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND CS.DATE_FROM between ET5.EFFECTIVE_START_DATE and NVL( ET5.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N')  AS PAY_PREM_01,


--(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND  TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS BUSN_EMAIL_ID,
        --(SELECT DISTINCT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE) AS BUSN_EMAIL_ID,
          (SELECT DISTINCT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL2.EMAIL_TYPE in ('W1')             AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE) AS BUSN_EMAIL_ID,

    CASE WHEN PP.ATTRIBUTE6 = '_' THEN '' ELSE PP.ATTRIBUTE6 END AS AD_USERNAME,
PP.ATTRIBUTE2 AS REQUESTION_ID,
PPNF.MIDDLE_NAMES,
ASS.WORK_AT_HOME,
        CASE WHEN ASS.WORK_AT_HOME='N' THEN
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=LOC.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND  NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
ELSE
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=ADDR.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND  NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
END AS TIMEZONE

FROM PER_ALL_PEOPLE_F PER,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PERSON_NAMES_F PPNF,
PER_DEPARTMENTS DEPT,
PER_PERIODS_OF_SERVICE PPOS,
PER_JOBS_F PJ,
HR_LOCATIONS_ALL_F_VL LOC,
PER_NATIONAL_IDENTIFIERS NID,
PER_ASSIGNMENT_SUPERVISORS_F PASF,
CMP_SALARY CS,
PER_ADDRESSES_F ADDR,
PER_PERSON_ADDR_USAGES_F ADF,
PER_PERSONS PP

WHERE ASS.PERSON_ID IN (SELECT PERSON_ID FROM PER_ALL_ASSIGNMENTS_M ASS1 WHERE HOURLY_SALARIED_CODE = 'H')
AND ASS.LEGISLATION_CODE(+)='US'
AND PPNF.NAME_TYPE(+) ='GLOBAL'
AND ADF.ADDRESS_TYPE(+)='HOME'
AND ADF.ADDRESS_ID=ADDR.ADDRESS_ID(+)
AND ASS.PERSON_ID=ADF.PERSON_ID(+)
AND PER.PERSON_ID=ASS.PERSON_ID
AND ASS.PERSON_ID=PPNF.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=DEPT.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID=PPOS.PERIOD_OF_SERVICE_ID(+)
AND ASS.PERSON_ID=PPOS.PERSON_ID(+)
AND ASS.JOB_ID=PJ.JOB_ID(+)
AND ASS.PERSON_ID=NID.PERSON_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
AND ASS.ASSIGNMENT_ID=CS.ASSIGNMENT_ID(+)
AND ASS.PERSON_ID=PASF.PERSON_ID(+)
AND ASS.ASSIGNMENT_ID=PASF.ASSIGNMENT_ID(+)
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND NID.NATIONAL_IDENTIFIER_TYPE(+) ='SSN'
AND PASF.MANAGER_TYPE(+)='LINE_MANAGER'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND ASS.EFFECTIVE_START_DATE BETWEEN PPNF.EFFECTIVE_START_DATE(+)  AND PPNF.EFFECTIVE_END_DATE(+)
AND CS.DATE_FROM BETWEEN ASS.EFFECTIVE_START_DATE  AND ASS.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN DEPT.EFFECTIVE_START_DATE(+)  AND DEPT.EFFECTIVE_END_DATE(+)
AND ADF.EFFECTIVE_START_DATE BETWEEN ADDR.EFFECTIVE_START_DATE(+)  AND ADDR.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN ADF.EFFECTIVE_START_DATE(+)  AND ADF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PJ.EFFECTIVE_START_DATE(+) AND PJ.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
--AND ASS.EFFECTIVE_START_DATE BETWEEN ADDR.EFFECTIVE_START_DATE AND ADDR.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN PASF.EFFECTIVE_START_DATE(+) AND PASF.EFFECTIVE_END_DATE(+)
----AND ASS.EFFECTIVE_START_DATE BETWEEN CS.DATE_FROM(+) AND CS.DATE_TO(+)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE


UNION

-------COMPENSATIONSTART-----------------



SELECT  DISTINCT PER.PERSON_NUMBER AS EMPLID,
TO_CHAR(EET.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS EFFDT,
TO_CHAR(EET.EFFECTIVE_START_DATE,'YYYY/MM/DD') AS EFFDAT,
ASS.EFFECTIVE_SEQUENCE AS EFFSEQ,
PPNF.FIRST_NAME,
PPNF.LAST_NAME,
(SELECT DISTINCT HROF.ORG_INFORMATION2
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
/*Modified as per TP#37357 - Begin*/
/*AND ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)*/
/*Modified as per TP#37357 - End*/
AND ROWNUM=1) AS DEPTID,
ASS.HOURLY_SALARIED_CODE AS EMPL_TYPE,
TO_CHAR(PPOS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS HIRE_DT,
PJ.JOB_CODE AS JOBCODE,
TO_CHAR(PPOS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DT,
-- LOC.TIMEZONE_CODE AS TIMEZONE,
'' AS NATION_ID,
LOC.INTERNAL_LOCATION_CODE AS LOCATION,
ASS.ACTION_CODE,
NVL((SELECT DISTINCT ACTION_CODE
FROM PER_ALL_ASSIGNMENTS_F
WHERE 1=1 AND ACTION_CODE IN ('REHIRE') AND PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C')
AND HOURLY_SALARIED_CODE in ('H','S') AND LEGISLATION_CODE='US'),'HIRE')
AS HIRE_RULE_ID,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','PR') THEN 'R'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PT','FT') THEN 'T' END AS REG_TEMP,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'F'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'P' END AS FULL_PART_TIME,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F WHERE PASF.MANAGER_ID=PERSON_ID AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_ID,
(SELECT LAST_NAME||','||FIRST_NAME FROM PER_PERSON_NAMES_F  WHERE PASF.MANAGER_ID=PERSON_ID AND NAME_TYPE='GLOBAL' AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_NAME,
CASE WHEN ASS.HOURLY_SALARIED_CODE = 'H' THEN CS.SALARY_AMOUNT ELSE 0 END AS HOURLY_RT,
(SELECT DISTINCT HROF.ORG_INFORMATION2
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
 /*Modified as per TP#37357 - Begin*/
/*AND ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)*/
/*Modified as per TP#37357 - End*/
AND ROWNUM=1) AS CHARTFIELD_LABEL,
CASE WHEN LOC.LOCATION_NAME LIKE '%Remote%' THEN 'REMOTE' ELSE LOC.INTERNAL_LOCATION_CODE END AS BB_PHYSICAL_LOC_CD,
LOC.INTERNAL_LOCATION_CODE,
/*CASE WHEN ASS.WORK_AT_HOME='Y'
THEN (SELECT PA.REGION_2
  FROM PER_ADDRESSES_F PA,PER_PERSON_ADDR_USAGES_F PAA
  WHERE PAA.ADDRESS_TYPE(+)='H1'
AND ASS.PERSON_ID=PAA.PERSON_ID(+)
AND PAA.ADDRESS_ID=PA.ADDRESS_ID(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PAA.EFFECTIVE_START_DATE  AND PAA.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN PA.EFFECTIVE_START_DATE  AND PA.EFFECTIVE_END_DATE)
ELSE LOC.REGION_2 END AS STATE_,*/
LOC.REGION_2 AS STATE_,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'Y' ELSE 'N' END AS TERM_LBL,
PP.ATTRIBUTE1 AS ALTER_EMPLID,



NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET,PAY_ELEMENT_ENTRIES_F EE
WHERE ET.ELEMENT_TYPE_ID(+)=EE.ELEMENT_TYPE_ID
AND EE.PERSON_ID(+)=ASS.PERSON_ID
-- AND EE.PERSON_ID=EET.PERSON_ID
AND ET.ELEMENT_NAME IN ('Performance Differential 1 US')
AND EET.EFFECTIVE_START_DATE between EE.EFFECTIVE_START_DATE and NVL( EE.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE.EFFECTIVE_START_DATE between ET.EFFECTIVE_START_DATE and NVL( ET.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_01,

NVL((SELECT  DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET1,PAY_ELEMENT_ENTRIES_F EE1
WHERE ET1.ELEMENT_TYPE_ID(+)=EE1.ELEMENT_TYPE_ID
AND EE1.PERSON_ID(+)=ASS.PERSON_ID
AND ET1.ELEMENT_NAME IN ('Performance Differential 2 US')
AND EET.EFFECTIVE_START_DATE between EE1.EFFECTIVE_START_DATE(+) and NVL(EE1.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE1.EFFECTIVE_START_DATE between ET1.EFFECTIVE_START_DATE(+) and NVL( ET1.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_02,

NVL((SELECT  DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET2,PAY_ELEMENT_ENTRIES_F EE2
WHERE ET2.ELEMENT_TYPE_ID(+)=EE2.ELEMENT_TYPE_ID
AND EE2.PERSON_ID(+)=ASS.PERSON_ID
AND ET2.ELEMENT_NAME IN ('Performance Differential 125 US')
AND EET.EFFECTIVE_START_DATE between EE2.EFFECTIVE_START_DATE(+) and NVL(EE2.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE2.EFFECTIVE_START_DATE between ET2.EFFECTIVE_START_DATE(+) and NVL( ET2.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_03,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET3,PAY_ELEMENT_ENTRIES_F EE3
WHERE ET3.ELEMENT_TYPE_ID(+)=EE3.ELEMENT_TYPE_ID
AND EE3.PERSON_ID(+)=ASS.PERSON_ID
AND ET3.ELEMENT_NAME IN ('Performance Differential 225 US')
AND EET.EFFECTIVE_START_DATE between EE3.EFFECTIVE_START_DATE(+) and NVL(EE3.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE3.EFFECTIVE_START_DATE between ET3.EFFECTIVE_START_DATE(+) and NVL( ET3.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_04,

NVL((SELECT  DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET4,PAY_ELEMENT_ENTRIES_F EE4
WHERE ET4.ELEMENT_TYPE_ID(+)=EE4.ELEMENT_TYPE_ID
AND EE4.PERSON_ID(+)=ASS.PERSON_ID
AND ET4.ELEMENT_NAME IN ('Performance Differential 3 US')
AND EET.EFFECTIVE_START_DATE between EE4.EFFECTIVE_START_DATE(+) and NVL(EE4.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE4.EFFECTIVE_START_DATE between ET4.EFFECTIVE_START_DATE(+) and NVL( ET4.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_05,

NVL((SELECT  DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET5,PAY_ELEMENT_ENTRIES_F EE5
WHERE ET5.ELEMENT_TYPE_ID(+)=EE5.ELEMENT_TYPE_ID
AND EE5.PERSON_ID(+)=ASS.PERSON_ID
AND ET5.ELEMENT_NAME IN ('Georgetown LOB premium US')
AND EET.EFFECTIVE_START_DATE between EE5.EFFECTIVE_START_DATE(+) and NVL(EE5.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE5.EFFECTIVE_START_DATE between ET5.EFFECTIVE_START_DATE(+) and NVL( ET5.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N')  AS PAY_PREM_01,

--(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND  TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS BUSN_EMAIL_ID,
        --(SELECT DISTINCT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE) AS BUSN_EMAIL_ID,
          (SELECT DISTINCT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL2.EMAIL_TYPE in ('W1')             AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE) AS BUSN_EMAIL_ID,

  CASE WHEN PP.ATTRIBUTE6 = '_' THEN '' ELSE PP.ATTRIBUTE6 END AS AD_USERNAME,
PP.ATTRIBUTE2 AS REQUESTION_ID,
PPNF.MIDDLE_NAMES,
ASS.WORK_AT_HOME,
        CASE WHEN ASS.WORK_AT_HOME='N' THEN
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=LOC.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND  NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
ELSE
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=ADDR.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
END AS TIMEZONE

FROM PER_ALL_PEOPLE_F PER,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PERSON_NAMES_F PPNF,
PER_DEPARTMENTS DEPT,
PER_PERIODS_OF_SERVICE PPOS,
PER_JOBS_F PJ,
HR_LOCATIONS_ALL_F_VL LOC,
PER_NATIONAL_IDENTIFIERS NID,
PER_ASSIGNMENT_SUPERVISORS_F PASF,
CMP_SALARY CS,
PER_ADDRESSES_F ADDR,
PAY_ELEMENT_ENTRIES_F EET,
PAY_ELEMENT_TYPES_VL ETT,
PER_PERSON_ADDR_USAGES_F ADF,
PER_PERSONS PP

WHERE ASS.PERSON_ID IN (SELECT PERSON_ID FROM PER_ALL_ASSIGNMENTS_M ASS1 WHERE HOURLY_SALARIED_CODE = 'H')
AND ASS.LEGISLATION_CODE(+)='US'
AND PPNF.NAME_TYPE(+) ='GLOBAL'
AND ADF.ADDRESS_TYPE(+)='HOME'
AND ADF.ADDRESS_ID=ADDR.ADDRESS_ID(+)
AND ASS.PERSON_ID=ADF.PERSON_ID(+)
AND PER.PERSON_ID=ASS.PERSON_ID
AND ASS.PERSON_ID=PPNF.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=DEPT.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID=PPOS.PERIOD_OF_SERVICE_ID(+)
AND ASS.PERSON_ID=PPOS.PERSON_ID(+)
AND ASS.JOB_ID=PJ.JOB_ID(+)
AND ASS.PERSON_ID=NID.PERSON_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
AND ASS.ASSIGNMENT_ID=CS.ASSIGNMENT_ID(+)
AND ASS.PERSON_ID=PASF.PERSON_ID(+)
AND ASS.ASSIGNMENT_ID=PASF.ASSIGNMENT_ID(+)
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND NID.NATIONAL_IDENTIFIER_TYPE(+) ='SSN'
AND ETT.ELEMENT_NAME IN ('Performance Differential 1 US','Performance Differential 2 US','Performance Differential 3 US','Performance Differential 125 US','Performance Differential 225 US','Georgetown LOB premium US')
AND ETT.ELEMENT_TYPE_ID(+)=EET.ELEMENT_TYPE_ID
AND EET.PERSON_ID=ASS.PERSON_ID(+)
AND PASF.MANAGER_TYPE(+)='LINE_MANAGER'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND EET.EFFECTIVE_START_DATE BETWEEN ASS.EFFECTIVE_START_DATE(+)  AND ASS.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PPNF.EFFECTIVE_START_DATE(+)  AND PPNF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN DEPT.EFFECTIVE_START_DATE(+)  AND DEPT.EFFECTIVE_END_DATE(+)
AND ADF.EFFECTIVE_START_DATE BETWEEN ADDR.EFFECTIVE_START_DATE(+)  AND ADDR.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN ADF.EFFECTIVE_START_DATE(+)  AND ADF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PJ.EFFECTIVE_START_DATE(+) AND PJ.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
 /*Added as per Incident #INC0102941 - Begin*/
AND ASS.EFFECTIVE_START_DATE BETWEEN ADDR.EFFECTIVE_START_DATE AND ADDR.EFFECTIVE_END_DATE
 /*Added as per Incident #INC0102941 - End*/
AND ASS.EFFECTIVE_START_DATE BETWEEN PASF.EFFECTIVE_START_DATE(+) AND PASF.EFFECTIVE_END_DATE(+)
AND (EET.EFFECTIVE_START_DATE BETWEEN CS.DATE_FROM AND CS.DATE_TO OR CS.DATE_FROM IS NULL)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE


UNION

-----------------------COMPENSATIONEND-------------------------

SELECT DISTINCT  PER.PERSON_NUMBER AS EMPLID,
TO_CHAR((EET.EFFECTIVE_END_DATE + 1),'MM/DD/YYYY') AS EFFDT,
TO_CHAR(EET.EFFECTIVE_END_DATE + 1,'YYYY/MM/DD') AS EFFDAT,
ASS.EFFECTIVE_SEQUENCE AS EFFSEQ,
PPNF.FIRST_NAME,
PPNF.LAST_NAME,
(SELECT DISTINCT HROF.ORG_INFORMATION2
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
/*Modified as per TP#37357 - Begin*/
/*AND ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)*/
/*Modified as per TP#37357 - End*/
AND ROWNUM=1) AS DEPTID,
ASS.HOURLY_SALARIED_CODE AS EMPL_TYPE,
TO_CHAR(PPOS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS HIRE_DT,
PJ.JOB_CODE AS JOBCODE,
TO_CHAR(PPOS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DT,
-- LOC.TIMEZONE_CODE AS TIMEZONE,
'' AS NATION_ID,
LOC.INTERNAL_LOCATION_CODE AS LOCATION,
ASS.ACTION_CODE,
NVL((SELECT DISTINCT ACTION_CODE
FROM PER_ALL_ASSIGNMENTS_F
WHERE 1=1 AND ACTION_CODE IN ('REHIRE') AND PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C')
AND HOURLY_SALARIED_CODE in ('H','S') AND LEGISLATION_CODE='US'),'HIRE')
AS HIRE_RULE_ID,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','PR') THEN 'R'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PT','FT') THEN 'T' END AS REG_TEMP,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'F'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'P' END AS FULL_PART_TIME,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F WHERE PASF.MANAGER_ID=PERSON_ID AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_ID,
(SELECT LAST_NAME||','||FIRST_NAME FROM PER_PERSON_NAMES_F  WHERE PASF.MANAGER_ID=PERSON_ID AND NAME_TYPE='GLOBAL' AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_NAME,
CASE WHEN ASS.HOURLY_SALARIED_CODE = 'H' THEN CS.SALARY_AMOUNT ELSE 0 END AS HOURLY_RT,
(SELECT DISTINCT HROF.ORG_INFORMATION2
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
/*Modified as per TP#37357 - Begin*/
/*AND ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)*/
/*Modified as per TP#37357 - End*/
AND ROWNUM=1) AS CHARTFIELD_LABEL,
CASE WHEN LOC.LOCATION_NAME LIKE '%Remote%' THEN 'REMOTE' ELSE LOC.INTERNAL_LOCATION_CODE END AS BB_PHYSICAL_LOC_CD,
LOC.INTERNAL_LOCATION_CODE,
/*CASE WHEN ASS.WORK_AT_HOME='Y'
THEN (SELECT PA.REGION_2
  FROM PER_ADDRESSES_F PA,PER_PERSON_ADDR_USAGES_F PAA
  WHERE PAA.ADDRESS_TYPE(+)='H1'
AND ASS.PERSON_ID=PAA.PERSON_ID(+)
AND PAA.ADDRESS_ID=PA.ADDRESS_ID(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PAA.EFFECTIVE_START_DATE  AND PAA.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN PA.EFFECTIVE_START_DATE  AND PA.EFFECTIVE_END_DATE)
ELSE LOC.REGION_2 END AS STATE_,*/
LOC.REGION_2 AS STATE_,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'Y' ELSE 'N' END AS TERM_LBL,
PP.ATTRIBUTE1 AS ALTER_EMPLID,



NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET,PAY_ELEMENT_ENTRIES_F EE
WHERE ET.ELEMENT_TYPE_ID(+)=EE.ELEMENT_TYPE_ID
AND EE.PERSON_ID(+)=ASS.PERSON_ID
-- AND EE.PERSON_ID=EET.PERSON_ID
AND ET.ELEMENT_NAME IN ('Performance Differential 1 US')
AND EET.EFFECTIVE_END_DATE+1 between EE.EFFECTIVE_START_DATE and NVL( EE.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE.EFFECTIVE_END_DATE between ET.EFFECTIVE_START_DATE and NVL( ET.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_01,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET1,PAY_ELEMENT_ENTRIES_F EE1
WHERE ET1.ELEMENT_TYPE_ID(+)=EE1.ELEMENT_TYPE_ID
AND EE1.PERSON_ID(+)=ASS.PERSON_ID
AND ET1.ELEMENT_NAME IN ('Performance Differential 2 US')
AND EET.EFFECTIVE_END_DATE+1 between EE1.EFFECTIVE_START_DATE(+) and NVL(EE1.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE1.EFFECTIVE_END_DATE between ET1.EFFECTIVE_START_DATE(+) and NVL( ET1.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_02,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET2,PAY_ELEMENT_ENTRIES_F EE2
WHERE ET2.ELEMENT_TYPE_ID(+)=EE2.ELEMENT_TYPE_ID
AND EE2.PERSON_ID(+)=ASS.PERSON_ID
AND ET2.ELEMENT_NAME IN ('Performance Differential 125 US')
AND EET.EFFECTIVE_END_DATE+1 between EE2.EFFECTIVE_START_DATE(+) and NVL(EE2.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE2.EFFECTIVE_END_DATE between ET2.EFFECTIVE_START_DATE(+) and NVL( ET2.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_03,

NVL((SELECT  DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET3,PAY_ELEMENT_ENTRIES_F EE3
WHERE ET3.ELEMENT_TYPE_ID(+)=EE3.ELEMENT_TYPE_ID
AND EE3.PERSON_ID(+)=ASS.PERSON_ID
AND ET3.ELEMENT_NAME IN ('Performance Differential 225 US')
AND EET.EFFECTIVE_END_DATE+1 between EE3.EFFECTIVE_START_DATE(+) and NVL(EE3.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE3.EFFECTIVE_END_DATE between ET3.EFFECTIVE_START_DATE(+) and NVL( ET3.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_04,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET4,PAY_ELEMENT_ENTRIES_F EE4
WHERE ET4.ELEMENT_TYPE_ID(+)=EE4.ELEMENT_TYPE_ID
AND EE4.PERSON_ID(+)=ASS.PERSON_ID
AND ET4.ELEMENT_NAME IN ('Performance Differential 3 US')
AND EET.EFFECTIVE_END_DATE+1 between EE4.EFFECTIVE_START_DATE(+) and NVL(EE4.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE4.EFFECTIVE_END_DATE between ET4.EFFECTIVE_START_DATE(+) and NVL( ET4.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_05,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET5,PAY_ELEMENT_ENTRIES_F EE5
WHERE ET5.ELEMENT_TYPE_ID(+)=EE5.ELEMENT_TYPE_ID
AND EE5.PERSON_ID(+)=ASS.PERSON_ID
AND ET5.ELEMENT_NAME IN ('Georgetown LOB premium US')
AND EET.EFFECTIVE_END_DATE+1 between EE5.EFFECTIVE_START_DATE(+) and NVL(EE5.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE5.EFFECTIVE_END_DATE between ET5.EFFECTIVE_START_DATE(+) and NVL( ET5.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N')  AS PAY_PREM_01,


--(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND  TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS BUSN_EMAIL_ID,
        --(SELECT DISTINCT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE) AS BUSN_EMAIL_ID,
          (SELECT DISTINCT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL2.EMAIL_TYPE in ('W1')             AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE) AS BUSN_EMAIL_ID,

  CASE WHEN PP.ATTRIBUTE6 = '_' THEN '' ELSE PP.ATTRIBUTE6 END AS AD_USERNAME,
PP.ATTRIBUTE2 AS REQUESTION_ID,
PPNF.MIDDLE_NAMES,
ASS.WORK_AT_HOME,
        CASE WHEN ASS.WORK_AT_HOME='N' THEN
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=LOC.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND  NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
ELSE
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=ADDR.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
END AS TIMEZONE

FROM PER_ALL_PEOPLE_F PER,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PERSON_NAMES_F PPNF,
PER_DEPARTMENTS DEPT,
PER_PERIODS_OF_SERVICE PPOS,
PER_JOBS_F PJ,
HR_LOCATIONS_ALL_F_VL LOC,
PER_NATIONAL_IDENTIFIERS NID,
PER_ASSIGNMENT_SUPERVISORS_F PASF,
CMP_SALARY CS,
PER_ADDRESSES_F ADDR,
PAY_ELEMENT_ENTRIES_F EET,
PAY_ELEMENT_TYPES_VL ETT,
PER_PERSON_ADDR_USAGES_F ADF,
PER_PERSONS PP

WHERE ASS.PERSON_ID IN (SELECT PERSON_ID FROM PER_ALL_ASSIGNMENTS_M ASS1 WHERE HOURLY_SALARIED_CODE = 'H')
AND ASS.LEGISLATION_CODE(+)='US'
AND PPNF.NAME_TYPE(+) ='GLOBAL'
AND ADF.ADDRESS_TYPE(+)='HOME'
AND ADF.ADDRESS_ID=ADDR.ADDRESS_ID(+)
AND ASS.PERSON_ID=ADF.PERSON_ID(+)
AND PER.PERSON_ID=ASS.PERSON_ID
AND ASS.PERSON_ID=PPNF.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=DEPT.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID=PPOS.PERIOD_OF_SERVICE_ID(+)
AND ASS.PERSON_ID=PPOS.PERSON_ID(+)
AND ASS.JOB_ID=PJ.JOB_ID(+)
AND ASS.PERSON_ID=NID.PERSON_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
AND ASS.ASSIGNMENT_ID=CS.ASSIGNMENT_ID(+)
AND ASS.PERSON_ID=PASF.PERSON_ID(+)
AND ASS.ASSIGNMENT_ID=PASF.ASSIGNMENT_ID(+)
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND NID.NATIONAL_IDENTIFIER_TYPE(+) ='SSN'
AND ETT.ELEMENT_NAME IN ('Performance Differential 1 US','Performance Differential 2 US','Performance Differential 3 US','Performance Differential 125 US','Performance Differential 225 US','Georgetown LOB premium US')
AND ETT.ELEMENT_TYPE_ID(+)=EET.ELEMENT_TYPE_ID
AND EET.PERSON_ID=ASS.PERSON_ID(+)
AND PASF.MANAGER_TYPE(+)='LINE_MANAGER'
AND TO_CHAR(EET.EFFECTIVE_END_DATE,'MM/DD/YYYY') != ('12/31/4712')
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND EET.EFFECTIVE_END_DATE+1 BETWEEN ASS.EFFECTIVE_START_DATE(+)  AND ASS.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PPNF.EFFECTIVE_START_DATE(+)  AND PPNF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN DEPT.EFFECTIVE_START_DATE(+)  AND DEPT.EFFECTIVE_END_DATE(+)
AND ADF.EFFECTIVE_START_DATE BETWEEN ADDR.EFFECTIVE_START_DATE(+)  AND ADDR.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN ADF.EFFECTIVE_START_DATE(+)  AND ADF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PJ.EFFECTIVE_START_DATE(+) AND PJ.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
    /*Added as per Incident #INC0102941 - Begin*/
        AND ASS.EFFECTIVE_START_DATE BETWEEN ADDR.EFFECTIVE_START_DATE AND ADDR.EFFECTIVE_END_DATE
        /*Added as per Incident #INC0102941 - End*/
AND ASS.EFFECTIVE_START_DATE BETWEEN PASF.EFFECTIVE_START_DATE(+) AND PASF.EFFECTIVE_END_DATE(+)
AND (EET.EFFECTIVE_END_DATE+1 BETWEEN CS.DATE_FROM AND CS.DATE_TO OR CS.DATE_FROM IS NULL)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE


UNION


-----------------------ASSIGNMENTS_SALARIED-------------------------

SELECT  DISTINCT PER.PERSON_NUMBER AS EMPLID,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS EFFDT,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'YYYY/MM/DD') AS EFFDAT,
ASS.EFFECTIVE_SEQUENCE AS EFFSEQ,
PPNF.FIRST_NAME,
PPNF.LAST_NAME,
(SELECT DISTINCT HROF.ORG_INFORMATION2 FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
/*Modified as per TP#37357 - Begin*/
/*AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) */
/*Modified as per TP#37357 - End*/
AND ROWNUM=1) AS DEPTID,
ASS.HOURLY_SALARIED_CODE AS EMPL_TYPE,
TO_CHAR(PPOS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS HIRE_DT,
PJ.JOB_CODE AS JOBCODE,
TO_CHAR(PPOS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DT,
-- LOC.TIMEZONE_CODE AS TIMEZONE,
'' AS NATION_ID,
LOC.INTERNAL_LOCATION_CODE AS LOCATION,
ASS.ACTION_CODE,
NVL((SELECT DISTINCT ACTION_CODE
FROM PER_ALL_ASSIGNMENTS_F
WHERE 1=1 AND ACTION_CODE IN ('REHIRE') AND PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C')
AND HOURLY_SALARIED_CODE in ('H','S') AND LEGISLATION_CODE='US'),'HIRE')
AS HIRE_RULE_ID,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','PR') THEN 'R'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PT','FT') THEN 'T' END AS REG_TEMP,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'F'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'P' END AS FULL_PART_TIME,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F WHERE PASF.MANAGER_ID=PERSON_ID AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_ID,
(SELECT LAST_NAME||','||FIRST_NAME FROM PER_PERSON_NAMES_F  WHERE PASF.MANAGER_ID=PERSON_ID AND NAME_TYPE='GLOBAL' AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_NAME,
0 AS HOURLY_RT,
(SELECT DISTINCT HROF.ORG_INFORMATION2
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
/*Modified as per TP#37357 - Begin*/
/*AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)*/
/*Modified as per TP#37357 - End*/
AND ROWNUM=1) AS CHARTFIELD_LABEL,
CASE WHEN LOC.LOCATION_NAME LIKE '%Remote%' THEN 'REMOTE' ELSE LOC.INTERNAL_LOCATION_CODE END AS BB_PHYSICAL_LOC_CD,
LOC.INTERNAL_LOCATION_CODE,
/*CASE WHEN ASS.WORK_AT_HOME='Y'
THEN (SELECT PA.REGION_2
  FROM PER_ADDRESSES_F PA,PER_PERSON_ADDR_USAGES_F PAA
  WHERE PAA.ADDRESS_TYPE(+)='H1'
AND ASS.PERSON_ID=PAA.PERSON_ID(+)
AND PAA.ADDRESS_ID=PA.ADDRESS_ID(+)
AND TRUNC(SYSDATE) BETWEEN PAA.EFFECTIVE_START_DATE  AND PAA.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PA.EFFECTIVE_START_DATE  AND PA.EFFECTIVE_END_DATE)
ELSE LOC.REGION_2 END AS STATE_,*/
LOC.REGION_2 AS STATE_,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'Y' ELSE 'N' END AS TERM_LBL,
PP.ATTRIBUTE1 AS ALTER_EMPLID,

'N' AS PAY_RATE_01,
'N' AS PAY_RATE_02,
'N' AS PAY_RATE_03,
'N' AS PAY_RATE_04,
'N' AS PAY_RATE_05,
'N' AS PAY_PREM_01,


--(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND  TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS BUSN_EMAIL_ID,
        --(SELECT DISTINCT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE) AS BUSN_EMAIL_ID,
          (SELECT DISTINCT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL2.EMAIL_TYPE in ('W1')             AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE) AS BUSN_EMAIL_ID,
 
  CASE WHEN PP.ATTRIBUTE6 = '_' THEN '' ELSE PP.ATTRIBUTE6 END AS AD_USERNAME,
PP.ATTRIBUTE2 AS REQUESTION_ID,
PPNF.MIDDLE_NAMES,
ASS.WORK_AT_HOME,
        CASE WHEN ASS.WORK_AT_HOME='N' THEN
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=LOC.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND  NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
ELSE
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=ADDR.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND  NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
END AS TIMEZONE

FROM PER_ALL_PEOPLE_F PER,
PER_ALL_ASSIGNMENTS_F ASS,
PER_PERSON_NAMES_F PPNF,
PER_DEPARTMENTS DEPT,
PER_PERIODS_OF_SERVICE PPOS,
PER_JOBS_F PJ,
HR_LOCATIONS_ALL_F_VL LOC,
PER_NATIONAL_IDENTIFIERS NID,
PER_ASSIGNMENT_SUPERVISORS_F PASF,
CMP_SALARY CS,
PER_ADDRESSES_F ADDR,
PER_PERSON_ADDR_USAGES_F ADF,
PER_PERSONS PP

WHERE ASS.PERSON_ID IN (SELECT PERSON_ID FROM PER_ALL_ASSIGNMENTS_M ASS1 WHERE HOURLY_SALARIED_CODE = 'S')
AND ASS.PERSON_ID NOT IN (SELECT PERSON_ID FROM PER_ALL_ASSIGNMENTS_M ASS1 WHERE HOURLY_SALARIED_CODE = 'H')
AND PPNF.NAME_TYPE(+) ='GLOBAL'
AND ADF.ADDRESS_TYPE(+)='HOME'
AND ADF.ADDRESS_ID=ADDR.ADDRESS_ID(+)
AND ASS.PERSON_ID=ADF.PERSON_ID(+)
AND PER.PERSON_ID=ASS.PERSON_ID
AND ASS.PERSON_ID=PPNF.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=DEPT.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID=PPOS.PERIOD_OF_SERVICE_ID(+)
AND ASS.PERSON_ID=PPOS.PERSON_ID(+)
AND ASS.JOB_ID=PJ.JOB_ID(+)
AND ASS.PERSON_ID=NID.PERSON_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
AND ASS.ASSIGNMENT_ID=CS.ASSIGNMENT_ID(+)
AND ASS.PERSON_ID=PASF.PERSON_ID(+)
AND ASS.ASSIGNMENT_ID=PASF.ASSIGNMENT_ID(+)
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND NID.NATIONAL_IDENTIFIER_TYPE(+) ='SSN'
AND PASF.MANAGER_TYPE(+)='LINE_MANAGER'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND TRUNC(SYSDATE) BETWEEN PPNF.EFFECTIVE_START_DATE(+)  AND PPNF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE(+)  AND ASS.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN DEPT.EFFECTIVE_START_DATE(+)  AND DEPT.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDR.EFFECTIVE_START_DATE(+)  AND ADDR.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADF.EFFECTIVE_START_DATE(+)  AND ADF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PJ.EFFECTIVE_START_DATE(+) AND PJ.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PASF.EFFECTIVE_START_DATE(+) AND PASF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN CS.DATE_FROM(+) AND CS.DATE_TO(+)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE

UNION
-----------------------GLS and SGS contractors-------------------------

SELECT  DISTINCT PER.PERSON_NUMBER AS EMPLID,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS EFFDT,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'YYYY/MM/DD') AS EFFDAT,
ASS.EFFECTIVE_SEQUENCE AS EFFSEQ,
PPNF.FIRST_NAME,
PPNF.LAST_NAME,
(SELECT DISTINCT HROF.ORG_INFORMATION2 FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
/*Modified as per TP#37357 - Begin*/
/*AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) */
/*Modified as per TP#37357 - End*/
AND ROWNUM=1) AS DEPTID,
ASS.HOURLY_SALARIED_CODE AS EMPL_TYPE,
TO_CHAR(PPOS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS HIRE_DT,
PJ.JOB_CODE AS JOBCODE,
TO_CHAR(PPOS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DT,
-- LOC.TIMEZONE_CODE AS TIMEZONE,
'' AS NATION_ID,
LOC.INTERNAL_LOCATION_CODE AS LOCATION,
ASS.ACTION_CODE,
NVL((SELECT DISTINCT ACTION_CODE
FROM PER_ALL_ASSIGNMENTS_F
WHERE 1=1 AND ACTION_CODE IN ('REHIRE') AND PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C')
AND HOURLY_SALARIED_CODE in ('H','S') AND LEGISLATION_CODE='US'),'HIRE')
AS HIRE_RULE_ID,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','PR') THEN 'R'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PT','FT') THEN 'T' END AS REG_TEMP,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'F'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'P' END AS FULL_PART_TIME,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F WHERE PASF.MANAGER_ID=PERSON_ID AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_ID,
(SELECT LAST_NAME||','||FIRST_NAME FROM PER_PERSON_NAMES_F  WHERE PASF.MANAGER_ID=PERSON_ID AND NAME_TYPE='GLOBAL' AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_NAME,
0 AS HOURLY_RT,
(SELECT DISTINCT HROF.ORG_INFORMATION2
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
/*Modified as per TP#37357 - Begin*/
/*AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)*/
/*Modified as per TP#37357 - End*/
AND ROWNUM=1) AS CHARTFIELD_LABEL,
CASE WHEN LOC.LOCATION_NAME LIKE '%Remote%' THEN 'REMOTE' ELSE LOC.INTERNAL_LOCATION_CODE END AS BB_PHYSICAL_LOC_CD,
LOC.INTERNAL_LOCATION_CODE,
/*CASE WHEN ASS.WORK_AT_HOME='Y'
THEN (SELECT PA.REGION_2
  FROM PER_ADDRESSES_F PA,PER_PERSON_ADDR_USAGES_F PAA
  WHERE PAA.ADDRESS_TYPE(+)='H1'
AND ASS.PERSON_ID=PAA.PERSON_ID(+)
AND PAA.ADDRESS_ID=PA.ADDRESS_ID(+)
AND TRUNC(SYSDATE) BETWEEN PAA.EFFECTIVE_START_DATE  AND PAA.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PA.EFFECTIVE_START_DATE  AND PA.EFFECTIVE_END_DATE)
ELSE LOC.REGION_2 END AS STATE_,*/
LOC.REGION_2 AS STATE_,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'Y' ELSE 'N' END AS TERM_LBL,
PP.ATTRIBUTE1 AS ALTER_EMPLID,

'N' AS PAY_RATE_01,
'N' AS PAY_RATE_02,
'N' AS PAY_RATE_03,
'N' AS PAY_RATE_04,
'N' AS PAY_RATE_05,
'N' AS PAY_PREM_01,


--(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND  TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS BUSN_EMAIL_ID,
        --(SELECT DISTINCT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE) AS BUSN_EMAIL_ID,
          (SELECT DISTINCT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL2.EMAIL_TYPE in ('W1')             AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE) AS BUSN_EMAIL_ID,
 
   CASE WHEN PP.ATTRIBUTE6 = '_' THEN '' ELSE PP.ATTRIBUTE6 END AS AD_USERNAME,
PP.ATTRIBUTE2 AS REQUESTION_ID,
PPNF.MIDDLE_NAMES,
ASS.WORK_AT_HOME,
        CASE WHEN ASS.WORK_AT_HOME='N' THEN
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=LOC.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND  NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
ELSE
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=ADDR.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND  NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
END AS TIMEZONE

FROM PER_ALL_PEOPLE_F PER,
PER_ALL_ASSIGNMENTS_F ASS,
PER_PERSON_NAMES_F PPNF,
PER_DEPARTMENTS DEPT,
PER_PERIODS_OF_SERVICE PPOS,
PER_JOBS_F PJ,
HR_LOCATIONS_ALL_F_VL LOC,
PER_NATIONAL_IDENTIFIERS NID,
PER_ASSIGNMENT_SUPERVISORS_F PASF,
CMP_SALARY CS,
PER_ADDRESSES_F ADDR,
PER_PERSON_ADDR_USAGES_F ADF,
PER_PERSONS PP

WHERE 1=1
                --AND ASS.PERSON_ID IN (SELECT PERSON_ID FROM PER_ALL_ASSIGNMENTS_M ASS1 WHERE HOURLY_SALARIED_CODE = 'S')
--AND ASS.PERSON_ID NOT IN (SELECT PERSON_ID FROM PER_ALL_ASSIGNMENTS_M ASS1 WHERE HOURLY_SALARIED_CODE = 'H')
AND PPNF.NAME_TYPE(+) ='GLOBAL'
AND ADF.ADDRESS_TYPE(+)='HOME'
AND ADF.ADDRESS_ID=ADDR.ADDRESS_ID(+)
AND ASS.PERSON_ID=ADF.PERSON_ID(+)
AND PER.PERSON_ID=ASS.PERSON_ID
AND ASS.PERSON_ID=PPNF.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=DEPT.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID=PPOS.PERIOD_OF_SERVICE_ID(+)
AND ASS.PERSON_ID=PPOS.PERSON_ID(+)
AND ASS.JOB_ID=PJ.JOB_ID(+)
AND ASS.PERSON_ID=NID.PERSON_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
AND ASS.ASSIGNMENT_ID=CS.ASSIGNMENT_ID(+)
AND ASS.PERSON_ID=PASF.PERSON_ID(+)
AND ASS.ASSIGNMENT_ID=PASF.ASSIGNMENT_ID(+)
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND ASS.ASSIGNMENT_TYPE IN ('C') AND LOC.INTERNAL_LOCATION_CODE IN ('GLS-AUS','SGS-PHL')
AND NID.NATIONAL_IDENTIFIER_TYPE(+) ='SSN'
AND PASF.MANAGER_TYPE(+)='LINE_MANAGER'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND TRUNC(SYSDATE) BETWEEN PPNF.EFFECTIVE_START_DATE(+)  AND PPNF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE(+)  AND ASS.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN DEPT.EFFECTIVE_START_DATE(+)  AND DEPT.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDR.EFFECTIVE_START_DATE(+)  AND ADDR.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADF.EFFECTIVE_START_DATE(+)  AND ADF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PJ.EFFECTIVE_START_DATE(+) AND PJ.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PASF.EFFECTIVE_START_DATE(+) AND PASF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN CS.DATE_FROM(+) AND CS.DATE_TO(+)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE
ORDER BY EMPLID,EFFDAT DESC,EFFSEQ DESC


------------

-----------------------ASSIGNMENTS_HOURLY-------------------------
SELECT  DISTINCT PER.PERSON_NUMBER AS EMPLID,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS EFFDT,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'YYYY/MM/DD') AS EFFDAT,
ASS.EFFECTIVE_SEQUENCE AS EFFSEQ,
PPNF.FIRST_NAME,
PPNF.LAST_NAME,
(SELECT DISTINCT HROF.ORG_INFORMATION2 FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS DEPTID,
ASS.HOURLY_SALARIED_CODE AS EMPL_TYPE,
TO_CHAR(PPOS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS HIRE_DT,
PJ.JOB_CODE AS JOBCODE,
TO_CHAR(PPOS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DT,
-- LOC.TIMEZONE_CODE AS TIMEZONE,
'' AS NATION_ID,
LOC.INTERNAL_LOCATION_CODE AS LOCATION,
ASS.ACTION_CODE,
NVL((SELECT DISTINCT ACTION_CODE
FROM PER_ALL_ASSIGNMENTS_F
WHERE 1=1 AND ACTION_CODE IN ('REHIRE') AND PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C')
AND HOURLY_SALARIED_CODE in ('H','S') AND LEGISLATION_CODE='US'),'HIRE')
AS HIRE_RULE_ID,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','PR') THEN 'R'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PT','FT') THEN 'T' END AS REG_TEMP,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'F'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'P' END AS FULL_PART_TIME,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F WHERE PASF.MANAGER_ID=PERSON_ID AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_ID,
(SELECT LAST_NAME||','||FIRST_NAME FROM PER_PERSON_NAMES_F  WHERE PASF.MANAGER_ID=PERSON_ID AND NAME_TYPE='GLOBAL' AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_NAME,
CASE WHEN ASS.HOURLY_SALARIED_CODE = 'H' THEN CS.SALARY_AMOUNT ELSE 0 END AS HOURLY_RT,
(SELECT DISTINCT HROF.ORG_INFORMATION2
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS CHARTFIELD_LABEL,
CASE WHEN LOC.LOCATION_NAME LIKE '%Remote%' THEN 'REMOTE' ELSE LOC.INTERNAL_LOCATION_CODE END AS BB_PHYSICAL_LOC_CD,
LOC.INTERNAL_LOCATION_CODE,
/*CASE WHEN ASS.WORK_AT_HOME='Y'
THEN (SELECT PA.REGION_2
  FROM PER_ADDRESSES_F PA,PER_PERSON_ADDR_USAGES_F PAA
  WHERE PAA.ADDRESS_TYPE(+)='H1'
AND ASS.PERSON_ID=PAA.PERSON_ID(+)
AND PAA.ADDRESS_ID=PA.ADDRESS_ID(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PAA.EFFECTIVE_START_DATE  AND PAA.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN PA.EFFECTIVE_START_DATE  AND PA.EFFECTIVE_END_DATE)
ELSE LOC.REGION_2 END AS STATE_,*/
LOC.REGION_2 AS STATE_,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'Y' ELSE 'N' END AS TERM_LBL,
PP.ATTRIBUTE1 AS ALTER_EMPLID,



NVL((SELECT DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET,PAY_ELEMENT_ENTRIES_F EE
WHERE ET.ELEMENT_TYPE_ID(+)=EE.ELEMENT_TYPE_ID
AND EE.PERSON_ID(+)=ASS.PERSON_ID
AND ET.ELEMENT_NAME IN ('Performance Differential 1 US')
AND ASS.EFFECTIVE_START_DATE between EE.EFFECTIVE_START_DATE and NVL( EE.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND ASS.EFFECTIVE_START_DATE between ET.EFFECTIVE_START_DATE and NVL( ET.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_01,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET1,PAY_ELEMENT_ENTRIES_F EE1
WHERE ET1.ELEMENT_TYPE_ID(+)=EE1.ELEMENT_TYPE_ID
AND EE1.PERSON_ID(+)=ASS.PERSON_ID
AND ET1.ELEMENT_NAME IN ('Performance Differential 2 US')
AND ASS.EFFECTIVE_START_DATE between EE1.EFFECTIVE_START_DATE(+) and NVL(EE1.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND ASS.EFFECTIVE_START_DATE between ET1.EFFECTIVE_START_DATE(+) and NVL( ET1.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_02,

NVL((SELECT  DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET2,PAY_ELEMENT_ENTRIES_F EE2
WHERE ET2.ELEMENT_TYPE_ID(+)=EE2.ELEMENT_TYPE_ID
AND EE2.PERSON_ID(+)=ASS.PERSON_ID
AND ET2.ELEMENT_NAME IN ('Performance Differential 125 US')
AND ASS.EFFECTIVE_START_DATE between EE2.EFFECTIVE_START_DATE(+) and NVL(EE2.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND ASS.EFFECTIVE_START_DATE between ET2.EFFECTIVE_START_DATE(+) and NVL( ET2.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_03,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET3,PAY_ELEMENT_ENTRIES_F EE3
WHERE ET3.ELEMENT_TYPE_ID(+)=EE3.ELEMENT_TYPE_ID
AND EE3.PERSON_ID(+)=ASS.PERSON_ID
AND ET3.ELEMENT_NAME IN ('Performance Differential 225 US')
AND ASS.EFFECTIVE_START_DATE between EE3.EFFECTIVE_START_DATE(+) and NVL(EE3.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND ASS.EFFECTIVE_START_DATE between ET3.EFFECTIVE_START_DATE(+) and NVL( ET3.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_04,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET4,PAY_ELEMENT_ENTRIES_F EE4
WHERE ET4.ELEMENT_TYPE_ID(+)=EE4.ELEMENT_TYPE_ID
AND EE4.PERSON_ID(+)=ASS.PERSON_ID
AND ET4.ELEMENT_NAME IN ('Performance Differential 3 US')
AND ASS.EFFECTIVE_START_DATE between EE4.EFFECTIVE_START_DATE(+) and NVL(EE4.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND ASS.EFFECTIVE_START_DATE between ET4.EFFECTIVE_START_DATE(+) and NVL( ET4.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_05,

NVL((SELECT  DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET5,PAY_ELEMENT_ENTRIES_F EE5
WHERE ET5.ELEMENT_TYPE_ID(+)=EE5.ELEMENT_TYPE_ID
AND EE5.PERSON_ID(+)=ASS.PERSON_ID
AND ET5.ELEMENT_NAME IN ('Georgetown LOB premium US')
AND ASS.EFFECTIVE_START_DATE between EE5.EFFECTIVE_START_DATE(+) and NVL(EE5.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND ASS.EFFECTIVE_START_DATE between ET5.EFFECTIVE_START_DATE(+) and NVL( ET5.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N')  AS PAY_PREM_01,


(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS BUSN_EMAIL_ID,





CASE WHEN PP.ATTRIBUTE6 = '_' THEN '' ELSE PP.ATTRIBUTE6 END AS AD_USERNAME,
PP.ATTRIBUTE2 AS REQUESTION_ID,
PPNF.MIDDLE_NAMES,
ASS.WORK_AT_HOME,
        CASE WHEN ASS.WORK_AT_HOME='N' THEN
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=LOC.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND  NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
ELSE
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=ADDR.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND  NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
END AS TIMEZONE

FROM PER_ALL_PEOPLE_F PER,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PERSON_NAMES_F PPNF,
PER_DEPARTMENTS DEPT,
PER_PERIODS_OF_SERVICE PPOS,
PER_JOBS_F PJ,
HR_LOCATIONS_ALL_F_VL LOC,
PER_NATIONAL_IDENTIFIERS NID,
PER_ASSIGNMENT_SUPERVISORS_F PASF,
CMP_SALARY CS,
PER_ADDRESSES_F ADDR,
PER_PERSON_ADDR_USAGES_F ADF,
PER_PERSONS PP

WHERE ASS.PERSON_ID IN (SELECT PERSON_ID FROM PER_ALL_ASSIGNMENTS_M ASS1 WHERE HOURLY_SALARIED_CODE = 'H')
AND ASS.LEGISLATION_CODE(+)='US'
AND PPNF.NAME_TYPE(+) ='GLOBAL'
AND ADF.ADDRESS_TYPE(+)='HOME'
AND ADF.ADDRESS_ID=ADDR.ADDRESS_ID(+)
AND ASS.PERSON_ID=ADF.PERSON_ID(+)
AND PER.PERSON_ID=ASS.PERSON_ID
AND ASS.PERSON_ID=PPNF.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=DEPT.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID=PPOS.PERIOD_OF_SERVICE_ID(+)
AND ASS.PERSON_ID=PPOS.PERSON_ID(+)
AND ASS.JOB_ID=PJ.JOB_ID(+)
AND ASS.PERSON_ID=NID.PERSON_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
AND ASS.ASSIGNMENT_ID=CS.ASSIGNMENT_ID(+)
AND ASS.PERSON_ID=PASF.PERSON_ID(+)
AND ASS.ASSIGNMENT_ID=PASF.ASSIGNMENT_ID(+)
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND NID.NATIONAL_IDENTIFIER_TYPE(+) ='SSN'
AND PASF.MANAGER_TYPE(+)='LINE_MANAGER'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND ASS.EFFECTIVE_START_DATE BETWEEN PPNF.EFFECTIVE_START_DATE(+)  AND PPNF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN DEPT.EFFECTIVE_START_DATE(+)  AND DEPT.EFFECTIVE_END_DATE(+)
AND ADF.EFFECTIVE_START_DATE BETWEEN ADDR.EFFECTIVE_START_DATE(+)  AND ADDR.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN ADF.EFFECTIVE_START_DATE(+)  AND ADF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PJ.EFFECTIVE_START_DATE(+) AND PJ.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN ADDR.EFFECTIVE_START_DATE AND ADDR.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN PASF.EFFECTIVE_START_DATE(+) AND PASF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN CS.DATE_FROM(+) AND CS.DATE_TO(+)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE


UNION

-----------------------SALARY-------------------------

SELECT  DISTINCT PER.PERSON_NUMBER AS EMPLID,
TO_CHAR(CS.DATE_FROM,'MM/DD/YYYY') AS EFFDT,
TO_CHAR(CS.DATE_FROM,'YYYY/MM/DD') AS EFFDAT,
ASS.EFFECTIVE_SEQUENCE AS EFFSEQ,
PPNF.FIRST_NAME,
PPNF.LAST_NAME,
(SELECT DISTINCT HROF.ORG_INFORMATION2
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS DEPTID,
ASS.HOURLY_SALARIED_CODE AS EMPL_TYPE,
TO_CHAR(PPOS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS HIRE_DT,
PJ.JOB_CODE AS JOBCODE,
TO_CHAR(PPOS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DT,
-- LOC.TIMEZONE_CODE AS TIMEZONE,
'' AS NATION_ID,
LOC.INTERNAL_LOCATION_CODE AS LOCATION,
ASS.ACTION_CODE,
NVL((SELECT DISTINCT ACTION_CODE
FROM PER_ALL_ASSIGNMENTS_F
WHERE 1=1 AND ACTION_CODE IN ('REHIRE') AND PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C')
AND HOURLY_SALARIED_CODE in ('H','S') AND LEGISLATION_CODE='US'),'HIRE')
AS HIRE_RULE_ID,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','PR') THEN 'R'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PT','FT') THEN 'T' END AS REG_TEMP,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'F'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'P' END AS FULL_PART_TIME,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F WHERE PASF.MANAGER_ID=PERSON_ID AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_ID,
(SELECT LAST_NAME||','||FIRST_NAME FROM PER_PERSON_NAMES_F  WHERE PASF.MANAGER_ID=PERSON_ID AND NAME_TYPE='GLOBAL' AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_NAME,
CASE WHEN ASS.HOURLY_SALARIED_CODE = 'H' THEN CS.SALARY_AMOUNT ELSE 0 END AS HOURLY_RT,
(SELECT DISTINCT HROF.ORG_INFORMATION2
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS CHARTFIELD_LABEL,
CASE WHEN LOC.LOCATION_NAME LIKE '%Remote%' THEN 'REMOTE' ELSE LOC.INTERNAL_LOCATION_CODE END AS BB_PHYSICAL_LOC_CD,
LOC.INTERNAL_LOCATION_CODE,
/*CASE WHEN ASS.WORK_AT_HOME='Y'
THEN (SELECT PA.REGION_2
  FROM PER_ADDRESSES_F PA,PER_PERSON_ADDR_USAGES_F PAA
  WHERE PAA.ADDRESS_TYPE(+)='H1'
AND ASS.PERSON_ID=PAA.PERSON_ID(+)
AND PAA.ADDRESS_ID=PA.ADDRESS_ID(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PAA.EFFECTIVE_START_DATE  AND PAA.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN PA.EFFECTIVE_START_DATE  AND PA.EFFECTIVE_END_DATE)
ELSE LOC.REGION_2 END AS STATE_,*/
LOC.REGION_2 AS STATE_,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'Y' ELSE 'N' END AS TERM_LBL,
PP.ATTRIBUTE1 AS ALTER_EMPLID,



NVL((SELECT  DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET,PAY_ELEMENT_ENTRIES_F EE
WHERE ET.ELEMENT_TYPE_ID(+)=EE.ELEMENT_TYPE_ID
AND EE.PERSON_ID=ASS.PERSON_ID
AND ET.ELEMENT_NAME IN ('Performance Differential 1 US')
AND CS.DATE_FROM between EE.EFFECTIVE_START_DATE and NVL( EE.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND CS.DATE_FROM between ET.EFFECTIVE_START_DATE and NVL( ET.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_01,

NVL((SELECT  DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET1,PAY_ELEMENT_ENTRIES_F EE1
WHERE ET1.ELEMENT_TYPE_ID(+)=EE1.ELEMENT_TYPE_ID
AND EE1.PERSON_ID =ASS.PERSON_ID
AND ET1.ELEMENT_NAME IN ('Performance Differential 2 US')
AND CS.DATE_FROM between EE1.EFFECTIVE_START_DATE and NVL(EE1.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND CS.DATE_FROM between ET1.EFFECTIVE_START_DATE and NVL( ET1.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_02,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET2,PAY_ELEMENT_ENTRIES_F EE2
WHERE ET2.ELEMENT_TYPE_ID(+)=EE2.ELEMENT_TYPE_ID
AND EE2.PERSON_ID =ASS.PERSON_ID
AND ET2.ELEMENT_NAME IN ('Performance Differential 125 US')
AND CS.DATE_FROM between EE2.EFFECTIVE_START_DATE and NVL(EE2.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND CS.DATE_FROM between ET2.EFFECTIVE_START_DATE and NVL( ET2.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_03,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET3,PAY_ELEMENT_ENTRIES_F EE3
WHERE ET3.ELEMENT_TYPE_ID(+)=EE3.ELEMENT_TYPE_ID
AND EE3.PERSON_ID=ASS.PERSON_ID
AND ET3.ELEMENT_NAME IN ('Performance Differential 225 US')
AND CS.DATE_FROM between EE3.EFFECTIVE_START_DATE and NVL(EE3.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND CS.DATE_FROM between ET3.EFFECTIVE_START_DATE and NVL( ET3.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_04,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET4,PAY_ELEMENT_ENTRIES_F EE4
WHERE ET4.ELEMENT_TYPE_ID(+)=EE4.ELEMENT_TYPE_ID
AND EE4.PERSON_ID=ASS.PERSON_ID
AND ET4.ELEMENT_NAME IN ('Performance Differential 3 US')
AND CS.DATE_FROM between EE4.EFFECTIVE_START_DATE and NVL(EE4.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND CS.DATE_FROM between ET4.EFFECTIVE_START_DATE and NVL( ET4.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_05,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET5,PAY_ELEMENT_ENTRIES_F EE5
WHERE ET5.ELEMENT_TYPE_ID(+)=EE5.ELEMENT_TYPE_ID
AND EE5.PERSON_ID=ASS.PERSON_ID
AND ET5.ELEMENT_NAME IN ('Georgetown LOB premium US')
AND CS.DATE_FROM between EE5.EFFECTIVE_START_DATE and NVL(EE5.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND CS.DATE_FROM between ET5.EFFECTIVE_START_DATE and NVL( ET5.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N')  AS PAY_PREM_01,


(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS BUSN_EMAIL_ID,
CASE WHEN PP.ATTRIBUTE6 = '_' THEN '' ELSE PP.ATTRIBUTE6 END AS AD_USERNAME,
PP.ATTRIBUTE2 AS REQUESTION_ID,
PPNF.MIDDLE_NAMES,
ASS.WORK_AT_HOME,
        CASE WHEN ASS.WORK_AT_HOME='N' THEN
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=LOC.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND  NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
ELSE
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=ADDR.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND  NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
END AS TIMEZONE

FROM PER_ALL_PEOPLE_F PER,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PERSON_NAMES_F PPNF,
PER_DEPARTMENTS DEPT,
PER_PERIODS_OF_SERVICE PPOS,
PER_JOBS_F PJ,
HR_LOCATIONS_ALL_F_VL LOC,
PER_NATIONAL_IDENTIFIERS NID,
PER_ASSIGNMENT_SUPERVISORS_F PASF,
CMP_SALARY CS,
PER_ADDRESSES_F ADDR,
PER_PERSON_ADDR_USAGES_F ADF,
PER_PERSONS PP

WHERE ASS.PERSON_ID IN (SELECT PERSON_ID FROM PER_ALL_ASSIGNMENTS_M ASS1 WHERE HOURLY_SALARIED_CODE = 'H')
AND ASS.LEGISLATION_CODE(+)='US'
AND PPNF.NAME_TYPE(+) ='GLOBAL'
AND ADF.ADDRESS_TYPE(+)='HOME'
AND ADF.ADDRESS_ID=ADDR.ADDRESS_ID(+)
AND ASS.PERSON_ID=ADF.PERSON_ID(+)
AND PER.PERSON_ID=ASS.PERSON_ID
AND ASS.PERSON_ID=PPNF.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=DEPT.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID=PPOS.PERIOD_OF_SERVICE_ID(+)
AND ASS.PERSON_ID=PPOS.PERSON_ID(+)
AND ASS.JOB_ID=PJ.JOB_ID(+)
AND ASS.PERSON_ID=NID.PERSON_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
AND ASS.ASSIGNMENT_ID=CS.ASSIGNMENT_ID(+)
AND ASS.PERSON_ID=PASF.PERSON_ID(+)
AND ASS.ASSIGNMENT_ID=PASF.ASSIGNMENT_ID(+)
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND NID.NATIONAL_IDENTIFIER_TYPE(+) ='SSN'
AND PASF.MANAGER_TYPE(+)='LINE_MANAGER'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND ASS.EFFECTIVE_START_DATE BETWEEN PPNF.EFFECTIVE_START_DATE(+)  AND PPNF.EFFECTIVE_END_DATE(+)
AND CS.DATE_FROM BETWEEN ASS.EFFECTIVE_START_DATE  AND ASS.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN DEPT.EFFECTIVE_START_DATE(+)  AND DEPT.EFFECTIVE_END_DATE(+)
AND ADF.EFFECTIVE_START_DATE BETWEEN ADDR.EFFECTIVE_START_DATE(+)  AND ADDR.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN ADF.EFFECTIVE_START_DATE(+)  AND ADF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PJ.EFFECTIVE_START_DATE(+) AND PJ.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PASF.EFFECTIVE_START_DATE(+) AND PASF.EFFECTIVE_END_DATE(+)
----AND ASS.EFFECTIVE_START_DATE BETWEEN CS.DATE_FROM(+) AND CS.DATE_TO(+)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE


UNION

-------COMPENSATIONSTART-----------------



SELECT  DISTINCT PER.PERSON_NUMBER AS EMPLID,
TO_CHAR(EET.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS EFFDT,
TO_CHAR(EET.EFFECTIVE_START_DATE,'YYYY/MM/DD') AS EFFDAT,
ASS.EFFECTIVE_SEQUENCE AS EFFSEQ,
PPNF.FIRST_NAME,
PPNF.LAST_NAME,
(SELECT DISTINCT HROF.ORG_INFORMATION2
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS DEPTID,
ASS.HOURLY_SALARIED_CODE AS EMPL_TYPE,
TO_CHAR(PPOS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS HIRE_DT,
PJ.JOB_CODE AS JOBCODE,
TO_CHAR(PPOS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DT,
-- LOC.TIMEZONE_CODE AS TIMEZONE,
'' AS NATION_ID,
LOC.INTERNAL_LOCATION_CODE AS LOCATION,
ASS.ACTION_CODE,
NVL((SELECT DISTINCT ACTION_CODE
FROM PER_ALL_ASSIGNMENTS_F
WHERE 1=1 AND ACTION_CODE IN ('REHIRE') AND PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C')
AND HOURLY_SALARIED_CODE in ('H','S') AND LEGISLATION_CODE='US'),'HIRE')
AS HIRE_RULE_ID,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','PR') THEN 'R'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PT','FT') THEN 'T' END AS REG_TEMP,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'F'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'P' END AS FULL_PART_TIME,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F WHERE PASF.MANAGER_ID=PERSON_ID AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_ID,
(SELECT LAST_NAME||','||FIRST_NAME FROM PER_PERSON_NAMES_F  WHERE PASF.MANAGER_ID=PERSON_ID AND NAME_TYPE='GLOBAL' AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_NAME,
CASE WHEN ASS.HOURLY_SALARIED_CODE = 'H' THEN CS.SALARY_AMOUNT ELSE 0 END AS HOURLY_RT,
(SELECT DISTINCT HROF.ORG_INFORMATION2
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS CHARTFIELD_LABEL,
CASE WHEN LOC.LOCATION_NAME LIKE '%Remote%' THEN 'REMOTE' ELSE LOC.INTERNAL_LOCATION_CODE END AS BB_PHYSICAL_LOC_CD,
LOC.INTERNAL_LOCATION_CODE,
/*CASE WHEN ASS.WORK_AT_HOME='Y'
THEN (SELECT PA.REGION_2
  FROM PER_ADDRESSES_F PA,PER_PERSON_ADDR_USAGES_F PAA
  WHERE PAA.ADDRESS_TYPE(+)='H1'
AND ASS.PERSON_ID=PAA.PERSON_ID(+)
AND PAA.ADDRESS_ID=PA.ADDRESS_ID(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PAA.EFFECTIVE_START_DATE  AND PAA.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN PA.EFFECTIVE_START_DATE  AND PA.EFFECTIVE_END_DATE)
ELSE LOC.REGION_2 END AS STATE_,*/
LOC.REGION_2 AS STATE_,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'Y' ELSE 'N' END AS TERM_LBL,
PP.ATTRIBUTE1 AS ALTER_EMPLID,



NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET,PAY_ELEMENT_ENTRIES_F EE
WHERE ET.ELEMENT_TYPE_ID(+)=EE.ELEMENT_TYPE_ID
AND EE.PERSON_ID(+)=ASS.PERSON_ID
-- AND EE.PERSON_ID=EET.PERSON_ID
AND ET.ELEMENT_NAME IN ('Performance Differential 1 US')
AND EET.EFFECTIVE_START_DATE between EE.EFFECTIVE_START_DATE and NVL( EE.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE.EFFECTIVE_START_DATE between ET.EFFECTIVE_START_DATE and NVL( ET.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_01,

NVL((SELECT  DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET1,PAY_ELEMENT_ENTRIES_F EE1
WHERE ET1.ELEMENT_TYPE_ID(+)=EE1.ELEMENT_TYPE_ID
AND EE1.PERSON_ID(+)=ASS.PERSON_ID
AND ET1.ELEMENT_NAME IN ('Performance Differential 2 US')
AND EET.EFFECTIVE_START_DATE between EE1.EFFECTIVE_START_DATE(+) and NVL(EE1.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE1.EFFECTIVE_START_DATE between ET1.EFFECTIVE_START_DATE(+) and NVL( ET1.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_02,

NVL((SELECT  DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET2,PAY_ELEMENT_ENTRIES_F EE2
WHERE ET2.ELEMENT_TYPE_ID(+)=EE2.ELEMENT_TYPE_ID
AND EE2.PERSON_ID(+)=ASS.PERSON_ID
AND ET2.ELEMENT_NAME IN ('Performance Differential 125 US')
AND EET.EFFECTIVE_START_DATE between EE2.EFFECTIVE_START_DATE(+) and NVL(EE2.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE2.EFFECTIVE_START_DATE between ET2.EFFECTIVE_START_DATE(+) and NVL( ET2.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_03,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET3,PAY_ELEMENT_ENTRIES_F EE3
WHERE ET3.ELEMENT_TYPE_ID(+)=EE3.ELEMENT_TYPE_ID
AND EE3.PERSON_ID(+)=ASS.PERSON_ID
AND ET3.ELEMENT_NAME IN ('Performance Differential 225 US')
AND EET.EFFECTIVE_START_DATE between EE3.EFFECTIVE_START_DATE(+) and NVL(EE3.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE3.EFFECTIVE_START_DATE between ET3.EFFECTIVE_START_DATE(+) and NVL( ET3.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_04,

NVL((SELECT  DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET4,PAY_ELEMENT_ENTRIES_F EE4
WHERE ET4.ELEMENT_TYPE_ID(+)=EE4.ELEMENT_TYPE_ID
AND EE4.PERSON_ID(+)=ASS.PERSON_ID
AND ET4.ELEMENT_NAME IN ('Performance Differential 3 US')
AND EET.EFFECTIVE_START_DATE between EE4.EFFECTIVE_START_DATE(+) and NVL(EE4.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE4.EFFECTIVE_START_DATE between ET4.EFFECTIVE_START_DATE(+) and NVL( ET4.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_05,

NVL((SELECT  DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET5,PAY_ELEMENT_ENTRIES_F EE5
WHERE ET5.ELEMENT_TYPE_ID(+)=EE5.ELEMENT_TYPE_ID
AND EE5.PERSON_ID(+)=ASS.PERSON_ID
AND ET5.ELEMENT_NAME IN ('Georgetown LOB premium US')
AND EET.EFFECTIVE_START_DATE between EE5.EFFECTIVE_START_DATE(+) and NVL(EE5.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE5.EFFECTIVE_START_DATE between ET5.EFFECTIVE_START_DATE(+) and NVL( ET5.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N')  AS PAY_PREM_01,


(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS BUSN_EMAIL_ID,
CASE WHEN PP.ATTRIBUTE6 = '_' THEN '' ELSE PP.ATTRIBUTE6 END AS AD_USERNAME,
PP.ATTRIBUTE2 AS REQUESTION_ID,
PPNF.MIDDLE_NAMES,
ASS.WORK_AT_HOME,
        CASE WHEN ASS.WORK_AT_HOME='N' THEN
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=LOC.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND  NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
ELSE
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=ADDR.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
END AS TIMEZONE

FROM PER_ALL_PEOPLE_F PER,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PERSON_NAMES_F PPNF,
PER_DEPARTMENTS DEPT,
PER_PERIODS_OF_SERVICE PPOS,
PER_JOBS_F PJ,
HR_LOCATIONS_ALL_F_VL LOC,
PER_NATIONAL_IDENTIFIERS NID,
PER_ASSIGNMENT_SUPERVISORS_F PASF,
CMP_SALARY CS,
PER_ADDRESSES_F ADDR,
PAY_ELEMENT_ENTRIES_F EET,
PAY_ELEMENT_TYPES_VL ETT,
PER_PERSON_ADDR_USAGES_F ADF,
PER_PERSONS PP

WHERE ASS.PERSON_ID IN (SELECT PERSON_ID FROM PER_ALL_ASSIGNMENTS_M ASS1 WHERE HOURLY_SALARIED_CODE = 'H')
AND ASS.LEGISLATION_CODE(+)='US'
AND PPNF.NAME_TYPE(+) ='GLOBAL'
AND ADF.ADDRESS_TYPE(+)='HOME'
AND ADF.ADDRESS_ID=ADDR.ADDRESS_ID(+)
AND ASS.PERSON_ID=ADF.PERSON_ID(+)
AND PER.PERSON_ID=ASS.PERSON_ID
AND ASS.PERSON_ID=PPNF.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=DEPT.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID=PPOS.PERIOD_OF_SERVICE_ID(+)
AND ASS.PERSON_ID=PPOS.PERSON_ID(+)
AND ASS.JOB_ID=PJ.JOB_ID(+)
AND ASS.PERSON_ID=NID.PERSON_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
AND ASS.ASSIGNMENT_ID=CS.ASSIGNMENT_ID(+)
AND ASS.PERSON_ID=PASF.PERSON_ID(+)
AND ASS.ASSIGNMENT_ID=PASF.ASSIGNMENT_ID(+)
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND NID.NATIONAL_IDENTIFIER_TYPE(+) ='SSN'
AND ETT.ELEMENT_NAME IN ('Performance Differential 1 US','Performance Differential 2 US','Performance Differential 3 US','Performance Differential 125 US','Performance Differential 225 US','Georgetown LOB premium US')
AND ETT.ELEMENT_TYPE_ID(+)=EET.ELEMENT_TYPE_ID
AND EET.PERSON_ID=ASS.PERSON_ID(+)
AND PASF.MANAGER_TYPE(+)='LINE_MANAGER'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND EET.EFFECTIVE_START_DATE BETWEEN ASS.EFFECTIVE_START_DATE(+)  AND ASS.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PPNF.EFFECTIVE_START_DATE(+)  AND PPNF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN DEPT.EFFECTIVE_START_DATE(+)  AND DEPT.EFFECTIVE_END_DATE(+)
AND ADF.EFFECTIVE_START_DATE BETWEEN ADDR.EFFECTIVE_START_DATE(+)  AND ADDR.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN ADF.EFFECTIVE_START_DATE(+)  AND ADF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PJ.EFFECTIVE_START_DATE(+) AND PJ.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PASF.EFFECTIVE_START_DATE(+) AND PASF.EFFECTIVE_END_DATE(+)
AND (EET.EFFECTIVE_START_DATE BETWEEN CS.DATE_FROM AND CS.DATE_TO OR CS.DATE_FROM IS NULL)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE


UNION

-----------------------COMPENSATIONEND-------------------------

SELECT DISTINCT  PER.PERSON_NUMBER AS EMPLID,
TO_CHAR((EET.EFFECTIVE_END_DATE + 1),'MM/DD/YYYY') AS EFFDT,
TO_CHAR(EET.EFFECTIVE_END_DATE + 1,'YYYY/MM/DD') AS EFFDAT,
ASS.EFFECTIVE_SEQUENCE AS EFFSEQ,
PPNF.FIRST_NAME,
PPNF.LAST_NAME,
(SELECT DISTINCT HROF.ORG_INFORMATION2
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS DEPTID,
ASS.HOURLY_SALARIED_CODE AS EMPL_TYPE,
TO_CHAR(PPOS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS HIRE_DT,
PJ.JOB_CODE AS JOBCODE,
TO_CHAR(PPOS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DT,
-- LOC.TIMEZONE_CODE AS TIMEZONE,
'' AS NATION_ID,
LOC.INTERNAL_LOCATION_CODE AS LOCATION,
ASS.ACTION_CODE,
NVL((SELECT DISTINCT ACTION_CODE
FROM PER_ALL_ASSIGNMENTS_F
WHERE 1=1 AND ACTION_CODE IN ('REHIRE') AND PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C')
AND HOURLY_SALARIED_CODE in ('H','S') AND LEGISLATION_CODE='US'),'HIRE')
AS HIRE_RULE_ID,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','PR') THEN 'R'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PT','FT') THEN 'T' END AS REG_TEMP,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'F'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'P' END AS FULL_PART_TIME,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F WHERE PASF.MANAGER_ID=PERSON_ID AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_ID,
(SELECT LAST_NAME||','||FIRST_NAME FROM PER_PERSON_NAMES_F  WHERE PASF.MANAGER_ID=PERSON_ID AND NAME_TYPE='GLOBAL' AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_NAME,
CASE WHEN ASS.HOURLY_SALARIED_CODE = 'H' THEN CS.SALARY_AMOUNT ELSE 0 END AS HOURLY_RT,
(SELECT DISTINCT HROF.ORG_INFORMATION2
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS CHARTFIELD_LABEL,
CASE WHEN LOC.LOCATION_NAME LIKE '%Remote%' THEN 'REMOTE' ELSE LOC.INTERNAL_LOCATION_CODE END AS BB_PHYSICAL_LOC_CD,
LOC.INTERNAL_LOCATION_CODE,
/*CASE WHEN ASS.WORK_AT_HOME='Y'
THEN (SELECT PA.REGION_2
  FROM PER_ADDRESSES_F PA,PER_PERSON_ADDR_USAGES_F PAA
  WHERE PAA.ADDRESS_TYPE(+)='H1'
AND ASS.PERSON_ID=PAA.PERSON_ID(+)
AND PAA.ADDRESS_ID=PA.ADDRESS_ID(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PAA.EFFECTIVE_START_DATE  AND PAA.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN PA.EFFECTIVE_START_DATE  AND PA.EFFECTIVE_END_DATE)
ELSE LOC.REGION_2 END AS STATE_,*/
LOC.REGION_2 AS STATE_,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'Y' ELSE 'N' END AS TERM_LBL,
PP.ATTRIBUTE1 AS ALTER_EMPLID,



NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET,PAY_ELEMENT_ENTRIES_F EE
WHERE ET.ELEMENT_TYPE_ID(+)=EE.ELEMENT_TYPE_ID
AND EE.PERSON_ID(+)=ASS.PERSON_ID
-- AND EE.PERSON_ID=EET.PERSON_ID
AND ET.ELEMENT_NAME IN ('Performance Differential 1 US')
AND EET.EFFECTIVE_END_DATE+1 between EE.EFFECTIVE_START_DATE and NVL( EE.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE.EFFECTIVE_END_DATE between ET.EFFECTIVE_START_DATE and NVL( ET.EFFECTIVE_END_DATE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_01,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET1,PAY_ELEMENT_ENTRIES_F EE1
WHERE ET1.ELEMENT_TYPE_ID(+)=EE1.ELEMENT_TYPE_ID
AND EE1.PERSON_ID(+)=ASS.PERSON_ID
AND ET1.ELEMENT_NAME IN ('Performance Differential 2 US')
AND EET.EFFECTIVE_END_DATE+1 between EE1.EFFECTIVE_START_DATE(+) and NVL(EE1.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE1.EFFECTIVE_END_DATE between ET1.EFFECTIVE_START_DATE(+) and NVL( ET1.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_02,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET2,PAY_ELEMENT_ENTRIES_F EE2
WHERE ET2.ELEMENT_TYPE_ID(+)=EE2.ELEMENT_TYPE_ID
AND EE2.PERSON_ID(+)=ASS.PERSON_ID
AND ET2.ELEMENT_NAME IN ('Performance Differential 125 US')
AND EET.EFFECTIVE_END_DATE+1 between EE2.EFFECTIVE_START_DATE(+) and NVL(EE2.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE2.EFFECTIVE_END_DATE between ET2.EFFECTIVE_START_DATE(+) and NVL( ET2.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_03,

NVL((SELECT  DISTINCT 'Y'
FROM PAY_ELEMENT_TYPES_VL ET3,PAY_ELEMENT_ENTRIES_F EE3
WHERE ET3.ELEMENT_TYPE_ID(+)=EE3.ELEMENT_TYPE_ID
AND EE3.PERSON_ID(+)=ASS.PERSON_ID
AND ET3.ELEMENT_NAME IN ('Performance Differential 225 US')
AND EET.EFFECTIVE_END_DATE+1 between EE3.EFFECTIVE_START_DATE(+) and NVL(EE3.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE3.EFFECTIVE_END_DATE between ET3.EFFECTIVE_START_DATE(+) and NVL( ET3.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_04,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET4,PAY_ELEMENT_ENTRIES_F EE4
WHERE ET4.ELEMENT_TYPE_ID(+)=EE4.ELEMENT_TYPE_ID
AND EE4.PERSON_ID(+)=ASS.PERSON_ID
AND ET4.ELEMENT_NAME IN ('Performance Differential 3 US')
AND EET.EFFECTIVE_END_DATE+1 between EE4.EFFECTIVE_START_DATE(+) and NVL(EE4.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE4.EFFECTIVE_END_DATE between ET4.EFFECTIVE_START_DATE(+) and NVL( ET4.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N') AS PAY_RATE_05,

NVL((SELECT DISTINCT  'Y'
FROM PAY_ELEMENT_TYPES_VL ET5,PAY_ELEMENT_ENTRIES_F EE5
WHERE ET5.ELEMENT_TYPE_ID(+)=EE5.ELEMENT_TYPE_ID
AND EE5.PERSON_ID(+)=ASS.PERSON_ID
AND ET5.ELEMENT_NAME IN ('Georgetown LOB premium US')
AND EET.EFFECTIVE_END_DATE+1 between EE5.EFFECTIVE_START_DATE(+) and NVL(EE5.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND EE5.EFFECTIVE_END_DATE between ET5.EFFECTIVE_START_DATE(+) and NVL( ET5.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
),'N')  AS PAY_PREM_01,


(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS BUSN_EMAIL_ID,
CASE WHEN PP.ATTRIBUTE6 = '_' THEN '' ELSE PP.ATTRIBUTE6 END AS AD_USERNAME,
PP.ATTRIBUTE2 AS REQUESTION_ID,
PPNF.MIDDLE_NAMES,
ASS.WORK_AT_HOME,
        CASE WHEN ASS.WORK_AT_HOME='N' THEN
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=LOC.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND  NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
ELSE
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=ADDR.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
END AS TIMEZONE

FROM PER_ALL_PEOPLE_F PER,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PERSON_NAMES_F PPNF,
PER_DEPARTMENTS DEPT,
PER_PERIODS_OF_SERVICE PPOS,
PER_JOBS_F PJ,
HR_LOCATIONS_ALL_F_VL LOC,
PER_NATIONAL_IDENTIFIERS NID,
PER_ASSIGNMENT_SUPERVISORS_F PASF,
CMP_SALARY CS,
PER_ADDRESSES_F ADDR,
PAY_ELEMENT_ENTRIES_F EET,
PAY_ELEMENT_TYPES_VL ETT,
PER_PERSON_ADDR_USAGES_F ADF,
PER_PERSONS PP

WHERE ASS.PERSON_ID IN (SELECT PERSON_ID FROM PER_ALL_ASSIGNMENTS_M ASS1 WHERE HOURLY_SALARIED_CODE = 'H')
AND ASS.LEGISLATION_CODE(+)='US'
AND PPNF.NAME_TYPE(+) ='GLOBAL'
AND ADF.ADDRESS_TYPE(+)='HOME'
AND ADF.ADDRESS_ID=ADDR.ADDRESS_ID(+)
AND ASS.PERSON_ID=ADF.PERSON_ID(+)
AND PER.PERSON_ID=ASS.PERSON_ID
AND ASS.PERSON_ID=PPNF.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=DEPT.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID=PPOS.PERIOD_OF_SERVICE_ID(+)
AND ASS.PERSON_ID=PPOS.PERSON_ID(+)
AND ASS.JOB_ID=PJ.JOB_ID(+)
AND ASS.PERSON_ID=NID.PERSON_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
AND ASS.ASSIGNMENT_ID=CS.ASSIGNMENT_ID(+)
AND ASS.PERSON_ID=PASF.PERSON_ID(+)
AND ASS.ASSIGNMENT_ID=PASF.ASSIGNMENT_ID(+)
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND NID.NATIONAL_IDENTIFIER_TYPE(+) ='SSN'
AND ETT.ELEMENT_NAME IN ('Performance Differential 1 US','Performance Differential 2 US','Performance Differential 3 US','Performance Differential 125 US','Performance Differential 225 US','Georgetown LOB premium US')
AND ETT.ELEMENT_TYPE_ID(+)=EET.ELEMENT_TYPE_ID
AND EET.PERSON_ID=ASS.PERSON_ID(+)
AND PASF.MANAGER_TYPE(+)='LINE_MANAGER'
AND TO_CHAR(EET.EFFECTIVE_END_DATE,'MM/DD/YYYY') != ('12/31/4712')
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND EET.EFFECTIVE_END_DATE+1 BETWEEN ASS.EFFECTIVE_START_DATE(+)  AND ASS.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PPNF.EFFECTIVE_START_DATE(+)  AND PPNF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN DEPT.EFFECTIVE_START_DATE(+)  AND DEPT.EFFECTIVE_END_DATE(+)
AND ADF.EFFECTIVE_START_DATE BETWEEN ADDR.EFFECTIVE_START_DATE(+)  AND ADDR.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN ADF.EFFECTIVE_START_DATE(+)  AND ADF.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PJ.EFFECTIVE_START_DATE(+) AND PJ.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PASF.EFFECTIVE_START_DATE(+) AND PASF.EFFECTIVE_END_DATE(+)
AND (EET.EFFECTIVE_END_DATE+1 BETWEEN CS.DATE_FROM AND CS.DATE_TO OR CS.DATE_FROM IS NULL)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE


UNION


-----------------------ASSIGNMENTS_SALARIED-------------------------

SELECT  DISTINCT PER.PERSON_NUMBER AS EMPLID,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS EFFDT,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'YYYY/MM/DD') AS EFFDAT,
ASS.EFFECTIVE_SEQUENCE AS EFFSEQ,
PPNF.FIRST_NAME,
PPNF.LAST_NAME,
(SELECT DISTINCT HROF.ORG_INFORMATION2 FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS DEPTID,
ASS.HOURLY_SALARIED_CODE AS EMPL_TYPE,
TO_CHAR(PPOS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS HIRE_DT,
PJ.JOB_CODE AS JOBCODE,
TO_CHAR(PPOS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DT,
-- LOC.TIMEZONE_CODE AS TIMEZONE,
'' AS NATION_ID,
LOC.INTERNAL_LOCATION_CODE AS LOCATION,
ASS.ACTION_CODE,
NVL((SELECT DISTINCT ACTION_CODE
FROM PER_ALL_ASSIGNMENTS_F
WHERE 1=1 AND ACTION_CODE IN ('REHIRE') AND PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C')
AND HOURLY_SALARIED_CODE in ('H','S') AND LEGISLATION_CODE='US'),'HIRE')
AS HIRE_RULE_ID,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','PR') THEN 'R'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PT','FT') THEN 'T' END AS REG_TEMP,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'F'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'P' END AS FULL_PART_TIME,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F WHERE PASF.MANAGER_ID=PERSON_ID AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_ID,
(SELECT LAST_NAME||','||FIRST_NAME FROM PER_PERSON_NAMES_F  WHERE PASF.MANAGER_ID=PERSON_ID AND NAME_TYPE='GLOBAL' AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE  AND EFFECTIVE_END_DATE) AS SUPERVISOR_NAME,
0 AS HOURLY_RT,
(SELECT DISTINCT HROF.ORG_INFORMATION2
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS CHARTFIELD_LABEL,
CASE WHEN LOC.LOCATION_NAME LIKE '%Remote%' THEN 'REMOTE' ELSE LOC.INTERNAL_LOCATION_CODE END AS BB_PHYSICAL_LOC_CD,
LOC.INTERNAL_LOCATION_CODE,
/*CASE WHEN ASS.WORK_AT_HOME='Y'
THEN (SELECT PA.REGION_2
  FROM PER_ADDRESSES_F PA,PER_PERSON_ADDR_USAGES_F PAA
  WHERE PAA.ADDRESS_TYPE(+)='H1'
AND ASS.PERSON_ID=PAA.PERSON_ID(+)
AND PAA.ADDRESS_ID=PA.ADDRESS_ID(+)
AND TRUNC(SYSDATE) BETWEEN PAA.EFFECTIVE_START_DATE  AND PAA.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PA.EFFECTIVE_START_DATE  AND PA.EFFECTIVE_END_DATE)
ELSE LOC.REGION_2 END AS STATE_,*/
LOC.REGION_2 AS STATE_,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'Y' ELSE 'N' END AS TERM_LBL,
PP.ATTRIBUTE1 AS ALTER_EMPLID,

'N' AS PAY_RATE_01,
'N' AS PAY_RATE_02,
'N' AS PAY_RATE_03,
'N' AS PAY_RATE_04,
'N' AS PAY_RATE_05,
'N' AS PAY_PREM_01,


(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_ADDRESS_ID = PER.PRIMARY_EMAIL_ID AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS BUSN_EMAIL_ID,
CASE WHEN PP.ATTRIBUTE6 = '_' THEN '' ELSE PP.ATTRIBUTE6 END AS AD_USERNAME,
PP.ATTRIBUTE2 AS REQUESTION_ID,
PPNF.MIDDLE_NAMES,
ASS.WORK_AT_HOME,
        CASE WHEN ASS.WORK_AT_HOME='N' THEN
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=LOC.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND  NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
ELSE
(SELECT DISTINCT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
   FF_USER_ROWS_VL R,
   FF_USER_COLUMNS_VL C,
   FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID(+) = R.USER_ROW_ID
   AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
   AND C.USER_TABLE_ID (+)= T.USER_TABLE_ID
   AND R.USER_TABLE_ID(+) = T.USER_TABLE_ID
   AND R.ROW_NAME=ADDR.REGION_2
   AND TRUNC(SYSDATE) BETWEEN R.EFFECTIVE_START_DATE AND NVL(R.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND TRUNC(SYSDATE) BETWEEN CI.EFFECTIVE_START_DATE(+) AND  NVL(CI.EFFECTIVE_END_DATE(+), TO_DATE('4712.01.01', 'YYYY.MM.DD'))
   AND T.USER_TABLE_NAME = 'BB_US_TIMEZONES')
END AS TIMEZONE

FROM PER_ALL_PEOPLE_F PER,
PER_ALL_ASSIGNMENTS_F ASS,
PER_PERSON_NAMES_F PPNF,
PER_DEPARTMENTS DEPT,
PER_PERIODS_OF_SERVICE PPOS,
PER_JOBS_F PJ,
HR_LOCATIONS_ALL_F_VL LOC,
PER_NATIONAL_IDENTIFIERS NID,
PER_ASSIGNMENT_SUPERVISORS_F PASF,
CMP_SALARY CS,
PER_ADDRESSES_F ADDR,
PER_PERSON_ADDR_USAGES_F ADF,
PER_PERSONS PP

WHERE ASS.PERSON_ID IN (SELECT PERSON_ID FROM PER_ALL_ASSIGNMENTS_M ASS1 WHERE HOURLY_SALARIED_CODE = 'S')
AND ASS.PERSON_ID NOT IN (SELECT PERSON_ID FROM PER_ALL_ASSIGNMENTS_M ASS1 WHERE HOURLY_SALARIED_CODE = 'H')
AND PPNF.NAME_TYPE(+) ='GLOBAL'
AND ADF.ADDRESS_TYPE(+)='HOME'
AND ADF.ADDRESS_ID=ADDR.ADDRESS_ID(+)
AND ASS.PERSON_ID=ADF.PERSON_ID(+)
AND PER.PERSON_ID=ASS.PERSON_ID
AND ASS.PERSON_ID=PPNF.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=DEPT.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID=PPOS.PERIOD_OF_SERVICE_ID(+)
AND ASS.PERSON_ID=PPOS.PERSON_ID(+)
AND ASS.JOB_ID=PJ.JOB_ID(+)
AND ASS.PERSON_ID=NID.PERSON_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
AND ASS.ASSIGNMENT_ID=CS.ASSIGNMENT_ID(+)
AND ASS.PERSON_ID=PASF.PERSON_ID(+)
AND ASS.ASSIGNMENT_ID=PASF.ASSIGNMENT_ID(+)
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND NID.NATIONAL_IDENTIFIER_TYPE(+) ='SSN'
AND PASF.MANAGER_TYPE(+)='LINE_MANAGER'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND TRUNC(SYSDATE) BETWEEN PPNF.EFFECTIVE_START_DATE(+)  AND PPNF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE(+)  AND ASS.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN DEPT.EFFECTIVE_START_DATE(+)  AND DEPT.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDR.EFFECTIVE_START_DATE(+)  AND ADDR.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADF.EFFECTIVE_START_DATE(+)  AND ADF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PJ.EFFECTIVE_START_DATE(+) AND PJ.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PASF.EFFECTIVE_START_DATE(+) AND PASF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN CS.DATE_FROM(+) AND CS.DATE_TO(+)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE  AND PER.EFFECTIVE_END_DATE

ORDER BY EMPLID,EFFDAT DESC,EFFSEQ DESC


***********************************************************************************************************************************************

Termination DM

SELECT
PER.PERSON_NUMBER AS EMPLID,
TO_CHAR(PPS.NOTIFIED_TERMINATION_DATE,'YYYY-MM-DD') AS ACTION_DT_SS,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'YYYY-MM-DD') AS TERMINATION_DT,
NAME.FIRST_NAME || ' ' || NAME.LAST_NAME AS EMPL_NAME,
(select distinct EMAIL_ADDRESS from per_email_addresses where person_id=sup.manager_id and EMAIL_TYPE='W1' and trunc(sysdate) between nvl(date_from,sysdate-1) and nvl(date_to,sysdate)) AS MANAGER_EMAIL_ADDRESS,
LOC.DESCRIPTION AS LOCATION_DESCR,
LOC.INTERNAL_LOCATION_CODE AS LOCATION,
ASS.ASS_ATTRIBUTE4 AS BUSINESS_TITLE,
/*CASE WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','RESIGNATION') then 'VOLUNTARY: '|| ASS.REASON_CODE
                WHEN ASS.ACTION_CODE IN ('INVOLUNTARY_TERMINATION') THEN 'INVOLUNTARY: ' || ASS.REASON_CODE
END AS TERM_DESCR30, */
CASE WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','RESIGNATION') then 'VOLUNTARY: '|| (SELECT ACTION_REASON FROM PER_ACTION_REASONS_VL WHERE  ACTION_REASON_CODE=ASS.REASON_CODE AND ASS.EFFECTIVE_START_DATE BETWEEN START_DATE(+) AND NVL(END_DATE,TO_DATE('4712.01.01', 'YYYY.MM.DD')))
     WHEN ASS.ACTION_CODE IN ('INVOLUNTARY_TERMINATION') THEN 'INVOLUNTARY: ' || (SELECT ACTION_REASON FROM PER_ACTION_REASONS_VL WHERE  ACTION_REASON_CODE=ASS.REASON_CODE AND ASS.EFFECTIVE_START_DATE BETWEEN START_DATE(+) AND NVL(END_DATE,TO_DATE('4712.01.01', 'YYYY.MM.DD')))
     WHEN ASS.ACTION_CODE IN ('OTHER') THEN 'OTHER: ' || (SELECT ACTION_REASON FROM PER_ACTION_REASONS_VL WHERE  ACTION_REASON_CODE=ASS.REASON_CODE AND ASS.EFFECTIVE_START_DATE BETWEEN START_DATE(+) AND NVL(END_DATE,TO_DATE('4712.01.01', 'YYYY.MM.DD')))
END AS TERM_DESCR30,
ASS.ACTION_CODE,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'YYYY-MM-DD') AS LAST_DAY_AT_WRK,
(SELECT DISTINCT HROF.ORG_INFORMATION1

                        FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU

                        WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID

                        AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID

                        AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)

                        AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)

                        AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)

                        AND ROWNUM=1)  AS HR_Division,
ASS.ASSIGNMENT_TYPE as ADMIN_COMMENTS,
NAME.DISPLAY_NAME||' '||TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') as EMAIL_SUBJECT80,
(select EMAIL_ADDRESS from per_email_addresses where person_id=HDR.INITIATOR_USER_ID and EMAIL_TYPE='W1' and trunc(sysdate) between nvl(date_from,sysdate) and nvl(date_to,sysdate)) AS EMAIL_ADDR,
CASE WHEN PPS.REVOKE_USER_ACCESS = 'I' THEN 'Y'
ELSE 'N' END AS REVOKE_USER_ACCESS_IMMEDIATELY,
DAT.CREATION_DATE

FROM
PER_ALL_PEOPLE_F PER,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PERIODS_OF_SERVICE PPS,
PER_PERSON_NAMES_F NAME,
PER_ASSIGNMENT_SUPERVISORS_F SUP,
HR_LOCATIONS_ALL LOC,
/* TABLES FOR TRANSACTION DETAILS */
HRC_TXN_HEADER_ARCHIVE HDR,
HRC_TXN_DATA_ARCHIVE DAT


WHERE
1=1
AND NAME.NAME_TYPE='GLOBAL'
AND per.person_id=ASS.PERSON_ID(+)
AND PER.PERSON_NUMBER <> '996463'
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND ASS.ASSIGNMENT_ID=SUP.ASSIGNMENT_ID(+)
AND ASS.PERSON_ID=SUP.PERSON_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
/*Modified as per Incidnet # INC0105564 - Begin*/
--AND ASS.ASSIGNMENT_TYPE ='E'
AND ASS.ASSIGNMENT_TYPE IN ('E','C')
/*Modified as per Incidnet # INC0105564 - End*/
AND ASS.ASSIGNMENT_STATUS_TYPE = 'INACTIVE'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
                                FROM PER_ALL_ASSIGNMENTS_M
                                WHERE PERSON_ID = ASS.PERSON_ID
/*Modified as per Incidnet # INC0105564 - Begin*/
                               -- AND ASSIGNMENT_TYPE = 'E'
 AND ASSIGNMENT_TYPE IN ('E','C')
/*Modified as per Incidnet # INC0105564 - End*/
                                AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
                                AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND HDR.SUBJECT_ID=ASS.PERSON_ID
AND HDR.TRANSACTION_ID=DAT.TRANSACTION_ID
AND HDR.ARCHIVE_STEP_NUMBER=DAT.ARCHIVE_STEP_NUMBER
AND (HDR.MODULE_IDENTIFIER='Terminations' OR HDR.SECTION_DISPLAY_NAME='Request For terminating worker')
AND DAT.STATUS='APPROVED'
and SUP.MANAGER_TYPE(+)='LINE_MANAGER'
AND trunc(DAT.CREATION_DATE) BETWEEN trunc(SYSDATE-5) AND trunc(SYSDATE)
AND ASS.EFFECTIVE_START_DATE BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
-- AND ASS.EFFECTIVE_START_DATE BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND PPS.ACTUAL_TERMINATION_DATE BETWEEN SUP.EFFECTIVE_START_DATE AND SUP.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)

----

Termination Backup


SELECT
PER.PERSON_NUMBER AS EMPLID,
TO_CHAR(PPS.NOTIFIED_TERMINATION_DATE,'YYYY-MM-DD') AS ACTION_DT_SS,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'YYYY-MM-DD') AS TERMINATION_DT,
NAME.FIRST_NAME || ' ' || NAME.LAST_NAME AS EMPL_NAME,
(select distinct EMAIL_ADDRESS from per_email_addresses where person_id=sup.manager_id and EMAIL_TYPE='W1' and trunc(sysdate) between nvl(date_from,sysdate-1) and nvl(date_to,sysdate)) AS MANAGER_EMAIL_ADDRESS,
LOC.DESCRIPTION AS LOCATION_DESCR,
LOC.INTERNAL_LOCATION_CODE AS LOCATION,
ASS.ASS_ATTRIBUTE4 AS BUSINESS_TITLE,
CASE WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','RESIGNATION') then 'VOLUNTARY: '|| ASS.REASON_CODE
                WHEN ASS.ACTION_CODE IN ('INVOLUNTARY_TERMINATION') THEN 'INVOLUNTARY: ' || ASS.REASON_CODE
END AS TERM_DESCR30,
ASS.ACTION_CODE,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'YYYY-MM-DD') AS LAST_DAY_AT_WRK,
(SELECT DISTINCT HROF.ORG_INFORMATION1

                        FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU

                        WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID

                        AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID

                        AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)

                        AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)

                        AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)

                        AND ROWNUM=1)  AS HR_Division,
'' as ADMIN_COMMENTS,
NAME.DISPLAY_NAME||' '||TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') as EMAIL_SUBJECT80,
(select EMAIL_ADDRESS from per_email_addresses where person_id=HDR.INITIATOR_USER_ID and EMAIL_TYPE='W1' and trunc(sysdate) between nvl(date_from,sysdate) and nvl(date_to,sysdate)) AS EMAIL_ADDR,
CASE WHEN PPS.REVOKE_USER_ACCESS = 'I' THEN 'Y'
ELSE 'N' END AS REVOKE_USER_ACCESS_IMMEDIATELY,
DAT.CREATION_DATE

FROM
PER_ALL_PEOPLE_F PER,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PERIODS_OF_SERVICE PPS,
PER_PERSON_NAMES_F NAME,
PER_ASSIGNMENT_SUPERVISORS_F SUP,
HR_LOCATIONS_ALL LOC,
/* TABLES FOR TRANSACTION DETAILS */
HRC_TXN_HEADER_ARCHIVE HDR,
HRC_TXN_DATA_ARCHIVE DAT


WHERE
1=1
AND NAME.NAME_TYPE='GLOBAL'
AND per.person_id=ASS.PERSON_ID(+)
AND PER.PERSON_NUMBER <> '996463'
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND ASS.ASSIGNMENT_ID=SUP.ASSIGNMENT_ID(+)
AND ASS.PERSON_ID=SUP.PERSON_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
AND ASS.ASSIGNMENT_TYPE ='E'
AND ASS.ASSIGNMENT_STATUS_TYPE = 'INACTIVE'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
                                FROM PER_ALL_ASSIGNMENTS_M
                                WHERE PERSON_ID = ASS.PERSON_ID
                                AND ASSIGNMENT_TYPE = 'E'
                                AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
                                AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND HDR.SUBJECT_ID=ASS.PERSON_ID
AND HDR.TRANSACTION_ID=DAT.TRANSACTION_ID
AND HDR.ARCHIVE_STEP_NUMBER=DAT.ARCHIVE_STEP_NUMBER
AND (HDR.MODULE_IDENTIFIER='Terminations' OR HDR.SECTION_DISPLAY_NAME='Request For terminating worker')
AND DAT.STATUS='APPROVED'
and SUP.MANAGER_TYPE(+)='LINE_MANAGER'
AND trunc(DAT.CREATION_DATE) BETWEEN trunc(SYSDATE-5) AND trunc(SYSDATE)
AND ASS.EFFECTIVE_START_DATE BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
-- AND ASS.EFFECTIVE_START_DATE BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND PPS.ACTUAL_TERMINATION_DATE BETWEEN SUP.EFFECTIVE_START_DATE AND SUP.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)

***********************************************************************************************************************************************

Aflac Census

SELECT distinct
PER.PERSON_NUMBER AS EMPID,
NAME.LAST_NAME,
NAME.FIRST_NAME,
--REPLACE(REPLACE (SSN.NATIONAL_IDENTIFIER_NUMBER, '-', ''),' ','') AS SSN,
SSN.NATIONAL_IDENTIFIER_NUMBER AS SSN,
(SELECT DISTINCT HROF.ORG_INFORMATION1 FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
                  WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
  AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
  AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
  AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS HR_DIVISION,

 CASE
WHEN ASS.EMPLOYMENT_CATEGORY='FR' THEN 'FULLTIME'
WHEN ASS.EMPLOYMENT_CATEGORY='FT' THEN 'FULLTIME'
WHEN ASS.EMPLOYMENT_CATEGORY='PR' THEN 'PARTTIME'
WHEN ASS.EMPLOYMENT_CATEGORY='PT' THEN 'PARTTIME'
ELSE '' END AS FULLTIME_PARTTIME,

ASS.ASS_ATTRIBUTE4 AS BUSINESS_TITLE,

tO_CHAR(Least (PPS.ORIGINAL_DATE_OF_HIRE,(SELECT MIN(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E') AND ACTION_CODE in ('HIRE','ADD_AN_EMPLOYEE','HIRE_ADD_WORK_RELATION','MANAGER_CHANGE','ADD_A_CONTINGENT_WORKER'))),'MM/DD/YYYY') AS OrgHireDt,
TO_CHAR((SELECT MIN(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E') AND ACTION_CODE in ('HIRE','ADD_AN_EMPLOYEE','HIRE_ADD_WORK_RELATION','MANAGER_CHANGE','ADD_A_CONTINGENT_WORKER')  ),'MM/DD/YYYY') AS HIREDATE,
to_char((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND (reason_CODE IN ('REHIRE','REHIRE_WKR') or (ACTION_CODE in ('REHIRE')))),'MM/DD/YYYY') AS REHIRE_DATE,


CASE WHEN PPL.SEX IS NOT NULL THEN PPL.SEX
WHEN PPL.SEX IS NULL THEN 'U' END AS GENDER,
ASS.WORK_AT_HOME AS REMOTE_INDICATOR,
LOC.INTERNAL_LOCATION_CODE AS PHYSICAL_LOC,
ADDR.TOWN_OR_CITY AS EEHOMECITY,
ADDR.REGION_2 AS EEHOMESTATE,

TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS Benefits_ServiceDt,
case when ASS.ASS_ATTRIBUTE8 is null then 'No FLSA' else ASS.ASS_ATTRIBUTE8 end AS FLSA_STATUS,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','PR') THEN 'REGULAR'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FT','PT') THEN 'TEMPORARY' ELSE '' END AS Regular_Temp,

ASS.HOURLY_SALARIED_CODE AS Pay_Type,
ASS.NORMAL_HOURS AS STDHOURS,
(select distinct EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1') as BUS_EMAIL,
ASS.ASS_ATTRIBUTE3 AS BEN_PRG,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERM_DATE,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS EFF_DATE

FROM
PER_PERSON_SECURED_LIST_V PER,
PER_PERSON_NAMES_F NAME,
PER_ASSIGNMENT_SECURED_LIST_V ASS,
PER_NATIONAL_IDENTIFIERS SSN,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_PERIODS_OF_SERVICE PPS,
HR_LOCATIONS_ALL LOC,
PER_PERSON_ADDR_USAGES_F ADDRE,
PER_ADDRESSES_F ADDR


where

PER.PERSON_ID=ASS.PERSON_ID
--AND PER.PERSON_NUMBER in  ('950588','992139','992146','992149','992151','992166','992173','992174','992179','992183','992346')
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.PERSON_ID = PPL.PERSON_ID(+)
AND PPL.LEGISLATION_CODE(+)=ASS.LEGISLATION_CODE
AND ASS.PERSON_ID =PPS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND ASS.LOCATION_ID = LOC.LOCATION_ID(+)
 AND ADDRE.PERSON_ID(+)=ASS.PERSON_ID           
and ADDR.ADDRESS_ID(+) =ADDRE.ADDRESS_ID         
AND ADDRE.ADDRESS_TYPE(+) ='HOME'             
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND PER.PERSON_ID=SSN.PERSON_ID(+)
and PER.PRIMARY_NID_ID=SSN.NATIONAL_IDENTIFIER_ID(+)
--AND LOC.COUNTRY IN ('US')
AND ASS.LEGISLATION_CODE = 'US'
AND ASS.ASS_ATTRIBUTE3 IN ('BB1','BSS')
--AND ASS.ASSIGNMENT_STATUS_TYPE = 'ACTIVE'
--AND ((ADDR.last_update_date = (SELECT MAX(A.last_update_date) FROM PER_ADDRESSES_F A, PER_PERSON_ADDR_USAGES_F B  WHERE A.ADDRESS_ID(+)=B.ADDRESS_ID AND B.PERSON_ID(+)=ASS.PERSON_ID AND B.ADDRESS_TYPE(+)='HOME' AND :DATE_TO between A.EFFECTIVE_START_DATE(+) and A.EFFECTIVE_END_DATE(+) AND :DATE_TO between B.EFFECTIVE_START_DATE(+) and B.EFFECTIVE_END_DATE(+))) OR (ADDR.last_update_date IS NULL))
AND ((ADDRE.last_update_date = (SELECT MAX(B.last_update_date) FROM  PER_PERSON_ADDR_USAGES_F B  WHERE  B.PERSON_ID(+)=ASS.PERSON_ID AND B.ADDRESS_TYPE(+)='HOME' AND TRUNC(SYSDATE) between B.EFFECTIVE_START_DATE(+) and B.EFFECTIVE_END_DATE(+))) OR (ADDRE.last_update_date IS NULL))
AND ASS.EFFECTIVE_SEQUENCE = (SELECT MAX(EFFECTIVE_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_F
  WHERE PERSON_ID = ASS.PERSON_ID AND ASSIGNMENT_TYPE = 'E'
  AND EFFECTIVE_START_DATE = ASS.EFFECTIVE_START_DATE
  AND ASSIGNMENT_TYPE = ASS.ASSIGNMENT_TYPE )
AND ((ASS.ASSIGNMENT_STATUS_TYPE = 'ACTIVE') or (ASS.ASSIGNMENT_STATUS_TYPE = 'INACTIVE' AND trunc(PPS.ACTUAL_TERMINATION_DATE) BETWEEN trunc(SYSDATE-7) AND trunc(SYSDATE)))
--AND trunc(ASS.EFFECTIVE_START_DATE) BETWEEN trunc(SYSDATE-7) AND trunc(SYSDATE)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDRE.EFFECTIVE_START_DATE(+) AND ADDRE.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
order by PER.PERSON_NUMBER

***********************************************************************************************************************************************


--BB Saba DM

SELECT distinct
' ' AS POSITION_ID,
' ' AS PARENT_POSITION_ID,
PER.PERSON_NUMBER AS EmployeeID,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F NA WHERE MAN.MANAGER_ID=NA.PERSON_ID AND TRUNC(SYSDATE) BETWEEN NA.EFFECTIVE_START_DATE AND NA.EFFECTIVE_END_DATE) AS ManagerID,
(SELECT DISTINCT
ROUND(EEV.SCREEN_ENTRY_VALUE,2)
FROM
PAY_ELEMENT_ENTRIES_F EE,
PAY_ELEMENT_ENTRY_VALUES_F EEV,
PAY_ELEMENT_TYPES_VL ET,
CMP_PLANS_VL PLAN,
CMP_PLAN_PERIODS PLANP,
CMP_COMPONENTS_VL COMP,
CMP_PLAN_ATTRIBUTES CPA,
pay_input_values_f PIV,
CMP_ATTRIBUTE_ELEMENTS CAE
WHERE
PER.PERSON_ID=EE.PERSON_ID(+)
AND EE.ELEMENT_TYPE_ID=ET.ELEMENT_TYPE_ID(+)
AND EE.ELEMENT_ENTRY_ID=EEV.ELEMENT_ENTRY_ID(+)
and (PLAN.COMP_TYPE(+)='ICD') 
AND PLAN.PLAN_ID(+)=COMP.PLAN_ID
AND (PLAN.STATUS_CODE(+)='ACTIVE')
AND COMP.COMPONENT_ID(+) = CPA.COMPONENT_ID
AND COMP.PLAN_ID(+) =CPA.PLAN_ID
AND CPA.PLAN_ATTRIBUTE_ID(+)=CAE.PLAN_ATTRIBUTE_ID
AND CAE.ELEMENT_TYPE_ID(+)=ET.ELEMENT_TYPE_ID
AND EEV.INPUT_VALUE_ID=PIV.INPUT_VALUE_ID(+)
AND PLAN.PLAN_ID=PLANP.PLAN_ID(+)
AND PLAN.PLAN_NAME= 'Bonus Plan'
and (PIV.BASE_NAME = ('Target Bonus Percentage'))
AND (
UPPER(ET.ELEMENT_NAME(+)) LIKE 'ANNUAL BONUS - A%' OR
UPPER(ET.ELEMENT_NAME(+)) LIKE 'QUARTERLY CUSTOMIZED BONUS -%' OR
UPPER(ET.ELEMENT_NAME(+)) LIKE 'QUARTERLY OPERATIONAL BONUS -%' OR
UPPER(ET.ELEMENT_NAME(+)) LIKE 'SEMI ANNUAL CUSTOM -%'
)
AND EE.EFFECTIVE_START_DATE = (select max(EFFECTIVE_START_DATE)from PAY_ELEMENT_ENTRIES_F where PER.PERSON_ID=PERSON_ID(+) and ELEMENT_TYPE_ID = EE.ELEMENT_TYPE_ID and TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND EE.LAST_UPDATE_DATE = (select max(LAST_UPDATE_DATE)from PAY_ELEMENT_ENTRIES_F where PER.PERSON_ID=PERSON_ID(+) and ELEMENT_TYPE_ID = EE.ELEMENT_TYPE_ID and TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND TRUNC(SYSDATE) BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS Bonus,
' ' AS Budget,
(SELECT DISTINCT HAOT.NAME FROM HR_ORGANIZATION_UNITS_F_TL HAOT,HR_ORGANIZATION_INFORMATION_F HRIF
WHERE HRIF.ORG_INFORMATION_CONTEXT = 'FUN_BUSINESS_UNIT'
AND HAOT.ORGANIZATION_ID=HRIF.ORGANIZATION_ID
AND HAOT.ORGANIZATION_ID= ASS.BUSINESS_UNIT_ID AND HRIF.ORGANIZATION_ID= ASS.BUSINESS_UNIT_ID )AS BusinessUnit,
CASE WHEN LOC.TOWN_OR_CITY IS NOT NULL  THEN LOC.TOWN_OR_CITY
ELSE LOC.LOCATION_CODE END AS City,
' ' AS CommissionPlan,
' ' AS CostCenter,
' ' AS CostCenterID,
LOC.COUNTRY AS Country,
TO_CHAR(PERS.DATE_OF_BIRTH,'MM/DD/YYYY') AS DateOfBirth,
/*(SELECT DISTINCT HROF.ORG_INFORMATION2 FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS Department,*/
DEP.NAME AS Department,
CASE
WHEN EXISTS (SELECT '1' FROM  PER_DISABILITIES_F DIS WHERE DIS.PERSON_ID=PER.PERSON_ID) THEN 'Y'
ELSE 'N'
END AS Disability,
CASE
WHEN ASS.EMPLOYMENT_CATEGORY='FR' THEN 'FT'
WHEN ASS.EMPLOYMENT_CATEGORY='FT' THEN 'FT'
WHEN ASS.EMPLOYMENT_CATEGORY='PR' THEN 'PT'
WHEN ASS.EMPLOYMENT_CATEGORY='PT' THEN 'PT'
ELSE ''
END AS EmployeeType,
CASE
WHEN ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE' THEN 'A'
WHEN ASS.ASSIGNMENT_STATUS_TYPE='INACTIVE' THEN 'I'
WHEN ASS.ASSIGNMENT_STATUS_TYPE='SUSPENDED' THEN 'S'
END AS EmpStat,
' ' AS EMPSTATREASON,
CASE
WHEN ETH.ETHNICITY ='BB_1' THEN 'White'
WHEN ETH.ETHNICITY ='BB_3' THEN '   or African American'
WHEN ETH.ETHNICITY ='BB_4' THEN 'Asian'
WHEN ETH.ETHNICITY ='BB_5' THEN 'Hispanic or Latino'
WHEN ETH.ETHNICITY ='BB_6' THEN 'Native Hawaiian or other Pacific Islander'
WHEN ETH.ETHNICITY ='BB_7' THEN 'American Indian or Alaska Native'
WHEN ETH.ETHNICITY ='BB_NSPEC' THEN 'Not Specified'
END AS  Ethnicity,
NAME.FIRST_NAME AS FirstName,
' ' AS FlightRisk,
ASS.ASS_ATTRIBUTE8 AS FLSAStatus,
NAME.DISPLAY_NAME AS FullName,
PPL.SEX AS Gender,
TO_CHAR((SELECT MIN(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E') AND ACTION_CODE in ('HIRE','ADD_AN_EMPLOYEE','HIRE_ADD_WORK_RELATION','MANAGER_CHANGE','ADD_A_CONTINGENT_WORKER')  ),'MM/DD/YYYY') AS HireDate,
CASE WHEN ASS.ASS_ATTRIBUTE4 ='Executive Assistant' THEN 'Y' ELSE 'N' END AS ISASSISTANT,
' ' AS IsPrimary,
' ' AS IsSecondary,
' ' AS IsVacant,
ASS.ASS_ATTRIBUTE4 AS JobTitle,
' ' AS KeyPosition,
' ' AS KeyEmployee,
NAME.LAST_NAME AS LastName,
' ' AS LastPerfReviewDate,
NAME.MIDDLE_NAMES AS MiddleName,
' ' AS MilitaryStatus,
/*(SELECT distinct rating_description FROM HRT_RATING_LEVELS_tl where rating_level_id IN (SELECT RAT.PERFORMANCE_RATING_ID FROM hra_eval_ratings RAT
WHERE RAT.role_type_code='MANAGER'
AND RAT.reference_id in (SELECT eval_section_id FROM hra_eval_sections SEC 
WHERE SEC.EVALUATION_ID IN (select EVALUATION_ID from hra_evaluations EVAL where EVAL.WORKER_ID = PER.PERSON_ID 
AND TO_CHAR(END_DATE,'YYYY-MM-DD') = '2015-12-31')
AND SEC.SECTION_TYPE_CODE='OS'))) AS PERFORMANCE,*/
/*(SELECT distinct RAT.CALCULATED_RATING FROM hra_eval_ratings RAT
WHERE RAT.role_type_code='MANAGER'
AND RAT.reference_id in (SELECT eval_section_id FROM hra_eval_sections SEC 
WHERE SEC.EVALUATION_ID IN (select EVALUATION_ID from hra_evaluations EVAL where EVAL.WORKER_ID =PER.PERSON_ID 
AND TO_CHAR(END_DATE,'YYYY-MM-DD') = '2015-12-31')
AND SEC.SECTION_TYPE_CODE='OS')) AS Performance,*/
-- To extract rating level code in Numeric
(SELECT DISTINCT RTLV.RATING_LEVEL_CODE FROM HRT_RATING_LEVELS_VL RTLV where RTLV.rating_level_id IN (SELECT RAT.PERFORMANCE_RATING_ID FROM hra_eval_ratings RAT
WHERE RAT.role_type_code='MANAGER'
AND RAT.reference_id in (SELECT eval_section_id FROM hra_eval_sections SEC 
WHERE SEC.EVALUATION_ID IN (select EVALUATION_ID from hra_evaluations EVAL where EVAL.WORKER_ID = PER.PERSON_ID
AND TO_CHAR(END_DATE,'YYYY-MM-DD') = '2015-12-31')
AND SEC.SECTION_TYPE_CODE='OS')))AS Performance,
' ' AS Photo,
' ' AS PositionCostCenterID,
' ' AS Potential,
' ' AS Promotability,
' ' AS ReadyToRetire,
case when ass.hourly_salaried_code ='H' then ROUND( (SAL.SALARY_AMOUNT * ASS.NORMAL_HOURS * 52) ,2)
else ROUND((SELECT (SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)FROM CMP_SALARY SAL,CMP_SALARY_BASES SLA WHERE ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID
AND TRUNC(SYSDATE) BETWEEN SAL.DATE_FROM AND SAL.DATE_TO),2) end AS Salary,
' ' AS SalaryGrade,
ASS.NORMAL_HOURS AS ScheduledHours,
LOC.REGION_2 AS State,
' ' AS TargetRating,
' ' AS VacationEligibility,
CASE WHEN LOC.ADDRESS_LINE_1 IS NOT NULL THEN LOC.ADDRESS_LINE_1 ELSE LOC.LOCATION_CODE END AS WorkAddress,
(select distinct EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1')  AS WorkEmail,
CASE WHEN ASS.SYSTEM_PERSON_TYPE ='EMP' THEN 'Employee'
WHEN ASS.SYSTEM_PERSON_TYPE ='CWK' THEN 'Contingent Worker'
WHEN ASS.SYSTEM_PERSON_TYPE ='PWK' THEN 'Pending Worker' END AS WorkerCategory,
LOC.LOCATION_NAME AS WorkLocation,
(SELECT PHN.PHONE_NUMBER FROM PER_PHONES PHN WHERE PHN.PHONE_TYPE='W1' AND PHN.PERSON_ID=PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PHN.DATE_FROM  AND PHN.DATE_TO ) AS WorkPhone,
' ' AS WorkExt,
LOC.POSTAL_CODE AS ZipCode
FROM
PER_PERSON_SECURED_LIST_V PER,
PER_PERSONS PERS,
PER_PERSON_NAMES_F NAME,
PER_ASSIGNMENT_SECURED_LIST_V ASS,
PER_DEPARTMENTS DEP,
PER_ETHNICITIES ETH,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_ASSIGNMENT_SUPERVISORS_F MAN,
PER_PERIODS_OF_SERVICE PPS,
PER_JOBS JOB,
HR_ORGANIZATION_UNITS BU,
CMP_SALARY_V CUR,
HR_LOCATIONS_ALL LOC,
PER_PERSON_ADDR_USAGES_F ADDRE,
PER_ADDRESSES_F ADDR,
CMP_SALARY SAL,
PER_DEPT_TREE_NODE tree,
PER_ASG_RESPONSIBILITIES respons

where
PER.PERSON_ID=ASS.PERSON_ID(+)
AND MAN.MANAGER_TYPE(+) ='LINE_MANAGER'
AND PER.PERSON_ID=PERS.PERSON_ID(+)
AND PER.PERSON_ID=ETH.PERSON_ID(+)
-- AND PER.PERSON_NUMBER in ('999113','992183','997356','998919','998770','998788','999001')
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ORGANIZATION_ID = DEP.ORGANIZATION_ID(+)
AND ASS.PERSON_ID = PPL.PERSON_ID(+)
AND PPL.LEGISLATION_CODE(+)=ASS.LEGISLATION_CODE
AND MAN.ASSIGNMENT_ID(+)= ASS.ASSIGNMENT_ID
AND MAN.PERSON_ID(+)=ASS.PERSON_ID
AND ASS.PERSON_ID =PPS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND ASS.JOB_ID=JOB.JOB_ID(+)
AND ASS.BUSINESS_UNIT_ID = BU.ORGANIZATION_ID(+)
AND ASS.ASSIGNMENT_ID=CUR.ASSIGNMENT_ID(+)
AND ASS.LOCATION_ID = LOC.LOCATION_ID(+)
 AND ADDRE.PERSON_ID(+)=ASS.PERSON_ID           
and ADDR.ADDRESS_ID(+) =ADDRE.ADDRESS_ID         
--AND ADDR.ADDRESS_ID=per.MAILING_ADDRESS_ID(+)   
AND ADDRE.ADDRESS_TYPE(+) ='HOME'               
AND ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
and DEP.organization_id=tree.pk1_start_value(+)
and tree.TREE_CODE = respons.DEPARTMENT_TREE_CODE(+)
and respons.RESPONSIBILITY_TYPE(+) ='DEPT_MGR'
AND respons.DEPARTMENT_TREE_CODE IS NOT NULL 
and (tree.tree_code(+) like ('DM_%') or tree.tree_code(+) like ('HR_%'))
AND ASS.ASSIGNMENT_TYPE IN ('E','C')
AND ASS.ASSIGNMENT_STATUS_TYPE = 'ACTIVE'
AND ((ADDRE.last_update_date = (SELECT MAX(B.last_update_date) FROM  PER_PERSON_ADDR_USAGES_F B  WHERE  B.PERSON_ID(+)=ASS.PERSON_ID AND B.ADDRESS_TYPE(+)='HOME' AND TRUNC(SYSDATE) between B.EFFECTIVE_START_DATE(+) and B.EFFECTIVE_END_DATE(+))) OR (ADDRE.last_update_date IS NULL))
AND ASS.EFFECTIVE_SEQUENCE = (SELECT MAX(EFFECTIVE_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID = ASS.PERSON_ID AND
ASSIGNMENT_NUMBER = ASS.ASSIGNMENT_NUMBER AND
EFFECTIVE_START_DATE = ASS.EFFECTIVE_START_DATE AND
ASSIGNMENT_TYPE = ASS.ASSIGNMENT_TYPE )
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN MAN.EFFECTIVE_START_DATE(+) AND MAN.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDRE.EFFECTIVE_START_DATE(+) AND ADDRE.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN DEP.EFFECTIVE_START_DATE(+) AND DEP.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
AND TRUNC(SYSDATE) BETWEEN cur.DATE_FROM(+) AND cur.DATE_TO(+)
AND TRUNC(SYSDATE) BETWEEN PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN respons.START_DATE(+) AND NVL(respons.END_DATE,TO_DATE('4712-12-31','YYYY-MM-DD'))
order by PER.PERSON_NUMBER

***********************************************************************************************************************************************

--Genius Feed

SELECT distinct
PER.PERSON_NUMBER AS EMPID,
NAME.LAST_NAME,
NAME.FIRST_NAME,
(SELECT DISTINCT HROF.ORG_INFORMATION2 FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND trunc(sysdate) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS DEPTID,
DEP.NAME AS DEPTNAME,
ASS.ASS_ATTRIBUTE4 AS JOB_TITLE,
ASS.ASSIGNMENT_TYPE,
(select distinct EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1') as EMAIL,
(select DISTINCT ATTRIBUTE6  from PER_PERSONS where PERSON_ID = PER.PERSON_ID AND CATEGORY_CODE IN ('PER_EIT') ) AS USERID,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F NA WHERE MAN.MANAGER_ID=NA.PERSON_ID AND trunc(sysdate) BETWEEN NA.EFFECTIVE_START_DATE AND NA.EFFECTIVE_END_DATE) AS SUPERVISOR_ID,
(SELECT DISPLAY_NAME FROM PER_PERSON_NAMES_F NA WHERE MAN.MANAGER_ID=NA.PERSON_ID AND NAME_TYPE = 'GLOBAL' AND trunc(sysdate) BETWEEN NA.EFFECTIVE_START_DATE AND NA.EFFECTIVE_END_DATE) AS SUPERVISOR_NAME,

(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F NA WHERE respons.PERSON_ID=NA.PERSON_ID AND trunc(sysdate) BETWEEN NA.EFFECTIVE_START_DATE AND NA.EFFECTIVE_END_DATE) AS B_DEPT_MGR_ID,
(SELECT DISPLAY_NAME FROM PER_PERSON_NAMES_F NA WHERE respons.PERSON_ID=NA.PERSON_ID AND NAME_TYPE = 'GLOBAL' AND trunc(sysdate) BETWEEN NA.EFFECTIVE_START_DATE AND NA.EFFECTIVE_END_DATE) AS B_DEPT_MGR_NAME,
' ' AS AFFILIATION_MGR_IDs,
' ' AS B_AFFILI_MGR_NAME

FROM
PER_PERSON_SECURED_LIST_V PER,
PER_PERSON_NAMES_F NAME,
PER_ASSIGNMENT_SECURED_LIST_V ASS,
PER_DEPARTMENTS DEP,
PER_ASSIGNMENT_SUPERVISORS_F MAN,
PER_DEPT_TREE_NODE tree,
PER_ASG_RESPONSIBILITIES respons

where

PER.PERSON_ID=ASS.PERSON_ID
AND MAN.MANAGER_TYPE(+) ='LINE_MANAGER'
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ORGANIZATION_ID = DEP.ORGANIZATION_ID(+)
AND MAN.ASSIGNMENT_ID(+)= ASS.ASSIGNMENT_ID
AND MAN.PERSON_ID(+)=ASS.PERSON_ID
and DEP.organization_id=tree.pk1_start_value(+)
----AND respons.ASSIGNMENT_ID= ASS.ASSIGNMENT_ID
and tree.TREE_CODE = respons.DEPARTMENT_TREE_CODE(+)
and respons.RESPONSIBILITY_TYPE(+) ='DEPT_MGR'
AND respons.DEPARTMENT_TREE_CODE IS NOT NULL   
--and (tree.PARENT_PK1_VALUE=respons.TOP_DEPARTMENT_ID or tree.PK1_START_VALUE = respons.TOP_DEPARTMENT_ID )  -- /** Ismail - added this line to avoide duplicates rows for 992820 Acosta Camilo **/
----and tree.PARENT_PK1_VALUE=respons.TOP_DEPARTMENT_ID(+)
and (tree.tree_code(+) like ('DM_%') or tree.tree_code(+) like ('HR_%'))

AND ASS.ASSIGNMENT_TYPE IN ('E','C')
AND ASS.ASSIGNMENT_STATUS_TYPE = 'ACTIVE'
AND ASS.EFFECTIVE_SEQUENCE = (SELECT MAX(EFFECTIVE_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_F
     WHERE PERSON_ID = ASS.PERSON_ID AND ASSIGNMENT_NUMBER = ASS.ASSIGNMENT_NUMBER
     AND EFFECTIVE_START_DATE = ASS.EFFECTIVE_START_DATE AND ASSIGNMENT_TYPE = ASS.ASSIGNMENT_TYPE )

AND trunc(sysdate) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND trunc(sysdate) BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND trunc(sysdate) BETWEEN MAN.EFFECTIVE_START_DATE(+) AND MAN.EFFECTIVE_END_DATE(+)
AND trunc(sysdate) BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND trunc(sysdate) BETWEEN DEP.EFFECTIVE_START_DATE(+) AND DEP.EFFECTIVE_END_DATE(+)
AND trunc(sysdate) BETWEEN respons.START_DATE(+) AND NVL(respons.END_DATE,TO_DATE('4712-12-31','YYYY-MM-DD'))
order by PER.PERSON_NUMBER

----------------------

Comments

Popular posts from this blog

face1

--NewHireRehire_AAP_DM SELECT DISTINCT PER.PERSON_NUMBER, ASSIGNMENT_SEQUENCE, NAME.DISPLAY_NAME AS NAME, case when ASS.REASON_CODE in ('REHIRE') then ' ' else TO_CHAR((SELECT MIN(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E')                                           AND ACTION_CODE in ('HIRE','ADD_AN_EMPLOYEE','HIRE_ADD_WORK_RELATION') AND EFFECTIVE_START_DATE = ASS.EFFECTIVE_START_DATE  ),'MM/DD/YYYY') end as HIRE_DATE,  case when ASS.REASON_CODE in ('REHIRE') then           to_char((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID               AND (reason_CODE IN ('REHIRE','REHIRE_WKR') or (ACTION_CODE in ('REHIRE')))  AND EFFECTIVE_START_DATE = ASS.EFFECTIVE_START_DATE),'MM/DD...

face3

--SALES AND PROMOTION SELECT DISTINCT PER.PERSON_NUMBER AS ID, TO_CHAR(NEW_ASS.CREATION_DATE,'MM/DD/YYYY') AS ACTION_DATE, TO_CHAR(NEW_ASS.Effective_start_date,'MM/DD/YYYY') AS EFFECTIVE_DATE, NEW_ASS.ACTION_CODE AS ACTION, NEW_ASS.REASON_CODE AS ACTION_REASON, OLD_LEG.NAME AS LEGAL_ENTITY, OLD_ASS.WORK_AT_HOME AS OLD_REMOTE_INDICATOR, (SELECT LOC.LOCATION_NAME FROM HR_LOCATIONS_ALL_F_VL  LOC WHERE  LOC.LOCATION_ID =OLD_ASS.LOCATION_ID AND TRUNC(sysdate) between LOC.EFFECTIVE_START_DATE and LOC.EFFECTIVE_END_DATE ) AS OLD_PHYSICAL_LOC, --OLD_LOC.LOCATION_NAME AS OLD_PHYSICAL_LOC, (SELECT DISTINCT HROF.ORG_INFORMATION1 FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=OLD_ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND H...

Integration1

Equifax: SELECT '000HEADER' AS RECORD_TYPE, '' AS FILLER1, '02.00' AS VERSION, '17059' AS SOURCE_ID, 'EMPLOYER' AS SOURCE_TYPE, '' AS FILLER2, '' AS SOURCE_SERVICE, '' AS EMP_ID FROM DUAL ------------------- SELECT '202EMPLPIM' AS RECORD_TYPE, '17059' AS COMP_CD, LPAD(REPLACE(PNI.NATIONAL_IDENTIFIER_NUMBER,'-',''),9,'0')  AS NATIONAL_IDENTIFIER_NUMBER, PER.PERSON_NUMBER, PP.ATTRIBUTE6 USERNAME, '' AS ACC_NUM, '' AS PAYROLL, NAME.FIRST_NAME, NAME.MIDDLE_NAMES, NAME.LAST_NAME, '' AS SUFFIX, '' AS TITLE, LPAD(SUBSTR(PNI.NATIONAL_IDENTIFIER_NUMBER,-4),4,'0') AS EMP_ID, 'Y' AS DIRECT_ACCESS, --LOC.INTERNAL_LOCATION_CODE AS DIVISION, '' AS DIVISION, --JOB.NAME,         ASS.ASS_ATTRIBUTE4 AS NAME, CASE WHEN ASS.ACTION_CODE IN ('REHIRE','REHIRE_WKR',...