0% found this document useful (0 votes)
2 views6 pages

Action Count SQL Before Adding Approv Cond

The document contains SQL queries that aggregate counts of distinct timecards, requisitions, invoices, and issues related to projects. It filters data based on various conditions, including project roles, statuses, and date ranges. The final output provides counts for timecards, requisitions, invoices, and issues for specified projects.

Uploaded by

Vivek Singh Rai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views6 pages

Action Count SQL Before Adding Approv Cond

The document contains SQL queries that aggregate counts of distinct timecards, requisitions, invoices, and issues related to projects. It filters data based on various conditions, including project roles, statuses, and date ranges. The final output provides counts for timecards, requisitions, invoices, and issues for specified projects.

Uploaded by

Vivek Singh Rai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

with TIMECARD as

(
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 REQD.PJC_TASK_ID = peb.PROJ_ELEMENT_ID


and REQD.PJC_TASK_ID = pet.PROJ_ELEMENT_ID
and pet.language = userenv('lang')

AND REQD.REQUISITION_LINE_ID = REQL.REQUISITION_LINE_ID


AND REQL.REQUISITION_HEADER_ID = REQ.REQUISITION_HEADER_ID
AND REQL.line_status = 'PENDING APPROVAL'

and REQ.PREPARER_ID = ppnf.person_id


and trunc(sysdate) between ppnf.effective_start_date and ppnf.effective_end_date
and ppnf.name_type = 'GLOBAL'

AND REQ.APPROVAL_INSTANCE_ID = WKTSK.COMPOSITEINSTANCEID


AND WKTSK.PROCESSNAME = 'ApproveReq'
AND WKTSK.WORKFLOWPATTERN = 'SequentialParticipant'

--AND REQL.VENDOR_ID = PS.VENDOR_ID(+)


--AND PS.PARTY_ID = HZP.PARTY_ID(+)

--and REQ.REQUISITION_NUMBER = NVL(:P_REQUISITION_NUMBER,REQ.REQUISITION_NUMBER)

--AND PP.SEGMENT1 = 'INT237'

and PP.project_id = NVL(:P_PROJECT_ID,PP.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)
)

--AND ((:P_ACTION_TYPE='OTHER') or :P_ACTION_TYPE is null)


)
)

,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 INV.INVOICE_ID = TSK.IDENTIFICATIONKEY(+)


and TSK.componentname(+) = 'InvoiceApprovalHumantask'
AND TSK.WORKFLOWPATTERN(+) = 'Participant'

AND INV.INVOICE_CURRENCY_CODE = FB.CURRENCY_CODE

--AND KCH.CONTRACT_NUMBER = 'EBS-60762'

--AND ((:P_ACTION_TYPE='INVOICE') or :P_ACTION_TYPE is null)


and PP.project_id = NVL(:P_PROJECT_ID,PP.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)
)

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 PP.project_id = NVL(:P_PROJECT_ID,PP.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)
)
)
)

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

You might also like