Action Count SQL Before Adding Approv Cond
Action Count SQL Before Adding Approv Cond
(
SELECT count(distinct TIMECARD_ID) TIMECARD_COUNT
FROM
(
SELECT
rec.measure hours
,rec.LAST_UPDATE_DATE Changed_On_Date
,rec.CREATION_DATE Created_On_Date
,Prj1.SEGMENT1||' '||Prj1.name as PROJECT_NUMBER_NAME
,Prj1.SEGMENT1 PROJECT_NUMBER
,pPTT.PROJECT_TYPE
,st.status_value status
,rec.TM_REC_ID rec_id
,orig.TM_REC_ID org_rec_id
,card.tm_rec_grp_id TIMECARD_ID
FROM
hwm_tm_rec rec
,hwm_tm_rec orig
,hwm_grp_type grp
,hwm_tm_rep_s_pjc_atrbs_v prj
,PJF_PROJECTS_ALL_VL Prj1
,PJF_PROJECT_TYPES_TL PPTT
,hwm_tm_d_tm_ui_status_v st
,hwm_tm_rec_grp_usages usg
,hwm_tm_rec_grp day
,hwm_tm_rec_grp card
where 1=1
and orig.layer_code(+) = 'TIME_RPTD'
AND NVL(orig.latest_version(+),'N') = 'Y'
AND NVL(rec.latest_version,'N') = 'Y'
AND NVL(rec.delete_flag,'N') = 'N'
AND grp.grp_type_id = rec.grp_type_id
AND grp.name like 'Processed TimecardEntry'
AND rec.orig_tm_rec_id = orig.tm_rec_id(+)
AND rec.unit_of_measure IN ('UN','HR')
AND prj.USAGES_SOURCE_ID (+)= rec.tm_rec_id
AND prj.USAGES_SOURCE_VERSION (+)= rec.tm_rec_version
and prj.PJC_PROJECT_ID = prj1.project_id(+)
and prj1.PROJECT_TYPE_ID = pptt.PROJECT_TYPE_ID(+)
AND rec.ORIG_TM_REC_ID = usg.tm_rec_id
AND rec.ORIG_TM_REC_VERSION = usg.tm_rec_version
AND usg.tm_rec_grp_id = day.tm_rec_grp_id
AND usg.tm_rec_grp_version = day.tm_rec_grp_version
AND day.parent_tm_rec_grp_id = card.tm_rec_grp_id
AND day.parent_tm_rec_grp_version = card.tm_rec_grp_version
AND card.tm_rec_grp_id = st.tm_bldg_blk_id
AND card.tm_rec_grp_version = st.tm_bldg_blk_version
and st.status_value = 'SUBMITTED'
and rec.start_time between NVL(:P_START_DATE,rec.start_time) and
NVL(:P_END_DATE,rec.start_time)
AND EXISTS
(
select 'Y' from PJF_PROJECT_PARTIES ppp1
,PJF_PROJ_ROLE_TYPES_TL pprtt1
,per_all_people_f papf1
where 1=1
and ppp1.project_id = Prj1.project_id
and ppp1.PROJECT_ROLE_ID = pprtt1.PROJECT_ROLE_ID
and LEAST(Prj1.completion_date,TRUNC(SYSDATE)) between ppp1.START_DATE_ACTIVE and
NVL(ppp1.END_DATE_ACTIVE,TRUNC(SYSDATE))
and pprtt1.language = 'US'
and pprtt1.PROJECT_ROLE_NAME in ('Project Manager')
and ppp1.RESOURCE_SOURCE_ID = papf1.person_id
and TRUNC(SYSDATE) between papf1.effective_start_date and papf1.effective_end_date
and papf1.person_id = NVL(:P_PM_PERSON_ID,papf1.person_id)
)
and prj1.project_id = NVL(:P_PROJECT_ID,prj1.project_id)
)
)
, REQUISITION AS
(
SELECT COUNT(*) REQ_COUNT
FROM
(
SELECT distinct REQ.REQUISITION_NUMBER
-- PP.PROJECT_ID
--,PP.SEGMENT1 PROJECT_NUMBER
--,PPTL.NAME PROJECT_NAME
--
----,REQD.DISTRIBUTION_ID
--,REQD.REQUISITION_LINE_ID
--,REQD.DISTRIBUTION_AMOUNT AMOUNT
--
--,peb.element_number task_number
--,pet.name task_name
--
--,REQL.line_status
--,REQ.REQUISITION_NUMBER
--,REQ.REQUISITION_HEADER_ID
--,ppnf.full_name resource_name
----,HZP.PARTY_NAME SUPPLIER_NAME
--,WKTSK.ASSIGNEESDISPLAYNAME approver_person_name
--,WKTSK.TASKNUMBER APRV_TASK_NUMBER
,(select PU.person_id
from PER_USERS PU
where 1=1
and PU.USERNAME = (select substr(tsk2.ASSIGNEES,1,instr(tsk2.ASSIGNEES,',')-1)
from
FA_FUSION_SOAINFRA.WFTASK tsk2
WHERE 1=1
AND REQ.APPROVAL_INSTANCE_ID = TSK2.COMPOSITEINSTANCEID
AND TSK2.PROCESSNAME = 'ApproveReq'
AND TSK2.WORKFLOWPATTERN = 'SequentialParticipant'
AND ROWNUM < 2)) APPROVER_PERSON_ID
FROM PJF_PROJECTS_ALL_B PP
,PJF_PROJECTS_ALL_TL PPTL
,POR_REQ_DISTRIBUTIONS_ALL REQD
,pjf_proj_elements_b peb
,pjf_proj_elements_tl pet
,POR_REQUISITION_LINES_ALL REQL
,POR_REQUISITION_HEADERS_ALL REQ
,per_person_names_f ppnf
--,POZ_SUPPLIERS PS
--,HZ_PARTIES HZP
,FA_FUSION_SOAINFRA.WFTASK WKTSK
WHERE 1=1
AND PP.PROJECT_ID = PPTL.PROJECT_ID
AND PPTL.LANGUAGE=USERENV('LANG')
AND PP.PROJECT_ID = REQD.PJC_PROJECT_ID
AND EXISTS
(
select 'Y' from PJF_PROJECT_PARTIES ppp1
,PJF_PROJ_ROLE_TYPES_TL pprtt1
,per_all_people_f papf1
where 1=1
and ppp1.project_id = PP.project_id
and ppp1.PROJECT_ROLE_ID = pprtt1.PROJECT_ROLE_ID
and LEAST(PP.completion_date,TRUNC(SYSDATE)) between ppp1.START_DATE_ACTIVE and
NVL(ppp1.END_DATE_ACTIVE,TRUNC(SYSDATE))
and pprtt1.language = 'US'
and pprtt1.PROJECT_ROLE_NAME in ('Project Manager')
and ppp1.RESOURCE_SOURCE_ID = papf1.person_id
and TRUNC(SYSDATE) between papf1.effective_start_date and papf1.effective_end_date
--and papf1.person_number = NVL(:P_PM_PERSON_NUMBER,papf1.person_number)
and papf1.person_id = NVL(:P_PM_PERSON_ID,papf1.person_id)
)
,INVOICE AS
(
SELECT COUNT(*) INVOICE_COUNT
FROM
(
select DISTINCT INV.INVOICE_ID
-- PP.PROJECT_ID PROJECT_ID
--,PP.SEGMENT1 PROJECT_NUMBER
--,PPTL.NAME PROJECT_NAME
--,INV.INVOICE_ID
--,INV.INVOICE_NUM
--,INV.INVOICE_CURRENCY_CODE INVOICE_CURRENCY
--,INV.INVOICE_STATUS_CODE INVOICE_STATUS
--,KCH.CONTRACT_NUMBER
--,SUM(INL.INV_CURR_LINE_AMT) INVOICE_AMOUNT
--,CA.ACCOUNT_NAME Customer_Account_Name
----,TSK.ASSIGNEESDISPLAYNAME approver_person_name
----,TSK.TASKNUMBER APRV_TASK_NUMBER
--,FB.SYMBOL CURRENCY_SYMBOL
--,(select PU.person_id
-- from PER_USERS PU
-- where 1=1
-- and PU.USERNAME = (select substr(tsk2.ASSIGNEES,1,instr(tsk2.ASSIGNEES,',')-1)
-- from
-- FA_FUSION_SOAINFRA.WFTASK tsk2
-- WHERE 1=1
-- and INV.INVOICE_ID = TSK2.IDENTIFICATIONKEY
-- and TSK2.componentname = 'InvoiceApprovalHumantask'
-- AND TSK2.WORKFLOWPATTERN = 'Participant')) APPROVER_PERSON_ID
FROM
PJF_PROJECTS_ALL_B PP
,PJF_PROJECTS_ALL_TL PPTL
,PJB_INVOICE_HEADERS INV
,OKC_K_HEADERS_ALL_B KCH
,PJB_INVOICE_LINES INL
,HZ_CUST_ACCOUNTS CA
,FA_FUSION_SOAINFRA.WFTASK TSK
,FND_CURRENCIES_B FB
WHERE 1=1
AND PP.PROJECT_ID = PPTL.PROJECT_ID
AND PPTL.LANGUAGE = USERENV('LANG')
AND PP.PROJECT_ID = INV.PROJECT_ID
AND INV.INVOICE_STATUS_CODE in (select meaning from fnd_lookup_values where
lookup_type ='PERF_COMPASS_INVOICE_STATUS')
and INV.CONTRACT_ID = KCH.ID
AND INV.INVOICE_ID = INL.INVOICE_ID
AND INV.BILL_TO_CUST_ACCT_ID = CA.CUST_ACCOUNT_ID
AND EXISTS
(
select 'Y' from PJF_PROJECT_PARTIES ppp1
,PJF_PROJ_ROLE_TYPES_TL pprtt1
,per_all_people_f papf1
where 1=1
and ppp1.project_id = PP.project_id
and ppp1.PROJECT_ROLE_ID = pprtt1.PROJECT_ROLE_ID
and LEAST(PP.completion_date,TRUNC(SYSDATE)) between ppp1.START_DATE_ACTIVE and
NVL(ppp1.END_DATE_ACTIVE,TRUNC(SYSDATE))
and pprtt1.language = 'US'
and pprtt1.PROJECT_ROLE_NAME in ('Project Manager')
and ppp1.RESOURCE_SOURCE_ID = papf1.person_id
and TRUNC(SYSDATE) between papf1.effective_start_date and papf1.effective_end_date
--and papf1.person_number = NVL(:P_PM_PERSON_NUMBER,papf1.person_number)
and papf1.person_id = NVL(:P_PM_PERSON_ID,papf1.person_id)
)
group BY PP.PROJECT_ID
,PP.SEGMENT1
,PPTL.NAME
,INV.INVOICE_ID
,INV.INVOICE_NUM
,INV.INVOICE_CURRENCY_CODE
,INV.INVOICE_STATUS_CODE
,KCH.CONTRACT_NUMBER
,CA.ACCOUNT_NAME
,TSK.ASSIGNEESDISPLAYNAME
,TSK.TASKNUMBER
,FB.SYMBOL
)
)
,ISSUES AS
(
SELECT COUNT(*) ISSUES_COUNT
FROM
(
SELECT DISTINCT ISB.ISSUE_ID
--PP.SEGMENT1 PROJECT_NUMBER
--,PP.PROJECT_ID PROJECT_ID
--,PPTL.NAME PROJECT_NAME
--,ISB.ISSUE_ID
--,ISB.ISSUE_NUMBER ISSUE_NUMBER
--,ISTL.NAME ISSUE_TYPE
--,ISL.SUMMARY SUMMARY
FROM PJF_PROJECTS_ALL_B PP
,PJF_PROJECTS_ALL_TL PPTL
,PJE_ISSUES_B ISB
,PJE_ISSUES_TL ISL
,PJE_ISSUE_TYPES_TL ISTL
WHERE 1=1
AND PP.PROJECT_ID = PPTL.PROJECT_ID
AND PPTL.LANGUAGE = USERENV('LANG')
AND PP.PROJECT_ID = ISB.PROJECT_ID
and ISB.STATUS_CODE <> 'CLOSED'
AND ISB.ISSUE_ID = ISL.ISSUE_ID
AND ISB.ISSUE_TYPE_ID = ISTL.ISSUE_TYPE_ID
AND ISTL.LANGUAGE = USERENV('LANG')
--AND ((:P_ACTION_TYPE='OTHER') or :P_ACTION_TYPE is null)
AND EXISTS
(
select 'Y' from PJF_PROJECT_PARTIES ppp1
,PJF_PROJ_ROLE_TYPES_TL pprtt1
,per_all_people_f papf1
where 1=1
and ppp1.project_id = PP.project_id
and ppp1.PROJECT_ROLE_ID = pprtt1.PROJECT_ROLE_ID
and LEAST(PP.completion_date,TRUNC(SYSDATE)) between ppp1.START_DATE_ACTIVE and
NVL(ppp1.END_DATE_ACTIVE,TRUNC(SYSDATE))
and pprtt1.language = 'US'
and pprtt1.PROJECT_ROLE_NAME in ('Project Manager')
and ppp1.RESOURCE_SOURCE_ID = papf1.person_id
and TRUNC(SYSDATE) between papf1.effective_start_date and papf1.effective_end_date
--and papf1.person_number = NVL(:P_PM_PERSON_NUMBER,papf1.person_number)
and papf1.person_id = NVL(:P_PM_PERSON_ID,papf1.person_id)
)
)
)
SELECT TIMECARD.TIMECARD_COUNT
,(REQUISITION.REQ_COUNT + ISSUES.ISSUES_COUNT) OTHERS_COUNT
,INVOICE.INVOICE_COUNT
,REQUISITION.REQ_COUNT
,ISSUES.ISSUES_COUNT
FROM TIMECARD
,REQUISITION
,INVOICE
,ISSUES