Skip to main content

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/YYYY') else ' ' end as REHIRE_DATE,  

ASS.REASON_CODE,
DEPT.NAME AS DEPARTMENT,
(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 IN ('FR','PR') THEN 'REGULAR'
             WHEN ASS.EMPLOYMENT_CATEGORY IN ('FT','PT') THEN 'TEMPORARY' ELSE '' END AS REGULAR_TEMPORARY,
           
        CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'FULLTIME'
             WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'PARTTIME' ELSE '' END AS FULLTIME_PARTTIME,

ASS.NORMAL_HOURS AS STANDARD_HOURS,
ASS.ASS_ATTRIBUTE4 AS BUSINESS_TITLE,
JOB.JOB_CODE,
JOB.NAME AS JOB_DESCRIPTION,
LOC.INTERNAL_LOCATION_CODE AS LOCATION_CODE,
LOC.REGION_2 AS STATE,
        ASS.ASS_ATTRIBUTE8 AS FLSA,

(SELECT NA.DISPLAY_NAME FROM PER_PERSON_NAMES_F NA ,PER_ASSIGNMENT_SUPERVISORS_F SUP
WHERE NA.PERSON_ID = SUP.MANAGER_ID AND NA.NAME_TYPE = 'GLOBAL' AND SUP.PRIMARY_FLAG(+) = 'Y'
AND SUP.ASSIGNMENT_ID = ASS.ASSIGNMENT_ID AND SUP.PERSON_ID =ASS.PERSON_ID AND SUP.MANAGER_TYPE(+) ='LINE_MANAGER'
AND ASS.EFFECTIVE_START_DATE BETWEEN NA.EFFECTIVE_START_DATE(+) AND NA.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)) AS MANAGER_NAME,

ASS.HOURLY_SALARIED_CODE AS PAY_TYPE,
CM.SALARY_AMOUNT AS COMP_RATE,
CM.LOCAL_CURRENCY AS CURRENCY,
ASS.ASS_ATTRIBUTE1 AS TITLE_LEVEL,
ASS.ASS_ATTRIBUTE3 AS BENEFITS_PROGRAM,
PNI.NATIONAL_IDENTIFIER_NUMBER,
TO_CHAR(PP.DATE_OF_BIRTH,'MM/DD/YYYY')AS DATE_OF_BIRTH,
PP.ATTRIBUTE2 AS REQUESTION_ID,

       (select DISTINCT LUKUP.MEANING from HCM_LOOKUPS LUKUP,PER_ETHNICITIES ETHN
               where LUKUP.LOOKUP_TYPE ='PER_ETHNICITY' AND LUKUP.LOOKUP_CODE = ETHN.ETHNICITY AND ETHN.PRIMARY_FLAG = 'Y'
   AND ETHN.PERSON_ID = ASS.PERSON_ID AND ROWNUM=1)  AS ETHNICITY,
 
       (select DISTINCT LUKUP.MEANING from HCM_LOOKUPS LUKUP where LUKUP.LOOKUP_TYPE ='SEX' AND LUKUP.LOOKUP_CODE = LEG.SEX AND ROWNUM=1) AS GENDER,

case
WHEN LEG.PER_INFORMATION1 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION2 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION3 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION4 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION5 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION6 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION7 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION8 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION9 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION10 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION11 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION12 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION13 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION15 = 'Y' THEN 'YES'
 ELSE ' ' END AS Veteran_Status,
/*(select DISTINCT LUKUP.MEANING from HCM_LOOKUPS LUKUP where LUKUP.LOOKUP_TYPE ='ORA_HRX_US_VETS_SELFID_STATUS' AND LUKUP.LOOKUP_CODE = LEG.PER_INFORMATION14 ) AS Veteran_Status, */
PP.ATTRIBUTE3  AS DISABILITY_STATUS,
 
(select DISTINCT LUKUP.MEANING from HCM_LOOKUPS LUKUP,PER_JOB_LEG_F JOB_LEG
  where LUKUP.LOOKUP_TYPE ='HRX_US_EEO1_JOB_CATEGORY' AND LUKUP.LOOKUP_CODE = JOB_LEG.INFORMATION2 AND JOB_LEG.LEGISLATION_CODE = LEG.LEGISLATION_CODE
  AND JOB_LEG.JOB_ID = ASS.JOB_ID AND trunc(sysdate) BETWEEN JOB_LEG.EFFECTIVE_START_DATE(+) AND JOB_LEG.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS EEO_CLASSIFICATION
 
 

FROM PER_ASSIGNMENT_SECURED_LIST_V ASS,
HR_LOCATIONS_ALL LOC,
PER_PERSON_NAMES_F NAME,
PER_PERSON_SECURED_LIST_V PER,
PER_NATIONAL_IDENTIFIERS PNI,
PER_PERSONS PP,
PER_PERIODS_OF_SERVICE POS,
PER_DEPARTMENTS DEPT,
PER_JOBS JOB,
CMP_SALARY_V CM,
PER_PEOPLE_LEGISLATIVE_F LEG


WHERE 1=1 --ASS.ASSIGNMENT_TYPE IN ('E','C','P') AND PER.PERSON_NUMBER IN ('500014','500023','500022')
        AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE = 'E'
AND ASS.PERSON_ID=PER.PERSON_ID
AND PER.PERSON_ID=NAME.PERSON_ID 
AND ASS.PERSON_ID=LEG.PERSON_ID(+)
AND PNI.NATIONAL_IDENTIFIER_ID(+)=PER.PRIMARY_NID_ID
AND PER.PERSON_ID=PNI.PERSON_ID
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND DEPT.ORGANIZATION_ID(+)=ASS.ORGANIZATION_ID
--AND POS.PERSON_ID=ASS.PERSON_ID
--AND POS.PERIOD_OF_SERVICE_ID=ASS.PERIOD_OF_SERVICE_ID
AND CM.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND ASS.ACTION_CODE IN ('HIRE','REHIRE','HIRE_ADD_WORK_RELATION','ADD_AN_EMPLOYEE','ADD_PERSON_OF_INTEREST')
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ASSIGNMENT_SECURED_LIST_V WHERE PERSON_ID = ASS.PERSON_ID
                              AND EFFECTIVE_START_DATE = ASS.EFFECTIVE_START_DATE AND ASSIGNMENT_TYPE = ASS.ASSIGNMENT_TYPE )

AND TRUNC(ASS.EFFECTIVE_START_DATE) BETWEEN :DATE_FROM AND :DATE_TO
AND ASS.EFFECTIVE_START_DATE BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN NAME.EFFECTIVE_START_DATE AND NAME.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN DEPT.EFFECTIVE_START_DATE(+) AND DEPT.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN CM.DATE_FROM(+) AND CM.DATE_TO(+)
and TRUNC(SYSDATE) BETWEEN LEG.EFFECTIVE_START_DATE(+) AND LEG.EFFECTIVE_END_DATE(+)
ORDER BY PER.PERSON_NUMBER

