New 4
New 4
(
SELECT HOUFTL.ORGANIZATION_ID
,HOUFTL.NAME
,GL.LEDGER_ID
,GL.PERIOD_SET_NAME
FROM HR_ORGANIZATION_UNITS_F_TL HOUFTL
,HR_ORGANIZATION_INFORMATION_F HOIF
,GL_LEDGERS GL
WHERE 1=1
AND HOUFTL.ORGANIZATION_ID = HOIF.ORGANIZATION_ID
and trunc(sysdate) between HOIF.effective_start_date and HOIF.effective_end_date
AND HOIF.ORG_INFORMATION3 = GL.LEDGER_ID
AND HOUFTL.NAME = 'USA BU'
)
,PERIODS_PA AS
(
select
PPA.PERIOD_NAME
,PPA.START_DATE
,PPA.END_DATE
,PPA.ORG_ID
,PPA.GL_PERIOD_NAME
,TO_CHAR(PPA.START_DATE,'fmddth')||'-'||to_char(PPA.END_DATE,'fmddth')
C_PERIOD_NAME
FROM
PJF_PERIODS_ALL PPA
)
,PERIODS_GL AS
(
select
gp.PERIOD_NAME
,gp.START_DATE
,gp.END_DATE
,gp.PERIOD_SET_NAME
,decode(to_char(gp.END_DATE,'MM')
,'01','JAN-'
,'02','FEB-'
,'03','MAR-'
,'04','APR-'
,'05','MAY-'
,'06','JUN-'
,'07','JUL-'
,'08','AUG-'
,'09','SEP-'
,'10','OCT-'
,'11','NOV-'
,'12','DEC-')||to_char(gp.END_DATE,'YYYY') C_PERIOD_NAME
FROM
GL_PERIODS GP
)
,PERIODS AS
(
SELECT
PERIODS_PA.PERIOD_NAME PA_PERIOD_NAME
,PERIODS_PA.START_DATE PA_PERIOD_START_DATE
,PERIODS_PA.END_DATE PA_PERIOD_END_DATE
,PERIODS_GL.PERIOD_NAME GL_PERIOD_NAME
,PERIODS_GL.START_DATE GL_PERIOD_START_DATE
,PERIODS_GL.END_DATE GL_PERIOD_END_DATE
FROM
ORG
,PERIODS_GL
,PERIODS_PA
WHERE 1=1
AND PERIODS_PA.ORG_ID = ORG.ORGANIZATION_ID
AND PERIODS_PA.GL_PERIOD_NAME = PERIODS_GL.PERIOD_NAME
AND PERIODS_GL.PERIOD_SET_NAME = ORG.PERIOD_SET_NAME
and PERIODS_PA.end_date between NVL(:P_START_DATE,PERIODS_PA.start_date) AND
PERIODS_PA.END_DATE
and PERIODS_PA.start_date between PERIODS_PA.start_date AND
NVL(:P_END_DATE,PERIODS_PA.END_DATE)
)
,EMPLOYEE AS
(
SELECT
PPNF.FULL_NAME PERSON_FULL_NAME
,ppnf.last_name
,PAAM.NORMAL_HOURS
,PAPF.PERSON_ID
,PPTL.USER_PERSON_TYPE
,PAAM.EFFECTIVE_START_DATE
,PAAM.EFFECTIVE_END_DATE
,PAAM.ASSIGNMENT_ID
,paam.business_unit_id
,PAAM.ORGANIZATION_ID DEPARTMENT_ID
FROM
PER_ALL_PEOPLE_F PAPF
,PER_PERSON_NAMES_F PPNF
,PER_PERIODS_OF_SERVICE PPOS
,PER_ALL_ASSIGNMENTS_M PAAM
,PER_PERSON_TYPES_TL PPTL
SELECT
PERSON_FULL_NAME
,PERSON_ID
,PERSON_TYPE
,PA_PERIOD_NAME
,PA_PERIOD_START_DATE
,PA_PERIOD_END_DATE
,UPPER(GL_PERIOD_NAME) GL_PERIOD_NAME
,GL_PERIOD_START_DATE
,GL_PERIOD_END_DATE
,FORECAST_HOURS
,PTO_HOURS
,PROJECT_HOURS
,WORKING_DAYS NORMAL_HOURS
,WORKING_DAYS - NVL(PTO_HOURS,0) - NVL(FORECAST_HOURS,0) REMAINING_HOURS
,DEPARTMENT_ID
FROM
(
SELECT
EMPLOYEE.PERSON_FULL_NAME
,EMPLOYEE.PERSON_ID
,EMPLOYEE.USER_PERSON_TYPE PERSON_TYPE
,PERIODS.PA_PERIOD_NAME PA_PERIOD_NAME
,PERIODS.PA_PERIOD_START_DATE PA_PERIOD_START_DATE
,PERIODS.PA_PERIOD_END_DATE PA_PERIOD_END_DATE
,PERIODS.GL_PERIOD_NAME GL_PERIOD_NAME
,PERIODS.GL_PERIOD_START_DATE GL_PERIOD_START_DATE
,PERIODS.GL_PERIOD_END_DATE GL_PERIOD_END_DATE
,(select sum(pe.ABS_UNITS)
from ANC_PER_ABS_PLAN_ENTRIES pe
where 1=1
and pe.PERSON_ID = EMPLOYEE.PERSON_ID
and pe.START_DATE between PERIODS.PA_PERIOD_START_DATE and
PERIODS.PA_PERIOD_END_DATE) PTO_HOURS
,(select sum(ppld.QUANTITY) FROM
PJO_PLAN_VERSIONS_B PPV
,PJO_PLAN_TYPES_TL pptt
,pjo_planning_elements ppe
,PJO_PLAN_LINE_DETAILS PPLD
WHERE 1=1
AND PPV.PLAN_STATUS_CODE = 'W'
AND PPV.CURRENT_PLAN_STATUS_FLAG = 'Y'
AND PPV.PLAN_CLASS_CODE = 'BUDGET'
AND PPV.PLAN_TYPE_ID = pptt.PLAN_TYPE_ID
AND PPTT.LANGUAGE=USERENV('LANG')
AND PPTT.NAME = 'Labor Project Plan Type'
AND ppe.PLAN_VERSION_ID = PPV.PLAN_VERSION_ID
AND ppe.PLANNING_ELEMENT_ID = ppld.PLANNING_ELEMENT_ID
and ppe.PERSON_ID = EMPLOYEE.PERSON_ID
AND PPLD.period_name = PERIODS.PA_PERIOD_NAME) FORECAST_HOURS
,(select sum(ppld.QUANTITY) FROM
PJO_PLAN_VERSIONS_B PPV
,PJO_PLAN_TYPES_TL pptt
,pjo_planning_elements ppe
,PJO_PLAN_LINE_DETAILS PPLD
WHERE 1=1
AND PPV.PLAN_STATUS_CODE = 'W'
AND PPV.CURRENT_PLAN_STATUS_FLAG = 'Y'
AND PPV.PLAN_CLASS_CODE = 'BUDGET'
AND PPV.PLAN_TYPE_ID = pptt.PLAN_TYPE_ID
AND PPTT.LANGUAGE=USERENV('LANG')
AND PPTT.NAME = 'Labor Project Plan Type'
AND ppe.PLAN_VERSION_ID = PPV.PLAN_VERSION_ID
AND ppe.PLANNING_ELEMENT_ID = ppld.PLANNING_ELEMENT_ID
and ppe.PERSON_ID = EMPLOYEE.PERSON_ID
AND PPLD.period_name = PERIODS.PA_PERIOD_NAME
and ppv.PROJECT_ID= :P_PROJECT_ID) PROJECT_HOURS
,(SELECT (to_char(COUNT(*))*8) FROM
PER_AVAILABILITY_DETAILS.GET_SCHEDULE_DETAILS('ASSIGN',EMPLOYEE.ASSIGNMENT_ID,PERIO
Ds.PA_PERIOD_START_DATE,PERIODs.PA_PERIOD_END_DATE+1) WHERE OBJECT_CATEGORY <>
'PH') WORKING_DAYS
,EMPLOYEE.DEPARTMENT_ID
FROM EMPLOYEE
,PERIODS
WHERE 1=1
and PERIODS.PA_PERIOD_START_DATE between EMPLOYEE.EFFECTIVE_START_DATE and
EMPLOYEE.EFFECTIVE_END_DATE
order by PERIODS.PA_PERIOD_START_DATE
)