*************************************************************************************************************************
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','HIRE_ADD_WORK_RELATION') THEN TO_CHAR(POS.DATE_START,'YYYYMMDD') ELSE '' END AS RECENT_HIRE_DATE,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE' THEN 'A' ELSE 'T' END AS EMP_STATUS_CD,
TO_CHAR(POS.ORIGINAL_DATE_OF_HIRE,'YYYYMMDD') AS HIRE_DATE,
CASE
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'F'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'P' ELSE ''
END AS EMPLOYEE_CATEGORY,
TO_CHAR(POS.ACTUAL_TERMINATION_DATE ,'YYYYMMDD') AS TERMINATION_DATE,
'' AS TERM_TWN,
'' AS TERM_UWX,
'' AS LAST_WORKING_DATE,
'' AS WORK_STATE,
'' AS WORK_LOC,
'' AS FEDERAL_ID,
'' AS STATE_UNEMP,
'' AS ADJUSTD_HR_DT
FROM PER_NATIONAL_IDENTIFIERS PNI,
PER_ALL_PEOPLE_F PER,
PER_PERSONS PP,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_F ASS,
PER_JOBS_F_VL JOB,
HR_LOCATIONS_ALL_F_VL LOC,
PER_PERIODS_OF_SERVICE POS
WHERE PER.PERSON_ID=ASS.PERSON_ID
AND PNI.PERSON_ID(+)=PER.PERSON_ID
AND NAME.PERSON_ID(+)=PER.PERSON_ID
AND PP.PERSON_ID(+)=PER.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 LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')--,'C')
AND LOC.COUNTRY='US'
AND ASS.LEGISLATION_CODE IN ('US')
AND PNI.NATIONAL_IDENTIFIER_TYPE='SSN'
AND PNI.NATIONAL_IDENTIFIER_NUMBER IS NOT NULL AND PP.ATTRIBUTE6 IS NOT NULL AND LOC.INTERNAL_LOCATION_CODE IS NOT NULL
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') 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(+)
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(+)
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,
ASS.ASS_ATTRIBUTE4 AS NAME,
CASE WHEN ASS.ACTION_CODE IN ('REHIRE','REHIRE_WKR','HIRE_ADD_WORK_RELATION') THEN TO_CHAR(POS.DATE_START,'YYYYMMDD') ELSE '' END AS RECENT_HIRE_DATE,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE' THEN 'A' ELSE 'T' END AS EMP_STATUS_CD,
TO_CHAR(POS.ORIGINAL_DATE_OF_HIRE,'YYYYMMDD') AS HIRE_DATE,
CASE
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'F'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'P' ELSE ''
END AS EMPLOYEE_CATEGORY,
TO_CHAR(POS.ACTUAL_TERMINATION_DATE ,'YYYYMMDD') AS TERMINATION_DATE,
'' AS TERM_TWN,
'' AS TERM_UWX,
'' AS LAST_WORKING_DATE,
'' AS WORK_STATE,
'' AS WORK_LOC,
'' AS FEDERAL_ID,
'' AS STATE_UNEMP,
'' AS ADJUSTD_HR_DT
FROM PER_NATIONAL_IDENTIFIERS PNI,
PER_ALL_PEOPLE_F PER,
PER_PERSONS PP,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_F ASS,
PER_JOBS_F_VL JOB,
HR_LOCATIONS_ALL_F_VL LOC,
PER_PERIODS_OF_SERVICE POS
WHERE PER.PERSON_ID=ASS.PERSON_ID
AND PNI.PERSON_ID(+)=PER.PERSON_ID
AND NAME.PERSON_ID(+)=PER.PERSON_ID
AND PP.PERSON_ID(+)=PER.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 LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')--,'C')
AND LOC.COUNTRY='US'
AND ASS.LEGISLATION_CODE IN ('US')
AND PNI.NATIONAL_IDENTIFIER_TYPE='SSN'
AND PNI.NATIONAL_IDENTIFIER_NUMBER IS NOT NULL AND PP.ATTRIBUTE6 IS NOT NULL AND LOC.INTERNAL_LOCATION_CODE IS NOT NULL
AND ((ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE') OR (GREATEST(POS.ACTUAL_TERMINATION_DATE,POS.LAST_UPDATE_DATE) BETWEEN SYSDATE-7 AND 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') 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(+)
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(+)
SELECT '350EMPLI9LOC' AS RECORD_TYPE,
'17059' AS CMP_CD,
LPAD(REPLACE(PNI.NATIONAL_IDENTIFIER_NUMBER,'-',''),9,'0') AS SSN,
'' AS BLK,
LOC.INTERNAL_LOCATION_CODE AS LOCATION_CODE,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE' THEN 'A' ELSE 'R' END AS ACTION_CODE
FROM PER_NATIONAL_IDENTIFIERS PNI,
PER_ALL_PEOPLE_F PER,
PER_ALL_ASSIGNMENTS_F ASS,
HR_LOCATIONS_ALL_F_VL LOC
WHERE PER.PERSON_ID=ASS.PERSON_ID
AND PNI.PERSON_ID(+)=PER.PERSON_ID
AND LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND LOC.COUNTRY='US'
AND ASS.LEGISLATION_CODE IN ('US')
AND ASS.ASSIGNMENT_TYPE IN ('E')--,'C')
AND PNI.NATIONAL_IDENTIFIER_TYPE='SSN'
AND PNI.NATIONAL_IDENTIFIER_NUMBER IS NOT NULL AND LOC.INTERNAL_LOCATION_CODE IS NOT NULL
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') 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 LOC.EFFECTIVE_START_DATE(+) and LOC.EFFECTIVE_END_DATE(+)
SELECT '350EMPLI9LOC' AS RECORD_TYPE,
'17059' AS CMP_CD,
LPAD(REPLACE(PNI.NATIONAL_IDENTIFIER_NUMBER,'-',''),9,'0') AS SSN,
'' AS BLK,
LOC.INTERNAL_LOCATION_CODE AS LOCATION_CODE,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE' THEN 'A' ELSE 'R' END AS ACTION_CODE
FROM PER_NATIONAL_IDENTIFIERS PNI,
PER_ALL_PEOPLE_F PER,
PER_ALL_ASSIGNMENTS_F ASS,
HR_LOCATIONS_ALL_F_VL LOC,
PER_PERIODS_OF_SERVICE POS
WHERE PER.PERSON_ID=ASS.PERSON_ID
AND PNI.PERSON_ID(+)=PER.PERSON_ID
AND LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND POS.PERSON_ID(+)=ASS.PERSON_ID
AND POS.PERIOD_OF_SERVICE_ID(+)=ASS.PERIOD_OF_SERVICE_ID
AND LOC.COUNTRY='US'
AND ASS.LEGISLATION_CODE IN ('US')
AND ASS.ASSIGNMENT_TYPE IN ('E')--,'C')
AND PNI.NATIONAL_IDENTIFIER_TYPE='SSN'
AND PNI.NATIONAL_IDENTIFIER_NUMBER IS NOT NULL AND LOC.INTERNAL_LOCATION_CODE IS NOT NULL
AND ((ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE') OR (GREATEST(POS.ACTUAL_TERMINATION_DATE,POS.LAST_UPDATE_DATE) BETWEEN SYSDATE-7 AND 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') 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 LOC.EFFECTIVE_START_DATE(+) and LOC.EFFECTIVE_END_DATE(+)
SELECT DISTINCT
'999FOOTER' AS RECORD_TYPE,
'' AS BLK,
'' AS BLK1,
COUNT(A.LOCATION_ID) AS LOC_COUNT
FROM PER_ALL_ASSIGNMENTS_F A,HR_LOCATIONS_ALL B
WHERE A.LOCATION_ID=B.LOCATION_ID(+)
AND A.LEGISLATION_CODE = 'US'
AND B.COUNTRY='US'
AND A.ASSIGNMENT_STATUS_TYPE='ACTIVE'
and A.ASSIGNMENT_TYPE IN ('E')
AND GREATEST(A.LAST_UPDATE_DATE,A.EFFECTIVE_START_DATE) BETWEEN SYSDATE - 7 AND SYSDATE
AND TRUNC(sysdate) between B.EFFECTIVE_START_DATE(+) and B.EFFECTIVE_END_DATE(+)
AND TRUNC(sysdate) between A.EFFECTIVE_START_DATE and A.EFFECTIVE_END_DATE
------
03_Emergency_DM
SELECT T.*,
CASE
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||T2.NUM2||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN '"'||T2.NUM2||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||NVL(NVL(T3.NUM3,T4.NUM4),T5.NUM5)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN ''
ELSE '' END AS PHONE1,
T3.NUM3 AS WORK_,
T4.NUM4 AS WORK_2,
T5.NUM5 AS WORK_3,
T2.NUM2 AS HOME,
T1.NUM1 AS CELL,
T6.NUM6 AS CELL_H,
CASE
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
ELSE '' END AS SMSPHONE,
(SELECT '"'||((P.PHONE_NUMBER) || 'X' ||(P.EXTENSION))||'"' FROM PER_PHONES_V P WHERE P.PERSON_ID=T.PERSON_ID AND P.PHONE_TYPE IN NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) AND TRUNC(SYSDATE) BETWEEN P.DATE_FROM AND P.DATE_TO AND P.PHONE_NUMBER IS NOT NULL AND P.EXTENSION IS NOT NULL) AS PHONE3
FROM (SELECT ASS.PERSON_ID,
'"'||' '||'"' AS AGENCY,
'"'||PER.PERSON_NUMBER||'"' AS REF_CODE,
'"'||NAME.FIRST_NAME||'"' AS FIRST_NAME,
'"'||NAME.LAST_NAME||'"' AS LAST_NAME,
-- '"'||PH.PHONE_NUMBER||'"' AS PHONE2,
(SELECT '"'||PH.PHONE_NUMBER||'"' FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='H1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM AND PH.DATE_TO AND PH.PHONE_NUMBER IS NOT NULL) AS PHONE2,
'' AS TERMINATED,
'"'||LOC.LOCATION_NAME||'"' AS GROUP_,
CASE WHEN (SELECT LOCATION_NAME
FROM PER_ALL_ASSIGNMENTS_M PAA,
HR_LOCATIONS HL
WHERE PAA.LOCATION_ID = HL.LOCATION_ID
AND PAA.PERSON_ID = ASS.PERSON_ID
AND PAA.ASSIGNMENT_TYPE IN ('E')
AND SUBSTR(PAA.EFFECTIVE_END_DATE,1,10) = SUBSTR(ASS.EFFECTIVE_START_DATE-1,1,10)
AND PAA.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E') AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND PAA.EFFECTIVE_LATEST_CHANGE = 'Y'
AND TRUNC(SYSDATE) BETWEEN HL.EFFECTIVE_START_DATE AND HL.EFFECTIVE_END_DATE) = LOC.LOCATION_NAME THEN ''
ELSE (SELECT '"'||LOCATION_CODE||'"'
FROM PER_ALL_ASSIGNMENTS_M PAA,
HR_LOCATIONS HL
WHERE PAA.LOCATION_ID = HL.LOCATION_ID
AND PAA.PERSON_ID = ASS.PERSON_ID
AND PAA.ASSIGNMENT_TYPE IN ('E')
AND SUBSTR(PAA.EFFECTIVE_END_DATE,1,10) = SUBSTR(ASS.EFFECTIVE_START_DATE-1,1,10)
AND PAA.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E') AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND PAA.EFFECTIVE_LATEST_CHANGE = 'Y'
AND PAA.LAST_UPDATE_DATE BETWEEN TRUNC(SYSDATE-7) AND TRUNC(SYSDATE)
AND TRUNC(SYSDATE) BETWEEN HL.EFFECTIVE_START_DATE AND HL.EFFECTIVE_END_DATE)
END AS DEL_GROUP
FROM PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
HR_LOCATIONS_ALL LOC,
-- PER_PHONES_V PH,
PER_ALL_ASSIGNMENTS_F ASS
WHERE 1=1
-- AND PH.PHONE_TYPE(+) ='H1'
-- AND PH.PERSON_ID = PER.PERSON_ID
AND 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 ASSIGNMENT_TYPE IN ('E')
AND ASS.LEGISLATION_CODE IN ('US','CA')
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('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') AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
-- AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM AND PH.DATE_TO
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE AND NAME.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
ORDER BY PER.PERSON_NUMBER) T
LEFT OUTER JOIN (SELECT
PER1.PERSON_ID AS P1,
PW.PHONE_NUMBER AS NUM1,
PW.PHONE_TYPE AS TYP1
FROM
PER_ALL_PEOPLE_F PER1,
PER_ALL_ASSIGNMENTS_F ASS1,
PER_PHONES_V PW
WHERE
PW.PHONE_TYPE ='WM'
AND PER1.PERSON_ID=ASS1.PERSON_ID
AND PW.PERSON_ID = PER1.PERSON_ID
AND ASS1.ASSIGNMENT_TYPE IN ('E')
AND ASS1.LEGISLATION_CODE IN ('US','CA')
AND ASS1.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER1.EFFECTIVE_START_DATE AND PER1.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS1.EFFECTIVE_START_DATE AND ASS1.EFFECTIVE_END_DATE
-- AND TRUNC(SYSDATE) BETWEEN PW.DATE_FROM AND PW.DATE_TO
AND PW.DATE_FROM = (SELECT MAX(DATE_FROM) FROM PER_PHONES_V WHERE PERSON_ID = PW.PERSON_ID AND PHONE_TYPE = PW.PHONE_TYPE)
) T1
ON T.PERSON_ID=T1.P1
LEFT OUTER JOIN (SELECT
PER6.PERSON_ID AS P6,
PWC.PHONE_NUMBER AS NUM6,
PWC.PHONE_TYPE AS TYP6
FROM
PER_ALL_PEOPLE_F PER6,
PER_ALL_ASSIGNMENTS_F ASS6,
PER_PHONES_V PWC
WHERE
PWC.PHONE_TYPE ='HM'
AND PER6.PERSON_ID=ASS6.PERSON_ID
AND PWC.PERSON_ID = PER6.PERSON_ID
AND ASS6.ASSIGNMENT_TYPE IN ('E')
AND ASS6.LEGISLATION_CODE IN ('US','CA')
AND ASS6.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER6.EFFECTIVE_START_DATE AND PER6.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS6.EFFECTIVE_START_DATE AND ASS6.EFFECTIVE_END_DATE
-- AND TRUNC(SYSDATE) BETWEEN PWC.DATE_FROM AND PWC.DATE_TO
AND PWC.DATE_FROM = (SELECT MAX(DATE_FROM) FROM PER_PHONES_V WHERE PERSON_ID = PWC.PERSON_ID AND PHONE_TYPE = PWC.PHONE_TYPE)
) T6
ON T.PERSON_ID=T6.P6
LEFT OUTER JOIN (SELECT
PER2.PERSON_ID AS P2,
PH.PHONE_NUMBER AS NUM2,
PH.PHONE_TYPE AS TYP2
FROM
PER_ALL_PEOPLE_F PER2,
PER_ALL_ASSIGNMENTS_F ASS2,
PER_PHONES_V PH
WHERE
PH.PHONE_TYPE ='H1'
AND PER2.PERSON_ID=ASS2.PERSON_ID
AND PH.PERSON_ID = PER2.PERSON_ID
AND ASS2.ASSIGNMENT_TYPE IN ('E')
AND ASS2.LEGISLATION_CODE IN ('US','CA')
AND ASS2.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER2.EFFECTIVE_START_DATE AND PER2.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS2.EFFECTIVE_START_DATE AND ASS2.EFFECTIVE_END_DATE
-- AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM AND PH.DATE_TO
AND PH.DATE_FROM = (SELECT MAX(DATE_FROM) FROM PER_PHONES_V WHERE PERSON_ID = PH.PERSON_ID AND PHONE_TYPE = PH.PHONE_TYPE)
) T2
ON T.PERSON_ID=T2.P2
LEFT OUTER JOIN (SELECT
PER3.PERSON_ID AS P3,
PWC.PHONE_NUMBER AS NUM3,
PWC.PHONE_TYPE AS TYP3
FROM
PER_ALL_PEOPLE_F PER3,
PER_ALL_ASSIGNMENTS_F ASS3,
PER_PHONES_V PWC
WHERE
PWC.PHONE_TYPE ='W1'
AND PER3.PERSON_ID=ASS3.PERSON_ID
AND PWC.PERSON_ID = PER3.PERSON_ID
AND ASS3.ASSIGNMENT_TYPE IN ('E')
AND ASS3.LEGISLATION_CODE IN ('US','CA')
AND ASS3.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER3.EFFECTIVE_START_DATE AND PER3.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS3.EFFECTIVE_START_DATE AND ASS3.EFFECTIVE_END_DATE
-- AND TRUNC(SYSDATE) BETWEEN PWC.DATE_FROM AND PWC.DATE_TO
AND PWC.DATE_FROM = (SELECT MAX(DATE_FROM) FROM PER_PHONES_V WHERE PERSON_ID = PWC.PERSON_ID AND PHONE_TYPE = PWC.PHONE_TYPE)
) T3
ON T.PERSON_ID=T3.P3
LEFT OUTER JOIN (SELECT
PER4.PERSON_ID AS P4,
PWC.PHONE_NUMBER AS NUM4,
PWC.PHONE_TYPE AS TYP4
FROM
PER_ALL_PEOPLE_F PER4,
PER_ALL_ASSIGNMENTS_F ASS4,
PER_PHONES_V PWC
WHERE
PWC.PHONE_TYPE ='W2'
AND PER4.PERSON_ID=ASS4.PERSON_ID
AND PWC.PERSON_ID = PER4.PERSON_ID
AND ASS4.ASSIGNMENT_TYPE IN ('E')
AND ASS4.LEGISLATION_CODE IN ('US','CA')
AND ASS4.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER4.EFFECTIVE_START_DATE AND PER4.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS4.EFFECTIVE_START_DATE AND ASS4.EFFECTIVE_END_DATE
-- AND TRUNC(SYSDATE) BETWEEN PWC.DATE_FROM AND PWC.DATE_TO
AND PWC.DATE_FROM = (SELECT MAX(DATE_FROM) FROM PER_PHONES_V WHERE PERSON_ID = PWC.PERSON_ID AND PHONE_TYPE = PWC.PHONE_TYPE)
) T4
ON T.PERSON_ID=T4.P4
LEFT OUTER JOIN (SELECT
PER5.PERSON_ID AS P5,
PWC.PHONE_NUMBER AS NUM5,
PWC.PHONE_TYPE AS TYP5
FROM
PER_ALL_PEOPLE_F PER5,
PER_ALL_ASSIGNMENTS_F ASS5,
PER_PHONES_V PWC
WHERE
PWC.PHONE_TYPE ='W3'
AND PER5.PERSON_ID=ASS5.PERSON_ID
AND PWC.PERSON_ID = PER5.PERSON_ID
AND ASS5.ASSIGNMENT_TYPE IN ('E')
AND ASS5.LEGISLATION_CODE IN ('US','CA')
AND ASS5.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER5.EFFECTIVE_START_DATE AND PER5.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS5.EFFECTIVE_START_DATE AND ASS5.EFFECTIVE_END_DATE
-- AND TRUNC(SYSDATE) BETWEEN PWC.DATE_FROM AND PWC.DATE_TO
AND PWC.DATE_FROM = (SELECT MAX(DATE_FROM) FROM PER_PHONES_V WHERE PERSON_ID = PWC.PERSON_ID AND PHONE_TYPE = PWC.PHONE_TYPE)
) T5
ON T.PERSON_ID=T5.P5
WHERE (T1.NUM1 IS NOT NULL OR T2.NUM2 IS NOT NULL OR T3.NUM3 IS NOT NULL OR T4.NUM4 IS NOT NULL OR T5.NUM5 IS NOT NULL OR T6.NUM6 IS NOT NULL)
-----
SELECT T.*,
CASE
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||T2.NUM2||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN '"'||T2.NUM2||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||NVL(NVL(T3.NUM3,T4.NUM4),T5.NUM5)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN ''
ELSE '' END AS PHONE1,
T3.NUM3 AS WORK_,
T4.NUM4 AS WORK_2,
T5.NUM5 AS WORK_3,
T2.NUM2 AS HOME,
T1.NUM1 AS CELL,
T6.NUM6 AS CELL_H,
CASE
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||T2.NUM2||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN '"'||T2.NUM2||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||NVL(NVL(T3.NUM3,T4.NUM4),T5.NUM5)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||NVL(NVL(T3.NUM3,T4.NUM4),T5.NUM5)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN '"'||T2.NUM2||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||NVL(NVL(T3.NUM3,T4.NUM4),T5.NUM5)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN ''
ELSE '' END AS SMSPHONE,
(SELECT '"'||((P.PHONE_NUMBER) || 'X' ||(P.EXTENSION))||'"' FROM PER_PHONES_V P WHERE P.PERSON_ID=T.PERSON_ID AND P.PHONE_TYPE IN NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) AND TRUNC(SYSDATE) BETWEEN P.DATE_FROM AND P.DATE_TO AND P.PHONE_NUMBER IS NOT NULL AND P.EXTENSION IS NOT NULL) AS PHONE3
FROM (SELECT ASS.PERSON_ID,
'"'||' '||'"' AS AGENCY,
'"'||PER.PERSON_NUMBER||'"' AS REF_CODE,
'"'||NAME.FIRST_NAME||'"' AS FIRST_NAME,
'"'||NAME.LAST_NAME||'"' AS LAST_NAME,
(SELECT '"'||PH.PHONE_NUMBER||'"' FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='H1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM AND PH.DATE_TO AND PH.PHONE_NUMBER IS NOT NULL) AS PHONE2,
'' AS TERMINATED,
'"'||LOC.LOCATION_NAME||'"' AS GROUP_,
CASE WHEN (SELECT LOCATION_NAME
FROM PER_ALL_ASSIGNMENTS_M PAA,
HR_LOCATIONS HL
WHERE PAA.LOCATION_ID = HL.LOCATION_ID
AND PAA.PERSON_ID = ASS.PERSON_ID
AND PAA.ASSIGNMENT_TYPE IN ('E')
AND SUBSTR(PAA.EFFECTIVE_END_DATE,1,10) = SUBSTR(ASS.EFFECTIVE_START_DATE-1,1,10)
AND PAA.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E') AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND PAA.EFFECTIVE_LATEST_CHANGE = 'Y'
AND TRUNC(SYSDATE) BETWEEN HL.EFFECTIVE_START_DATE AND HL.EFFECTIVE_END_DATE) = LOC.LOCATION_NAME THEN ''
ELSE (SELECT '"'||LOCATION_CODE||'"'
FROM PER_ALL_ASSIGNMENTS_M PAA,
HR_LOCATIONS HL
WHERE PAA.LOCATION_ID = HL.LOCATION_ID
AND PAA.PERSON_ID = ASS.PERSON_ID
AND PAA.ASSIGNMENT_TYPE IN ('E')
AND SUBSTR(PAA.EFFECTIVE_END_DATE,1,10) = SUBSTR(ASS.EFFECTIVE_START_DATE-1,1,10)
AND PAA.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E') AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND PAA.EFFECTIVE_LATEST_CHANGE = 'Y'
AND PAA.LAST_UPDATE_DATE BETWEEN TRUNC(SYSDATE-7) AND TRUNC(SYSDATE)
AND TRUNC(SYSDATE) BETWEEN HL.EFFECTIVE_START_DATE AND HL.EFFECTIVE_END_DATE)
END AS DEL_GROUP
FROM PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
HR_LOCATIONS_ALL LOC,
PER_ALL_ASSIGNMENTS_F ASS
WHERE 1=1
AND 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 ASSIGNMENT_TYPE IN ('E')
AND ASS.LEGISLATION_CODE IN ('US','CA')
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('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') AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE AND NAME.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
ORDER BY PER.PERSON_NUMBER) T
LEFT OUTER JOIN (SELECT
PER1.PERSON_ID AS P1,
PW.PHONE_NUMBER AS NUM1,
PW.PHONE_TYPE AS TYP1
FROM
PER_ALL_PEOPLE_F PER1,
PER_ALL_ASSIGNMENTS_F ASS1,
PER_PHONES_V PW
WHERE
PW.PHONE_TYPE ='WM'
AND PER1.PERSON_ID=ASS1.PERSON_ID
AND PW.PERSON_ID = PER1.PERSON_ID
AND ASS1.ASSIGNMENT_TYPE IN ('E')
AND ASS1.LEGISLATION_CODE IN ('US','CA')
AND ASS1.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER1.EFFECTIVE_START_DATE AND PER1.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS1.EFFECTIVE_START_DATE AND ASS1.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PW.DATE_FROM AND PW.DATE_TO
) T1
ON T.PERSON_ID=T1.P1
LEFT OUTER JOIN (SELECT
PER6.PERSON_ID AS P6,
PWC.PHONE_NUMBER AS NUM6,
PWC.PHONE_TYPE AS TYP6
FROM
PER_ALL_PEOPLE_F PER6,
PER_ALL_ASSIGNMENTS_F ASS6,
PER_PHONES_V PWC
WHERE
PWC.PHONE_TYPE ='HM'
AND PER6.PERSON_ID=ASS6.PERSON_ID
AND PWC.PERSON_ID = PER6.PERSON_ID
AND ASS6.ASSIGNMENT_TYPE IN ('E')
AND ASS6.LEGISLATION_CODE IN ('US','CA')
AND ASS6.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER6.EFFECTIVE_START_DATE AND PER6.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS6.EFFECTIVE_START_DATE AND ASS6.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PWC.DATE_FROM AND PWC.DATE_TO
) T6
ON T.PERSON_ID=T6.P6
LEFT OUTER JOIN (SELECT
PER2.PERSON_ID AS P2,
PH.PHONE_NUMBER AS NUM2,
PH.PHONE_TYPE AS TYP2
FROM
PER_ALL_PEOPLE_F PER2,
PER_ALL_ASSIGNMENTS_F ASS2,
PER_PHONES_V PH
WHERE
PH.PHONE_TYPE ='H1'
AND PER2.PERSON_ID=ASS2.PERSON_ID
AND PH.PERSON_ID = PER2.PERSON_ID
AND ASS2.ASSIGNMENT_TYPE IN ('E')
AND ASS2.LEGISLATION_CODE IN ('US','CA')
AND ASS2.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER2.EFFECTIVE_START_DATE AND PER2.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS2.EFFECTIVE_START_DATE AND ASS2.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM AND PH.DATE_TO
) T2
ON T.PERSON_ID=T2.P2
LEFT OUTER JOIN (SELECT
PER3.PERSON_ID AS P3,
PWC.PHONE_NUMBER AS NUM3,
PWC.PHONE_TYPE AS TYP3
FROM
PER_ALL_PEOPLE_F PER3,
PER_ALL_ASSIGNMENTS_F ASS3,
PER_PHONES_V PWC
WHERE
PWC.PHONE_TYPE ='W1'
AND PER3.PERSON_ID=ASS3.PERSON_ID
AND PWC.PERSON_ID = PER3.PERSON_ID
AND ASS3.ASSIGNMENT_TYPE IN ('E')
AND ASS3.LEGISLATION_CODE IN ('US','CA')
AND ASS3.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER3.EFFECTIVE_START_DATE AND PER3.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS3.EFFECTIVE_START_DATE AND ASS3.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PWC.DATE_FROM AND PWC.DATE_TO
) T3
ON T.PERSON_ID=T3.P3
LEFT OUTER JOIN (SELECT
PER4.PERSON_ID AS P4,
PWC.PHONE_NUMBER AS NUM4,
PWC.PHONE_TYPE AS TYP4
FROM
PER_ALL_PEOPLE_F PER4,
PER_ALL_ASSIGNMENTS_F ASS4,
PER_PHONES_V PWC
WHERE
PWC.PHONE_TYPE ='W2'
AND PER4.PERSON_ID=ASS4.PERSON_ID
AND PWC.PERSON_ID = PER4.PERSON_ID
AND ASS4.ASSIGNMENT_TYPE IN ('E')
AND ASS4.LEGISLATION_CODE IN ('US','CA')
AND ASS4.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER4.EFFECTIVE_START_DATE AND PER4.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS4.EFFECTIVE_START_DATE AND ASS4.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PWC.DATE_FROM AND PWC.DATE_TO
) T4
ON T.PERSON_ID=T4.P4
LEFT OUTER JOIN (SELECT
PER5.PERSON_ID AS P5,
PWC.PHONE_NUMBER AS NUM5,
PWC.PHONE_TYPE AS TYP5
FROM
PER_ALL_PEOPLE_F PER5,
PER_ALL_ASSIGNMENTS_F ASS5,
PER_PHONES_V PWC
WHERE
PWC.PHONE_TYPE ='W3'
AND PER5.PERSON_ID=ASS5.PERSON_ID
AND PWC.PERSON_ID = PER5.PERSON_ID
AND ASS5.ASSIGNMENT_TYPE IN ('E')
AND ASS5.LEGISLATION_CODE IN ('US','CA')
AND ASS5.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER5.EFFECTIVE_START_DATE AND PER5.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS5.EFFECTIVE_START_DATE AND ASS5.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PWC.DATE_FROM AND PWC.DATE_TO
) T5
ON T.PERSON_ID=T5.P5
WHERE (T1.NUM1 IS NULL AND T2.NUM2 IS NULL AND T3.NUM3 IS NULL AND T4.NUM4 IS NULL AND T5.NUM5 IS NULL AND T6.NUM6 IS NULL)
***********************************************************************************************************************************************
Interface ConcurExpense Feed_DM
SELECT
ASS.ASSIGNMENT_TYPE,
ASS.ASS_ATTRIBUTE9,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
NAME.FIRST_NAME AS FIRST_NAME,
NAME.MIDDLE_NAMES AS MIDDLE_NAME,
NAME.LAST_NAME AS LAST_NAME,
(select distinct EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1') as EMAIL_ADDR,
case when PER.PERSON_NUMBER in ('502928') THEN '998270'
else
(SELECT
CASE WHEN PER.PERSON_NUMBER <> '998270' AND PERSON_NUMBER = '502928' THEN '998270'
when PER.PERSON_NUMBER in ('998270') THEN '502928' ELSE PERSON_NUMBER END
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) end AS SUPERVISOR_ID,
(select distinct TO_CHAR(min(a.date_start),'YYYY-MM-DD') from per_periods_of_service a, per_all_assignments_m b where a.person_id=b.person_id and b.PERIOD_OF_SERVICE_ID=a.PERIOD_OF_SERVICE_ID and b.assignment_type='E' and b.person_id=ass.person_id) AS HIRE_DATE,
TO_CHAR(PPS.DATE_START,'YYYY-MM-DD') AS LATEST_HIRE_DATE,
case when PPS.ACTUAL_TERMINATION_DATE is null then 'NULL'
when PPS.ACTUAL_TERMINATION_DATE is not null then TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'YYYY-MM-DD') else '' end AS TERMINATION_DATE,
CASE WHEN PER.PERSON_NUMBER IN ('900377','991515','991630') THEN 'GBP' ELSE CUR.LOCAL_CURRENCY END AS CURRENCY,
--CUR.LOCAL_CURRENCY AS CURRENCY,
-- CASE WHEN FT.TERRITORY_SHORT_NAME='United States' THEN 'USA'
-- ELSE '' END AS COUNTRY,
FT.iso_TERRITORY_code AS COUNTRY,
LOC.COUNTRY as country_code,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,1,5) 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 ACCOUNT,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,7,3) FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS DEPTID_CF,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,19,4) FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS OPERATING_UNIT,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,11,3) FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS CHARTFIELD1,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,15,3) FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS CHARTFIELD2,
ASS.WORK_AT_HOME
FROM
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_F ASS,
PER_ASSIGNMENT_SUPERVISORS_F MAN,
FND_TERRITORIES_VL FT,
HR_LOCATIONS_ALL LOC,
PER_PERIODS_OF_SERVICE PPS,
PER_JOBS JOB,
CMP_SALARY_V CUR,
PER_DEPARTMENTS DEPT
WHERE
PER.PERSON_ID=NAME.PERSON_ID(+)
AND PER.PERSON_ID=ASS.PERSON_ID(+)
AND ASS.ASSIGNMENT_ID=MAN.ASSIGNMENT_ID(+)
AND FT.TERRITORY_CODE(+)=LOC.COUNTRY
AND ASS.LOCATION_ID = LOC.LOCATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID=PPS.PERIOD_OF_SERVICE_ID(+)
and ASS.PERSON_ID=pps.PERSON_ID(+)
AND ASS.JOB_ID=JOB.JOB_ID(+)
AND ASS.ORGANIZATION_ID=DEPT.ORGANIZATION_ID(+)
AND ASS.ASSIGNMENT_ID=CUR.ASSIGNMENT_ID(+)
AND NAME.NAME_TYPE = 'GLOBAL'
AND (ASS.assignment_type in ('E') or (ASS.assignment_type in ('C') and ASS.ASS_ATTRIBUTE9 = 'Y' and ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE'))
AND ASS.LEGISLATION_CODE NOT IN ('CN')
---and FT.Language(+)='US'
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 MAN.MANAGER_TYPE(+) = 'LINE_MANAGER'
AND (CUR.DATE_FROM in (SELECT MAX(DATE_FROM) FROM CMP_SALARY_V WHERE ASSIGNMENT_ID=CUR.ASSIGNMENT_ID) or CUR.DATE_FROM is null)
AND (JOB.JOB_CODE NOT IN ('UR0901','UR0101','UR0102','US0201') or JOB.JOB_CODE IS NULL)
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN 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 DEPT.EFFECTIVE_START_DATE(+) AND DEPT.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
-- AND TRUNC(SYSDATE) BETWEEN CUR.DATE_FROM(+) AND CUR.DATE_TO(+)
union
SELECT DISTINCT
ASS.ASSIGNMENT_TYPE,
ASS.ASS_ATTRIBUTE9,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
NAME.FIRST_NAME AS FIRST_NAME,
NAME.MIDDLE_NAMES AS MIDDLE_NAME,
NAME.LAST_NAME AS LAST_NAME,
(select distinct EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1') as EMAIL_ADDR,
case when PER.PERSON_NUMBER in ('502928') THEN '998270'
else
(SELECT
CASE WHEN PER.PERSON_NUMBER <> '998270' AND PERSON_NUMBER = '502928' THEN '998270'
when PER.PERSON_NUMBER in ('998270') THEN '502928' ELSE PERSON_NUMBER END
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) end AS SUPERVISOR_ID,
(select distinct TO_CHAR(min(a.date_start),'YYYY-MM-DD') from per_periods_of_service a, per_all_assignments_m b where a.person_id=b.person_id and b.PERIOD_OF_SERVICE_ID=a.PERIOD_OF_SERVICE_ID and b.assignment_type='E' and b.person_id=ass.person_id) AS HIRE_DATE,
TO_CHAR(PPS.DATE_START,'YYYY-MM-DD') AS LATEST_HIRE_DATE,
case when PPS.ACTUAL_TERMINATION_DATE is null then 'NULL'
when PPS.ACTUAL_TERMINATION_DATE is not null then TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'YYYY-MM-DD') else '' end AS TERMINATION_DATE,
CASE WHEN PER.PERSON_NUMBER IN ('900377','991515','991630') THEN 'GBP' ELSE CUR.LOCAL_CURRENCY END AS CURRENCY,
--CUR.LOCAL_CURRENCY AS CURRENCY,
FT.iso_TERRITORY_code AS COUNTRY,
LOC.COUNTRY as country_code,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,1,5) 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 ACCOUNT,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,7,3) FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS DEPTID_CF,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,19,4) FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS OPERATING_UNIT,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,11,3) FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS CHARTFIELD1,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,15,3) FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS CHARTFIELD2,
ASS.WORK_AT_HOME
FROM
PER_ALL_PEOPLE_F PERNUM,
PER_ALL_ASSIGNMENTS_F ASS1,
PER_ASSIGNMENT_SUPERVISORS_F MAN1,
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_F ASS,
PER_JOBS JOB,
FND_TERRITORIES_VL FT,
HR_LOCATIONS_ALL LOC,
PER_ASSIGNMENT_SUPERVISORS_F MAN,
PER_DEPARTMENTS DEPT,
CMP_SALARY_V CUR,
PER_PERIODS_OF_SERVICE PPS
WHERE
PERNUM.PERSON_ID=ASS1.PERSON_ID(+)
AND ASS1.ASSIGNMENT_ID=MAN1.ASSIGNMENT_ID(+)
AND ASS1.PERSON_ID=MAN1.PERSON_ID(+)
AND MAN1.MANAGER_ID=PER.PERSON_ID(+)
AND PER.PERSON_ID=NAME.PERSON_ID(+)
AND PER.PERSON_ID=ASS.PERSON_ID(+)
AND ASS.JOB_ID=JOB.JOB_ID(+)
AND FT.TERRITORY_CODE(+)=LOC.COUNTRY
AND ASS.LOCATION_ID = LOC.LOCATION_ID(+)
AND ASS.ASSIGNMENT_ID=MAN.ASSIGNMENT_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID=PPS.PERIOD_OF_SERVICE_ID(+)
and ASS.PERSON_ID=pps.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=DEPT.ORGANIZATION_ID(+)
AND ASS.ASSIGNMENT_ID=CUR.ASSIGNMENT_ID(+)
AND NAME.NAME_TYPE = 'GLOBAL'
AND (ASS.assignment_type in ('E') or (ASS.assignment_type in ('C') and ASS.ASS_ATTRIBUTE9 = 'Y' and ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE'))
----and FT.Language(+)='US'
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 ASS.PERSON_ID IN (SELECT DISTINCT A.MANAGER_ID
FROM PER_ASSIGNMENT_SUPERVISORS_F A, PER_ALL_ASSIGNMENTS_F B
WHERE A.PERSON_ID = B.PERSON_ID
AND A.ASSIGNMENT_ID = B.ASSIGNMENT_ID
AND TRUNC(SYSDATE) BETWEEN A.EFFECTIVE_START_DATE AND A.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN B.EFFECTIVE_START_DATE AND B.EFFECTIVE_END_DATE AND B.ASSIGNMENT_TYPE = 'E' )
AND MAN1.MANAGER_TYPE(+) = 'LINE_MANAGER'
AND MAN.MANAGER_TYPE(+) = 'LINE_MANAGER'
and ASS.LEGISLATION_CODE IN ('CN')
and ASS1.LEGISLATION_CODE NOT IN ('CN')
AND (CUR.DATE_FROM in (SELECT MAX(DATE_FROM) FROM CMP_SALARY_V WHERE ASSIGNMENT_ID=CUR.ASSIGNMENT_ID) or CUR.DATE_FROM is null)
AND (JOB.JOB_CODE NOT IN ('UR0901','UR0101','UR0102','US0201') or JOB.JOB_CODE IS NULL)
AND TRUNC(SYSDATE) BETWEEN PERNUM.EFFECTIVE_START_DATE AND PERNUM.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS1.EFFECTIVE_START_DATE(+) AND ASS1.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN MAN1.EFFECTIVE_START_DATE(+) AND MAN1.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN DEPT.EFFECTIVE_START_DATE(+) AND DEPT.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 LOC.EFFECTIVE_START_DATE(+) AND LOC.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(+)
***********************************************************************************************************************************************
Org Plus
SELECT '0' AS AGE,
'0' AS BUDGET_SALARY,
ASS.ASSIGNMENT_STATUS_TYPE,
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS BU,
' ' AS CITY,
'0' AS COST_CENTER,
'0' AS COST_CENTER_ID,
(SELECT LOOKUP_CODE FROM HCM_LOOKUPS WHERE LOOKUP_TYPE='BB_3CHAR_COUNTRY' AND MEANING=LOC.COUNTRY AND TRUNC(SYSDATE) BETWEEN START_DATE_ACTIVE(+) AND NVL(END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS COUNTRY,
'NULL' AS DATE_OF_BIRTH,
CASE WHEN INSTR(DEPT.NAME,'__',1) != 0 THEN SUBSTR(DEPT.NAME, NVL(INSTR(DEPT.NAME,'__',1),0)+2)
WHEN INSTR(DEPT.NAME,'__',1) = 0 THEN NULL END AS DEPT_CODE,
(SELECT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN EMAIL2.EMAIL_ADDRESS ELSE '' END FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_TYPE = 'W1' AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD')))AS EMAIL_ADDRESS,
'0' AS EMP_COMP,
PER.PERSON_NUMBER,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'T' WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('SUSPENDED') THEN 'S' ELSE 'A' END AS EMP_STAT,
' ' AS EMP_STAT_REASON,
' ' AS END_DATE,
' ' AS ETHINICITY,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.FIRST_NAME ELSE '' END AS FIRST_NAME,
' ' AS FLSA,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN (CASE WHEN NAME.MIDDLE_NAMES IS NOT NULL THEN (NAME.FIRST_NAME)||' '||(NAME.MIDDLE_NAMES)||' '||(NAME.LAST_NAME) WHEN NAME.MIDDLE_NAMES IS NULL THEN (NAME.FIRST_NAME)||' '||(NAME.LAST_NAME) END) ELSE 'VACANT' END AS FULL_NAME,
' ' AS GENDER,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN TO_CHAR(POS.ORIGINAL_DATE_OF_HIRE,'MM-DD-YYYY') ELSE '' END AS HIRE_DATE,
' ' AS HOMEPH,
'0' AS HOURLY_RATE,
CASE WHEN JOB.JOB_CODE IN ('UA0402','UF0701','UL0202','UO0302','UO0303') THEN '1' ELSE '0' END AS IS_ASSISTANT,
' ' AS HIS_PANIC,
'0' AS KEY_POSITION,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN '0' ELSE '1' END AS IS_VACANT,
' ' AS JOB_FN,
' ' AS JOB_FN_CD,
' ' AS KEY_EMP,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.LAST_NAME ELSE '' END AS LAST_NAME,
LOC.LOCATION_NAME,
' ' AS MGR_POT,
' ' AS MID_NAME,
' ' AS MOBILE,
' ' AS NATIONALITY,
'0' AS NINEBOX_PER,
'0' AS NINEBOX_POT,
(SELECT DISTINCT PERSON_NUMBER FROM PER_ALL_PEOPLE_F PER WHERE PER.PERSON_ID=SUP.MANAGER_ID AND SUP.ASSIGNMENT_ID=ASS.ASSIGNMENT_ID AND SUP.PERSON_ID=ASS.PERSON_ID AND ASS.ASSIGNMENT_TYPE IN ('E','C') AND SUP.MANAGER_TYPE='LINE_MANAGER' AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE) AS MANAGER_NUMBER,
'0' AS PERFORMANCE,
' ' AS PHOTO,
' ' AS POS,
PER.PERSON_NUMBER AS POSITION_ID,
'0' AS POTENTIAL,
' ' AS PROF_DEGREE,
' ' AS RATING,
' ' AS READY_TO_RETIRE,
' ' AS RELOCATE,
'0' AS REQ_COMPETENCE,
' ' AS RISK_OF_LOSS,
CASE WHEN ASS.HOURLY_SALARIED_CODE = 'S' THEN (CM.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)
WHEN ASS.HOURLY_SALARIED_CODE = 'H' THEN (CM.SALARY_AMOUNT * ASS.NORMAL_HOURS * 52)
END AS ANNUAL_SALARY,
' ' AS SAL_GRADE,
' ' AS SCHED_HOURS,
' ' AS SKILLS,
' ' AS STATE_,
ASS.ASS_ATTRIBUTE4 AS TITLE,
' ' AS VETERAN_STATUS,
' ' AS WORK_ADDRESS,
CASE
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'Full-Time'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'Part-Time'
ELSE ' ' END AS WORKER_CATEGORY,
' ' AS WORK_LOC,
' ' AS WORK_LOC_ID,
(SELECT DISTINCT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN PH.PHONE_NUMBER ELSE '' END FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='W1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM(+) AND PH.DATE_TO(+)) AS WORK_PHONE_NUMBER,
(SELECT DISTINCT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN PH.EXTENSION ELSE '' END FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='W1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM(+) AND PH.DATE_TO(+)) AS EXTENSION,
' ' AS ZIP,
CASE WHEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) IS NOT NULL THEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) ELSE DEPT.NAME END AS NAME,
DEPT.NAME AS DEPT_NAME
FROM PER_PERSONS PP,
PER_ALL_ASSIGNMENTS_F ASS,
PER_ALL_PEOPLE_F PER,
PER_PERIODS_OF_SERVICE POS,
PER_PERSON_NAMES_F NAME,
HR_LOCATIONS_ALL_F_VL LOC,
PER_JOBS_F_VL JOB,
PER_DEPARTMENTS DEPT,
PER_ASSIGNMENT_SUPERVISORS_F SUP,
CMP_SALARY_BASES SLA,
CMP_SALARY CM
WHERE SUP.PERSON_ID(+)=ASS.PERSON_ID
--AND PER.PERSON_NUMBER ='999922'
AND LENGTH(PER.PERSON_NUMBER) >= 6
AND SUP.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND PER.PERSON_ID=ASS.PERSON_ID
AND POS.PERSON_ID(+)=ASS.PERSON_ID
AND POS.PERIOD_OF_SERVICE_ID(+)=ASS.PERIOD_OF_SERVICE_ID
AND NAME.PERSON_ID=PER.PERSON_ID
AND LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND CM.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND CM.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND DEPT.ORGANIZATION_ID(+)=ASS.ORGANIZATION_ID
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND SUP.MANAGER_TYPE(+)='LINE_MANAGER'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE AND NAME.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN DEPT.EFFECTIVE_START_DATE(+) AND DEPT.EFFECTIVE_END_DATE(+)
and TRUNC(SYSDATE) between CM.DATE_FROM(+) and CM.DATE_TO(+)
UNION
SELECT '0' AS AGE,
'0' AS BUDGET_SALARY,
ASS.ASSIGNMENT_STATUS_TYPE,
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS BU,
' ' AS CITY,
'0' AS COST_CENTER,
'0' AS COST_CENTER_ID,
(SELECT LOOKUP_CODE FROM HCM_LOOKUPS WHERE LOOKUP_TYPE='BB_3CHAR_COUNTRY' AND MEANING=LOC.COUNTRY AND TRUNC(SYSDATE) BETWEEN START_DATE_ACTIVE(+) AND NVL(END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS COUNTRY,
'NULL' AS DATE_OF_BIRTH,
CASE WHEN INSTR(DEPT.NAME,'__',1) != 0 THEN SUBSTR(DEPT.NAME, NVL(INSTR(DEPT.NAME,'__',1),0)+2)
WHEN INSTR(DEPT.NAME,'__',1) = 0 THEN NULL END AS DEPT_CODE,
(SELECT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN EMAIL2.EMAIL_ADDRESS ELSE '' END FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_TYPE = 'W1' AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD')))AS EMAIL_ADDRESS,
'0' AS EMP_COMP,
PER.PERSON_NUMBER,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'T' WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('SUSPENDED') THEN 'S' ELSE 'A' END AS EMP_STAT,
' ' AS EMP_STAT_REASON,
' ' AS END_DATE,
' ' AS ETHINICITY,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.FIRST_NAME ELSE '' END AS FIRST_NAME,
' ' AS FLSA,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.FIRST_NAME||' '||NAME.MIDDLE_NAMES||' '||NAME.LAST_NAME ELSE 'VACANT' END AS FULL_NAME,
' ' AS GENDER,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN TO_CHAR(POS.ORIGINAL_DATE_OF_HIRE,'MM-DD-YYYY') ELSE '' END AS HIRE_DATE,
' ' AS HOMEPH,
'0' AS HOURLY_RATE,
CASE WHEN JOB.JOB_CODE IN ('UA0402','UF0701','UL0202','UO0302','UO0303') THEN '1' ELSE '0' END AS IS_ASSISTANT,
' ' AS HIS_PANIC,
'0' AS KEY_POSITION,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN '0' ELSE '1' END AS IS_VACANT,
' ' AS JOB_FN,
' ' AS JOB_FN_CD,
' ' AS KEY_EMP,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.LAST_NAME ELSE '' END AS LAST_NAME,
LOC.LOCATION_NAME,
' ' AS MGR_POT,
' ' AS MID_NAME,
' ' AS MOBILE,
' ' AS NATIONALITY,
'0' AS NINEBOX_PER,
'0' AS NINEBOX_POT,
(SELECT DISTINCT PERSON_NUMBER FROM PER_ALL_PEOPLE_F PER WHERE PER.PERSON_ID=SUP.MANAGER_ID AND SUP.ASSIGNMENT_ID=ASS.ASSIGNMENT_ID AND SUP.PERSON_ID=ASS.PERSON_ID AND ASS.ASSIGNMENT_TYPE IN ('E','C') AND SUP.MANAGER_TYPE='LINE_MANAGER' AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE) AS MANAGER_NUMBER,
'0' AS PERFORMANCE,
' ' AS PHOTO,
' ' AS POS,
PER.PERSON_NUMBER AS POSITION_ID,
'0' AS POTENTIAL,
' ' AS PROF_DEGREE,
' ' AS RATING,
' ' AS READY_TO_RETIRE,
' ' AS RELOCATE,
'0' AS REQ_COMPETENCE,
' ' AS RISK_OF_LOSS,
CASE WHEN ASS.HOURLY_SALARIED_CODE = 'S' THEN (CM.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)
WHEN ASS.HOURLY_SALARIED_CODE = 'H' THEN (CM.SALARY_AMOUNT * ASS.NORMAL_HOURS * 52)
END AS ANNUAL_SALARY,
' ' AS SAL_GRADE,
' ' AS SCHED_HOURS,
' ' AS SKILLS,
' ' AS STATE_,
ASS.ASS_ATTRIBUTE4 AS TITLE,
' ' AS VETERAN_STATUS,
' ' AS WORK_ADDRESS,
CASE
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'Full-Time'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'Part-Time'
ELSE ' ' END AS WORKER_CATEGORY,
' ' AS WORK_LOC,
' ' AS WORK_LOC_ID,
(SELECT DISTINCT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN PH.PHONE_NUMBER ELSE '' END FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='W1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM(+) AND PH.DATE_TO(+)) AS WORK_PHONE_NUMBER,
(SELECT DISTINCT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN PH.EXTENSION ELSE '' END FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='W1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM(+) AND PH.DATE_TO(+)) AS EXTENSION,
' ' AS ZIP,
CASE WHEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) IS NOT NULL THEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) ELSE DEPT.NAME END AS NAME,
DEPT.NAME AS DEPT_NAME
FROM PER_PERSONS PP,
PER_ALL_ASSIGNMENTS_F ASS,
PER_ALL_PEOPLE_F PER,
PER_PERIODS_OF_SERVICE POS,
PER_PERSON_NAMES_F NAME,
HR_LOCATIONS_ALL_F_VL LOC,
PER_JOBS_F_VL JOB,
PER_DEPARTMENTS DEPT,
PER_ASSIGNMENT_SUPERVISORS_F SUP,
CMP_SALARY_BASES SLA,
CMP_SALARY CM
WHERE SUP.PERSON_ID(+)=ASS.PERSON_ID
AND LENGTH(PER.PERSON_NUMBER) >= 6
AND SUP.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND PER.PERSON_ID=ASS.PERSON_ID
AND POS.PERSON_ID(+)=ASS.PERSON_ID
AND POS.PERIOD_OF_SERVICE_ID(+)=ASS.PERIOD_OF_SERVICE_ID
AND NAME.PERSON_ID=PER.PERSON_ID
AND LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND CM.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND CM.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND DEPT.ORGANIZATION_ID(+)=ASS.ORGANIZATION_ID
AND ((ASS.ASSIGNMENT_TYPE IN ('C')) OR (ASS.ASSIGNMENT_TYPE IN ('E') AND ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE')))
AND SUP.MANAGER_TYPE(+)='LINE_MANAGER'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE AND NAME.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN DEPT.EFFECTIVE_START_DATE(+) AND DEPT.EFFECTIVE_END_DATE(+)
and TRUNC(SYSDATE) between CM.DATE_FROM(+) and CM.DATE_TO(+)
AND ASS.PERSON_ID IN (SELECT DISTINCT A.MANAGER_ID
FROM PER_ASSIGNMENT_SUPERVISORS_F A, PER_ALL_ASSIGNMENTS_F B
WHERE A.PERSON_ID = B.PERSON_ID
AND A.ASSIGNMENT_ID = B.ASSIGNMENT_ID
AND B.ASSIGNMENT_STATUS_TYPE='ACTIVE'
AND TRUNC(SYSDATE) BETWEEN A.EFFECTIVE_START_DATE AND A.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN B.EFFECTIVE_START_DATE AND B.EFFECTIVE_END_DATE
AND B.ASSIGNMENT_TYPE IN ('E'))
UNION
SELECT '0' AS AGE,
'0' AS BUDGET_SALARY,
ASS.ASSIGNMENT_STATUS_TYPE,
/*(SELECT DISTINCT NAME
FROM
HR_ALL_ORGANIZATION_UNITS_F_VL A,HR_ORGANIZATION_INFORMATION_F B
WHERE 1=1
AND A.ORGANIZATION_ID=B.ORGANIZATION_ID(+)
AND A.ORGANIZATION_ID(+)=ASS.ORGANIZATION_ID
AND (B.ORG_INFORMATION_CONTEXT= 'PER_ORG_MANAGER_INFO' OR B.ORG_INFORMATION_CONTEXT IS NULL)
) AS BU,*/
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS BU,
' ' AS CITY,
'0' AS COST_CENTER,
'0' AS COST_CENTER_ID,
(SELECT LOOKUP_CODE FROM HCM_LOOKUPS WHERE LOOKUP_TYPE='BB_3CHAR_COUNTRY' AND MEANING=LOC.COUNTRY AND TRUNC(SYSDATE) BETWEEN START_DATE_ACTIVE(+) AND NVL(END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS COUNTRY,
'NULL' AS DATE_OF_BIRTH,
-- SUBSTR(DEPT.NAME,INSTR(DEPT.NAME,'__',1)+2) AS DEPT_CODE,
CASE WHEN INSTR(DEPT.NAME,'__',1) != 0 THEN SUBSTR(DEPT.NAME, NVL(INSTR(DEPT.NAME,'__',1),0)+2)
WHEN INSTR(DEPT.NAME,'__',1) = 0 THEN NULL END AS DEPT_CODE,
(SELECT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN EMAIL2.EMAIL_ADDRESS ELSE '' END FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_TYPE = 'W1' AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD')))AS EMAIL_ADDRESS,
'0' AS EMP_COMP,
PER.PERSON_NUMBER,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'T' WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('SUSPENDED') THEN 'S' ELSE 'A' END AS EMP_STAT,
' ' AS EMP_STAT_REASON,
' ' AS END_DATE,
' ' AS ETHINICITY,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.FIRST_NAME ELSE '' END AS FIRST_NAME,
' ' AS FLSA,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.FIRST_NAME||' '||NAME.MIDDLE_NAMES||' '||NAME.LAST_NAME ELSE 'VACANT' END AS FULL_NAME,
' ' AS GENDER,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN TO_CHAR(POS.ORIGINAL_DATE_OF_HIRE,'MM-DD-YYYY') ELSE '' END AS HIRE_DATE,
' ' AS HOMEPH,
'0' AS HOURLY_RATE,
CASE WHEN JOB.JOB_CODE IN ('UA0402','UF0701','UL0202','UO0302','UO0303') THEN '1' ELSE '0' END AS IS_ASSISTANT,
' ' AS HIS_PANIC,
'0' AS KEY_POSITION,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN '0' ELSE '1' END AS IS_VACANT,
' ' AS JOB_FN,
' ' AS JOB_FN_CD,
' ' AS KEY_EMP,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.LAST_NAME ELSE '' END AS LAST_NAME,
LOC.LOCATION_NAME,
' ' AS MGR_POT,
' ' AS MID_NAME,
' ' AS MOBILE,
' ' AS NATIONALITY,
'0' AS NINEBOX_PER,
'0' AS NINEBOX_POT,
(SELECT DISTINCT PERSON_NUMBER FROM PER_ALL_PEOPLE_F PER WHERE PER.PERSON_ID=SUP.MANAGER_ID AND SUP.ASSIGNMENT_ID=ASS.ASSIGNMENT_ID AND SUP.PERSON_ID=ASS.PERSON_ID AND ASS.ASSIGNMENT_TYPE IN ('E','C') AND SUP.MANAGER_TYPE='LINE_MANAGER' AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE) AS MANAGER_NUMBER,
'0' AS PERFORMANCE,
' ' AS PHOTO,
' ' AS POS,
PER.PERSON_NUMBER AS POSITION_ID,
'0' AS POTENTIAL,
' ' AS PROF_DEGREE,
' ' AS RATING,
' ' AS READY_TO_RETIRE,
' ' AS RELOCATE,
'0' AS REQ_COMPETENCE,
' ' AS RISK_OF_LOSS,
CASE WHEN ASS.HOURLY_SALARIED_CODE = 'S' THEN (CM.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)
WHEN ASS.HOURLY_SALARIED_CODE = 'H' THEN (CM.SALARY_AMOUNT * ASS.NORMAL_HOURS * 52)
END AS ANNUAL_SALARY,
' ' AS SAL_GRADE,
' ' AS SCHED_HOURS,
' ' AS SKILLS,
' ' AS STATE_,
ASS.ASS_ATTRIBUTE4 AS TITLE,
' ' AS VETERAN_STATUS,
' ' AS WORK_ADDRESS,
CASE
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'Full-Time'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'Part-Time'
ELSE ' ' END AS WORKER_CATEGORY,
' ' AS WORK_LOC,
' ' AS WORK_LOC_ID,
(SELECT DISTINCT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN PH.PHONE_NUMBER ELSE '' END FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='W1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM(+) AND PH.DATE_TO(+)) AS WORK_PHONE_NUMBER,
(SELECT DISTINCT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN PH.EXTENSION ELSE '' END FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='W1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM(+) AND PH.DATE_TO(+)) AS EXTENSION,
' ' AS ZIP,
CASE WHEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) IS NOT NULL THEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) ELSE DEPT.NAME END AS NAME,
DEPT.NAME AS DEPT_NAME
FROM PER_PERSONS PP,
PER_ALL_ASSIGNMENTS_F ASS,
PER_ALL_PEOPLE_F PER,
PER_PERIODS_OF_SERVICE POS,
PER_PERSON_NAMES_F NAME,
HR_LOCATIONS_ALL_F_VL LOC,
PER_JOBS_F_VL JOB,
PER_DEPARTMENTS DEPT,
PER_ASSIGNMENT_SUPERVISORS_F SUP,
CMP_SALARY_BASES SLA,
CMP_SALARY CM
WHERE SUP.PERSON_ID(+)=ASS.PERSON_ID
AND LENGTH(PER.PERSON_NUMBER) >= 6
AND SUP.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND PER.PERSON_ID=ASS.PERSON_ID
AND POS.PERSON_ID(+)=ASS.PERSON_ID
AND POS.PERIOD_OF_SERVICE_ID(+)=ASS.PERIOD_OF_SERVICE_ID
AND NAME.PERSON_ID=PER.PERSON_ID
AND LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND CM.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND CM.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND DEPT.ORGANIZATION_ID(+)=ASS.ORGANIZATION_ID
AND (ASS.ASSIGNMENT_TYPE IN ('E') AND ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE'))
AND SUP.MANAGER_TYPE(+)='LINE_MANAGER'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE AND NAME.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN DEPT.EFFECTIVE_START_DATE(+) AND DEPT.EFFECTIVE_END_DATE(+)
and TRUNC(SYSDATE) between CM.DATE_FROM(+) and CM.DATE_TO(+)
AND ASS.PERSON_ID IN (SELECT DISTINCT A.MANAGER_ID
FROM PER_ASSIGNMENT_SUPERVISORS_F A, PER_ALL_ASSIGNMENTS_F B
WHERE A.PERSON_ID = B.PERSON_ID
AND A.ASSIGNMENT_ID = B.ASSIGNMENT_ID
AND B.ASSIGNMENT_STATUS_TYPE='ACTIVE'
AND TRUNC(SYSDATE) BETWEEN A.EFFECTIVE_START_DATE AND A.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN B.EFFECTIVE_START_DATE AND B.EFFECTIVE_END_DATE
AND B.ASSIGNMENT_TYPE IN ('C')
AND A.MANAGER_ID IN (SELECT DISTINCT C.MANAGER_ID
FROM PER_ASSIGNMENT_SUPERVISORS_F C, PER_ALL_ASSIGNMENTS_F D
WHERE C.PERSON_ID = D.PERSON_ID
AND C.ASSIGNMENT_ID = D.ASSIGNMENT_ID
AND D.ASSIGNMENT_STATUS_TYPE='ACTIVE'
AND TRUNC(SYSDATE) BETWEEN C.EFFECTIVE_START_DATE AND C.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN D.EFFECTIVE_START_DATE AND D.EFFECTIVE_END_DATE
AND D.ASSIGNMENT_TYPE IN ('E')))
UNION
SELECT DISTINCT '0' AS AGE,
'0' AS BUDGET_SALARY,
ASS.ASSIGNMENT_STATUS_TYPE,
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS BU,
' ' AS CITY,
'0' AS COST_CENTER,
'0' AS COST_CENTER_ID,
(SELECT LOOKUP_CODE FROM HCM_LOOKUPS WHERE LOOKUP_TYPE='BB_3CHAR_COUNTRY' AND MEANING=LOC.COUNTRY AND TRUNC(SYSDATE) BETWEEN START_DATE_ACTIVE(+) AND NVL(END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS COUNTRY,
'NULL' AS DATE_OF_BIRTH,
CASE WHEN INSTR(DEPT.NAME,'__',1) != 0 THEN SUBSTR(DEPT.NAME, NVL(INSTR(DEPT.NAME,'__',1),0)+2)
WHEN INSTR(DEPT.NAME,'__',1) = 0 THEN NULL END AS DEPT_CODE,
(SELECT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN EMAIL2.EMAIL_ADDRESS ELSE '' END FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_TYPE = 'W1' AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD')))AS EMAIL_ADDRESS,
'0' AS EMP_COMP,
PER.PERSON_NUMBER,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'T' WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('SUSPENDED') THEN 'S' ELSE 'A' END AS EMP_STAT,
' ' AS EMP_STAT_REASON,
' ' AS END_DATE,
' ' AS ETHINICITY,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.FIRST_NAME ELSE '' END AS FIRST_NAME,
' ' AS FLSA,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN (CASE WHEN NAME.MIDDLE_NAMES IS NOT NULL THEN (NAME.FIRST_NAME)||' '||(NAME.MIDDLE_NAMES)||' '||(NAME.LAST_NAME) WHEN NAME.MIDDLE_NAMES IS NULL THEN (NAME.FIRST_NAME)||' '||(NAME.LAST_NAME) END) ELSE 'VACANT' END AS FULL_NAME,
' ' AS GENDER,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN TO_CHAR(POS.ORIGINAL_DATE_OF_HIRE,'MM-DD-YYYY') ELSE '' END AS HIRE_DATE,
' ' AS HOMEPH,
'0' AS HOURLY_RATE,
CASE WHEN JOB.JOB_CODE IN ('UA0402','UF0701','UL0202','UO0302','UO0303') THEN '1' ELSE '0' END AS IS_ASSISTANT,
' ' AS HIS_PANIC,
'0' AS KEY_POSITION,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN '0' ELSE '1' END AS IS_VACANT,
' ' AS JOB_FN,
' ' AS JOB_FN_CD,
' ' AS KEY_EMP,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.LAST_NAME ELSE '' END AS LAST_NAME,
LOC.LOCATION_NAME,
' ' AS MGR_POT,
' ' AS MID_NAME,
' ' AS MOBILE,
' ' AS NATIONALITY,
'0' AS NINEBOX_PER,
'0' AS NINEBOX_POT,
(SELECT DISTINCT PERSON_NUMBER FROM PER_ALL_PEOPLE_F PER WHERE PER.PERSON_ID=SUP.MANAGER_ID AND SUP.ASSIGNMENT_ID=ASS.ASSIGNMENT_ID AND SUP.PERSON_ID=ASS.PERSON_ID AND ASS.ASSIGNMENT_TYPE IN ('E','C') AND SUP.MANAGER_TYPE='LINE_MANAGER' AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE) AS MANAGER_NUMBER,
'0' AS PERFORMANCE,
' ' AS PHOTO,
' ' AS POS,
PER.PERSON_NUMBER AS POSITION_ID,
'0' AS POTENTIAL,
' ' AS PROF_DEGREE,
' ' AS RATING,
' ' AS READY_TO_RETIRE,
' ' AS RELOCATE,
'0' AS REQ_COMPETENCE,
' ' AS RISK_OF_LOSS,
CASE WHEN ASS.HOURLY_SALARIED_CODE = 'S' THEN (CM.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)
WHEN ASS.HOURLY_SALARIED_CODE = 'H' THEN (CM.SALARY_AMOUNT * ASS.NORMAL_HOURS * 52)
END AS ANNUAL_SALARY,
' ' AS SAL_GRADE,
' ' AS SCHED_HOURS,
' ' AS SKILLS,
' ' AS STATE_,
'[CONTRACTOR]' AS TITLE,
' ' AS VETERAN_STATUS,
' ' AS WORK_ADDRESS,
CASE
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'Full-Time'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'Part-Time'
ELSE ' ' END AS WORKER_CATEGORY,
' ' AS WORK_LOC,
' ' AS WORK_LOC_ID,
(SELECT DISTINCT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN PH.PHONE_NUMBER ELSE '' END FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='W1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM(+) AND PH.DATE_TO(+)) AS WORK_PHONE_NUMBER,
(SELECT DISTINCT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN PH.EXTENSION ELSE '' END FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='W1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM(+) AND PH.DATE_TO(+)) AS EXTENSION,
' ' AS ZIP,
CASE WHEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) IS NOT NULL THEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) ELSE DEPT.NAME END AS NAME,
DEPT.NAME AS DEPT_NAME
FROM PER_PERSONS PP,
PER_ALL_ASSIGNMENTS_F ASS,
PER_ALL_PEOPLE_F PER,
PER_PERIODS_OF_SERVICE POS,
PER_PERSON_NAMES_F NAME,
HR_LOCATIONS_ALL_F_VL LOC,
PER_JOBS_F_VL JOB,
PER_DEPARTMENTS DEPT,
PER_ASSIGNMENT_SUPERVISORS_F SUP,
CMP_SALARY_BASES SLA,
CMP_SALARY CM,
PAY_ELEMENT_ENTRIES_F EENTRY,
PAY_ELEMENT_TYPES_VL ETYPE,
PAY_ELE_CLASSIFICATIONS_VL ECLASS,
PAY_ELEMENT_ENTRY_VALUES_F EVALUE,
PAY_INPUT_VALUES_F PINPUT
WHERE SUP.PERSON_ID(+)=ASS.PERSON_ID
AND LENGTH(PER.PERSON_NUMBER) >= 6
AND SUP.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND PER.PERSON_ID=ASS.PERSON_ID
AND POS.PERSON_ID(+)=ASS.PERSON_ID
AND POS.PERIOD_OF_SERVICE_ID(+)=ASS.PERIOD_OF_SERVICE_ID
AND NAME.PERSON_ID=PER.PERSON_ID
AND LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND CM.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND CM.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND DEPT.ORGANIZATION_ID(+)=ASS.ORGANIZATION_ID
AND ASS.ASSIGNMENT_TYPE IN ('C')
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND SUP.MANAGER_TYPE(+)='LINE_MANAGER'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE AND NAME.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN DEPT.EFFECTIVE_START_DATE(+) AND DEPT.EFFECTIVE_END_DATE(+)
and TRUNC(SYSDATE) between CM.DATE_FROM(+) and CM.DATE_TO(+)
AND 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 UPPER(ETYPE.ELEMENT_NAME) LIKE 'CONTRACTOR RATE%'
AND TRUNC(SYSDATE) BETWEEN ETYPE.EFFECTIVE_START_DATE AND ETYPE.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PINPUT.EFFECTIVE_START_DATE AND PINPUT.EFFECTIVE_END_DATE
ORDER BY ASSIGNMENT_STATUS_TYPE DESC
***********************************************************************************************************************************************
RivermineEmployeeFeed
SELECT
LPAD(PPF.PERSON_NUMBER,6,'0') AS EMPLID ,
NAME.FIRST_NAME AS FIRST_NAME,
NAME.MIDDLE_NAMES AS MIDDLE_NAME,
NAME.LAST_NAME AS LAST_NAME,
EMAIL.EMAIL_ADDRESS AS EMAIL_ADDR,
(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PPF.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO) PHONE,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE' THEN 'A' ELSE 'I' END AS HR_STATUS,
TO_CHAR(PPOS.ACTUAL_TERMINATION_DATE,'DD-MM-YYYY') AS TERMINATION_DT,
CASE WHEN ASS.ACTION_CODE='REHIRE' THEN TO_CHAR(PPOS.DATE_START,'DD-MM-YYYY') ELSE '' END AS LAST_HIRE_DT,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F PER WHERE PER.PERSON_ID=MAN.MANAGER_ID AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE ) AS SUPERVISOR_ID,
LOC.INTERNAL_LOCATION_CODE AS BB_PHYSICAL_LOC_CD,
LOC.ADDRESS_LINE_1 AS ADDRESS1,
LOC.ADDRESS_LINE_2 AS ADDRESS2,
LOC.TOWN_OR_CITY AS CITY,
LOC.REGION_2 AS STATE_NAME,
LOC.POSTAL_CODE AS POSTAL,
JOB.MANAGER_LEVEL AS TITLE_LEVEL,
JOB.NAME AS BUSINESS_TITLE,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,7,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS DEPTID_CF,
'' AS PRODUCT,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,11,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS CHARTFIELD1,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,15,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS CHARTFIELD2,
'' AS PROJECT,
'' AS ACTIVITY,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,1,5)
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 BUSINESS_UNIT,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,19,4)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS OPERATING_UNIT
FROM
PER_ALL_PEOPLE_F PPF,
PER_PERSON_NAMES_F NAME,
PER_PERIODS_OF_SERVICE PPOS,
PER_ASSIGNMENT_SUPERVISORS_F MAN,
PER_EMAIL_ADDRESSES EMAIL,
PER_ALL_ASSIGNMENTS_M ASS,
PER_JOBS JOB,
HR_LOCATIONS_ALL LOC,
HR_ORGANIZATION_UNITS ORG
WHERE
PPF.PERSON_ID=NAME.PERSON_ID
AND PPF.PERSON_ID=ASS.PERSON_ID
AND ASS.PERSON_ID = PPOS.PERSON_ID (+)
AND ASS.PERIOD_OF_SERVICE_ID=PPOS.PERIOD_OF_SERVICE_ID
AND ASS.ASSIGNMENT_ID=MAN.ASSIGNMENT_ID(+)
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND ORG.ORGANIZATION_ID(+)=ASS.ORGANIZATION_ID
AND EMAIL.PERSON_ID(+)=PPF.PERSON_ID
AND LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND NAME.NAME_TYPE='GLOBAL'
AND ((ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')) OR (PPOS.ACTUAL_TERMINATION_DATE BETWEEN TRUNC(SYSDATE)-30 AND TRUNC(SYSDATE)))
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
FROM PER_ALL_ASSIGNMENTS_F
WHERE PERSON_ID=ASS.PERSON_ID
AND ASSIGNMENT_TYPE IN ('E')
AND EFFECTIVE_LATEST_CHANGE = 'Y'
AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND EMAIL.EMAIL_ADDRESS IS NOT NULL
AND EMAIL.EMAIL_TYPE='W1'
AND MAN.MANAGER_TYPE(+) ='LINE_MANAGER'
AND TRUNC(SYSDATE) BETWEEN PPF.EFFECTIVE_START_DATE AND PPF.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 LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ORG.DATE_FROM(+) AND ORG.DATE_TO(+)
AND TRUNC(SYSDATE) BETWEEN EMAIL.DATE_FROM(+) AND NVL(EMAIL.DATE_TO, TO_DATE('4712-01-01', 'YYYY-MM-DD'))
***********************************************************************************************************************************************
FidelityDemographics
SELECT DISTINCT
CASE WHEN ASS.PERSON_ID IN
( SELECT DISTINCT ASSS.PERSON_ID
FROM PER_ALL_ASSIGNMENTS_F ASSS,PER_ADDRESSES_F ADDR,PER_PERSON_ADDR_USAGES_F AD
WHERE ADDR.ADDRESS_ID(+)=AD.ADDRESS_ID
AND AD.PERSON_ID(+)=ASSS.PERSON_ID
AND ASS.PERSON_ID=ASSS.PERSON_ID
AND ASSS.ASSIGNMENT_TYPE IN ('E')
AND ASSS.LEGISLATION_CODE(+)='US'
AND AD.ADDRESS_TYPE(+)='HOME'
AND ADDR.REGION_2 NOT IN ('PR')
AND (ASSS.EMPLOYMENT_CATEGORY NOT IN ('FT','PT') OR ASSS.EMPLOYMENT_CATEGORY IS NULL)
AND ASSS.PERSON_ID NOT IN
(SELECT DISTINCT A.PERSON_ID
FROM PER_ALL_ASSIGNMENTS_F A,HR_LOCATIONS_ALL L
WHERE
(L.INTERNAL_LOCATION_CODE IN ('KY01','TX01','SC01','AZ02') and A.HOURLY_SALARIED_CODE= 'H' )
AND L.LOCATION_ID(+)=A.LOCATION_ID
AND TRUNC(SYSDATE) BETWEEN L.EFFECTIVE_START_DATE(+) AND L.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN A.EFFECTIVE_START_DATE(+) AND A.EFFECTIVE_END_DATE(+))
AND ASSS.ASSIGNMENT_SEQUENCE=(SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID=ASSS.PERSON_ID AND ASSIGNMENT_TYPE=ASSS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND TRUNC(SYSDATE) BETWEEN ASSS.EFFECTIVE_START_DATE AND ASSS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN AD.EFFECTIVE_START_DATE(+) AND AD.EFFECTIVE_END_DATE(+)) THEN 'Y'
ELSE 'N' END AS ELIGIBILITY,
---RECORD 01--
'49021' AS PLAN_NUM1,
SSN.NATIONAL_IDENTIFIER_NUMBER AS NATIONAL_ID,
'01' AS RECORD_IDEN,
NAME.LAST_NAME AS LAST_NAME,
CASE WHEN NAME.MIDDLE_NAMES IS NULL THEN NAME.FIRST_NAME
WHEN NAME.MIDDLE_NAMES IS NOT NULL THEN NAME.FIRST_NAME||' '||UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) END AS FIRST_MID_NAME,
'000000000' AS RESERVED,
-- SUBSTR(PPL.MARITAL_STATUS,INSTR(PPL.MARITAL_STATUS,'_')+1) AS MARITAL_STATUS,
CASE WHEN PPL.MARITAL_STATUS ='M' THEN 'M'
WHEN PPL.MARITAL_STATUS ='S' THEN 'S' ELSE 'S' END AS MARITAL_STATUS,
CASE WHEN PPL.SEX='M' THEN 'M'
WHEN PPL.SEX='F' THEN 'F' ELSE ' ' END AS GENDER,
--RECORD2D---
'49021' AS PLAN_NUM11,
SSN.NATIONAL_IDENTIFIER_NUMBER AS NATID10,
'02' AS RECID11,
'D' AS FIELDTYP11,
TO_CHAR(POS.ORIGINAL_DATE_OF_HIRE,'MMDDYYYY') AS HIRE_DATE,
TO_CHAR(PERS.DATE_OF_BIRTH,'MMDDYYYY') AS BIRTH_DATE,
TO_CHAR(POS.ACTUAL_TERMINATION_DATE,'MMDDYYYY') AS TERMINATION_DATE,
CASE WHEN (SELECT MAX(DATE_START) FROM PER_PERIODS_OF_SERVICE WHERE PERIOD_OF_SERVICE_ID(+)=ASS.PERIOD_OF_SERVICE_ID AND PERSON_ID(+)=ASS.PERSON_ID)
<> POS.ORIGINAL_DATE_OF_HIRE AND POS.ACTUAL_TERMINATION_DATE IS NULL THEN '5' ELSE '' END AS DATE_SWITCH,
--RECORD11--
'49021' AS PLAN_NUM10,
SSN.NATIONAL_IDENTIFIER_NUMBER AS NATID,
'11' AS RDID,
---------------------------------------------------------------------------------------------
CASE
WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION','RESIGNATION','RETIRE','TERMINATION') THEN 'T'
WHEN ASS.ACTION_CODE = 'OTHER' AND ASS.REASON_CODE IN ('DEATH','RETIRE') THEN 'T'
WHEN ASS.ACTION_CODE='DEATH' THEN 'D'
WHEN ASS.LEGISLATION_CODE IN ('US')
AND ADDR.REGION_2 NOT IN ('PR')
AND (ASS.EMPLOYMENT_CATEGORY NOT IN ('FT','PT') OR ASS.EMPLOYMENT_CATEGORY IS NULL)
AND ASS.PERSON_ID NOT IN
(SELECT DISTINCT A.PERSON_ID
FROM PER_ALL_ASSIGNMENTS_F A,HR_LOCATIONS_ALL L
WHERE
(L.INTERNAL_LOCATION_CODE IN ('KY01','TX01','SC01','AZ02') AND A.HOURLY_SALARIED_CODE= 'H' )
AND L.LOCATION_ID(+)=A.LOCATION_ID
AND TRUNC(SYSDATE) BETWEEN L.EFFECTIVE_START_DATE(+) AND L.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN A.EFFECTIVE_START_DATE(+) AND A.EFFECTIVE_END_DATE(+)) THEN 'E'
ELSE 'I' END AS STATCODE,
---------------------------------------------------------------------------------------------
'Y' AS LITKIT,
--RECORD 03---
'49021' AS PLAN_NUM_3,
SSN.NATIONAL_IDENTIFIER_NUMBER AS NATIONAL_ID2,
'03' AS RECIDEN3,
'P' AS RECTYP3,
CASE WHEN ADDR.ADDRESS_LINE_1 IS NOT NULL THEN '01'
WHEN ADDR.ADDRESS_LINE_2 IS NOT NULL THEN '02'
WHEN ADDR.ADDRESS_LINE_3 IS NOT NULL THEN '03'
END AS ADDRESS_LIN_NUM,
ADDR.ADDRESS_LINE_1 AS ADDRESS,
ADDR.ADDRESS_LINE_2,
ADDR.ADDRESS_LINE_3,
--RECORD04--
'49021' AS PLAN_NUM3,
SSN.NATIONAL_IDENTIFIER_NUMBER AS NATIONAL_ID3,
'04' AS RECIDEN5,
'P' RECTYP5,
ADDR.TOWN_OR_CITY AS CITY,
ADDR.REGION_2 AS STATE_,
CASE
WHEN LENGTH(ADDR.POSTAL_CODE) < 5 THEN LPAD(ADDR.POSTAL_CODE, 5, '0')
WHEN LENGTH(ADDR.POSTAL_CODE) = 10 THEN SUBSTR(ADDR.POSTAL_CODE, 1, 5)
WHEN LENGTH(ADDR.POSTAL_CODE) = 5 THEN ADDR.POSTAL_CODE
ELSE ''
END AS ZIP_CODE,
--RECORD05--
'49021' AS PLAN_NUM5,
SSN.NATIONAL_IDENTIFIER_NUMBER AS NATIONAL_ID4,
'05' AS RECIDEN6,
'P' AS RECTYP6,
ADDR.COUNTRY AS COUNTRY,
'Y' AS SPCL_HANDLING,
--RECORD61--
'49021' AS PLAN_NUM6,
SSN.NATIONAL_IDENTIFIER_NUMBER AS NATIONAL_ID5,
'61' AS RECIDEN7,
CASE WHEN POS.ADJUSTED_SVC_DATE IS NULL THEN
(SELECT MIN(TO_CHAR(P.ADJUSTED_SVC_DATE,'MMDDYYYY')) FROM PER_PERIODS_OF_SERVICE P WHERE PERSON_ID=ASS.PERSON_ID)
ELSE '' END AS REHIREDATE,
'00000000' AS RETIREMENT_DATE,
'00000' AS PRE_BREAK,
'49021' AS PLAN_NUM7,
SSN.NATIONAL_IDENTIFIER_NUMBER AS NATIONAL_ID6,
'02' AS RECIDEN8,
'E' AS FIELDTYP1,
PER.PERSON_NUMBER AS EMPLID,
--RECORD 2E---
'49021' AS PLAN_NUM111,
SSN.NATIONAL_IDENTIFIER_NUMBER AS NATIONAL_ID1,
'02' AS REC_IDEN2,
'E' AS FIELD_TYPE,
PER.PERSON_NUMBER AS EMPLOYEE_NUMBER,
ASS.ASSIGNMENT_STATUS_TYPE,
ASS.HOURLY_SALARIED_CODE
FROM PER_ALL_PEOPLE_F PER,
PER_PERSONS PERS,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_F ASS,
PER_NATIONAL_IDENTIFIERS SSN,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_PERIODS_OF_SERVICE POS,
PER_ADDRESSES_F ADDR,
PER_PERSON_ADDR_USAGES_F AD
WHERE PER.PERSON_ID=NAME.PERSON_ID
AND PER.PERSON_ID=PERS.PERSON_ID(+)
AND PER.PERSON_ID=ASS.PERSON_ID
AND PER.PERSON_ID=SSN.PERSON_ID(+)
AND PER.PERSON_ID=PPL.PERSON_ID(+)
AND ASS.PERSON_ID=POS.PERSON_ID(+)
AND POS.PERIOD_OF_SERVICE_ID(+)=ASS.PERIOD_OF_SERVICE_ID
AND ADDR.ADDRESS_ID(+)=AD.ADDRESS_ID
AND AD.PERSON_ID(+)=PER.PERSON_ID
AND ASS.ASSIGNMENT_TYPE IN ('E')
/* Code changes Start by Anil, to Restrict "Higher One Inc." - LE employees from Feed,as part of CR # CHG0158029 - TP # 40902 */
--AND ASS.LEGAL_ENTITY_ID NOT IN (300000077404382)
/*AND ((ASS.LEGAL_ENTITY_ID NOT IN (SELECT distinct ORGANIZATION_ID FROM PER_LEGAL_EMPLOYERS WHERE NAME IN ('Higher One Inc.','Higher One India Ltd')
AND TRUNC(sysdate) between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE))
OR ASS.ASS_ATTRIBUTE3 NOT IN ('BB9')) */
--and ASS.ASS_ATTRIBUTE3 NOT IN ('BB9')
/* Code changes End by Anil, to Restrict "Higher One Inc." - LE employees from Feed,as part of CR # CHG0158029 - TP # 40902 */
/* Code changes Start by Ismail, to Restrict "Higher One India Ltd." - LE employees from Feed, and allow "Higher One Inc.(US) as part of CR # CHG0162946 - TP # 42492 */
-- Commented above lines which restrict both both US and India Higher One employees..--
AND ASS.LEGAL_ENTITY_ID NOT IN ('300000131391295')
/* Code changes End by Ismail, to Restrict "Higher One India Ltd." - LE employees from Feed, and allow "Higher One Inc.(US) as part of CR # CHG0162946 - TP # 42492 */
AND AD.ADDRESS_TYPE(+)='HOME'
AND NAME.NAME_TYPE='GLOBAL'
-- AND ASS.LEGISLATION_CODE (+)='US'
AND SSN.NATIONAL_IDENTIFIER_TYPE = 'SSN'
AND SSN.NATIONAL_IDENTIFIER_TYPE IS NOT NULL
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 PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN AD.EFFECTIVE_START_DATE(+) AND AD.EFFECTIVE_END_DATE(+)
AND AD.ADDRESS_ID = (SELECT MAX(ADDRESS_ID) FROM PER_PERSON_ADDR_USAGES_F WHERE PERSON_ID = PER.PERSON_ID AND ADDRESS_TYPE(+)='HOME' AND TRUNC(SYSDATE) between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE)
AND PPL.PERSON_LEGISLATIVE_ID = (SELECT MAX(PERSON_LEGISLATIVE_ID) FROM PER_PEOPLE_LEGISLATIVE_F WHERE PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE)
AND ASS.ASSIGNMENT_SEQUENCE=(SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
ORDER BY PER.PERSON_NUMBER
***********************************************************************************************************************************************
ConcurTravelFeed
SELECT '"350"' AS TRX_TYPE,
'"'||PPF.PERSON_NUMBER||'"' as EMPLOYEE_ID,
'""' NAME_PREFIX,
'""' NAME_SUFFIX,
'""' NICK_NAME,
'""' REDRESS_NUMBER,
'"'||LEG.SEX||'"' AS GENDER,
'"'||TO_CHAR(POS.DATE_OF_BIRTH,'YYYYMMDD')||'"' AS DATE_OF_BIRTH,
'"'||(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F WHERE MAN.MANAGER_ID=PERSON_ID AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)||'"' AS SUPERVISOR_ID,
'"'||JOB.NAME||'"' AS JOB_TITLE,
'"'||(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PPF.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO and rownum=1)||'"' WORK_PHONE,
'"'||(SELECT PH.EXTENSION FROM PER_PHONES PH WHERE PPF.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO and rownum=1)||'"' EXTENSION,
'"'||(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PPF.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='WF' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO and rownum=1)||'"' WORK_FAX,
'"'||(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PPF.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='H1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO and rownum=1)||'"' HOME_PHONE,
'"'||(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PPF.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='WM' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO and rownum=1)||'"' WORK_MOBILE,
'"'||(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PPF.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='P' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO and rownum=1)||'"' PAGER,
'""' TRAVEL_NAME_REMARK,
(SELECT '"'||CI.VALUE||'"'
FROM HCM_LOOKUPS LK,
FF_USER_COLUMN_INSTANCES_F CI,
FF_USER_ROWS_VL R,
FF_USER_COLUMNS_VL C,
FF_USER_TABLES_VL T
WHERE 1=1 AND R.USER_TABLE_ID = T.USER_TABLE_ID
AND C.USER_TABLE_ID = T.USER_TABLE_ID
AND CI.USER_ROW_ID = R.USER_ROW_ID
AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
AND R.ROW_NAME(+)= LK.LOOKUP_CODE
AND T.USER_TABLE_NAME(+) = 'BB_TRAVEL_CLASS'
AND LK.LOOKUP_TYPE(+)='BB_3CHAR_COUNTRY'
AND LK.MEANING(+)=HL.COUNTRY
AND USER_COLUMN_NAME= 'LongName'
AND SYSDATE BETWEEN R.EFFECTIVE_START_DATE(+) AND R.EFFECTIVE_END_DATE(+)
AND SYSDATE BETWEEN CI.EFFECTIVE_START_DATE(+) AND CI.EFFECTIVE_END_DATE(+)
AND SYSDATE BETWEEN LK.START_DATE_ACTIVE AND NVL(LK.END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS TRAVEL_CLASS_NAME,
'""' GDS_PROFILE_NAME,
'""' ORG_UNIT,
'"'||ADDR.ADDRESS_LINE_1||' '||ADDR.ADDRESS_LINE_2||' '||ADDR.ADDRESS_LINE_3||' '||ADDR.ADDRESS_LINE_4||'"' HOME_ADDRESS,
'"'||ADDR.TOWN_OR_CITY||'"' HOME_CITY,
'"'||ADDR.REGION_2||'"' HOME_STATE,
'"'||ADDR.POSTAL_CODE||'"' HOME_POSTAL,
'"'||ADDR.COUNTRY||'"' HOME_COUNTRY,
'"'||HL.ADDRESS_LINE_1||' '||HL.ADDRESS_LINE_2||' '||HL.ADDRESS_LINE_3||' '||HL.ADDRESS_LINE_4||'"' MAIL_ADDRESS,
'"'||HL.TOWN_OR_CITY||'"' MAIL_CITY,
'"'||HL.REGION_2||'"' MAIL_STATE,
'"'||HL.POSTAL_CODE||'"' MAIL_POSTAL,
'"'||HL.COUNTRY||'"' MAIL_COUNTRY,
'""' EMAIL2,
'""' EMAIL3,
'"'||CASE WHEN HL.COUNTRY IN ('BR','US','CA')
THEN 'SORT1_BUSINESS_UNIT_BB='||(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,1,5)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
ELSE 'Business Unit='|| (SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,1,5)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
END||'"' AS ACCOUNT,
'"'||CASE WHEN HL.COUNTRY IN ('BR','US','CA')
THEN 'SORT2_DEPT_BB='||(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,7,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
ELSE 'Department='||( SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,7,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
END||'"' AS DEPTID_CF,
'"'||CASE WHEN HL.COUNTRY IN ('BR','US','CA')
THEN 'SORT3_MARKET_BB='||(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,11,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
ELSE 'Market='|| (SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,11,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
END||'"' AS CHARTFIELD1,
'"'||CASE WHEN HL.COUNTRY IN ('BR','US','CA')
THEN 'SORT4_REGION_BB='||(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,15,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
ELSE 'Region='|| (SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,15,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
END||'"' AS CHARTFIELD2,
'"'||CASE WHEN HL.COUNTRY IN ('BR','US','CA')
THEN 'UDID_20_OpUnit_BB='|| (SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,19,4)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
ELSE 'Operating Unit='|| (SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,19,4)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
END||'"' AS OPERATING_UNIT,
'""' CUSTOM6,
'""' CUSTOM7,
'""' CUSTOM8,
'""' CUSTOM9,
'""' CUSTOM10,
'""' CUSTOM11,
'""' CUSTOM12,
'""' CUSTOM13,
'""' CUSTOM14,
'""' CUSTOM15,
'""' CUSTOM16,
'""' CUSTOM17,
'""' CUSTOM18,
'""' CUSTOM19,
'""' CUSTOM20,
'""' CUSTOM21,
'""' CUSTOM22,
'""' CUSTOM23,
'""' CUSTOM24,
'""' CUSTOM25,
'""' XML,
'""' PROFILEUSER,
'""' AMADEUSUSER,
'""' FUTUREUSE4,
'""' FUTUREUSE5,
'""' FUTUREUSE6,
'""' FUTUREUSE7,
'""' FUTUREUSE8,
'""' FUTUREUSE9,
'""' FUTUREUSE10
FROM PER_ALL_PEOPLE_F PPF,
PER_ALL_ASSIGNMENTS_F PAF,
PER_PERSON_ADDR_USAGES_F ADDRE,
PER_PEOPLE_LEGISLATIVE_F LEG,
PER_EMAIL_ADDRESSES EMAIL,
PER_JOBS_F_VL JOB,
PER_ADDRESSES_F ADDR,
PER_PERIODS_OF_SERVICE PPOS,
PER_PERSONS POS,
PER_ASSIGNMENT_SUPERVISORS_F MAN,
HR_LOCATIONS HL,
PER_DEPARTMENTS ORG
WHERE PPF.PERSON_ID=PAF.PERSON_ID
AND POS.PERSON_ID(+)=PPF.PERSON_ID
AND PPF.PERSON_ID=ADDRE.PERSON_ID(+)
AND JOB.JOB_ID(+) = PAF.JOB_ID
AND ADDRE.ADDRESS_ID=ADDR.ADDRESS_ID(+)
AND LEG.PERSON_ID(+)= PAF.PERSON_ID
AND PAF.PERSON_ID = PPOS.PERSON_ID (+)
AND ORG.ORGANIZATION_ID(+)=PAF.ORGANIZATION_ID
AND PAF.PERIOD_OF_SERVICE_ID=PPOS.PERIOD_OF_SERVICE_ID
AND LEG.PERSON_LEGISLATIVE_ID = (SELECT MAX(PERSON_LEGISLATIVE_ID) FROM PER_PEOPLE_LEGISLATIVE_F WHERE PERSON_ID = PPF.PERSON_ID AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND PAF.ASSIGNMENT_ID=MAN.ASSIGNMENT_ID(+)
AND PAF.PERSON_ID=MAN.PERSON_ID(+)
AND EMAIL.PERSON_ID(+)=PPF.PERSON_ID
AND ADDRE.ADDRESS_TYPE(+)='HOME'
AND PAF.LOCATION_ID = HL.LOCATION_ID(+)
AND EMAIL.EMAIL_TYPE(+)='W1'
AND PAF.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID=PAF.PERSON_ID AND ASSIGNMENT_TYPE =PAF.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND MAN.MANAGER_TYPE(+)='LINE MANAGER'
AND PAF.ASSIGNMENT_TYPE IN ('E','C')
--AND HL.COUNTRY IN ('AU','JP','KR','NZ','SG','CA','AE','AT','CH','CZ','DE','ES','FI','IE','IT','NL','SE','GB','BR','US')
AND JOB.JOB_CODE NOT IN ('UF0701','UR0901','UR0101','UR0102','US0201')
AND EMAIL.EMAIL_ADDRESS IS NOT NULL
AND PAF.LEGISLATION_CODE NOT IN ('CN')
AND ((PAF.ASSIGNMENT_STATUS_TYPE='ACTIVE') OR (GREATEST(PPOS.ACTUAL_TERMINATION_DATE,PPOS.LAST_UPDATE_DATE) BETWEEN SYSDATE-1 AND SYSDATE))
AND HL.COUNTRY IN
(SELECT HL.COUNTRY
FROM HCM_LOOKUPS LK,
FF_USER_COLUMN_INSTANCES_F CI,
FF_USER_ROWS_VL R,
FF_USER_COLUMNS_VL C,
FF_USER_TABLES_VL T
WHERE 1=1 AND R.USER_TABLE_ID = T.USER_TABLE_ID
AND C.USER_TABLE_ID = T.USER_TABLE_ID
AND CI.USER_ROW_ID = R.USER_ROW_ID
AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
AND R.ROW_NAME(+)= LK.LOOKUP_CODE
AND T.USER_TABLE_NAME(+) = 'BB_TRAVEL_CLASS'
AND LK.LOOKUP_TYPE(+)='BB_3CHAR_COUNTRY'
AND LK.MEANING(+)=HL.COUNTRY
AND USER_COLUMN_NAME= 'LongName'
AND SYSDATE BETWEEN R.EFFECTIVE_START_DATE(+) AND R.EFFECTIVE_END_DATE(+)
AND SYSDATE BETWEEN CI.EFFECTIVE_START_DATE(+) AND CI.EFFECTIVE_END_DATE(+)
AND SYSDATE BETWEEN LK.START_DATE_ACTIVE AND NVL(LK.END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD')))
AND TRUNC(SYSDATE) BETWEEN PPF.EFFECTIVE_START_DATE AND PPF.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PAF.EFFECTIVE_START_DATE(+) AND PAF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN MAN.EFFECTIVE_START_DATE(+) AND MAN.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ORG.EFFECTIVE_START_DATE(+) AND ORG.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN EMAIL.DATE_FROM(+) AND NVL(EMAIL.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND TRUNC(SYSDATE) BETWEEN ADDRE.EFFECTIVE_START_DATE(+) AND ADDRE.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN LEG.EFFECTIVE_START_DATE(+) AND LEG.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HL.EFFECTIVE_START_DATE(+) AND HL.EFFECTIVE_END_DATE(+)
--AND PPF.PERSON_NUMBER = '502232'
ORDER BY PPF.PERSON_NUMBER
***********************************************************************************************************************************************
Email Notification
SELECT
PER.PERSON_NUMBER,
NAME.FIRST_NAME,
NAME.LAST_NAME,
TO_CHAR(POS.ORIGINAL_DATE_OF_HIRE,'YYYYMMDD') AS HIRE_DATE,
EMAIL.EMAIL_ADDRESS,
(SELECT CI.VALUE
FROM HCM_LOOKUPS LK,
FF_USER_COLUMN_INSTANCES_F CI,
FF_USER_ROWS_VL R,
FF_USER_COLUMNS_VL C,
FF_USER_TABLES_VL T
WHERE 1=1 AND R.USER_TABLE_ID = T.USER_TABLE_ID
AND C.USER_TABLE_ID = T.USER_TABLE_ID
AND CI.USER_ROW_ID = R.USER_ROW_ID
AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
AND R.ROW_NAME(+)= LK.LOOKUP_CODE
AND T.USER_TABLE_NAME(+) = 'BB_TRAVEL_CLASS'
AND LK.LOOKUP_TYPE(+)='BB_3CHAR_COUNTRY'
AND LK.MEANING(+)=HL.COUNTRY
AND USER_COLUMN_NAME= 'LongName'
AND SYSDATE BETWEEN R.EFFECTIVE_START_DATE(+) AND R.EFFECTIVE_END_DATE(+)
AND SYSDATE BETWEEN CI.EFFECTIVE_START_DATE(+) AND CI.EFFECTIVE_END_DATE(+)
AND SYSDATE BETWEEN LK.START_DATE_ACTIVE AND NVL(LK.END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS VALUE
FROM
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_EMAIL_ADDRESSES EMAIL,
PER_ALL_ASSIGNMENTS_F ASS,
PER_PERIODS_OF_SERVICE POS,
HR_LOCATIONS HL
WHERE
PER.PERSON_ID=ASS.PERSON_ID
AND ASS.LOCATION_ID = HL.LOCATION_ID(+)
AND POS.PERSON_ID(+)=ASS.PERSON_ID
AND POS.PERIOD_OF_SERVICE_ID(+)=ASS.PERIOD_OF_SERVICE_ID
AND EMAIL.PERSON_ID(+)=PER.PERSON_ID
AND NAME.PERSON_ID=PER.PERSON_ID
AND ASS.ASSIGNMENT_TYPE IN ('E','C')
AND EMAIL.EMAIL_TYPE(+)='W1'
AND NAME.NAME_TYPE='GLOBAL'
AND ((ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE') OR (POS.ACTUAL_TERMINATION_DATE BETWEEN SYSDATE-1 AND SYSDATE))
AND ((EMAIL.EMAIL_ADDRESS IS NULL) OR (HL.COUNTRY NOT IN ('AU','JP','KR','NZ','SG','CA','AE','AT','CH','CZ','DE','ES','FI','IE','IT','NL','SE','GB','BR','US')))
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN HL.EFFECTIVE_START_DATE(+) AND HL.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 EMAIL.DATE_FROM(+) AND NVL(EMAIL.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C') AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
ORDER BY PER.PERSON_NUMBER
***********************************************************************************************************************************************
Bswift
SELECT
'1' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
'' AS LAST_NAME_EFFECTIVE_DATE,
'' AS NICKNAME,
'' AS SOCIAL_SECURITY_NUMBER,
'' AS DATE_OF_BIRTH,
'' AS GENDER,
'' AS Race_Ethnicity,
--BEN.DISABILITY_STATUS AS DISABLED,
--BEN.TOBACCO_TYPE_USAGE AS TOBACCO_USER,
'' AS BENEFIT_CLASS_CODE,
'' AS BENEFIT_CLASS_DATE,
'' AS COMPENSATION_DATE,
null AS SALARY,
null AS HOURLY_RATE,
null AS HOURS_PER_WEEK,
null AS BENEFITS_BASE_SALARY,
'' AS BONUS,
'' AS COMMISSION,
'' AS HIRE_DATE,
'' AS REHIRE_DATE,
'' AS Demographic_Field_1,
'' AS DEPT_CODE,
'' AS DEPARTMENT_EFF_DATE,
'' AS LOCATION_CODE,
'' AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
'' AS JOB_TITLE,
'' AS JOB_TITLE_EFF_DATE,
'' AS REGION_CODE,
'' as REGION_eff_date,
'' AS BU_CODE,
'' as BU_EFF_DATE,
'' AS SUPERVISOR_CODE,
'3' AS PAY_FREQUENCY,
'' AS TIME_STATUS,
'' AS OVERTIME_STATUS,
'' AS HCE,
'' AS WORK_PHONE,
'' AS WORK_PHONE_EXTENSION,
'' AS WORK_FAX,
'' AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
'' AS ADD_EFF_DATE,
'' AS HOME_ADDRESS1,
'' AS HOME_ADDRESS2,
'' AS CITY,
'' AS STATE_,
'' AS ZIP,
'' AS COUNTY,
'' AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
'' AS HOME_EMAIL,
'' AS USERNAME,
'' as LOGIN_ACCESS,
'' AS LOA_START_DATE,
'' AS LOA_END_DATE,
'' AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
'T' AS EMPLOYMENT_STATUS,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('TRANSFER','GLB_TRANSFER') THEN ASS.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'' AS AUTO_ENROLL
FROM
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
-- HCM_LOOKUPS LUKUP,
PER_PERIODS_OF_SERVICE PPS
WHERE
PER.PERSON_ID=ASS.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
-- AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
-- AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
---AND ASS.ASSIGNMENT_STATUS_TYPE = 'INACTIVE'
AND ASS.PERSON_ID = (SELECT PAA_NEW.PERSON_ID
FROM PER_ALL_ASSIGNMENTS_M PAA_NEW,
PER_ALL_ASSIGNMENTS_M PAA_OLD
WHERE PAA_NEW.PERSON_ID = PER.PERSON_ID
AND PAA_NEW.PERSON_ID = PAA_OLD.PERSON_ID
AND PAA_NEW.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.LEGISLATION_CODE = 'US'
AND PAA_NEW.LEGISLATION_CODE <> 'US'
AND SUBSTR(PAA_NEW.EFFECTIVE_END_DATE,1,10) = '4712-12-31'
AND SUBSTR(PAA_OLD.EFFECTIVE_END_DATE,1,10) = SUBSTR(PAA_NEW.EFFECTIVE_START_DATE-1,1,10)
AND PAA_NEW.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = PAA_NEW.PERSON_ID
AND ASSIGNMENT_TYPE = 'E'
AND :Asofdate BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND PAA_OLD.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE-1)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = PAA_OLD.PERSON_ID
AND ASSIGNMENT_TYPE = 'E'
AND :Asofdate BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND PAA_NEW.EFFECTIVE_LATEST_CHANGE = 'Y'
AND PAA_OLD.EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND ASSIGNMENT_TYPE = 'E'
AND :Asofdate BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.EFFECTIVE_START_DATE = :Asofdate
AND :Asofdate BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
UNION
SELECT
'2' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
'' AS LAST_NAME_EFFECTIVE_DATE,
'' AS NICKNAME,
'' AS SOCIAL_SECURITY_NUMBER,
'' AS DATE_OF_BIRTH,
'' AS GENDER,
'' AS Race_Ethnicity,
--BEN.DISABILITY_STATUS AS DISABLED,
--BEN.TOBACCO_TYPE_USAGE AS TOBACCO_USER,
'' AS BENEFIT_CLASS_CODE,
'' AS BENEFIT_CLASS_DATE,
'' AS COMPENSATION_DATE,
null AS SALARY,
null AS HOURLY_RATE,
null AS HOURS_PER_WEEK,
null AS BENEFITS_BASE_SALARY,
'' AS BONUS,
'' AS COMMISSION,
'' AS HIRE_DATE,
'' AS REHIRE_DATE,
'' AS Demographic_Field_1,
'' AS DEPT_CODE,
'' AS DEPARTMENT_EFF_DATE,
'' AS LOCATION_CODE,
'' AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
'' AS JOB_TITLE,
'' AS JOB_TITLE_EFF_DATE,
'' AS REGION_CODE,
'' AS REGION_eff_date,
'' AS BU_CODE,
'' as BU_EFF_DATE,
'' AS SUPERVISOR_CODE,
'3' AS PAY_FREQUENCY,
'' AS TIME_STATUS,
'' AS OVERTIME_STATUS,
'' AS HCE,
'' AS WORK_PHONE,
'' AS WORK_PHONE_EXTENSION,
'' AS WORK_FAX,
'' AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
'' AS ADD_EFF_DATE,
'' AS HOME_ADDRESS1,
'' AS HOME_ADDRESS2,
'' AS CITY,
'' AS STATE_,
'' AS ZIP,
'' AS COUNTY,
'' AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
'' AS HOME_EMAIL,
'' AS USERNAME,
'' as LOGIN_ACCESS,
'' AS LOA_START_DATE,
'' AS LOA_END_DATE,
'' AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
CASE WHEN PPS.ACTUAL_TERMINATION_DATE is not null then 'T' else '' end AS EMPLOYMENT_STATUS,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN AR.ACTION_REASON_CODE IN ('CONTRACT_EXPIRED','BB_DISSAT_W_TYPE_OF_WORK','DISSATISFIED_W/WORK_CONDITIONS','DISSATISFIED_WITH_LOCATION', 'DISSATISFIED_WITH_PAY','DISSATISFIED_WITH_SUPERVISION','END_TEMPORARY_EMPLOYMENT','HEALTH_REASONS','JOB_ABANDONMENT', 'LACK_CAREER_DEV/PROMO_OPPS','NEVER_STARTED_EMPLOYMENT','PARTIAL/TOTAL_DISABILITY','PERSONAL/FAMILY_REASONS', 'QUIT_WITHOUT_NOTICE','RESIGNATION','RETIRE','RETIREMENT','RETIRE_EARLY_VOLUNTARY','RETIRE_EARLY_INVOLUNTARY','RETURN_TO_SCHOOL','BB_REASON_TBD') THEN '1'
WHEN AR.ACTION_REASON_CODE = 'DEATH' THEN '4'
WHEN AR.ACTION_REASON_CODE IN ('ATTENDENCE','POSITION_ELIMINATION','POSITION_ELIMINATION_SIN','MISCONDUCT','MUTUAL_CONSENT','RELEASE_DURING_PROBATION','UNSATISFACTORY_PERFORMANCE','FAILURE_TO_COMPLY_WITH_POLICY') THEN '12'
ELSE '1' END AS TERMINATION_REASON,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'' AS AUTO_ENROLL
FROM
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
-- HCM_LOOKUPS LUKUP,
PER_PERIODS_OF_SERVICE PPS,
PER_ACTION_OCCURRENCES AOCC,
PER_ACTION_REASONS_B AR
WHERE
PER.PERSON_ID=ASS.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
-- AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND AOCC.ACTION_OCCURRENCE_ID(+)=ASS.ACTION_OCCURRENCE_ID
AND AOCC.ACTION_REASON_ID=AR.ACTION_REASON_ID(+)
-- AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.ASSIGNMENT_STATUS_TYPE = 'INACTIVE'
AND ASS.LEGISLATION_CODE = 'US'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND ASSIGNMENT_TYPE = 'E'
AND :Asofdate BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND (PPS.ACTUAL_TERMINATION_DATE = :Asofdate OR (TRUNC(PPS.LAST_UPDATE_DATE)= :Asofdate AND PPS.ACTUAL_TERMINATION_DATE <= :Asofdate AND PPS.DATE_START < PPS.ACTUAL_TERMINATION_DATE))
AND ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION','RESIGNATION')
AND :Asofdate BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND :Asofdate BETWEEN AR.START_DATE(+) AND AR.END_DATE(+)
union
SELECT
'3' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
'' AS LAST_NAME_EFFECTIVE_DATE,
'' AS NICKNAME,
'' AS SOCIAL_SECURITY_NUMBER,
'' AS DATE_OF_BIRTH,
'' AS GENDER,
'' AS Race_Ethnicity,
--BEN.DISABILITY_STATUS AS DISABLED,
--BEN.TOBACCO_TYPE_USAGE AS TOBACCO_USER,
'' AS BENEFIT_CLASS_CODE,
'' AS BENEFIT_CLASS_DATE,
'' AS COMPENSATION_DATE,
null AS SALARY,
null AS HOURLY_RATE,
null AS HOURS_PER_WEEK,
null AS BENEFITS_BASE_SALARY,
'' AS BONUS,
'' AS COMMISSION,
'' AS HIRE_DATE,
'' AS REHIRE_DATE,
'' AS Demographic_Field_1,
'' AS DEPT_CODE,
'' AS DEPARTMENT_EFF_DATE,
'' AS LOCATION_CODE,
'' AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
'' AS JOB_TITLE,
'' AS JOB_TITLE_EFF_DATE,
'' AS REGION_CODE,
'' as REGION_eff_date,
'' AS BU_CODE,
'' as BU_EFF_DATE,
'' AS SUPERVISOR_CODE,
'3' AS PAY_FREQUENCY,
'' AS TIME_STATUS,
'' AS OVERTIME_STATUS,
'' AS HCE,
'' AS WORK_PHONE,
'' AS WORK_PHONE_EXTENSION,
'' AS WORK_FAX,
'' AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
'' AS ADD_EFF_DATE,
'' AS HOME_ADDRESS1,
'' AS HOME_ADDRESS2,
'' AS CITY,
'' AS STATE_,
'' AS ZIP,
'' AS COUNTY,
'' AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
'' AS HOME_EMAIL,
'' AS USERNAME,
'' as LOGIN_ACCESS,
'' AS LOA_START_DATE,
'' AS LOA_END_DATE,
'' AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
'T' AS EMPLOYMENT_STATUS,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('BENEFIT_UPDATE') THEN ASS.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'' AS AUTO_ENROLL
FROM
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
-- HCM_LOOKUPS LUKUP,
PER_PERIODS_OF_SERVICE PPS
WHERE
PER.PERSON_ID=ASS.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
-- AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
-- AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
---AND ASS.ASSIGNMENT_STATUS_TYPE = 'INACTIVE'
AND ASS.PERSON_ID = (SELECT PAA_NEW.PERSON_ID
FROM PER_ALL_ASSIGNMENTS_M PAA_NEW,
PER_ALL_ASSIGNMENTS_M PAA_OLD
WHERE PAA_NEW.PERSON_ID = PER.PERSON_ID
AND PAA_NEW.PERSON_ID = PAA_OLD.PERSON_ID
AND PAA_NEW.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.LEGISLATION_CODE = 'US'
AND PAA_NEW.LEGISLATION_CODE = 'US'
AND PAA_OLD.ASS_ATTRIBUTE3 IN ('BB1', 'BB7', 'BSS', 'EXP' , 'NBE' )
AND PAA_NEW.ASS_ATTRIBUTE3 NOT IN ('BB1', 'BB7', 'BSS', 'EXP' , 'NBE' )
-- AND SUBSTR(PAA_NEW.EFFECTIVE_END_DATE,1,10) = '4712-12-31'
AND :Asofdate BETWEEN PAA_NEW.EFFECTIVE_START_DATE AND PAA_NEW.EFFECTIVE_END_DATE
AND SUBSTR(PAA_OLD.EFFECTIVE_END_DATE,1,10) = SUBSTR(PAA_NEW.EFFECTIVE_START_DATE-1,1,10)
AND PAA_NEW.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = PAA_NEW.PERSON_ID
AND ASSIGNMENT_TYPE = 'E'
AND :Asofdate BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND PAA_NEW.ASSIGNMENT_SEQUENCE = PAA_OLD.ASSIGNMENT_SEQUENCE
AND PAA_NEW.EFFECTIVE_LATEST_CHANGE = 'Y'
AND PAA_OLD.EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND ASSIGNMENT_TYPE = 'E'
AND :Asofdate BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.EFFECTIVE_START_DATE = :Asofdate
AND :Asofdate BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
UNION
SELECT
'4' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
TO_CHAR(NAME.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS LAST_NAME_EFFECTIVE_DATE,
NAME.KNOWN_AS AS NICKNAME,
NID.NATIONAL_IDENTIFIER_NUMBER AS SOCIAL_SECURITY_NUMBER,
TO_CHAR(PP.DATE_OF_BIRTH,'MM/DD/YYYY') AS DATE_OF_BIRTH,
CASE WHEN PPL.SEX IS NOT NULL THEN PPL.SEX
WHEN PPL.SEX IS NULL THEN 'U' END AS GENDER,
case when ETHN.ETHNICITY = 'BB_7' then '1'
when ETHN.ETHNICITY = 'BB_4' then '2'
when ETHN.ETHNICITY = 'BB_6' then '3'
when ETHN.ETHNICITY = 'BB_3' then '4'
when ETHN.ETHNICITY = 'BB_1' then '5'
when ETHN.ETHNICITY = 'BB_5' then '6'
when ETHN.ETHNICITY = 'BB_NSPEC' then '7'
ELSE ''
end AS Race_Ethnicity,
ASS.ASS_ATTRIBUTE3 AS BENEFIT_CLASS_CODE,
TO_CHAR(GREATEST(NVL((SELECT MAX(PAA_OLD.EFFECTIVE_END_DATE+1)
FROM PER_ALL_ASSIGNMENTS_M PAA_OLD,
PER_ALL_ASSIGNMENTS_M PAA_NEW
WHERE :Asofdate BETWEEN PAA_NEW.EFFECTIVE_START_DATE AND PAA_NEW.EFFECTIVE_END_DATE
AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = PAA_OLD.ASSIGNMENT_STATUS_TYPE
AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = 'ACTIVE'
AND PAA_NEW.PERSON_ID = PAA_OLD.PERSON_ID
AND PAA_NEW.PERSON_ID = ASS.PERSON_ID
AND PAA_NEW.ASS_ATTRIBUTE3 <> PAA_OLD.ASS_ATTRIBUTE3
----------AND PAA_OLD.LEGISLATION_CODE = 'US'
AND PAA_NEW.LEGISLATION_CODE = 'US'
AND PAA_NEW.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.ASSIGNMENT_TYPE = 'E'
AND PAA_NEW.ASSIGNMENT_TYPE = PAA_OLD.ASSIGNMENT_TYPE),to_date('01-01-1900','dd-mm-yyyy')),(SELECT MAX(effective_START_date)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') as BENEFIT_CLASS_DATE,
TO_CHAR(GREATEST((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE')),(SELECT max(DATE_FROM) FROM CMP_SALARY WHERE ASS.ASSIGNMENT_ID=ASSIGNMENT_ID AND :Asofdate BETWEEN DATE_FROM AND DATE_TO)),'MM/DD/YYYY') AS COMPENSATION_DATE,
-- TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS COMPENSATION_DATE,
ROUND((SELECT
SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='S'
AND :Asofdate BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS SALARY,
ROUND((SELECT
(SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)/2080
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='H'
AND :Asofdate BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS HOURLY_RATE,
ROUND(ASS.NORMAL_HOURS,2) AS HOURS_PER_WEEK,
ROUND(ASS.ASS_ATTRIBUTE_NUMBER1,2) AS BENEFITS_BASE_SALARY,
(SELECT
PE.SCREEN_ENTRY_VALUE
FROM
PAY_ELEMENT_ENTRIES_F EE,
PAY_ELEMENT_ENTRY_VALUES_F PE,
pay_input_values_f IV
WHERE
PER.PERSON_ID=EE.PERSON_ID
and EE.ELEMENT_ENTRY_ID=PE.ELEMENT_ENTRY_ID
AND PE.INPUT_VALUE_ID=IV.INPUT_VALUE_ID
AND (IV.BASE_NAME(+) ='ANNUAL_BONUS')
AND :Asofdate BETWEEN PE.EFFECTIVE_START_DATE AND PE.EFFECTIVE_END_DATE
AND :Asofdate BETWEEN IV.EFFECTIVE_START_DATE AND IV.EFFECTIVE_END_DATE) AS BONUS,
'' AS COMMISSION,
TO_CHAR((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE') ),'MM/DD/YYYY') AS HIRE_DATE,
to_char((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND (reason_CODE IN ('REHIRE','REHIRE_WKR') or (ACTION_CODE in ('REHIRE')))),'MM/DD/YYYY') AS REHIRE_DATE,
'' AS Demographic_Field_1,
CASE WHEN INSTR(HRC.NAME,'__',1) != 0 THEN SUBSTR(HRC.NAME, NVL(INSTR(HRC.NAME,'__',1),0)+2)
WHEN INSTR(HRC.NAME,'__',1) = 0 THEN NULL END AS DEPT_CODE,
/*TO_CHAR(GREATEST((PPS.ORIGINAL_DATE_OF_HIRE),(SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE')),'MM/DD/YYYY') AS DEPARTMENT_EFF_DATE,
LOC.internal_LOCATION_CODE AS LOCATION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(PPS.DATE_start)),'MM/DD/YYYY') AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
ASS.ASS_ATTRIBUTE4 AS JOB_TITLE,
TO_CHAR(GREATEST((PPS.ORIGINAL_DATE_OF_HIRE),(SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'JOB_DTL_CHG')),'MM/DD/YYYY') AS JOB_TITLE_EFF_DATE,
LOC.internal_LOCATION_CODE AS REGION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(PPS.ORIGINAL_DATE_OF_HIRE)),'MM/DD/YYYY') AS REGION_eff_date,*/
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS DEPARTMENT_EFF_DATE,
LOC.internal_LOCATION_CODE AS LOCATION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
ASS.ASS_ATTRIBUTE4 AS JOB_TITLE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'JOB_DTL_CHG'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS JOB_TITLE_EFF_DATE,
LOC.internal_LOCATION_CODE AS REGION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS REGION_eff_date,
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND :Asofdate BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS BU_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') as BU_EFF_DATE,
-- CASE WHEN ASS.MANAGER_FLAG='Y' THEN '1'
-- WHEN ASS.MANAGER_FLAG='N' THEN '0'
-- ELSE ''
-- END AS SUPERVISOR_CODE,
'' AS SUPERVISOR_CODE,
'3' AS PAY_FREQUENCY,
-- LUKUP1.MEANING AS TIME_STATUS,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '1'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '5'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '6'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '2'
ELSE '' END AS TIME_STATUS,
CASE WHEN JOBF.INFORMATION1='NONEXEMPT' THEN '0'
WHEN JOBF.INFORMATION1 = 'EXEMPT' THEN '1'
ELSE ''
END AS OVERTIME_STATUS,
'' AS HCE,
(SELECT case when INSTR(PH.PHONE_NUMBER,'x') = 0 then REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') else REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTR(PH.PHONE_NUMBER,1,nvl((INSTR(PH.PHONE_NUMBER,'x',1,1)-2),15)),'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') end FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO ) AS WORK_PHONE,
(SELECT PH.EXTENSION FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS WORK_PHONE_EXTENSION,
(SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')','') FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='WF' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS WORK_FAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1' and rownum=1) AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
TO_CHAR(GREATEST((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE')),(SELECT max(AD1.EFFECTIVE_START_DATE) FROM PER_PERSON_ADDR_USAGES_F AD,PER_ADDRESSES_F AD1 WHERE ASS.PERSON_ID =AD.PERSON_ID AND AD.ADDRESS_ID(+)=AD1.ADDRESS_ID AND AD.ADDRESS_TYPE(+) = 'HOME' AND :Asofdate BETWEEN AD1.effective_START_date AND ad1.effective_end_date)),'MM/DD/YYYY') AS ADD_EFF_DATE,
ADDR.ADDRESS_LINE_1 AS HOME_ADDRESS1,
ADDR.ADDRESS_LINE_2 AS HOME_ADDRESS2,
ADDR.TOWN_OR_CITY AS CITY,
ADDR.REGION_2 AS STATE_,
SUBSTR(ADDR.POSTAL_CODE,1,5) AS ZIP,
ADDR.REGION_3 AS COUNTY,
(SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='H1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE in (SELECT (CASE WHEN E.EMAIL_TYPE='H1' THEN 'H1'
WHEN E.EMAIL_TYPE NOT IN 'H1' AND E.EMAIL_TYPE='BB_OTHR' THEN'BB_OTHR' END)
FROM PER_EMAIL_ADDRESSES E
WHERE E.PERSON_ID=PER.PERSON_ID)
and rownum=1) AS HOME_EMAIL,
-- (SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID and EMAIL_TYPE in ('H1','BB_OTHR') and rownum=1) AS HOME_EMAIL,
--PU.USERNAME AS USERNAME,
'' AS USERNAME,
'' as LOGIN_ACCESS,
-- Modified condition for any other updates other than LOA
CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END AS LOA_START_DATE,
CASE
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- change to trunc(last_update_date)
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- added condition assgn effective date > max loa date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < ASS.EFFECTIVE_START_DATE THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- WHEN ( MAX_LOA.MAX_LOA_DATE is not null and PPS.ACTUAL_TERMINATION_DATE = :Asofdate) THEN TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY')
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
ELSE NULL
END AS LOA_END_DATE,
-- Modified condition for any other updates other than LOA
CASE WHEN (CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END ) IS NOT NULL THEN (select SUBSTR(ACT_REASON.ACTION_REASON_CODE,1,instr(ACT_REASON.ACTION_REASON_CODE,'_')-1) from PER_ACTION_REASONS_B ACT_REASON, PER_ACTION_OCCURRENCES ACT_OCC, PER_ALL_ASSIGNMENTS_M PAA where ACT_OCC.ACTION_REASON_ID=ACT_REASON.ACTION_REASON_ID AND PAA.ACTION_OCCURRENCE_ID = ACT_OCC.ACTION_OCCURRENCE_ID AND PAA.PERSON_ID = PER.PERSON_ID AND PAA.ASSIGNMENT_TYPE IN ('E','C') AND PAA.ACTION_CODE='LEAVE_OF_ABSENCE' AND TO_CHAR(PAA.EFFECTIVE_START_DATE,'MM/DD/YYYY') = (CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END) ) END AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
CASE WHEN ASS.ACTION_CODE='VOLUNTARY_TERMINATION' AND ASS.REASON_CODE='RETIRE' THEN 'R'
WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') AND ASS.REASON_CODE NOT IN ('RETIRE') THEN 'T'
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN 'A'
ELSE '' END AS EMPLOYMENT_STATUS,
-- greatest((select TO_CHAR(min(ORIGINAL_DATE_OF_HIRE),'MM/DD/YYYY') FROM per_periods_of_service where person_id=per.person_id), (SELECT TO_CHAR(MAX(effective_START_date),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ((reason_CODE IN ('REHIRE','REHIRE_WKR')) or (ACTION_CODE in ('REHIRE'))))) AS EMPLOYMENT_EFF_DT,
TO_CHAR(PPS.DATE_start,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') THEN ASS.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'1' AS AUTO_ENROLL
FROM
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_ETHNICITIES ETHN,
PER_NATIONAL_IDENTIFIERS NID,
PER_PERSONS PP,
PER_PERIODS_OF_SERVICE PPS,
HR_LOCATIONS LOC,
-- HCM_LOOKUPS LUKUP,
-- HCM_LOOKUPS LUKUP1,
PER_JOB_LEG_F JOBF,
PER_PERSON_ADDR_USAGES_F ADDRE,
PER_ADDRESSES_F ADDR,
PER_USERS PU,
HR_ALL_ORGANIZATION_UNITS_F_VL HRC,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_LOA_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'LEAVE_OF_ABSENCE' AND EFFECTIVE_START_DATE < :Asofdate GROUP BY PERSON_ID) MAX_LOA,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_RFL_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'RETURN_FROM_LEAVE' AND EFFECTIVE_START_DATE < :Asofdate GROUP BY PERSON_ID) MAX_RFL
WHERE
PER.PERSON_ID=MAX_LOA.PERSON_ID(+)
AND per.person_id=ASS.PERSON_ID
AND PER.PERSON_ID=MAX_RFL.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND ASS.PERSON_ID = ETHN.PERSON_ID(+)
AND ASS.PERSON_ID = PPL.PERSON_ID(+)
AND PPL.LEGISLATION_CODE(+)='US'
AND ASS.PERSON_ID = NID.PERSON_ID(+)
AND NATIONAL_IDENTIFIER_TYPE(+) = 'SSN'
AND ASS.PERSON_ID = PP.PERSON_ID(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=HRC.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
-- AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
-- AND ASS.EMPLOYMENT_CATEGORY=LUKUP1.LOOKUP_CODE(+)
AND ASS.JOB_ID=JOBF.JOB_ID(+)
-- AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
-- AND LUKUP1.LOOKUP_TYPE(+) = 'EMP_CAT'
AND JOBF.INFORMATION_CATEGORY(+)='HRX_US_JOBS'
AND ADDRE.PERSON_ID(+)=ASS.PERSON_ID
AND ADDR.ADDRESS_ID(+)=ADDRE.ADDRESS_ID
AND ASS.PERSON_ID=PU.PERSON_ID(+)
AND ASS.ASS_ATTRIBUTE3 IN ('BB1', 'BB7', 'BSS', 'EXP' , 'NBE' )
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.LEGISLATION_CODE='US'
AND ADDRE.ADDRESS_TYPE(+)='HOME'
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND ADDR.EFFECTIVE_START_DATE IN (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ADDRESSES_F A, PER_PERSON_ADDR_USAGES_F B WHERE A.ADDRESS_ID(+)=B.ADDRESS_ID AND B.PERSON_ID(+)=ASS.PERSON_ID AND B.ADDRESS_TYPE(+)='HOME' AND :Asofdate BETWEEN A.EFFECTIVE_START_DATE(+) AND A.EFFECTIVE_END_DATE(+) AND :Asofdate BETWEEN B.EFFECTIVE_START_DATE(+) AND B.EFFECTIVE_END_DATE(+))
AND :Asofdate BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND :Asofdate BETWEEN PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN HRC.EFFECTIVE_START_DATE(+) AND HRC.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN JOBF.EFFECTIVE_START_DATE(+) AND JOBF.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ADDRE.EFFECTIVE_START_DATE(+) AND ADDRE.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PU.START_DATE(+) AND PU.END_DATE(+)
AND PER.PERSON_NUMBER NOT IN (SELECT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
FF_USER_ROWS_VL R,
FF_USER_COLUMNS_VL C,
FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID = R.USER_ROW_ID
AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
AND C.USER_TABLE_ID = T.USER_TABLE_ID
AND R.USER_TABLE_ID = T.USER_TABLE_ID
AND :Asofdate BETWEEN R.EFFECTIVE_START_DATE AND R.EFFECTIVE_END_DATE
AND T.USER_TABLE_NAME = 'BB_BSWIFT_INTF_BACK_DATED_LOA'
AND TRUNC(CI.CREATION_DATE) = :Asofdate
)
UNION
SELECT
'5' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
TO_CHAR(NAME.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS LAST_NAME_EFFECTIVE_DATE,
NAME.KNOWN_AS AS NICKNAME,
NID.NATIONAL_IDENTIFIER_NUMBER AS SOCIAL_SECURITY_NUMBER,
TO_CHAR(PP.DATE_OF_BIRTH,'MM/DD/YYYY') AS DATE_OF_BIRTH,
CASE WHEN PPL.SEX IS NOT NULL THEN PPL.SEX
WHEN PPL.SEX IS NULL THEN 'U' END AS GENDER,
case when ETHN.ETHNICITY = 'BB_7' then '1'
when ETHN.ETHNICITY = 'BB_4' then '2'
when ETHN.ETHNICITY = 'BB_6' then '3'
when ETHN.ETHNICITY = 'BB_3' then '4'
when ETHN.ETHNICITY = 'BB_1' then '5'
when ETHN.ETHNICITY = 'BB_5' then '6'
when ETHN.ETHNICITY = 'BB_NSPEC' then '7'
ELSE ''
end AS Race_Ethnicity,
ASS.ASS_ATTRIBUTE3 AS BENEFIT_CLASS_CODE,
TO_CHAR(GREATEST(NVL((SELECT MAX(PAA_OLD.EFFECTIVE_END_DATE+1)
FROM PER_ALL_ASSIGNMENTS_M PAA_OLD,
PER_ALL_ASSIGNMENTS_M PAA_NEW
WHERE :Asofdate BETWEEN PAA_NEW.EFFECTIVE_START_DATE AND PAA_NEW.EFFECTIVE_END_DATE
AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = PAA_OLD.ASSIGNMENT_STATUS_TYPE
AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = 'ACTIVE'
AND PAA_NEW.PERSON_ID = PAA_OLD.PERSON_ID
AND PAA_NEW.PERSON_ID = ASS.PERSON_ID
AND PAA_NEW.ASS_ATTRIBUTE3 <> PAA_OLD.ASS_ATTRIBUTE3
------AND PAA_OLD.LEGISLATION_CODE = 'US'
AND PAA_NEW.LEGISLATION_CODE = 'US'
AND PAA_NEW.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.ASSIGNMENT_TYPE = 'E'
AND PAA_NEW.ASSIGNMENT_TYPE = PAA_OLD.ASSIGNMENT_TYPE),to_date('01-01-1900','dd-mm-yyyy')),(SELECT MAX(effective_START_date)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') as BENEFIT_CLASS_DATE,
TO_CHAR(GREATEST((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE')),(SELECT max(DATE_FROM) FROM CMP_SALARY WHERE ASS.ASSIGNMENT_ID=ASSIGNMENT_ID AND :Asofdate BETWEEN DATE_FROM AND DATE_TO)),'MM/DD/YYYY') AS COMPENSATION_DATE,
-- TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS COMPENSATION_DATE,
ROUND((SELECT
SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='S'
AND :Asofdate BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS SALARY,
ROUND((SELECT
(SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)/2080
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='H'
AND :Asofdate BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS HOURLY_RATE,
ROUND(ASS.NORMAL_HOURS,2) AS HOURS_PER_WEEK,
ROUND(ASS.ASS_ATTRIBUTE_NUMBER1,2) AS BENEFITS_BASE_SALARY,
(SELECT
PE.SCREEN_ENTRY_VALUE
FROM
PAY_ELEMENT_ENTRIES_F EE,
PAY_ELEMENT_ENTRY_VALUES_F PE,
pay_input_values_f IV
WHERE
PER.PERSON_ID=EE.PERSON_ID
and EE.ELEMENT_ENTRY_ID=PE.ELEMENT_ENTRY_ID
AND PE.INPUT_VALUE_ID=IV.INPUT_VALUE_ID
AND (IV.BASE_NAME(+) ='ANNUAL_BONUS')
AND :Asofdate BETWEEN PE.EFFECTIVE_START_DATE AND PE.EFFECTIVE_END_DATE
AND :Asofdate BETWEEN IV.EFFECTIVE_START_DATE AND IV.EFFECTIVE_END_DATE) AS BONUS,
'' AS COMMISSION,
TO_CHAR((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE') ),'MM/DD/YYYY') AS HIRE_DATE,
TO_CHAR((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND (reason_CODE IN ('REHIRE','REHIRE_WKR') or (ACTION_CODE in ('REHIRE')))),'MM/DD/YYYY') AS REHIRE_DATE,
'' AS Demographic_Field_1,
CASE WHEN INSTR(HRC.NAME,'__',1) != 0 THEN SUBSTR(HRC.NAME, NVL(INSTR(HRC.NAME,'__',1),0)+2)
WHEN INSTR(HRC.NAME,'__',1) = 0 THEN NULL END AS DEPT_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS DEPARTMENT_EFF_DATE,
LOC.internal_LOCATION_CODE AS LOCATION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
ASS.ASS_ATTRIBUTE4 AS JOB_TITLE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'JOB_DTL_CHG'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS JOB_TITLE_EFF_DATE,
LOC.internal_LOCATION_CODE AS REGION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS REGION_eff_date,
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND :Asofdate BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS BU_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') as BU_EFF_DATE,
-- CASE WHEN ASS.MANAGER_FLAG='Y' THEN '1'
-- WHEN ASS.MANAGER_FLAG='N' THEN '0'
-- ELSE ''
-- END AS SUPERVISOR_CODE,
'' AS SUPERVISOR_CODE,
'3' AS PAY_FREQUENCY,
-- LUKUP1.MEANING AS TIME_STATUS,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '1'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '5'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '6'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '2'
ELSE '' END AS TIME_STATUS,
CASE WHEN JOBF.INFORMATION1='NONEXEMPT' THEN '0'
WHEN JOBF.INFORMATION1 = 'EXEMPT' THEN '1'
ELSE ''
END AS OVERTIME_STATUS,
'' AS HCE,
(SELECT case when INSTR(PH.PHONE_NUMBER,'x') = 0 then REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') else REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTR(PH.PHONE_NUMBER,1,nvl((INSTR(PH.PHONE_NUMBER,'x',1,1)-2),15)),'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') end FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO ) AS WORK_PHONE,
(SELECT PH.EXTENSION FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS WORK_PHONE_EXTENSION,
(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='WF' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS WORK_FAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1' and rownum=1) AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
TO_CHAR(GREATEST((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE')),(SELECT max(AD1.EFFECTIVE_START_DATE) FROM PER_PERSON_ADDR_USAGES_F AD,PER_ADDRESSES_F AD1 WHERE ASS.PERSON_ID =AD.PERSON_ID AND AD.ADDRESS_ID(+)=AD1.ADDRESS_ID AND AD.ADDRESS_TYPE(+) = 'HOME' AND :Asofdate BETWEEN AD1.effective_START_date AND ad1.effective_end_date)),'MM/DD/YYYY') AS ADD_EFF_DATE,
ADDR.ADDRESS_LINE_1 AS HOME_ADDRESS1,
ADDR.ADDRESS_LINE_2 AS HOME_ADDRESS2,
ADDR.TOWN_OR_CITY AS CITY,
ADDR.REGION_2 AS STATE_,
SUBSTR(ADDR.POSTAL_CODE,1,5) AS ZIP,
ADDR.REGION_3 AS COUNTY,
(SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='H1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE in (SELECT (CASE WHEN E.EMAIL_TYPE='H1' THEN 'H1'
WHEN E.EMAIL_TYPE NOT IN 'H1' AND E.EMAIL_TYPE='BB_OTHR' THEN'BB_OTHR' END) FROM PER_EMAIL_ADDRESSES E WHERE E.PERSON_ID=PER.PERSON_ID) and rownum=1) AS HOME_EMAIL,
-- CASE WHEN (SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE in ('H1','BB_OTHR') and rownum=1) AS HOME_EMAIL,
--PU.USERNAME AS USERNAME,
'' AS USERNAME,
'' as LOGIN_ACCESS,
-- Modified condition for any other updates other than LOA
CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END AS LOA_START_DATE,
CASE
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- change to trunc(last_update_date)
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- added condition assgn effective date > max loa date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < ASS.EFFECTIVE_START_DATE THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- WHEN ( MAX_LOA.MAX_LOA_DATE is not null and PPS.ACTUAL_TERMINATION_DATE = :Asofdate) THEN TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY')
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
ELSE NULL
END AS LOA_END_DATE,
-- Modified condition for any other updates other than LOA
CASE WHEN (CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END ) IS NOT NULL THEN (select SUBSTR(ACT_REASON.ACTION_REASON_CODE,1,instr(ACT_REASON.ACTION_REASON_CODE,'_')-1) from PER_ACTION_REASONS_B ACT_REASON, PER_ACTION_OCCURRENCES ACT_OCC, PER_ALL_ASSIGNMENTS_M PAA where ACT_OCC.ACTION_REASON_ID=ACT_REASON.ACTION_REASON_ID AND PAA.ACTION_OCCURRENCE_ID = ACT_OCC.ACTION_OCCURRENCE_ID AND PAA.PERSON_ID = PER.PERSON_ID AND PAA.ASSIGNMENT_TYPE IN ('E','C') AND PAA.ACTION_CODE='LEAVE_OF_ABSENCE' AND TO_CHAR(PAA.EFFECTIVE_START_DATE,'MM/DD/YYYY') = (CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END) ) END AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
CASE WHEN ASS.ACTION_CODE='VOLUNTARY_TERMINATION' AND ASS.REASON_CODE='RETIRE' THEN 'R'
WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') AND ASS.REASON_CODE NOT IN ('RETIRE') THEN 'T'
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN 'A'
ELSE '' END AS EMPLOYMENT_STATUS,
-- greatest((select TO_CHAR(min(ORIGINAL_DATE_OF_HIRE),'MM/DD/YYYY') FROM per_periods_of_service where person_id=per.person_id), (SELECT TO_CHAR(MAX(effective_START_date),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ((reason_CODE IN ('REHIRE','REHIRE_WKR')) or (ACTION_CODE in ('REHIRE'))))) AS EMPLOYMENT_EFF_DT,
TO_CHAR(PPS.DATE_start,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') THEN ASS.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'1' AS AUTO_ENROLL
FROM
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_ETHNICITIES ETHN,
PER_NATIONAL_IDENTIFIERS NID,
PER_PERSONS PP,
PER_PERIODS_OF_SERVICE PPS,
HR_LOCATIONS LOC,
-- HCM_LOOKUPS LUKUP,
-- HCM_LOOKUPS LUKUP1,
PER_JOB_LEG_F JOBF,
PER_PERSON_ADDR_USAGES_F ADDRE,
PER_ADDRESSES_F ADDR,
PER_USERS PU,
HR_ALL_ORGANIZATION_UNITS_F_VL HRC,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_LOA_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'LEAVE_OF_ABSENCE' AND EFFECTIVE_START_DATE <= :Asofdate GROUP BY PERSON_ID) MAX_LOA,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_RFL_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'RETURN_FROM_LEAVE' AND EFFECTIVE_START_DATE <= :Asofdate GROUP BY PERSON_ID) MAX_RFL
WHERE
PER.PERSON_ID=MAX_LOA.PERSON_ID(+)
AND per.person_id=ASS.PERSON_ID
AND PER.PERSON_ID=MAX_RFL.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND ASS.PERSON_ID = ETHN.PERSON_ID(+)
AND ASS.PERSON_ID = PPL.PERSON_ID(+)
AND PPL.LEGISLATION_CODE(+)='US'
AND ASS.PERSON_ID = NID.PERSON_ID(+)
AND NATIONAL_IDENTIFIER_TYPE(+) = 'SSN'
AND ASS.PERSON_ID = PP.PERSON_ID(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=HRC.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
-- AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
-- AND ASS.EMPLOYMENT_CATEGORY=LUKUP1.LOOKUP_CODE(+)
AND ASS.JOB_ID=JOBF.JOB_ID(+)
-- AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
-- AND LUKUP1.LOOKUP_TYPE(+) = 'EMP_CAT'
AND JOBF.INFORMATION_CATEGORY(+)='HRX_US_JOBS'
AND ADDRE.PERSON_ID(+)=ASS.PERSON_ID
AND ADDR.ADDRESS_ID(+)=ADDRE.ADDRESS_ID
AND ASS.PERSON_ID=PU.PERSON_ID(+)
AND ASS.ASS_ATTRIBUTE3 IN ('BB1', 'BB7', 'BSS', 'EXP' , 'NBE' )
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.LEGISLATION_CODE='US'
AND ADDRE.ADDRESS_TYPE(+)='HOME'
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND ADDR.EFFECTIVE_START_DATE IN (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ADDRESSES_F A, PER_PERSON_ADDR_USAGES_F B WHERE A.ADDRESS_ID(+)=B.ADDRESS_ID AND B.PERSON_ID(+)=ASS.PERSON_ID AND B.ADDRESS_TYPE(+)='HOME' AND :Asofdate BETWEEN A.EFFECTIVE_START_DATE(+) AND A.EFFECTIVE_END_DATE(+) AND :Asofdate BETWEEN B.EFFECTIVE_START_DATE(+) AND B.EFFECTIVE_END_DATE(+))
AND :Asofdate BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND :Asofdate BETWEEN PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN HRC.EFFECTIVE_START_DATE(+) AND HRC.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN JOBF.EFFECTIVE_START_DATE(+) AND JOBF.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ADDRE.EFFECTIVE_START_DATE(+) AND ADDRE.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PU.START_DATE(+) AND PU.END_DATE(+)
AND PER.PERSON_NUMBER IN (SELECT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
FF_USER_ROWS_VL R,
FF_USER_COLUMNS_VL C,
FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID = R.USER_ROW_ID
AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
AND C.USER_TABLE_ID = T.USER_TABLE_ID
AND R.USER_TABLE_ID = T.USER_TABLE_ID
AND :Asofdate BETWEEN R.EFFECTIVE_START_DATE AND R.EFFECTIVE_END_DATE
AND T.USER_TABLE_NAME = 'BB_BSWIFT_INTF_BACK_DATED_LOA'
AND TRUNC(CI.CREATION_DATE) = :Asofdate
)
AND EXISTS (SELECT 1 FROM PER_ALL_ASSIGNMENTS_M ASS_LOA WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS_LOA.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) AND ASS_LOA.EFFECTIVE_START_DATE > NVL(MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')))
order by orderby,EMPLOYEE_ID
--------
SELECT
'4' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
TO_CHAR(NAME.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS LAST_NAME_EFFECTIVE_DATE,
NAME.KNOWN_AS AS NICKNAME,
NID.NATIONAL_IDENTIFIER_NUMBER AS SOCIAL_SECURITY_NUMBER,
TO_CHAR(PP.DATE_OF_BIRTH,'MM/DD/YYYY') AS DATE_OF_BIRTH,
CASE WHEN PPL.SEX IS NOT NULL THEN PPL.SEX
WHEN PPL.SEX IS NULL THEN 'U' END AS GENDER,
case when ETHN.ETHNICITY = 'BB_7' then '1'
when ETHN.ETHNICITY = 'BB_4' then '2'
when ETHN.ETHNICITY = 'BB_6' then '3'
when ETHN.ETHNICITY = 'BB_3' then '4'
when ETHN.ETHNICITY = 'BB_1' then '5'
when ETHN.ETHNICITY = 'BB_5' then '6'
when ETHN.ETHNICITY = 'BB_NSPEC' then '7'
ELSE ''
end AS Race_Ethnicity,
ASS.ASS_ATTRIBUTE3 AS BENEFIT_CLASS_CODE,
TO_CHAR(GREATEST(NVL((SELECT MAX(PAA_OLD.EFFECTIVE_END_DATE+1)
FROM PER_ALL_ASSIGNMENTS_M PAA_OLD,
PER_ALL_ASSIGNMENTS_M PAA_NEW
WHERE :Asofdate BETWEEN PAA_NEW.EFFECTIVE_START_DATE AND PAA_NEW.EFFECTIVE_END_DATE
AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = PAA_OLD.ASSIGNMENT_STATUS_TYPE
AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = 'ACTIVE'
AND PAA_NEW.PERSON_ID = PAA_OLD.PERSON_ID
AND PAA_NEW.PERSON_ID = ASS.PERSON_ID
AND PAA_NEW.ASS_ATTRIBUTE3 <> PAA_OLD.ASS_ATTRIBUTE3
----------AND PAA_OLD.LEGISLATION_CODE = 'US'
AND PAA_NEW.LEGISLATION_CODE = 'US'
AND PAA_NEW.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.ASSIGNMENT_TYPE = 'E'
AND PAA_NEW.ASSIGNMENT_TYPE = PAA_OLD.ASSIGNMENT_TYPE),to_date('01-01-1900','dd-mm-yyyy')),(SELECT MAX(effective_START_date)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') as BENEFIT_CLASS_DATE,
TO_CHAR(GREATEST((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE')),(SELECT max(DATE_FROM) FROM CMP_SALARY WHERE ASS.ASSIGNMENT_ID=ASSIGNMENT_ID AND :Asofdate BETWEEN DATE_FROM AND DATE_TO)),'MM/DD/YYYY') AS COMPENSATION_DATE,
-- TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS COMPENSATION_DATE,
ROUND((SELECT
SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='S'
AND :Asofdate BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS SALARY,
ROUND((SELECT
(SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)/2080
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='H'
AND :Asofdate BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS HOURLY_RATE,
ROUND(ASS.NORMAL_HOURS,2) AS HOURS_PER_WEEK,
ROUND(ASS.ASS_ATTRIBUTE_NUMBER1,2) AS BENEFITS_BASE_SALARY,
(SELECT
PE.SCREEN_ENTRY_VALUE
FROM
PAY_ELEMENT_ENTRIES_F EE,
PAY_ELEMENT_ENTRY_VALUES_F PE,
pay_input_values_f IV
WHERE
PER.PERSON_ID=EE.PERSON_ID
and EE.ELEMENT_ENTRY_ID=PE.ELEMENT_ENTRY_ID
AND PE.INPUT_VALUE_ID=IV.INPUT_VALUE_ID
AND (IV.BASE_NAME(+) ='ANNUAL_BONUS')
AND :Asofdate BETWEEN PE.EFFECTIVE_START_DATE AND PE.EFFECTIVE_END_DATE
AND :Asofdate BETWEEN IV.EFFECTIVE_START_DATE AND IV.EFFECTIVE_END_DATE) AS BONUS,
'' AS COMMISSION,
TO_CHAR((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE') ),'MM/DD/YYYY') AS HIRE_DATE,
to_char((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND (reason_CODE IN ('REHIRE','REHIRE_WKR') or (ACTION_CODE in ('REHIRE')))),'MM/DD/YYYY') AS REHIRE_DATE,
'' AS Demographic_Field_1,
CASE WHEN INSTR(HRC.NAME,'__',1) != 0 THEN SUBSTR(HRC.NAME, NVL(INSTR(HRC.NAME,'__',1),0)+2)
WHEN INSTR(HRC.NAME,'__',1) = 0 THEN NULL END AS DEPT_CODE,
/*TO_CHAR(GREATEST((PPS.ORIGINAL_DATE_OF_HIRE),(SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE')),'MM/DD/YYYY') AS DEPARTMENT_EFF_DATE,
LOC.internal_LOCATION_CODE AS LOCATION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(PPS.DATE_start)),'MM/DD/YYYY') AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
ASS.ASS_ATTRIBUTE4 AS JOB_TITLE,
TO_CHAR(GREATEST((PPS.ORIGINAL_DATE_OF_HIRE),(SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'JOB_DTL_CHG')),'MM/DD/YYYY') AS JOB_TITLE_EFF_DATE,
LOC.internal_LOCATION_CODE AS REGION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(PPS.ORIGINAL_DATE_OF_HIRE)),'MM/DD/YYYY') AS REGION_eff_date,*/
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS DEPARTMENT_EFF_DATE,
LOC.internal_LOCATION_CODE AS LOCATION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
ASS.ASS_ATTRIBUTE4 AS JOB_TITLE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'JOB_DTL_CHG'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS JOB_TITLE_EFF_DATE,
LOC.internal_LOCATION_CODE AS REGION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS REGION_eff_date,
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND :Asofdate BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS BU_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') as BU_EFF_DATE,
-- CASE WHEN ASS.MANAGER_FLAG='Y' THEN '1'
-- WHEN ASS.MANAGER_FLAG='N' THEN '0'
-- ELSE ''
-- END AS SUPERVISOR_CODE,
'' AS SUPERVISOR_CODE,
'3' AS PAY_FREQUENCY,
-- LUKUP1.MEANING AS TIME_STATUS,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '1'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '5'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '6'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '2'
ELSE '' END AS TIME_STATUS,
CASE WHEN JOBF.INFORMATION1='NONEXEMPT' THEN '0'
WHEN JOBF.INFORMATION1 = 'EXEMPT' THEN '1'
ELSE ''
END AS OVERTIME_STATUS,
'' AS HCE,
(SELECT case when INSTR(PH.PHONE_NUMBER,'x') = 0 then REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') else REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTR(PH.PHONE_NUMBER,1,nvl((INSTR(PH.PHONE_NUMBER,'x',1,1)-2),15)),'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') end FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO ) AS WORK_PHONE,
(SELECT PH.EXTENSION FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS WORK_PHONE_EXTENSION,
(SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')','') FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='WF' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS WORK_FAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1' and rownum=1) AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
TO_CHAR(GREATEST((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE')),(SELECT max(AD1.EFFECTIVE_START_DATE) FROM PER_PERSON_ADDR_USAGES_F AD,PER_ADDRESSES_F AD1 WHERE ASS.PERSON_ID =AD.PERSON_ID AND AD.ADDRESS_ID(+)=AD1.ADDRESS_ID AND AD.ADDRESS_TYPE(+) = 'HOME' AND :Asofdate BETWEEN AD1.effective_START_date AND ad1.effective_end_date)),'MM/DD/YYYY') AS ADD_EFF_DATE,
ADDR.ADDRESS_LINE_1 AS HOME_ADDRESS1,
ADDR.ADDRESS_LINE_2 AS HOME_ADDRESS2,
ADDR.TOWN_OR_CITY AS CITY,
ADDR.REGION_2 AS STATE_,
SUBSTR(ADDR.POSTAL_CODE,1,5) AS ZIP,
ADDR.REGION_3 AS COUNTY,
(SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='H1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE in (SELECT (CASE WHEN E.EMAIL_TYPE='H1' THEN 'H1'
WHEN E.EMAIL_TYPE NOT IN 'H1' AND E.EMAIL_TYPE='BB_OTHR' THEN'BB_OTHR' END)
FROM PER_EMAIL_ADDRESSES E
WHERE E.PERSON_ID=PER.PERSON_ID)
and rownum=1) AS HOME_EMAIL,
-- (SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID and EMAIL_TYPE in ('H1','BB_OTHR') and rownum=1) AS HOME_EMAIL,
--PU.USERNAME AS USERNAME,
'' AS USERNAME,
'' as LOGIN_ACCESS,
-- Modified condition for any other updates other than LOA
CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END AS LOA_START_DATE,
CASE
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- change to trunc(last_update_date)
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- added condition assgn effective date > max loa date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < ASS.EFFECTIVE_START_DATE THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- WHEN ( MAX_LOA.MAX_LOA_DATE is not null and PPS.ACTUAL_TERMINATION_DATE = :Asofdate) THEN TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY')
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
ELSE NULL
END AS LOA_END_DATE,
-- Modified condition for any other updates other than LOA
CASE WHEN (CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END ) IS NOT NULL THEN (select SUBSTR(ACT_REASON.ACTION_REASON_CODE,1,instr(ACT_REASON.ACTION_REASON_CODE,'_')-1) from PER_ACTION_REASONS_B ACT_REASON, PER_ACTION_OCCURRENCES ACT_OCC, PER_ALL_ASSIGNMENTS_M PAA where ACT_OCC.ACTION_REASON_ID=ACT_REASON.ACTION_REASON_ID AND PAA.ACTION_OCCURRENCE_ID = ACT_OCC.ACTION_OCCURRENCE_ID AND PAA.PERSON_ID = PER.PERSON_ID AND PAA.ASSIGNMENT_TYPE IN ('E','C') AND PAA.ACTION_CODE='LEAVE_OF_ABSENCE' AND TO_CHAR(PAA.EFFECTIVE_START_DATE,'MM/DD/YYYY') = (CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END) ) END AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
CASE WHEN ASS.ACTION_CODE='VOLUNTARY_TERMINATION' AND ASS.REASON_CODE='RETIRE' THEN 'R'
WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') AND ASS.REASON_CODE NOT IN ('RETIRE') THEN 'T'
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN 'A'
ELSE '' END AS EMPLOYMENT_STATUS,
-- greatest((select TO_CHAR(min(ORIGINAL_DATE_OF_HIRE),'MM/DD/YYYY') FROM per_periods_of_service where person_id=per.person_id), (SELECT TO_CHAR(MAX(effective_START_date),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ((reason_CODE IN ('REHIRE','REHIRE_WKR')) or (ACTION_CODE in ('REHIRE'))))) AS EMPLOYMENT_EFF_DT,
TO_CHAR(PPS.DATE_start,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') THEN ASS.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'1' AS AUTO_ENROLL
FROM
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_ETHNICITIES ETHN,
PER_NATIONAL_IDENTIFIERS NID,
PER_PERSONS PP,
PER_PERIODS_OF_SERVICE PPS,
HR_LOCATIONS LOC,
-- HCM_LOOKUPS LUKUP,
-- HCM_LOOKUPS LUKUP1,
PER_JOB_LEG_F JOBF,
PER_PERSON_ADDR_USAGES_F ADDRE,
PER_ADDRESSES_F ADDR,
PER_USERS PU,
HR_ALL_ORGANIZATION_UNITS_F_VL HRC,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_LOA_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'LEAVE_OF_ABSENCE' AND EFFECTIVE_START_DATE < :Asofdate GROUP BY PERSON_ID) MAX_LOA,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_RFL_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'RETURN_FROM_LEAVE' AND EFFECTIVE_START_DATE < :Asofdate GROUP BY PERSON_ID) MAX_RFL
WHERE
PER.PERSON_ID=MAX_LOA.PERSON_ID(+)
AND per.person_id=ASS.PERSON_ID
AND PER.PERSON_ID=MAX_RFL.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND ASS.PERSON_ID = ETHN.PERSON_ID(+)
AND ASS.PERSON_ID = PPL.PERSON_ID(+)
AND PPL.LEGISLATION_CODE(+)='US'
AND ASS.PERSON_ID = NID.PERSON_ID(+)
AND NATIONAL_IDENTIFIER_TYPE(+) = 'SSN'
AND ASS.PERSON_ID = PP.PERSON_ID(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=HRC.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
-- AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
-- AND ASS.EMPLOYMENT_CATEGORY=LUKUP1.LOOKUP_CODE(+)
AND ASS.JOB_ID=JOBF.JOB_ID(+)
-- AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
-- AND LUKUP1.LOOKUP_TYPE(+) = 'EMP_CAT'
AND JOBF.INFORMATION_CATEGORY(+)='HRX_US_JOBS'
AND ADDRE.PERSON_ID(+)=ASS.PERSON_ID
AND ADDR.ADDRESS_ID(+)=ADDRE.ADDRESS_ID
AND ASS.PERSON_ID=PU.PERSON_ID(+)
AND ASS.ASS_ATTRIBUTE3 IN ('BB1', 'BB7', 'BSS', 'EXP' , 'NBE' )
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.LEGISLATION_CODE='US'
AND ADDRE.ADDRESS_TYPE(+)='HOME'
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND ADDR.EFFECTIVE_START_DATE IN (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ADDRESSES_F A, PER_PERSON_ADDR_USAGES_F B WHERE A.ADDRESS_ID(+)=B.ADDRESS_ID AND B.PERSON_ID(+)=ASS.PERSON_ID AND B.ADDRESS_TYPE(+)='HOME' AND :Asofdate BETWEEN A.EFFECTIVE_START_DATE(+) AND A.EFFECTIVE_END_DATE(+) AND :Asofdate BETWEEN B.EFFECTIVE_START_DATE(+) AND B.EFFECTIVE_END_DATE(+))
AND :Asofdate BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND :Asofdate BETWEEN PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN HRC.EFFECTIVE_START_DATE(+) AND HRC.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN JOBF.EFFECTIVE_START_DATE(+) AND JOBF.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ADDRE.EFFECTIVE_START_DATE(+) AND ADDRE.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PU.START_DATE(+) AND PU.END_DATE(+)
AND PER.PERSON_NUMBER NOT IN (SELECT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
FF_USER_ROWS_VL R,
FF_USER_COLUMNS_VL C,
FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID = R.USER_ROW_ID
AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
AND C.USER_TABLE_ID = T.USER_TABLE_ID
AND R.USER_TABLE_ID = T.USER_TABLE_ID
AND :Asofdate BETWEEN R.EFFECTIVE_START_DATE AND R.EFFECTIVE_END_DATE
AND T.USER_TABLE_NAME = 'BB_BSWIFT_INTF_BACK_DATED_LOA'
AND TRUNC(CI.CREATION_DATE) = :Asofdate
)
UNION
SELECT
'5' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
TO_CHAR(NAME.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS LAST_NAME_EFFECTIVE_DATE,
NAME.KNOWN_AS AS NICKNAME,
NID.NATIONAL_IDENTIFIER_NUMBER AS SOCIAL_SECURITY_NUMBER,
TO_CHAR(PP.DATE_OF_BIRTH,'MM/DD/YYYY') AS DATE_OF_BIRTH,
CASE WHEN PPL.SEX IS NOT NULL THEN PPL.SEX
WHEN PPL.SEX IS NULL THEN 'U' END AS GENDER,
case when ETHN.ETHNICITY = 'BB_7' then '1'
when ETHN.ETHNICITY = 'BB_4' then '2'
when ETHN.ETHNICITY = 'BB_6' then '3'
when ETHN.ETHNICITY = 'BB_3' then '4'
when ETHN.ETHNICITY = 'BB_1' then '5'
when ETHN.ETHNICITY = 'BB_5' then '6'
when ETHN.ETHNICITY = 'BB_NSPEC' then '7'
ELSE ''
end AS Race_Ethnicity,
ASS.ASS_ATTRIBUTE3 AS BENEFIT_CLASS_CODE,
TO_CHAR(GREATEST(NVL((SELECT MAX(PAA_OLD.EFFECTIVE_END_DATE+1)
FROM PER_ALL_ASSIGNMENTS_M PAA_OLD,
PER_ALL_ASSIGNMENTS_M PAA_NEW
WHERE :Asofdate BETWEEN PAA_NEW.EFFECTIVE_START_DATE AND PAA_NEW.EFFECTIVE_END_DATE
AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = PAA_OLD.ASSIGNMENT_STATUS_TYPE
AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = 'ACTIVE'
AND PAA_NEW.PERSON_ID = PAA_OLD.PERSON_ID
AND PAA_NEW.PERSON_ID = ASS.PERSON_ID
AND PAA_NEW.ASS_ATTRIBUTE3 <> PAA_OLD.ASS_ATTRIBUTE3
------AND PAA_OLD.LEGISLATION_CODE = 'US'
AND PAA_NEW.LEGISLATION_CODE = 'US'
AND PAA_NEW.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.ASSIGNMENT_TYPE = 'E'
AND PAA_NEW.ASSIGNMENT_TYPE = PAA_OLD.ASSIGNMENT_TYPE),to_date('01-01-1900','dd-mm-yyyy')),(SELECT MAX(effective_START_date)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') as BENEFIT_CLASS_DATE,
TO_CHAR(GREATEST((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE')),(SELECT max(DATE_FROM) FROM CMP_SALARY WHERE ASS.ASSIGNMENT_ID=ASSIGNMENT_ID AND :Asofdate BETWEEN DATE_FROM AND DATE_TO)),'MM/DD/YYYY') AS COMPENSATION_DATE,
-- TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS COMPENSATION_DATE,
ROUND((SELECT
SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='S'
AND :Asofdate BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS SALARY,
ROUND((SELECT
(SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)/2080
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='H'
AND :Asofdate BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS HOURLY_RATE,
ROUND(ASS.NORMAL_HOURS,2) AS HOURS_PER_WEEK,
ROUND(ASS.ASS_ATTRIBUTE_NUMBER1,2) AS BENEFITS_BASE_SALARY,
(SELECT
PE.SCREEN_ENTRY_VALUE
FROM
PAY_ELEMENT_ENTRIES_F EE,
PAY_ELEMENT_ENTRY_VALUES_F PE,
pay_input_values_f IV
WHERE
PER.PERSON_ID=EE.PERSON_ID
and EE.ELEMENT_ENTRY_ID=PE.ELEMENT_ENTRY_ID
AND PE.INPUT_VALUE_ID=IV.INPUT_VALUE_ID
AND (IV.BASE_NAME(+) ='ANNUAL_BONUS')
AND :Asofdate BETWEEN PE.EFFECTIVE_START_DATE AND PE.EFFECTIVE_END_DATE
AND :Asofdate BETWEEN IV.EFFECTIVE_START_DATE AND IV.EFFECTIVE_END_DATE) AS BONUS,
'' AS COMMISSION,
TO_CHAR((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE') ),'MM/DD/YYYY') AS HIRE_DATE,
TO_CHAR((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND (reason_CODE IN ('REHIRE','REHIRE_WKR') or (ACTION_CODE in ('REHIRE')))),'MM/DD/YYYY') AS REHIRE_DATE,
'' AS Demographic_Field_1,
CASE WHEN INSTR(HRC.NAME,'__',1) != 0 THEN SUBSTR(HRC.NAME, NVL(INSTR(HRC.NAME,'__',1),0)+2)
WHEN INSTR(HRC.NAME,'__',1) = 0 THEN NULL END AS DEPT_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS DEPARTMENT_EFF_DATE,
LOC.internal_LOCATION_CODE AS LOCATION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
ASS.ASS_ATTRIBUTE4 AS JOB_TITLE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'JOB_DTL_CHG'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS JOB_TITLE_EFF_DATE,
LOC.internal_LOCATION_CODE AS REGION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS REGION_eff_date,
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND :Asofdate BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS BU_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') as BU_EFF_DATE,
-- CASE WHEN ASS.MANAGER_FLAG='Y' THEN '1'
-- WHEN ASS.MANAGER_FLAG='N' THEN '0'
-- ELSE ''
-- END AS SUPERVISOR_CODE,
'' AS SUPERVISOR_CODE,
'3' AS PAY_FREQUENCY,
-- LUKUP1.MEANING AS TIME_STATUS,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '1'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '5'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '6'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '2'
ELSE '' END AS TIME_STATUS,
CASE WHEN JOBF.INFORMATION1='NONEXEMPT' THEN '0'
WHEN JOBF.INFORMATION1 = 'EXEMPT' THEN '1'
ELSE ''
END AS OVERTIME_STATUS,
'' AS HCE,
(SELECT case when INSTR(PH.PHONE_NUMBER,'x') = 0 then REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') else REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTR(PH.PHONE_NUMBER,1,nvl((INSTR(PH.PHONE_NUMBER,'x',1,1)-2),15)),'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') end FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO ) AS WORK_PHONE,
(SELECT PH.EXTENSION FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS WORK_PHONE_EXTENSION,
(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='WF' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS WORK_FAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1' and rownum=1) AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
TO_CHAR(GREATEST((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE')),(SELECT max(AD1.EFFECTIVE_START_DATE) FROM PER_PERSON_ADDR_USAGES_F AD,PER_ADDRESSES_F AD1 WHERE ASS.PERSON_ID =AD.PERSON_ID AND AD.ADDRESS_ID(+)=AD1.ADDRESS_ID AND AD.ADDRESS_TYPE(+) = 'HOME' AND :Asofdate BETWEEN AD1.effective_START_date AND ad1.effective_end_date)),'MM/DD/YYYY') AS ADD_EFF_DATE,
ADDR.ADDRESS_LINE_1 AS HOME_ADDRESS1,
ADDR.ADDRESS_LINE_2 AS HOME_ADDRESS2,
ADDR.TOWN_OR_CITY AS CITY,
ADDR.REGION_2 AS STATE_,
SUBSTR(ADDR.POSTAL_CODE,1,5) AS ZIP,
ADDR.REGION_3 AS COUNTY,
(SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='H1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE in (SELECT (CASE WHEN E.EMAIL_TYPE='H1' THEN 'H1'
WHEN E.EMAIL_TYPE NOT IN 'H1' AND E.EMAIL_TYPE='BB_OTHR' THEN'BB_OTHR' END) FROM PER_EMAIL_ADDRESSES E WHERE E.PERSON_ID=PER.PERSON_ID) and rownum=1) AS HOME_EMAIL,
-- CASE WHEN (SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE in ('H1','BB_OTHR') and rownum=1) AS HOME_EMAIL,
--PU.USERNAME AS USERNAME,
'' AS USERNAME,
'' as LOGIN_ACCESS,
-- Modified condition for any other updates other than LOA
CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END AS LOA_START_DATE,
CASE
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- change to trunc(last_update_date)
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- added condition assgn effective date > max loa date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < ASS.EFFECTIVE_START_DATE THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- WHEN ( MAX_LOA.MAX_LOA_DATE is not null and PPS.ACTUAL_TERMINATION_DATE = :Asofdate) THEN TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY')
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
ELSE NULL
END AS LOA_END_DATE,
-- Modified condition for any other updates other than LOA
CASE WHEN (CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END ) IS NOT NULL THEN (select SUBSTR(ACT_REASON.ACTION_REASON_CODE,1,instr(ACT_REASON.ACTION_REASON_CODE,'_')-1) from PER_ACTION_REASONS_B ACT_REASON, PER_ACTION_OCCURRENCES ACT_OCC, PER_ALL_ASSIGNMENTS_M PAA where ACT_OCC.ACTION_REASON_ID=ACT_REASON.ACTION_REASON_ID AND PAA.ACTION_OCCURRENCE_ID = ACT_OCC.ACTION_OCCURRENCE_ID AND PAA.PERSON_ID = PER.PERSON_ID AND PAA.ASSIGNMENT_TYPE IN ('E','C') AND PAA.ACTION_CODE='LEAVE_OF_ABSENCE' AND TO_CHAR(PAA.EFFECTIVE_START_DATE,'MM/DD/YYYY') = (CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END) ) END AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
CASE WHEN ASS.ACTION_CODE='VOLUNTARY_TERMINATION' AND ASS.REASON_CODE='RETIRE' THEN 'R'
WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') AND ASS.REASON_CODE NOT IN ('RETIRE') THEN 'T'
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN 'A'
ELSE '' END AS EMPLOYMENT_STATUS,
-- greatest((select TO_CHAR(min(ORIGINAL_DATE_OF_HIRE),'MM/DD/YYYY') FROM per_periods_of_service where person_id=per.person_id), (SELECT TO_CHAR(MAX(effective_START_date),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ((reason_CODE IN ('REHIRE','REHIRE_WKR')) or (ACTION_CODE in ('REHIRE'))))) AS EMPLOYMENT_EFF_DT,
TO_CHAR(PPS.DATE_start,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') THEN ASS.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'1' AS AUTO_ENROLL
FROM
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_ETHNICITIES ETHN,
PER_NATIONAL_IDENTIFIERS NID,
PER_PERSONS PP,
PER_PERIODS_OF_SERVICE PPS,
HR_LOCATIONS LOC,
-- HCM_LOOKUPS LUKUP,
-- HCM_LOOKUPS LUKUP1,
PER_JOB_LEG_F JOBF,
PER_PERSON_ADDR_USAGES_F ADDRE,
PER_ADDRESSES_F ADDR,
PER_USERS PU,
HR_ALL_ORGANIZATION_UNITS_F_VL HRC,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_LOA_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'LEAVE_OF_ABSENCE' AND EFFECTIVE_START_DATE <= :Asofdate GROUP BY PERSON_ID) MAX_LOA,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_RFL_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'RETURN_FROM_LEAVE' AND EFFECTIVE_START_DATE <= :Asofdate GROUP BY PERSON_ID) MAX_RFL
WHERE
PER.PERSON_ID=MAX_LOA.PERSON_ID(+)
AND per.person_id=ASS.PERSON_ID
AND PER.PERSON_ID=MAX_RFL.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND ASS.PERSON_ID = ETHN.PERSON_ID(+)
AND ASS.PERSON_ID = PPL.PERSON_ID(+)
AND PPL.LEGISLATION_CODE(+)='US'
AND ASS.PERSON_ID = NID.PERSON_ID(+)
AND NATIONAL_IDENTIFIER_TYPE(+) = 'SSN'
AND ASS.PERSON_ID = PP.PERSON_ID(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=HRC.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
-- AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
-- AND ASS.EMPLOYMENT_CATEGORY=LUKUP1.LOOKUP_CODE(+)
AND ASS.JOB_ID=JOBF.JOB_ID(+)
-- AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
-- AND LUKUP1.LOOKUP_TYPE(+) = 'EMP_CAT'
AND JOBF.INFORMATION_CATEGORY(+)='HRX_US_JOBS'
AND ADDRE.PERSON_ID(+)=ASS.PERSON_ID
AND ADDR.ADDRESS_ID(+)=ADDRE.ADDRESS_ID
AND ASS.PERSON_ID=PU.PERSON_ID(+)
AND ASS.ASS_ATTRIBUTE3 IN ('BB1', 'BB7', 'BSS', 'EXP' , 'NBE' )
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.LEGISLATION_CODE='US'
AND ADDRE.ADDRESS_TYPE(+)='HOME'
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND ADDR.EFFECTIVE_START_DATE IN (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ADDRESSES_F A, PER_PERSON_ADDR_USAGES_F B WHERE A.ADDRESS_ID(+)=B.ADDRESS_ID AND B.PERSON_ID(+)=ASS.PERSON_ID AND B.ADDRESS_TYPE(+)='HOME' AND :Asofdate BETWEEN A.EFFECTIVE_START_DATE(+) AND A.EFFECTIVE_END_DATE(+) AND :Asofdate BETWEEN B.EFFECTIVE_START_DATE(+) AND B.EFFECTIVE_END_DATE(+))
AND :Asofdate BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND :Asofdate BETWEEN PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN HRC.EFFECTIVE_START_DATE(+) AND HRC.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN JOBF.EFFECTIVE_START_DATE(+) AND JOBF.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ADDRE.EFFECTIVE_START_DATE(+) AND ADDRE.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PU.START_DATE(+) AND PU.END_DATE(+)
AND PER.PERSON_NUMBER IN (SELECT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
FF_USER_ROWS_VL R,
FF_USER_COLUMNS_VL C,
FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID = R.USER_ROW_ID
AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
AND C.USER_TABLE_ID = T.USER_TABLE_ID
AND R.USER_TABLE_ID = T.USER_TABLE_ID
AND :Asofdate BETWEEN R.EFFECTIVE_START_DATE AND R.EFFECTIVE_END_DATE
AND T.USER_TABLE_NAME = 'BB_BSWIFT_INTF_BACK_DATED_LOA'
AND TRUNC(CI.CREATION_DATE) = :Asofdate
)
AND EXISTS (SELECT 1 FROM PER_ALL_ASSIGNMENTS_M ASS_LOA WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS_LOA.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) AND ASS_LOA.EFFECTIVE_START_DATE > NVL(MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')))
order by orderby,EMPLOYEE_ID
***********************************************************************************************************************************************
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','HIRE_ADD_WORK_RELATION') THEN TO_CHAR(POS.DATE_START,'YYYYMMDD') ELSE '' END AS RECENT_HIRE_DATE,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE' THEN 'A' ELSE 'T' END AS EMP_STATUS_CD,
TO_CHAR(POS.ORIGINAL_DATE_OF_HIRE,'YYYYMMDD') AS HIRE_DATE,
CASE
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'F'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'P' ELSE ''
END AS EMPLOYEE_CATEGORY,
TO_CHAR(POS.ACTUAL_TERMINATION_DATE ,'YYYYMMDD') AS TERMINATION_DATE,
'' AS TERM_TWN,
'' AS TERM_UWX,
'' AS LAST_WORKING_DATE,
'' AS WORK_STATE,
'' AS WORK_LOC,
'' AS FEDERAL_ID,
'' AS STATE_UNEMP,
'' AS ADJUSTD_HR_DT
FROM PER_NATIONAL_IDENTIFIERS PNI,
PER_ALL_PEOPLE_F PER,
PER_PERSONS PP,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_F ASS,
PER_JOBS_F_VL JOB,
HR_LOCATIONS_ALL_F_VL LOC,
PER_PERIODS_OF_SERVICE POS
WHERE PER.PERSON_ID=ASS.PERSON_ID
AND PNI.PERSON_ID(+)=PER.PERSON_ID
AND NAME.PERSON_ID(+)=PER.PERSON_ID
AND PP.PERSON_ID(+)=PER.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 LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')--,'C')
AND LOC.COUNTRY='US'
AND ASS.LEGISLATION_CODE IN ('US')
AND PNI.NATIONAL_IDENTIFIER_TYPE='SSN'
AND PNI.NATIONAL_IDENTIFIER_NUMBER IS NOT NULL AND PP.ATTRIBUTE6 IS NOT NULL AND LOC.INTERNAL_LOCATION_CODE IS NOT NULL
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') 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(+)
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(+)
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,
ASS.ASS_ATTRIBUTE4 AS NAME,
CASE WHEN ASS.ACTION_CODE IN ('REHIRE','REHIRE_WKR','HIRE_ADD_WORK_RELATION') THEN TO_CHAR(POS.DATE_START,'YYYYMMDD') ELSE '' END AS RECENT_HIRE_DATE,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE' THEN 'A' ELSE 'T' END AS EMP_STATUS_CD,
TO_CHAR(POS.ORIGINAL_DATE_OF_HIRE,'YYYYMMDD') AS HIRE_DATE,
CASE
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'F'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'P' ELSE ''
END AS EMPLOYEE_CATEGORY,
TO_CHAR(POS.ACTUAL_TERMINATION_DATE ,'YYYYMMDD') AS TERMINATION_DATE,
'' AS TERM_TWN,
'' AS TERM_UWX,
'' AS LAST_WORKING_DATE,
'' AS WORK_STATE,
'' AS WORK_LOC,
'' AS FEDERAL_ID,
'' AS STATE_UNEMP,
'' AS ADJUSTD_HR_DT
FROM PER_NATIONAL_IDENTIFIERS PNI,
PER_ALL_PEOPLE_F PER,
PER_PERSONS PP,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_F ASS,
PER_JOBS_F_VL JOB,
HR_LOCATIONS_ALL_F_VL LOC,
PER_PERIODS_OF_SERVICE POS
WHERE PER.PERSON_ID=ASS.PERSON_ID
AND PNI.PERSON_ID(+)=PER.PERSON_ID
AND NAME.PERSON_ID(+)=PER.PERSON_ID
AND PP.PERSON_ID(+)=PER.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 LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')--,'C')
AND LOC.COUNTRY='US'
AND ASS.LEGISLATION_CODE IN ('US')
AND PNI.NATIONAL_IDENTIFIER_TYPE='SSN'
AND PNI.NATIONAL_IDENTIFIER_NUMBER IS NOT NULL AND PP.ATTRIBUTE6 IS NOT NULL AND LOC.INTERNAL_LOCATION_CODE IS NOT NULL
AND ((ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE') OR (GREATEST(POS.ACTUAL_TERMINATION_DATE,POS.LAST_UPDATE_DATE) BETWEEN SYSDATE-7 AND 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') 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(+)
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(+)
SELECT '350EMPLI9LOC' AS RECORD_TYPE,
'17059' AS CMP_CD,
LPAD(REPLACE(PNI.NATIONAL_IDENTIFIER_NUMBER,'-',''),9,'0') AS SSN,
'' AS BLK,
LOC.INTERNAL_LOCATION_CODE AS LOCATION_CODE,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE' THEN 'A' ELSE 'R' END AS ACTION_CODE
FROM PER_NATIONAL_IDENTIFIERS PNI,
PER_ALL_PEOPLE_F PER,
PER_ALL_ASSIGNMENTS_F ASS,
HR_LOCATIONS_ALL_F_VL LOC
WHERE PER.PERSON_ID=ASS.PERSON_ID
AND PNI.PERSON_ID(+)=PER.PERSON_ID
AND LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND LOC.COUNTRY='US'
AND ASS.LEGISLATION_CODE IN ('US')
AND ASS.ASSIGNMENT_TYPE IN ('E')--,'C')
AND PNI.NATIONAL_IDENTIFIER_TYPE='SSN'
AND PNI.NATIONAL_IDENTIFIER_NUMBER IS NOT NULL AND LOC.INTERNAL_LOCATION_CODE IS NOT NULL
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') 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 LOC.EFFECTIVE_START_DATE(+) and LOC.EFFECTIVE_END_DATE(+)
SELECT '350EMPLI9LOC' AS RECORD_TYPE,
'17059' AS CMP_CD,
LPAD(REPLACE(PNI.NATIONAL_IDENTIFIER_NUMBER,'-',''),9,'0') AS SSN,
'' AS BLK,
LOC.INTERNAL_LOCATION_CODE AS LOCATION_CODE,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE' THEN 'A' ELSE 'R' END AS ACTION_CODE
FROM PER_NATIONAL_IDENTIFIERS PNI,
PER_ALL_PEOPLE_F PER,
PER_ALL_ASSIGNMENTS_F ASS,
HR_LOCATIONS_ALL_F_VL LOC,
PER_PERIODS_OF_SERVICE POS
WHERE PER.PERSON_ID=ASS.PERSON_ID
AND PNI.PERSON_ID(+)=PER.PERSON_ID
AND LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND POS.PERSON_ID(+)=ASS.PERSON_ID
AND POS.PERIOD_OF_SERVICE_ID(+)=ASS.PERIOD_OF_SERVICE_ID
AND LOC.COUNTRY='US'
AND ASS.LEGISLATION_CODE IN ('US')
AND ASS.ASSIGNMENT_TYPE IN ('E')--,'C')
AND PNI.NATIONAL_IDENTIFIER_TYPE='SSN'
AND PNI.NATIONAL_IDENTIFIER_NUMBER IS NOT NULL AND LOC.INTERNAL_LOCATION_CODE IS NOT NULL
AND ((ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE') OR (GREATEST(POS.ACTUAL_TERMINATION_DATE,POS.LAST_UPDATE_DATE) BETWEEN SYSDATE-7 AND 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') 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 LOC.EFFECTIVE_START_DATE(+) and LOC.EFFECTIVE_END_DATE(+)
SELECT DISTINCT
'999FOOTER' AS RECORD_TYPE,
'' AS BLK,
'' AS BLK1,
COUNT(A.LOCATION_ID) AS LOC_COUNT
FROM PER_ALL_ASSIGNMENTS_F A,HR_LOCATIONS_ALL B
WHERE A.LOCATION_ID=B.LOCATION_ID(+)
AND A.LEGISLATION_CODE = 'US'
AND B.COUNTRY='US'
AND A.ASSIGNMENT_STATUS_TYPE='ACTIVE'
and A.ASSIGNMENT_TYPE IN ('E')
AND GREATEST(A.LAST_UPDATE_DATE,A.EFFECTIVE_START_DATE) BETWEEN SYSDATE - 7 AND SYSDATE
AND TRUNC(sysdate) between B.EFFECTIVE_START_DATE(+) and B.EFFECTIVE_END_DATE(+)
AND TRUNC(sysdate) between A.EFFECTIVE_START_DATE and A.EFFECTIVE_END_DATE
------
03_Emergency_DM
SELECT T.*,
CASE
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||T2.NUM2||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN '"'||T2.NUM2||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||NVL(NVL(T3.NUM3,T4.NUM4),T5.NUM5)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN ''
ELSE '' END AS PHONE1,
T3.NUM3 AS WORK_,
T4.NUM4 AS WORK_2,
T5.NUM5 AS WORK_3,
T2.NUM2 AS HOME,
T1.NUM1 AS CELL,
T6.NUM6 AS CELL_H,
CASE
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
ELSE '' END AS SMSPHONE,
(SELECT '"'||((P.PHONE_NUMBER) || 'X' ||(P.EXTENSION))||'"' FROM PER_PHONES_V P WHERE P.PERSON_ID=T.PERSON_ID AND P.PHONE_TYPE IN NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) AND TRUNC(SYSDATE) BETWEEN P.DATE_FROM AND P.DATE_TO AND P.PHONE_NUMBER IS NOT NULL AND P.EXTENSION IS NOT NULL) AS PHONE3
FROM (SELECT ASS.PERSON_ID,
'"'||' '||'"' AS AGENCY,
'"'||PER.PERSON_NUMBER||'"' AS REF_CODE,
'"'||NAME.FIRST_NAME||'"' AS FIRST_NAME,
'"'||NAME.LAST_NAME||'"' AS LAST_NAME,
-- '"'||PH.PHONE_NUMBER||'"' AS PHONE2,
(SELECT '"'||PH.PHONE_NUMBER||'"' FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='H1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM AND PH.DATE_TO AND PH.PHONE_NUMBER IS NOT NULL) AS PHONE2,
'' AS TERMINATED,
'"'||LOC.LOCATION_NAME||'"' AS GROUP_,
CASE WHEN (SELECT LOCATION_NAME
FROM PER_ALL_ASSIGNMENTS_M PAA,
HR_LOCATIONS HL
WHERE PAA.LOCATION_ID = HL.LOCATION_ID
AND PAA.PERSON_ID = ASS.PERSON_ID
AND PAA.ASSIGNMENT_TYPE IN ('E')
AND SUBSTR(PAA.EFFECTIVE_END_DATE,1,10) = SUBSTR(ASS.EFFECTIVE_START_DATE-1,1,10)
AND PAA.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E') AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND PAA.EFFECTIVE_LATEST_CHANGE = 'Y'
AND TRUNC(SYSDATE) BETWEEN HL.EFFECTIVE_START_DATE AND HL.EFFECTIVE_END_DATE) = LOC.LOCATION_NAME THEN ''
ELSE (SELECT '"'||LOCATION_CODE||'"'
FROM PER_ALL_ASSIGNMENTS_M PAA,
HR_LOCATIONS HL
WHERE PAA.LOCATION_ID = HL.LOCATION_ID
AND PAA.PERSON_ID = ASS.PERSON_ID
AND PAA.ASSIGNMENT_TYPE IN ('E')
AND SUBSTR(PAA.EFFECTIVE_END_DATE,1,10) = SUBSTR(ASS.EFFECTIVE_START_DATE-1,1,10)
AND PAA.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E') AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND PAA.EFFECTIVE_LATEST_CHANGE = 'Y'
AND PAA.LAST_UPDATE_DATE BETWEEN TRUNC(SYSDATE-7) AND TRUNC(SYSDATE)
AND TRUNC(SYSDATE) BETWEEN HL.EFFECTIVE_START_DATE AND HL.EFFECTIVE_END_DATE)
END AS DEL_GROUP
FROM PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
HR_LOCATIONS_ALL LOC,
-- PER_PHONES_V PH,
PER_ALL_ASSIGNMENTS_F ASS
WHERE 1=1
-- AND PH.PHONE_TYPE(+) ='H1'
-- AND PH.PERSON_ID = PER.PERSON_ID
AND 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 ASSIGNMENT_TYPE IN ('E')
AND ASS.LEGISLATION_CODE IN ('US','CA')
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('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') AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
-- AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM AND PH.DATE_TO
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE AND NAME.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
ORDER BY PER.PERSON_NUMBER) T
LEFT OUTER JOIN (SELECT
PER1.PERSON_ID AS P1,
PW.PHONE_NUMBER AS NUM1,
PW.PHONE_TYPE AS TYP1
FROM
PER_ALL_PEOPLE_F PER1,
PER_ALL_ASSIGNMENTS_F ASS1,
PER_PHONES_V PW
WHERE
PW.PHONE_TYPE ='WM'
AND PER1.PERSON_ID=ASS1.PERSON_ID
AND PW.PERSON_ID = PER1.PERSON_ID
AND ASS1.ASSIGNMENT_TYPE IN ('E')
AND ASS1.LEGISLATION_CODE IN ('US','CA')
AND ASS1.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER1.EFFECTIVE_START_DATE AND PER1.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS1.EFFECTIVE_START_DATE AND ASS1.EFFECTIVE_END_DATE
-- AND TRUNC(SYSDATE) BETWEEN PW.DATE_FROM AND PW.DATE_TO
AND PW.DATE_FROM = (SELECT MAX(DATE_FROM) FROM PER_PHONES_V WHERE PERSON_ID = PW.PERSON_ID AND PHONE_TYPE = PW.PHONE_TYPE)
) T1
ON T.PERSON_ID=T1.P1
LEFT OUTER JOIN (SELECT
PER6.PERSON_ID AS P6,
PWC.PHONE_NUMBER AS NUM6,
PWC.PHONE_TYPE AS TYP6
FROM
PER_ALL_PEOPLE_F PER6,
PER_ALL_ASSIGNMENTS_F ASS6,
PER_PHONES_V PWC
WHERE
PWC.PHONE_TYPE ='HM'
AND PER6.PERSON_ID=ASS6.PERSON_ID
AND PWC.PERSON_ID = PER6.PERSON_ID
AND ASS6.ASSIGNMENT_TYPE IN ('E')
AND ASS6.LEGISLATION_CODE IN ('US','CA')
AND ASS6.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER6.EFFECTIVE_START_DATE AND PER6.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS6.EFFECTIVE_START_DATE AND ASS6.EFFECTIVE_END_DATE
-- AND TRUNC(SYSDATE) BETWEEN PWC.DATE_FROM AND PWC.DATE_TO
AND PWC.DATE_FROM = (SELECT MAX(DATE_FROM) FROM PER_PHONES_V WHERE PERSON_ID = PWC.PERSON_ID AND PHONE_TYPE = PWC.PHONE_TYPE)
) T6
ON T.PERSON_ID=T6.P6
LEFT OUTER JOIN (SELECT
PER2.PERSON_ID AS P2,
PH.PHONE_NUMBER AS NUM2,
PH.PHONE_TYPE AS TYP2
FROM
PER_ALL_PEOPLE_F PER2,
PER_ALL_ASSIGNMENTS_F ASS2,
PER_PHONES_V PH
WHERE
PH.PHONE_TYPE ='H1'
AND PER2.PERSON_ID=ASS2.PERSON_ID
AND PH.PERSON_ID = PER2.PERSON_ID
AND ASS2.ASSIGNMENT_TYPE IN ('E')
AND ASS2.LEGISLATION_CODE IN ('US','CA')
AND ASS2.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER2.EFFECTIVE_START_DATE AND PER2.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS2.EFFECTIVE_START_DATE AND ASS2.EFFECTIVE_END_DATE
-- AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM AND PH.DATE_TO
AND PH.DATE_FROM = (SELECT MAX(DATE_FROM) FROM PER_PHONES_V WHERE PERSON_ID = PH.PERSON_ID AND PHONE_TYPE = PH.PHONE_TYPE)
) T2
ON T.PERSON_ID=T2.P2
LEFT OUTER JOIN (SELECT
PER3.PERSON_ID AS P3,
PWC.PHONE_NUMBER AS NUM3,
PWC.PHONE_TYPE AS TYP3
FROM
PER_ALL_PEOPLE_F PER3,
PER_ALL_ASSIGNMENTS_F ASS3,
PER_PHONES_V PWC
WHERE
PWC.PHONE_TYPE ='W1'
AND PER3.PERSON_ID=ASS3.PERSON_ID
AND PWC.PERSON_ID = PER3.PERSON_ID
AND ASS3.ASSIGNMENT_TYPE IN ('E')
AND ASS3.LEGISLATION_CODE IN ('US','CA')
AND ASS3.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER3.EFFECTIVE_START_DATE AND PER3.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS3.EFFECTIVE_START_DATE AND ASS3.EFFECTIVE_END_DATE
-- AND TRUNC(SYSDATE) BETWEEN PWC.DATE_FROM AND PWC.DATE_TO
AND PWC.DATE_FROM = (SELECT MAX(DATE_FROM) FROM PER_PHONES_V WHERE PERSON_ID = PWC.PERSON_ID AND PHONE_TYPE = PWC.PHONE_TYPE)
) T3
ON T.PERSON_ID=T3.P3
LEFT OUTER JOIN (SELECT
PER4.PERSON_ID AS P4,
PWC.PHONE_NUMBER AS NUM4,
PWC.PHONE_TYPE AS TYP4
FROM
PER_ALL_PEOPLE_F PER4,
PER_ALL_ASSIGNMENTS_F ASS4,
PER_PHONES_V PWC
WHERE
PWC.PHONE_TYPE ='W2'
AND PER4.PERSON_ID=ASS4.PERSON_ID
AND PWC.PERSON_ID = PER4.PERSON_ID
AND ASS4.ASSIGNMENT_TYPE IN ('E')
AND ASS4.LEGISLATION_CODE IN ('US','CA')
AND ASS4.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER4.EFFECTIVE_START_DATE AND PER4.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS4.EFFECTIVE_START_DATE AND ASS4.EFFECTIVE_END_DATE
-- AND TRUNC(SYSDATE) BETWEEN PWC.DATE_FROM AND PWC.DATE_TO
AND PWC.DATE_FROM = (SELECT MAX(DATE_FROM) FROM PER_PHONES_V WHERE PERSON_ID = PWC.PERSON_ID AND PHONE_TYPE = PWC.PHONE_TYPE)
) T4
ON T.PERSON_ID=T4.P4
LEFT OUTER JOIN (SELECT
PER5.PERSON_ID AS P5,
PWC.PHONE_NUMBER AS NUM5,
PWC.PHONE_TYPE AS TYP5
FROM
PER_ALL_PEOPLE_F PER5,
PER_ALL_ASSIGNMENTS_F ASS5,
PER_PHONES_V PWC
WHERE
PWC.PHONE_TYPE ='W3'
AND PER5.PERSON_ID=ASS5.PERSON_ID
AND PWC.PERSON_ID = PER5.PERSON_ID
AND ASS5.ASSIGNMENT_TYPE IN ('E')
AND ASS5.LEGISLATION_CODE IN ('US','CA')
AND ASS5.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER5.EFFECTIVE_START_DATE AND PER5.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS5.EFFECTIVE_START_DATE AND ASS5.EFFECTIVE_END_DATE
-- AND TRUNC(SYSDATE) BETWEEN PWC.DATE_FROM AND PWC.DATE_TO
AND PWC.DATE_FROM = (SELECT MAX(DATE_FROM) FROM PER_PHONES_V WHERE PERSON_ID = PWC.PERSON_ID AND PHONE_TYPE = PWC.PHONE_TYPE)
) T5
ON T.PERSON_ID=T5.P5
WHERE (T1.NUM1 IS NOT NULL OR T2.NUM2 IS NOT NULL OR T3.NUM3 IS NOT NULL OR T4.NUM4 IS NOT NULL OR T5.NUM5 IS NOT NULL OR T6.NUM6 IS NOT NULL)
-----
SELECT T.*,
CASE
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||T2.NUM2||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN '"'||T2.NUM2||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||NVL(NVL(T3.NUM3,T4.NUM4),T5.NUM5)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN ''
ELSE '' END AS PHONE1,
T3.NUM3 AS WORK_,
T4.NUM4 AS WORK_2,
T5.NUM5 AS WORK_3,
T2.NUM2 AS HOME,
T1.NUM1 AS CELL,
T6.NUM6 AS CELL_H,
CASE
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||T2.NUM2||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN '"'||T2.NUM2||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||NVL(NVL(T3.NUM3,T4.NUM4),T5.NUM5)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NOT NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN '"'||NVL(T1.NUM1,T6.NUM6)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||NVL(NVL(T3.NUM3,T4.NUM4),T5.NUM5)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NOT NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN '"'||T2.NUM2||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NOT NULL
THEN '"'||NVL(NVL(T3.NUM3,T4.NUM4),T5.NUM5)||'"'
WHEN NVL(T1.TYP1,T6.TYP6) IS NULL AND T2.TYP2 IS NULL AND NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) IS NULL
THEN ''
ELSE '' END AS SMSPHONE,
(SELECT '"'||((P.PHONE_NUMBER) || 'X' ||(P.EXTENSION))||'"' FROM PER_PHONES_V P WHERE P.PERSON_ID=T.PERSON_ID AND P.PHONE_TYPE IN NVL(NVL(T3.TYP3,T4.TYP4),T5.TYP5) AND TRUNC(SYSDATE) BETWEEN P.DATE_FROM AND P.DATE_TO AND P.PHONE_NUMBER IS NOT NULL AND P.EXTENSION IS NOT NULL) AS PHONE3
FROM (SELECT ASS.PERSON_ID,
'"'||' '||'"' AS AGENCY,
'"'||PER.PERSON_NUMBER||'"' AS REF_CODE,
'"'||NAME.FIRST_NAME||'"' AS FIRST_NAME,
'"'||NAME.LAST_NAME||'"' AS LAST_NAME,
(SELECT '"'||PH.PHONE_NUMBER||'"' FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='H1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM AND PH.DATE_TO AND PH.PHONE_NUMBER IS NOT NULL) AS PHONE2,
'' AS TERMINATED,
'"'||LOC.LOCATION_NAME||'"' AS GROUP_,
CASE WHEN (SELECT LOCATION_NAME
FROM PER_ALL_ASSIGNMENTS_M PAA,
HR_LOCATIONS HL
WHERE PAA.LOCATION_ID = HL.LOCATION_ID
AND PAA.PERSON_ID = ASS.PERSON_ID
AND PAA.ASSIGNMENT_TYPE IN ('E')
AND SUBSTR(PAA.EFFECTIVE_END_DATE,1,10) = SUBSTR(ASS.EFFECTIVE_START_DATE-1,1,10)
AND PAA.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E') AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND PAA.EFFECTIVE_LATEST_CHANGE = 'Y'
AND TRUNC(SYSDATE) BETWEEN HL.EFFECTIVE_START_DATE AND HL.EFFECTIVE_END_DATE) = LOC.LOCATION_NAME THEN ''
ELSE (SELECT '"'||LOCATION_CODE||'"'
FROM PER_ALL_ASSIGNMENTS_M PAA,
HR_LOCATIONS HL
WHERE PAA.LOCATION_ID = HL.LOCATION_ID
AND PAA.PERSON_ID = ASS.PERSON_ID
AND PAA.ASSIGNMENT_TYPE IN ('E')
AND SUBSTR(PAA.EFFECTIVE_END_DATE,1,10) = SUBSTR(ASS.EFFECTIVE_START_DATE-1,1,10)
AND PAA.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E') AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND PAA.EFFECTIVE_LATEST_CHANGE = 'Y'
AND PAA.LAST_UPDATE_DATE BETWEEN TRUNC(SYSDATE-7) AND TRUNC(SYSDATE)
AND TRUNC(SYSDATE) BETWEEN HL.EFFECTIVE_START_DATE AND HL.EFFECTIVE_END_DATE)
END AS DEL_GROUP
FROM PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
HR_LOCATIONS_ALL LOC,
PER_ALL_ASSIGNMENTS_F ASS
WHERE 1=1
AND 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 ASSIGNMENT_TYPE IN ('E')
AND ASS.LEGISLATION_CODE IN ('US','CA')
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('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') AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE AND NAME.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
ORDER BY PER.PERSON_NUMBER) T
LEFT OUTER JOIN (SELECT
PER1.PERSON_ID AS P1,
PW.PHONE_NUMBER AS NUM1,
PW.PHONE_TYPE AS TYP1
FROM
PER_ALL_PEOPLE_F PER1,
PER_ALL_ASSIGNMENTS_F ASS1,
PER_PHONES_V PW
WHERE
PW.PHONE_TYPE ='WM'
AND PER1.PERSON_ID=ASS1.PERSON_ID
AND PW.PERSON_ID = PER1.PERSON_ID
AND ASS1.ASSIGNMENT_TYPE IN ('E')
AND ASS1.LEGISLATION_CODE IN ('US','CA')
AND ASS1.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER1.EFFECTIVE_START_DATE AND PER1.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS1.EFFECTIVE_START_DATE AND ASS1.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PW.DATE_FROM AND PW.DATE_TO
) T1
ON T.PERSON_ID=T1.P1
LEFT OUTER JOIN (SELECT
PER6.PERSON_ID AS P6,
PWC.PHONE_NUMBER AS NUM6,
PWC.PHONE_TYPE AS TYP6
FROM
PER_ALL_PEOPLE_F PER6,
PER_ALL_ASSIGNMENTS_F ASS6,
PER_PHONES_V PWC
WHERE
PWC.PHONE_TYPE ='HM'
AND PER6.PERSON_ID=ASS6.PERSON_ID
AND PWC.PERSON_ID = PER6.PERSON_ID
AND ASS6.ASSIGNMENT_TYPE IN ('E')
AND ASS6.LEGISLATION_CODE IN ('US','CA')
AND ASS6.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER6.EFFECTIVE_START_DATE AND PER6.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS6.EFFECTIVE_START_DATE AND ASS6.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PWC.DATE_FROM AND PWC.DATE_TO
) T6
ON T.PERSON_ID=T6.P6
LEFT OUTER JOIN (SELECT
PER2.PERSON_ID AS P2,
PH.PHONE_NUMBER AS NUM2,
PH.PHONE_TYPE AS TYP2
FROM
PER_ALL_PEOPLE_F PER2,
PER_ALL_ASSIGNMENTS_F ASS2,
PER_PHONES_V PH
WHERE
PH.PHONE_TYPE ='H1'
AND PER2.PERSON_ID=ASS2.PERSON_ID
AND PH.PERSON_ID = PER2.PERSON_ID
AND ASS2.ASSIGNMENT_TYPE IN ('E')
AND ASS2.LEGISLATION_CODE IN ('US','CA')
AND ASS2.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER2.EFFECTIVE_START_DATE AND PER2.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS2.EFFECTIVE_START_DATE AND ASS2.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM AND PH.DATE_TO
) T2
ON T.PERSON_ID=T2.P2
LEFT OUTER JOIN (SELECT
PER3.PERSON_ID AS P3,
PWC.PHONE_NUMBER AS NUM3,
PWC.PHONE_TYPE AS TYP3
FROM
PER_ALL_PEOPLE_F PER3,
PER_ALL_ASSIGNMENTS_F ASS3,
PER_PHONES_V PWC
WHERE
PWC.PHONE_TYPE ='W1'
AND PER3.PERSON_ID=ASS3.PERSON_ID
AND PWC.PERSON_ID = PER3.PERSON_ID
AND ASS3.ASSIGNMENT_TYPE IN ('E')
AND ASS3.LEGISLATION_CODE IN ('US','CA')
AND ASS3.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER3.EFFECTIVE_START_DATE AND PER3.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS3.EFFECTIVE_START_DATE AND ASS3.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PWC.DATE_FROM AND PWC.DATE_TO
) T3
ON T.PERSON_ID=T3.P3
LEFT OUTER JOIN (SELECT
PER4.PERSON_ID AS P4,
PWC.PHONE_NUMBER AS NUM4,
PWC.PHONE_TYPE AS TYP4
FROM
PER_ALL_PEOPLE_F PER4,
PER_ALL_ASSIGNMENTS_F ASS4,
PER_PHONES_V PWC
WHERE
PWC.PHONE_TYPE ='W2'
AND PER4.PERSON_ID=ASS4.PERSON_ID
AND PWC.PERSON_ID = PER4.PERSON_ID
AND ASS4.ASSIGNMENT_TYPE IN ('E')
AND ASS4.LEGISLATION_CODE IN ('US','CA')
AND ASS4.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER4.EFFECTIVE_START_DATE AND PER4.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS4.EFFECTIVE_START_DATE AND ASS4.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PWC.DATE_FROM AND PWC.DATE_TO
) T4
ON T.PERSON_ID=T4.P4
LEFT OUTER JOIN (SELECT
PER5.PERSON_ID AS P5,
PWC.PHONE_NUMBER AS NUM5,
PWC.PHONE_TYPE AS TYP5
FROM
PER_ALL_PEOPLE_F PER5,
PER_ALL_ASSIGNMENTS_F ASS5,
PER_PHONES_V PWC
WHERE
PWC.PHONE_TYPE ='W3'
AND PER5.PERSON_ID=ASS5.PERSON_ID
AND PWC.PERSON_ID = PER5.PERSON_ID
AND ASS5.ASSIGNMENT_TYPE IN ('E')
AND ASS5.LEGISLATION_CODE IN ('US','CA')
AND ASS5.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND TRUNC(SYSDATE) BETWEEN PER5.EFFECTIVE_START_DATE AND PER5.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS5.EFFECTIVE_START_DATE AND ASS5.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PWC.DATE_FROM AND PWC.DATE_TO
) T5
ON T.PERSON_ID=T5.P5
WHERE (T1.NUM1 IS NULL AND T2.NUM2 IS NULL AND T3.NUM3 IS NULL AND T4.NUM4 IS NULL AND T5.NUM5 IS NULL AND T6.NUM6 IS NULL)
***********************************************************************************************************************************************
Interface ConcurExpense Feed_DM
SELECT
ASS.ASSIGNMENT_TYPE,
ASS.ASS_ATTRIBUTE9,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
NAME.FIRST_NAME AS FIRST_NAME,
NAME.MIDDLE_NAMES AS MIDDLE_NAME,
NAME.LAST_NAME AS LAST_NAME,
(select distinct EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1') as EMAIL_ADDR,
case when PER.PERSON_NUMBER in ('502928') THEN '998270'
else
(SELECT
CASE WHEN PER.PERSON_NUMBER <> '998270' AND PERSON_NUMBER = '502928' THEN '998270'
when PER.PERSON_NUMBER in ('998270') THEN '502928' ELSE PERSON_NUMBER END
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) end AS SUPERVISOR_ID,
(select distinct TO_CHAR(min(a.date_start),'YYYY-MM-DD') from per_periods_of_service a, per_all_assignments_m b where a.person_id=b.person_id and b.PERIOD_OF_SERVICE_ID=a.PERIOD_OF_SERVICE_ID and b.assignment_type='E' and b.person_id=ass.person_id) AS HIRE_DATE,
TO_CHAR(PPS.DATE_START,'YYYY-MM-DD') AS LATEST_HIRE_DATE,
case when PPS.ACTUAL_TERMINATION_DATE is null then 'NULL'
when PPS.ACTUAL_TERMINATION_DATE is not null then TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'YYYY-MM-DD') else '' end AS TERMINATION_DATE,
CASE WHEN PER.PERSON_NUMBER IN ('900377','991515','991630') THEN 'GBP' ELSE CUR.LOCAL_CURRENCY END AS CURRENCY,
--CUR.LOCAL_CURRENCY AS CURRENCY,
-- CASE WHEN FT.TERRITORY_SHORT_NAME='United States' THEN 'USA'
-- ELSE '' END AS COUNTRY,
FT.iso_TERRITORY_code AS COUNTRY,
LOC.COUNTRY as country_code,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,1,5) 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 ACCOUNT,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,7,3) FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS DEPTID_CF,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,19,4) FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS OPERATING_UNIT,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,11,3) FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS CHARTFIELD1,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,15,3) FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS CHARTFIELD2,
ASS.WORK_AT_HOME
FROM
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_F ASS,
PER_ASSIGNMENT_SUPERVISORS_F MAN,
FND_TERRITORIES_VL FT,
HR_LOCATIONS_ALL LOC,
PER_PERIODS_OF_SERVICE PPS,
PER_JOBS JOB,
CMP_SALARY_V CUR,
PER_DEPARTMENTS DEPT
WHERE
PER.PERSON_ID=NAME.PERSON_ID(+)
AND PER.PERSON_ID=ASS.PERSON_ID(+)
AND ASS.ASSIGNMENT_ID=MAN.ASSIGNMENT_ID(+)
AND FT.TERRITORY_CODE(+)=LOC.COUNTRY
AND ASS.LOCATION_ID = LOC.LOCATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID=PPS.PERIOD_OF_SERVICE_ID(+)
and ASS.PERSON_ID=pps.PERSON_ID(+)
AND ASS.JOB_ID=JOB.JOB_ID(+)
AND ASS.ORGANIZATION_ID=DEPT.ORGANIZATION_ID(+)
AND ASS.ASSIGNMENT_ID=CUR.ASSIGNMENT_ID(+)
AND NAME.NAME_TYPE = 'GLOBAL'
AND (ASS.assignment_type in ('E') or (ASS.assignment_type in ('C') and ASS.ASS_ATTRIBUTE9 = 'Y' and ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE'))
AND ASS.LEGISLATION_CODE NOT IN ('CN')
---and FT.Language(+)='US'
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 MAN.MANAGER_TYPE(+) = 'LINE_MANAGER'
AND (CUR.DATE_FROM in (SELECT MAX(DATE_FROM) FROM CMP_SALARY_V WHERE ASSIGNMENT_ID=CUR.ASSIGNMENT_ID) or CUR.DATE_FROM is null)
AND (JOB.JOB_CODE NOT IN ('UR0901','UR0101','UR0102','US0201') or JOB.JOB_CODE IS NULL)
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN 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 DEPT.EFFECTIVE_START_DATE(+) AND DEPT.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
-- AND TRUNC(SYSDATE) BETWEEN CUR.DATE_FROM(+) AND CUR.DATE_TO(+)
union
SELECT DISTINCT
ASS.ASSIGNMENT_TYPE,
ASS.ASS_ATTRIBUTE9,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
NAME.FIRST_NAME AS FIRST_NAME,
NAME.MIDDLE_NAMES AS MIDDLE_NAME,
NAME.LAST_NAME AS LAST_NAME,
(select distinct EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1') as EMAIL_ADDR,
case when PER.PERSON_NUMBER in ('502928') THEN '998270'
else
(SELECT
CASE WHEN PER.PERSON_NUMBER <> '998270' AND PERSON_NUMBER = '502928' THEN '998270'
when PER.PERSON_NUMBER in ('998270') THEN '502928' ELSE PERSON_NUMBER END
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) end AS SUPERVISOR_ID,
(select distinct TO_CHAR(min(a.date_start),'YYYY-MM-DD') from per_periods_of_service a, per_all_assignments_m b where a.person_id=b.person_id and b.PERIOD_OF_SERVICE_ID=a.PERIOD_OF_SERVICE_ID and b.assignment_type='E' and b.person_id=ass.person_id) AS HIRE_DATE,
TO_CHAR(PPS.DATE_START,'YYYY-MM-DD') AS LATEST_HIRE_DATE,
case when PPS.ACTUAL_TERMINATION_DATE is null then 'NULL'
when PPS.ACTUAL_TERMINATION_DATE is not null then TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'YYYY-MM-DD') else '' end AS TERMINATION_DATE,
CASE WHEN PER.PERSON_NUMBER IN ('900377','991515','991630') THEN 'GBP' ELSE CUR.LOCAL_CURRENCY END AS CURRENCY,
--CUR.LOCAL_CURRENCY AS CURRENCY,
FT.iso_TERRITORY_code AS COUNTRY,
LOC.COUNTRY as country_code,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,1,5) 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 ACCOUNT,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,7,3) FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS DEPTID_CF,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,19,4) FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS OPERATING_UNIT,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,11,3) FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS CHARTFIELD1,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,15,3) FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL) AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+) AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+) AND ROWNUM=1) AS CHARTFIELD2,
ASS.WORK_AT_HOME
FROM
PER_ALL_PEOPLE_F PERNUM,
PER_ALL_ASSIGNMENTS_F ASS1,
PER_ASSIGNMENT_SUPERVISORS_F MAN1,
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_F ASS,
PER_JOBS JOB,
FND_TERRITORIES_VL FT,
HR_LOCATIONS_ALL LOC,
PER_ASSIGNMENT_SUPERVISORS_F MAN,
PER_DEPARTMENTS DEPT,
CMP_SALARY_V CUR,
PER_PERIODS_OF_SERVICE PPS
WHERE
PERNUM.PERSON_ID=ASS1.PERSON_ID(+)
AND ASS1.ASSIGNMENT_ID=MAN1.ASSIGNMENT_ID(+)
AND ASS1.PERSON_ID=MAN1.PERSON_ID(+)
AND MAN1.MANAGER_ID=PER.PERSON_ID(+)
AND PER.PERSON_ID=NAME.PERSON_ID(+)
AND PER.PERSON_ID=ASS.PERSON_ID(+)
AND ASS.JOB_ID=JOB.JOB_ID(+)
AND FT.TERRITORY_CODE(+)=LOC.COUNTRY
AND ASS.LOCATION_ID = LOC.LOCATION_ID(+)
AND ASS.ASSIGNMENT_ID=MAN.ASSIGNMENT_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID=PPS.PERIOD_OF_SERVICE_ID(+)
and ASS.PERSON_ID=pps.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=DEPT.ORGANIZATION_ID(+)
AND ASS.ASSIGNMENT_ID=CUR.ASSIGNMENT_ID(+)
AND NAME.NAME_TYPE = 'GLOBAL'
AND (ASS.assignment_type in ('E') or (ASS.assignment_type in ('C') and ASS.ASS_ATTRIBUTE9 = 'Y' and ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE'))
----and FT.Language(+)='US'
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 ASS.PERSON_ID IN (SELECT DISTINCT A.MANAGER_ID
FROM PER_ASSIGNMENT_SUPERVISORS_F A, PER_ALL_ASSIGNMENTS_F B
WHERE A.PERSON_ID = B.PERSON_ID
AND A.ASSIGNMENT_ID = B.ASSIGNMENT_ID
AND TRUNC(SYSDATE) BETWEEN A.EFFECTIVE_START_DATE AND A.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN B.EFFECTIVE_START_DATE AND B.EFFECTIVE_END_DATE AND B.ASSIGNMENT_TYPE = 'E' )
AND MAN1.MANAGER_TYPE(+) = 'LINE_MANAGER'
AND MAN.MANAGER_TYPE(+) = 'LINE_MANAGER'
and ASS.LEGISLATION_CODE IN ('CN')
and ASS1.LEGISLATION_CODE NOT IN ('CN')
AND (CUR.DATE_FROM in (SELECT MAX(DATE_FROM) FROM CMP_SALARY_V WHERE ASSIGNMENT_ID=CUR.ASSIGNMENT_ID) or CUR.DATE_FROM is null)
AND (JOB.JOB_CODE NOT IN ('UR0901','UR0101','UR0102','US0201') or JOB.JOB_CODE IS NULL)
AND TRUNC(SYSDATE) BETWEEN PERNUM.EFFECTIVE_START_DATE AND PERNUM.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASS1.EFFECTIVE_START_DATE(+) AND ASS1.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN MAN1.EFFECTIVE_START_DATE(+) AND MAN1.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN DEPT.EFFECTIVE_START_DATE(+) AND DEPT.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 LOC.EFFECTIVE_START_DATE(+) AND LOC.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(+)
***********************************************************************************************************************************************
Org Plus
SELECT '0' AS AGE,
'0' AS BUDGET_SALARY,
ASS.ASSIGNMENT_STATUS_TYPE,
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS BU,
' ' AS CITY,
'0' AS COST_CENTER,
'0' AS COST_CENTER_ID,
(SELECT LOOKUP_CODE FROM HCM_LOOKUPS WHERE LOOKUP_TYPE='BB_3CHAR_COUNTRY' AND MEANING=LOC.COUNTRY AND TRUNC(SYSDATE) BETWEEN START_DATE_ACTIVE(+) AND NVL(END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS COUNTRY,
'NULL' AS DATE_OF_BIRTH,
CASE WHEN INSTR(DEPT.NAME,'__',1) != 0 THEN SUBSTR(DEPT.NAME, NVL(INSTR(DEPT.NAME,'__',1),0)+2)
WHEN INSTR(DEPT.NAME,'__',1) = 0 THEN NULL END AS DEPT_CODE,
(SELECT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN EMAIL2.EMAIL_ADDRESS ELSE '' END FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_TYPE = 'W1' AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD')))AS EMAIL_ADDRESS,
'0' AS EMP_COMP,
PER.PERSON_NUMBER,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'T' WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('SUSPENDED') THEN 'S' ELSE 'A' END AS EMP_STAT,
' ' AS EMP_STAT_REASON,
' ' AS END_DATE,
' ' AS ETHINICITY,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.FIRST_NAME ELSE '' END AS FIRST_NAME,
' ' AS FLSA,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN (CASE WHEN NAME.MIDDLE_NAMES IS NOT NULL THEN (NAME.FIRST_NAME)||' '||(NAME.MIDDLE_NAMES)||' '||(NAME.LAST_NAME) WHEN NAME.MIDDLE_NAMES IS NULL THEN (NAME.FIRST_NAME)||' '||(NAME.LAST_NAME) END) ELSE 'VACANT' END AS FULL_NAME,
' ' AS GENDER,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN TO_CHAR(POS.ORIGINAL_DATE_OF_HIRE,'MM-DD-YYYY') ELSE '' END AS HIRE_DATE,
' ' AS HOMEPH,
'0' AS HOURLY_RATE,
CASE WHEN JOB.JOB_CODE IN ('UA0402','UF0701','UL0202','UO0302','UO0303') THEN '1' ELSE '0' END AS IS_ASSISTANT,
' ' AS HIS_PANIC,
'0' AS KEY_POSITION,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN '0' ELSE '1' END AS IS_VACANT,
' ' AS JOB_FN,
' ' AS JOB_FN_CD,
' ' AS KEY_EMP,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.LAST_NAME ELSE '' END AS LAST_NAME,
LOC.LOCATION_NAME,
' ' AS MGR_POT,
' ' AS MID_NAME,
' ' AS MOBILE,
' ' AS NATIONALITY,
'0' AS NINEBOX_PER,
'0' AS NINEBOX_POT,
(SELECT DISTINCT PERSON_NUMBER FROM PER_ALL_PEOPLE_F PER WHERE PER.PERSON_ID=SUP.MANAGER_ID AND SUP.ASSIGNMENT_ID=ASS.ASSIGNMENT_ID AND SUP.PERSON_ID=ASS.PERSON_ID AND ASS.ASSIGNMENT_TYPE IN ('E','C') AND SUP.MANAGER_TYPE='LINE_MANAGER' AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE) AS MANAGER_NUMBER,
'0' AS PERFORMANCE,
' ' AS PHOTO,
' ' AS POS,
PER.PERSON_NUMBER AS POSITION_ID,
'0' AS POTENTIAL,
' ' AS PROF_DEGREE,
' ' AS RATING,
' ' AS READY_TO_RETIRE,
' ' AS RELOCATE,
'0' AS REQ_COMPETENCE,
' ' AS RISK_OF_LOSS,
CASE WHEN ASS.HOURLY_SALARIED_CODE = 'S' THEN (CM.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)
WHEN ASS.HOURLY_SALARIED_CODE = 'H' THEN (CM.SALARY_AMOUNT * ASS.NORMAL_HOURS * 52)
END AS ANNUAL_SALARY,
' ' AS SAL_GRADE,
' ' AS SCHED_HOURS,
' ' AS SKILLS,
' ' AS STATE_,
ASS.ASS_ATTRIBUTE4 AS TITLE,
' ' AS VETERAN_STATUS,
' ' AS WORK_ADDRESS,
CASE
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'Full-Time'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'Part-Time'
ELSE ' ' END AS WORKER_CATEGORY,
' ' AS WORK_LOC,
' ' AS WORK_LOC_ID,
(SELECT DISTINCT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN PH.PHONE_NUMBER ELSE '' END FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='W1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM(+) AND PH.DATE_TO(+)) AS WORK_PHONE_NUMBER,
(SELECT DISTINCT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN PH.EXTENSION ELSE '' END FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='W1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM(+) AND PH.DATE_TO(+)) AS EXTENSION,
' ' AS ZIP,
CASE WHEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) IS NOT NULL THEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) ELSE DEPT.NAME END AS NAME,
DEPT.NAME AS DEPT_NAME
FROM PER_PERSONS PP,
PER_ALL_ASSIGNMENTS_F ASS,
PER_ALL_PEOPLE_F PER,
PER_PERIODS_OF_SERVICE POS,
PER_PERSON_NAMES_F NAME,
HR_LOCATIONS_ALL_F_VL LOC,
PER_JOBS_F_VL JOB,
PER_DEPARTMENTS DEPT,
PER_ASSIGNMENT_SUPERVISORS_F SUP,
CMP_SALARY_BASES SLA,
CMP_SALARY CM
WHERE SUP.PERSON_ID(+)=ASS.PERSON_ID
--AND PER.PERSON_NUMBER ='999922'
AND LENGTH(PER.PERSON_NUMBER) >= 6
AND SUP.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND PER.PERSON_ID=ASS.PERSON_ID
AND POS.PERSON_ID(+)=ASS.PERSON_ID
AND POS.PERIOD_OF_SERVICE_ID(+)=ASS.PERIOD_OF_SERVICE_ID
AND NAME.PERSON_ID=PER.PERSON_ID
AND LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND CM.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND CM.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND DEPT.ORGANIZATION_ID(+)=ASS.ORGANIZATION_ID
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND SUP.MANAGER_TYPE(+)='LINE_MANAGER'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE AND NAME.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN DEPT.EFFECTIVE_START_DATE(+) AND DEPT.EFFECTIVE_END_DATE(+)
and TRUNC(SYSDATE) between CM.DATE_FROM(+) and CM.DATE_TO(+)
UNION
SELECT '0' AS AGE,
'0' AS BUDGET_SALARY,
ASS.ASSIGNMENT_STATUS_TYPE,
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS BU,
' ' AS CITY,
'0' AS COST_CENTER,
'0' AS COST_CENTER_ID,
(SELECT LOOKUP_CODE FROM HCM_LOOKUPS WHERE LOOKUP_TYPE='BB_3CHAR_COUNTRY' AND MEANING=LOC.COUNTRY AND TRUNC(SYSDATE) BETWEEN START_DATE_ACTIVE(+) AND NVL(END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS COUNTRY,
'NULL' AS DATE_OF_BIRTH,
CASE WHEN INSTR(DEPT.NAME,'__',1) != 0 THEN SUBSTR(DEPT.NAME, NVL(INSTR(DEPT.NAME,'__',1),0)+2)
WHEN INSTR(DEPT.NAME,'__',1) = 0 THEN NULL END AS DEPT_CODE,
(SELECT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN EMAIL2.EMAIL_ADDRESS ELSE '' END FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_TYPE = 'W1' AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD')))AS EMAIL_ADDRESS,
'0' AS EMP_COMP,
PER.PERSON_NUMBER,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'T' WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('SUSPENDED') THEN 'S' ELSE 'A' END AS EMP_STAT,
' ' AS EMP_STAT_REASON,
' ' AS END_DATE,
' ' AS ETHINICITY,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.FIRST_NAME ELSE '' END AS FIRST_NAME,
' ' AS FLSA,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.FIRST_NAME||' '||NAME.MIDDLE_NAMES||' '||NAME.LAST_NAME ELSE 'VACANT' END AS FULL_NAME,
' ' AS GENDER,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN TO_CHAR(POS.ORIGINAL_DATE_OF_HIRE,'MM-DD-YYYY') ELSE '' END AS HIRE_DATE,
' ' AS HOMEPH,
'0' AS HOURLY_RATE,
CASE WHEN JOB.JOB_CODE IN ('UA0402','UF0701','UL0202','UO0302','UO0303') THEN '1' ELSE '0' END AS IS_ASSISTANT,
' ' AS HIS_PANIC,
'0' AS KEY_POSITION,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN '0' ELSE '1' END AS IS_VACANT,
' ' AS JOB_FN,
' ' AS JOB_FN_CD,
' ' AS KEY_EMP,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.LAST_NAME ELSE '' END AS LAST_NAME,
LOC.LOCATION_NAME,
' ' AS MGR_POT,
' ' AS MID_NAME,
' ' AS MOBILE,
' ' AS NATIONALITY,
'0' AS NINEBOX_PER,
'0' AS NINEBOX_POT,
(SELECT DISTINCT PERSON_NUMBER FROM PER_ALL_PEOPLE_F PER WHERE PER.PERSON_ID=SUP.MANAGER_ID AND SUP.ASSIGNMENT_ID=ASS.ASSIGNMENT_ID AND SUP.PERSON_ID=ASS.PERSON_ID AND ASS.ASSIGNMENT_TYPE IN ('E','C') AND SUP.MANAGER_TYPE='LINE_MANAGER' AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE) AS MANAGER_NUMBER,
'0' AS PERFORMANCE,
' ' AS PHOTO,
' ' AS POS,
PER.PERSON_NUMBER AS POSITION_ID,
'0' AS POTENTIAL,
' ' AS PROF_DEGREE,
' ' AS RATING,
' ' AS READY_TO_RETIRE,
' ' AS RELOCATE,
'0' AS REQ_COMPETENCE,
' ' AS RISK_OF_LOSS,
CASE WHEN ASS.HOURLY_SALARIED_CODE = 'S' THEN (CM.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)
WHEN ASS.HOURLY_SALARIED_CODE = 'H' THEN (CM.SALARY_AMOUNT * ASS.NORMAL_HOURS * 52)
END AS ANNUAL_SALARY,
' ' AS SAL_GRADE,
' ' AS SCHED_HOURS,
' ' AS SKILLS,
' ' AS STATE_,
ASS.ASS_ATTRIBUTE4 AS TITLE,
' ' AS VETERAN_STATUS,
' ' AS WORK_ADDRESS,
CASE
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'Full-Time'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'Part-Time'
ELSE ' ' END AS WORKER_CATEGORY,
' ' AS WORK_LOC,
' ' AS WORK_LOC_ID,
(SELECT DISTINCT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN PH.PHONE_NUMBER ELSE '' END FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='W1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM(+) AND PH.DATE_TO(+)) AS WORK_PHONE_NUMBER,
(SELECT DISTINCT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN PH.EXTENSION ELSE '' END FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='W1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM(+) AND PH.DATE_TO(+)) AS EXTENSION,
' ' AS ZIP,
CASE WHEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) IS NOT NULL THEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) ELSE DEPT.NAME END AS NAME,
DEPT.NAME AS DEPT_NAME
FROM PER_PERSONS PP,
PER_ALL_ASSIGNMENTS_F ASS,
PER_ALL_PEOPLE_F PER,
PER_PERIODS_OF_SERVICE POS,
PER_PERSON_NAMES_F NAME,
HR_LOCATIONS_ALL_F_VL LOC,
PER_JOBS_F_VL JOB,
PER_DEPARTMENTS DEPT,
PER_ASSIGNMENT_SUPERVISORS_F SUP,
CMP_SALARY_BASES SLA,
CMP_SALARY CM
WHERE SUP.PERSON_ID(+)=ASS.PERSON_ID
AND LENGTH(PER.PERSON_NUMBER) >= 6
AND SUP.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND PER.PERSON_ID=ASS.PERSON_ID
AND POS.PERSON_ID(+)=ASS.PERSON_ID
AND POS.PERIOD_OF_SERVICE_ID(+)=ASS.PERIOD_OF_SERVICE_ID
AND NAME.PERSON_ID=PER.PERSON_ID
AND LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND CM.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND CM.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND DEPT.ORGANIZATION_ID(+)=ASS.ORGANIZATION_ID
AND ((ASS.ASSIGNMENT_TYPE IN ('C')) OR (ASS.ASSIGNMENT_TYPE IN ('E') AND ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE')))
AND SUP.MANAGER_TYPE(+)='LINE_MANAGER'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE AND NAME.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN DEPT.EFFECTIVE_START_DATE(+) AND DEPT.EFFECTIVE_END_DATE(+)
and TRUNC(SYSDATE) between CM.DATE_FROM(+) and CM.DATE_TO(+)
AND ASS.PERSON_ID IN (SELECT DISTINCT A.MANAGER_ID
FROM PER_ASSIGNMENT_SUPERVISORS_F A, PER_ALL_ASSIGNMENTS_F B
WHERE A.PERSON_ID = B.PERSON_ID
AND A.ASSIGNMENT_ID = B.ASSIGNMENT_ID
AND B.ASSIGNMENT_STATUS_TYPE='ACTIVE'
AND TRUNC(SYSDATE) BETWEEN A.EFFECTIVE_START_DATE AND A.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN B.EFFECTIVE_START_DATE AND B.EFFECTIVE_END_DATE
AND B.ASSIGNMENT_TYPE IN ('E'))
UNION
SELECT '0' AS AGE,
'0' AS BUDGET_SALARY,
ASS.ASSIGNMENT_STATUS_TYPE,
/*(SELECT DISTINCT NAME
FROM
HR_ALL_ORGANIZATION_UNITS_F_VL A,HR_ORGANIZATION_INFORMATION_F B
WHERE 1=1
AND A.ORGANIZATION_ID=B.ORGANIZATION_ID(+)
AND A.ORGANIZATION_ID(+)=ASS.ORGANIZATION_ID
AND (B.ORG_INFORMATION_CONTEXT= 'PER_ORG_MANAGER_INFO' OR B.ORG_INFORMATION_CONTEXT IS NULL)
) AS BU,*/
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS BU,
' ' AS CITY,
'0' AS COST_CENTER,
'0' AS COST_CENTER_ID,
(SELECT LOOKUP_CODE FROM HCM_LOOKUPS WHERE LOOKUP_TYPE='BB_3CHAR_COUNTRY' AND MEANING=LOC.COUNTRY AND TRUNC(SYSDATE) BETWEEN START_DATE_ACTIVE(+) AND NVL(END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS COUNTRY,
'NULL' AS DATE_OF_BIRTH,
-- SUBSTR(DEPT.NAME,INSTR(DEPT.NAME,'__',1)+2) AS DEPT_CODE,
CASE WHEN INSTR(DEPT.NAME,'__',1) != 0 THEN SUBSTR(DEPT.NAME, NVL(INSTR(DEPT.NAME,'__',1),0)+2)
WHEN INSTR(DEPT.NAME,'__',1) = 0 THEN NULL END AS DEPT_CODE,
(SELECT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN EMAIL2.EMAIL_ADDRESS ELSE '' END FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_TYPE = 'W1' AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD')))AS EMAIL_ADDRESS,
'0' AS EMP_COMP,
PER.PERSON_NUMBER,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'T' WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('SUSPENDED') THEN 'S' ELSE 'A' END AS EMP_STAT,
' ' AS EMP_STAT_REASON,
' ' AS END_DATE,
' ' AS ETHINICITY,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.FIRST_NAME ELSE '' END AS FIRST_NAME,
' ' AS FLSA,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.FIRST_NAME||' '||NAME.MIDDLE_NAMES||' '||NAME.LAST_NAME ELSE 'VACANT' END AS FULL_NAME,
' ' AS GENDER,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN TO_CHAR(POS.ORIGINAL_DATE_OF_HIRE,'MM-DD-YYYY') ELSE '' END AS HIRE_DATE,
' ' AS HOMEPH,
'0' AS HOURLY_RATE,
CASE WHEN JOB.JOB_CODE IN ('UA0402','UF0701','UL0202','UO0302','UO0303') THEN '1' ELSE '0' END AS IS_ASSISTANT,
' ' AS HIS_PANIC,
'0' AS KEY_POSITION,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN '0' ELSE '1' END AS IS_VACANT,
' ' AS JOB_FN,
' ' AS JOB_FN_CD,
' ' AS KEY_EMP,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.LAST_NAME ELSE '' END AS LAST_NAME,
LOC.LOCATION_NAME,
' ' AS MGR_POT,
' ' AS MID_NAME,
' ' AS MOBILE,
' ' AS NATIONALITY,
'0' AS NINEBOX_PER,
'0' AS NINEBOX_POT,
(SELECT DISTINCT PERSON_NUMBER FROM PER_ALL_PEOPLE_F PER WHERE PER.PERSON_ID=SUP.MANAGER_ID AND SUP.ASSIGNMENT_ID=ASS.ASSIGNMENT_ID AND SUP.PERSON_ID=ASS.PERSON_ID AND ASS.ASSIGNMENT_TYPE IN ('E','C') AND SUP.MANAGER_TYPE='LINE_MANAGER' AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE) AS MANAGER_NUMBER,
'0' AS PERFORMANCE,
' ' AS PHOTO,
' ' AS POS,
PER.PERSON_NUMBER AS POSITION_ID,
'0' AS POTENTIAL,
' ' AS PROF_DEGREE,
' ' AS RATING,
' ' AS READY_TO_RETIRE,
' ' AS RELOCATE,
'0' AS REQ_COMPETENCE,
' ' AS RISK_OF_LOSS,
CASE WHEN ASS.HOURLY_SALARIED_CODE = 'S' THEN (CM.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)
WHEN ASS.HOURLY_SALARIED_CODE = 'H' THEN (CM.SALARY_AMOUNT * ASS.NORMAL_HOURS * 52)
END AS ANNUAL_SALARY,
' ' AS SAL_GRADE,
' ' AS SCHED_HOURS,
' ' AS SKILLS,
' ' AS STATE_,
ASS.ASS_ATTRIBUTE4 AS TITLE,
' ' AS VETERAN_STATUS,
' ' AS WORK_ADDRESS,
CASE
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'Full-Time'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'Part-Time'
ELSE ' ' END AS WORKER_CATEGORY,
' ' AS WORK_LOC,
' ' AS WORK_LOC_ID,
(SELECT DISTINCT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN PH.PHONE_NUMBER ELSE '' END FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='W1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM(+) AND PH.DATE_TO(+)) AS WORK_PHONE_NUMBER,
(SELECT DISTINCT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN PH.EXTENSION ELSE '' END FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='W1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM(+) AND PH.DATE_TO(+)) AS EXTENSION,
' ' AS ZIP,
CASE WHEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) IS NOT NULL THEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) ELSE DEPT.NAME END AS NAME,
DEPT.NAME AS DEPT_NAME
FROM PER_PERSONS PP,
PER_ALL_ASSIGNMENTS_F ASS,
PER_ALL_PEOPLE_F PER,
PER_PERIODS_OF_SERVICE POS,
PER_PERSON_NAMES_F NAME,
HR_LOCATIONS_ALL_F_VL LOC,
PER_JOBS_F_VL JOB,
PER_DEPARTMENTS DEPT,
PER_ASSIGNMENT_SUPERVISORS_F SUP,
CMP_SALARY_BASES SLA,
CMP_SALARY CM
WHERE SUP.PERSON_ID(+)=ASS.PERSON_ID
AND LENGTH(PER.PERSON_NUMBER) >= 6
AND SUP.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND PER.PERSON_ID=ASS.PERSON_ID
AND POS.PERSON_ID(+)=ASS.PERSON_ID
AND POS.PERIOD_OF_SERVICE_ID(+)=ASS.PERIOD_OF_SERVICE_ID
AND NAME.PERSON_ID=PER.PERSON_ID
AND LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND CM.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND CM.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND DEPT.ORGANIZATION_ID(+)=ASS.ORGANIZATION_ID
AND (ASS.ASSIGNMENT_TYPE IN ('E') AND ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE'))
AND SUP.MANAGER_TYPE(+)='LINE_MANAGER'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE AND NAME.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN DEPT.EFFECTIVE_START_DATE(+) AND DEPT.EFFECTIVE_END_DATE(+)
and TRUNC(SYSDATE) between CM.DATE_FROM(+) and CM.DATE_TO(+)
AND ASS.PERSON_ID IN (SELECT DISTINCT A.MANAGER_ID
FROM PER_ASSIGNMENT_SUPERVISORS_F A, PER_ALL_ASSIGNMENTS_F B
WHERE A.PERSON_ID = B.PERSON_ID
AND A.ASSIGNMENT_ID = B.ASSIGNMENT_ID
AND B.ASSIGNMENT_STATUS_TYPE='ACTIVE'
AND TRUNC(SYSDATE) BETWEEN A.EFFECTIVE_START_DATE AND A.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN B.EFFECTIVE_START_DATE AND B.EFFECTIVE_END_DATE
AND B.ASSIGNMENT_TYPE IN ('C')
AND A.MANAGER_ID IN (SELECT DISTINCT C.MANAGER_ID
FROM PER_ASSIGNMENT_SUPERVISORS_F C, PER_ALL_ASSIGNMENTS_F D
WHERE C.PERSON_ID = D.PERSON_ID
AND C.ASSIGNMENT_ID = D.ASSIGNMENT_ID
AND D.ASSIGNMENT_STATUS_TYPE='ACTIVE'
AND TRUNC(SYSDATE) BETWEEN C.EFFECTIVE_START_DATE AND C.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN D.EFFECTIVE_START_DATE AND D.EFFECTIVE_END_DATE
AND D.ASSIGNMENT_TYPE IN ('E')))
UNION
SELECT DISTINCT '0' AS AGE,
'0' AS BUDGET_SALARY,
ASS.ASSIGNMENT_STATUS_TYPE,
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS BU,
' ' AS CITY,
'0' AS COST_CENTER,
'0' AS COST_CENTER_ID,
(SELECT LOOKUP_CODE FROM HCM_LOOKUPS WHERE LOOKUP_TYPE='BB_3CHAR_COUNTRY' AND MEANING=LOC.COUNTRY AND TRUNC(SYSDATE) BETWEEN START_DATE_ACTIVE(+) AND NVL(END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS COUNTRY,
'NULL' AS DATE_OF_BIRTH,
CASE WHEN INSTR(DEPT.NAME,'__',1) != 0 THEN SUBSTR(DEPT.NAME, NVL(INSTR(DEPT.NAME,'__',1),0)+2)
WHEN INSTR(DEPT.NAME,'__',1) = 0 THEN NULL END AS DEPT_CODE,
(SELECT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN EMAIL2.EMAIL_ADDRESS ELSE '' END FROM PER_EMAIL_ADDRESSES EMAIL2 WHERE PER.PERSON_ID = EMAIL2.PERSON_ID AND EMAIL_TYPE = 'W1' AND TRUNC(SYSDATE) BETWEEN EMAIL2.DATE_FROM(+) AND NVL(EMAIL2.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD')))AS EMAIL_ADDRESS,
'0' AS EMP_COMP,
PER.PERSON_NUMBER,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('INACTIVE') THEN 'T' WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('SUSPENDED') THEN 'S' ELSE 'A' END AS EMP_STAT,
' ' AS EMP_STAT_REASON,
' ' AS END_DATE,
' ' AS ETHINICITY,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.FIRST_NAME ELSE '' END AS FIRST_NAME,
' ' AS FLSA,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN (CASE WHEN NAME.MIDDLE_NAMES IS NOT NULL THEN (NAME.FIRST_NAME)||' '||(NAME.MIDDLE_NAMES)||' '||(NAME.LAST_NAME) WHEN NAME.MIDDLE_NAMES IS NULL THEN (NAME.FIRST_NAME)||' '||(NAME.LAST_NAME) END) ELSE 'VACANT' END AS FULL_NAME,
' ' AS GENDER,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN TO_CHAR(POS.ORIGINAL_DATE_OF_HIRE,'MM-DD-YYYY') ELSE '' END AS HIRE_DATE,
' ' AS HOMEPH,
'0' AS HOURLY_RATE,
CASE WHEN JOB.JOB_CODE IN ('UA0402','UF0701','UL0202','UO0302','UO0303') THEN '1' ELSE '0' END AS IS_ASSISTANT,
' ' AS HIS_PANIC,
'0' AS KEY_POSITION,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN '0' ELSE '1' END AS IS_VACANT,
' ' AS JOB_FN,
' ' AS JOB_FN_CD,
' ' AS KEY_EMP,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN NAME.LAST_NAME ELSE '' END AS LAST_NAME,
LOC.LOCATION_NAME,
' ' AS MGR_POT,
' ' AS MID_NAME,
' ' AS MOBILE,
' ' AS NATIONALITY,
'0' AS NINEBOX_PER,
'0' AS NINEBOX_POT,
(SELECT DISTINCT PERSON_NUMBER FROM PER_ALL_PEOPLE_F PER WHERE PER.PERSON_ID=SUP.MANAGER_ID AND SUP.ASSIGNMENT_ID=ASS.ASSIGNMENT_ID AND SUP.PERSON_ID=ASS.PERSON_ID AND ASS.ASSIGNMENT_TYPE IN ('E','C') AND SUP.MANAGER_TYPE='LINE_MANAGER' AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE) AS MANAGER_NUMBER,
'0' AS PERFORMANCE,
' ' AS PHOTO,
' ' AS POS,
PER.PERSON_NUMBER AS POSITION_ID,
'0' AS POTENTIAL,
' ' AS PROF_DEGREE,
' ' AS RATING,
' ' AS READY_TO_RETIRE,
' ' AS RELOCATE,
'0' AS REQ_COMPETENCE,
' ' AS RISK_OF_LOSS,
CASE WHEN ASS.HOURLY_SALARIED_CODE = 'S' THEN (CM.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)
WHEN ASS.HOURLY_SALARIED_CODE = 'H' THEN (CM.SALARY_AMOUNT * ASS.NORMAL_HOURS * 52)
END AS ANNUAL_SALARY,
' ' AS SAL_GRADE,
' ' AS SCHED_HOURS,
' ' AS SKILLS,
' ' AS STATE_,
'[CONTRACTOR]' AS TITLE,
' ' AS VETERAN_STATUS,
' ' AS WORK_ADDRESS,
CASE
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') THEN 'Full-Time'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') THEN 'Part-Time'
ELSE ' ' END AS WORKER_CATEGORY,
' ' AS WORK_LOC,
' ' AS WORK_LOC_ID,
(SELECT DISTINCT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN PH.PHONE_NUMBER ELSE '' END FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='W1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM(+) AND PH.DATE_TO(+)) AS WORK_PHONE_NUMBER,
(SELECT DISTINCT CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN PH.EXTENSION ELSE '' END FROM PER_PHONES_V PH WHERE PH.PHONE_TYPE ='W1' AND PH.PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) BETWEEN PH.DATE_FROM(+) AND PH.DATE_TO(+)) AS EXTENSION,
' ' AS ZIP,
CASE WHEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) IS NOT NULL THEN SUBSTR(DEPT.NAME,1,INSTR(DEPT.NAME,'__',1)-1) ELSE DEPT.NAME END AS NAME,
DEPT.NAME AS DEPT_NAME
FROM PER_PERSONS PP,
PER_ALL_ASSIGNMENTS_F ASS,
PER_ALL_PEOPLE_F PER,
PER_PERIODS_OF_SERVICE POS,
PER_PERSON_NAMES_F NAME,
HR_LOCATIONS_ALL_F_VL LOC,
PER_JOBS_F_VL JOB,
PER_DEPARTMENTS DEPT,
PER_ASSIGNMENT_SUPERVISORS_F SUP,
CMP_SALARY_BASES SLA,
CMP_SALARY CM,
PAY_ELEMENT_ENTRIES_F EENTRY,
PAY_ELEMENT_TYPES_VL ETYPE,
PAY_ELE_CLASSIFICATIONS_VL ECLASS,
PAY_ELEMENT_ENTRY_VALUES_F EVALUE,
PAY_INPUT_VALUES_F PINPUT
WHERE SUP.PERSON_ID(+)=ASS.PERSON_ID
AND LENGTH(PER.PERSON_NUMBER) >= 6
AND SUP.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND PP.PERSON_ID(+)=PER.PERSON_ID
AND PER.PERSON_ID=ASS.PERSON_ID
AND POS.PERSON_ID(+)=ASS.PERSON_ID
AND POS.PERIOD_OF_SERVICE_ID(+)=ASS.PERIOD_OF_SERVICE_ID
AND NAME.PERSON_ID=PER.PERSON_ID
AND LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND CM.ASSIGNMENT_ID(+)=ASS.ASSIGNMENT_ID
AND CM.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND DEPT.ORGANIZATION_ID(+)=ASS.ORGANIZATION_ID
AND ASS.ASSIGNMENT_TYPE IN ('C')
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND SUP.MANAGER_TYPE(+)='LINE_MANAGER'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND TRUNC(SYSDATE) BETWEEN ASS.EFFECTIVE_START_DATE AND ASS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN NAME.EFFECTIVE_START_DATE AND NAME.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN SUP.EFFECTIVE_START_DATE(+) AND SUP.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN DEPT.EFFECTIVE_START_DATE(+) AND DEPT.EFFECTIVE_END_DATE(+)
and TRUNC(SYSDATE) between CM.DATE_FROM(+) and CM.DATE_TO(+)
AND 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 UPPER(ETYPE.ELEMENT_NAME) LIKE 'CONTRACTOR RATE%'
AND TRUNC(SYSDATE) BETWEEN ETYPE.EFFECTIVE_START_DATE AND ETYPE.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PINPUT.EFFECTIVE_START_DATE AND PINPUT.EFFECTIVE_END_DATE
ORDER BY ASSIGNMENT_STATUS_TYPE DESC
***********************************************************************************************************************************************
RivermineEmployeeFeed
SELECT
LPAD(PPF.PERSON_NUMBER,6,'0') AS EMPLID ,
NAME.FIRST_NAME AS FIRST_NAME,
NAME.MIDDLE_NAMES AS MIDDLE_NAME,
NAME.LAST_NAME AS LAST_NAME,
EMAIL.EMAIL_ADDRESS AS EMAIL_ADDR,
(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PPF.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO) PHONE,
CASE WHEN ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE' THEN 'A' ELSE 'I' END AS HR_STATUS,
TO_CHAR(PPOS.ACTUAL_TERMINATION_DATE,'DD-MM-YYYY') AS TERMINATION_DT,
CASE WHEN ASS.ACTION_CODE='REHIRE' THEN TO_CHAR(PPOS.DATE_START,'DD-MM-YYYY') ELSE '' END AS LAST_HIRE_DT,
(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F PER WHERE PER.PERSON_ID=MAN.MANAGER_ID AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE ) AS SUPERVISOR_ID,
LOC.INTERNAL_LOCATION_CODE AS BB_PHYSICAL_LOC_CD,
LOC.ADDRESS_LINE_1 AS ADDRESS1,
LOC.ADDRESS_LINE_2 AS ADDRESS2,
LOC.TOWN_OR_CITY AS CITY,
LOC.REGION_2 AS STATE_NAME,
LOC.POSTAL_CODE AS POSTAL,
JOB.MANAGER_LEVEL AS TITLE_LEVEL,
JOB.NAME AS BUSINESS_TITLE,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,7,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS DEPTID_CF,
'' AS PRODUCT,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,11,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS CHARTFIELD1,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,15,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS CHARTFIELD2,
'' AS PROJECT,
'' AS ACTIVITY,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,1,5)
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 BUSINESS_UNIT,
(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,19,4)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND TRUNC(SYSDATE) BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS OPERATING_UNIT
FROM
PER_ALL_PEOPLE_F PPF,
PER_PERSON_NAMES_F NAME,
PER_PERIODS_OF_SERVICE PPOS,
PER_ASSIGNMENT_SUPERVISORS_F MAN,
PER_EMAIL_ADDRESSES EMAIL,
PER_ALL_ASSIGNMENTS_M ASS,
PER_JOBS JOB,
HR_LOCATIONS_ALL LOC,
HR_ORGANIZATION_UNITS ORG
WHERE
PPF.PERSON_ID=NAME.PERSON_ID
AND PPF.PERSON_ID=ASS.PERSON_ID
AND ASS.PERSON_ID = PPOS.PERSON_ID (+)
AND ASS.PERIOD_OF_SERVICE_ID=PPOS.PERIOD_OF_SERVICE_ID
AND ASS.ASSIGNMENT_ID=MAN.ASSIGNMENT_ID(+)
AND JOB.JOB_ID(+)=ASS.JOB_ID
AND ORG.ORGANIZATION_ID(+)=ASS.ORGANIZATION_ID
AND EMAIL.PERSON_ID(+)=PPF.PERSON_ID
AND LOC.LOCATION_ID(+)=ASS.LOCATION_ID
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND NAME.NAME_TYPE='GLOBAL'
AND ((ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')) OR (PPOS.ACTUAL_TERMINATION_DATE BETWEEN TRUNC(SYSDATE)-30 AND TRUNC(SYSDATE)))
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
FROM PER_ALL_ASSIGNMENTS_F
WHERE PERSON_ID=ASS.PERSON_ID
AND ASSIGNMENT_TYPE IN ('E')
AND EFFECTIVE_LATEST_CHANGE = 'Y'
AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND EMAIL.EMAIL_ADDRESS IS NOT NULL
AND EMAIL.EMAIL_TYPE='W1'
AND MAN.MANAGER_TYPE(+) ='LINE_MANAGER'
AND TRUNC(SYSDATE) BETWEEN PPF.EFFECTIVE_START_DATE AND PPF.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 LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ORG.DATE_FROM(+) AND ORG.DATE_TO(+)
AND TRUNC(SYSDATE) BETWEEN EMAIL.DATE_FROM(+) AND NVL(EMAIL.DATE_TO, TO_DATE('4712-01-01', 'YYYY-MM-DD'))
***********************************************************************************************************************************************
FidelityDemographics
SELECT DISTINCT
CASE WHEN ASS.PERSON_ID IN
( SELECT DISTINCT ASSS.PERSON_ID
FROM PER_ALL_ASSIGNMENTS_F ASSS,PER_ADDRESSES_F ADDR,PER_PERSON_ADDR_USAGES_F AD
WHERE ADDR.ADDRESS_ID(+)=AD.ADDRESS_ID
AND AD.PERSON_ID(+)=ASSS.PERSON_ID
AND ASS.PERSON_ID=ASSS.PERSON_ID
AND ASSS.ASSIGNMENT_TYPE IN ('E')
AND ASSS.LEGISLATION_CODE(+)='US'
AND AD.ADDRESS_TYPE(+)='HOME'
AND ADDR.REGION_2 NOT IN ('PR')
AND (ASSS.EMPLOYMENT_CATEGORY NOT IN ('FT','PT') OR ASSS.EMPLOYMENT_CATEGORY IS NULL)
AND ASSS.PERSON_ID NOT IN
(SELECT DISTINCT A.PERSON_ID
FROM PER_ALL_ASSIGNMENTS_F A,HR_LOCATIONS_ALL L
WHERE
(L.INTERNAL_LOCATION_CODE IN ('KY01','TX01','SC01','AZ02') and A.HOURLY_SALARIED_CODE= 'H' )
AND L.LOCATION_ID(+)=A.LOCATION_ID
AND TRUNC(SYSDATE) BETWEEN L.EFFECTIVE_START_DATE(+) AND L.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN A.EFFECTIVE_START_DATE(+) AND A.EFFECTIVE_END_DATE(+))
AND ASSS.ASSIGNMENT_SEQUENCE=(SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID=ASSS.PERSON_ID AND ASSIGNMENT_TYPE=ASSS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND TRUNC(SYSDATE) BETWEEN ASSS.EFFECTIVE_START_DATE AND ASSS.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN AD.EFFECTIVE_START_DATE(+) AND AD.EFFECTIVE_END_DATE(+)) THEN 'Y'
ELSE 'N' END AS ELIGIBILITY,
---RECORD 01--
'49021' AS PLAN_NUM1,
SSN.NATIONAL_IDENTIFIER_NUMBER AS NATIONAL_ID,
'01' AS RECORD_IDEN,
NAME.LAST_NAME AS LAST_NAME,
CASE WHEN NAME.MIDDLE_NAMES IS NULL THEN NAME.FIRST_NAME
WHEN NAME.MIDDLE_NAMES IS NOT NULL THEN NAME.FIRST_NAME||' '||UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) END AS FIRST_MID_NAME,
'000000000' AS RESERVED,
-- SUBSTR(PPL.MARITAL_STATUS,INSTR(PPL.MARITAL_STATUS,'_')+1) AS MARITAL_STATUS,
CASE WHEN PPL.MARITAL_STATUS ='M' THEN 'M'
WHEN PPL.MARITAL_STATUS ='S' THEN 'S' ELSE 'S' END AS MARITAL_STATUS,
CASE WHEN PPL.SEX='M' THEN 'M'
WHEN PPL.SEX='F' THEN 'F' ELSE ' ' END AS GENDER,
--RECORD2D---
'49021' AS PLAN_NUM11,
SSN.NATIONAL_IDENTIFIER_NUMBER AS NATID10,
'02' AS RECID11,
'D' AS FIELDTYP11,
TO_CHAR(POS.ORIGINAL_DATE_OF_HIRE,'MMDDYYYY') AS HIRE_DATE,
TO_CHAR(PERS.DATE_OF_BIRTH,'MMDDYYYY') AS BIRTH_DATE,
TO_CHAR(POS.ACTUAL_TERMINATION_DATE,'MMDDYYYY') AS TERMINATION_DATE,
CASE WHEN (SELECT MAX(DATE_START) FROM PER_PERIODS_OF_SERVICE WHERE PERIOD_OF_SERVICE_ID(+)=ASS.PERIOD_OF_SERVICE_ID AND PERSON_ID(+)=ASS.PERSON_ID)
<> POS.ORIGINAL_DATE_OF_HIRE AND POS.ACTUAL_TERMINATION_DATE IS NULL THEN '5' ELSE '' END AS DATE_SWITCH,
--RECORD11--
'49021' AS PLAN_NUM10,
SSN.NATIONAL_IDENTIFIER_NUMBER AS NATID,
'11' AS RDID,
---------------------------------------------------------------------------------------------
CASE
WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION','RESIGNATION','RETIRE','TERMINATION') THEN 'T'
WHEN ASS.ACTION_CODE = 'OTHER' AND ASS.REASON_CODE IN ('DEATH','RETIRE') THEN 'T'
WHEN ASS.ACTION_CODE='DEATH' THEN 'D'
WHEN ASS.LEGISLATION_CODE IN ('US')
AND ADDR.REGION_2 NOT IN ('PR')
AND (ASS.EMPLOYMENT_CATEGORY NOT IN ('FT','PT') OR ASS.EMPLOYMENT_CATEGORY IS NULL)
AND ASS.PERSON_ID NOT IN
(SELECT DISTINCT A.PERSON_ID
FROM PER_ALL_ASSIGNMENTS_F A,HR_LOCATIONS_ALL L
WHERE
(L.INTERNAL_LOCATION_CODE IN ('KY01','TX01','SC01','AZ02') AND A.HOURLY_SALARIED_CODE= 'H' )
AND L.LOCATION_ID(+)=A.LOCATION_ID
AND TRUNC(SYSDATE) BETWEEN L.EFFECTIVE_START_DATE(+) AND L.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN A.EFFECTIVE_START_DATE(+) AND A.EFFECTIVE_END_DATE(+)) THEN 'E'
ELSE 'I' END AS STATCODE,
---------------------------------------------------------------------------------------------
'Y' AS LITKIT,
--RECORD 03---
'49021' AS PLAN_NUM_3,
SSN.NATIONAL_IDENTIFIER_NUMBER AS NATIONAL_ID2,
'03' AS RECIDEN3,
'P' AS RECTYP3,
CASE WHEN ADDR.ADDRESS_LINE_1 IS NOT NULL THEN '01'
WHEN ADDR.ADDRESS_LINE_2 IS NOT NULL THEN '02'
WHEN ADDR.ADDRESS_LINE_3 IS NOT NULL THEN '03'
END AS ADDRESS_LIN_NUM,
ADDR.ADDRESS_LINE_1 AS ADDRESS,
ADDR.ADDRESS_LINE_2,
ADDR.ADDRESS_LINE_3,
--RECORD04--
'49021' AS PLAN_NUM3,
SSN.NATIONAL_IDENTIFIER_NUMBER AS NATIONAL_ID3,
'04' AS RECIDEN5,
'P' RECTYP5,
ADDR.TOWN_OR_CITY AS CITY,
ADDR.REGION_2 AS STATE_,
CASE
WHEN LENGTH(ADDR.POSTAL_CODE) < 5 THEN LPAD(ADDR.POSTAL_CODE, 5, '0')
WHEN LENGTH(ADDR.POSTAL_CODE) = 10 THEN SUBSTR(ADDR.POSTAL_CODE, 1, 5)
WHEN LENGTH(ADDR.POSTAL_CODE) = 5 THEN ADDR.POSTAL_CODE
ELSE ''
END AS ZIP_CODE,
--RECORD05--
'49021' AS PLAN_NUM5,
SSN.NATIONAL_IDENTIFIER_NUMBER AS NATIONAL_ID4,
'05' AS RECIDEN6,
'P' AS RECTYP6,
ADDR.COUNTRY AS COUNTRY,
'Y' AS SPCL_HANDLING,
--RECORD61--
'49021' AS PLAN_NUM6,
SSN.NATIONAL_IDENTIFIER_NUMBER AS NATIONAL_ID5,
'61' AS RECIDEN7,
CASE WHEN POS.ADJUSTED_SVC_DATE IS NULL THEN
(SELECT MIN(TO_CHAR(P.ADJUSTED_SVC_DATE,'MMDDYYYY')) FROM PER_PERIODS_OF_SERVICE P WHERE PERSON_ID=ASS.PERSON_ID)
ELSE '' END AS REHIREDATE,
'00000000' AS RETIREMENT_DATE,
'00000' AS PRE_BREAK,
'49021' AS PLAN_NUM7,
SSN.NATIONAL_IDENTIFIER_NUMBER AS NATIONAL_ID6,
'02' AS RECIDEN8,
'E' AS FIELDTYP1,
PER.PERSON_NUMBER AS EMPLID,
--RECORD 2E---
'49021' AS PLAN_NUM111,
SSN.NATIONAL_IDENTIFIER_NUMBER AS NATIONAL_ID1,
'02' AS REC_IDEN2,
'E' AS FIELD_TYPE,
PER.PERSON_NUMBER AS EMPLOYEE_NUMBER,
ASS.ASSIGNMENT_STATUS_TYPE,
ASS.HOURLY_SALARIED_CODE
FROM PER_ALL_PEOPLE_F PER,
PER_PERSONS PERS,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_F ASS,
PER_NATIONAL_IDENTIFIERS SSN,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_PERIODS_OF_SERVICE POS,
PER_ADDRESSES_F ADDR,
PER_PERSON_ADDR_USAGES_F AD
WHERE PER.PERSON_ID=NAME.PERSON_ID
AND PER.PERSON_ID=PERS.PERSON_ID(+)
AND PER.PERSON_ID=ASS.PERSON_ID
AND PER.PERSON_ID=SSN.PERSON_ID(+)
AND PER.PERSON_ID=PPL.PERSON_ID(+)
AND ASS.PERSON_ID=POS.PERSON_ID(+)
AND POS.PERIOD_OF_SERVICE_ID(+)=ASS.PERIOD_OF_SERVICE_ID
AND ADDR.ADDRESS_ID(+)=AD.ADDRESS_ID
AND AD.PERSON_ID(+)=PER.PERSON_ID
AND ASS.ASSIGNMENT_TYPE IN ('E')
/* Code changes Start by Anil, to Restrict "Higher One Inc." - LE employees from Feed,as part of CR # CHG0158029 - TP # 40902 */
--AND ASS.LEGAL_ENTITY_ID NOT IN (300000077404382)
/*AND ((ASS.LEGAL_ENTITY_ID NOT IN (SELECT distinct ORGANIZATION_ID FROM PER_LEGAL_EMPLOYERS WHERE NAME IN ('Higher One Inc.','Higher One India Ltd')
AND TRUNC(sysdate) between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE))
OR ASS.ASS_ATTRIBUTE3 NOT IN ('BB9')) */
--and ASS.ASS_ATTRIBUTE3 NOT IN ('BB9')
/* Code changes End by Anil, to Restrict "Higher One Inc." - LE employees from Feed,as part of CR # CHG0158029 - TP # 40902 */
/* Code changes Start by Ismail, to Restrict "Higher One India Ltd." - LE employees from Feed, and allow "Higher One Inc.(US) as part of CR # CHG0162946 - TP # 42492 */
-- Commented above lines which restrict both both US and India Higher One employees..--
AND ASS.LEGAL_ENTITY_ID NOT IN ('300000131391295')
/* Code changes End by Ismail, to Restrict "Higher One India Ltd." - LE employees from Feed, and allow "Higher One Inc.(US) as part of CR # CHG0162946 - TP # 42492 */
AND AD.ADDRESS_TYPE(+)='HOME'
AND NAME.NAME_TYPE='GLOBAL'
-- AND ASS.LEGISLATION_CODE (+)='US'
AND SSN.NATIONAL_IDENTIFIER_TYPE = 'SSN'
AND SSN.NATIONAL_IDENTIFIER_TYPE IS NOT NULL
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 PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN AD.EFFECTIVE_START_DATE(+) AND AD.EFFECTIVE_END_DATE(+)
AND AD.ADDRESS_ID = (SELECT MAX(ADDRESS_ID) FROM PER_PERSON_ADDR_USAGES_F WHERE PERSON_ID = PER.PERSON_ID AND ADDRESS_TYPE(+)='HOME' AND TRUNC(SYSDATE) between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE)
AND PPL.PERSON_LEGISLATIVE_ID = (SELECT MAX(PERSON_LEGISLATIVE_ID) FROM PER_PEOPLE_LEGISLATIVE_F WHERE PERSON_ID = PER.PERSON_ID AND TRUNC(SYSDATE) between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE)
AND ASS.ASSIGNMENT_SEQUENCE=(SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE=ASS.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
ORDER BY PER.PERSON_NUMBER
***********************************************************************************************************************************************
ConcurTravelFeed
SELECT '"350"' AS TRX_TYPE,
'"'||PPF.PERSON_NUMBER||'"' as EMPLOYEE_ID,
'""' NAME_PREFIX,
'""' NAME_SUFFIX,
'""' NICK_NAME,
'""' REDRESS_NUMBER,
'"'||LEG.SEX||'"' AS GENDER,
'"'||TO_CHAR(POS.DATE_OF_BIRTH,'YYYYMMDD')||'"' AS DATE_OF_BIRTH,
'"'||(SELECT PERSON_NUMBER FROM PER_ALL_PEOPLE_F WHERE MAN.MANAGER_ID=PERSON_ID AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)||'"' AS SUPERVISOR_ID,
'"'||JOB.NAME||'"' AS JOB_TITLE,
'"'||(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PPF.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO and rownum=1)||'"' WORK_PHONE,
'"'||(SELECT PH.EXTENSION FROM PER_PHONES PH WHERE PPF.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO and rownum=1)||'"' EXTENSION,
'"'||(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PPF.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='WF' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO and rownum=1)||'"' WORK_FAX,
'"'||(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PPF.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='H1' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO and rownum=1)||'"' HOME_PHONE,
'"'||(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PPF.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='WM' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO and rownum=1)||'"' WORK_MOBILE,
'"'||(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PPF.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='P' AND TRUNC(SYSDATE) BETWEEN DATE_FROM AND DATE_TO and rownum=1)||'"' PAGER,
'""' TRAVEL_NAME_REMARK,
(SELECT '"'||CI.VALUE||'"'
FROM HCM_LOOKUPS LK,
FF_USER_COLUMN_INSTANCES_F CI,
FF_USER_ROWS_VL R,
FF_USER_COLUMNS_VL C,
FF_USER_TABLES_VL T
WHERE 1=1 AND R.USER_TABLE_ID = T.USER_TABLE_ID
AND C.USER_TABLE_ID = T.USER_TABLE_ID
AND CI.USER_ROW_ID = R.USER_ROW_ID
AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
AND R.ROW_NAME(+)= LK.LOOKUP_CODE
AND T.USER_TABLE_NAME(+) = 'BB_TRAVEL_CLASS'
AND LK.LOOKUP_TYPE(+)='BB_3CHAR_COUNTRY'
AND LK.MEANING(+)=HL.COUNTRY
AND USER_COLUMN_NAME= 'LongName'
AND SYSDATE BETWEEN R.EFFECTIVE_START_DATE(+) AND R.EFFECTIVE_END_DATE(+)
AND SYSDATE BETWEEN CI.EFFECTIVE_START_DATE(+) AND CI.EFFECTIVE_END_DATE(+)
AND SYSDATE BETWEEN LK.START_DATE_ACTIVE AND NVL(LK.END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS TRAVEL_CLASS_NAME,
'""' GDS_PROFILE_NAME,
'""' ORG_UNIT,
'"'||ADDR.ADDRESS_LINE_1||' '||ADDR.ADDRESS_LINE_2||' '||ADDR.ADDRESS_LINE_3||' '||ADDR.ADDRESS_LINE_4||'"' HOME_ADDRESS,
'"'||ADDR.TOWN_OR_CITY||'"' HOME_CITY,
'"'||ADDR.REGION_2||'"' HOME_STATE,
'"'||ADDR.POSTAL_CODE||'"' HOME_POSTAL,
'"'||ADDR.COUNTRY||'"' HOME_COUNTRY,
'"'||HL.ADDRESS_LINE_1||' '||HL.ADDRESS_LINE_2||' '||HL.ADDRESS_LINE_3||' '||HL.ADDRESS_LINE_4||'"' MAIL_ADDRESS,
'"'||HL.TOWN_OR_CITY||'"' MAIL_CITY,
'"'||HL.REGION_2||'"' MAIL_STATE,
'"'||HL.POSTAL_CODE||'"' MAIL_POSTAL,
'"'||HL.COUNTRY||'"' MAIL_COUNTRY,
'""' EMAIL2,
'""' EMAIL3,
'"'||CASE WHEN HL.COUNTRY IN ('BR','US','CA')
THEN 'SORT1_BUSINESS_UNIT_BB='||(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,1,5)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
ELSE 'Business Unit='|| (SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,1,5)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
END||'"' AS ACCOUNT,
'"'||CASE WHEN HL.COUNTRY IN ('BR','US','CA')
THEN 'SORT2_DEPT_BB='||(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,7,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
ELSE 'Department='||( SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,7,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
END||'"' AS DEPTID_CF,
'"'||CASE WHEN HL.COUNTRY IN ('BR','US','CA')
THEN 'SORT3_MARKET_BB='||(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,11,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
ELSE 'Market='|| (SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,11,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
END||'"' AS CHARTFIELD1,
'"'||CASE WHEN HL.COUNTRY IN ('BR','US','CA')
THEN 'SORT4_REGION_BB='||(SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,15,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
ELSE 'Region='|| (SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,15,3)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
END||'"' AS CHARTFIELD2,
'"'||CASE WHEN HL.COUNTRY IN ('BR','US','CA')
THEN 'UDID_20_OpUnit_BB='|| (SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,19,4)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
ELSE 'Operating Unit='|| (SELECT DISTINCT SUBSTR(HROF.ORG_INFORMATION2,19,4)
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=PAF.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)
END||'"' AS OPERATING_UNIT,
'""' CUSTOM6,
'""' CUSTOM7,
'""' CUSTOM8,
'""' CUSTOM9,
'""' CUSTOM10,
'""' CUSTOM11,
'""' CUSTOM12,
'""' CUSTOM13,
'""' CUSTOM14,
'""' CUSTOM15,
'""' CUSTOM16,
'""' CUSTOM17,
'""' CUSTOM18,
'""' CUSTOM19,
'""' CUSTOM20,
'""' CUSTOM21,
'""' CUSTOM22,
'""' CUSTOM23,
'""' CUSTOM24,
'""' CUSTOM25,
'""' XML,
'""' PROFILEUSER,
'""' AMADEUSUSER,
'""' FUTUREUSE4,
'""' FUTUREUSE5,
'""' FUTUREUSE6,
'""' FUTUREUSE7,
'""' FUTUREUSE8,
'""' FUTUREUSE9,
'""' FUTUREUSE10
FROM PER_ALL_PEOPLE_F PPF,
PER_ALL_ASSIGNMENTS_F PAF,
PER_PERSON_ADDR_USAGES_F ADDRE,
PER_PEOPLE_LEGISLATIVE_F LEG,
PER_EMAIL_ADDRESSES EMAIL,
PER_JOBS_F_VL JOB,
PER_ADDRESSES_F ADDR,
PER_PERIODS_OF_SERVICE PPOS,
PER_PERSONS POS,
PER_ASSIGNMENT_SUPERVISORS_F MAN,
HR_LOCATIONS HL,
PER_DEPARTMENTS ORG
WHERE PPF.PERSON_ID=PAF.PERSON_ID
AND POS.PERSON_ID(+)=PPF.PERSON_ID
AND PPF.PERSON_ID=ADDRE.PERSON_ID(+)
AND JOB.JOB_ID(+) = PAF.JOB_ID
AND ADDRE.ADDRESS_ID=ADDR.ADDRESS_ID(+)
AND LEG.PERSON_ID(+)= PAF.PERSON_ID
AND PAF.PERSON_ID = PPOS.PERSON_ID (+)
AND ORG.ORGANIZATION_ID(+)=PAF.ORGANIZATION_ID
AND PAF.PERIOD_OF_SERVICE_ID=PPOS.PERIOD_OF_SERVICE_ID
AND LEG.PERSON_LEGISLATIVE_ID = (SELECT MAX(PERSON_LEGISLATIVE_ID) FROM PER_PEOPLE_LEGISLATIVE_F WHERE PERSON_ID = PPF.PERSON_ID AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND PAF.ASSIGNMENT_ID=MAN.ASSIGNMENT_ID(+)
AND PAF.PERSON_ID=MAN.PERSON_ID(+)
AND EMAIL.PERSON_ID(+)=PPF.PERSON_ID
AND ADDRE.ADDRESS_TYPE(+)='HOME'
AND PAF.LOCATION_ID = HL.LOCATION_ID(+)
AND EMAIL.EMAIL_TYPE(+)='W1'
AND PAF.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID=PAF.PERSON_ID AND ASSIGNMENT_TYPE =PAF.ASSIGNMENT_TYPE AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
AND MAN.MANAGER_TYPE(+)='LINE MANAGER'
AND PAF.ASSIGNMENT_TYPE IN ('E','C')
--AND HL.COUNTRY IN ('AU','JP','KR','NZ','SG','CA','AE','AT','CH','CZ','DE','ES','FI','IE','IT','NL','SE','GB','BR','US')
AND JOB.JOB_CODE NOT IN ('UF0701','UR0901','UR0101','UR0102','US0201')
AND EMAIL.EMAIL_ADDRESS IS NOT NULL
AND PAF.LEGISLATION_CODE NOT IN ('CN')
AND ((PAF.ASSIGNMENT_STATUS_TYPE='ACTIVE') OR (GREATEST(PPOS.ACTUAL_TERMINATION_DATE,PPOS.LAST_UPDATE_DATE) BETWEEN SYSDATE-1 AND SYSDATE))
AND HL.COUNTRY IN
(SELECT HL.COUNTRY
FROM HCM_LOOKUPS LK,
FF_USER_COLUMN_INSTANCES_F CI,
FF_USER_ROWS_VL R,
FF_USER_COLUMNS_VL C,
FF_USER_TABLES_VL T
WHERE 1=1 AND R.USER_TABLE_ID = T.USER_TABLE_ID
AND C.USER_TABLE_ID = T.USER_TABLE_ID
AND CI.USER_ROW_ID = R.USER_ROW_ID
AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
AND R.ROW_NAME(+)= LK.LOOKUP_CODE
AND T.USER_TABLE_NAME(+) = 'BB_TRAVEL_CLASS'
AND LK.LOOKUP_TYPE(+)='BB_3CHAR_COUNTRY'
AND LK.MEANING(+)=HL.COUNTRY
AND USER_COLUMN_NAME= 'LongName'
AND SYSDATE BETWEEN R.EFFECTIVE_START_DATE(+) AND R.EFFECTIVE_END_DATE(+)
AND SYSDATE BETWEEN CI.EFFECTIVE_START_DATE(+) AND CI.EFFECTIVE_END_DATE(+)
AND SYSDATE BETWEEN LK.START_DATE_ACTIVE AND NVL(LK.END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD')))
AND TRUNC(SYSDATE) BETWEEN PPF.EFFECTIVE_START_DATE AND PPF.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PAF.EFFECTIVE_START_DATE(+) AND PAF.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN MAN.EFFECTIVE_START_DATE(+) AND MAN.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ORG.EFFECTIVE_START_DATE(+) AND ORG.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN EMAIL.DATE_FROM(+) AND NVL(EMAIL.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND TRUNC(SYSDATE) BETWEEN ADDRE.EFFECTIVE_START_DATE(+) AND ADDRE.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN LEG.EFFECTIVE_START_DATE(+) AND LEG.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN JOB.EFFECTIVE_START_DATE(+) AND JOB.EFFECTIVE_END_DATE(+)
AND TRUNC(SYSDATE) BETWEEN HL.EFFECTIVE_START_DATE(+) AND HL.EFFECTIVE_END_DATE(+)
--AND PPF.PERSON_NUMBER = '502232'
ORDER BY PPF.PERSON_NUMBER
***********************************************************************************************************************************************
Email Notification
SELECT
PER.PERSON_NUMBER,
NAME.FIRST_NAME,
NAME.LAST_NAME,
TO_CHAR(POS.ORIGINAL_DATE_OF_HIRE,'YYYYMMDD') AS HIRE_DATE,
EMAIL.EMAIL_ADDRESS,
(SELECT CI.VALUE
FROM HCM_LOOKUPS LK,
FF_USER_COLUMN_INSTANCES_F CI,
FF_USER_ROWS_VL R,
FF_USER_COLUMNS_VL C,
FF_USER_TABLES_VL T
WHERE 1=1 AND R.USER_TABLE_ID = T.USER_TABLE_ID
AND C.USER_TABLE_ID = T.USER_TABLE_ID
AND CI.USER_ROW_ID = R.USER_ROW_ID
AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
AND R.ROW_NAME(+)= LK.LOOKUP_CODE
AND T.USER_TABLE_NAME(+) = 'BB_TRAVEL_CLASS'
AND LK.LOOKUP_TYPE(+)='BB_3CHAR_COUNTRY'
AND LK.MEANING(+)=HL.COUNTRY
AND USER_COLUMN_NAME= 'LongName'
AND SYSDATE BETWEEN R.EFFECTIVE_START_DATE(+) AND R.EFFECTIVE_END_DATE(+)
AND SYSDATE BETWEEN CI.EFFECTIVE_START_DATE(+) AND CI.EFFECTIVE_END_DATE(+)
AND SYSDATE BETWEEN LK.START_DATE_ACTIVE AND NVL(LK.END_DATE_ACTIVE, TO_DATE('4712.01.01', 'YYYY.MM.DD'))) AS VALUE
FROM
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_EMAIL_ADDRESSES EMAIL,
PER_ALL_ASSIGNMENTS_F ASS,
PER_PERIODS_OF_SERVICE POS,
HR_LOCATIONS HL
WHERE
PER.PERSON_ID=ASS.PERSON_ID
AND ASS.LOCATION_ID = HL.LOCATION_ID(+)
AND POS.PERSON_ID(+)=ASS.PERSON_ID
AND POS.PERIOD_OF_SERVICE_ID(+)=ASS.PERIOD_OF_SERVICE_ID
AND EMAIL.PERSON_ID(+)=PER.PERSON_ID
AND NAME.PERSON_ID=PER.PERSON_ID
AND ASS.ASSIGNMENT_TYPE IN ('E','C')
AND EMAIL.EMAIL_TYPE(+)='W1'
AND NAME.NAME_TYPE='GLOBAL'
AND ((ASS.ASSIGNMENT_STATUS_TYPE='ACTIVE') OR (POS.ACTUAL_TERMINATION_DATE BETWEEN SYSDATE-1 AND SYSDATE))
AND ((EMAIL.EMAIL_ADDRESS IS NULL) OR (HL.COUNTRY NOT IN ('AU','JP','KR','NZ','SG','CA','AE','AT','CH','CZ','DE','ES','FI','IE','IT','NL','SE','GB','BR','US')))
AND TRUNC(SYSDATE) BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN HL.EFFECTIVE_START_DATE(+) AND HL.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 EMAIL.DATE_FROM(+) AND NVL(EMAIL.DATE_TO, TO_DATE('4712.01.01', 'YYYY.MM.DD'))
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT DISTINCT MAX(ASSIGNMENT_SEQUENCE) FROM PER_ALL_ASSIGNMENTS_F WHERE PERSON_ID=ASS.PERSON_ID AND ASSIGNMENT_TYPE IN ('E','C') AND TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE)
ORDER BY PER.PERSON_NUMBER
***********************************************************************************************************************************************
Bswift
SELECT
'1' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
'' AS LAST_NAME_EFFECTIVE_DATE,
'' AS NICKNAME,
'' AS SOCIAL_SECURITY_NUMBER,
'' AS DATE_OF_BIRTH,
'' AS GENDER,
'' AS Race_Ethnicity,
--BEN.DISABILITY_STATUS AS DISABLED,
--BEN.TOBACCO_TYPE_USAGE AS TOBACCO_USER,
'' AS BENEFIT_CLASS_CODE,
'' AS BENEFIT_CLASS_DATE,
'' AS COMPENSATION_DATE,
null AS SALARY,
null AS HOURLY_RATE,
null AS HOURS_PER_WEEK,
null AS BENEFITS_BASE_SALARY,
'' AS BONUS,
'' AS COMMISSION,
'' AS HIRE_DATE,
'' AS REHIRE_DATE,
'' AS Demographic_Field_1,
'' AS DEPT_CODE,
'' AS DEPARTMENT_EFF_DATE,
'' AS LOCATION_CODE,
'' AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
'' AS JOB_TITLE,
'' AS JOB_TITLE_EFF_DATE,
'' AS REGION_CODE,
'' as REGION_eff_date,
'' AS BU_CODE,
'' as BU_EFF_DATE,
'' AS SUPERVISOR_CODE,
'3' AS PAY_FREQUENCY,
'' AS TIME_STATUS,
'' AS OVERTIME_STATUS,
'' AS HCE,
'' AS WORK_PHONE,
'' AS WORK_PHONE_EXTENSION,
'' AS WORK_FAX,
'' AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
'' AS ADD_EFF_DATE,
'' AS HOME_ADDRESS1,
'' AS HOME_ADDRESS2,
'' AS CITY,
'' AS STATE_,
'' AS ZIP,
'' AS COUNTY,
'' AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
'' AS HOME_EMAIL,
'' AS USERNAME,
'' as LOGIN_ACCESS,
'' AS LOA_START_DATE,
'' AS LOA_END_DATE,
'' AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
'T' AS EMPLOYMENT_STATUS,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('TRANSFER','GLB_TRANSFER') THEN ASS.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'' AS AUTO_ENROLL
FROM
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
-- HCM_LOOKUPS LUKUP,
PER_PERIODS_OF_SERVICE PPS
WHERE
PER.PERSON_ID=ASS.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
-- AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
-- AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
---AND ASS.ASSIGNMENT_STATUS_TYPE = 'INACTIVE'
AND ASS.PERSON_ID = (SELECT PAA_NEW.PERSON_ID
FROM PER_ALL_ASSIGNMENTS_M PAA_NEW,
PER_ALL_ASSIGNMENTS_M PAA_OLD
WHERE PAA_NEW.PERSON_ID = PER.PERSON_ID
AND PAA_NEW.PERSON_ID = PAA_OLD.PERSON_ID
AND PAA_NEW.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.LEGISLATION_CODE = 'US'
AND PAA_NEW.LEGISLATION_CODE <> 'US'
AND SUBSTR(PAA_NEW.EFFECTIVE_END_DATE,1,10) = '4712-12-31'
AND SUBSTR(PAA_OLD.EFFECTIVE_END_DATE,1,10) = SUBSTR(PAA_NEW.EFFECTIVE_START_DATE-1,1,10)
AND PAA_NEW.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = PAA_NEW.PERSON_ID
AND ASSIGNMENT_TYPE = 'E'
AND :Asofdate BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND PAA_OLD.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE-1)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = PAA_OLD.PERSON_ID
AND ASSIGNMENT_TYPE = 'E'
AND :Asofdate BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND PAA_NEW.EFFECTIVE_LATEST_CHANGE = 'Y'
AND PAA_OLD.EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND ASSIGNMENT_TYPE = 'E'
AND :Asofdate BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.EFFECTIVE_START_DATE = :Asofdate
AND :Asofdate BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
UNION
SELECT
'2' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
'' AS LAST_NAME_EFFECTIVE_DATE,
'' AS NICKNAME,
'' AS SOCIAL_SECURITY_NUMBER,
'' AS DATE_OF_BIRTH,
'' AS GENDER,
'' AS Race_Ethnicity,
--BEN.DISABILITY_STATUS AS DISABLED,
--BEN.TOBACCO_TYPE_USAGE AS TOBACCO_USER,
'' AS BENEFIT_CLASS_CODE,
'' AS BENEFIT_CLASS_DATE,
'' AS COMPENSATION_DATE,
null AS SALARY,
null AS HOURLY_RATE,
null AS HOURS_PER_WEEK,
null AS BENEFITS_BASE_SALARY,
'' AS BONUS,
'' AS COMMISSION,
'' AS HIRE_DATE,
'' AS REHIRE_DATE,
'' AS Demographic_Field_1,
'' AS DEPT_CODE,
'' AS DEPARTMENT_EFF_DATE,
'' AS LOCATION_CODE,
'' AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
'' AS JOB_TITLE,
'' AS JOB_TITLE_EFF_DATE,
'' AS REGION_CODE,
'' AS REGION_eff_date,
'' AS BU_CODE,
'' as BU_EFF_DATE,
'' AS SUPERVISOR_CODE,
'3' AS PAY_FREQUENCY,
'' AS TIME_STATUS,
'' AS OVERTIME_STATUS,
'' AS HCE,
'' AS WORK_PHONE,
'' AS WORK_PHONE_EXTENSION,
'' AS WORK_FAX,
'' AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
'' AS ADD_EFF_DATE,
'' AS HOME_ADDRESS1,
'' AS HOME_ADDRESS2,
'' AS CITY,
'' AS STATE_,
'' AS ZIP,
'' AS COUNTY,
'' AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
'' AS HOME_EMAIL,
'' AS USERNAME,
'' as LOGIN_ACCESS,
'' AS LOA_START_DATE,
'' AS LOA_END_DATE,
'' AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
CASE WHEN PPS.ACTUAL_TERMINATION_DATE is not null then 'T' else '' end AS EMPLOYMENT_STATUS,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN AR.ACTION_REASON_CODE IN ('CONTRACT_EXPIRED','BB_DISSAT_W_TYPE_OF_WORK','DISSATISFIED_W/WORK_CONDITIONS','DISSATISFIED_WITH_LOCATION', 'DISSATISFIED_WITH_PAY','DISSATISFIED_WITH_SUPERVISION','END_TEMPORARY_EMPLOYMENT','HEALTH_REASONS','JOB_ABANDONMENT', 'LACK_CAREER_DEV/PROMO_OPPS','NEVER_STARTED_EMPLOYMENT','PARTIAL/TOTAL_DISABILITY','PERSONAL/FAMILY_REASONS', 'QUIT_WITHOUT_NOTICE','RESIGNATION','RETIRE','RETIREMENT','RETIRE_EARLY_VOLUNTARY','RETIRE_EARLY_INVOLUNTARY','RETURN_TO_SCHOOL','BB_REASON_TBD') THEN '1'
WHEN AR.ACTION_REASON_CODE = 'DEATH' THEN '4'
WHEN AR.ACTION_REASON_CODE IN ('ATTENDENCE','POSITION_ELIMINATION','POSITION_ELIMINATION_SIN','MISCONDUCT','MUTUAL_CONSENT','RELEASE_DURING_PROBATION','UNSATISFACTORY_PERFORMANCE','FAILURE_TO_COMPLY_WITH_POLICY') THEN '12'
ELSE '1' END AS TERMINATION_REASON,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'' AS AUTO_ENROLL
FROM
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
-- HCM_LOOKUPS LUKUP,
PER_PERIODS_OF_SERVICE PPS,
PER_ACTION_OCCURRENCES AOCC,
PER_ACTION_REASONS_B AR
WHERE
PER.PERSON_ID=ASS.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
-- AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND AOCC.ACTION_OCCURRENCE_ID(+)=ASS.ACTION_OCCURRENCE_ID
AND AOCC.ACTION_REASON_ID=AR.ACTION_REASON_ID(+)
-- AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.ASSIGNMENT_STATUS_TYPE = 'INACTIVE'
AND ASS.LEGISLATION_CODE = 'US'
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND ASSIGNMENT_TYPE = 'E'
AND :Asofdate BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND (PPS.ACTUAL_TERMINATION_DATE = :Asofdate OR (TRUNC(PPS.LAST_UPDATE_DATE)= :Asofdate AND PPS.ACTUAL_TERMINATION_DATE <= :Asofdate AND PPS.DATE_START < PPS.ACTUAL_TERMINATION_DATE))
AND ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION','RESIGNATION')
AND :Asofdate BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND :Asofdate BETWEEN AR.START_DATE(+) AND AR.END_DATE(+)
union
SELECT
'3' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
'' AS LAST_NAME_EFFECTIVE_DATE,
'' AS NICKNAME,
'' AS SOCIAL_SECURITY_NUMBER,
'' AS DATE_OF_BIRTH,
'' AS GENDER,
'' AS Race_Ethnicity,
--BEN.DISABILITY_STATUS AS DISABLED,
--BEN.TOBACCO_TYPE_USAGE AS TOBACCO_USER,
'' AS BENEFIT_CLASS_CODE,
'' AS BENEFIT_CLASS_DATE,
'' AS COMPENSATION_DATE,
null AS SALARY,
null AS HOURLY_RATE,
null AS HOURS_PER_WEEK,
null AS BENEFITS_BASE_SALARY,
'' AS BONUS,
'' AS COMMISSION,
'' AS HIRE_DATE,
'' AS REHIRE_DATE,
'' AS Demographic_Field_1,
'' AS DEPT_CODE,
'' AS DEPARTMENT_EFF_DATE,
'' AS LOCATION_CODE,
'' AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
'' AS JOB_TITLE,
'' AS JOB_TITLE_EFF_DATE,
'' AS REGION_CODE,
'' as REGION_eff_date,
'' AS BU_CODE,
'' as BU_EFF_DATE,
'' AS SUPERVISOR_CODE,
'3' AS PAY_FREQUENCY,
'' AS TIME_STATUS,
'' AS OVERTIME_STATUS,
'' AS HCE,
'' AS WORK_PHONE,
'' AS WORK_PHONE_EXTENSION,
'' AS WORK_FAX,
'' AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
'' AS ADD_EFF_DATE,
'' AS HOME_ADDRESS1,
'' AS HOME_ADDRESS2,
'' AS CITY,
'' AS STATE_,
'' AS ZIP,
'' AS COUNTY,
'' AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
'' AS HOME_EMAIL,
'' AS USERNAME,
'' as LOGIN_ACCESS,
'' AS LOA_START_DATE,
'' AS LOA_END_DATE,
'' AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
'T' AS EMPLOYMENT_STATUS,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('BENEFIT_UPDATE') THEN ASS.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'' AS AUTO_ENROLL
FROM
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
-- HCM_LOOKUPS LUKUP,
PER_PERIODS_OF_SERVICE PPS
WHERE
PER.PERSON_ID=ASS.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
-- AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
-- AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
---AND ASS.ASSIGNMENT_STATUS_TYPE = 'INACTIVE'
AND ASS.PERSON_ID = (SELECT PAA_NEW.PERSON_ID
FROM PER_ALL_ASSIGNMENTS_M PAA_NEW,
PER_ALL_ASSIGNMENTS_M PAA_OLD
WHERE PAA_NEW.PERSON_ID = PER.PERSON_ID
AND PAA_NEW.PERSON_ID = PAA_OLD.PERSON_ID
AND PAA_NEW.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.LEGISLATION_CODE = 'US'
AND PAA_NEW.LEGISLATION_CODE = 'US'
AND PAA_OLD.ASS_ATTRIBUTE3 IN ('BB1', 'BB7', 'BSS', 'EXP' , 'NBE' )
AND PAA_NEW.ASS_ATTRIBUTE3 NOT IN ('BB1', 'BB7', 'BSS', 'EXP' , 'NBE' )
-- AND SUBSTR(PAA_NEW.EFFECTIVE_END_DATE,1,10) = '4712-12-31'
AND :Asofdate BETWEEN PAA_NEW.EFFECTIVE_START_DATE AND PAA_NEW.EFFECTIVE_END_DATE
AND SUBSTR(PAA_OLD.EFFECTIVE_END_DATE,1,10) = SUBSTR(PAA_NEW.EFFECTIVE_START_DATE-1,1,10)
AND PAA_NEW.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = PAA_NEW.PERSON_ID
AND ASSIGNMENT_TYPE = 'E'
AND :Asofdate BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND PAA_NEW.ASSIGNMENT_SEQUENCE = PAA_OLD.ASSIGNMENT_SEQUENCE
AND PAA_NEW.EFFECTIVE_LATEST_CHANGE = 'Y'
AND PAA_OLD.EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.ASSIGNMENT_SEQUENCE = (SELECT MAX(ASSIGNMENT_SEQUENCE)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND ASSIGNMENT_TYPE = 'E'
AND :Asofdate BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE
AND EFFECTIVE_LATEST_CHANGE = 'Y')
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.EFFECTIVE_START_DATE = :Asofdate
AND :Asofdate BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
UNION
SELECT
'4' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
TO_CHAR(NAME.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS LAST_NAME_EFFECTIVE_DATE,
NAME.KNOWN_AS AS NICKNAME,
NID.NATIONAL_IDENTIFIER_NUMBER AS SOCIAL_SECURITY_NUMBER,
TO_CHAR(PP.DATE_OF_BIRTH,'MM/DD/YYYY') AS DATE_OF_BIRTH,
CASE WHEN PPL.SEX IS NOT NULL THEN PPL.SEX
WHEN PPL.SEX IS NULL THEN 'U' END AS GENDER,
case when ETHN.ETHNICITY = 'BB_7' then '1'
when ETHN.ETHNICITY = 'BB_4' then '2'
when ETHN.ETHNICITY = 'BB_6' then '3'
when ETHN.ETHNICITY = 'BB_3' then '4'
when ETHN.ETHNICITY = 'BB_1' then '5'
when ETHN.ETHNICITY = 'BB_5' then '6'
when ETHN.ETHNICITY = 'BB_NSPEC' then '7'
ELSE ''
end AS Race_Ethnicity,
ASS.ASS_ATTRIBUTE3 AS BENEFIT_CLASS_CODE,
TO_CHAR(GREATEST(NVL((SELECT MAX(PAA_OLD.EFFECTIVE_END_DATE+1)
FROM PER_ALL_ASSIGNMENTS_M PAA_OLD,
PER_ALL_ASSIGNMENTS_M PAA_NEW
WHERE :Asofdate BETWEEN PAA_NEW.EFFECTIVE_START_DATE AND PAA_NEW.EFFECTIVE_END_DATE
AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = PAA_OLD.ASSIGNMENT_STATUS_TYPE
AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = 'ACTIVE'
AND PAA_NEW.PERSON_ID = PAA_OLD.PERSON_ID
AND PAA_NEW.PERSON_ID = ASS.PERSON_ID
AND PAA_NEW.ASS_ATTRIBUTE3 <> PAA_OLD.ASS_ATTRIBUTE3
----------AND PAA_OLD.LEGISLATION_CODE = 'US'
AND PAA_NEW.LEGISLATION_CODE = 'US'
AND PAA_NEW.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.ASSIGNMENT_TYPE = 'E'
AND PAA_NEW.ASSIGNMENT_TYPE = PAA_OLD.ASSIGNMENT_TYPE),to_date('01-01-1900','dd-mm-yyyy')),(SELECT MAX(effective_START_date)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') as BENEFIT_CLASS_DATE,
TO_CHAR(GREATEST((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE')),(SELECT max(DATE_FROM) FROM CMP_SALARY WHERE ASS.ASSIGNMENT_ID=ASSIGNMENT_ID AND :Asofdate BETWEEN DATE_FROM AND DATE_TO)),'MM/DD/YYYY') AS COMPENSATION_DATE,
-- TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS COMPENSATION_DATE,
ROUND((SELECT
SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='S'
AND :Asofdate BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS SALARY,
ROUND((SELECT
(SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)/2080
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='H'
AND :Asofdate BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS HOURLY_RATE,
ROUND(ASS.NORMAL_HOURS,2) AS HOURS_PER_WEEK,
ROUND(ASS.ASS_ATTRIBUTE_NUMBER1,2) AS BENEFITS_BASE_SALARY,
(SELECT
PE.SCREEN_ENTRY_VALUE
FROM
PAY_ELEMENT_ENTRIES_F EE,
PAY_ELEMENT_ENTRY_VALUES_F PE,
pay_input_values_f IV
WHERE
PER.PERSON_ID=EE.PERSON_ID
and EE.ELEMENT_ENTRY_ID=PE.ELEMENT_ENTRY_ID
AND PE.INPUT_VALUE_ID=IV.INPUT_VALUE_ID
AND (IV.BASE_NAME(+) ='ANNUAL_BONUS')
AND :Asofdate BETWEEN PE.EFFECTIVE_START_DATE AND PE.EFFECTIVE_END_DATE
AND :Asofdate BETWEEN IV.EFFECTIVE_START_DATE AND IV.EFFECTIVE_END_DATE) AS BONUS,
'' AS COMMISSION,
TO_CHAR((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE') ),'MM/DD/YYYY') AS HIRE_DATE,
to_char((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND (reason_CODE IN ('REHIRE','REHIRE_WKR') or (ACTION_CODE in ('REHIRE')))),'MM/DD/YYYY') AS REHIRE_DATE,
'' AS Demographic_Field_1,
CASE WHEN INSTR(HRC.NAME,'__',1) != 0 THEN SUBSTR(HRC.NAME, NVL(INSTR(HRC.NAME,'__',1),0)+2)
WHEN INSTR(HRC.NAME,'__',1) = 0 THEN NULL END AS DEPT_CODE,
/*TO_CHAR(GREATEST((PPS.ORIGINAL_DATE_OF_HIRE),(SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE')),'MM/DD/YYYY') AS DEPARTMENT_EFF_DATE,
LOC.internal_LOCATION_CODE AS LOCATION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(PPS.DATE_start)),'MM/DD/YYYY') AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
ASS.ASS_ATTRIBUTE4 AS JOB_TITLE,
TO_CHAR(GREATEST((PPS.ORIGINAL_DATE_OF_HIRE),(SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'JOB_DTL_CHG')),'MM/DD/YYYY') AS JOB_TITLE_EFF_DATE,
LOC.internal_LOCATION_CODE AS REGION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(PPS.ORIGINAL_DATE_OF_HIRE)),'MM/DD/YYYY') AS REGION_eff_date,*/
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS DEPARTMENT_EFF_DATE,
LOC.internal_LOCATION_CODE AS LOCATION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
ASS.ASS_ATTRIBUTE4 AS JOB_TITLE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'JOB_DTL_CHG'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS JOB_TITLE_EFF_DATE,
LOC.internal_LOCATION_CODE AS REGION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS REGION_eff_date,
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND :Asofdate BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS BU_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') as BU_EFF_DATE,
-- CASE WHEN ASS.MANAGER_FLAG='Y' THEN '1'
-- WHEN ASS.MANAGER_FLAG='N' THEN '0'
-- ELSE ''
-- END AS SUPERVISOR_CODE,
'' AS SUPERVISOR_CODE,
'3' AS PAY_FREQUENCY,
-- LUKUP1.MEANING AS TIME_STATUS,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '1'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '5'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '6'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '2'
ELSE '' END AS TIME_STATUS,
CASE WHEN JOBF.INFORMATION1='NONEXEMPT' THEN '0'
WHEN JOBF.INFORMATION1 = 'EXEMPT' THEN '1'
ELSE ''
END AS OVERTIME_STATUS,
'' AS HCE,
(SELECT case when INSTR(PH.PHONE_NUMBER,'x') = 0 then REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') else REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTR(PH.PHONE_NUMBER,1,nvl((INSTR(PH.PHONE_NUMBER,'x',1,1)-2),15)),'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') end FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO ) AS WORK_PHONE,
(SELECT PH.EXTENSION FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS WORK_PHONE_EXTENSION,
(SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')','') FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='WF' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS WORK_FAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1' and rownum=1) AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
TO_CHAR(GREATEST((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE')),(SELECT max(AD1.EFFECTIVE_START_DATE) FROM PER_PERSON_ADDR_USAGES_F AD,PER_ADDRESSES_F AD1 WHERE ASS.PERSON_ID =AD.PERSON_ID AND AD.ADDRESS_ID(+)=AD1.ADDRESS_ID AND AD.ADDRESS_TYPE(+) = 'HOME' AND :Asofdate BETWEEN AD1.effective_START_date AND ad1.effective_end_date)),'MM/DD/YYYY') AS ADD_EFF_DATE,
ADDR.ADDRESS_LINE_1 AS HOME_ADDRESS1,
ADDR.ADDRESS_LINE_2 AS HOME_ADDRESS2,
ADDR.TOWN_OR_CITY AS CITY,
ADDR.REGION_2 AS STATE_,
SUBSTR(ADDR.POSTAL_CODE,1,5) AS ZIP,
ADDR.REGION_3 AS COUNTY,
(SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='H1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE in (SELECT (CASE WHEN E.EMAIL_TYPE='H1' THEN 'H1'
WHEN E.EMAIL_TYPE NOT IN 'H1' AND E.EMAIL_TYPE='BB_OTHR' THEN'BB_OTHR' END)
FROM PER_EMAIL_ADDRESSES E
WHERE E.PERSON_ID=PER.PERSON_ID)
and rownum=1) AS HOME_EMAIL,
-- (SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID and EMAIL_TYPE in ('H1','BB_OTHR') and rownum=1) AS HOME_EMAIL,
--PU.USERNAME AS USERNAME,
'' AS USERNAME,
'' as LOGIN_ACCESS,
-- Modified condition for any other updates other than LOA
CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END AS LOA_START_DATE,
CASE
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- change to trunc(last_update_date)
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- added condition assgn effective date > max loa date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < ASS.EFFECTIVE_START_DATE THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- WHEN ( MAX_LOA.MAX_LOA_DATE is not null and PPS.ACTUAL_TERMINATION_DATE = :Asofdate) THEN TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY')
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
ELSE NULL
END AS LOA_END_DATE,
-- Modified condition for any other updates other than LOA
CASE WHEN (CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END ) IS NOT NULL THEN (select SUBSTR(ACT_REASON.ACTION_REASON_CODE,1,instr(ACT_REASON.ACTION_REASON_CODE,'_')-1) from PER_ACTION_REASONS_B ACT_REASON, PER_ACTION_OCCURRENCES ACT_OCC, PER_ALL_ASSIGNMENTS_M PAA where ACT_OCC.ACTION_REASON_ID=ACT_REASON.ACTION_REASON_ID AND PAA.ACTION_OCCURRENCE_ID = ACT_OCC.ACTION_OCCURRENCE_ID AND PAA.PERSON_ID = PER.PERSON_ID AND PAA.ASSIGNMENT_TYPE IN ('E','C') AND PAA.ACTION_CODE='LEAVE_OF_ABSENCE' AND TO_CHAR(PAA.EFFECTIVE_START_DATE,'MM/DD/YYYY') = (CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END) ) END AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
CASE WHEN ASS.ACTION_CODE='VOLUNTARY_TERMINATION' AND ASS.REASON_CODE='RETIRE' THEN 'R'
WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') AND ASS.REASON_CODE NOT IN ('RETIRE') THEN 'T'
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN 'A'
ELSE '' END AS EMPLOYMENT_STATUS,
-- greatest((select TO_CHAR(min(ORIGINAL_DATE_OF_HIRE),'MM/DD/YYYY') FROM per_periods_of_service where person_id=per.person_id), (SELECT TO_CHAR(MAX(effective_START_date),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ((reason_CODE IN ('REHIRE','REHIRE_WKR')) or (ACTION_CODE in ('REHIRE'))))) AS EMPLOYMENT_EFF_DT,
TO_CHAR(PPS.DATE_start,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') THEN ASS.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'1' AS AUTO_ENROLL
FROM
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_ETHNICITIES ETHN,
PER_NATIONAL_IDENTIFIERS NID,
PER_PERSONS PP,
PER_PERIODS_OF_SERVICE PPS,
HR_LOCATIONS LOC,
-- HCM_LOOKUPS LUKUP,
-- HCM_LOOKUPS LUKUP1,
PER_JOB_LEG_F JOBF,
PER_PERSON_ADDR_USAGES_F ADDRE,
PER_ADDRESSES_F ADDR,
PER_USERS PU,
HR_ALL_ORGANIZATION_UNITS_F_VL HRC,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_LOA_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'LEAVE_OF_ABSENCE' AND EFFECTIVE_START_DATE < :Asofdate GROUP BY PERSON_ID) MAX_LOA,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_RFL_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'RETURN_FROM_LEAVE' AND EFFECTIVE_START_DATE < :Asofdate GROUP BY PERSON_ID) MAX_RFL
WHERE
PER.PERSON_ID=MAX_LOA.PERSON_ID(+)
AND per.person_id=ASS.PERSON_ID
AND PER.PERSON_ID=MAX_RFL.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND ASS.PERSON_ID = ETHN.PERSON_ID(+)
AND ASS.PERSON_ID = PPL.PERSON_ID(+)
AND PPL.LEGISLATION_CODE(+)='US'
AND ASS.PERSON_ID = NID.PERSON_ID(+)
AND NATIONAL_IDENTIFIER_TYPE(+) = 'SSN'
AND ASS.PERSON_ID = PP.PERSON_ID(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=HRC.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
-- AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
-- AND ASS.EMPLOYMENT_CATEGORY=LUKUP1.LOOKUP_CODE(+)
AND ASS.JOB_ID=JOBF.JOB_ID(+)
-- AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
-- AND LUKUP1.LOOKUP_TYPE(+) = 'EMP_CAT'
AND JOBF.INFORMATION_CATEGORY(+)='HRX_US_JOBS'
AND ADDRE.PERSON_ID(+)=ASS.PERSON_ID
AND ADDR.ADDRESS_ID(+)=ADDRE.ADDRESS_ID
AND ASS.PERSON_ID=PU.PERSON_ID(+)
AND ASS.ASS_ATTRIBUTE3 IN ('BB1', 'BB7', 'BSS', 'EXP' , 'NBE' )
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.LEGISLATION_CODE='US'
AND ADDRE.ADDRESS_TYPE(+)='HOME'
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND ADDR.EFFECTIVE_START_DATE IN (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ADDRESSES_F A, PER_PERSON_ADDR_USAGES_F B WHERE A.ADDRESS_ID(+)=B.ADDRESS_ID AND B.PERSON_ID(+)=ASS.PERSON_ID AND B.ADDRESS_TYPE(+)='HOME' AND :Asofdate BETWEEN A.EFFECTIVE_START_DATE(+) AND A.EFFECTIVE_END_DATE(+) AND :Asofdate BETWEEN B.EFFECTIVE_START_DATE(+) AND B.EFFECTIVE_END_DATE(+))
AND :Asofdate BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND :Asofdate BETWEEN PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN HRC.EFFECTIVE_START_DATE(+) AND HRC.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN JOBF.EFFECTIVE_START_DATE(+) AND JOBF.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ADDRE.EFFECTIVE_START_DATE(+) AND ADDRE.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PU.START_DATE(+) AND PU.END_DATE(+)
AND PER.PERSON_NUMBER NOT IN (SELECT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
FF_USER_ROWS_VL R,
FF_USER_COLUMNS_VL C,
FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID = R.USER_ROW_ID
AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
AND C.USER_TABLE_ID = T.USER_TABLE_ID
AND R.USER_TABLE_ID = T.USER_TABLE_ID
AND :Asofdate BETWEEN R.EFFECTIVE_START_DATE AND R.EFFECTIVE_END_DATE
AND T.USER_TABLE_NAME = 'BB_BSWIFT_INTF_BACK_DATED_LOA'
AND TRUNC(CI.CREATION_DATE) = :Asofdate
)
UNION
SELECT
'5' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
TO_CHAR(NAME.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS LAST_NAME_EFFECTIVE_DATE,
NAME.KNOWN_AS AS NICKNAME,
NID.NATIONAL_IDENTIFIER_NUMBER AS SOCIAL_SECURITY_NUMBER,
TO_CHAR(PP.DATE_OF_BIRTH,'MM/DD/YYYY') AS DATE_OF_BIRTH,
CASE WHEN PPL.SEX IS NOT NULL THEN PPL.SEX
WHEN PPL.SEX IS NULL THEN 'U' END AS GENDER,
case when ETHN.ETHNICITY = 'BB_7' then '1'
when ETHN.ETHNICITY = 'BB_4' then '2'
when ETHN.ETHNICITY = 'BB_6' then '3'
when ETHN.ETHNICITY = 'BB_3' then '4'
when ETHN.ETHNICITY = 'BB_1' then '5'
when ETHN.ETHNICITY = 'BB_5' then '6'
when ETHN.ETHNICITY = 'BB_NSPEC' then '7'
ELSE ''
end AS Race_Ethnicity,
ASS.ASS_ATTRIBUTE3 AS BENEFIT_CLASS_CODE,
TO_CHAR(GREATEST(NVL((SELECT MAX(PAA_OLD.EFFECTIVE_END_DATE+1)
FROM PER_ALL_ASSIGNMENTS_M PAA_OLD,
PER_ALL_ASSIGNMENTS_M PAA_NEW
WHERE :Asofdate BETWEEN PAA_NEW.EFFECTIVE_START_DATE AND PAA_NEW.EFFECTIVE_END_DATE
AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = PAA_OLD.ASSIGNMENT_STATUS_TYPE
AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = 'ACTIVE'
AND PAA_NEW.PERSON_ID = PAA_OLD.PERSON_ID
AND PAA_NEW.PERSON_ID = ASS.PERSON_ID
AND PAA_NEW.ASS_ATTRIBUTE3 <> PAA_OLD.ASS_ATTRIBUTE3
------AND PAA_OLD.LEGISLATION_CODE = 'US'
AND PAA_NEW.LEGISLATION_CODE = 'US'
AND PAA_NEW.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.ASSIGNMENT_TYPE = 'E'
AND PAA_NEW.ASSIGNMENT_TYPE = PAA_OLD.ASSIGNMENT_TYPE),to_date('01-01-1900','dd-mm-yyyy')),(SELECT MAX(effective_START_date)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') as BENEFIT_CLASS_DATE,
TO_CHAR(GREATEST((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE')),(SELECT max(DATE_FROM) FROM CMP_SALARY WHERE ASS.ASSIGNMENT_ID=ASSIGNMENT_ID AND :Asofdate BETWEEN DATE_FROM AND DATE_TO)),'MM/DD/YYYY') AS COMPENSATION_DATE,
-- TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS COMPENSATION_DATE,
ROUND((SELECT
SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='S'
AND :Asofdate BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS SALARY,
ROUND((SELECT
(SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)/2080
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='H'
AND :Asofdate BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS HOURLY_RATE,
ROUND(ASS.NORMAL_HOURS,2) AS HOURS_PER_WEEK,
ROUND(ASS.ASS_ATTRIBUTE_NUMBER1,2) AS BENEFITS_BASE_SALARY,
(SELECT
PE.SCREEN_ENTRY_VALUE
FROM
PAY_ELEMENT_ENTRIES_F EE,
PAY_ELEMENT_ENTRY_VALUES_F PE,
pay_input_values_f IV
WHERE
PER.PERSON_ID=EE.PERSON_ID
and EE.ELEMENT_ENTRY_ID=PE.ELEMENT_ENTRY_ID
AND PE.INPUT_VALUE_ID=IV.INPUT_VALUE_ID
AND (IV.BASE_NAME(+) ='ANNUAL_BONUS')
AND :Asofdate BETWEEN PE.EFFECTIVE_START_DATE AND PE.EFFECTIVE_END_DATE
AND :Asofdate BETWEEN IV.EFFECTIVE_START_DATE AND IV.EFFECTIVE_END_DATE) AS BONUS,
'' AS COMMISSION,
TO_CHAR((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE') ),'MM/DD/YYYY') AS HIRE_DATE,
TO_CHAR((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND (reason_CODE IN ('REHIRE','REHIRE_WKR') or (ACTION_CODE in ('REHIRE')))),'MM/DD/YYYY') AS REHIRE_DATE,
'' AS Demographic_Field_1,
CASE WHEN INSTR(HRC.NAME,'__',1) != 0 THEN SUBSTR(HRC.NAME, NVL(INSTR(HRC.NAME,'__',1),0)+2)
WHEN INSTR(HRC.NAME,'__',1) = 0 THEN NULL END AS DEPT_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS DEPARTMENT_EFF_DATE,
LOC.internal_LOCATION_CODE AS LOCATION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
ASS.ASS_ATTRIBUTE4 AS JOB_TITLE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'JOB_DTL_CHG'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS JOB_TITLE_EFF_DATE,
LOC.internal_LOCATION_CODE AS REGION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS REGION_eff_date,
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND :Asofdate BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS BU_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') as BU_EFF_DATE,
-- CASE WHEN ASS.MANAGER_FLAG='Y' THEN '1'
-- WHEN ASS.MANAGER_FLAG='N' THEN '0'
-- ELSE ''
-- END AS SUPERVISOR_CODE,
'' AS SUPERVISOR_CODE,
'3' AS PAY_FREQUENCY,
-- LUKUP1.MEANING AS TIME_STATUS,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '1'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '5'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '6'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '2'
ELSE '' END AS TIME_STATUS,
CASE WHEN JOBF.INFORMATION1='NONEXEMPT' THEN '0'
WHEN JOBF.INFORMATION1 = 'EXEMPT' THEN '1'
ELSE ''
END AS OVERTIME_STATUS,
'' AS HCE,
(SELECT case when INSTR(PH.PHONE_NUMBER,'x') = 0 then REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') else REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTR(PH.PHONE_NUMBER,1,nvl((INSTR(PH.PHONE_NUMBER,'x',1,1)-2),15)),'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') end FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO ) AS WORK_PHONE,
(SELECT PH.EXTENSION FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS WORK_PHONE_EXTENSION,
(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='WF' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS WORK_FAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1' and rownum=1) AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
TO_CHAR(GREATEST((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE')),(SELECT max(AD1.EFFECTIVE_START_DATE) FROM PER_PERSON_ADDR_USAGES_F AD,PER_ADDRESSES_F AD1 WHERE ASS.PERSON_ID =AD.PERSON_ID AND AD.ADDRESS_ID(+)=AD1.ADDRESS_ID AND AD.ADDRESS_TYPE(+) = 'HOME' AND :Asofdate BETWEEN AD1.effective_START_date AND ad1.effective_end_date)),'MM/DD/YYYY') AS ADD_EFF_DATE,
ADDR.ADDRESS_LINE_1 AS HOME_ADDRESS1,
ADDR.ADDRESS_LINE_2 AS HOME_ADDRESS2,
ADDR.TOWN_OR_CITY AS CITY,
ADDR.REGION_2 AS STATE_,
SUBSTR(ADDR.POSTAL_CODE,1,5) AS ZIP,
ADDR.REGION_3 AS COUNTY,
(SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='H1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE in (SELECT (CASE WHEN E.EMAIL_TYPE='H1' THEN 'H1'
WHEN E.EMAIL_TYPE NOT IN 'H1' AND E.EMAIL_TYPE='BB_OTHR' THEN'BB_OTHR' END) FROM PER_EMAIL_ADDRESSES E WHERE E.PERSON_ID=PER.PERSON_ID) and rownum=1) AS HOME_EMAIL,
-- CASE WHEN (SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE in ('H1','BB_OTHR') and rownum=1) AS HOME_EMAIL,
--PU.USERNAME AS USERNAME,
'' AS USERNAME,
'' as LOGIN_ACCESS,
-- Modified condition for any other updates other than LOA
CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END AS LOA_START_DATE,
CASE
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- change to trunc(last_update_date)
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- added condition assgn effective date > max loa date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < ASS.EFFECTIVE_START_DATE THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- WHEN ( MAX_LOA.MAX_LOA_DATE is not null and PPS.ACTUAL_TERMINATION_DATE = :Asofdate) THEN TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY')
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
ELSE NULL
END AS LOA_END_DATE,
-- Modified condition for any other updates other than LOA
CASE WHEN (CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END ) IS NOT NULL THEN (select SUBSTR(ACT_REASON.ACTION_REASON_CODE,1,instr(ACT_REASON.ACTION_REASON_CODE,'_')-1) from PER_ACTION_REASONS_B ACT_REASON, PER_ACTION_OCCURRENCES ACT_OCC, PER_ALL_ASSIGNMENTS_M PAA where ACT_OCC.ACTION_REASON_ID=ACT_REASON.ACTION_REASON_ID AND PAA.ACTION_OCCURRENCE_ID = ACT_OCC.ACTION_OCCURRENCE_ID AND PAA.PERSON_ID = PER.PERSON_ID AND PAA.ASSIGNMENT_TYPE IN ('E','C') AND PAA.ACTION_CODE='LEAVE_OF_ABSENCE' AND TO_CHAR(PAA.EFFECTIVE_START_DATE,'MM/DD/YYYY') = (CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END) ) END AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
CASE WHEN ASS.ACTION_CODE='VOLUNTARY_TERMINATION' AND ASS.REASON_CODE='RETIRE' THEN 'R'
WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') AND ASS.REASON_CODE NOT IN ('RETIRE') THEN 'T'
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN 'A'
ELSE '' END AS EMPLOYMENT_STATUS,
-- greatest((select TO_CHAR(min(ORIGINAL_DATE_OF_HIRE),'MM/DD/YYYY') FROM per_periods_of_service where person_id=per.person_id), (SELECT TO_CHAR(MAX(effective_START_date),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ((reason_CODE IN ('REHIRE','REHIRE_WKR')) or (ACTION_CODE in ('REHIRE'))))) AS EMPLOYMENT_EFF_DT,
TO_CHAR(PPS.DATE_start,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') THEN ASS.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'1' AS AUTO_ENROLL
FROM
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_ETHNICITIES ETHN,
PER_NATIONAL_IDENTIFIERS NID,
PER_PERSONS PP,
PER_PERIODS_OF_SERVICE PPS,
HR_LOCATIONS LOC,
-- HCM_LOOKUPS LUKUP,
-- HCM_LOOKUPS LUKUP1,
PER_JOB_LEG_F JOBF,
PER_PERSON_ADDR_USAGES_F ADDRE,
PER_ADDRESSES_F ADDR,
PER_USERS PU,
HR_ALL_ORGANIZATION_UNITS_F_VL HRC,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_LOA_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'LEAVE_OF_ABSENCE' AND EFFECTIVE_START_DATE <= :Asofdate GROUP BY PERSON_ID) MAX_LOA,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_RFL_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'RETURN_FROM_LEAVE' AND EFFECTIVE_START_DATE <= :Asofdate GROUP BY PERSON_ID) MAX_RFL
WHERE
PER.PERSON_ID=MAX_LOA.PERSON_ID(+)
AND per.person_id=ASS.PERSON_ID
AND PER.PERSON_ID=MAX_RFL.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND ASS.PERSON_ID = ETHN.PERSON_ID(+)
AND ASS.PERSON_ID = PPL.PERSON_ID(+)
AND PPL.LEGISLATION_CODE(+)='US'
AND ASS.PERSON_ID = NID.PERSON_ID(+)
AND NATIONAL_IDENTIFIER_TYPE(+) = 'SSN'
AND ASS.PERSON_ID = PP.PERSON_ID(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=HRC.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
-- AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
-- AND ASS.EMPLOYMENT_CATEGORY=LUKUP1.LOOKUP_CODE(+)
AND ASS.JOB_ID=JOBF.JOB_ID(+)
-- AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
-- AND LUKUP1.LOOKUP_TYPE(+) = 'EMP_CAT'
AND JOBF.INFORMATION_CATEGORY(+)='HRX_US_JOBS'
AND ADDRE.PERSON_ID(+)=ASS.PERSON_ID
AND ADDR.ADDRESS_ID(+)=ADDRE.ADDRESS_ID
AND ASS.PERSON_ID=PU.PERSON_ID(+)
AND ASS.ASS_ATTRIBUTE3 IN ('BB1', 'BB7', 'BSS', 'EXP' , 'NBE' )
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.LEGISLATION_CODE='US'
AND ADDRE.ADDRESS_TYPE(+)='HOME'
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND ADDR.EFFECTIVE_START_DATE IN (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ADDRESSES_F A, PER_PERSON_ADDR_USAGES_F B WHERE A.ADDRESS_ID(+)=B.ADDRESS_ID AND B.PERSON_ID(+)=ASS.PERSON_ID AND B.ADDRESS_TYPE(+)='HOME' AND :Asofdate BETWEEN A.EFFECTIVE_START_DATE(+) AND A.EFFECTIVE_END_DATE(+) AND :Asofdate BETWEEN B.EFFECTIVE_START_DATE(+) AND B.EFFECTIVE_END_DATE(+))
AND :Asofdate BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND :Asofdate BETWEEN PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN HRC.EFFECTIVE_START_DATE(+) AND HRC.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN JOBF.EFFECTIVE_START_DATE(+) AND JOBF.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ADDRE.EFFECTIVE_START_DATE(+) AND ADDRE.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PU.START_DATE(+) AND PU.END_DATE(+)
AND PER.PERSON_NUMBER IN (SELECT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
FF_USER_ROWS_VL R,
FF_USER_COLUMNS_VL C,
FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID = R.USER_ROW_ID
AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
AND C.USER_TABLE_ID = T.USER_TABLE_ID
AND R.USER_TABLE_ID = T.USER_TABLE_ID
AND :Asofdate BETWEEN R.EFFECTIVE_START_DATE AND R.EFFECTIVE_END_DATE
AND T.USER_TABLE_NAME = 'BB_BSWIFT_INTF_BACK_DATED_LOA'
AND TRUNC(CI.CREATION_DATE) = :Asofdate
)
AND EXISTS (SELECT 1 FROM PER_ALL_ASSIGNMENTS_M ASS_LOA WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS_LOA.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) AND ASS_LOA.EFFECTIVE_START_DATE > NVL(MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')))
order by orderby,EMPLOYEE_ID
--------
SELECT
'4' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
TO_CHAR(NAME.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS LAST_NAME_EFFECTIVE_DATE,
NAME.KNOWN_AS AS NICKNAME,
NID.NATIONAL_IDENTIFIER_NUMBER AS SOCIAL_SECURITY_NUMBER,
TO_CHAR(PP.DATE_OF_BIRTH,'MM/DD/YYYY') AS DATE_OF_BIRTH,
CASE WHEN PPL.SEX IS NOT NULL THEN PPL.SEX
WHEN PPL.SEX IS NULL THEN 'U' END AS GENDER,
case when ETHN.ETHNICITY = 'BB_7' then '1'
when ETHN.ETHNICITY = 'BB_4' then '2'
when ETHN.ETHNICITY = 'BB_6' then '3'
when ETHN.ETHNICITY = 'BB_3' then '4'
when ETHN.ETHNICITY = 'BB_1' then '5'
when ETHN.ETHNICITY = 'BB_5' then '6'
when ETHN.ETHNICITY = 'BB_NSPEC' then '7'
ELSE ''
end AS Race_Ethnicity,
ASS.ASS_ATTRIBUTE3 AS BENEFIT_CLASS_CODE,
TO_CHAR(GREATEST(NVL((SELECT MAX(PAA_OLD.EFFECTIVE_END_DATE+1)
FROM PER_ALL_ASSIGNMENTS_M PAA_OLD,
PER_ALL_ASSIGNMENTS_M PAA_NEW
WHERE :Asofdate BETWEEN PAA_NEW.EFFECTIVE_START_DATE AND PAA_NEW.EFFECTIVE_END_DATE
AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = PAA_OLD.ASSIGNMENT_STATUS_TYPE
AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = 'ACTIVE'
AND PAA_NEW.PERSON_ID = PAA_OLD.PERSON_ID
AND PAA_NEW.PERSON_ID = ASS.PERSON_ID
AND PAA_NEW.ASS_ATTRIBUTE3 <> PAA_OLD.ASS_ATTRIBUTE3
----------AND PAA_OLD.LEGISLATION_CODE = 'US'
AND PAA_NEW.LEGISLATION_CODE = 'US'
AND PAA_NEW.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.ASSIGNMENT_TYPE = 'E'
AND PAA_NEW.ASSIGNMENT_TYPE = PAA_OLD.ASSIGNMENT_TYPE),to_date('01-01-1900','dd-mm-yyyy')),(SELECT MAX(effective_START_date)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') as BENEFIT_CLASS_DATE,
TO_CHAR(GREATEST((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE')),(SELECT max(DATE_FROM) FROM CMP_SALARY WHERE ASS.ASSIGNMENT_ID=ASSIGNMENT_ID AND :Asofdate BETWEEN DATE_FROM AND DATE_TO)),'MM/DD/YYYY') AS COMPENSATION_DATE,
-- TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS COMPENSATION_DATE,
ROUND((SELECT
SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='S'
AND :Asofdate BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS SALARY,
ROUND((SELECT
(SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)/2080
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='H'
AND :Asofdate BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS HOURLY_RATE,
ROUND(ASS.NORMAL_HOURS,2) AS HOURS_PER_WEEK,
ROUND(ASS.ASS_ATTRIBUTE_NUMBER1,2) AS BENEFITS_BASE_SALARY,
(SELECT
PE.SCREEN_ENTRY_VALUE
FROM
PAY_ELEMENT_ENTRIES_F EE,
PAY_ELEMENT_ENTRY_VALUES_F PE,
pay_input_values_f IV
WHERE
PER.PERSON_ID=EE.PERSON_ID
and EE.ELEMENT_ENTRY_ID=PE.ELEMENT_ENTRY_ID
AND PE.INPUT_VALUE_ID=IV.INPUT_VALUE_ID
AND (IV.BASE_NAME(+) ='ANNUAL_BONUS')
AND :Asofdate BETWEEN PE.EFFECTIVE_START_DATE AND PE.EFFECTIVE_END_DATE
AND :Asofdate BETWEEN IV.EFFECTIVE_START_DATE AND IV.EFFECTIVE_END_DATE) AS BONUS,
'' AS COMMISSION,
TO_CHAR((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE') ),'MM/DD/YYYY') AS HIRE_DATE,
to_char((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND (reason_CODE IN ('REHIRE','REHIRE_WKR') or (ACTION_CODE in ('REHIRE')))),'MM/DD/YYYY') AS REHIRE_DATE,
'' AS Demographic_Field_1,
CASE WHEN INSTR(HRC.NAME,'__',1) != 0 THEN SUBSTR(HRC.NAME, NVL(INSTR(HRC.NAME,'__',1),0)+2)
WHEN INSTR(HRC.NAME,'__',1) = 0 THEN NULL END AS DEPT_CODE,
/*TO_CHAR(GREATEST((PPS.ORIGINAL_DATE_OF_HIRE),(SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE')),'MM/DD/YYYY') AS DEPARTMENT_EFF_DATE,
LOC.internal_LOCATION_CODE AS LOCATION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(PPS.DATE_start)),'MM/DD/YYYY') AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
ASS.ASS_ATTRIBUTE4 AS JOB_TITLE,
TO_CHAR(GREATEST((PPS.ORIGINAL_DATE_OF_HIRE),(SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'JOB_DTL_CHG')),'MM/DD/YYYY') AS JOB_TITLE_EFF_DATE,
LOC.internal_LOCATION_CODE AS REGION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(PPS.ORIGINAL_DATE_OF_HIRE)),'MM/DD/YYYY') AS REGION_eff_date,*/
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS DEPARTMENT_EFF_DATE,
LOC.internal_LOCATION_CODE AS LOCATION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
ASS.ASS_ATTRIBUTE4 AS JOB_TITLE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'JOB_DTL_CHG'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS JOB_TITLE_EFF_DATE,
LOC.internal_LOCATION_CODE AS REGION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS REGION_eff_date,
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND :Asofdate BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS BU_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') as BU_EFF_DATE,
-- CASE WHEN ASS.MANAGER_FLAG='Y' THEN '1'
-- WHEN ASS.MANAGER_FLAG='N' THEN '0'
-- ELSE ''
-- END AS SUPERVISOR_CODE,
'' AS SUPERVISOR_CODE,
'3' AS PAY_FREQUENCY,
-- LUKUP1.MEANING AS TIME_STATUS,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '1'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '5'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '6'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '2'
ELSE '' END AS TIME_STATUS,
CASE WHEN JOBF.INFORMATION1='NONEXEMPT' THEN '0'
WHEN JOBF.INFORMATION1 = 'EXEMPT' THEN '1'
ELSE ''
END AS OVERTIME_STATUS,
'' AS HCE,
(SELECT case when INSTR(PH.PHONE_NUMBER,'x') = 0 then REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') else REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTR(PH.PHONE_NUMBER,1,nvl((INSTR(PH.PHONE_NUMBER,'x',1,1)-2),15)),'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') end FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO ) AS WORK_PHONE,
(SELECT PH.EXTENSION FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS WORK_PHONE_EXTENSION,
(SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')','') FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='WF' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS WORK_FAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1' and rownum=1) AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
TO_CHAR(GREATEST((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE')),(SELECT max(AD1.EFFECTIVE_START_DATE) FROM PER_PERSON_ADDR_USAGES_F AD,PER_ADDRESSES_F AD1 WHERE ASS.PERSON_ID =AD.PERSON_ID AND AD.ADDRESS_ID(+)=AD1.ADDRESS_ID AND AD.ADDRESS_TYPE(+) = 'HOME' AND :Asofdate BETWEEN AD1.effective_START_date AND ad1.effective_end_date)),'MM/DD/YYYY') AS ADD_EFF_DATE,
ADDR.ADDRESS_LINE_1 AS HOME_ADDRESS1,
ADDR.ADDRESS_LINE_2 AS HOME_ADDRESS2,
ADDR.TOWN_OR_CITY AS CITY,
ADDR.REGION_2 AS STATE_,
SUBSTR(ADDR.POSTAL_CODE,1,5) AS ZIP,
ADDR.REGION_3 AS COUNTY,
(SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='H1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE in (SELECT (CASE WHEN E.EMAIL_TYPE='H1' THEN 'H1'
WHEN E.EMAIL_TYPE NOT IN 'H1' AND E.EMAIL_TYPE='BB_OTHR' THEN'BB_OTHR' END)
FROM PER_EMAIL_ADDRESSES E
WHERE E.PERSON_ID=PER.PERSON_ID)
and rownum=1) AS HOME_EMAIL,
-- (SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID and EMAIL_TYPE in ('H1','BB_OTHR') and rownum=1) AS HOME_EMAIL,
--PU.USERNAME AS USERNAME,
'' AS USERNAME,
'' as LOGIN_ACCESS,
-- Modified condition for any other updates other than LOA
CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END AS LOA_START_DATE,
CASE
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- change to trunc(last_update_date)
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- added condition assgn effective date > max loa date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < ASS.EFFECTIVE_START_DATE THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- WHEN ( MAX_LOA.MAX_LOA_DATE is not null and PPS.ACTUAL_TERMINATION_DATE = :Asofdate) THEN TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY')
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
ELSE NULL
END AS LOA_END_DATE,
-- Modified condition for any other updates other than LOA
CASE WHEN (CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END ) IS NOT NULL THEN (select SUBSTR(ACT_REASON.ACTION_REASON_CODE,1,instr(ACT_REASON.ACTION_REASON_CODE,'_')-1) from PER_ACTION_REASONS_B ACT_REASON, PER_ACTION_OCCURRENCES ACT_OCC, PER_ALL_ASSIGNMENTS_M PAA where ACT_OCC.ACTION_REASON_ID=ACT_REASON.ACTION_REASON_ID AND PAA.ACTION_OCCURRENCE_ID = ACT_OCC.ACTION_OCCURRENCE_ID AND PAA.PERSON_ID = PER.PERSON_ID AND PAA.ASSIGNMENT_TYPE IN ('E','C') AND PAA.ACTION_CODE='LEAVE_OF_ABSENCE' AND TO_CHAR(PAA.EFFECTIVE_START_DATE,'MM/DD/YYYY') = (CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END) ) END AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
CASE WHEN ASS.ACTION_CODE='VOLUNTARY_TERMINATION' AND ASS.REASON_CODE='RETIRE' THEN 'R'
WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') AND ASS.REASON_CODE NOT IN ('RETIRE') THEN 'T'
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN 'A'
ELSE '' END AS EMPLOYMENT_STATUS,
-- greatest((select TO_CHAR(min(ORIGINAL_DATE_OF_HIRE),'MM/DD/YYYY') FROM per_periods_of_service where person_id=per.person_id), (SELECT TO_CHAR(MAX(effective_START_date),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ((reason_CODE IN ('REHIRE','REHIRE_WKR')) or (ACTION_CODE in ('REHIRE'))))) AS EMPLOYMENT_EFF_DT,
TO_CHAR(PPS.DATE_start,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') THEN ASS.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'1' AS AUTO_ENROLL
FROM
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_ETHNICITIES ETHN,
PER_NATIONAL_IDENTIFIERS NID,
PER_PERSONS PP,
PER_PERIODS_OF_SERVICE PPS,
HR_LOCATIONS LOC,
-- HCM_LOOKUPS LUKUP,
-- HCM_LOOKUPS LUKUP1,
PER_JOB_LEG_F JOBF,
PER_PERSON_ADDR_USAGES_F ADDRE,
PER_ADDRESSES_F ADDR,
PER_USERS PU,
HR_ALL_ORGANIZATION_UNITS_F_VL HRC,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_LOA_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'LEAVE_OF_ABSENCE' AND EFFECTIVE_START_DATE < :Asofdate GROUP BY PERSON_ID) MAX_LOA,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_RFL_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'RETURN_FROM_LEAVE' AND EFFECTIVE_START_DATE < :Asofdate GROUP BY PERSON_ID) MAX_RFL
WHERE
PER.PERSON_ID=MAX_LOA.PERSON_ID(+)
AND per.person_id=ASS.PERSON_ID
AND PER.PERSON_ID=MAX_RFL.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND ASS.PERSON_ID = ETHN.PERSON_ID(+)
AND ASS.PERSON_ID = PPL.PERSON_ID(+)
AND PPL.LEGISLATION_CODE(+)='US'
AND ASS.PERSON_ID = NID.PERSON_ID(+)
AND NATIONAL_IDENTIFIER_TYPE(+) = 'SSN'
AND ASS.PERSON_ID = PP.PERSON_ID(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=HRC.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
-- AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
-- AND ASS.EMPLOYMENT_CATEGORY=LUKUP1.LOOKUP_CODE(+)
AND ASS.JOB_ID=JOBF.JOB_ID(+)
-- AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
-- AND LUKUP1.LOOKUP_TYPE(+) = 'EMP_CAT'
AND JOBF.INFORMATION_CATEGORY(+)='HRX_US_JOBS'
AND ADDRE.PERSON_ID(+)=ASS.PERSON_ID
AND ADDR.ADDRESS_ID(+)=ADDRE.ADDRESS_ID
AND ASS.PERSON_ID=PU.PERSON_ID(+)
AND ASS.ASS_ATTRIBUTE3 IN ('BB1', 'BB7', 'BSS', 'EXP' , 'NBE' )
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.LEGISLATION_CODE='US'
AND ADDRE.ADDRESS_TYPE(+)='HOME'
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND ADDR.EFFECTIVE_START_DATE IN (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ADDRESSES_F A, PER_PERSON_ADDR_USAGES_F B WHERE A.ADDRESS_ID(+)=B.ADDRESS_ID AND B.PERSON_ID(+)=ASS.PERSON_ID AND B.ADDRESS_TYPE(+)='HOME' AND :Asofdate BETWEEN A.EFFECTIVE_START_DATE(+) AND A.EFFECTIVE_END_DATE(+) AND :Asofdate BETWEEN B.EFFECTIVE_START_DATE(+) AND B.EFFECTIVE_END_DATE(+))
AND :Asofdate BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND :Asofdate BETWEEN PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN HRC.EFFECTIVE_START_DATE(+) AND HRC.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN JOBF.EFFECTIVE_START_DATE(+) AND JOBF.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ADDRE.EFFECTIVE_START_DATE(+) AND ADDRE.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PU.START_DATE(+) AND PU.END_DATE(+)
AND PER.PERSON_NUMBER NOT IN (SELECT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
FF_USER_ROWS_VL R,
FF_USER_COLUMNS_VL C,
FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID = R.USER_ROW_ID
AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
AND C.USER_TABLE_ID = T.USER_TABLE_ID
AND R.USER_TABLE_ID = T.USER_TABLE_ID
AND :Asofdate BETWEEN R.EFFECTIVE_START_DATE AND R.EFFECTIVE_END_DATE
AND T.USER_TABLE_NAME = 'BB_BSWIFT_INTF_BACK_DATED_LOA'
AND TRUNC(CI.CREATION_DATE) = :Asofdate
)
UNION
SELECT
'5' as orderby,
'BB' AS GROUP_NUMBER,
PER.PERSON_NUMBER AS EMPLOYEE_ID,
PER.PERSON_NUMBER AS USER_ID,
'E' AS RELATION,
NAME.FIRST_NAME AS FIRST_NAME,
UPPER(SUBSTR(NAME.MIDDLE_NAMES,1,1)) AS MIDDLE_INITIAL,
NAME.LAST_NAME AS LAST_NAME,
TO_CHAR(NAME.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS LAST_NAME_EFFECTIVE_DATE,
NAME.KNOWN_AS AS NICKNAME,
NID.NATIONAL_IDENTIFIER_NUMBER AS SOCIAL_SECURITY_NUMBER,
TO_CHAR(PP.DATE_OF_BIRTH,'MM/DD/YYYY') AS DATE_OF_BIRTH,
CASE WHEN PPL.SEX IS NOT NULL THEN PPL.SEX
WHEN PPL.SEX IS NULL THEN 'U' END AS GENDER,
case when ETHN.ETHNICITY = 'BB_7' then '1'
when ETHN.ETHNICITY = 'BB_4' then '2'
when ETHN.ETHNICITY = 'BB_6' then '3'
when ETHN.ETHNICITY = 'BB_3' then '4'
when ETHN.ETHNICITY = 'BB_1' then '5'
when ETHN.ETHNICITY = 'BB_5' then '6'
when ETHN.ETHNICITY = 'BB_NSPEC' then '7'
ELSE ''
end AS Race_Ethnicity,
ASS.ASS_ATTRIBUTE3 AS BENEFIT_CLASS_CODE,
TO_CHAR(GREATEST(NVL((SELECT MAX(PAA_OLD.EFFECTIVE_END_DATE+1)
FROM PER_ALL_ASSIGNMENTS_M PAA_OLD,
PER_ALL_ASSIGNMENTS_M PAA_NEW
WHERE :Asofdate BETWEEN PAA_NEW.EFFECTIVE_START_DATE AND PAA_NEW.EFFECTIVE_END_DATE
AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = PAA_OLD.ASSIGNMENT_STATUS_TYPE
AND PAA_NEW.ASSIGNMENT_STATUS_TYPE = 'ACTIVE'
AND PAA_NEW.PERSON_ID = PAA_OLD.PERSON_ID
AND PAA_NEW.PERSON_ID = ASS.PERSON_ID
AND PAA_NEW.ASS_ATTRIBUTE3 <> PAA_OLD.ASS_ATTRIBUTE3
------AND PAA_OLD.LEGISLATION_CODE = 'US'
AND PAA_NEW.LEGISLATION_CODE = 'US'
AND PAA_NEW.ASSIGNMENT_TYPE = 'E'
AND PAA_OLD.ASSIGNMENT_TYPE = 'E'
AND PAA_NEW.ASSIGNMENT_TYPE = PAA_OLD.ASSIGNMENT_TYPE),to_date('01-01-1900','dd-mm-yyyy')),(SELECT MAX(effective_START_date)
FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') as BENEFIT_CLASS_DATE,
TO_CHAR(GREATEST((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE')),(SELECT max(DATE_FROM) FROM CMP_SALARY WHERE ASS.ASSIGNMENT_ID=ASSIGNMENT_ID AND :Asofdate BETWEEN DATE_FROM AND DATE_TO)),'MM/DD/YYYY') AS COMPENSATION_DATE,
-- TO_CHAR(PPS.ORIGINAL_DATE_OF_HIRE,'MM/DD/YYYY') AS COMPENSATION_DATE,
ROUND((SELECT
SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='S'
AND :Asofdate BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS SALARY,
ROUND((SELECT
(SAL.SALARY_AMOUNT * SLA.SALARY_ANNUALIZATION_FACTOR)/2080
FROM
CMP_SALARY SAL,
CMP_SALARY_BASES SLA
WHERE
ASS.ASSIGNMENT_ID=SAL.ASSIGNMENT_ID(+)
AND SAL.SALARY_BASIS_ID=SLA.SALARY_BASIS_ID(+)
AND ASS.HOURLY_SALARIED_CODE='H'
AND :Asofdate BETWEEN SAL.DATE_FROM(+) AND SAL.DATE_TO(+)
),2) AS HOURLY_RATE,
ROUND(ASS.NORMAL_HOURS,2) AS HOURS_PER_WEEK,
ROUND(ASS.ASS_ATTRIBUTE_NUMBER1,2) AS BENEFITS_BASE_SALARY,
(SELECT
PE.SCREEN_ENTRY_VALUE
FROM
PAY_ELEMENT_ENTRIES_F EE,
PAY_ELEMENT_ENTRY_VALUES_F PE,
pay_input_values_f IV
WHERE
PER.PERSON_ID=EE.PERSON_ID
and EE.ELEMENT_ENTRY_ID=PE.ELEMENT_ENTRY_ID
AND PE.INPUT_VALUE_ID=IV.INPUT_VALUE_ID
AND (IV.BASE_NAME(+) ='ANNUAL_BONUS')
AND :Asofdate BETWEEN PE.EFFECTIVE_START_DATE AND PE.EFFECTIVE_END_DATE
AND :Asofdate BETWEEN IV.EFFECTIVE_START_DATE AND IV.EFFECTIVE_END_DATE) AS BONUS,
'' AS COMMISSION,
TO_CHAR((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE') ),'MM/DD/YYYY') AS HIRE_DATE,
TO_CHAR((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M
WHERE PERSON_ID = ASS.PERSON_ID
AND (reason_CODE IN ('REHIRE','REHIRE_WKR') or (ACTION_CODE in ('REHIRE')))),'MM/DD/YYYY') AS REHIRE_DATE,
'' AS Demographic_Field_1,
CASE WHEN INSTR(HRC.NAME,'__',1) != 0 THEN SUBSTR(HRC.NAME, NVL(INSTR(HRC.NAME,'__',1),0)+2)
WHEN INSTR(HRC.NAME,'__',1) = 0 THEN NULL END AS DEPT_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS DEPARTMENT_EFF_DATE,
LOC.internal_LOCATION_CODE AS LOCATION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS LOCATION_eff_date,
'' as Division_Code,
'' as Division_eff_date,
ASS.ASS_ATTRIBUTE4 AS JOB_TITLE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'JOB_DTL_CHG'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS JOB_TITLE_EFF_DATE,
LOC.internal_LOCATION_CODE AS REGION_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'LOCATION_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') AS REGION_eff_date,
(SELECT DISTINCT HROF.ORG_INFORMATION1
FROM HR_ORGANIZATION_INFORMATION_F HROF, HR_ALL_ORGANIZATION_UNITS_X HROU
WHERE HROF.ORGANIZATION_ID = HROU.ORGANIZATION_ID
AND HROF.ORGANIZATION_ID=ASS.ORGANIZATION_ID
AND (HROF.ORG_INFORMATION_CONTEXT = 'Division' OR HROF.ORG_INFORMATION_CONTEXT IS NULL)
AND :Asofdate BETWEEN HROF.EFFECTIVE_START_DATE(+) AND HROF.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN HROU.EFFECTIVE_START_DATE(+) AND HROU.EFFECTIVE_END_DATE(+)
AND ROWNUM=1) AS BU_CODE,
TO_CHAR(NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ASS.PERSON_ID=PERSON_ID AND ACTION_CODE = 'DEPARTMENT_CHANGE'),(SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE'))),'MM/DD/YYYY') as BU_EFF_DATE,
-- CASE WHEN ASS.MANAGER_FLAG='Y' THEN '1'
-- WHEN ASS.MANAGER_FLAG='N' THEN '0'
-- ELSE ''
-- END AS SUPERVISOR_CODE,
'' AS SUPERVISOR_CODE,
'3' AS PAY_FREQUENCY,
-- LUKUP1.MEANING AS TIME_STATUS,
CASE WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '1'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('FR','FT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '5'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='S' THEN '6'
WHEN ASS.EMPLOYMENT_CATEGORY IN ('PR','PT') AND ASS.HOURLY_SALARIED_CODE='H' THEN '2'
ELSE '' END AS TIME_STATUS,
CASE WHEN JOBF.INFORMATION1='NONEXEMPT' THEN '0'
WHEN JOBF.INFORMATION1 = 'EXEMPT' THEN '1'
ELSE ''
END AS OVERTIME_STATUS,
'' AS HCE,
(SELECT case when INSTR(PH.PHONE_NUMBER,'x') = 0 then REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') else REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTR(PH.PHONE_NUMBER,1,nvl((INSTR(PH.PHONE_NUMBER,'x',1,1)-2),15)),'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') end FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO ) AS WORK_PHONE,
(SELECT PH.EXTENSION FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='W1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS WORK_PHONE_EXTENSION,
(SELECT PH.PHONE_NUMBER FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='WF' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS WORK_FAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE='W1' and rownum=1) AS WORK_EMAIL,
'' AS ROLE,
'' AS FUL_TIM_STDT_VRF_DT,
'' AS FUL_TIM_STDT,
'' AS SCHOOL_NAME,
'' AS SCHOOL_PHONE,
'' AS EMGC_C1,
'' AS EMGC_C1_PH,
'' AS EMGC_C1_REL,
'' AS EMGC_C1_WP,
'' AS EMGC_C1_WP_EXT,
'' AS EMGC_C1_CP,
'' AS EMGC_C2,
'' AS EMGC_C2_PHONE,
'' AS EMGC_C2_RELTN,
'' AS EMGC_C2_WP,
'' AS EMGC_C2_WP_EXT,
'' AS EMGC_C2_CP,
TO_CHAR(GREATEST((SELECT MAX(effective_START_date) FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ACTION_CODE in ('REHIRE','HIRE','ADD_AN_EMPLOYEE')),(SELECT max(AD1.EFFECTIVE_START_DATE) FROM PER_PERSON_ADDR_USAGES_F AD,PER_ADDRESSES_F AD1 WHERE ASS.PERSON_ID =AD.PERSON_ID AND AD.ADDRESS_ID(+)=AD1.ADDRESS_ID AND AD.ADDRESS_TYPE(+) = 'HOME' AND :Asofdate BETWEEN AD1.effective_START_date AND ad1.effective_end_date)),'MM/DD/YYYY') AS ADD_EFF_DATE,
ADDR.ADDRESS_LINE_1 AS HOME_ADDRESS1,
ADDR.ADDRESS_LINE_2 AS HOME_ADDRESS2,
ADDR.TOWN_OR_CITY AS CITY,
ADDR.REGION_2 AS STATE_,
SUBSTR(ADDR.POSTAL_CODE,1,5) AS ZIP,
ADDR.REGION_3 AS COUNTY,
(SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PH.PHONE_NUMBER,'-',''),'/',''),'.',''),'+',''),';',''),'(',''),')',''),'e',''),'t','') FROM PER_PHONES PH WHERE PER.PERSON_ID=PH.PERSON_ID AND PH.PHONE_TYPE='H1' AND :Asofdate BETWEEN DATE_FROM AND DATE_TO) AS HOME_PHONE,
'' AS CEELLPHONE,
'' AS HOMEFAX,
(SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE in (SELECT (CASE WHEN E.EMAIL_TYPE='H1' THEN 'H1'
WHEN E.EMAIL_TYPE NOT IN 'H1' AND E.EMAIL_TYPE='BB_OTHR' THEN'BB_OTHR' END) FROM PER_EMAIL_ADDRESSES E WHERE E.PERSON_ID=PER.PERSON_ID) and rownum=1) AS HOME_EMAIL,
-- CASE WHEN (SELECT EMAIL_ADDRESS FROM PER_EMAIL_ADDRESSES WHERE PERSON_ID=PER.PERSON_ID AND EMAIL_TYPE in ('H1','BB_OTHR') and rownum=1) AS HOME_EMAIL,
--PU.USERNAME AS USERNAME,
'' AS USERNAME,
'' as LOGIN_ACCESS,
-- Modified condition for any other updates other than LOA
CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END AS LOA_START_DATE,
CASE
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- change to trunc(last_update_date)
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- added condition assgn effective date > max loa date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < ASS.EFFECTIVE_START_DATE THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
-- WHEN ( MAX_LOA.MAX_LOA_DATE is not null and PPS.ACTUAL_TERMINATION_DATE = :Asofdate) THEN TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY')
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE-1,'MM/DD/YYYY')
ELSE NULL
END AS LOA_END_DATE,
-- Modified condition for any other updates other than LOA
CASE WHEN (CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END ) IS NOT NULL THEN (select SUBSTR(ACT_REASON.ACTION_REASON_CODE,1,instr(ACT_REASON.ACTION_REASON_CODE,'_')-1) from PER_ACTION_REASONS_B ACT_REASON, PER_ACTION_OCCURRENCES ACT_OCC, PER_ALL_ASSIGNMENTS_M PAA where ACT_OCC.ACTION_REASON_ID=ACT_REASON.ACTION_REASON_ID AND PAA.ACTION_OCCURRENCE_ID = ACT_OCC.ACTION_OCCURRENCE_ID AND PAA.PERSON_ID = PER.PERSON_ID AND PAA.ASSIGNMENT_TYPE IN ('E','C') AND PAA.ACTION_CODE='LEAVE_OF_ABSENCE' AND TO_CHAR(PAA.EFFECTIVE_START_DATE,'MM/DD/YYYY') = (CASE
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) and NVL (MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) < to_date('31-07-2014','dd-mm-yyyy')) then NULL
WHEN ( (ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) >= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) ) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified condition for any other updates other than LOA and corrected SQL
when ((ASS.EFFECTIVE_START_DATE <> :Asofdate OR ASS.ACTION_CODE <> 'LEAVE_OF_ABSENCE') AND (NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')) NOT BETWEEN NVL((SELECT MAX(EFFECTIVE_START_DATE) FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy'))),to_date('01-02-1900','dd-mm-yyyy')) AND NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-03-1900','dd-mm-yyyy'))) AND ASS.ACTION_CODE='LEAVE_OF_ABSENCE') THEN (SELECT TO_CHAR(MAX(EFFECTIVE_START_DATE),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')))
WHEN ( ASS.EFFECTIVE_START_DATE = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
--added condition for last_update_date
WHEN ( TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate AND ASS.ACTION_CODE = 'RETURN_FROM_LEAVE') THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
-- Modified last_update_date condition in sqls below
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) > NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(MAX_LOA.MAX_LOA_DATE,'MM/DD/YYYY')
WHEN ( (ASS.EFFECTIVE_START_DATE = :Asofdate OR TRUNC(ASS.LAST_UPDATE_DATE) = :Asofdate) AND ASS.ACTION_CODE = 'LEAVE_OF_ABSENCE' and NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) <= NVL (MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy'))) THEN TO_CHAR(ASS.EFFECTIVE_START_DATE,'MM/DD/YYYY')
ELSE NULL
END) ) END AS LOA_STATUS,
'' as LOA_Pay_Status,
'' AS LOA_CERTIFICATION,
CASE WHEN ASS.ACTION_CODE='VOLUNTARY_TERMINATION' AND ASS.REASON_CODE='RETIRE' THEN 'R'
WHEN ASS.ACTION_CODE IN ('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') AND ASS.REASON_CODE NOT IN ('RETIRE') THEN 'T'
WHEN ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE') THEN 'A'
ELSE '' END AS EMPLOYMENT_STATUS,
-- greatest((select TO_CHAR(min(ORIGINAL_DATE_OF_HIRE),'MM/DD/YYYY') FROM per_periods_of_service where person_id=per.person_id), (SELECT TO_CHAR(MAX(effective_START_date),'MM/DD/YYYY') FROM PER_ALL_ASSIGNMENTS_M WHERE PERSON_ID = ASS.PERSON_ID AND ((reason_CODE IN ('REHIRE','REHIRE_WKR')) or (ACTION_CODE in ('REHIRE'))))) AS EMPLOYMENT_EFF_DT,
TO_CHAR(PPS.DATE_start,'MM/DD/YYYY') AS EMPLOYMENT_EFF_DT,
CASE WHEN ASS.ACTION_CODE IN('VOLUNTARY_TERMINATION','INVOLUNTARY_TERMINATION') THEN ASS.REASON_CODE
ELSE ''
END AS TERMINATION_REASON,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS TERMINATION_DATE,
TO_CHAR(PPS.ACTUAL_TERMINATION_DATE,'MM/DD/YYYY') AS LAST_WORKED_DAY,
'1' AS AUTO_ENROLL
FROM
PER_ALL_PEOPLE_F PER,
PER_PERSON_NAMES_F NAME,
PER_ALL_ASSIGNMENTS_M ASS,
PER_PEOPLE_LEGISLATIVE_F PPL,
PER_ETHNICITIES ETHN,
PER_NATIONAL_IDENTIFIERS NID,
PER_PERSONS PP,
PER_PERIODS_OF_SERVICE PPS,
HR_LOCATIONS LOC,
-- HCM_LOOKUPS LUKUP,
-- HCM_LOOKUPS LUKUP1,
PER_JOB_LEG_F JOBF,
PER_PERSON_ADDR_USAGES_F ADDRE,
PER_ADDRESSES_F ADDR,
PER_USERS PU,
HR_ALL_ORGANIZATION_UNITS_F_VL HRC,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_LOA_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'LEAVE_OF_ABSENCE' AND EFFECTIVE_START_DATE <= :Asofdate GROUP BY PERSON_ID) MAX_LOA,
(SELECT PERSON_ID PERSON_ID, MAX(EFFECTIVE_START_DATE) AS MAX_RFL_DATE FROM PER_ALL_ASSIGNMENTS_M WHERE ACTION_CODE = 'RETURN_FROM_LEAVE' AND EFFECTIVE_START_DATE <= :Asofdate GROUP BY PERSON_ID) MAX_RFL
WHERE
PER.PERSON_ID=MAX_LOA.PERSON_ID(+)
AND per.person_id=ASS.PERSON_ID
AND PER.PERSON_ID=MAX_RFL.PERSON_ID(+)
AND ASS.PERSON_ID = NAME.PERSON_ID(+)
AND ASS.PERSON_ID = ETHN.PERSON_ID(+)
AND ASS.PERSON_ID = PPL.PERSON_ID(+)
AND PPL.LEGISLATION_CODE(+)='US'
AND ASS.PERSON_ID = NID.PERSON_ID(+)
AND NATIONAL_IDENTIFIER_TYPE(+) = 'SSN'
AND ASS.PERSON_ID = PP.PERSON_ID(+)
AND ASS.PERSON_ID = PPS.PERSON_ID(+)
AND ASS.ORGANIZATION_ID=HRC.ORGANIZATION_ID(+)
AND ASS.PERIOD_OF_SERVICE_ID = PPS.PERIOD_OF_SERVICE_ID(+)
AND ASS.LOCATION_ID=LOC.LOCATION_ID(+)
-- AND ASS.FREQUENCY=LUKUP.LOOKUP_CODE(+)
-- AND ASS.EMPLOYMENT_CATEGORY=LUKUP1.LOOKUP_CODE(+)
AND ASS.JOB_ID=JOBF.JOB_ID(+)
-- AND LUKUP.LOOKUP_TYPE(+) = 'HRT_PAY_FREQUENCY'
-- AND LUKUP1.LOOKUP_TYPE(+) = 'EMP_CAT'
AND JOBF.INFORMATION_CATEGORY(+)='HRX_US_JOBS'
AND ADDRE.PERSON_ID(+)=ASS.PERSON_ID
AND ADDR.ADDRESS_ID(+)=ADDRE.ADDRESS_ID
AND ASS.PERSON_ID=PU.PERSON_ID(+)
AND ASS.ASS_ATTRIBUTE3 IN ('BB1', 'BB7', 'BSS', 'EXP' , 'NBE' )
AND NAME.NAME_TYPE='GLOBAL'
AND ASS.ASSIGNMENT_TYPE IN ('E')
AND ASS.LEGISLATION_CODE='US'
AND ADDRE.ADDRESS_TYPE(+)='HOME'
AND ASS.EFFECTIVE_LATEST_CHANGE = 'Y'
AND ASS.ASSIGNMENT_STATUS_TYPE IN ('ACTIVE')
AND ADDR.EFFECTIVE_START_DATE IN (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ADDRESSES_F A, PER_PERSON_ADDR_USAGES_F B WHERE A.ADDRESS_ID(+)=B.ADDRESS_ID AND B.PERSON_ID(+)=ASS.PERSON_ID AND B.ADDRESS_TYPE(+)='HOME' AND :Asofdate BETWEEN A.EFFECTIVE_START_DATE(+) AND A.EFFECTIVE_END_DATE(+) AND :Asofdate BETWEEN B.EFFECTIVE_START_DATE(+) AND B.EFFECTIVE_END_DATE(+))
AND :Asofdate BETWEEN NAME.EFFECTIVE_START_DATE(+) AND NAME.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ASS.EFFECTIVE_START_DATE(+) AND ASS.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PER.EFFECTIVE_START_DATE AND PER.EFFECTIVE_END_DATE
AND :Asofdate BETWEEN PPL.EFFECTIVE_START_DATE(+) AND PPL.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN HRC.EFFECTIVE_START_DATE(+) AND HRC.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN LOC.EFFECTIVE_START_DATE(+) AND LOC.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN JOBF.EFFECTIVE_START_DATE(+) AND JOBF.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ADDRE.EFFECTIVE_START_DATE(+) AND ADDRE.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN ADDR.EFFECTIVE_START_DATE(+) AND ADDR.EFFECTIVE_END_DATE(+)
AND :Asofdate BETWEEN PU.START_DATE(+) AND PU.END_DATE(+)
AND PER.PERSON_NUMBER IN (SELECT CI.VALUE
FROM FF_USER_COLUMN_INSTANCES_F CI,
FF_USER_ROWS_VL R,
FF_USER_COLUMNS_VL C,
FF_USER_TABLES_VL T
WHERE CI.USER_ROW_ID = R.USER_ROW_ID
AND CI.USER_COLUMN_ID = C.USER_COLUMN_ID
AND C.USER_TABLE_ID = T.USER_TABLE_ID
AND R.USER_TABLE_ID = T.USER_TABLE_ID
AND :Asofdate BETWEEN R.EFFECTIVE_START_DATE AND R.EFFECTIVE_END_DATE
AND T.USER_TABLE_NAME = 'BB_BSWIFT_INTF_BACK_DATED_LOA'
AND TRUNC(CI.CREATION_DATE) = :Asofdate
)
AND EXISTS (SELECT 1 FROM PER_ALL_ASSIGNMENTS_M ASS_LOA WHERE ACTION_CODE='LEAVE_OF_ABSENCE' AND PERSON_ID=ASS.PERSON_ID AND ASS_LOA.EFFECTIVE_START_DATE < NVL(MAX_LOA.MAX_LOA_DATE,to_date('01-01-1900','dd-mm-yyyy')) AND ASS_LOA.EFFECTIVE_START_DATE > NVL(MAX_RFL.MAX_RFL_DATE,to_date('01-01-1900','dd-mm-yyyy')))
order by orderby,EMPLOYEE_ID
***********************************************************************************************************************************************
Comments
Post a Comment