-----------------
--CCALLACTIONCHANGE_DM

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 distinct 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 HROF.EFFECTIVE_END_DATE(+) AND TRUNC(sysdate) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS OLD_HR_DIVISION,
(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=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 HROF.EFFECTIVE_END_DATE(+) AND TRUNC(sysdate) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS OLD_DEPT,
CASE WHEN SUBSTR(OLD_DEP.NAME,1,INSTR(OLD_DEP.NAME,'__',1)-1) IS NOT NULL THEN SUBSTR(OLD_DEP.NAME,1,INSTR(OLD_DEP.NAME,'__',1)-1) ELSE OLD_DEP.NAME END AS OLD_DEPARTMENT,
OLD_JOB.JOB_CODE AS OLD_JOB_CODE,
OLD_JOB.NAME AS OLD_JOB_DESCRIPTION,
OLD_ASS.ASS_ATTRIBUTE4 AS OLD_BUSINESS_TITLE,
ROUND(OLD_SAL.SALARY_AMOUNT,2) AS OLD_SALARY,
TO_CHAR(OLD_SAL.DATE_FROM,'MM/DD/YYYY') AS OLD_SAL_DT,
(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
OLD_ASS.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 = ('Amount')) -- commented as part of INC0093797
and (PIV.BASE_NAME = ('Target Bonus Percentage'))  -- added  as part of INC0093797
AND ET.BASE_ELEMENT_NAME LIKE 'Annual Bonus - AMS%'
AND EE.EFFECTIVE_START_DATE = (select distinct max(EFFECTIVE_START_DATE)from PAY_ELEMENT_ENTRIES_F where PER.PERSON_ID=PERSON_ID(+) and ELEMENT_TYPE_ID = EE.ELEMENT_TYPE_ID AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND EE.LAST_UPDATE_DATE = (select distinct max(LAST_UPDATE_DATE)from PAY_ELEMENT_ENTRIES_F where PER.PERSON_ID=PERSON_ID(+) and ELEMENT_TYPE_ID = EE.ELEMENT_TYPE_ID  AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS OLD_BASE_AMT,
(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
OLD_ASS.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 = ('Amount'))  as part of INC0093797
and (PIV.BASE_NAME = ('Target Bonus Percentage')) --added  as part of INC0093797
AND ET.BASE_ELEMENT_NAME LIKE 'Annual Bonus - AM%'
AND ET.BASE_ELEMENT_NAME NOT LIKE 'Annual Bonus - AMS%'
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 OLD_ASS.EFFECTIVE_START_DATE 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 OLD_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS OLD_BASE_AMT_AM,
(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
OLD_ASS.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= 'Sales Incentive'
and (PIV.BASE_NAME = ('Amount'))
AND ET.BASE_ELEMENT_NAME LIKE ('Sales Compensation%')
AND ET.BASE_ELEMENT_NAME NOT LIKE ('Sales Compensation Bonus%')
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS OLD_SALES_COMP,
CASE WHEN OLD_ASS.ASS_ATTRIBUTE8 IS NULL THEN 'No FLSA'
ELSE OLD_ASS.ASS_ATTRIBUTE8 END AS OLD_FLSA_CODE,
OLD_ASS.NORMAL_HOURS AS OLD_STANDARD_HOURS,
OLD_ASS.ASS_ATTRIBUTE3 AS OLD_BENEFIT_PROGRAM,
(SELECT DISTINCT ET.ELEMENT_NAME  --SUBSTR(ET.BASE_ELEMENT_NAME,1, INSTR(ET.BASE_ELEMENT_NAME,'-',1)+4)
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
OLD_ASS.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 = ('Amount'))  as part of INC0093797
and (PIV.BASE_NAME = ('Target Bonus Percentage')) -- added  as part of INC0093797
--AND ET.BASE_ELEMENT_NAME LIKE ('Annual Bonus - AMS%')
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 distinct max(EFFECTIVE_START_DATE)from PAY_ELEMENT_ENTRIES_F where OLD_ASS.PERSON_ID=PERSON_ID(+) and ELEMENT_TYPE_ID = EE.ELEMENT_TYPE_ID and OLD_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))

AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS BONUS_CODE_O,
BU.NAME AS COMPANY,
(SELECT distinct LOC.LOCATION_NAME FROM HR_LOCATIONS_ALL_F_VL  LOC WHERE  LOC.LOCATION_ID =NEW_ASS.LOCATION_ID AND TRUNC(sysdate) between LOC.EFFECTIVE_START_DATE and LOC.EFFECTIVE_END_DATE ) AS WORK_LOCATION,
--NEW_LOC.LOCATION_NAME AS WORK_LOCATION,
NEW_ASS.WORK_AT_HOME AS NEW_REMOTE_INDICATOR,
(SELECT distinct LOC.LOCATION_NAME FROM HR_LOCATIONS_ALL_F_VL  LOC WHERE  LOC.LOCATION_ID =NEW_ASS.LOCATION_ID AND TRUNC(sysdate) between LOC.EFFECTIVE_START_DATE and LOC.EFFECTIVE_END_DATE ) AS NEW_PHYSICAL_LOC,
--NEW_LOC.LOCATION_NAME AS NEW_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=NEW_ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS NEW_HR_DIVISION,
(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=NEW_ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND :DATE_TO BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND :DATE_TO BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS NEW_DEPT,
CASE WHEN SUBSTR(NEW_DEP.NAME,1,INSTR(NEW_DEP.NAME,'__',1)-1) IS NOT NULL THEN SUBSTR(NEW_DEP.NAME,1,INSTR(NEW_DEP.NAME,'__',1)-1) ELSE NEW_DEP.NAME END AS NEW_DEPARTMENT,
NEW_JOB.JOB_CODE AS NEW_JOB_CODE,
NEW_JOB.NAME AS NEW_JOB_DESCRIPTION,
NEW_ASS.ASS_ATTRIBUTE4 AS NEW_BUSINESS_TITLE,
round(NEW_SAL.SALARY_AMOUNT,2) AS NEW_SALARY,
-- (SELECT round(S.SALARY_AMOUNT,2) FROM CMP_SALARY S, PER_ASSIGNMENT_SECURED_LIST_V A WHERE PER.PERSON_ID=A.PERSON_ID AND A.ASSIGNMENT_ID= S.ASSIGNMENT_ID AND A.ASSIGNMENT_TYPE IN ('E','C') AND TRUNC(SYSDATE) BETWEEN S.DATE_FROM AND S.DATE_TO AND TRUNC(SYSDATE) BETWEEN A.EFFECTIVE_START_DATE AND A.EFFECTIVE_END_DATE) AS CURRENT_SALARY,
(SELECT distinct round(S.SALARY_AMOUNT,2) FROM CMP_SALARY S WHERE NEW_ASS.ASSIGNMENT_ID= S.ASSIGNMENT_ID AND TRUNC(SYSDATE) BETWEEN S.DATE_FROM AND S.DATE_TO) AS CURRENT_SALARY,
TO_CHAR(NEW_SAL.DATE_FROM,'MM/DD/YYYY') AS NEW_SAL_DT,
(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
NEW_ASS.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 = ('Amount'))  as part of INC0093797
and (PIV.BASE_NAME = ('Target Bonus Percentage')) -- added  as part of INC0093797
AND ET.BASE_ELEMENT_NAME LIKE 'Annual Bonus - AMS%'
AND EE.EFFECTIVE_START_DATE = (select distinct max(EFFECTIVE_START_DATE)from PAY_ELEMENT_ENTRIES_F where PER.PERSON_ID=PERSON_ID(+) and ELEMENT_TYPE_ID = EE.ELEMENT_TYPE_ID AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND EE.LAST_UPDATE_DATE = (select distinct max(LAST_UPDATE_DATE)from PAY_ELEMENT_ENTRIES_F where PER.PERSON_ID=PERSON_ID(+) and ELEMENT_TYPE_ID = EE.ELEMENT_TYPE_ID  AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS NEW_BASE_AMT,
(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
NEW_ASS.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 = ('Amount'))  as part of INC0093797
and (PIV.BASE_NAME = ('Target Bonus Percentage')) --added  as part of INC0093797
AND ET.BASE_ELEMENT_NAME LIKE 'Annual Bonus - AM%'
AND ET.BASE_ELEMENT_NAME not LIKE 'Annual Bonus - AMS%'
AND EE.EFFECTIVE_START_DATE = (select distinct max(EFFECTIVE_START_DATE)from PAY_ELEMENT_ENTRIES_F where PER.PERSON_ID=PERSON_ID(+) and ELEMENT_TYPE_ID = EE.ELEMENT_TYPE_ID AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND EE.LAST_UPDATE_DATE = (select distinct max(LAST_UPDATE_DATE)from PAY_ELEMENT_ENTRIES_F where PER.PERSON_ID=PERSON_ID(+) and ELEMENT_TYPE_ID = EE.ELEMENT_TYPE_ID  AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS NEW_BASE_AMT_AM,
(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
NEW_ASS.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= 'Sales Incentive'
and (PIV.BASE_NAME = ('Amount'))
AND ET.BASE_ELEMENT_NAME LIKE ('Sales Compensation%')
AND ET.BASE_ELEMENT_NAME NOT LIKE ('Sales Compensation Bonus%')
-- ,'Sales Compensation AR','Sales Compensation AU','Sales Compensation BR','Sales Compensation CA','Sales Compensation CH','Sales Compensation CN','Sales Compensation CZ','Sales Compensation DE','Sales Compensation GB','Sales Compensation JP','Sales Compensation KR','Sales Compensation NL','Sales Compensation NZ','Sales Compensation SE','Sales Compensation SG','Sales Compensation US')
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS NEW_SALES_COMP,
CASE WHEN NEW_ASS.ASS_ATTRIBUTE8 IS NULL THEN 'No FLSA'
ELSE NEW_ASS.ASS_ATTRIBUTE8 END AS NEW_FLSA_CODE,
NEW_ASS.NORMAL_HOURS AS NEW_STANDARD_HOURS,
NEW_ASS.ASS_ATTRIBUTE3 AS NEW_BENEFIT_PROGRAM,
NAME.DISPLAY_NAME AS NAME,
NEW_ASS.ASSIGNMENT_STATUS_TYPE AS ASSIGNMENT_STATUS,
TO_CHAR(NEW_ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS STATUS_DATE,
LUKUP.MEANING AS ETHNIC_GROUP,
LUKUP2.MEANING AS GENDER,
TO_CHAR(PP.DATE_OF_BIRTH,'MM/DD/YYYY') AS BIRTH_DATE,
(SELECT DISTINCT ET.ELEMENT_NAME  --SUBSTR(ET.BASE_ELEMENT_NAME,1, INSTR(ET.BASE_ELEMENT_NAME,'-',1)+4)
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
NEW_ASS.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 = ('Amount'))  as part of INC0093797
and (PIV.BASE_NAME = ('Target Bonus Percentage')) -- added  as part of INC0093797
--AND ET.BASE_ELEMENT_NAME LIKE ('Annual Bonus - AMS%')
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 distinct max(EFFECTIVE_START_DATE)from PAY_ELEMENT_ENTRIES_F where NEW_ASS.PERSON_ID=PERSON_ID(+) and ELEMENT_TYPE_ID = EE.ELEMENT_TYPE_ID and NEW_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))

AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS BONUS_CODE ,
PP.ATTRIBUTE2 AS REQUESTION_ID,

NEW_ASS.ASS_ATTRIBUTE1 AS NEW_TITLE_LEVEL,

 CASE
WHEN NEW_ASS.EMPLOYMENT_CATEGORY='FR' THEN 'FULLTIME REGULAR'
WHEN NEW_ASS.EMPLOYMENT_CATEGORY='FT' THEN 'FULLTIME TEMPORARY'
WHEN NEW_ASS.EMPLOYMENT_CATEGORY='PR' THEN 'PARTTIME REGULAR'
WHEN NEW_ASS.EMPLOYMENT_CATEGORY='PT' THEN 'PARTTIME TEMPORARY'
ELSE ''
END AS NEW_ASS_CATEGORY,

case when
(SELECT  count (distinct NA.DISPLAY_NAME)  FROM PER_PERSON_NAMES_F NA ,PER_ASSIGNMENT_SUPERVISORS_F SUP
WHERE NA.PERSON_ID = SUP.MANAGER_ID AND NA.NAME_TYPE = 'GLOBAL' AND SUP.PRIMARY_FLAG(+) = 'Y'
AND SUP.ASSIGNMENT_ID = NEW_ASS.ASSIGNMENT_ID AND SUP.PERSON_ID =NEW_ASS.PERSON_ID AND SUP.MANAGER_TYPE(+) ='LINE_MANAGER'
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN NA.EFFECTIVE_START_DATE(+) AND NA.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)) = 1
then
(SELECT DISTINCT NA.DISPLAY_NAME  FROM PER_PERSON_NAMES_F NA ,PER_ASSIGNMENT_SUPERVISORS_F SUP
WHERE NA.PERSON_ID = SUP.MANAGER_ID AND NA.NAME_TYPE = 'GLOBAL' AND SUP.PRIMARY_FLAG(+) = 'Y'
AND SUP.ASSIGNMENT_ID = NEW_ASS.ASSIGNMENT_ID AND SUP.PERSON_ID =NEW_ASS.PERSON_ID AND SUP.MANAGER_TYPE(+) ='LINE_MANAGER'
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN NA.EFFECTIVE_START_DATE(+) AND NA.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+))
else ' ' end AS NEW_MANAGER_NAME,



OLD_ASS.ASS_ATTRIBUTE1 AS OLD_TITLE_LEVEL,

 CASE
WHEN OLD_ASS.EMPLOYMENT_CATEGORY='FR' THEN 'FULLTIME REGULAR'
WHEN OLD_ASS.EMPLOYMENT_CATEGORY='FT' THEN 'FULLTIME TEMPORARY'
WHEN OLD_ASS.EMPLOYMENT_CATEGORY='PR' THEN 'PARTTIME REGULAR'
WHEN OLD_ASS.EMPLOYMENT_CATEGORY='PT' THEN 'PARTTIME TEMPORARY'
ELSE ''
END AS OLD_ASS_CATEGORY,

case when
(SELECT count (DISTINCT NA.DISPLAY_NAME) FROM PER_PERSON_NAMES_F NA ,PER_ASSIGNMENT_SUPERVISORS_F SUP
WHERE NA.PERSON_ID = SUP.MANAGER_ID AND NA.NAME_TYPE = 'GLOBAL' AND SUP.PRIMARY_FLAG(+) = 'Y'
AND SUP.ASSIGNMENT_ID = OLD_ASS.ASSIGNMENT_ID AND SUP.PERSON_ID =OLD_ASS.PERSON_ID  AND SUP.MANAGER_TYPE(+) ='LINE_MANAGER'
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN NA.EFFECTIVE_START_DATE(+) AND NA.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)) = 1
then
(SELECT DISTINCT NA.DISPLAY_NAME FROM PER_PERSON_NAMES_F NA ,PER_ASSIGNMENT_SUPERVISORS_F SUP
WHERE NA.PERSON_ID = SUP.MANAGER_ID AND NA.NAME_TYPE = 'GLOBAL' AND SUP.PRIMARY_FLAG(+) = 'Y'
AND SUP.ASSIGNMENT_ID = OLD_ASS.ASSIGNMENT_ID AND SUP.PERSON_ID =OLD_ASS.PERSON_ID  AND SUP.MANAGER_TYPE(+) ='LINE_MANAGER'
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN NA.EFFECTIVE_START_DATE(+) AND NA.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+))
else ' ' end AS OLD_MANAGER_NAME


FROM
PER_ASSIGNMENT_SECURED_LIST_V NEW_ASS,
PER_ASSIGNMENT_SECURED_LIST_V OLD_ASS,
PER_PERSON_SECURED_LIST_V PER,
PER_PERSON_NAMES_F NAME,
HR_LEGAL_ENTITIES OLD_LEG,
PER_DEPARTMENTS OLD_DEP,
PER_DEPARTMENTS NEW_DEP,
-- HRC_LOADER_BATCH_KEY_MAP OLD_HRC,
-- HRC_LOADER_BATCH_KEY_MAP NEW_HRC,
CMP_SALARY OLD_SAL,
CMP_SALARY NEW_SAL,

PER_JOBS NEW_JOB,
PER_JOBS OLD_JOB,
HR_LOCATIONS_ALL OLD_LOC,
HR_LOCATIONS_ALL NEW_LOC,
HR_ORGANIZATION_UNITS BU,
PER_ETHNICITIES ETHN,
HCM_LOOKUPS LUKUP,
HCM_LOOKUPS LUKUP2,
PER_PEOPLE_LEGISLATIVE_F GENDER,
PER_PERSONS PP


WHERE


PER.PERSON_ID=NEW_ASS.PERSON_ID
AND PER.PERSON_ID=PP.PERSON_ID
AND NEW_ASS.PERSON_ID=OLD_ASS.PERSON_ID
AND NEW_ASS.PERSON_ID=NAME.PERSON_ID(+)
AND NEW_ASS.PERSON_ID= ETHN.PERSON_ID(+)
AND ETHN.ETHNICITY=LUKUP.LOOKUP_CODE(+)
AND NEW_ASS.PERSON_ID=GENDER.PERSON_ID(+)
AND LUKUP2.LOOKUP_TYPE='SEX'
AND LUKUP2.LOOKUP_CODE(+)=GENDER.SEX
AND LUKUP.LOOKUP_TYPE(+) ='PER_ETHNICITY'
--AND ((NEW_ASS.ACTION_CODE in ('LOCATION_CHANGE','TRANSFER','PROMOTION','GLB_TRANSFER')) or (NEW_ASS.ACTION_CODE='PAY_CHNG' and NEW_ASS.REASON_CODE='PROMOTION_INCREASE'))
AND NEW_ASS.ACTION_CODE in (SELECT DISTINCT ACTB.ACTION_CODE FROM  PER_ACTIONS_B ACTB, PER_ACTIONS_TL ACTTL WHERE ACTTL.LANGUAGE = 'US'
                                  AND ACTB.ACTION_ID = ACTTL.ACTION_ID and ACTTL.ACTION_NAME in (:ACTION_NAME))
AND NAME.NAME_TYPE='GLOBAL'
AND GENDER.LEGISLATION_CODE(+)=NEW_ASS.LEGISLATION_CODE
AND NEW_ASS.ASSIGNMENT_TYPE IN ('E','C')
AND OLD_ASS.ASSIGNMENT_TYPE IN ('E','C')

AND OLD_LEG.CLASSIFICATION_CODE='HCM_LEMP'
AND NEW_ASS.JOB_ID=NEW_JOB.JOB_ID(+)

AND OLD_ASS.JOB_ID=OLD_JOB.JOB_ID(+)
AND OLD_LEG.ORGANIZATION_ID=NEW_ASS.LEGAL_ENTITY_ID
AND NEW_ASS.BUSINESS_UNIT_ID = BU.ORGANIZATION_ID(+)
AND OLD_ASS.ORGANIZATION_ID = OLD_DEP.ORGANIZATION_ID(+)
AND NEW_ASS.ORGANIZATION_ID = NEW_DEP.ORGANIZATION_ID(+)
-- AND OLD_ASS.ORGANIZATION_ID= OLD_HRC.TARGET_ID
-- AND NEW_ASS.ORGANIZATION_ID= NEW_HRC.TARGET_ID
AND OLD_ASS.ASSIGNMENT_ID= OLD_SAL.ASSIGNMENT_ID
AND NEW_ASS.ASSIGNMENT_ID= NEW_SAL.ASSIGNMENT_ID
AND OLD_ASS.LOCATION_ID = OLD_LOC.LOCATION_ID(+)
AND NEW_ASS.LOCATION_ID = NEW_LOC.LOCATION_ID(+)
-- AND (NEW_ASS.LOCATION_ID <> OLD_ASS.LOCATION_ID OR OLD_ASS.JOB_ID <> NEW_ASS.JOB_ID OR NEW_ASS.ASSIGNMENT_ID <> OLD_ASS.ASSIGNMENT_ID)
-- AND TO_CHAR(NEW_ASS.EFFECTIVE_END_DATE,'YYYY-MM-DD') = '4712-12-31'
AND TO_CHAR(OLD_ASS.EFFECTIVE_END_DATE,'YYYY-MM-DD') = TO_CHAR(NEW_ASS.EFFECTIVE_START_DATE-1,'YYYY-MM-DD')


 AND NEW_ASS.ASSIGNMENT_SEQUENCE=(SELECT distinct MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID=NEW_ASS.PERSON_ID AND ASSIGNMENT_TYPE=NEW_ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
-- and NEW_ASS.effective_start_date = (select max(effective_start_date) from per_all_assignments_m where person_id=new_ass.person_id and assignment_type in ('E','C') and ((NEW_ASS.ACTION_CODE in ('TRANSFER','PROMOTION')) or (NEW_ASS.ACTION_CODE='PAY_CHNG' and NEW_ASS.REASON_CODE='PROMOTION_INCREASE')))
---AND (TO_CHAR(OLD_ASS.EFFECTIVE_END_DATE,'YYYY-MM-DD')) = (SELECT TO_CHAR(MAX(EFFECTIVE_END_DATE),'YYYY-MM-DD') FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID = NEW_ASS.PERSON_ID AND ASSIGNMENT_TYPE in ('E','C') AND NEW_ASS.EFFECTIVE_START_DATE > EFFECTIVE_END_DATE)
AND TRUNC(NEW_ASS.EFFECTIVE_START_DATE) BETWEEN :DATE_FROM AND :DATE_TO
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN GENDER.EFFECTIVE_START_DATE(+) AND GENDER.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN NEW_JOB.EFFECTIVE_START_DATE(+) AND NEW_JOB.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN NEW_DEP.EFFECTIVE_START_DATE(+) AND NEW_DEP.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN NEW_LOC.EFFECTIVE_START_DATE(+) AND NEW_LOC.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN NEW_SAL.DATE_FROM AND NEW_SAL.DATE_TO
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN OLD_SAL.DATE_FROM AND OLD_SAL.DATE_TO
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN OLD_JOB.EFFECTIVE_START_DATE(+) AND OLD_JOB.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN OLD_DEP.EFFECTIVE_START_DATE(+) AND OLD_DEP.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN OLD_LOC.EFFECTIVE_START_DATE(+) AND OLD_LOC.EFFECTIVE_END_DATE(+)
AND trunc(sysdate) BETWEEN OLD_LEG.EFFECTIVE_START_DATE AND OLD_LEG.EFFECTIVE_END_DATE
ORDER BY PER.PERSON_NUMBER

-------

--Location_Chnage(Sanfrasico Office)


SELECT
PER.PERSON_NUMBER,
NAME.FIRST_NAME,
NAME.LAST_NAME,
(SELECT LOC.LOCATION_NAME FROM HR_LOCATIONS_ALL_F_VL  LOC WHERE  LOC.LOCATION_ID =ASSOLD.LOCATION_ID AND TRUNC(sysdate) between LOC.EFFECTIVE_START_DATE and LOC.EFFECTIVE_END_DATE ) AS OLD_LOCATION,
(SELECT TO_CHAR(MIN(EFFECTIVE_START_DATE),'MM/DD/YYYY')  FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C') AND LOCATION_ID = ASS.LOCATION_ID AND EFFECTIVE_START_DATE > ASSOLD.EFFECTIVE_START_DATE) as CHANGE_DATE,
(SELECT LOC.LOCATION_NAME FROM HR_LOCATIONS_ALL_F_VL  LOC WHERE  LOC.LOCATION_ID =ASS.LOCATION_ID AND TRUNC(sysdate) between LOC.EFFECTIVE_START_DATE and LOC.EFFECTIVE_END_DATE ) AS NEW_LOCATION

FROM PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_F ASS,
PER_ALL_ASSIGNMENTS_F ASSOLD
WHERE NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E','C')
AND ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE'
AND PER.PERSON_ID=ASS.PERSON_ID
AND NAME.PERSON_ID(+)=PER.PERSON_ID

AND ASS.LOCATION_ID NOT IN ('100000000267790','300000063225041','300000076160977')
AND ASSOLD.LOCATION_ID IN ('100000000267786','100000000267788','100000000267790','300000063225041','300000076160977')

AND PER.PERSON_ID=ASSOLD.PERSON_ID
AND ASS.PERSON_ID=ASSOLD.PERSON_ID
AND ASSOLD.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASSOLD.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C') AND LOCATION_ID <> ASS.LOCATION_ID AND EFFECTIVE_START_DATE < ASS.EFFECTIVE_START_DATE)
AND ASSOLD.EFFECTIVE_START_DATE = (SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASSOLD.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C') AND LOCATION_ID <> ASS.LOCATION_ID AND EFFECTIVE_START_DATE < ASS.EFFECTIVE_START_DATE)
                AND ASSOLD.LOCATION_ID <> ASS.LOCATION_ID
AND ASS.EFFECTIVE_START_DATE BETWEEN trunc(SYSDATE - 7) AND  trunc(SYSDATE)
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C') AND TRUNC(sysdate) between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE)
AND TRUNC(sysdate) between PER.EFFECTIVE_START_DATE and PER.EFFECTIVE_END_DATE 
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(+)

UNION
SELECT
PER.PERSON_NUMBER,
NAME.FIRST_NAME,
NAME.LAST_NAME,
(SELECT LOC.LOCATION_NAME FROM HR_LOCATIONS_ALL_F_VL  LOC WHERE  LOC.LOCATION_ID =ASSOLD.LOCATION_ID AND TRUNC(sysdate) between LOC.EFFECTIVE_START_DATE and LOC.EFFECTIVE_END_DATE ) AS OLD_LOCATION,
(SELECT TO_CHAR(MIN(EFFECTIVE_START_DATE),'MM/DD/YYYY')  FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C') AND LOCATION_ID = ASS.LOCATION_ID AND EFFECTIVE_START_DATE > ASSOLD.EFFECTIVE_START_DATE) as CHANGE_DATE,
(SELECT LOC.LOCATION_NAME FROM HR_LOCATIONS_ALL_F_VL  LOC WHERE  LOC.LOCATION_ID =ASS.LOCATION_ID AND TRUNC(sysdate) between LOC.EFFECTIVE_START_DATE and LOC.EFFECTIVE_END_DATE ) AS NEW_LOCATION

FROM PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_F ASS,
PER_ALL_ASSIGNMENTS_F ASSOLD
WHERE NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E','C')
AND ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE'
AND PER.PERSON_ID=ASS.PERSON_ID
AND NAME.PERSON_ID(+)=PER.PERSON_ID

AND ASS.LOCATION_ID IN ('100000000267790','300000063225041','300000076160977')
AND ASSOLD.LOCATION_ID NOT IN ('100000000267786','100000000267788','100000000267790','300000063225041','300000076160977')

AND PER.PERSON_ID=ASSOLD.PERSON_ID
AND ASS.PERSON_ID=ASSOLD.PERSON_ID
AND ASSOLD.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASSOLD.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C') AND LOCATION_ID <> ASS.LOCATION_ID AND EFFECTIVE_START_DATE < ASS.EFFECTIVE_START_DATE)
AND ASSOLD.EFFECTIVE_START_DATE = (SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASSOLD.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C') AND LOCATION_ID <> ASS.LOCATION_ID AND EFFECTIVE_START_DATE < ASS.EFFECTIVE_START_DATE)
                AND ASSOLD.LOCATION_ID <> ASS.LOCATION_ID
AND ASS.EFFECTIVE_START_DATE BETWEEN trunc (SYSDATE - 7) AND  trunc(SYSDATE)
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C') AND TRUNC(sysdate) between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE)
AND TRUNC(sysdate) between PER.EFFECTIVE_START_DATE and PER.EFFECTIVE_END_DATE 
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(+)

ORDER BY 1

----------

--13_14_MonthSalaryDM

SELECT DISTINCT PER.PERSON_NUMBER,
ass.hourly_salaried_code,
 ASS.ASSIGNMENT_TYPE,
 -- SAL.CURRENCY_CODE,

 CASE when ASS.ASSIGNMENT_TYPE in ('E') AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
     THEN (SELECT DISTINCT CUR.LOCAL_CURRENCY FROM CMP_SALARY_V CUR WHERE ASS.ASSIGNMENT_ID=CUR.ASSIGNMENT_ID
                                              AND TRUNC(SYSDATE) BETWEEN cur.DATE_FROM AND cur.DATE_TO)

when ASS.ASSIGNMENT_TYPE in ('E') AND ASS.ASSIGNMENT_STATUS_TYPE NOT IN ('ACTIVE')
    THEN (SELECT DISTINCT CUR.LOCAL_CURRENCY FROM CMP_SALARY_V CUR WHERE ASS.ASSIGNMENT_ID=CUR.ASSIGNMENT_ID
                                            AND (ASS.EFFECTIVE_START_DATE - 1) BETWEEN cur.DATE_FROM AND cur.DATE_TO)

    when ASS.ASSIGNMENT_TYPE in ('C')
THEN (SELECT DISTINCT ETYPE.INPUT_CURRENCY_CODE FROM
PAY_ELEMENT_ENTRIES_F EENTRY,
PAY_ELEMENT_TYPES_VL ETYPE,
PAY_ELE_CLASSIFICATIONS_VL ECLASS,
PAY_ELEMENT_ENTRY_VALUES_F EVALUE,
PAY_INPUT_VALUES_VL PINPUT,
PAY_INPUT_VALUES_F PIV,
PAY_ENTRY_USAGES PEU,
PAY_REL_GROUPS_DN PREL,
PAY_PAY_RELATIONSHIPS_DN PPR

WHERE
PER.PERSON_ID = EENTRY.PERSON_ID (+)
AND ECLASS.CLASSIFICATION_ID = ETYPE.CLASSIFICATION_ID
AND ETYPE.ELEMENT_TYPE_ID = EENTRY.ELEMENT_TYPE_ID
AND EVALUE.ELEMENT_ENTRY_ID = EENTRY.ELEMENT_ENTRY_ID
AND EVALUE.INPUT_VALUE_ID = PINPUT.INPUT_VALUE_ID
AND ETYPE.ELEMENT_TYPE_ID = PINPUT.ELEMENT_TYPE_ID
AND ETYPE.ELEMENT_NAME LIKE 'Contractor Rate%'
AND EENTRY.EFFECTIVE_START_DATE = EVALUE.EFFECTIVE_START_DATE(+)
AND EENTRY.EFFECTIVE_END_DATE = EVALUE.EFFECTIVE_END_DATE(+)
AND EENTRY.ELEMENT_ENTRY_ID = PEU.ELEMENT_ENTRY_ID
AND PEU.PAYROLL_TERM_ID = PREL.PARENT_REL_GROUP_ID(+)
AND PER.PERSON_ID = PPR.PERSON_ID
--AND PIV.BASE_NAME IN ('Amount','Target Bonus Percentage')
AND PIV.INPUT_VALUE_ID = PINPUT.INPUT_VALUE_ID
AND PIV.ELEMENT_TYPE_ID = PINPUT.ELEMENT_TYPE_ID
AND PREL.PAYROLL_RELATIONSHIP_ID = PPR.PAYROLL_RELATIONSHIP_ID
AND EENTRY.EFFECTIVE_START_DATE = (select max(EFFECTIVE_START_DATE)from PAY_ELEMENT_ENTRIES_F where PER.PERSON_ID=PERSON_ID(+) and ELEMENT_TYPE_ID = EENTRY.ELEMENT_TYPE_ID and TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND EENTRY.LAST_UPDATE_DATE = (select max(LAST_UPDATE_DATE)from PAY_ELEMENT_ENTRIES_F where PER.PERSON_ID=PERSON_ID(+) and ELEMENT_TYPE_ID = EENTRY.ELEMENT_TYPE_ID and TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND TRUNC(SYSDATE) BETWEEN PINPUT.EFFECTIVE_START_DATE(+) AND PINPUT.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ETYPE.EFFECTIVE_START_DATE(+) AND ETYPE.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN EENTRY.EFFECTIVE_START_DATE(+) AND EENTRY.EFFECTIVE_END_DATE(+)) END AS CURRENCY_CODE,

 SAL.SALARY_AMOUNT,
 SLA.SALARY_ANNUALIZATION_FACTOR,
 ROUND((SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR),2) AS ANNUAL_SALARY,
 SLA.NAME AS SAL_BASIS_NAME
 --SLA.SALARY_BASIS_CODE,
 --SLA.CODE



  FROM   CMP_SALARY SAL,
CMP_SALARY_BASES SLA,
PER_ALL_PEOPLE_F PER,
      PER_ALL_ASSIGNMENTS_M ASS
WHERE ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID
AND PER.PERSON_ID=ASS.PERSON_ID
AND SLA.NAME IN ('Annual Salary CN CNY 13','Annual Salary BR BRL 13','Annual Salary NL EUR 14')
AND ASS.ASSIGNMENT_TYPE IN ('E','C')
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 TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND ASS.EFFECTIVE_LATEST_CHANGE= 'Y'
AND TRUNC(SYSDATE) BETWEEN SAL.DATE_FROM AND SAL.DATE_TO
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE(+) AND PER.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
ORDER BY PER.PERSON_NUMBER

---------

--PAYTYPE_DM

SELECT DISTINCT
PER.PERSON_NUMBER,
NAME.FIRST_NAME,
NAME.LAST_NAME,
--ASS.ACTION_CODE,
   --(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'))) AS REASON_DESC,
   (SELECT TO_CHAR(MIN(EFFECTIVE_START_DATE),'MM/DD/YYYY')  FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E') AND EFFECTIVE_START_DATE > ASSOLD.EFFECTIVE_START_DATE) as CHANGE_DATE,
ASSOLD.HOURLY_SALARIED_CODE  AS Old_Pay_Type,
ASS.HOURLY_SALARIED_CODE AS NEW_Pay_Type


FROM PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_F ASS,
PER_ALL_ASSIGNMENTS_F ASSOLD

WHERE PER.PERSON_ID=ASS.PERSON_ID
AND NAME.PERSON_ID(+)=PER.PERSON_ID
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND PER.PERSON_ID=ASSOLD.PERSON_ID
AND ASS.PERSON_ID=ASSOLD.PERSON_ID
AND ASSOLD.ASSIGNMENT_SEQUENCE =  (SELECT MAX(ASSIGNMENT_SEQUENCE)  FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASSOLD.PERSON_ID AND ASSIGNMENT_TYPE = ASS.ASSIGNMENT_TYPE AND HOURLY_SALARIED_CODE  <> ASS.HOURLY_SALARIED_CODE AND EFFECTIVE_START_DATE < ASS.EFFECTIVE_START_DATE)
AND ASSOLD.EFFECTIVE_START_DATE = (SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASSOLD.PERSON_ID AND ASSIGNMENT_TYPE = ASS.ASSIGNMENT_TYPE AND HOURLY_SALARIED_CODE  <> ASS.HOURLY_SALARIED_CODE AND EFFECTIVE_START_DATE < ASS.EFFECTIVE_START_DATE)
        AND ASSOLD.HOURLY_SALARIED_CODE  <> ASS.HOURLY_SALARIED_CODE
AND ASS.EFFECTIVE_START_DATE  BETWEEN TRUNC(SYSDATE - 7) AND  SYSDATE
AND ASSOLD.EFFECTIVE_END_DATE BETWEEN TRUNC(SYSDATE - 8) AND  SYSDATE
    --AND TO_CHAR(ASSOLD.EFFECTIVE_END_DATE,'YYYY-MM-DD') = TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'YYYY-MM-DD')
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT 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 TRUNC(sysdate) between PER.EFFECTIVE_START_DATE and PER.EFFECTIVE_END_DATE 
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(+)
ORDER BY PER.PERSON_NUMBER

-----------

--Roster

SELECT distinct
 PER.PERSON_ID,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS EFF_DATE,
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 DEPT_CODE,
(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 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 HR_DIVISION,
DEP.NAME AS DEPT_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 MSS_Dept_Appr_ID,
(SELECT FIRST_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 MSS_Dept_Appr_FN,
(SELECT LAST_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 MSS_Dept_Appr_LN,
respons.STATUS AS DEPTMGRSTATUS,
 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,
JOB.JOB_CODE AS JOB_CODE,
CASE WHEN BU.NAME = '  Collaborate Canada' THEN '  Canada Inc.' ELSE BU.NAME END AS COMPANY,
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 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 ANNUAL_SALARY,




(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_Amt,


(SELECT DISTINCT ET.ELEMENT_NAME   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 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_,

 (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 = ('Amount')) AND (UPPER(ET.ELEMENT_NAME(+)) LIKE 'ANNUAL CUSTOMIZED MGMT PLAN%' OR UPPER(ET.ELEMENT_NAME(+)) LIKE 'QUARTERLY FLAT MGMT BONUS - QFM%' OR UPPER(ET.ELEMENT_NAME(+))
LIKE 'QUARTERLY FLAT REP BONS - QFR%') 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 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 Nonsales_Bonus,

 (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= 'Sales Incentive'  and (PIV.BASE_NAME = ('Amount')) AND UPPER(ET.ELEMENT_NAME(+)) LIKE 'SALES COMPENSATION%' 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 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 Sales_Comp,

(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 ASS.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= 'Sales Incentive'  and (PIV.BASE_NAME = ('Value')) AND UPPER(ET.ELEMENT_NAME(+)) LIKE 'SALES COMMISSION OVERRIDE%' 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 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 Sales_Ovrrd,


 CUR.LOCAL_CURRENCY AS CURRENCY,
 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,
 CASE WHEN ASS.ACTION_CODE='LEAVE_OF_ABSENCE'  THEN 'LEAVE'  WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') AND ASS.REASON_CODE NOT IN ('RETIRE') THEN 'TERM'  WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN 'ACTIVE'  ELSE '' END AS HR_STATUS,
 ASS.ASS_ATTRIBUTE1 AS TITLE_LEVEL,
(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 SuprEmplID,
(SELECT LAST_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 SuprLastName,
(SELECT FIRST_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 SuprFirstName,
JOB.NAME AS JOB_TITLE,
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,
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','HIRE_ADD_WORK_RELATION'))),'MM/DD/YYYY') AS EntryDt_cur_job,
TO_CHAR(SAL.DATE_FROM,'MM/DD/YYYY') AS Last_base_DATE,
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,

(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 ASS.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= 'Allowance'  and (PIV.BASE_NAME = ('Amount')) AND ET.BASE_ELEMENT_NAME LIKE 'International Benefit Allowance%' 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 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 Intl_BENAllow,

 CASE WHEN (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 ASS.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= 'Allowance'
 and (PIV.BASE_NAME = ('Amount'))
 AND ET.BASE_ELEMENT_NAME LIKE 'International Benefit Allowance%'
 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 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(+)) IS NOT NULL THEN 'MONTHLY' ELSE '' END AS Intl_BENAllow_FRQ,


 (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 ASS.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= 'Allowance'  and (PIV.BASE_NAME = ('Amount')) AND ET.BASE_ELEMENT_NAME LIKE 'International Auto Allowance%' 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 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(+)) Intl_CarAllow, CASE WHEN (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 ASS.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= 'Allowance'  and (PIV.BASE_NAME = ('Amount')) AND ET.BASE_ELEMENT_NAME LIKE 'International Auto Allowance%' 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 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(+)) IS NOT NULL THEN 'MONTHLY' ELSE '' END AS Intl_CarAllow_FRQ,

ASS.ASS_ATTRIBUTE3 AS BEN_PRG,

ADDR.Address_Line_1,
ADDR.Address_Line_2,
ADDR.Address_Line_3,
ASS.Assignment_Type,
ADDR.Country,
TO_CHAR(P.DATE_OF_BIRTH,'MM/DD/YYYY') AS DATE_OF_BIRTH,

(select max(case when ETH.Ethnicity = 'CC_4' then '  ' || LUKUP.MEANING else '' end) from  PER_ETHNICITIES ETH,HCM_LOOKUPS LUKUP  where PER.PERSON_ID = ETH.PERSON_ID and LUKUP.LOOKUP_TYPE ='PER_ETHNICITY' and LUKUP.LOOKUP_CODE = ETH.ETHNICITY  group by PERSON_ID) ||
(select max(case when ETH.Ethnicity = 'CC_6' then '  ' || LUKUP.MEANING else '' end) from  PER_ETHNICITIES ETH,HCM_LOOKUPS LUKUP  where PER.PERSON_ID = ETH.PERSON_ID and LUKUP.LOOKUP_TYPE ='PER_ETHNICITY' and LUKUP.LOOKUP_CODE = ETH.ETHNICITY  group by PERSON_ID) ||
(select max(case when ETH.Ethnicity = 'CC_1' then '  ' || LUKUP.MEANING else '' end)  from  PER_ETHNICITIES ETH,HCM_LOOKUPS LUKUP  where PER.PERSON_ID = ETH.PERSON_ID and LUKUP.LOOKUP_TYPE ='PER_ETHNICITY' and LUKUP.LOOKUP_CODE = ETH.ETHNICITY group by PERSON_ID) ||
(select max(case when ETH.Ethnicity = 'CC_5' then '  ' || LUKUP.MEANING else '' end)  from  PER_ETHNICITIES ETH,HCM_LOOKUPS LUKUP  where PER.PERSON_ID = ETH.PERSON_ID and LUKUP.LOOKUP_TYPE ='PER_ETHNICITY' and LUKUP.LOOKUP_CODE = ETH.ETHNICITY group by PERSON_ID) ||
(select max(case when ETH.Ethnicity = '8' then '  ' || LUKUP.MEANING else '' end)  from  PER_ETHNICITIES ETH,HCM_LOOKUPS LUKUP  where PER.PERSON_ID = ETH.PERSON_ID and LUKUP.LOOKUP_TYPE ='PER_ETHNICITY' and LUKUP.LOOKUP_CODE = ETH.ETHNICITY group by PERSON_ID) ||
(select max(case when ETH.Ethnicity = 'CC_3' then '  ' || LUKUP.MEANING else '' end)  from  PER_ETHNICITIES ETH,HCM_LOOKUPS LUKUP  where PER.PERSON_ID = ETH.PERSON_ID and LUKUP.LOOKUP_TYPE ='PER_ETHNICITY' and LUKUP.LOOKUP_CODE = ETH.ETHNICITY group by PERSON_ID) ||
(select max(case when ETH.Ethnicity = 'CC_NSPEC' then '  ' || LUKUP.MEANING else '' end)  from  PER_ETHNICITIES ETH,HCM_LOOKUPS LUKUP  where PER.PERSON_ID = ETH.PERSON_ID and LUKUP.LOOKUP_TYPE ='PER_ETHNICITY' and LUKUP.LOOKUP_CODE = ETH.ETHNICITY group by PERSON_ID) ||
(select max(case when ETH.Ethnicity = 'CC_7' then '  ' || LUKUP.MEANING else '' end)  from  PER_ETHNICITIES ETH,HCM_LOOKUPS LUKUP  where PER.PERSON_ID = ETH.PERSON_ID and LUKUP.LOOKUP_TYPE ='PER_ETHNICITY' and LUKUP.LOOKUP_CODE = ETH.ETHNICITY group by PERSON_ID) ||
(select max(case when ETH.Ethnicity = '2' then '  ' || LUKUP.MEANING else '' end) from  PER_ETHNICITIES ETH,HCM_LOOKUPS LUKUP  where PER.PERSON_ID = ETH.PERSON_ID and LUKUP.LOOKUP_TYPE ='PER_ETHNICITY' and LUKUP.LOOKUP_CODE = ETH.ETHNICITY group by PERSON_ID)

 as  Employee_Ethnicity


,case when  ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN null else 
(select max(EFFECTIVE_START_DATE) T_DATE
from PER_ASSIGNMENT_SECURED_LIST_V PERT where PERT.PERSON_ID = PER.PERSON_ID
and PERT.Assignment_Status_Type = 'INACTIVE'
and PERT.ASSIGNMENT_TYPE = 'E'
and TRUNC(SYSDATE) BETWEEN PERT.EFFECTIVE_START_DATE AND PERT.EFFECTIVE_END_DATE
) end as Term_Date




,(SELECT Max(ASS_ATTRIBUTE_Number1) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID and ASSIGNMENT_TYPE in ('E')  and TO_CHAR(EFFECTIVE_END_DATE, 'yyyy-mm-dd')  = '4712-12-31')  AS ACCR

,case when PPL.MARITAL_STATUS='W' then 'Widowed' when PPL.MARITAL_STATUS='M' then  'Married' when PPL.MARITAL_STATUS='D' then 'Divorced' when PPL.MARITAL_STATUS='S' then 'Single'  else PPL.MARITAL_STATUS end as MARITAL_STATUS

,case
WHEN PPL.PER_INFORMATION1 = 'Y' THEN 'YES' WHEN PPL.PER_INFORMATION2 = 'Y' THEN 'YES' WHEN PPL.PER_INFORMATION3 = 'Y' THEN 'YES' WHEN PPL.PER_INFORMATION4 = 'Y' THEN 'YES' WHEN PPL.PER_INFORMATION5 = 'Y' THEN 'YES' WHEN PPL.PER_INFORMATION6 = 'Y' THEN 'YES' WHEN PPL.PER_INFORMATION7 = 'Y' THEN 'YES' WHEN PPL.PER_INFORMATION8 = 'Y' THEN 'YES' WHEN PPL.PER_INFORMATION9 = 'Y' THEN 'YES' WHEN PPL.PER_INFORMATION10 = 'Y' THEN 'YES' WHEN PPL.PER_INFORMATION11 = 'Y' THEN 'YES' WHEN PPL.PER_INFORMATION12 = 'Y' THEN 'YES' WHEN PPL.PER_INFORMATION13 = 'Y' THEN 'YES' WHEN PPL.PER_INFORMATION15 = 'Y' THEN 'YES'  ELSE ' ' END AS Veteran_Status

,P.ATTRIBUTE3  AS DISABILITY_STATUS



,(select case when US_ID is null then Other_ID else US_ID end as National_Id from (
select PERSON_ID
,max( case when P2.LEGISLATION_CODE='US' then P2.NATIONAL_IDENTIFIER_NUMBER else null  end) as US_ID,
max((select max(P1.NATIONAL_IDENTIFIER_NUMBER) as MaxNAT_ID from PER_NATIONAL_IDENTIFIERS P1 where P1.PERSON_ID = P2.PERSON_ID)) as Other_ID

from PER_NATIONAL_IDENTIFIERS P2 group by PERSON_ID) NATID where PER.PERSON_ID = NATID.PERSON_ID)  as NATIONAL_IDENTIFIER



,case when ass.hourly_salaried_code ='H' then ROUND( (SAL.SALARY_AMOUNT) ,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 Comp_Rate

,CUR.LOCAL_CURRENCY AS SALARY_BASIS

, Salary_Manager,Bonus_Manager,Stock_Manager,Line_Manager

,Dept_Responsibility, FPA_Responsibility,  Comp_Responsibility, HR_Responsibility


FROM
PER_PERSON_SECURED_LIST_V PER
, PER_PERSON_NAMES_F NAME
, PER_ASSIGNMENT_SECURED_LIST_V ASS
, PER_DEPARTMENTS DEP
, 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
, PER_ETHNICITIES ETH
, PER_PERSONS P
, PER_ALL_PEOPLE_F PERP

,
(
SELECT  distinct per.PERSON_ID, per.PERSON_NUMBER, NAME.DISPLAY_NAME,
max(case when MAN.MANAGER_TYPE = 'CC_SALAPP' then MANNAME.DISPLAY_NAME else null end) as Salary_Manager,
max(case when MAN.MANAGER_TYPE ='CC_BONAPP' then MANNAME.DISPLAY_NAME else null end) as Bonus_Manager,
max(case when MAN.MANAGER_TYPE = 'CC_STKAPP' then MANNAME.DISPLAY_NAME else null end) as Stock_Manager,
max(case when MAN.MANAGER_TYPE = 'LINE_MANAGER' then MANNAME.DISPLAY_NAME else null end) as Line_Manager

FROM

PER_PERSON_SECURED_LIST_V PER,
PER_PERSON_NAMES_F NAME,
PER_ASSIGNMENT_SECURED_LIST_V ASS,
PER_ASSIGNMENT_SUPERVISORS_F MAN,
PER_PERSON_NAMES_F MANNAME

where

PER.PERSON_ID=ASS.PERSON_ID
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND NAME.NAME_TYPE='GLOBAL'

AND MAN.MANAGER_ID =  MANNAME.PERSON_ID(+)
AND MANNAME.NAME_TYPE='GLOBAL'

AND MAN.ASSIGNMENT_ID(+)= ASS.ASSIGNMENT_ID
AND MAN.PERSON_ID(+)=ASS.PERSON_ID
AND ASS.ASSIGNMENT_TYPE IN ('E')
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 MANNAME.EFFECTIVE_START_DATE(+) AND MANNAME.EFFECTIVE_END_DATE(+)

group by per.PERSON_ID, per.PERSON_NUMBER, NAME.DISPLAY_NAME

) Mngrs,

(
SELECT  distinct PER.PERSON_ID, PER.PERSON_NUMBER,
 max(case when respons.RESPONSIBILITY_TYPE = 'DEPT_MGR' then respons.RESPONSIBILITY_NAME else null end) as Dept_Responsibility,
 max(case when respons.RESPONSIBILITY_TYPE = 'FPA_ANALYST' then respons.RESPONSIBILITY_NAME else null end) as FPA_Responsibility,
 max(case when respons.RESPONSIBILITY_TYPE = 'SALES_COMP' then respons.RESPONSIBILITY_NAME else null end) as Comp_Responsibility,
 max(case when respons.RESPONSIBILITY_TYPE = 'HR_PARTNER' then respons.RESPONSIBILITY_NAME else null end) as HR_Responsibility

FROM

PER_PERSON_SECURED_LIST_V PER,
PER_ASSIGNMENT_SECURED_LIST_V ASS,
PER_DEPARTMENTS DEP,
PER_DEPT_TREE_NODE tree,
PER_ASG_RESPONSIBILITIES respons

where
PER.PERSON_ID=ASS.PERSON_ID
AND ASS.ORGANIZATION_ID = DEP.ORGANIZATION_ID(+)
and DEP.organization_id=tree.pk1_start_value(+)
and tree.TREE_CODE = respons.DEPARTMENT_TREE_CODE(+)
AND respons.DEPARTMENT_TREE_CODE IS NOT NULL   
AND ASS.ASSIGNMENT_TYPE IN ('E')
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 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'))

group by PER.PERSON_ID,per.PERSON_NUMBER) Responsibilities


Where

PER.PERSON_ID=ASS.PERSON_ID
and PER.PERSON_ID=Mngrs.PERSON_ID(+)
and PER.PERSON_ID=Responsibilities.PERSON_ID(+)
and PER.PERSON_ID = ETH.PERSON_ID(+)
and PER.PERSON_ID = P.PERSON_ID
 AND MAN.MANAGER_TYPE(+) ='LINE_MANAGER'
 AND ASS.PERSON_ID = NAME.PERSON_ID(+)
 AND NAME.NAME_TYPE='GLOBAL'
and PER.PERSON_ID = PERP.PERSON_ID



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 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')
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 ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN MAN.EFFECTIVE_START_DATE(+) AND MAN.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN cur.DATE_FROM(+) AND cur.DATE_TO(+)
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.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 DEP.EFFECTIVE_START_DATE(+) AND DEP.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN SAL.DATE_FROM(+) AND SAL.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'))

---------

--CC Anivarsary Report

SELECT distinct
PER.PERSON_NUMBER AS EMPLID,
NAME.DISPLAY_NAME AS EMPL_NAME,
(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,
DEP.NAME AS DEPT_NAME,
ASS.ASS_ATTRIBUTE4 AS BUSINESS_TITLE,
TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS ENTERPRISE_SENIORITY_DT,
(SELECT LOC.LOCATION_NAME FROM HR_LOCATIONS_ALL_F_VL  LOC WHERE  LOC.LOCATION_ID = ASS.LOCATION_ID
          AND ASS.EFFECTIVE_START_DATE between LOC.EFFECTIVE_START_DATE and LOC.EFFECTIVE_END_DATE ) AS PHYSICAL_LOC,

(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F NA WHERE MAN.MANAGER_ID=NA.PERSON_ID
       AND :DATE_TO 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 :DATE_TO 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 :DATE_TO BETWEEN NA.EFFECTIVE_START_DATE AND NA.EFFECTIVE_END_DATE) AS DEPT_MANAGER_ID,
(SELECT DISPLAY_NAME FROM PER_PERSON_NAMES_F NA
                     WHERE respons.PERSON_ID=NA.PERSON_ID AND NAME_TYPE = 'GLOBAL' AND :DATE_TO BETWEEN NA.EFFECTIVE_START_DATE AND NA.EFFECTIVE_END_DATE) AS DEPT_MANAGER_NAME,
ASS.ASSIGNMENT_STATUS_TYPE AS EMPL_STATUS,
(select distinct EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1') as BUS_EMAIL

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_PERIODS_OF_SERVICE PPS,
HR_LOCATIONS_ALL LOC,
PER_DEPT_TREE_NODE tree,
PER_ASG_RESPONSIBILITIES respons

where

PER.PERSON_ID=ASS.PERSON_ID
AND MAN.MANAGER_TYPE(+) ='LINE_MANAGER'
AND ROUND (months_between (TO_DATE(TO_CHAR(:DATE_TO, 'DD-MM-YYYY'),'DD-MM-YYYY'),PPS.ORIGINAL_DATE_OF_HIRE)/12,1) >= 0.9
AND EXTRACT(MONTH from TO_DATE(TO_CHAR(:DATE_TO, 'DD-MM-YYYY'),'DD-MM-YYYY')) = EXTRACT(MONTH from PPS.ORIGINAL_DATE_OF_HIRE)
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 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 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.PARENT_PK1_VALUE=respons.TOP_DEPARTMENT_ID or tree.PK1_START_VALUE = respons.TOP_DEPARTMENT_ID )
and (tree.tree_code(+) like ('DM_%') or tree.tree_code(+) like ('HR_%'))
AND ASS.ASSIGNMENT_TYPE IN ('E')
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 ((SELECT DISTINCT 1 FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID = ASS.PERSON_ID
     AND ASSIGNMENT_TYPE IN ('E')
                                                             AND ASSIGNMENT_STATUS_TYPE = 'ACTIVE'
     AND trunc(sysdate) between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE) = 1)

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

---------

--SaleasANDBonus_DM

SELECT distinct
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS EFF_DATE,
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 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 DEPT_CODE,

(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,
DEP.NAME AS DEPT_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 :DATE_TO BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND :DATE_TO BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS DEPT_NAME,
-- CASE WHEN SUBSTR(DEP.NAME,1,INSTR(DEP.NAME,'__',1)-1) IS NOT NULL THEN SUBSTR(DEP.NAME,1,INSTR(DEP.NAME,'__',1)-1) ELSE DEP.NAME END AS DEPT_NAME,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F NA WHERE respons.PERSON_ID=NA.PERSON_ID AND :DATE_TO BETWEEN NA.EFFECTIVE_START_DATE AND NA.EFFECTIVE_END_DATE) AS MSS_Dept_Appr_ID,
(SELECT FIRST_NAME FROM PER_PERSON_NAMES_F NA WHERE respons.PERSON_ID=NA.PERSON_ID AND NAME_TYPE = 'GLOBAL' AND :DATE_TO BETWEEN NA.EFFECTIVE_START_DATE AND NA.EFFECTIVE_END_DATE) AS MSS_Dept_Appr_FN,
(SELECT LAST_NAME FROM PER_PERSON_NAMES_F NA WHERE respons.PERSON_ID=NA.PERSON_ID AND NAME_TYPE = 'GLOBAL' AND :DATE_TO BETWEEN NA.EFFECTIVE_START_DATE AND NA.EFFECTIVE_END_DATE) AS MSS_Dept_Appr_LN,
respons.STATUS AS DEPTMGRSTATUS,
 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,
JOB.JOB_CODE AS JOB_CODE,
CASE WHEN BU.NAME = '  Collaborate Canada' THEN '  Canada Inc.' ELSE BU.NAME END AS COMPANY,
--CASE WHEN (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','HIRE_ADD_WORK_RELATION')  ) <> PPS.ADJUSTED_SVC_DATE THEN TO_CHAR(PPS.ADJUSTED_SVC_DATE,'MM/DD/YYYY')
--ELSE 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','HIRE_ADD_WORK_RELATION')  ),'MM/DD/YYYY') END AS OrgHireDt,
--TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE ,'MM/DD/YYYY') AS OrgHireDt, --/** Ismail added this line to pull Original Hire date from per_periods_of_service and commented above two lines **/
--tO_CHAR(Least (PPS.ORIGINAL_DATE_OF_HIRE,(select DISTINCT min(DATE_START) from per_periods_of_service where person_id = PPS.person_id AND period_of_service_id= PPS.period_of_service_id)),'MM/DD/YYYY') AS OrgHireDt,
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, -- /** Ismail added and ASSIGNMENT_TYPE in ('E') and included ACTION_CODE : 'MANAGER_CHANGE','ADD_A_CONTINGENT_WORKER'  **/
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 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 :DATE_TO BETWEEN SAL.DATE_FROM AND SAL.DATE_TO),2) end AS ANNUAL_SALARY,
(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 - AM%' OR
--UPPER(ET.ELEMENT_NAME(+)) LIKE 'QUARTERLY CUSTOMIZED BONUS - QC%' OR
--UPPER(ET.ELEMENT_NAME(+)) LIKE 'QUARTERLY OPERATIONAL BONUS - QO%' OR
--UPPER(ET.ELEMENT_NAME(+)) LIKE 'SEMI ANNUAL CUSTOM - SC20%'
--)   /*** cOMMENTED SINCE BONUS NAMES HAVE BEEN CHANGED BY AMY  ***/
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 :DATE_TO 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 :DATE_TO BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND :DATE_TO BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS Bonus_Amt,
(SELECT DISTINCT ET.ELEMENT_NAME  --SUBSTR(ET.BASE_ELEMENT_NAME,1, INSTR(ET.BASE_ELEMENT_NAME,'-',1)+4)
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 - AM%' OR
--UPPER(ET.ELEMENT_NAME(+)) LIKE 'QUARTERLY CUSTOMIZED BONUS - QC%' OR
--UPPER(ET.ELEMENT_NAME(+)) LIKE 'QUARTERLY OPERATIONAL BONUS - QO%' OR
--UPPER(ET.ELEMENT_NAME(+)) LIKE 'SEMI ANNUAL CUSTOM - SC20%'
--)   /*** cOMMENTED SINCE BONUS NAMES HAVE BEEN CHANGED BY AMY  ***/
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 :DATE_TO BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND :DATE_TO BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS Bonus_,
(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 = ('Amount'))
AND (
--UPPER(ET.ELEMENT_NAME(+)) LIKE 'NO COMP PLAN%' OR
UPPER(ET.ELEMENT_NAME(+)) LIKE 'ANNUAL CUSTOMIZED MGMT PLAN%' OR
UPPER(ET.ELEMENT_NAME(+)) LIKE 'QUARTERLY FLAT MGMT BONUS - QFM%' OR
UPPER(ET.ELEMENT_NAME(+)) LIKE 'QUARTERLY FLAT REP BONUS - QFR%'
)
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 :DATE_TO BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND :DATE_TO BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS Nonsales_Bonus,
(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= 'Sales Incentive'
and (PIV.BASE_NAME = ('Amount'))
AND UPPER(ET.ELEMENT_NAME(+)) LIKE 'SALES COMPENSATION%'
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 :DATE_TO BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND :DATE_TO BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS Sales_Comp,

(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
ASS.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= 'Sales Incentive'
and (PIV.BASE_NAME = ('Value'))
AND UPPER(ET.ELEMENT_NAME(+)) LIKE 'SALES COMMISSION OVERRIDE%'
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 :DATE_TO BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND :DATE_TO BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS Sales_Ovrrd,
CUR.LOCAL_CURRENCY AS CURRENCY,
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,
CASE WHEN ASS.ACTION_CODE='LEAVE_OF_ABSENCE'  THEN 'LEAVE'
WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') AND ASS.REASON_CODE NOT IN ('RETIRE') THEN 'TERM'
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN 'ACTIVE'
ELSE '' END AS HR_STATUS,
ASS.ASS_ATTRIBUTE1 AS TITLE_LEVEL,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F NA WHERE MAN.MANAGER_ID=NA.PERSON_ID AND :DATE_TO BETWEEN NA.EFFECTIVE_START_DATE AND NA.EFFECTIVE_END_DATE) AS SuprEmplID,
(SELECT LAST_NAME FROM PER_PERSON_NAMES_F NA WHERE MAN.MANAGER_ID=NA.PERSON_ID AND NAME_TYPE = 'GLOBAL' AND :DATE_TO BETWEEN NA.EFFECTIVE_START_DATE AND NA.EFFECTIVE_END_DATE) AS SuprLastName,
(SELECT FIRST_NAME FROM PER_PERSON_NAMES_F NA WHERE MAN.MANAGER_ID=NA.PERSON_ID AND NAME_TYPE = 'GLOBAL' AND :DATE_TO BETWEEN NA.EFFECTIVE_START_DATE AND NA.EFFECTIVE_END_DATE) AS SuprFirstName,
JOB.NAME AS JOB_TITLE,
--TO_CHAR(nvl(PPS.ADJUSTED_SVC_DATE,(SELECT MIN(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('HIRE','ADD_AN_EMPLOYEE','HIRE_ADD_WORK_RELATION')  )),'MM/DD/YYYY') AS Benefits_ServiceDt,
TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS Benefits_ServiceDt, -- /** Ismail as part of INC0090896 **/
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,
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','HIRE_ADD_WORK_RELATION'))),'MM/DD/YYYY') AS EntryDt_cur_job,
TO_CHAR(SAL.DATE_FROM,'MM/DD/YYYY') AS Last_base_DATE,
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,
(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
ASS.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= 'Allowance'
and (PIV.BASE_NAME = ('Amount'))
AND ET.BASE_ELEMENT_NAME LIKE 'International Benefit Allowance%'
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 :DATE_TO BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND :DATE_TO BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS Intl_BENAllow,
CASE WHEN (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
ASS.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= 'Allowance'
and (PIV.BASE_NAME = ('Amount'))
AND ET.BASE_ELEMENT_NAME LIKE 'International Benefit Allowance%'
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 :DATE_TO BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND :DATE_TO BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) IS NOT NULL THEN 'MONTHLY' ELSE '' END AS Intl_BENAllow_FRQ,
(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
ASS.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= 'Allowance'
and (PIV.BASE_NAME = ('Amount'))
AND ET.BASE_ELEMENT_NAME LIKE 'International Auto Allowance%'
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 :DATE_TO BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND :DATE_TO BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) Intl_CarAllow,
CASE WHEN (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
ASS.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= 'Allowance'
and (PIV.BASE_NAME = ('Amount'))
AND ET.BASE_ELEMENT_NAME LIKE 'International Auto Allowance%'
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 :DATE_TO BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND :DATE_TO BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) IS NOT NULL THEN 'MONTHLY' ELSE '' END AS Intl_CarAllow_FRQ,
ASS.ASS_ATTRIBUTE3 AS BEN_PRG,
'' AS BONUS_CODE,
tree.TREE_CODE,
(SELECT DISTINCT ORG_INFORMATION_NUMBER1 FROM HR_ORGANIZATION_INFORMATION_F where ORG_INFORMATION_CONTEXT = 'PER_WORK_DAY_INFO' and ASS.legal_entity_ID=ORGANIZATION_ID and :DATE_TO BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE AND ROWNUM=1) as kours,
(SELECT DISTINCT VALUE FROM PER_ASSIGN_WORK_MEASURES_F WRKMSR WHERE ASS.ASSIGNMENT_ID=WRKMSR.ASSIGNMENT_ID AND WRKMSR.UNIT='FTE' AND :DATE_TO BETWEEN WRKMSR.EFFECTIVE_START_DATE AND WRKMSR.EFFECTIVE_END_DATE AND ROWNUM=1) as fte
-- ROUND(((SELECT DISTINCT ORG_INFORMATION_NUMBER1 FROM HR_ORGANIZATION_INFORMATION_F where ORG_INFORMATION_CONTEXT = 'PER_WORK_DAY_INFO' and :DATE_TO BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE AND ROWNUM=1)*(SELECT DISTINCT VALUE FROM PER_ASSIGN_WORK_MEASURES_F WRKMSR WHERE ASS.ASSIGNMENT_ID=WRKMSR.ASSIGNMENT_ID AND WRKMSR.UNIT='FTE' AND :DATE_TO BETWEEN WRKMSR.EFFECTIVE_START_DATE AND WRKMSR.EFFECTIVE_END_DATE AND ROWNUM=1)),2) AS HOURS

FROM
PER_PERSON_SECURED_LIST_V PER,
PER_PERSON_NAMES_F NAME,
PER_ASSIGNMENT_SECURED_LIST_V ASS,
PER_DEPARTMENTS DEP,
-- HRC_LOADER_BATCH_KEY_MAP HRC,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_ASSIGNMENT_SUPERVISORS_F MAN,
PER_PERIODS_OF_SERVICE PPS,
PER_JOBS JOB,
----PER_JOB_LEG_F JOBF,
HR_ORGANIZATION_UNITS BU,
CMP_SALARY_V CUR,
HR_LOCATIONS_ALL LOC,
PER_PERSON_ADDR_USAGES_F ADDRE, -- /** Ismail - added this line to get max row **/
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_NUMBER not in  ('998902')
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ORGANIZATION_ID = DEP.ORGANIZATION_ID(+)
-- AND ASS.ORGANIZATION_ID= HRC.TARGET_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.JOB_ID= JOBF.JOB_ID(+)
-----AND JOBF.INFORMATION_CATEGORY(+)='HRX_US_JOBS'
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             -- /** Ismail - added this line to get max row **/
and ADDR.ADDRESS_ID(+) =ADDRE.ADDRESS_ID          -- /** Ismail - added this line to get max row **/
--AND ADDR.ADDRESS_ID=per.MAILING_ADDRESS_ID(+)   -- commented since missing ('100305','900626','992777','994848','997161','999509') 
AND ADDRE.ADDRESS_TYPE(+) ='HOME'                -- /** Ismail - added this line to get home address or just blank **/
AND ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_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      -- /** Ismail - added this line to avoide duplicates rows as part of  # INC0090082 **/
--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')
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 :DATE_TO 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 ASS.EFFECTIVE_START_DATE BETWEEN :DATE_FROM AND :DATE_TO
AND :DATE_TO BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND :DATE_TO BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN MAN.EFFECTIVE_START_DATE(+) AND MAN.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN ADDRE.EFFECTIVE_START_DATE(+) AND ADDRE.EFFECTIVE_END_DATE(+) -- /** Ismail - added this line to get max row **/
AND :DATE_TO BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND :DATE_TO BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
-----AND :DATE_TO BETWEEN JOBF.EFFECTIVE_START_DATE(+) AND JOBF.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN DEP.EFFECTIVE_START_DATE(+) AND DEP.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
AND :DATE_TO BETWEEN cur.DATE_FROM(+) AND cur.DATE_TO(+)
AND :DATE_TO BETWEEN PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
AND :DATE_TO BETWEEN respons.START_DATE(+) AND NVL(respons.END_DATE,TO_DATE('4712-12-31','YYYY-MM-DD'))
order by PER.PERSON_NUMBER

---------

--CC Weekly Transfers 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 HROF.EFFECTIVE_END_DATE(+) AND TRUNC(sysdate) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS OLD_HR_DIVISION,
(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=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 HROF.EFFECTIVE_END_DATE(+) AND TRUNC(sysdate) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS OLD_DEPT,
CASE WHEN SUBSTR(OLD_DEP.NAME,1,INSTR(OLD_DEP.NAME,'__',1)-1) IS NOT NULL THEN SUBSTR(OLD_DEP.NAME,1,INSTR(OLD_DEP.NAME,'__',1)-1) ELSE OLD_DEP.NAME END AS OLD_DEPARTMENT,
OLD_JOB.JOB_CODE AS OLD_JOB_CODE,
OLD_JOB.NAME AS OLD_JOB_DESCRIPTION,
OLD_ASS.ASS_ATTRIBUTE4 AS OLD_BUSINESS_TITLE,
ROUND(OLD_SAL.SALARY_AMOUNT,2) AS OLD_SALARY,
TO_CHAR(OLD_SAL.DATE_FROM,'MM/DD/YYYY') AS OLD_SAL_DT,
(SELECT
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
OLD_ASS.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 = ('Amount')) -- commented as part of INC0093797
and (PIV.BASE_NAME = ('Target Bonus Percentage'))  -- added  as part of INC0093797
AND ET.BASE_ELEMENT_NAME LIKE 'Annual Bonus - AMS%'
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 OLD_ASS.EFFECTIVE_START_DATE 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 OLD_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS OLD_BASE_AMT,
(SELECT
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
OLD_ASS.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 = ('Amount'))  as part of INC0093797
and (PIV.BASE_NAME = ('Target Bonus Percentage')) --added  as part of INC0093797
AND ET.BASE_ELEMENT_NAME LIKE 'Annual Bonus - AM%'
AND ET.BASE_ELEMENT_NAME NOT LIKE 'Annual Bonus - AMS%'
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 OLD_ASS.EFFECTIVE_START_DATE 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 OLD_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS OLD_BASE_AMT_AM,
(SELECT
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
OLD_ASS.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= 'Sales Incentive'
and (PIV.BASE_NAME = ('Amount'))
AND ET.BASE_ELEMENT_NAME LIKE ('Sales Compensation%')
AND ET.BASE_ELEMENT_NAME NOT LIKE ('Sales Compensation Bonus%')
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS OLD_SALES_COMP,
CASE WHEN OLD_ASS.ASS_ATTRIBUTE8 IS NULL THEN 'No FLSA'
ELSE OLD_ASS.ASS_ATTRIBUTE8 END AS OLD_FLSA_CODE,
OLD_ASS.NORMAL_HOURS AS OLD_STANDARD_HOURS,
OLD_ASS.ASS_ATTRIBUTE3 AS OLD_BENEFIT_PROGRAM,
(SELECT DISTINCT ET.ELEMENT_NAME  --SUBSTR(ET.BASE_ELEMENT_NAME,1, INSTR(ET.BASE_ELEMENT_NAME,'-',1)+4)
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
OLD_ASS.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 = ('Amount'))  as part of INC0093797
and (PIV.BASE_NAME = ('Target Bonus Percentage')) -- added  as part of INC0093797
--AND ET.BASE_ELEMENT_NAME LIKE ('Annual Bonus - AMS%')
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 OLD_ASS.PERSON_ID=PERSON_ID(+) and ELEMENT_TYPE_ID = EE.ELEMENT_TYPE_ID and OLD_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))

AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS BONUS_CODE_O,
BU.NAME AS COMPANY,
(SELECT LOC.LOCATION_NAME FROM HR_LOCATIONS_ALL_F_VL  LOC WHERE  LOC.LOCATION_ID =NEW_ASS.LOCATION_ID AND TRUNC(sysdate) between LOC.EFFECTIVE_START_DATE and LOC.EFFECTIVE_END_DATE ) AS WORK_LOCATION,
--NEW_LOC.LOCATION_NAME AS WORK_LOCATION,
NEW_ASS.WORK_AT_HOME AS NEW_REMOTE_INDICATOR,
(SELECT LOC.LOCATION_NAME FROM HR_LOCATIONS_ALL_F_VL  LOC WHERE  LOC.LOCATION_ID =NEW_ASS.LOCATION_ID AND TRUNC(sysdate) between LOC.EFFECTIVE_START_DATE and LOC.EFFECTIVE_END_DATE ) AS NEW_PHYSICAL_LOC,
--NEW_LOC.LOCATION_NAME AS NEW_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=NEW_ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS NEW_HR_DIVISION,
(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=NEW_ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND SYSDATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND SYSDATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS NEW_DEPT,
CASE WHEN SUBSTR(NEW_DEP.NAME,1,INSTR(NEW_DEP.NAME,'__',1)-1) IS NOT NULL THEN SUBSTR(NEW_DEP.NAME,1,INSTR(NEW_DEP.NAME,'__',1)-1) ELSE NEW_DEP.NAME END AS NEW_DEPARTMENT,
NEW_JOB.JOB_CODE AS NEW_JOB_CODE,
NEW_JOB.NAME AS NEW_JOB_DESCRIPTION,
NEW_ASS.ASS_ATTRIBUTE4 AS NEW_BUSINESS_TITLE,
round(NEW_SAL.SALARY_AMOUNT,2) AS NEW_SALARY,
-- (SELECT round(S.SALARY_AMOUNT,2) FROM CMP_SALARY S, PER_ASSIGNMENT_SECURED_LIST_V A WHERE PER.PERSON_ID=A.PERSON_ID AND A.ASSIGNMENT_ID= S.ASSIGNMENT_ID AND A.ASSIGNMENT_TYPE IN ('E','C') AND TRUNC(SYSDATE) BETWEEN S.DATE_FROM AND S.DATE_TO AND TRUNC(SYSDATE) BETWEEN A.EFFECTIVE_START_DATE AND A.EFFECTIVE_END_DATE) AS CURRENT_SALARY,
(SELECT round(S.SALARY_AMOUNT,2) FROM CMP_SALARY S WHERE NEW_ASS.ASSIGNMENT_ID= S.ASSIGNMENT_ID AND TRUNC(SYSDATE) BETWEEN S.DATE_FROM AND S.DATE_TO) AS CURRENT_SALARY,
TO_CHAR(NEW_SAL.DATE_FROM,'MM/DD/YYYY') AS NEW_SAL_DT,
(SELECT
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
NEW_ASS.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 = ('Amount'))  as part of INC0093797
and (PIV.BASE_NAME = ('Target Bonus Percentage')) -- added  as part of INC0093797
AND ET.BASE_ELEMENT_NAME LIKE 'Annual Bonus - AMS%'
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 NEW_ASS.EFFECTIVE_START_DATE 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 NEW_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS NEW_BASE_AMT,
(SELECT
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
NEW_ASS.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 = ('Amount'))  as part of INC0093797
and (PIV.BASE_NAME = ('Target Bonus Percentage')) --added  as part of INC0093797
AND ET.BASE_ELEMENT_NAME LIKE 'Annual Bonus - AM%'
AND ET.BASE_ELEMENT_NAME not LIKE 'Annual Bonus - AMS%'
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 NEW_ASS.EFFECTIVE_START_DATE 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 NEW_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS NEW_BASE_AMT_AM,
(SELECT
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
NEW_ASS.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= 'Sales Incentive'
and (PIV.BASE_NAME = ('Amount'))
AND ET.BASE_ELEMENT_NAME LIKE ('Sales Compensation%')
AND ET.BASE_ELEMENT_NAME NOT LIKE ('Sales Compensation Bonus%')
-- ,'Sales Compensation AR','Sales Compensation AU','Sales Compensation BR','Sales Compensation CA','Sales Compensation CH','Sales Compensation CN','Sales Compensation CZ','Sales Compensation DE','Sales Compensation GB','Sales Compensation JP','Sales Compensation KR','Sales Compensation NL','Sales Compensation NZ','Sales Compensation SE','Sales Compensation SG','Sales Compensation US')
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS NEW_SALES_COMP,
CASE WHEN NEW_ASS.ASS_ATTRIBUTE8 IS NULL THEN 'No FLSA'
ELSE NEW_ASS.ASS_ATTRIBUTE8 END AS NEW_FLSA_CODE,
NEW_ASS.NORMAL_HOURS AS NEW_STANDARD_HOURS,
NEW_ASS.ASS_ATTRIBUTE3 AS NEW_BENEFIT_PROGRAM,
NAME.DISPLAY_NAME AS NAME,
NEW_ASS.ASSIGNMENT_STATUS_TYPE AS ASSIGNMENT_STATUS,
TO_CHAR(NEW_ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS STATUS_DATE,
 LUKUP.MEANING AS ETHNIC_GROUP,
 LUKUP2.MEANING AS GENDER,
TO_CHAR(PP.DATE_OF_BIRTH,'MM/DD/YYYY') AS BIRTH_DATE,
(SELECT DISTINCT ET.ELEMENT_NAME  --SUBSTR(ET.BASE_ELEMENT_NAME,1, INSTR(ET.BASE_ELEMENT_NAME,'-',1)+4)
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
NEW_ASS.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 = ('Amount'))  as part of INC0093797
and (PIV.BASE_NAME = ('Target Bonus Percentage')) -- added  as part of INC0093797
--AND ET.BASE_ELEMENT_NAME LIKE ('Annual Bonus - AMS%')
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 NEW_ASS.PERSON_ID=PERSON_ID(+) and ELEMENT_TYPE_ID = EE.ELEMENT_TYPE_ID and NEW_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))

AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS BONUS_CODE
,PP.ATTRIBUTE2 AS REQUESTION_ID



FROM
PER_ASSIGNMENT_SECURED_LIST_V NEW_ASS,
PER_ASSIGNMENT_SECURED_LIST_V OLD_ASS,
PER_PERSON_SECURED_LIST_V PER,
PER_PERSON_NAMES_F NAME,
HR_LEGAL_ENTITIES OLD_LEG,
PER_DEPARTMENTS OLD_DEP,
PER_DEPARTMENTS NEW_DEP,
-- HRC_LOADER_BATCH_KEY_MAP OLD_HRC,
-- HRC_LOADER_BATCH_KEY_MAP NEW_HRC,
CMP_SALARY OLD_SAL,
CMP_SALARY NEW_SAL,

PER_JOBS NEW_JOB,
PER_JOBS OLD_JOB,
HR_LOCATIONS_ALL OLD_LOC,
HR_LOCATIONS_ALL NEW_LOC,
HR_ORGANIZATION_UNITS BU,
PER_ETHNICITIES ETHN,
HCM_LOOKUPS LUKUP,
HCM_LOOKUPS LUKUP2,
PER_PEOPLE_LEGISLATIVE_F GENDER,
PER_PERSONS PP


WHERE


PER.PERSON_ID=NEW_ASS.PERSON_ID
AND PER.PERSON_ID=PP.PERSON_ID
AND NEW_ASS.PERSON_ID=OLD_ASS.PERSON_ID
AND NEW_ASS.PERSON_ID=NAME.PERSON_ID(+)
AND NEW_ASS.PERSON_ID= ETHN.PERSON_ID(+)
AND ETHN.ETHNICITY=LUKUP.LOOKUP_CODE(+)
AND NEW_ASS.PERSON_ID=GENDER.PERSON_ID(+)
AND LUKUP2.LOOKUP_TYPE='SEX'
AND LUKUP2.LOOKUP_CODE(+)=GENDER.SEX
AND LUKUP.LOOKUP_TYPE(+) ='PER_ETHNICITY'
AND ((NEW_ASS.ACTION_CODE in ('LOCATION_CHANGE','TRANSFER','PROMOTION','GLB_TRANSFER')) or (NEW_ASS.ACTION_CODE='PAY_CHNG' and NEW_ASS.REASON_CODE='PROMOTION_INCREASE'))
AND NAME.NAME_TYPE='GLOBAL'
AND GENDER.LEGISLATION_CODE(+)=NEW_ASS.LEGISLATION_CODE
AND NEW_ASS.ASSIGNMENT_TYPE IN ('E','C')
AND OLD_ASS.ASSIGNMENT_TYPE IN ('E','C')

AND OLD_LEG.CLASSIFICATION_CODE='HCM_LEMP'
AND NEW_ASS.JOB_ID=NEW_JOB.JOB_ID(+)

AND OLD_ASS.JOB_ID=OLD_JOB.JOB_ID(+)
AND OLD_LEG.ORGANIZATION_ID=NEW_ASS.LEGAL_ENTITY_ID
AND NEW_ASS.BUSINESS_UNIT_ID = BU.ORGANIZATION_ID(+)
AND OLD_ASS.ORGANIZATION_ID = OLD_DEP.ORGANIZATION_ID(+)
AND NEW_ASS.ORGANIZATION_ID = NEW_DEP.ORGANIZATION_ID(+)
-- AND OLD_ASS.ORGANIZATION_ID= OLD_HRC.TARGET_ID
-- AND NEW_ASS.ORGANIZATION_ID= NEW_HRC.TARGET_ID
AND OLD_ASS.ASSIGNMENT_ID= OLD_SAL.ASSIGNMENT_ID
AND NEW_ASS.ASSIGNMENT_ID= NEW_SAL.ASSIGNMENT_ID
AND OLD_ASS.LOCATION_ID = OLD_LOC.LOCATION_ID(+)
AND NEW_ASS.LOCATION_ID = NEW_LOC.LOCATION_ID(+)
-- AND (NEW_ASS.LOCATION_ID <> OLD_ASS.LOCATION_ID OR OLD_ASS.JOB_ID <> NEW_ASS.JOB_ID OR NEW_ASS.ASSIGNMENT_ID <> OLD_ASS.ASSIGNMENT_ID)
-- AND TO_CHAR(NEW_ASS.EFFECTIVE_END_DATE,'YYYY-MM-DD') = '4712-12-31'
AND TO_CHAR(OLD_ASS.EFFECTIVE_END_DATE,'YYYY-MM-DD') = TO_CHAR(NEW_ASS.EFFECTIVE_START_DATE-1,'YYYY-MM-DD')


AND NEW_ASS.ASSIGNMENT_SEQUENCE=(SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID=NEW_ASS.PERSON_ID AND ASSIGNMENT_TYPE=NEW_ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
-- and NEW_ASS.effective_start_date = (select max(effective_start_date) from per_all_assignments_m where person_id=new_ass.person_id and assignment_type in ('E','C') and ((NEW_ASS.ACTION_CODE in ('TRANSFER','PROMOTION')) or (NEW_ASS.ACTION_CODE='PAY_CHNG' and NEW_ASS.REASON_CODE='PROMOTION_INCREASE')))
---AND (TO_CHAR(OLD_ASS.EFFECTIVE_END_DATE,'YYYY-MM-DD')) = (SELECT TO_CHAR(MAX(EFFECTIVE_END_DATE),'YYYY-MM-DD') FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID = NEW_ASS.PERSON_ID AND ASSIGNMENT_TYPE in ('E','C') AND NEW_ASS.EFFECTIVE_START_DATE > EFFECTIVE_END_DATE)
 AND TRUNC(NEW_ASS.EFFECTIVE_START_DATE) BETWEEN TRUNC(SYSDATE-7) AND TRUNC(SYSDATE)
 AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
 AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
 AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN GENDER.EFFECTIVE_START_DATE(+) AND GENDER.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN NEW_JOB.EFFECTIVE_START_DATE(+) AND NEW_JOB.EFFECTIVE_END_DATE(+)
 AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN NEW_DEP.EFFECTIVE_START_DATE(+) AND NEW_DEP.EFFECTIVE_END_DATE(+)
 AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN NEW_LOC.EFFECTIVE_START_DATE(+) AND NEW_LOC.EFFECTIVE_END_DATE(+)
 AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN NEW_SAL.DATE_FROM AND NEW_SAL.DATE_TO
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN OLD_SAL.DATE_FROM AND OLD_SAL.DATE_TO
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN OLD_JOB.EFFECTIVE_START_DATE(+) AND OLD_JOB.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN OLD_DEP.EFFECTIVE_START_DATE(+) AND OLD_DEP.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN OLD_LOC.EFFECTIVE_START_DATE(+) AND OLD_LOC.EFFECTIVE_END_DATE(+)
AND trunc(sysdate) BETWEEN OLD_LEG.EFFECTIVE_START_DATE AND OLD_LEG.EFFECTIVE_END_DATE
ORDER BY PER.PERSON_NUMBER

----------

--CC Aus PTO Mic

SELECT DISTINCT
PNO.PERSON_NUMBER AS EMPLOYEE_ID,
NAME.FIRST_NAME,
NAME.LAST_NAME,
(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=ASSIGN.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,
ASSIGN.EMPLOYMENT_CATEGORY AS FULL_PART_STATUS,
(SELECT LOC.LOCATION_NAME FROM HR_LOCATIONS_ALL_F_VL  LOC WHERE  LOC.LOCATION_ID =ASSIGN.LOCATION_ID AND TRUNC(sysdate) between LOC.EFFECTIVE_START_DATE and LOC.EFFECTIVE_END_DATE ) AS PHYSICAL_LOCATION,
ADDR.TOWN_OR_CITY AS HOME_CITY,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F PER WHERE PER.PERSON_ID=SUP.MANAGER_ID AND ASSIGN.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE ) AS SUPERVISOR_ID,
(SELECT NA.DISPLAY_NAME FROM PER_PERSON_NAMES_F NA WHERE NA.PERSON_ID = SUP.MANAGER_ID AND NA.NAME_TYPE = 'GLOBAL' AND ASSIGN.EFFECTIVE_START_DATE BETWEEN NA.EFFECTIVE_START_DATE(+) AND NA.EFFECTIVE_END_DATE(+)) AS SUPERVISOR_NAME,
ASSIGN.ASS_ATTRIBUTE8 AS FLSA_STATUS,
AAP.NAME AS ABSENCE_PLAN_TYPE,
ROUND ((ACC.END_BAL),2) AS END_BALANCE,
to_char(SYSDATE,'MM-DD-YYYY') AS BALANCE_CALCULATED_DATE

FROM
PER_PERSON_SECURED_LIST_V PNO,
PER_PERSON_NAMES_F NAME,
PER_ASSIGNMENT_SECURED_LIST_V ASSIGN,
PER_PERSON_ADDRESSES_V ADDR,
PER_ASSIGNMENT_SUPERVISORS_F SUP,
HR_LOCATIONS_ALL LOC,

ANC_ABSENCE_PLANS_F_TL AAP,
ANC_PER_ACCRUAL_ENTRIES ACC,
ANC_PER_PLAN_ENROLLMENT APPE,
ANC_ABSENCE_PLANS_F APF
WHERE
NAME.NAME_TYPE = 'GLOBAL'
AND ASSIGN.ASSIGNMENT_TYPE IN ('E','C')
AND ASSIGN.LEGISLATION_CODE  IN ('AU')
AND LOC.COUNTRY IN ('AU')
AND SUP.MANAGER_TYPE(+) ='LINE_MANAGER'
AND ASSIGN.LOCATION_ID=LOC.LOCATION_ID(+)
AND ASSIGN.ASSIGNMENT_ID=SUP.ASSIGNMENT_ID(+)
AND ASSIGN.PERSON_ID=SUP.PERSON_ID(+)
AND ASSIGN.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND PNO.PERSON_ID=ADDR.PERSON_ID
AND ADDR.ADDRESS_TYPE IN  ('HOME')
AND ADDR.COUNTRY IN ('AU')
AND ASSIGN.PERSON_ID = PNO.PERSON_ID
AND ASSIGN.PERSON_ID = NAME.PERSON_ID
AND ACC.PERSON_ID(+) = PNO.PERSON_ID
AND AAP.ABSENCE_PLAN_ID(+) = ACC.PLAN_ID
AND APPE.PERSON_ID = PNO.PERSON_ID
AND APPE.PER_PLAN_ENRT_ID(+) = ACC.PER_PLAN_ENRT_ID
AND AAP.LANGUAGE='US' 
AND APF.ABSENCE_PLAN_ID(+) = ACC.PLAN_ID
AND ASSIGN.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=PNO.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C'))
AND ACC.ACCRUAL_PERIOD = (SELECT MAX(ACCRUAL_PERIOD) FROM ANC_PER_ACCRUAL_ENTRIES WHERE PERSON_ID = ACC.PERSON_ID AND PLAN_ID = ACC.PLAN_ID)
AND trunc(SYSDATE) BETWEEN ASSIGN.EFFECTIVE_START_DATE AND ASSIGN.EFFECTIVE_END_DATE
AND trunc(SYSDATE) BETWEEN AAP.EFFECTIVE_START_DATE AND AAP.EFFECTIVE_END_DATE
AND trunc(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND trunc(SYSDATE) BETWEEN ADDR.EFFECTIVE_START_DATE and ADDR.EFFECTIVE_END_DATE
AND trunc(SYSDATE) BETWEEN PNO.EFFECTIVE_START_DATE AND PNO.EFFECTIVE_END_DATE
AND trunc(SYSDATE) BETWEEN APF.EFFECTIVE_START_DATE AND APF.EFFECTIVE_END_DATE
AND trunc(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND trunc(SYSDATE) BETWEEN SUP.EFFECTIVE_START_DATE AND SUP.EFFECTIVE_END_DATE

union

SELECT DISTINCT
PNO.PERSON_NUMBER AS EMPLOYEE_ID,
NAME.FIRST_NAME,
NAME.LAST_NAME,
(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=ASSIGN.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,
ASSIGN.EMPLOYMENT_CATEGORY AS FULL_PART_STATUS,
(SELECT LOC.LOCATION_NAME FROM HR_LOCATIONS_ALL_F_VL  LOC WHERE  LOC.LOCATION_ID =ASSIGN.LOCATION_ID AND TRUNC(sysdate) between LOC.EFFECTIVE_START_DATE and LOC.EFFECTIVE_END_DATE ) AS PHYSICAL_LOCATION,
ADDR.TOWN_OR_CITY AS HOME_CITY,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F PER WHERE PER.PERSON_ID=SUP.MANAGER_ID AND ASSIGN.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE ) AS SUPERVISOR_ID,
(SELECT NA.DISPLAY_NAME FROM PER_PERSON_NAMES_F NA WHERE NA.PERSON_ID = SUP.MANAGER_ID AND NA.NAME_TYPE = 'GLOBAL' AND ASSIGN.EFFECTIVE_START_DATE BETWEEN NA.EFFECTIVE_START_DATE(+) AND NA.EFFECTIVE_END_DATE(+)) AS SUPERVISOR_NAME,
ASSIGN.ASS_ATTRIBUTE8 AS FLSA_STATUS,
'N/A' AS ABSENCE_PLAN_TYPE,
0 AS END_BALANCE,
to_char(SYSDATE,'MM-DD-YYYY') AS BALANCE_CALCULATED_DATE

FROM
PER_PERSON_SECURED_LIST_V PNO,
PER_PERSON_NAMES_F NAME,
PER_ASSIGNMENT_SECURED_LIST_V ASSIGN,
PER_PERSON_ADDRESSES_V ADDR,
PER_ASSIGNMENT_SUPERVISORS_F SUP,
HR_LOCATIONS_ALL LOC
/*
ANC_ABSENCE_PLANS_F_TL AAP,
ANC_PER_ACCRUAL_ENTRIES ACC,
ANC_PER_PLAN_ENROLLMENT APPE,
ANC_ABSENCE_PLANS_F APF */
WHERE
NAME.NAME_TYPE = 'GLOBAL'
AND ASSIGN.ASSIGNMENT_TYPE IN ('E','C')
AND ASSIGN.LEGISLATION_CODE  IN ('AU')
AND LOC.COUNTRY IN ('AU')
AND ASSIGN.LOCATION_ID=LOC.LOCATION_ID(+)
AND ASSIGN.ASSIGNMENT_ID=SUP.ASSIGNMENT_ID(+)
AND ASSIGN.PERSON_ID=SUP.PERSON_ID(+)
AND ASSIGN.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND PNO.PERSON_ID=ADDR.PERSON_ID
AND ADDR.ADDRESS_TYPE IN  ('HOME')
AND ADDR.COUNTRY IN ('AU')
AND SUP.MANAGER_TYPE(+) ='LINE_MANAGER'
AND ASSIGN.PERSON_ID = PNO.PERSON_ID
AND ASSIGN.PERSON_ID = NAME.PERSON_ID
--AND ACC.PERSON_ID(+) = PNO.PERSON_ID
--AND AAP.ABSENCE_PLAN_ID(+) = ACC.PLAN_ID
--AND APPE.PERSON_ID = PNO.PERSON_ID
--AND APPE.PER_PLAN_ENRT_ID(+) = ACC.PER_PLAN_ENRT_ID
--AND AAP.LANGUAGE='US' 
--AND APF.ABSENCE_PLAN_ID(+) = ACC.PLAN_ID
AND ASSIGN.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=PNO.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C'))
--AND ACC.ACCRUAL_PERIOD = (SELECT MAX(ACCRUAL_PERIOD) FROM ANC_PER_ACCRUAL_ENTRIES WHERE PERSON_ID = ACC.PERSON_ID AND PLAN_ID = ACC.PLAN_ID)
AND trunc(SYSDATE) BETWEEN ASSIGN.EFFECTIVE_START_DATE AND ASSIGN.EFFECTIVE_END_DATE
--AND trunc(SYSDATE) BETWEEN AAP.EFFECTIVE_START_DATE AND AAP.EFFECTIVE_END_DATE
AND trunc(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND trunc(SYSDATE) BETWEEN ADDR.EFFECTIVE_START_DATE and ADDR.EFFECTIVE_END_DATE
AND trunc(SYSDATE) BETWEEN PNO.EFFECTIVE_START_DATE AND PNO.EFFECTIVE_END_DATE
--AND trunc(SYSDATE) BETWEEN APF.EFFECTIVE_START_DATE AND APF.EFFECTIVE_END_DATE
AND trunc(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND trunc(SYSDATE) BETWEEN SUP.EFFECTIVE_START_DATE AND SUP.EFFECTIVE_END_DATE
AND NOT EXISTS (SELECT 'X' FROM ANC_PER_ACCRUAL_ENTRIES ACC
                           where ACC.ACCRUAL_PERIOD = (SELECT MAX(ACCRUAL_PERIOD) FROM ANC_PER_ACCRUAL_ENTRIES
                                WHERE PERSON_ID = ACC.PERSON_ID AND PLAN_ID = ACC.PLAN_ID)
                           AND ACC.PERSON_ID = PNO.PERSON_ID)
ORDER BY 1

---------

--Probationary_Period_emp

SELECT distinct
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS EFF_DATE,
PER.PERSON_NUMBER AS EMPID,
NAME.LAST_NAME,
NAME.FIRST_NAME,
(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,
DEP.NAME AS DEPT_NAME,
LOC.INTERNAL_LOCATION_CODE AS PHYSICAL_LOC,
ASS.ASS_ATTRIBUTE4 AS BUSINESS_TITLE,
JOB.JOB_CODE AS JOB_CODE,
(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 MANAGER_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 MANAGER_NAME,
ASS.PROBATION_PERIOD ||' '|| ASS.PROBATION_UNIT AS PROBATION_PERIOD,
TO_CHAR(ASS.DATE_PROBATION_END,'MM/DD/YYYY') AS PROBATION_END_DATE ,
ASS.NOTICE_PERIOD ||' '|| ASS.NOTICE_PERIOD_UOM AS NOTICE_PERIOD

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_JOBS JOB,
HR_LOCATIONS_ALL LOC

where

PER.PERSON_ID=ASS.PERSON_ID
AND MAN.MANAGER_TYPE(+) ='LINE_MANAGER'
--AND PER.PERSON_NUMBER in  ('998902')
and ASS.PROBATION_PERIOD is not null
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 ASS.JOB_ID=JOB.JOB_ID(+)
AND ASS.LOCATION_ID = LOC.LOCATION_ID(+)
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 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(+)
order by PER.PERSON_NUMBER

---------

--CC Goal Weight Updated DM_%
select distinct PER.PERSON_NUMBER AS EMPLID,
NAME.DISPLAY_NAME AS EMPL_NAME,
GoalR9.GOAL_ID AS GOAL_ID,
GoalR9.GOAL_TYPE_CODE AS GOAL_TYPE,
GoalPlan.GOAL_PLAN_NAME AS GOAL_PLAN_NAME,
GoalR9.GOAL_NAME AS GOAL_NAME,
GoalR9.PERCENT_COMPLETE_CODE AS PERCENT_COMPLETED,
(SELECT WEIGHTING  FROM HRG_GOAL_PLAN_GOALS WHERE  GOAL_ID = GoalR9.GOAL_ID AND ((TRUNC(sysdate) BETWEEN EFFECTIVE_START_DATE and EFFECTIVE_END_DATE) or 1=1)) AS WEIGHT,
GoalR9.STATUS_CODE AS STATUS,
case when GoalR9.GOAL_VERSION_TYPE_CODE in ('MASS_REQ') then 'Deleted'
     when GoalR9.GOAL_VERSION_TYPE_CODE in ('ORA_REQUIRES_APPROVAL') then 'REQUIRES_APPROVAL'
     else GoalR9.GOAL_VERSION_TYPE_CODE end as GOAL_STATUS,
GoalR9.APPROVAL_STATUS_CODE AS APPROVAL_STATUS,
to_char(GoalR9.START_DATE,'MM-DD-YYYY') AS START_DATE,
to_char(GoalR9.TARGET_COMPLETION_DATE,'MM-DD-YYYY') AS TARGET_COMPLETION_DATE,
to_char(GoalR9.ACTUAL_COMPLETION_DATE,'MM-DD-YYYY') AS ACTUAL_COMPLETION_DATE,
(select DISTINCT ED.EMAIL_ADDRESS from PER_EMAIL_ADDRESSES ED
                                       where PER.PERSON_ID = ED.PERSON_ID(+) and PER.PRIMARY_EMAIL_ID = ED.email_address_id(+)) as EMPLOYEE_EMAIL_ID,
     
(SELECT DISTINCT NA.DISPLAY_NAME FROM PER_PERSON_NAMES_F NA ,PER_ASSIGNMENT_SUPERVISORS_F SUP
WHERE NA.PERSON_ID = SUP.MANAGER_ID AND NA.NAME_TYPE = 'GLOBAL' AND SUP.PRIMARY_FLAG(+) = 'Y'
AND SUP.ASSIGNMENT_ID = ASS.ASSIGNMENT_ID AND SUP.PERSON_ID =ASS.PERSON_ID and SUP.MANAGER_TYPE(+) ='LINE_MANAGER'
AND ASS.EFFECTIVE_START_DATE BETWEEN NA.EFFECTIVE_START_DATE(+) AND NA.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)) AS MANAGER_NAME,

(select DISTINCT ED.EMAIL_ADDRESS from PER_EMAIL_ADDRESSES ED ,PER_ASSIGNMENT_SUPERVISORS_F SUP, PER_ALL_PEOPLE_F PERSUP
                                       where SUP.MANAGER_ID(+) = ED.PERSON_ID
       AND PERSUP.PERSON_ID = SUP.MANAGER_ID AND SUP.PRIMARY_FLAG(+) = 'Y'  and SUP.MANAGER_TYPE(+) ='LINE_MANAGER'
       AND SUP.ASSIGNMENT_ID = ASS.ASSIGNMENT_ID AND SUP.PERSON_ID =ASS.PERSON_ID
       and PERSUP.PRIMARY_EMAIL_ID = ED.email_address_id(+)
       AND ASS.EFFECTIVE_START_DATE BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)
       AND ASS.EFFECTIVE_START_DATE BETWEEN PERSUP.EFFECTIVE_START_DATE(+) AND PERSUP.EFFECTIVE_END_DATE(+)) as MANAGER_EMAIL_ID

from HRG_GOALS GoalR9,
     HRG_GOAL_PLAN_GOALS GoalPln,
     PER_ALL_PEOPLE_F PER,
     PER_ALL_ASSIGNMENTS_M ASS,
     PER_PERSON_NAMES_F NAME,
     PER_PERIODS_OF_SERVICE POS,
     PER_JOBS JOB,
     HRG_GOAL_PLANS_VL GoalPlan
   --HRG_GOAL_PLANS_TL GoalPlan same as above view VL

where 1=1
AND NAME.NAME_TYPE='GLOBAL' 
AND PER.person_id=GoalR9.PERSON_ID(+)
AND GoalR9.PERSON_ID  = NAME.PERSON_ID(+)
AND ASS.ASSIGNMENT_TYPE IN ('E')
--AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)  FROM PER_ASSIGNMENT_SECURED_LIST_V
WHERE PERSON_ID=ASS.PERSON_ID
AND ASSIGNMENT_TYPE IN ('E')
AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE' 
--AND HRG_GOALS_R9.ACHIEVED_WEIGHT <> ''
AND GoalR9.STATUS_CODE NOT IN ('CANCEL')
AND GoalR9.GOAL_VERSION_TYPE_CODE NOT IN ('FROZEN')--,'MASS_REQ')
AND (GoalR9.APPROVAL_STATUS_CODE IS NULL OR GoalR9.APPROVAL_STATUS_CODE <> 'DRAFT')
AND GoalR9.GOAL_ID = GoalPln.GOAL_ID
AND GoalPln.GOAL_PLAN_ID = GoalPlan.GOAL_PLAN_ID
AND GoalPlan.GOAL_PLAN_NAME IN ('2016 Goal Plan','Default Goal Plan -  , Inc.')
AND GoalR9.GOAL_TYPE_CODE = 'PERFORMANCE'
and ASS.PERSON_ID =GoalR9.PERSON_ID
AND PER.PERSON_ID=ASS.PERSON_ID
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND POS.PERSON_ID=ASS.PERSON_ID
AND POS.PERIOD_OF_SERVICE_ID=ASS.PERIOD_OF_SERVICE_ID
AND JOB.JOB_CODE NOT IN ('UR0901','UR0101','UR0102','US0201')
and ASS.EMPLOYMENT_CATEGORY not IN ('PT','FT') -- interns/Temporary
AND POS.PROJECTED_TERMINATION_DATE IS NULL -- Not to include fixed term employees
AND TRUNC(GoalR9.START_DATE) > TO_DATE('2015.12.31', 'YYYY.MM.DD')
--AND TRUNC(POS.ORIGINAL_DATE_OF_HIRE ) <= TO_DATE('2015.10.31', 'YYYY.MM.DD') -- exclude all employees who were hired on or after 11/1/16
--AND ((ASS.ACTION_CODE NOT in ('REHIRE')) OR (ASS.ACTION_CODE in ('REHIRE') AND TRUNC(ASS.EFFECTIVE_START_DATE ) <= TO_DATE('2015.10.31', 'YYYY.MM.DD')))
AND TRUNC(sysdate)  BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.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 TRUNC(sysdate)  BETWEEN ASS.EFFECTIVE_START_DATE(+) and ASS.EFFECTIVE_END_DATE(+)
--AND TRUNC(sysdate)  BETWEEN GoalPln.EFFECTIVE_START_DATE(+) and GoalPln.EFFECTIVE_END_DATE(+)

UNION

select DISTINCT PER1.PERSON_NUMBER AS EMPLID,
NAME.DISPLAY_NAME AS EMPL_NAME,
0 AS GOAL_ID ,
'N/A' AS GOAL_TYPE,
'N/A' AS GOAL_PLAN_NAME,
'N/A' AS GOAL_NAME,
'N/A' AS PERCENT_COMPLETED,
0 AS WEIGHT,
'N/A' AS STATUS,
'N/A' as GOAL_STATUS,
'N/A' AS APPROVAL_STATUS,
'N/A' AS START_DATE,
'N/A' AS TARGET_COMPLETION_DATE,
'N/A'AS ACTUAL_COMPLETION_DATE,
(select DISTINCT ED.EMAIL_ADDRESS from PER_EMAIL_ADDRESSES ED
                                       where PER1.PERSON_ID = ED.PERSON_ID(+) and PER1.PRIMARY_EMAIL_ID = ED.email_address_id(+)) as EMPLOYEE_EMAIL_ID,
     
(SELECT DISTINCT NA.DISPLAY_NAME FROM PER_PERSON_NAMES_F NA ,PER_ASSIGNMENT_SUPERVISORS_F SUP
WHERE NA.PERSON_ID = SUP.MANAGER_ID AND NA.NAME_TYPE = 'GLOBAL' AND SUP.PRIMARY_FLAG(+) = 'Y'
AND SUP.ASSIGNMENT_ID = ASS.ASSIGNMENT_ID AND SUP.PERSON_ID =ASS.PERSON_ID
AND ASS.EFFECTIVE_START_DATE BETWEEN NA.EFFECTIVE_START_DATE(+) AND NA.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)) AS MANAGER_NAME,

(select DISTINCT ED.EMAIL_ADDRESS from PER_EMAIL_ADDRESSES ED ,PER_ASSIGNMENT_SUPERVISORS_F SUP, PER_ALL_PEOPLE_F PERSUP
                                       where SUP.MANAGER_ID(+) = ED.PERSON_ID
       AND PERSUP.PERSON_ID = SUP.MANAGER_ID AND SUP.PRIMARY_FLAG(+) = 'Y'
       AND SUP.ASSIGNMENT_ID = ASS.ASSIGNMENT_ID AND SUP.PERSON_ID =ASS.PERSON_ID
       and PERSUP.PRIMARY_EMAIL_ID = ED.email_address_id(+)
       AND ASS.EFFECTIVE_START_DATE BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)
       AND ASS.EFFECTIVE_START_DATE BETWEEN PERSUP.EFFECTIVE_START_DATE(+) AND PERSUP.EFFECTIVE_END_DATE(+)) as MANAGER_EMAIL_ID

from --HRG_GOALS GoalR9,
     PER_ALL_PEOPLE_F PER1,
     PER_ALL_ASSIGNMENTS_M ASS,
     PER_PERSON_NAMES_F NAME,
     PER_PERIODS_OF_SERVICE POS,
     PER_JOBS JOB

where 1=1
AND NAME.NAME_TYPE='GLOBAL' 
--AND PER1.person_id=GoalR9.PERSON_ID(+)
--AND GoalR9.PERSON_ID  = NAME.PERSON_ID
AND PER1.PERSON_ID  = NAME.PERSON_ID(+)
--and ASS.PERSON_ID = GoalR9.PERSON_ID
AND ASS.ASSIGNMENT_TYPE IN ('E')
--AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)  FROM PER_ASSIGNMENT_SECURED_LIST_V
WHERE PERSON_ID=ASS.PERSON_ID
AND ASSIGNMENT_TYPE IN ('E')
AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE'
--AND HRG_GOALS_R9.ACHIEVED_WEIGHT <> ''
--AND GoalR9.GOAL_TYPE_CODE = 'PERFORMANCE'
AND PER1.PERSON_ID=ASS.PERSON_ID
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND POS.PERSON_ID=ASS.PERSON_ID
AND POS.PERIOD_OF_SERVICE_ID=ASS.PERIOD_OF_SERVICE_ID
AND JOB.JOB_CODE NOT IN ('UR0901','UR0101','UR0102','US0201')
and ASS.EMPLOYMENT_CATEGORY not IN ('PT','FT') -- interns/Temporary
AND POS.PROJECTED_TERMINATION_DATE IS NULL -- Not to include fixed term employees
--AND TRUNC(POS.ORIGINAL_DATE_OF_HIRE ) <= TO_DATE('2015.10.31', 'YYYY.MM.DD') --exclude all employees who were hired on or after 11/1/16
--AND ((ASS.ACTION_CODE NOT in ('REHIRE')) OR (ASS.ACTION_CODE in ('REHIRE') AND TRUNC(ASS.EFFECTIVE_START_DATE ) <= TO_DATE('2015.10.31', 'YYYY.MM.DD')))
AND TRUNC(sysdate)  BETWEEN PER1.EFFECTIVE_START_DATE(+) AND PER1.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 JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND NOT EXISTS (SELECT 'X' FROM HRG_GOALS GoalR9, PER_ALL_PEOPLE_F PER, HRG_GOAL_PLAN_GOALS GoalPln, HRG_GOAL_PLANS_VL GoalPlan
WHERE GoalR9.PERSON_ID = PER.PERSON_ID
AND GoalR9.GOAL_TYPE_CODE = 'PERFORMANCE'
AND GoalR9.STATUS_CODE NOT IN ('CANCEL')
AND GoalR9.GOAL_VERSION_TYPE_CODE NOT IN ('FROZEN')
AND GoalR9.GOAL_ID = GoalPln.GOAL_ID
AND GoalPln.GOAL_PLAN_ID = GoalPlan.GOAL_PLAN_ID
AND GoalPlan.GOAL_PLAN_NAME IN ('2016 Goal Plan','Default Goal Plan -  , Inc.')
AND TRUNC(GoalR9.START_DATE) > TO_DATE('2015.12.31', 'YYYY.MM.DD')
AND (GoalR9.APPROVAL_STATUS_CODE IS NULL OR GoalR9.APPROVAL_STATUS_CODE <> 'DRAFT')
AND TRUNC(sysdate)  BETWEEN PER.EFFECTIVE_START_DATE(+) AND PER.EFFECTIVE_END_DATE(+)
--AND TRUNC(sysdate)  BETWEEN GoalPln.EFFECTIVE_START_DATE(+) and GoalPln.EFFECTIVE_END_DATE(+)
AND PER.person_id = PER1.person_id)

order by 1

----------

--CC Goals weight Summary Updated

select distinct PER.PERSON_NUMBER AS EMPLID,
NAME.DISPLAY_NAME AS EMPL_NAME,
--GoalR9.GOAL_ID AS GOAL_ID,
GoalR9.GOAL_TYPE_CODE AS GOAL_TYPE,
GoalPlan.GOAL_PLAN_NAME AS GOAL_PLAN_NAME,
SUM((SELECT WEIGHTING  FROM HRG_GOAL_PLAN_GOALS WHERE  GOAL_ID = GoalR9.GOAL_ID AND ((TRUNC(sysdate) BETWEEN EFFECTIVE_START_DATE and EFFECTIVE_END_DATE) or 1=1))) AS WEIGHT,
ED.EMAIL_ADDRESS as EMPLOYEE_EMAIL_ID,      
NA1.DISPLAY_NAME AS MANAGER_NAME ,
ED2.EMAIL_ADDRESS  as MANAGER_EMAIL_ID

from HRG_GOALS GoalR9,
     PER_ALL_PEOPLE_F PER,
     PER_ALL_ASSIGNMENTS_M ASS,
     PER_PERSON_NAMES_F NAME,
     PER_EMAIL_ADDRESSES ED,
     PER_PERSON_NAMES_F NA1 ,
     PER_ASSIGNMENT_SUPERVISORS_F SUP,
     PER_EMAIL_ADDRESSES ED2 ,
     PER_ALL_PEOPLE_F PERSUP,
     PER_PERIODS_OF_SERVICE POS,
     PER_JOBS JOB,
     HRG_GOAL_PLAN_GOALS GoalPln,
     HRG_GOAL_PLANS_VL GoalPlan

where 1=1
AND NAME.NAME_TYPE='GLOBAL' 
AND PER.person_id=GoalR9.PERSON_ID(+)
AND GoalR9.PERSON_ID  = NAME.PERSON_ID(+)
AND ASS.ASSIGNMENT_TYPE IN ('E')
--AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)  FROM PER_ASSIGNMENT_SECURED_LIST_V
WHERE PERSON_ID=ASS.PERSON_ID
AND ASSIGNMENT_TYPE IN ('E')
AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE' 
--AND HRG_GOALS_R9.ACHIEVED_WEIGHT <> ''
AND GoalR9.STATUS_CODE NOT IN ('CANCEL')
and GoalR9.GOAL_VERSION_TYPE_CODE NOT IN ('FROZEN','MASS_REQ','ORA_REQUIRES_APPROVAL')
AND (GoalR9.APPROVAL_STATUS_CODE IS NULL OR GoalR9.APPROVAL_STATUS_CODE <> 'DRAFT')
AND GoalR9.GOAL_ID = GoalPln.GOAL_ID
AND GoalPln.GOAL_PLAN_ID = GoalPlan.GOAL_PLAN_ID
AND GoalPlan.GOAL_PLAN_NAME IN ('2016 Goal Plan')
and PER.PERSON_ID = ED.PERSON_ID(+) and PER.PRIMARY_EMAIL_ID = ED.email_address_id(+)
and NA1.PERSON_ID = SUP.MANAGER_ID AND NA1.NAME_TYPE = 'GLOBAL' AND SUP.PRIMARY_FLAG(+) = 'Y' AND SUP.MANAGER_TYPE(+) ='LINE_MANAGER'
AND SUP.ASSIGNMENT_ID = ASS.ASSIGNMENT_ID AND SUP.PERSON_ID =ASS.PERSON_ID
AND TRUNC(sysdate) BETWEEN NA1.EFFECTIVE_START_DATE(+) AND NA1.EFFECTIVE_END_DATE(+)
AND TRUNC(sysdate) BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)
and SUP.MANAGER_ID = ED2.PERSON_ID(+)
AND PERSUP.PERSON_ID(+) = SUP.MANAGER_ID
and PERSUP.PRIMARY_EMAIL_ID = ED2.email_address_id
AND TRUNC(sysdate) BETWEEN PERSUP.EFFECTIVE_START_DATE(+) AND PERSUP.EFFECTIVE_END_DATE(+)
AND GoalR9.GOAL_TYPE_CODE = 'PERFORMANCE'
AND PER.PERSON_ID=ASS.PERSON_ID
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 ASS.EFFECTIVE_START_DATE(+) and ASS.EFFECTIVE_END_DATE(+)
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND POS.PERSON_ID=ASS.PERSON_ID
AND POS.PERIOD_OF_SERVICE_ID=ASS.PERIOD_OF_SERVICE_ID
AND JOB.JOB_CODE NOT IN ('UR0901','UR0101','UR0102','US0201')
and ASS.EMPLOYMENT_CATEGORY not IN ('PT','FT') -- interns/Temporary
AND POS.PROJECTED_TERMINATION_DATE IS NULL -- Not to include fixed term employees
AND TRUNC(GoalR9.START_DATE) > TO_DATE('2015.12.31', 'YYYY.MM.DD')
--AND TRUNC(POS.ORIGINAL_DATE_OF_HIRE ) <= TO_DATE('2015.10.31', 'YYYY.MM.DD') -- exclude all employees who were hired on or after 11/1/16
--AND ((ASS.ACTION_CODE NOT in ('REHIRE')) OR (ASS.ACTION_CODE in ('REHIRE') AND TRUNC(ASS.EFFECTIVE_START_DATE ) <= TO_DATE('2015.10.31', 'YYYY.MM.DD')))
AND TRUNC(sysdate)  BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
--AND TRUNC(sysdate)  BETWEEN GoalPln.EFFECTIVE_START_DATE(+) and GoalPln.EFFECTIVE_END_DATE(+)
GROUP BY  PER.PERSON_NUMBER, NAME.DISPLAY_NAME,
GoalR9.GOAL_TYPE_CODE,GoalPlan.GOAL_PLAN_NAME, ED.EMAIL_ADDRESS,NA1.DISPLAY_NAME,ED2.EMAIL_ADDRESS

UNION
select distinct PER.PERSON_NUMBER AS EMPLID,
NAME.DISPLAY_NAME AS EMPL_NAME,
--GoalR9.GOAL_ID ,
'N/A' AS GOAL_TYPE,
'N/A' AS GOAL_PLAN_NAME,
0 AS WEIGHT,ED.EMAIL_ADDRESS as EMPLOYEE_EMAIL_ID,      
NA1.DISPLAY_NAME AS MANAGER_NAME ,
ED2.EMAIL_ADDRESS  as MANAGER_EMAIL_ID
from HRG_GOALS GoalR9,
     PER_ALL_PEOPLE_F PER,
     PER_ALL_ASSIGNMENTS_M ASS,
     PER_PERSON_NAMES_F NAME,
     PER_EMAIL_ADDRESSES ED,
     PER_PERSON_NAMES_F NA1 ,
     PER_ASSIGNMENT_SUPERVISORS_F SUP,
     PER_EMAIL_ADDRESSES ED2 ,
     PER_ALL_PEOPLE_F PERSUP,
     PER_PERIODS_OF_SERVICE POS,
     PER_JOBS JOB,
     HRG_GOAL_PLAN_GOALS GoalPln,
     HRG_GOAL_PLANS_VL GoalPlan

where 1=1
AND NAME.NAME_TYPE='GLOBAL' 
AND PER.person_id=GoalR9.PERSON_ID(+)
AND GoalR9.PERSON_ID  = NAME.PERSON_ID(+)
AND ASS.ASSIGNMENT_TYPE IN ('E')
--AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)  FROM PER_ASSIGNMENT_SECURED_LIST_V
WHERE PERSON_ID=ASS.PERSON_ID
AND ASSIGNMENT_TYPE IN ('E')
AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE' 
--AND HRG_GOALS_R9.ACHIEVED_WEIGHT <> ''
AND GoalR9.STATUS_CODE NOT IN ('CANCEL')
and GoalR9.GOAL_VERSION_TYPE_CODE IN ('ORA_REQUIRES_APPROVAL')
--AND (GoalR9.APPROVAL_STATUS_CODE IS NULL OR GoalR9.APPROVAL_STATUS_CODE <> 'DRAFT')
AND GoalR9.GOAL_ID = GoalPln.GOAL_ID
AND GoalPln.GOAL_PLAN_ID = GoalPlan.GOAL_PLAN_ID
AND GoalPlan.GOAL_PLAN_NAME IN ('2016 Goal Plan','Default Goal Plan -  , Inc.')
and PER.PERSON_ID = ED.PERSON_ID(+) and PER.PRIMARY_EMAIL_ID = ED.email_address_id(+)
and NA1.PERSON_ID = SUP.MANAGER_ID AND NA1.NAME_TYPE = 'GLOBAL' AND SUP.PRIMARY_FLAG(+) = 'Y' AND SUP.MANAGER_TYPE(+) ='LINE_MANAGER'
AND SUP.ASSIGNMENT_ID = ASS.ASSIGNMENT_ID AND SUP.PERSON_ID =ASS.PERSON_ID
AND TRUNC(sysdate) BETWEEN NA1.EFFECTIVE_START_DATE(+) AND NA1.EFFECTIVE_END_DATE(+)
AND TRUNC(sysdate) BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)
and SUP.MANAGER_ID = ED2.PERSON_ID(+)
AND PERSUP.PERSON_ID(+) = SUP.MANAGER_ID
and PERSUP.PRIMARY_EMAIL_ID = ED2.email_address_id
AND TRUNC(sysdate) BETWEEN PERSUP.EFFECTIVE_START_DATE(+) AND PERSUP.EFFECTIVE_END_DATE(+)
AND GoalR9.GOAL_TYPE_CODE = 'PERFORMANCE'
AND PER.PERSON_ID=ASS.PERSON_ID
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 ASS.EFFECTIVE_START_DATE(+) and ASS.EFFECTIVE_END_DATE(+)
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND POS.PERSON_ID=ASS.PERSON_ID
AND POS.PERIOD_OF_SERVICE_ID=ASS.PERIOD_OF_SERVICE_ID
AND JOB.JOB_CODE NOT IN ('UR0901','UR0101','UR0102','US0201')
and ASS.EMPLOYMENT_CATEGORY not IN ('PT','FT') -- interns/Temporary
AND POS.PROJECTED_TERMINATION_DATE IS NULL -- Not to include fixed term employees
AND TRUNC(GoalR9.START_DATE) > TO_DATE('2015.12.31', 'YYYY.MM.DD')
--AND TRUNC(POS.ORIGINAL_DATE_OF_HIRE ) <= TO_DATE('2015.10.31', 'YYYY.MM.DD') -- exclude all employees who were hired on or after 11/1/16
--AND ((ASS.ACTION_CODE NOT in ('REHIRE')) OR (ASS.ACTION_CODE in ('REHIRE') AND TRUNC(ASS.EFFECTIVE_START_DATE ) <= TO_DATE('2015.10.31', 'YYYY.MM.DD')))
AND TRUNC(sysdate)  BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
--AND TRUNC(sysdate)  BETWEEN GoalPln.EFFECTIVE_START_DATE(+) and GoalPln.EFFECTIVE_END_DATE(+)

AND not exists (SELECT 'X' FROM HRG_GOALS GoalR9, PER_ALL_PEOPLE_F PER1, HRG_GOAL_PLAN_GOALS GoalPln, HRG_GOAL_PLANS_VL GoalPlan
WHERE GoalR9.PERSON_ID = PER1.PERSON_ID
AND GoalR9.GOAL_TYPE_CODE = 'PERFORMANCE'
AND GoalR9.GOAL_ID = GoalPln.GOAL_ID
AND GoalPln.GOAL_PLAN_ID = GoalPlan.GOAL_PLAN_ID
and GoalR9.GOAL_VERSION_TYPE_CODE IN ('ACTIVE','PENDING_APPROVAL')
AND (GoalR9.APPROVAL_STATUS_CODE IS NULL OR GoalR9.APPROVAL_STATUS_CODE <> 'DRAFT')
AND GoalPlan.GOAL_PLAN_NAME IN ('2016 Goal Plan')
AND TRUNC(sysdate)  BETWEEN PER1.EFFECTIVE_START_DATE(+) AND PER1.EFFECTIVE_END_DATE(+)
--AND TRUNC(sysdate)  BETWEEN GoalPln.EFFECTIVE_START_DATE(+) and GoalPln.EFFECTIVE_END_DATE(+)
AND PER1.person_id = PER.person_id)
GROUP BY  PER.PERSON_NUMBER, NAME.DISPLAY_NAME,
GoalR9.GOAL_TYPE_CODE,GoalPlan.GOAL_PLAN_NAME, ED.EMAIL_ADDRESS,NA1.DISPLAY_NAME,ED2.EMAIL_ADDRESS

UNION

select DISTINCT PER.PERSON_NUMBER AS EMPLID,
NAME.DISPLAY_NAME AS EMPL_NAME,
--GoalR9.GOAL_ID ,
'N/A' AS GOAL_TYPE,
'N/A' AS GOAL_PLAN_NAME,
0 AS WEIGHT,
ED.EMAIL_ADDRESS as EMPLOYEE_EMAIL_ID,      
(SELECT DISTINCT DISPLAY_NAME FROM PER_PERSON_NAMES_F NA WHERE SUP.MANAGER_ID=NA.PERSON_ID AND NAME_TYPE = 'GLOBAL' AND TRUNC(SYSDATE) BETWEEN NA.EFFECTIVE_START_DATE AND NA.EFFECTIVE_END_DATE) AS MANAGER_NAME ,
(SELECT DISTINCT ED2.EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES ED2, PER_ALL_PEOPLE_F PERSUP WHERE 1=1 and SUP.MANAGER_ID = ED2.PERSON_ID(+) AND PERSUP.PERSON_ID(+) = SUP.MANAGER_ID
and PERSUP.PRIMARY_EMAIL_ID = ED2.email_address_id AND TRUNC(sysdate) BETWEEN PERSUP.EFFECTIVE_START_DATE(+) AND PERSUP.EFFECTIVE_END_DATE(+)) as MANAGER_EMAIL_ID


from --HRG_GOALS GoalR9,
     PER_ALL_PEOPLE_F PER,
     PER_ALL_ASSIGNMENTS_M ASS,
     PER_PERSON_NAMES_F NAME,
     PER_EMAIL_ADDRESSES ED,
     --PER_PERSON_NAMES_F NA1 ,
     PER_ASSIGNMENT_SUPERVISORS_F SUP,
     --PER_EMAIL_ADDRESSES ED2 ,
     --PER_ALL_PEOPLE_F PERSUP,
     PER_PERIODS_OF_SERVICE POS,
     PER_JOBS JOB

where 1=1
AND NAME.NAME_TYPE='GLOBAL' 
--AND PER.person_id=GoalR9.PERSON_ID(+)
--AND GoalR9.PERSON_ID  = NAME.PERSON_ID(+)
AND PER.person_id=NAME.PERSON_ID(+)
AND ASS.ASSIGNMENT_TYPE IN ('E')
--AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)  FROM PER_ASSIGNMENT_SECURED_LIST_V
WHERE PERSON_ID=ASS.PERSON_ID
AND ASSIGNMENT_TYPE IN ('E')
AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE' 
--AND HRG_GOALS_R9.ACHIEVED_WEIGHT <> ''
--AND (GoalR9.APPROVAL_STATUS_CODE IS NULL OR GoalR9.APPROVAL_STATUS_CODE <> 'DRAFT')
and PER.PERSON_ID = ED.PERSON_ID(+) and PER.PRIMARY_EMAIL_ID = ED.email_address_id(+)
--and NA1.PERSON_ID = SUP.MANAGER_ID AND NA1.NAME_TYPE = 'GLOBAL' AND SUP.PRIMARY_FLAG(+) = 'Y'
and SUP.MANAGER_TYPE(+) ='LINE_MANAGER'
AND SUP.ASSIGNMENT_ID(+) = ASS.ASSIGNMENT_ID AND SUP.PERSON_ID(+) =ASS.PERSON_ID
--AND TRUNC(sysdate) BETWEEN NA1.EFFECTIVE_START_DATE(+) AND NA1.EFFECTIVE_END_DATE(+)
AND TRUNC(sysdate) BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)
--and SUP.MANAGER_ID = ED2.PERSON_ID(+)
--AND PERSUP.PERSON_ID(+) = SUP.MANAGER_ID
--and PERSUP.PRIMARY_EMAIL_ID = ED2.email_address_id
--AND TRUNC(sysdate) BETWEEN PERSUP.EFFECTIVE_START_DATE(+) AND PERSUP.EFFECTIVE_END_DATE(+)
--AND GoalR9.GOAL_TYPE_CODE = 'PERFORMANCE'
AND PER.PERSON_ID=ASS.PERSON_ID
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 ASS.EFFECTIVE_START_DATE(+) and ASS.EFFECTIVE_END_DATE(+)
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND POS.PERSON_ID=ASS.PERSON_ID
AND POS.PERIOD_OF_SERVICE_ID=ASS.PERIOD_OF_SERVICE_ID
AND JOB.JOB_CODE NOT IN ('UR0901','UR0101','UR0102','US0201')
and ASS.EMPLOYMENT_CATEGORY not IN ('PT','FT') -- interns/Temporary
AND POS.PROJECTED_TERMINATION_DATE IS NULL -- Not to include fixed term employees

--AND TRUNC(POS.ORIGINAL_DATE_OF_HIRE ) <= TO_DATE('2015.10.31', 'YYYY.MM.DD') -- exclude all employees who were hired on or after 11/1/16
--AND ((ASS.ACTION_CODE NOT in ('REHIRE')) OR (ASS.ACTION_CODE in ('REHIRE') AND TRUNC(ASS.EFFECTIVE_START_DATE ) <= TO_DATE('2015.10.31', 'YYYY.MM.DD')))
AND TRUNC(sysdate)  BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND NOT EXISTS (SELECT 'X' FROM HRG_GOALS GoalR9, PER_ALL_PEOPLE_F PER1, HRG_GOAL_PLAN_GOALS GoalPln, HRG_GOAL_PLANS_VL GoalPlan
WHERE GoalR9.PERSON_ID = PER1.PERSON_ID
AND GoalR9.GOAL_TYPE_CODE = 'PERFORMANCE'
and GoalR9.GOAL_VERSION_TYPE_CODE NOT IN ('FROZEN','MASS_REQ','ORA_REQUIRES_APPROVAL')
AND GoalR9.GOAL_ID = GoalPln.GOAL_ID
AND GoalPln.GOAL_PLAN_ID = GoalPlan.GOAL_PLAN_ID
AND (GoalR9.APPROVAL_STATUS_CODE IS NULL OR GoalR9.APPROVAL_STATUS_CODE <> 'DRAFT')
AND GoalPlan.GOAL_PLAN_NAME IN ('2016 Goal Plan')--,'Default Goal Plan -  , Inc.')
AND TRUNC(sysdate)  BETWEEN PER1.EFFECTIVE_START_DATE(+) AND PER1.EFFECTIVE_END_DATE(+)
--AND TRUNC(sysdate)  BETWEEN GoalPln.EFFECTIVE_START_DATE(+) and GoalPln.EFFECTIVE_END_DATE(+)
AND PER1.person_id = PER.person_id)
ORDER BY 1


----------


--CC Fixed Term DM

SELECT distinct
PER.PERSON_NUMBER AS EMPLID,
NAME.DISPLAY_NAME AS NAME,
TO_CHAR(PPS.PROJECTED_TERMINATION_DATE ,'MM/DD/YYYY') AS PROJECTED_TERMINATION_DATE,
ASS.ASSIGNMENT_STATUS_TYPE AS HR_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,
TO_CHAR(PPS.DATE_START ,'MM/DD/YYYY') AS LAST_START_DATE,
ASS.ASS_ATTRIBUTE4 AS BUSINESS_TITLE,
LOC.INTERNAL_LOCATION_CODE AS PHYSICAL_LOC,
 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.NORMAL_HOURS AS STANDARD_HOURS,
ASS.ASS_ATTRIBUTE3 AS BENEFITS_CLASS

FROM
PER_ALL_PEOPLE_F PER,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PERIODS_OF_SERVICE PPS,
PER_PERSON_NAMES_F NAME,
HR_LOCATIONS_ALL LOC

WHERE 1=1 
AND NAME.NAME_TYPE='GLOBAL'
AND per.person_id=ASS.PERSON_ID(+)
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.LOCATION_ID=LOC.LOCATION_ID(+)
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 ASSIGNMENT_TYPE IN ('E','C')
AND EFFECTIVE_START_DATE = ASS.EFFECTIVE_START_DATE AND ASSIGNMENT_TYPE = ASS.ASSIGNMENT_TYPE )
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND PPS.PROJECTED_TERMINATION_DATE IS NOT NULL
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
order by PER.PERSON_NUMBER

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


--CC Contingent wrk DM

SELECT distinct

PER.PERSON_NUMBER AS EMPID,
NAME.LAST_NAME,
NAME.FIRST_NAME,
CASE WHEN ASS.SYSTEM_PERSON_TYPE IN ('CWK') THEN 'Contingent Worker'
WHEN  ASS.SYSTEM_PERSON_TYPE IN ('EMP') THEN 'Employee' else ' ' end AS PERSON_TYPE,
PA.USER_STATUS AS ASSIGNMENT_STATUS,
ASS.ASSIGNMENT_STATUS_TYPE AS HR_STATUS,

(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 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 HR_DIVISION,
DEP.NAME AS DEPT_NAME,
LOC.INTERNAL_LOCATION_CODE AS PHYSICAL_LOC,
--LOC.LOCATION_NAME ,
--JOB.JOB_CODE ,
(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 MANAGER_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 MANAGER_NAME,

TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS ORIGINAL_DATE_OF_HIRE,
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','HIRE_ADD_WORK_RELATION','MANAGER_CHANGE','ADD_A_CONTINGENT_WORKER','ADD_CWK')  ),'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, */
TO_CHAR(PPS.DATE_START,'MM/DD/YYYY') AS LATEST_HIRE_DATE

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,
HR_LOCATIONS_ALL LOC,
PER_ASSIGNMENT_STATUS_TYPES_VL PA,
PER_PERIODS_OF_SERVICE PPS,
PER_JOBS_F_VL JOB

where

PER.PERSON_ID=ASS.PERSON_ID
AND MAN.MANAGER_TYPE(+) ='LINE_MANAGER'
--AND PER.PERSON_NUMBER in  ('500020','500021','500022','503063','503033','999113')
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 ASS.LOCATION_ID = LOC.LOCATION_ID(+)
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND ASS.ASSIGNMENT_TYPE IN ('C')
--AND JOB.JOB_CODE IN ('UR0101','UR0102','UR0901','US0201')
AND ASS.ASSIGNMENT_STATUS_TYPE = 'ACTIVE'
AND ASS.PERSON_ID =PPS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND
                                 ASSIGNMENT_TYPE IN ('C') AND EFFECTIVE_LATEST_CHANGE= 'Y' AND EFFECTIVE_START_DATE = ASS.EFFECTIVE_START_DATE)
AND PA.ASSIGNMENT_STATUS_TYPE_ID(+)=ASS.ASSIGNMENT_STATUS_TYPE_ID


-- AND ASS.EFFECTIVE_START_DATE BETWEEN :DATE_FROM AND :DATE_TO
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 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 JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PA.START_DATE(+) AND NVL(PA.END_DATE,TO_DATE('4712.01.01', 'YYYY.MM.DD'))
order by PER.PERSON_NUMBER

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

--CC Abs2_dtl_DM

SELECT acc.employee_id
      ,acc.employee_name
  ,acc.employee_status
  ,acc.termination_date
  ,acc.date_of_hire
  ,acc.department_code
  ,acc.location_code
  ,acc.location_name
  --,acc.currency
  --,acc.hourly_rate
  --,acc.rate_accrued_time
  ,acc.legal_entity
  ,acc.plan_name
  ,case  when acc.plan_name in ('PTO   Hourly','PTO US Student Services Hourly(non-CA)','PTO CC Hourly','PTO CC CA Hourly','PTO   PT Hourly') then
  ROUND((SUM(acc.accrued)), 3)
  else
  ROUND((SUM(acc.accrued)*8), 3) end AS accrued
  ,case  when acc.plan_name in ('PTO   Hourly','PTO US Student Services Hourly(non-CA)','PTO CC Hourly','PTO CC CA Hourly','PTO   PT Hourly') then
  ROUND((SUM(acc.used)), 3)
  else
  ROUND((SUM(acc.used)*8), 3) end AS used
  ,case  when acc.plan_name in ('PTO   Hourly','PTO US Student Services Hourly(non-CA)','PTO CC Hourly','PTO CC CA Hourly','PTO   PT Hourly') then
  ROUND((SUM(acc.adjustments)), 3)
  else
  ROUND((SUM(acc.adjustments)*8), 3) end AS adjustments
  ,case  when acc.plan_name in ('PTO   Hourly','PTO US Student Services Hourly(non-CA)','PTO CC Hourly','PTO CC CA Hourly','PTO   PT Hourly') then
  ROUND((SUM(acc.Carryover)), 3)
  else
  ROUND((SUM(acc.Carryover)*8), 3) end AS Carryover
  ,case  when acc.plan_name in ('PTO   Hourly','PTO US Student Services Hourly(non-CA)','PTO CC Hourly','PTO CC CA Hourly','PTO   PT Hourly') then
  ROUND((SUM(acc.accrued + acc.adjustments + acc.Carryover -acc.used)), 3)
  else
  ROUND((SUM(acc.accrued + acc.adjustments + acc.Carryover -acc.used)*8), 3) end AS end_balance
         /*
  ,ROUND((SUM(acc.accrued)*8), 3) AS accrued
          ,ROUND((SUM(acc.used)*8), 3) AS used
  ,ROUND((SUM(acc.adjustments)*8), 3) AS adjustments 
  ,ROUND((SUM(acc.Carryover)*8), 3) AS Carryover
  ,ROUND((SUM(acc.accrued + acc.adjustments + acc.Carryover -acc.used)*8), 3) AS end_balance
*/
  ,acc.dept_description
  ,acc.run_date
  ,acc.carryovereligible
 
FROM (

SELECT pno.person_number AS employee_id
      ,name.full_name AS employee_name
  ,assign.assignment_status_type AS employee_status
  ,TO_CHAR(pos.actual_termination_date,'MM/DD/YYYY') AS termination_date
  ,TO_CHAR(POS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS date_of_hire
  ,SUBSTR(dept.name,INSTR(dept.name,'__',1)+2) AS department_code
  ,loc.internal_location_code AS location_code
  ,loc.location_name
  ,sal.local_currency AS currency
,ROUND((CASE WHEN SLA.SALARY_BASIS_CODE IN ('HOURLY')
              THEN ROUND(CM.SALARY_AMOUNT,2)
                  WHEN SLA.SALARY_BASIS_CODE NOT IN ('HOURLY') AND assign.LEGISLATION_CODE IN ('US','CA')
  THEN ROUND(((CM.SALARY_AMOUNT * SALARY_ANNUALIZATION_FACTOR )/(2080 * SALARY_ANNUALIZATION_FACTOR)),2)
                  WHEN SLA.SALARY_BASIS_CODE NOT IN ('HOURLY') AND assign.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 )/(2080 * SALARY_ANNUALIZATION_FACTOR)),2)
                  WHEN SLA.SALARY_BASIS_CODE NOT IN ('HOURLY') AND assign.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 )/(2253.33 * SALARY_ANNUALIZATION_FACTOR)),2)
                  WHEN SLA.SALARY_BASIS_CODE NOT IN ('HOURLY') AND assign.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 )/(2426.67 * SALARY_ANNUALIZATION_FACTOR)),2)
                  ELSE 0
  END),2) AS hourly_rate

  ,ROUND(((CASE WHEN sla.salary_basis_code in ('HOURLY','MONTHLY','ANNUAL')
                THEN (cm.salary_amount * salary_annualization_factor)/2080
                    WHEN sla.salary_basis_code = 'PERIOD'
THEN (cm.salary_amount*26)/2080
   END) ),2 ) AS rate_accrued_time
  ,ple.name AS legal_entity
  ,abp.name AS plan_name
  ,DECODE(hl.meaning, 'Periodic accruals', apc.value, 'Annual accrual', apc.value, 0) AS accrued                   
          ,DECODE(hl.meaning, 'Absences', ABS(apc.value), 0) AS used        
  ,DECODE(hl.meaning, 'Other adjustments', apc.value, 0) AS adjustments
  ,DECODE(hl.meaning, 'Carryover', apc.value, 0) AS Carryover
  ,CASE WHEN SUBSTR(depts.name,1,INSTR(depts.name,'__',1)-1) IS NOT NULL THEN SUBSTR(depts.name,1,INSTR(depts.name,'__',1)-1) ELSE depts.name END AS dept_description
  ,TO_CHAR(trunc(sysdate),'MM/DD/YYYY') AS run_date
  ,CASE WHEN apf.carry_over_flat_amt = '0' THEN 'NO' ELSE 'YES' END AS carryovereligible
  FROM per_person_secured_list_v      pno
      ,per_person_names_f             name
  ,per_assignment_secured_list_v  assign
  ,per_periods_of_service         pos
  ,hr_all_organization_units_f_vl dept
  ,per_departments                depts
  ,hr_locations_all               loc
  ,cmp_salary                     cm
  ,cmp_salary_v                   sal
  ,cmp_salary_bases               sla
  ,per_legal_employers            ple
  -- accruals
  ,anc_per_acrl_entry_dtls        apc
  ,anc_absence_plans_f_tl         abp
  ,anc_absence_plans_f            apf
  ,hcm_lookups                    hl  
 WHERE 1 = 1   and abp.name not in ('Carryover Plan','Personal Days')
               -- and abp.name not like 'PTO CC%'
   AND name.name_type              = 'GLOBAL'
   AND assign.assignment_type IN ('E') 
   AND trunc(sysdate) BETWEEN pno.effective_start_date AND pno.effective_end_date
   AND assign.person_id            = pno.person_id
   AND trunc(sysdate) BETWEEN name.effective_start_date AND name.effective_end_date
   AND assign.person_id            = name.person_id
   AND trunc(sysdate) BETWEEN assign.effective_start_date AND assign.effective_end_date
   AND pos.period_of_service_id(+) = assign.period_of_service_id
   AND pos.person_id(+)            = assign.person_id
   AND trunc(sysdate) BETWEEN dept.effective_start_date(+) AND dept.effective_end_date(+)
   AND assign.organization_id      = dept.organization_id(+)
   AND trunc(sysdate) BETWEEN loc.effective_start_date(+) AND loc.effective_end_date(+)
   AND assign.location_id          = loc.location_id(+)
   AND trunc(sysdate) BETWEEN cm.date_from AND cm.date_to
   AND sal.salary_basis_id         = cm.salary_basis_id
   AND sal.salary_basis_id         = sla.salary_basis_id
   AND assign.assignment_id=cm.assignment_id
   AND trunc(sysdate) BETWEEN sal.date_from(+) AND sal.date_to(+)
   AND assign.assignment_id        = sal.assignment_id(+)
   AND assign.legal_entity_id      = ple.organization_id(+)
   AND trunc(sysdate) BETWEEN ple.effective_start_date(+) AND ple.effective_end_date(+)
   AND assign.organization_id=depts.organization_id(+)
   AND trunc(sysdate) BETWEEN depts.effective_start_date(+) AND depts.effective_end_date(+)
   AND assign.assignment_sequence  = (SELECT DISTINCT MAX(assignment_sequence)
                                        FROM per_all_assignments_m
   WHERE person_id = pno.person_id
     AND assignment_type IN ('E'))
   AND ((assign.assignment_status_type IN ('ACTIVE'))
        OR ((pos.actual_termination_date) BETWEEN TRUNC(TO_DATE(SYSDATE-1),'YEAR') AND (ADD_MONTHS(trunc(sysdate,'YEAR'),12)-1)))
   -- accruals
   AND apc.person_id               = pno.person_id
   --AND pno.person_number in ('001015','991266')
   and  (SUBSTR(SUBSTR(dept.name,INSTR(dept.name,'__',1)+2),7,3 ) in ('183','184','185','202','204','238','239','508','540','552','559'))
   AND apc.pl_id                   = abp.absence_plan_id
   AND trunc(sysdate) BETWEEN abp.effective_start_date AND abp.effective_end_date
   AND apf.absence_plan_id         = abp.absence_plan_id
   AND trunc(sysdate) BETWEEN apf.effective_start_date AND apf.effective_end_date
   AND (ABP.LANGUAGE               = 'US' OR ABP.LANGUAGE IS NULL)
   AND apc.type                    = hl.lookup_code
   AND hl.lookup_type              = 'ANC_ACCRUAL_ENTRY_TYPE'
  AND apc.procd_date BETWEEN TRUNC(TO_DATE(TO_CHAR(trunc(sysdate),'MM/DD/YYYY'),'MM/DD/YYYY'),'YEAR') AND trunc(sysdate)
   ) acc
WHERE 1=1 and (acc.accrued != 0  OR acc.used != 0 OR  acc.Carryover != 0 ) 
GROUP BY acc.employee_id
      ,acc.employee_name
  ,acc.employee_status
  ,acc.termination_date
  ,acc.date_of_hire
  ,acc.department_code
  ,acc.location_code
  ,acc.location_name
  ,acc.currency
  ,acc.hourly_rate
  ,acc.rate_accrued_time
  ,acc.legal_entity
  ,acc.plan_name
      ,acc.dept_description
  ,acc.run_date
  ,acc.carryovereligible 
ORDER BY acc.employee_id


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

--CC abs1 details

SELECT acc.employee_id
      ,acc.employee_name
  ,acc.employee_status
  ,acc.termination_date
  ,acc.date_of_hire
  ,acc.department_code
  ,acc.location_code
  ,acc.location_name
  --,acc.currency
  --,acc.hourly_rate
  --,acc.rate_accrued_time
  ,acc.legal_entity
  ,acc.plan_name
  ,case  when acc.plan_name in ('PTO   Hourly','PTO US Student Services Hourly(non-CA)','PTO CC Hourly','PTO CC CA Hourly','PTO   PT Hourly') then
  ROUND((SUM(acc.accrued)), 3)
  else
  ROUND((SUM(acc.accrued)*8), 3) end AS accrued
  ,case  when acc.plan_name in ('PTO   Hourly','PTO US Student Services Hourly(non-CA)','PTO CC Hourly','PTO CC CA Hourly','PTO   PT Hourly') then
  ROUND((SUM(acc.used)), 3)
  else
  ROUND((SUM(acc.used)*8), 3) end AS used
  ,case  when acc.plan_name in ('PTO   Hourly','PTO US Student Services Hourly(non-CA)','PTO CC Hourly','PTO CC CA Hourly','PTO   PT Hourly') then
  ROUND((SUM(acc.adjustments)), 3)
  else
  ROUND((SUM(acc.adjustments)*8), 3) end AS adjustments
  ,case  when acc.plan_name in ('PTO   Hourly','PTO US Student Services Hourly(non-CA)','PTO CC Hourly','PTO CC CA Hourly','PTO   PT Hourly') then
  ROUND((SUM(acc.Carryover)), 3)
  else
  ROUND((SUM(acc.Carryover)*8), 3) end AS Carryover
  ,case  when acc.plan_name in ('PTO   Hourly','PTO US Student Services Hourly(non-CA)','PTO CC Hourly','PTO CC CA Hourly','PTO   PT Hourly') then
  ROUND((SUM(acc.accrued + acc.adjustments + acc.Carryover -acc.used)), 3)
  else
  ROUND((SUM(acc.accrued + acc.adjustments + acc.Carryover -acc.used)*8), 3) end AS end_balance
         /*
  ,ROUND((SUM(acc.accrued)*8), 3) AS accrued
          ,ROUND((SUM(acc.used)*8), 3) AS used
  ,ROUND((SUM(acc.adjustments)*8), 3) AS adjustments 
  ,ROUND((SUM(acc.Carryover)*8), 3) AS Carryover
  ,ROUND((SUM(acc.accrued + acc.adjustments + acc.Carryover -acc.used)*8), 3) AS end_balance
*/
  ,acc.dept_description
  ,acc.run_date
  ,acc.carryovereligible
 
FROM (

SELECT pno.person_number AS employee_id
      ,name.full_name AS employee_name
  ,assign.assignment_status_type AS employee_status
  ,TO_CHAR(pos.actual_termination_date,'MM/DD/YYYY') AS termination_date
  ,TO_CHAR(POS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS date_of_hire
  ,SUBSTR(dept.name,INSTR(dept.name,'__',1)+2) AS department_code
  ,loc.internal_location_code AS location_code
  ,loc.location_name
  ,sal.local_currency AS currency
,ROUND((CASE WHEN SLA.SALARY_BASIS_CODE IN ('HOURLY')
              THEN ROUND(CM.SALARY_AMOUNT,2)
                  WHEN SLA.SALARY_BASIS_CODE NOT IN ('HOURLY') AND assign.LEGISLATION_CODE IN ('US','CA')
  THEN ROUND(((CM.SALARY_AMOUNT * SALARY_ANNUALIZATION_FACTOR )/(2080 * SALARY_ANNUALIZATION_FACTOR)),2)
                  WHEN SLA.SALARY_BASIS_CODE NOT IN ('HOURLY') AND assign.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 )/(2080 * SALARY_ANNUALIZATION_FACTOR)),2)
                  WHEN SLA.SALARY_BASIS_CODE NOT IN ('HOURLY') AND assign.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 )/(2253.33 * SALARY_ANNUALIZATION_FACTOR)),2)
                  WHEN SLA.SALARY_BASIS_CODE NOT IN ('HOURLY') AND assign.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 )/(2426.67 * SALARY_ANNUALIZATION_FACTOR)),2)
                  ELSE 0
  END),2) AS hourly_rate

  ,ROUND(((CASE WHEN sla.salary_basis_code in ('HOURLY','MONTHLY','ANNUAL')
                THEN (cm.salary_amount * salary_annualization_factor)/2080
                    WHEN sla.salary_basis_code = 'PERIOD'
THEN (cm.salary_amount*26)/2080
   END) ),2 ) AS rate_accrued_time
  ,ple.name AS legal_entity
  ,abp.name AS plan_name
  ,DECODE(hl.meaning, 'Periodic accruals', apc.value, 'Annual accrual', apc.value, 0) AS accrued                   
          ,DECODE(hl.meaning, 'Absences', ABS(apc.value), 0) AS used        
  ,DECODE(hl.meaning, 'Other adjustments', apc.value, 0) AS adjustments
  ,DECODE(hl.meaning, 'Carryover', apc.value, 0) AS Carryover
  ,CASE WHEN SUBSTR(depts.name,1,INSTR(depts.name,'__',1)-1) IS NOT NULL THEN SUBSTR(depts.name,1,INSTR(depts.name,'__',1)-1) ELSE depts.name END AS dept_description
  ,TO_CHAR(trunc(sysdate),'MM/DD/YYYY') AS run_date
  ,CASE WHEN apf.carry_over_flat_amt = '0' THEN 'NO' ELSE 'YES' END AS carryovereligible
  FROM per_person_secured_list_v      pno
      ,per_person_names_f             name
  ,per_assignment_secured_list_v  assign
  ,per_periods_of_service         pos
  ,hr_all_organization_units_f_vl dept
  ,per_departments                depts
  ,hr_locations_all               loc
  ,cmp_salary                     cm
  ,cmp_salary_v                   sal
  ,cmp_salary_bases               sla
  ,per_legal_employers            ple
  -- accruals
  ,anc_per_acrl_entry_dtls        apc
  ,anc_absence_plans_f_tl         abp
  ,anc_absence_plans_f            apf
  ,hcm_lookups                    hl  
 WHERE 1 = 1   and abp.name not in ('Carryover Plan','Personal Days')
               -- and abp.name not like 'PTO CC%'
   AND name.name_type              = 'GLOBAL'
   AND assign.assignment_type IN ('E') 
   AND trunc(sysdate) BETWEEN pno.effective_start_date AND pno.effective_end_date
   AND assign.person_id            = pno.person_id
   AND trunc(sysdate) BETWEEN name.effective_start_date AND name.effective_end_date
   AND assign.person_id            = name.person_id
   AND trunc(sysdate) BETWEEN assign.effective_start_date AND assign.effective_end_date
   AND pos.period_of_service_id(+) = assign.period_of_service_id
   AND pos.person_id(+)            = assign.person_id
   AND trunc(sysdate) BETWEEN dept.effective_start_date(+) AND dept.effective_end_date(+)
   AND assign.organization_id      = dept.organization_id(+)
   AND trunc(sysdate) BETWEEN loc.effective_start_date(+) AND loc.effective_end_date(+)
   AND assign.location_id          = loc.location_id(+)
   AND trunc(sysdate) BETWEEN cm.date_from AND cm.date_to
   AND sal.salary_basis_id         = cm.salary_basis_id
   AND sal.salary_basis_id         = sla.salary_basis_id
   AND assign.assignment_id=cm.assignment_id
   AND trunc(sysdate) BETWEEN sal.date_from(+) AND sal.date_to(+)
   AND assign.assignment_id        = sal.assignment_id(+)
   AND assign.legal_entity_id      = ple.organization_id(+)
   AND trunc(sysdate) BETWEEN ple.effective_start_date(+) AND ple.effective_end_date(+)
   AND assign.organization_id=depts.organization_id(+)
   AND trunc(sysdate) BETWEEN depts.effective_start_date(+) AND depts.effective_end_date(+)
   AND assign.assignment_sequence  = (SELECT DISTINCT MAX(assignment_sequence)
                                        FROM per_all_assignments_m
   WHERE person_id = pno.person_id
     AND assignment_type IN ('E'))
   AND ((assign.assignment_status_type IN ('ACTIVE'))
        OR ((pos.actual_termination_date) BETWEEN TRUNC(TO_DATE(SYSDATE-1),'YEAR') AND (ADD_MONTHS(trunc(sysdate,'YEAR'),12)-1)))
   -- accruals
   AND apc.person_id               = pno.person_id
   --AND pno.person_number in ('001015','991266')
   and  (SUBSTR(SUBSTR(dept.name,INSTR(dept.name,'__',1)+2),7,3 ) in ('183','185','508','559'))
   AND apc.pl_id                   = abp.absence_plan_id
   AND trunc(sysdate) BETWEEN abp.effective_start_date AND abp.effective_end_date
   AND apf.absence_plan_id         = abp.absence_plan_id
   AND trunc(sysdate) BETWEEN apf.effective_start_date AND apf.effective_end_date
   AND (ABP.LANGUAGE               = 'US' OR ABP.LANGUAGE IS NULL)
   AND apc.type                    = hl.lookup_code
   AND hl.lookup_type              = 'ANC_ACCRUAL_ENTRY_TYPE'
  AND apc.procd_date BETWEEN TRUNC(TO_DATE(TO_CHAR(trunc(sysdate),'MM/DD/YYYY'),'MM/DD/YYYY'),'YEAR') AND trunc(sysdate)
   ) acc
WHERE 1=1 and (acc.accrued != 0  OR acc.used != 0 OR  acc.Carryover != 0 ) 
GROUP BY acc.employee_id
      ,acc.employee_name
  ,acc.employee_status
  ,acc.termination_date
  ,acc.date_of_hire
  ,acc.department_code
  ,acc.location_code
  ,acc.location_name
  ,acc.currency
  ,acc.hourly_rate
  ,acc.rate_accrued_time
  ,acc.legal_entity
  ,acc.plan_name
      ,acc.dept_description
  ,acc.run_date
  ,acc.carryovereligible 
ORDER BY acc.employee_id


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

--JobChanges_DM

SELECT ASS.PERSON_ID,
LOC.LOCATION_NAME,
ASS.WORK_AT_HOME,
PER.PERSON_NUMBER,
NAME.LAST_NAME,
NAME.FIRST_NAME,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS EFF_DATE,
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 DEPARTMENT,
PA.USER_STATUS,
ASS.ACTION_CODE,
ASS.REASON_CODE,
(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'))) AS REASON_DESC,
SLA.SALARY_BASIS_CODE,
CM.SALARY_AMOUNT AS COMP_RATE,
ROUND(CM.SALARY_AMOUNT * (NVL(SLA.SALARY_ANNUALIZATION_FACTOR,26)),2) AS ANNUAL_RATE,
CM.LOCAL_CURRENCY,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS ASS_START_DATE,
CASE WHEN ((SELECT 1
                  FROM PER_ASSIGNMENT_SECURED_LIST_V
                 WHERE PERSON_ID = ASS.PERSON_ID
                   AND PERIOD_OF_SERVICE_ID = ASS.PERIOD_OF_SERVICE_ID
   AND ASSIGNMENT_TYPE in ('E','C')
   AND ACTION_CODE IN ('HIRE','REHIRE')) = 1) THEN
(SELECT TO_CHAR(MIN(PAA.EFFECTIVE_START_DATE) ,'MM/DD/YYYY')
   FROM PER_ALL_ASSIGNMENTS_M PAA
  WHERE PAA.PERSON_ID(+) = ASS.PERSON_ID
AND PAA.ASSIGNMENT_TYPE in ('E','C')
AND PAA.ASSIGNMENT_SEQUENCE = ASS.ASSIGNMENT_SEQUENCE-1)
ELSE (SELECT TO_CHAR(MIN(DATE_START),'MM/DD/YYYY') FROM PER_PERIODS_OF_SERVICE WHERE PERSON_ID=ASS.PERSON_ID)
END AS LAST_START,

CASE WHEN ((SELECT 1
                  FROM PER_ASSIGNMENT_SECURED_LIST_V
                 WHERE PERSON_ID = ASS.PERSON_ID
                   AND PERIOD_OF_SERVICE_ID = ASS.PERIOD_OF_SERVICE_ID
   AND ASSIGNMENT_TYPE in ('E','C')
   AND EFFECTIVE_LATEST_CHANGE = 'Y'
   AND ACTION_CODE IN ('HIRE','REHIRE')) = 1) THEN
(SELECT TO_CHAR(MAX(PAA.EFFECTIVE_START_DATE) ,'MM/DD/YYYY')
   FROM PER_ALL_ASSIGNMENTS_M PAA
  WHERE PAA.PERSON_ID(+) = ASS.PERSON_ID
AND PAA.ASSIGNMENT_TYPE  in ('E','C')
AND PAA.ASSIGNMENT_SEQUENCE = ASS.ASSIGNMENT_SEQUENCE-1) ELSE '' END AS TERM_DATE,
TO_CHAR(ASS.LAST_UPDATE_DATE,'MM/DD/YYYY HH24:MI') AS LAST_UPDATE_DATE,
ASS.LAST_UPDATED_BY,
LE.NAME AS LEGAL_ENTITY

FROM PER_ASSIGNMENT_SECURED_LIST_V ASS,
HR_LOCATIONS_ALL LOC,
PER_PERSON_NAMES_F NAME,
PER_PERSON_SECURED_LIST_V PER,
HR_ALL_ORGANIZATION_UNITS_F_VL DEPT,
PER_ASSIGNMENT_STATUS_TYPES_VL PA,
CMP_SALARY_BASES SLA,
CMP_SALARY_V CM,
PER_LEGAL_EMPLOYERS LE

WHERE ASS.ASSIGNMENT_TYPE in ('E','C')  and per.PERSON_NUMBER in ('500020','500021','500022','503063','503033')
AND ASS.LEGISLATION_CODE NOT IN ('US')
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.PERSON_ID=PER.PERSON_ID
AND PER.PERSON_ID=NAME.PERSON_ID
AND ASS.LEGAL_ENTITY_ID=LE.ORGANIZATION_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
AND DEPT.ORGANIZATION_ID(+)=ASS.ORGANIZATION_ID
AND PA.ASSIGNMENT_STATUS_TYPE_ID(+)=ASS.ASSIGNMENT_STATUS_TYPE_ID
AND CM.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND CM.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
                                 FROM PER_ASSIGNMENT_SECURED_LIST_V
    WHERE PERSON_ID=ASS.PERSON_ID
  AND ASSIGNMENT_TYPE in ('E','C')
  AND LEGISLATION_CODE NOT IN ('US')
  AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'

AND (TRUNC(ASS.LAST_UPDATE_DATE) BETWEEN :DATE_FROM AND :DATE_TO OR TRUNC(ASS.EFFECTIVE_START_DATE) BETWEEN :DATE_FROM AND :DATE_TO)
AND ASS.EFFECTIVE_START_DATE BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN LE.EFFECTIVE_START_DATE(+)  AND LE.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN NAME.EFFECTIVE_START_DATE AND NAME.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN DEPT.EFFECTIVE_START_DATE(+) AND DEPT.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN PA.START_DATE(+) AND NVL(PA.END_DATE,TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND ASS.EFFECTIVE_START_DATE BETWEEN CM.DATE_FROM(+) AND CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE = 'INACTIVE' THEN CM.DATE_TO+1 ELSE CM.DATE_TO END

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

--CC 401K

SELECT distinct
CASE WHEN BU.NAME = '  Collaborate Canada' THEN '  Canada Inc.' ELSE BU.NAME END AS COMPANY,
PER.PERSON_NUMBER AS EMPID,
NID.NATIONAL_IDENTIFIER_NUMBER AS SSN,
NAME.FIRST_NAME,
NAME.LAST_NAME,
TO_CHAR(PP.DATE_OF_BIRTH,'MM/DD/YYYY') AS DATE_OF_BIRTH,
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 MAX(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','REHIRE','ADD_A_CONTINGENT_WORKER')),'MM/DD/YYYY') AS RECENT_HIRE_DT,

TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS BENEFITS_SERVICE_DT,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DT,
(SELECT LOC.INTERNAL_LOCATION_CODE FROM HR_LOCATIONS_ALL_F_VL  LOC WHERE  LOC.LOCATION_ID = ASS.LOCATION_ID AND TRUNC(sysdate) between LOC.EFFECTIVE_START_DATE and LOC.EFFECTIVE_END_DATE ) AS PHYSICAL_LOC,
--LOC.INTERNAL_LOCATION_CODE AS PHYSICAL_LOC,
case when ASS.ASS_ATTRIBUTE8 is null then 'No FLSA' else ASS.ASS_ATTRIBUTE8 end AS FLSA_STATUS,
JOB.JOB_CODE AS JOB_CODE,
JOB.NAME AS JOB_DESCRPTION,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','PR') THEN 'REGULAR'
     WHEN ASS.EMPLOYMENT_CATEGORY IN ('FT','PT') THEN 'TEMPORARY' ELSE '' END AS Regular_Temp,
DEP.NAME AS DEPT_NAME,
ASS.ASS_ATTRIBUTE4 AS BUSINESS_TITLE,

(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F NA WHERE MAN.MANAGER_ID=NA.PERSON_ID AND ASS.EFFECTIVE_START_DATE  BETWEEN NA.EFFECTIVE_START_DATE AND NA.EFFECTIVE_END_DATE) AS MANAGER_ID,
(SELECT DISPLAY_NAME FROM PER_PERSON_NAMES_F NA WHERE MAN.MANAGER_ID=NA.PERSON_ID AND NAME_TYPE = 'GLOBAL' AND ASS.EFFECTIVE_START_DATE  BETWEEN NA.EFFECTIVE_START_DATE AND NA.EFFECTIVE_END_DATE) AS MANAGER_NAME,
ASS.ASS_ATTRIBUTE3 AS BEN_PRG

FROM
PER_PERSON_SECURED_LIST_V PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_F ASS,
PER_DEPARTMENTS DEP,
PER_ASSIGNMENT_SUPERVISORS_F MAN,
PER_PERIODS_OF_SERVICE PPS,
PER_JOBS JOB,
HR_ORGANIZATION_UNITS BU,
--HR_LOCATIONS_ALL LOC,
PER_NATIONAL_IDENTIFIERS NID,
PER_PERSONS PP


where

PER.PERSON_ID=ASS.PERSON_ID
--and per.person_number in ('502121','991353','993903','998522','996336','500111','500125')
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 ASS.PERSON_ID =PPS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND ASS.PERSON_ID = NID.PERSON_ID(+)
AND NATIONAL_IDENTIFIER_TYPE(+) = 'SSN'
AND ASS.PERSON_ID = PP.PERSON_ID(+)
AND ASS.JOB_ID=JOB.JOB_ID(+)
AND ASS.BUSINESS_UNIT_ID = BU.ORGANIZATION_ID(+)
--AND ASS.LOCATION_ID = LOC.LOCATION_ID(+)
AND ASS.ASSIGNMENT_TYPE IN ('E')
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 ASSIGNMENT_STATUS_TYPE = 'ACTIVE') */
 AND ASS.EFFECTIVE_START_DATE = (SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID = ASS.PERSON_ID
     --AND  ASSIGNMENT_NUMBER = ASS.ASSIGNMENT_NUMBER
     --AND  EFFECTIVE_SEQUENCE = ASS.EFFECTIVE_SEQUENCE
     AND  EFFECTIVE_START_DATE BETWEEN  :DATE_FROM AND :DATE_TO
     AND  ASSIGNMENT_TYPE = ASS.ASSIGNMENT_TYPE  and ASSIGNMENT_STATUS_TYPE = 'ACTIVE')
   

AND trunc(ASS.EFFECTIVE_START_DATE) BETWEEN :DATE_FROM AND :DATE_TO
--AND trunc(PPS.ACTUAL_TERMINATION_DATE) BETWEEN :DATE_FROM AND :DATE_TO
AND ASS.EFFECTIVE_START_DATE BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN MAN.EFFECTIVE_START_DATE(+) AND MAN.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
--AND ASS.EFFECTIVE_START_DATE BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN DEP.EFFECTIVE_START_DATE(+) AND DEP.EFFECTIVE_END_DATE(+)
order by PER.PERSON_NUMBER


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

--transfer 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 HROF.EFFECTIVE_END_DATE(+) AND TRUNC(sysdate) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS OLD_HR_DIVISION,
(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=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 HROF.EFFECTIVE_END_DATE(+) AND TRUNC(sysdate) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS OLD_DEPT,
CASE WHEN SUBSTR(OLD_DEP.NAME,1,INSTR(OLD_DEP.NAME,'__',1)-1) IS NOT NULL THEN SUBSTR(OLD_DEP.NAME,1,INSTR(OLD_DEP.NAME,'__',1)-1) ELSE OLD_DEP.NAME END AS OLD_DEPARTMENT,
OLD_JOB.JOB_CODE AS OLD_JOB_CODE,
OLD_JOB.NAME AS OLD_JOB_DESCRIPTION,
(select DISTINCT LUKUP.MEANING from HCM_LOOKUPS LUKUP,PER_JOB_LEG_F JOB_LEG
  where LUKUP.LOOKUP_TYPE ='HRX_US_EEO1_JOB_CATEGORY' AND LUKUP.LOOKUP_CODE = JOB_LEG.INFORMATION2 AND JOB_LEG.LEGISLATION_CODE = GENDER.LEGISLATION_CODE
  AND JOB_LEG.JOB_ID = OLD_JOB.JOB_ID AND trunc(sysdate) BETWEEN JOB_LEG.EFFECTIVE_START_DATE(+) AND JOB_LEG.EFFECTIVE_END_DATE(+)) AS OLD_EEO_CLASSIFICATION,
OLD_ASS.ASS_ATTRIBUTE4 AS OLD_BUSINESS_TITLE,
ROUND(OLD_SAL.SALARY_AMOUNT,2) AS OLD_SALARY,
TO_CHAR(OLD_SAL.DATE_FROM,'MM/DD/YYYY') AS OLD_SAL_DT,
(SELECT
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
OLD_ASS.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 = ('Amount')) -- commented as part of INC0093797
and (PIV.BASE_NAME = ('Target Bonus Percentage'))  -- added  as part of INC0093797
AND ET.BASE_ELEMENT_NAME LIKE 'Annual Bonus - AMS%'
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 OLD_ASS.EFFECTIVE_START_DATE 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 OLD_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS OLD_BASE_AMT,
(SELECT
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
OLD_ASS.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 = ('Amount'))  as part of INC0093797
and (PIV.BASE_NAME = ('Target Bonus Percentage')) --added  as part of INC0093797
AND ET.BASE_ELEMENT_NAME LIKE 'Annual Bonus - AM%'
AND ET.BASE_ELEMENT_NAME NOT LIKE 'Annual Bonus - AMS%'
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 OLD_ASS.EFFECTIVE_START_DATE 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 OLD_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS OLD_BASE_AMT_AM,
(SELECT
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
OLD_ASS.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= 'Sales Incentive'
and (PIV.BASE_NAME = ('Amount'))
AND ET.BASE_ELEMENT_NAME LIKE ('Sales Compensation%')
AND ET.BASE_ELEMENT_NAME NOT LIKE ('Sales Compensation Bonus%')
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS OLD_SALES_COMP,
CASE WHEN OLD_ASS.ASS_ATTRIBUTE8 IS NULL THEN 'No FLSA'
ELSE OLD_ASS.ASS_ATTRIBUTE8 END AS OLD_FLSA_CODE,
OLD_ASS.NORMAL_HOURS AS OLD_STANDARD_HOURS,
OLD_ASS.ASS_ATTRIBUTE3 AS OLD_BENEFIT_PROGRAM,
(SELECT DISTINCT ET.ELEMENT_NAME  --SUBSTR(ET.BASE_ELEMENT_NAME,1, INSTR(ET.BASE_ELEMENT_NAME,'-',1)+4)
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
OLD_ASS.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 = ('Amount'))  as part of INC0093797
and (PIV.BASE_NAME = ('Target Bonus Percentage')) -- added  as part of INC0093797
--AND ET.BASE_ELEMENT_NAME LIKE ('Annual Bonus - AMS%')
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 OLD_ASS.PERSON_ID=PERSON_ID(+) and ELEMENT_TYPE_ID = EE.ELEMENT_TYPE_ID and OLD_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))

AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS BONUS_CODE_O,
BU.NAME AS COMPANY,
(SELECT LOC.LOCATION_NAME FROM HR_LOCATIONS_ALL_F_VL  LOC WHERE  LOC.LOCATION_ID =NEW_ASS.LOCATION_ID AND TRUNC(sysdate) between LOC.EFFECTIVE_START_DATE and LOC.EFFECTIVE_END_DATE ) AS WORK_LOCATION,
--NEW_LOC.LOCATION_NAME AS WORK_LOCATION,
NEW_ASS.WORK_AT_HOME AS NEW_REMOTE_INDICATOR,
(SELECT LOC.LOCATION_NAME FROM HR_LOCATIONS_ALL_F_VL  LOC WHERE  LOC.LOCATION_ID =NEW_ASS.LOCATION_ID AND TRUNC(sysdate) between LOC.EFFECTIVE_START_DATE and LOC.EFFECTIVE_END_DATE ) AS NEW_PHYSICAL_LOC,
--NEW_LOC.LOCATION_NAME AS NEW_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=NEW_ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS NEW_HR_DIVISION,
(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=NEW_ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND :DATE_TO BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND :DATE_TO BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS NEW_DEPT,
CASE WHEN SUBSTR(NEW_DEP.NAME,1,INSTR(NEW_DEP.NAME,'__',1)-1) IS NOT NULL THEN SUBSTR(NEW_DEP.NAME,1,INSTR(NEW_DEP.NAME,'__',1)-1) ELSE NEW_DEP.NAME END AS NEW_DEPARTMENT,
NEW_JOB.JOB_CODE AS NEW_JOB_CODE,
NEW_JOB.NAME AS NEW_JOB_DESCRIPTION,
(select DISTINCT LUKUP.MEANING from HCM_LOOKUPS LUKUP,PER_JOB_LEG_F JOB_LEG
  where LUKUP.LOOKUP_TYPE ='HRX_US_EEO1_JOB_CATEGORY' AND LUKUP.LOOKUP_CODE = JOB_LEG.INFORMATION2 AND JOB_LEG.LEGISLATION_CODE = GENDER.LEGISLATION_CODE
  AND JOB_LEG.JOB_ID = NEW_JOB.JOB_ID AND trunc(sysdate) BETWEEN JOB_LEG.EFFECTIVE_START_DATE(+) AND JOB_LEG.EFFECTIVE_END_DATE(+)) AS NEW_EEO_CLASSIFICATION,
NEW_ASS.ASS_ATTRIBUTE4 AS NEW_BUSINESS_TITLE,
round(NEW_SAL.SALARY_AMOUNT,2) AS NEW_SALARY,
-- (SELECT round(S.SALARY_AMOUNT,2) FROM CMP_SALARY S, PER_ASSIGNMENT_SECURED_LIST_V A WHERE PER.PERSON_ID=A.PERSON_ID AND A.ASSIGNMENT_ID= S.ASSIGNMENT_ID AND A.ASSIGNMENT_TYPE IN ('E','C') AND TRUNC(SYSDATE) BETWEEN S.DATE_FROM AND S.DATE_TO AND TRUNC(SYSDATE) BETWEEN A.EFFECTIVE_START_DATE AND A.EFFECTIVE_END_DATE) AS CURRENT_SALARY,
(SELECT round(S.SALARY_AMOUNT,2) FROM CMP_SALARY S WHERE NEW_ASS.ASSIGNMENT_ID= S.ASSIGNMENT_ID AND TRUNC(SYSDATE) BETWEEN S.DATE_FROM AND S.DATE_TO) AS CURRENT_SALARY,
TO_CHAR(NEW_SAL.DATE_FROM,'MM/DD/YYYY') AS NEW_SAL_DT,
(SELECT
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
NEW_ASS.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 = ('Amount'))  as part of INC0093797
and (PIV.BASE_NAME = ('Target Bonus Percentage')) -- added  as part of INC0093797
AND ET.BASE_ELEMENT_NAME LIKE 'Annual Bonus - AMS%'
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 NEW_ASS.EFFECTIVE_START_DATE 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 NEW_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS NEW_BASE_AMT,
(SELECT
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
NEW_ASS.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 = ('Amount'))  as part of INC0093797
and (PIV.BASE_NAME = ('Target Bonus Percentage')) --added  as part of INC0093797
AND ET.BASE_ELEMENT_NAME LIKE 'Annual Bonus - AM%'
AND ET.BASE_ELEMENT_NAME not LIKE 'Annual Bonus - AMS%'
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 NEW_ASS.EFFECTIVE_START_DATE 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 NEW_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS NEW_BASE_AMT_AM,
(SELECT
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
NEW_ASS.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= 'Sales Incentive'
and (PIV.BASE_NAME = ('Amount'))
AND ET.BASE_ELEMENT_NAME LIKE ('Sales Compensation%')
AND ET.BASE_ELEMENT_NAME NOT LIKE ('Sales Compensation Bonus%')
-- ,'Sales Compensation AR','Sales Compensation AU','Sales Compensation BR','Sales Compensation CA','Sales Compensation CH','Sales Compensation CN','Sales Compensation CZ','Sales Compensation DE','Sales Compensation GB','Sales Compensation JP','Sales Compensation KR','Sales Compensation NL','Sales Compensation NZ','Sales Compensation SE','Sales Compensation SG','Sales Compensation US')
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS NEW_SALES_COMP,
CASE WHEN NEW_ASS.ASS_ATTRIBUTE8 IS NULL THEN 'No FLSA'
ELSE NEW_ASS.ASS_ATTRIBUTE8 END AS NEW_FLSA_CODE,
NEW_ASS.NORMAL_HOURS AS NEW_STANDARD_HOURS,
NEW_ASS.ASS_ATTRIBUTE3 AS NEW_BENEFIT_PROGRAM,
NAME.DISPLAY_NAME AS NAME,
NEW_ASS.ASSIGNMENT_STATUS_TYPE AS ASSIGNMENT_STATUS,
TO_CHAR(NEW_ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS STATUS_DATE,
LUKUP.MEANING AS ETHNIC_GROUP,
LUKUP2.MEANING AS GENDER,
case
WHEN GENDER.PER_INFORMATION1 = 'Y' THEN 'YES'
WHEN GENDER.PER_INFORMATION2 = 'Y' THEN 'YES'
WHEN GENDER.PER_INFORMATION3 = 'Y' THEN 'YES'
WHEN GENDER.PER_INFORMATION4 = 'Y' THEN 'YES'
WHEN GENDER.PER_INFORMATION5 = 'Y' THEN 'YES'
WHEN GENDER.PER_INFORMATION6 = 'Y' THEN 'YES'
WHEN GENDER.PER_INFORMATION7 = 'Y' THEN 'YES'
WHEN GENDER.PER_INFORMATION8 = 'Y' THEN 'YES'
WHEN GENDER.PER_INFORMATION9 = 'Y' THEN 'YES'
WHEN GENDER.PER_INFORMATION10 = 'Y' THEN 'YES'
WHEN GENDER.PER_INFORMATION11 = 'Y' THEN 'YES'
WHEN GENDER.PER_INFORMATION12 = 'Y' THEN 'YES'
WHEN GENDER.PER_INFORMATION13 = 'Y' THEN 'YES'
WHEN GENDER.PER_INFORMATION15 = 'Y' THEN 'YES'
 ELSE ' ' END AS Veteran_Status,

PP.ATTRIBUTE3  AS DISABILITY_STATUS,

TO_CHAR(PP.DATE_OF_BIRTH,'MM/DD/YYYY') AS BIRTH_DATE,
(SELECT DISTINCT ET.ELEMENT_NAME  --SUBSTR(ET.BASE_ELEMENT_NAME,1, INSTR(ET.BASE_ELEMENT_NAME,'-',1)+4)
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
NEW_ASS.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 = ('Amount'))  as part of INC0093797
and (PIV.BASE_NAME = ('Target Bonus Percentage')) -- added  as part of INC0093797
--AND ET.BASE_ELEMENT_NAME LIKE ('Annual Bonus - AMS%')
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 NEW_ASS.PERSON_ID=PERSON_ID(+) and ELEMENT_TYPE_ID = EE.ELEMENT_TYPE_ID and NEW_ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE(+) AND EFFECTIVE_END_DATE(+))

AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS BONUS_CODE
,PP.ATTRIBUTE2 AS REQUESTION_ID



FROM
PER_ASSIGNMENT_SECURED_LIST_V NEW_ASS,
PER_ASSIGNMENT_SECURED_LIST_V OLD_ASS,
PER_PERSON_SECURED_LIST_V PER,
PER_PERSON_NAMES_F NAME,
HR_LEGAL_ENTITIES OLD_LEG,
PER_DEPARTMENTS OLD_DEP,
PER_DEPARTMENTS NEW_DEP,
-- HRC_LOADER_BATCH_KEY_MAP OLD_HRC,
-- HRC_LOADER_BATCH_KEY_MAP NEW_HRC,
CMP_SALARY OLD_SAL,
CMP_SALARY NEW_SAL,

PER_JOBS NEW_JOB,
PER_JOBS OLD_JOB,
HR_LOCATIONS_ALL OLD_LOC,
HR_LOCATIONS_ALL NEW_LOC,
HR_ORGANIZATION_UNITS BU,
PER_ETHNICITIES ETHN,
HCM_LOOKUPS LUKUP,
HCM_LOOKUPS LUKUP2,
PER_PEOPLE_LEGISLATIVE_F GENDER,
PER_PERSONS PP


WHERE


PER.PERSON_ID=NEW_ASS.PERSON_ID
AND PER.PERSON_ID=PP.PERSON_ID
AND NEW_ASS.PERSON_ID=OLD_ASS.PERSON_ID
AND NEW_ASS.PERSON_ID=NAME.PERSON_ID(+)
AND NEW_ASS.PERSON_ID= ETHN.PERSON_ID(+)
AND ETHN.ETHNICITY=LUKUP.LOOKUP_CODE(+)
AND NEW_ASS.PERSON_ID=GENDER.PERSON_ID(+)
AND LUKUP2.LOOKUP_TYPE='SEX'
AND LUKUP2.LOOKUP_CODE(+)=GENDER.SEX
AND LUKUP.LOOKUP_TYPE(+) ='PER_ETHNICITY'
AND ((NEW_ASS.ACTION_CODE in ('LOCATION_CHANGE','TRANSFER','PROMOTION','GLB_TRANSFER')) or (NEW_ASS.ACTION_CODE='PAY_CHNG' and NEW_ASS.REASON_CODE='PROMOTION_INCREASE'))
AND NAME.NAME_TYPE='GLOBAL'
AND GENDER.LEGISLATION_CODE(+)=NEW_ASS.LEGISLATION_CODE
AND NEW_ASS.ASSIGNMENT_TYPE IN ('E','C')
AND OLD_ASS.ASSIGNMENT_TYPE IN ('E','C')

AND OLD_LEG.CLASSIFICATION_CODE='HCM_LEMP'
AND NEW_ASS.JOB_ID=NEW_JOB.JOB_ID(+)

AND OLD_ASS.JOB_ID=OLD_JOB.JOB_ID(+)
AND OLD_LEG.ORGANIZATION_ID=NEW_ASS.LEGAL_ENTITY_ID
AND NEW_ASS.BUSINESS_UNIT_ID = BU.ORGANIZATION_ID(+)
AND OLD_ASS.ORGANIZATION_ID = OLD_DEP.ORGANIZATION_ID(+)
AND NEW_ASS.ORGANIZATION_ID = NEW_DEP.ORGANIZATION_ID(+)
-- AND OLD_ASS.ORGANIZATION_ID= OLD_HRC.TARGET_ID
-- AND NEW_ASS.ORGANIZATION_ID= NEW_HRC.TARGET_ID
AND OLD_ASS.ASSIGNMENT_ID= OLD_SAL.ASSIGNMENT_ID
AND NEW_ASS.ASSIGNMENT_ID= NEW_SAL.ASSIGNMENT_ID
AND OLD_ASS.LOCATION_ID = OLD_LOC.LOCATION_ID(+)
AND NEW_ASS.LOCATION_ID = NEW_LOC.LOCATION_ID(+)
-- AND (NEW_ASS.LOCATION_ID <> OLD_ASS.LOCATION_ID OR OLD_ASS.JOB_ID <> NEW_ASS.JOB_ID OR NEW_ASS.ASSIGNMENT_ID <> OLD_ASS.ASSIGNMENT_ID)
-- AND TO_CHAR(NEW_ASS.EFFECTIVE_END_DATE,'YYYY-MM-DD') = '4712-12-31'
AND TO_CHAR(OLD_ASS.EFFECTIVE_END_DATE,'YYYY-MM-DD') = TO_CHAR(NEW_ASS.EFFECTIVE_START_DATE-1,'YYYY-MM-DD')


AND NEW_ASS.ASSIGNMENT_SEQUENCE=(SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID=NEW_ASS.PERSON_ID AND ASSIGNMENT_TYPE=NEW_ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
-- and NEW_ASS.effective_start_date = (select max(effective_start_date) from per_all_assignments_m where person_id=new_ass.person_id and assignment_type in ('E','C') and ((NEW_ASS.ACTION_CODE in ('TRANSFER','PROMOTION')) or (NEW_ASS.ACTION_CODE='PAY_CHNG' and NEW_ASS.REASON_CODE='PROMOTION_INCREASE')))
---AND (TO_CHAR(OLD_ASS.EFFECTIVE_END_DATE,'YYYY-MM-DD')) = (SELECT TO_CHAR(MAX(EFFECTIVE_END_DATE),'YYYY-MM-DD') FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID = NEW_ASS.PERSON_ID AND ASSIGNMENT_TYPE in ('E','C') AND NEW_ASS.EFFECTIVE_START_DATE > EFFECTIVE_END_DATE)
AND TRUNC(NEW_ASS.EFFECTIVE_START_DATE) BETWEEN :DATE_FROM AND :DATE_TO
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN GENDER.EFFECTIVE_START_DATE(+) AND GENDER.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN NEW_JOB.EFFECTIVE_START_DATE(+) AND NEW_JOB.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN NEW_DEP.EFFECTIVE_START_DATE(+) AND NEW_DEP.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN NEW_LOC.EFFECTIVE_START_DATE(+) AND NEW_LOC.EFFECTIVE_END_DATE(+)
AND NEW_ASS.EFFECTIVE_START_DATE BETWEEN NEW_SAL.DATE_FROM AND NEW_SAL.DATE_TO
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN OLD_SAL.DATE_FROM AND OLD_SAL.DATE_TO
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN OLD_JOB.EFFECTIVE_START_DATE(+) AND OLD_JOB.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN OLD_DEP.EFFECTIVE_START_DATE(+) AND OLD_DEP.EFFECTIVE_END_DATE(+)
AND OLD_ASS.EFFECTIVE_START_DATE BETWEEN OLD_LOC.EFFECTIVE_START_DATE(+) AND OLD_LOC.EFFECTIVE_END_DATE(+)
AND trunc(sysdate) BETWEEN OLD_LEG.EFFECTIVE_START_DATE AND OLD_LEG.EFFECTIVE_END_DATE
ORDER BY PER.PERSON_NUMBER

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

--Terminations Report
SELECT distinct
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,
ASS.ACTION_CODE AS TERMINATON_ACTION,
ASS.REASON_CODE AS TERMINATION_REASON,
NAME.DISPLAY_NAME AS EMPL_NAME,
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'
                WHEN ASS.ACTION_CODE IN ('INVOLUNTARY_TERMINATION') THEN 'INVOLUNTARY'
ELSE 'INVOLUNTARY'
END AS TERMINATION_TYPE,
ASS.ASSIGNMENT_STATUS_TYPE AS EMPL_STATUS,
ASS.EMPLOYMENT_CATEGORY AS FULL_PART_REG_TEMP,
(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.ASS_ATTRIBUTE3 AS BENEFITS_CLASS,
ASS.NORMAL_HOURS AS STANDARD_HOURS,
SUBSTR(DEP.NAME,INSTR(DEP.NAME,'__',1)+2) AS DEPT_CODE,
DEP.NAME AS DEPT_NAME,
ASS.HOURLY_SALARIED_CODE AS EMP_TYPE,
ROUND(SAL.SALARY_AMOUNT,2) AS SALARY,
TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE ,'YYYY-MM-DD') AS ORIGINAL_START_DATE,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F PER WHERE PER.PERSON_ID=SUP.MANAGER_ID AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE ) AS MANAGER_ID,
(SELECT NA.DISPLAY_NAME FROM PER_PERSON_NAMES_F NA WHERE NA.PERSON_ID = SUP.MANAGER_ID AND NA.NAME_TYPE = 'GLOBAL' AND ASS.EFFECTIVE_START_DATE BETWEEN NA.EFFECTIVE_START_DATE(+) AND NA.EFFECTIVE_END_DATE(+)) AS MANAGER_NAME

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,
CMP_SALARY SAL,
PER_DEPARTMENTS DEP
/* 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 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.ACTION_CODE NOT IN  ('GLB_TRANSFER')
  --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 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 ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND ASS.ORGANIZATION_ID = DEP.ORGANIZATION_ID(+)
AND trunc(PPS.ACTUAL_TERMINATION_DATE) BETWEEN :FROM_DATE AND :TO_DATE -- Condition for pulling approved terminations
AND trunc(ASS.EFFECTIVE_START_DATE) BETWEEN :FROM_DATE AND :TO_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.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 TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND (ASS.EFFECTIVE_START_DATE - 1) BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN DEP.EFFECTIVE_START_DATE(+) AND DEP.EFFECTIVE_END_DATE(+)
order by PER.PERSON_NUMBER


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

--TermAPP

SELECT distinct
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,
ASS.ACTION_CODE AS TERMINATON_ACTION,
ASS.REASON_CODE AS TERMINATION_REASON,
NAME.DISPLAY_NAME AS EMPL_NAME,
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'
                WHEN ASS.ACTION_CODE IN ('INVOLUNTARY_TERMINATION') THEN 'INVOLUNTARY'
ELSE 'INVOLUNTARY'
END AS TERMINATION_TYPE,
ASS.ASSIGNMENT_STATUS_TYPE AS EMPL_STATUS,
ASS.EMPLOYMENT_CATEGORY AS FULL_PART_REG_TEMP,
(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.ASS_ATTRIBUTE3 AS BENEFITS_CLASS,
ASS.NORMAL_HOURS AS STANDARD_HOURS,
SUBSTR(DEP.NAME,INSTR(DEP.NAME,'__',1)+2) AS DEPT_CODE,
DEP.NAME AS DEPT_NAME,
JOB.JOB_CODE AS JOB_CODE,
JOB.NAME AS JOB_DESCRIPTION,
ASS.HOURLY_SALARIED_CODE AS EMP_TYPE,
ROUND(SAL.SALARY_AMOUNT,2) AS SALARY,
TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE ,'YYYY-MM-DD') AS ORIGINAL_START_DATE,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F PER WHERE PER.PERSON_ID=SUP.MANAGER_ID AND ASS.EFFECTIVE_START_DATE BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE ) AS MANAGER_ID,
(SELECT NA.DISPLAY_NAME FROM PER_PERSON_NAMES_F NA WHERE NA.PERSON_ID = SUP.MANAGER_ID AND NA.NAME_TYPE = 'GLOBAL' AND ASS.EFFECTIVE_START_DATE BETWEEN NA.EFFECTIVE_START_DATE(+) AND NA.EFFECTIVE_END_DATE(+)) AS MANAGER_NAME,

(select DISTINCT LUKUP.MEANING from HCM_LOOKUPS LUKUP,PER_ETHNICITIES ETHN
   where LUKUP.LOOKUP_TYPE ='PER_ETHNICITY' AND LUKUP.LOOKUP_CODE = ETHN.ETHNICITY AND ETHN.PRIMARY_FLAG = 'Y' AND ETHN.PERSON_ID = ASS.PERSON_ID )  AS ETHNIC,
(select DISTINCT LUKUP.MEANING from HCM_LOOKUPS LUKUP where LUKUP.LOOKUP_TYPE ='SEX' AND LUKUP.LOOKUP_CODE = LEG.SEX ) AS GENDER,

case
WHEN LEG.PER_INFORMATION1 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION2 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION3 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION4 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION5 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION6 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION7 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION8 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION9 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION10 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION11 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION12 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION13 = 'Y' THEN 'YES'
WHEN LEG.PER_INFORMATION15 = 'Y' THEN 'YES'
 ELSE ' ' END AS Veteran_Status,
/*(select DISTINCT LUKUP.MEANING from HCM_LOOKUPS LUKUP where LUKUP.LOOKUP_TYPE ='ORA_HRX_US_VETS_SELFID_STATUS' AND LUKUP.LOOKUP_CODE = LEG.PER_INFORMATION14 ) AS Veteran_Status, */
(SELECT DISTINCT ATTRIBUTE3 from PER_PERSONS where PERSON_ID = ASS.PERSON_ID) AS DISABILITY_STATUS,
(select DISTINCT LUKUP.MEANING from HCM_LOOKUPS LUKUP,PER_JOB_LEG_F JOB_LEG
  where LUKUP.LOOKUP_TYPE ='HRX_US_EEO1_JOB_CATEGORY' AND LUKUP.LOOKUP_CODE = JOB_LEG.INFORMATION2 AND JOB_LEG.LEGISLATION_CODE = LEG.LEGISLATION_CODE
  AND JOB_LEG.JOB_ID = ASS.JOB_ID AND trunc(sysdate) BETWEEN JOB_LEG.EFFECTIVE_START_DATE(+) AND JOB_LEG.EFFECTIVE_END_DATE(+)) AS EEO_CLASSIFICATION

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,
CMP_SALARY SAL,
PER_DEPARTMENTS DEP,
PER_PEOPLE_LEGISLATIVE_F LEG,
PER_JOBS JOB
/* 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 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.ACTION_CODE NOT IN  ('GLB_TRANSFER')
  --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 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 ASS.PERSON_ID=LEG.PERSON_ID(+)
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND ASS.ORGANIZATION_ID = DEP.ORGANIZATION_ID(+)
AND trunc(PPS.ACTUAL_TERMINATION_DATE) BETWEEN :FROM_DATE AND :TO_DATE -- Condition for pulling approved terminations
AND trunc(ASS.EFFECTIVE_START_DATE) BETWEEN :FROM_DATE AND :TO_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.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(+)
AND (ASS.EFFECTIVE_START_DATE - 1) BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN DEP.EFFECTIVE_START_DATE(+) AND DEP.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN LEG.EFFECTIVE_START_DATE(+) AND LEG.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
order by PER.PERSON_NUMBER


----------

--std workhourschange

SELECT DISTINCT
PER.PERSON_NUMBER,
NAME.FIRST_NAME,
NAME.LAST_NAME,
ASSOLD.NORMAL_HOURS AS Prev_std_hrs,
(SELECT TO_CHAR(MIN(EFFECTIVE_START_DATE),'MM/DD/YYYY')  FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C') AND LOCATION_ID = ASS.LOCATION_ID AND EFFECTIVE_START_DATE > ASSOLD.EFFECTIVE_START_DATE) as CHANGE_DATE,
ASS.NORMAL_HOURS AS New_std_hrs

FROM PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_F ASS,
PER_ALL_ASSIGNMENTS_F ASSOLD,
HR_LOCATIONS_ALL_F_VL  LOC

WHERE PER.PERSON_ID=ASS.PERSON_ID
AND NAME.PERSON_ID(+)=PER.PERSON_ID
AND LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND NAME.NAME_TYPE='GLOBAL'
AND LOC.COUNTRY IN ('US')
AND ASS.LEGISLATION_CODE IN ('US')
AND ASS.ASSIGNMENT_TYPE IN ('E','C')
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')

AND PER.PERSON_ID=ASSOLD.PERSON_ID
AND ASS.PERSON_ID=ASSOLD.PERSON_ID
AND ASSOLD.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASSOLD.PERSON_ID AND ASSIGNMENT_TYPE = ASS.ASSIGNMENT_TYPE AND NORMAL_HOURS <> ASS.NORMAL_HOURS AND EFFECTIVE_START_DATE < ASS.EFFECTIVE_START_DATE)
AND ASSOLD.EFFECTIVE_START_DATE = (SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASSOLD.PERSON_ID AND ASSIGNMENT_TYPE = ASS.ASSIGNMENT_TYPE AND NORMAL_HOURS <> ASS.NORMAL_HOURS AND EFFECTIVE_START_DATE < ASS.EFFECTIVE_START_DATE)
                AND ASSOLD.NORMAL_HOURS <> ASS.NORMAL_HOURS
AND ASS.EFFECTIVE_START_DATE BETWEEN SYSDATE - 7 AND  SYSDATE
                AND TO_CHAR(ASSOLD.EFFECTIVE_END_DATE,'YYYY-MM-DD') = TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'YYYY-MM-DD')
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT 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.REASON_CODE IN ('PERFORMANCE_DIFFERENTIAL_CHANG','ANNUAL_BASE_BENEFIT_UPDATE','REPORTING_CHANGE','CMP_MERI','CMP_WKHR','DECREASE_HOURS','INCREASE_HOURS')
AND TRUNC(sysdate) between PER.EFFECTIVE_START_DATE and PER.EFFECTIVE_END_DATE 
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 LOC.EFFECTIVE_START_DATE(+) and LOC.EFFECTIVE_END_DATE(+)
ORDER BY PER.PERSON_NUMBER

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

--state change(CA)

SELECT PER.PERSON_NUMBER,
NAME.FIRST_NAME,
NAME.LAST_NAME,
OLDADDR.REGION_2 AS OLD_STATE,
TO_CHAR(ADDR.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS CHANGE_DATE ,
ADDR.REGION_2 AS NEW_STATE

FROM PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_PERSON_ADDRESSES_V ADDR,
PER_PERSON_ADDRESSES_V OLDADDR,
PER_ALL_ASSIGNMENTS_F ASS,
HR_LOCATIONS_ALL_F_VL  LOC
WHERE PER.PERSON_ID=ADDR.PERSON_ID
        AND PER.PERSON_ID=ASS.PERSON_ID
AND NAME.PERSON_ID(+)=PER.PERSON_ID
AND NAME.NAME_TYPE='GLOBAL'
AND LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND LOC.LOCATION_NAME LIKE 'Remote%'
AND OLDADDR.ADDRESS_TYPE = 'HOME'
AND ADDR.PERSON_ID = OLDADDR.PERSON_ID
AND ADDR.REGION_2 <> OLDADDR.REGION_2
AND OLDADDR.EFFECTIVE_START_DATE = (SELECT MAX(EFFECTIVE_START_DATE) FROM PER_PERSON_ADDRESSES_V  WHERE PERSON_ID=ADDR.PERSON_ID
                                                                     AND ADDRESS_TYPE = 'HOME'
     AND EFFECTIVE_START_DATE < ADDR.EFFECTIVE_START_DATE
     AND REGION_2 <> ADDR.REGION_2)
AND OLDADDR.REGION_2 IN ('CA')
AND ADDR.ADDRESS_TYPE = 'HOME'
AND ADDR.REGION_2 NOT IN ('CA')
AND ASS.ASSIGNMENT_TYPE IN ('E','C')
AND ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C') AND TRUNC(sysdate) between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE)
AND ADDR.EFFECTIVE_START_DATE BETWEEN SYSDATE - 7 AND  SYSDATE
AND TRUNC(sysdate) between PER.EFFECTIVE_START_DATE and PER.EFFECTIVE_END_DATE 
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 ADDR.EFFECTIVE_START_DATE and ADDR.EFFECTIVE_END_DATE
AND TRUNC(sysdate) between LOC.EFFECTIVE_START_DATE(+) and LOC.EFFECTIVE_END_DATE(+)

UNION
SELECT PER.PERSON_NUMBER,
NAME.FIRST_NAME,
NAME.LAST_NAME,
OLDADDR.REGION_2 AS OLD_STATE,
TO_CHAR(ADDR.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS CHANGE_DATE ,
ADDR.REGION_2 AS NEW_STATE

FROM PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_PERSON_ADDRESSES_V ADDR,
PER_PERSON_ADDRESSES_V OLDADDR,
PER_ALL_ASSIGNMENTS_F ASS,
HR_LOCATIONS_ALL_F_VL  LOC
WHERE PER.PERSON_ID=ADDR.PERSON_ID
        AND PER.PERSON_ID=ASS.PERSON_ID
AND NAME.PERSON_ID(+)=PER.PERSON_ID
AND NAME.NAME_TYPE='GLOBAL'
AND LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND LOC.LOCATION_NAME LIKE 'Remote%'
AND OLDADDR.ADDRESS_TYPE = 'HOME'
AND ADDR.PERSON_ID = OLDADDR.PERSON_ID
AND ADDR.REGION_2 <> OLDADDR.REGION_2
AND OLDADDR.EFFECTIVE_START_DATE = (SELECT MAX(EFFECTIVE_START_DATE) FROM PER_PERSON_ADDRESSES_V  WHERE PERSON_ID=ADDR.PERSON_ID
                                                                     AND ADDRESS_TYPE = 'HOME'
     AND EFFECTIVE_START_DATE < ADDR.EFFECTIVE_START_DATE
     AND REGION_2 <> ADDR.REGION_2)
AND OLDADDR.REGION_2 NOT IN ('CA')
AND ADDR.ADDRESS_TYPE = 'HOME'
AND ADDR.REGION_2  IN ('CA')
AND ASS.ASSIGNMENT_TYPE IN ('E','C')
AND ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C') AND TRUNC(sysdate) between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE)
AND ADDR.EFFECTIVE_START_DATE BETWEEN SYSDATE - 7 AND  SYSDATE
AND TRUNC(sysdate) between PER.EFFECTIVE_START_DATE and PER.EFFECTIVE_END_DATE 
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 ADDR.EFFECTIVE_START_DATE and ADDR.EFFECTIVE_END_DATE
AND TRUNC(sysdate) between LOC.EFFECTIVE_START_DATE(+) and LOC.EFFECTIVE_END_DATE(+)
ORDER BY 1

--------

--SALE LOA

SELECT
PER.PERSON_NUMBER AS ID,
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 ASS.EFFECTIVE_START_DATE BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS DEPT,
(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 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 HR_DIVISION,
JOB.JOB_CODE,
LEG.NAME AS LEGAL_ENTITY,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS eff_dat_asof_loa,
ASS.ACTION_CODE AS ACTION,
ASS.ASS_ATTRIBUTE4 AS BUSINESS_TITLE,
LOC.LOCATION_NAME AS WORK_LOCATION,
CASE WHEN ASS.WORK_AT_HOME = 'Y' THEN ''
ELSE LOC.LOCATION_NAME END AS PHYSICAL_LOC,
ASS.WORK_AT_HOME AS REMOTE_INDICATOR,
CUR.LOCAL_CURRENCY AS CURRENCY,
ASS.ASSIGNMENT_STATUS_TYPE AS ASSIGNMENT_STATUS,
(SELECT
-- SUBSTR(ET.BASE_ELEMENT_NAME,1, INSTR(ET.BASE_ELEMENT_NAME,'us',1)-1)
SUBSTR(ET.BASE_ELEMENT_NAME,1,length(ET.BASE_ELEMENT_NAME)-3)
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= 'Sales Incentive'
and (PIV.BASE_NAME = ('Amount'))
-- AND ET.BASE_ELEMENT_NAME IN ('Sales Compensation Bonus AE','Sales Compensation Bonus AR','Sales Compensation Bonus AU','Sales Compensation Bonus BR','Sales Compensation Bonus CA','Sales Compensation Bonus CH','Sales Compensation Bonus CN','Sales Compensation Bonus CZ','Sales Compensation Bonus DE','Sales Compensation Bonus GB','Sales Compensation Bonus JP','Sales Compensation Bonus KR','Sales Compensation Bonus NL','Sales Compensation Bonus NZ','Sales Compensation Bonus SE','Sales Compensation Bonus SG','Sales Compensation Bonus US',
-- 'Sales Commission Override AE','Sales Commission Override AR','Sales Commission Override AU','Sales Commission Override BR','Sales Commission Override CA','Sales Commission Override CH','Sales Commission Override CN','Sales Commission Override CZ','Sales Commission Override DE','Sales Commission Override GB','Sales Commission Override JP','Sales Commission Override KR','Sales Commission Override NL','Sales Commission Override NZ','Sales Commission Override SE','Sales Commission Override SG','Sales Commission Override US',
-- 'Sales Compensation AE','Sales Compensation AR','Sales Compensation AU','Sales Compensation BR','Sales Compensation CA','Sales Compensation CH','Sales Compensation CN','Sales Compensation CZ','Sales Compensation DE','Sales Compensation GB','Sales Compensation JP','Sales Compensation KR','Sales Compensation NL','Sales Compensation NZ','Sales Compensation SE','Sales Compensation SG','Sales Compensation US')
AND (ET.BASE_ELEMENT_NAME LIKE 'Sales Compensation Bonus%' OR ET.BASE_ELEMENT_NAME LIKE 'Sales Commission Override%' OR (ET.BASE_ELEMENT_NAME LIKE 'Sales Compensation%' AND ET.BASE_ELEMENT_NAME NOT LIKE 'Sales Compensation Bonus%'))
AND ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS Comp_Rate_Description,
(SELECT
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= 'Sales Incentive'
and (PIV.BASE_NAME = ('Amount'))
-- AND ET.BASE_ELEMENT_NAME IN ('Sales Compensation Bonus AE','Sales Compensation Bonus AR','Sales Compensation Bonus AU','Sales Compensation Bonus BR','Sales Compensation Bonus CA','Sales Compensation Bonus CH','Sales Compensation Bonus CN','Sales Compensation Bonus CZ','Sales Compensation Bonus DE','Sales Compensation Bonus GB','Sales Compensation Bonus JP','Sales Compensation Bonus KR','Sales Compensation Bonus NL','Sales Compensation Bonus NZ','Sales Compensation Bonus SE','Sales Compensation Bonus SG','Sales Compensation Bonus US',
-- 'Sales Commission Override AE','Sales Commission Override AR','Sales Commission Override AU','Sales Commission Override BR','Sales Commission Override CA','Sales Commission Override CH','Sales Commission Override CN','Sales Commission Override CZ','Sales Commission Override DE','Sales Commission Override GB','Sales Commission Override JP','Sales Commission Override KR','Sales Commission Override NL','Sales Commission Override NZ','Sales Commission Override SE','Sales Commission Override SG','Sales Commission Override US',
-- 'Sales Compensation AE','Sales Compensation AR','Sales Compensation AU','Sales Compensation BR','Sales Compensation CA','Sales Compensation CH','Sales Compensation CN','Sales Compensation CZ','Sales Compensation DE','Sales Compensation GB','Sales Compensation JP','Sales Compensation KR','Sales Compensation NL','Sales Compensation NZ','Sales Compensation SE','Sales Compensation SG','Sales Compensation US')
AND (ET.BASE_ELEMENT_NAME LIKE 'Sales Compensation Bonus%' OR ET.BASE_ELEMENT_NAME LIKE 'Sales Commission Override%' OR (ET.BASE_ELEMENT_NAME LIKE 'Sales Compensation%' AND ET.BASE_ELEMENT_NAME NOT LIKE 'Sales Compensation Bonus%'))
AND ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+)) AS Comp_Rate

FROM

PER_PERSON_SECURED_LIST_V PER,
PER_PERSON_NAMES_F NAME,
PER_ASSIGNMENT_SECURED_LIST_V ASS,
-- HRC_LOADER_BATCH_KEY_MAP HRC,
-- HR_ORGANIZATION_UNITS DEP,
HR_LEGAL_ENTITIES LEG,
HR_LOCATIONS_ALL LOC,
PER_JOBS_F_VL JOB,
CMP_SALARY_V CUR

WHERE


PER.PERSON_ID = ASS.PERSON_ID
AND ASS.PERSON_ID = NAME.PERSON_ID
-- AND ASS.ORGANIZATION_ID = HRC.TARGET_ID
-- AND ASS.ORGANIZATION_ID = DEP.ORGANIZATION_ID(+)
AND LEG.ORGANIZATION_ID(+)=ASS.LEGAL_ENTITY_ID
AND LEG.CLASSIFICATION_CODE ='HCM_LEMP'
AND ASS.LOCATION_ID = LOC.LOCATION_ID(+)
AND ASS.ASSIGNMENT_ID= CUR.ASSIGNMENT_ID(+)
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E','C')
AND ASS.ACTION_CODE IN ('LEAVE_OF_ABSENCE','RETURN_FROM_LEAVE')
AND PER.PERSON_ID IN (SELECT
per.PERSON_ID
FROM
PER_PERSON_SECURED_LIST_V PER,
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= 'Sales Incentive'
and (PIV.BASE_NAME = ('Amount'))
-- AND ET.BASE_ELEMENT_NAME IN ('Sales Compensation Bonus AE','Sales Compensation Bonus AR','Sales Compensation Bonus AU','Sales Compensation Bonus BR','Sales Compensation Bonus CA','Sales Compensation Bonus CH','Sales Compensation Bonus CN','Sales Compensation Bonus CZ','Sales Compensation Bonus DE','Sales Compensation Bonus GB','Sales Compensation Bonus JP','Sales Compensation Bonus KR','Sales Compensation Bonus NL','Sales Compensation Bonus NZ','Sales Compensation Bonus SE','Sales Compensation Bonus SG','Sales Compensation Bonus US',
-- 'Sales Commission Override AE','Sales Commission Override AR','Sales Commission Override AU','Sales Commission Override BR','Sales Commission Override CA','Sales Commission Override CH','Sales Commission Override CN','Sales Commission Override CZ','Sales Commission Override DE','Sales Commission Override GB','Sales Commission Override JP','Sales Commission Override KR','Sales Commission Override NL','Sales Commission Override NZ','Sales Commission Override SE','Sales Commission Override SG','Sales Commission Override US',
-- 'Sales Compensation AE','Sales Compensation AR','Sales Compensation AU','Sales Compensation BR','Sales Compensation CA','Sales Compensation CH','Sales Compensation CN','Sales Compensation CZ','Sales Compensation DE','Sales Compensation GB','Sales Compensation JP','Sales Compensation KR','Sales Compensation NL','Sales Compensation NZ','Sales Compensation SE','Sales Compensation SG','Sales Compensation US')
AND (ET.BASE_ELEMENT_NAME LIKE 'Sales Compensation Bonus%' OR ET.BASE_ELEMENT_NAME LIKE 'Sales Commission Override%' OR (ET.BASE_ELEMENT_NAME LIKE 'Sales Compensation%' AND ET.BASE_ELEMENT_NAME NOT LIKE 'Sales Compensation Bonus%'))
AND ASS.EFFECTIVE_START_DATE BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN PIV.EFFECTIVE_START_DATE(+) AND PIV.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN EE.EFFECTIVE_START_DATE(+) AND EE.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN EEV.EFFECTIVE_START_DATE(+) AND EEV.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN ET.EFFECTIVE_START_DATE(+) AND ET.EFFECTIVE_END_DATE(+))
AND TRUNC(ASS.EFFECTIVE_START_DATE) BETWEEN :DATE_FROM AND :DATE_TO
AND ASS.EFFECTIVE_START_DATE BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND ASS.EFFECTIVE_START_DATE BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN LEG.EFFECTIVE_START_DATE(+) AND LEG.EFFECTIVE_END_DATE(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN CUR.DATE_FROM(+) AND CUR.DATE_TO(+)
AND ASS.EFFECTIVE_START_DATE BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)


ORDER BY PERSON_NUMBER, ASS.EFFECTIVE_START_DATE

Comments

Popular posts from this blog

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',...