Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 10

FOR PR

Custom Attributes:

1- Attribute to Pick Project Based documents or not

Query: SELECT NVL(MAX('Y'),'N') FROM PO_REQUISITION_HEADERS_ALL PRH,


PO_REQUISITION_LINES_ALL PRL, PO_REQ_DISTRIBUTIONS_ALL PRD WHERE 1 = 1 AND
PRH.REQUISITION_HEADER_ID = PRL.REQUISITION_HEADER_ID AND
PRD.REQUISITION_LINE_ID = PRL.REQUISITION_LINE_ID AND PRD.PROJECT_ID IS NOT NULL
AND PRH.REQUISITION_HEADER_ID=:transactionId

Approver Groups:

User dynamic query to pick multiple approvers for PR project based

select approvers_list.hr_people

from

(SELECT 'PER:' || (A.ATTRIBUTE9) hr_people, 1 approver_num

FROM HR_ORGANIZATION_UNITS A,XX_PRJ_ORG_JOIN P

WHERE 1 = 1

AND P.RID=:transactionId

and to_char(A.ORGANIZATION_ID)=to_char(P.OID)

AND A.ATTRIBUTE9 IS NOT NULL

union

SELECT 'PER:' || (A.ATTRIBUTE10) hr_people, 2 approver_num

FROM HR_ORGANIZATION_UNITS A,XX_PRJ_ORG_JOIN P

WHERE 1 = 1

AND P.RID=:transactionId
and to_char(A.ORGANIZATION_ID)=to_char(P.OID)

and XX_AP_INVOICE_WF.IS_OVER_BUDGET_PR_AME(:transactionId)='Y'

AND A.ATTRIBUTE10 IS NOT NULL

union

SELECT 'PER:' || (A.ATTRIBUTE2) hr_people, 3 approver_num

FROM HR_ORGANIZATION_UNITS A,XX_PRJ_ORG_JOIN P

WHERE 1 = 1

AND P.RID=:transactionId

and to_char(A.ORGANIZATION_ID)=to_char(P.OID)

AND A.ATTRIBUTE2 IS NOT NULL

union

SELECT 'PER:' || (A.ATTRIBUTE11) hr_people, 4 approver_num

FROM HR_ORGANIZATION_UNITS A,XX_PRJ_ORG_JOIN P

WHERE 1 = 1

AND P.RID=:transactionId

and to_char(A.ORGANIZATION_ID)=to_char(P.OID)

and XX_AP_INVOICE_WF.IS_OVER_BUDGET_PR_AME(:transactionId)='Y'

AND A.ATTRIBUTE11 IS NOT NULL

UNION

SELECT 'PER:' || MAX(PERSON_ID) hr_people, 5 approver_num

FROM XX_EMP_POS

WHERE 1 = 1

and UPPER(NAME) LIKE '%EXECUTIVE%SECRETARY%PROCUREMENT%'

AND (SELECT NVL(ATTRIBUTE1, 'Non-Permanent')

FROM PO_REQUISITION_HEADERS_ALL

WHERE 1 = 1
AND REQUISITION_HEADER_ID = :transactionId) = 'Non-Permanent'

UNION

SELECT 'PER:' || MIN(PERSON_ID) hr_people, 5 approver_num

FROM XX_EMP_POS

WHERE 1 = 1

and UPPER(NAME) LIKE '%PROCUREMENT%UNIT%HEAD%PROCUREMENT%'

AND (JNAME) LIKE '%'||(SELECT UPPER(ATTRIBUTE11)

FROM PO_REQUISITION_HEADERS_ALL

WHERE 1 = 1

AND REQUISITION_HEADER_ID = :transactionId)

||'%'

AND (SELECT NVL(ATTRIBUTE1, 'Non-Permanent')

FROM PO_REQUISITION_HEADERS_ALL

WHERE 1 = 1

AND REQUISITION_HEADER_ID = :transactionId) <> 'Non-Permanent'

order by 2

)approvers_list

Approver Group 2:

Query to pick multiple approvers for PR non project:

select approvers_list.hr_people

from

(SELECT

CASE WHEN NAME ='PROCUREMENT DEPARTMENT' THEN

(SELECT 'PER:' || MAX(PERSON_ID) FROM XX_EMP_POS

WHERE 1 = 1 and UPPER(NAME) LIKE '%EXECUTIVE%SECRETARY%PROCUREMENT%')

ELSE
'PER:' || (A.ATTRIBUTE2) END hr_people,

2 approver_num

FROM XX_PR_DEPTS_APPROVAL A,PO_REQUISITION_HEADERS_ALL P

WHERE 1 = 1

AND P.REQUISITION_HEADER_ID=:transactionId

and to_char(A.ORGANIZATION_ID)=to_char(P.ATTRIBUTE12)

AND A.ATTRIBUTE2 IS NOT NULL

union all

SELECT 'PER:' || (A.ATTRIBUTE2) hr_people, 1 approver_num

FROM XX_PR_DEPTS_APPROVAL A, PO_REQUISITION_HEADERS_ALL P,

HR_ORGANIZATION_UNITS_V org, PAY_COST_ALLOCATION_KEYFLEX cst

WHERE 1 = 1

AND P.REQUISITION_HEADER_ID=:transactionId

and org.organization_id = a.organization_id

and org.cost_allocation_keyflex_id = cst.COST_ALLOCATION_KEYFLEX_ID

and to_char(cst.SEGMENT4)=to_char(P.ATTRIBUTE14)

AND A.ATTRIBUTE2 IS NOT NULL

order by 2

)approvers_list
FOR PO
Attributes:

1-Pick PO Department from DFF


SELECT MAX(D.name) FROM PO_HEADERS_ALL POH, XX_PR_DEPTS D WHERE
POH.ame_approval_id = :transactionId AND D.organization_id = POH.ATTRIBUTE3

2-Is PO Project based?


select NVL(max(att),'N') from (SELECT MAX('Y') att FROM PO_DISTRIBUTIONS_ALL PRD,
po_headers_all p WHERE 1 = 1 AND P.ame_approval_id = :transactionId AND PRD.po_header_id
= p.po_header_id and prd.project_id is not null union SELECT MAX('Y') FROM po_headers_all p
WHERE 1 = 1 AND P.ame_approval_id = :transactionId and p.ATTRIBUTE2<>'No Project' and
p.ATTRIBUTE2 IS NOT NULL )

3-Last updated by PO?


SELECT MAX(last_updated_by) FROM PO_HEADERS_ALL POH WHERE
POH.ame_approval_id=:transactionId

4-Project Numebr from DFF


SELECT MAX(ATTRIBUTE2) FROM PO_HEADERS_ALL POH WHERE
POH.ame_approval_id=:transactionId

APPROVER GROUPS:

GROUP 1: PROJECT BASED POS

select approvers_list.hr_people

from

(
SELECT 'PER:' || MAX(ATTRIBUTE1) hr_people, 1 approver_num

FROM PO_HEADERS_ALL POH

WHERE POH.ame_approval_id=:transactionId

UNION

SELECT 'PER:' || MAX(PERSON_ID) hr_people, 2 approver_num

FROM XX_EMP_POS,

PO_HEADERS_ALL POH

WHERE 1 = 1

and UPPER(NAME) LIKE '%PROCUREMENT%MANAGER%PROCUREMENT%'

and POH.ame_approval_id=:transactionId

and XX_AP_INVOICE_WF.IS_OVER_BUDGET_PO_AME(POH.PO_HEADER_ID)='N'

union

SELECT 'PER:' || (A.ATTRIBUTE11) hr_people, 2 approver_num

FROM HR_ORGANIZATION_UNITS A,XX_PRJ_ORG_JOIN_PO P

WHERE 1 = 1

AND P.ame_approval_id=:transactionId

and to_char(A.ORGANIZATION_ID)=to_char(P.OID)

and XX_AP_INVOICE_WF.IS_OVER_BUDGET_PO_AME(P.RID)='Y'

AND A.ATTRIBUTE11 IS NOT NULL

union

SELECT 'PER:' || MAX(PERSON_ID) hr_people, 3 approver_num

FROM XX_EMP_POS,

PO_HEADERS_ALL POH

WHERE 1 = 1

and UPPER(NAME) LIKE '%PROCUREMENT%MANAGER%PROCUREMENT%'

and POH.ame_approval_id=:transactionId

and XX_AP_INVOICE_WF.IS_OVER_BUDGET_PO_AME(POH.PO_HEADER_ID)='Y'
UNION

SELECT 'PER:' || (A.ATTRIBUTE11) hr_people, 3 approver_num

FROM HR_ORGANIZATION_UNITS A,XX_PRJ_ORG_JOIN_PO P

WHERE 1 = 1

AND P.ame_approval_id=:transactionId

and to_char(A.ORGANIZATION_ID)=to_char(P.OID)

and XX_AP_INVOICE_WF.IS_OVER_BUDGET_PO_AME(P.RID)='N'

AND A.ATTRIBUTE11 IS NOT NULL

AND XX_AP_INVOICE_WF.GET_PO_AMNT(:transactionId,NULL)BETWEEN 250000 AND 500000

UNION

SELECT 'PER:' || MAX(PERSON_ID) hr_people, 3 approver_num

FROM XX_EMP_POS,

PO_HEADERS_ALL POH

WHERE 1 = 1

and UPPER(NAME) LIKE '%CHIEF OPERATING OFFICER%'

and POH.ame_approval_id=:transactionId

and XX_AP_INVOICE_WF.IS_OVER_BUDGET_PO_AME(POH.PO_HEADER_ID)='N'

AND XX_AP_INVOICE_WF.GET_PO_AMNT(:transactionId,POH.PO_HEADER_ID) BETWEEN 500001


AND 1250000

UNION

SELECT 'PER:' || MAX(PERSON_ID) hr_people, 3 approver_num

FROM XX_EMP_POS,

PO_HEADERS_ALL POH

WHERE 1 = 1

and UPPER(NAME) LIKE '%CHIEF EXECUTIVE OFFICER%'

and POH.ame_approval_id=:transactionId
and XX_AP_INVOICE_WF.IS_OVER_BUDGET_PO_AME(POH.PO_HEADER_ID)='N'

AND XX_AP_INVOICE_WF.GET_PO_AMNT(:transactionId,POH.PO_HEADER_ID)> 1250000

UNION

SELECT 'PER:' || MAX(PERSON_ID) hr_people, 4 approver_num

FROM XX_EMP_POS,

PO_HEADERS_ALL POH

WHERE 1 = 1

and UPPER(NAME) LIKE '%CHIEF OPERATING OFFICER%'

and POH.ame_approval_id=:transactionId

and XX_AP_INVOICE_WF.IS_OVER_BUDGET_PO_AME(POH.PO_HEADER_ID)='Y'

AND XX_AP_INVOICE_WF.GET_PO_AMNT(:transactionId,POH.PO_HEADER_ID)<=1000000

UNION

SELECT 'PER:' || MAX(PERSON_ID) hr_people, 4 approver_num

FROM XX_EMP_POS,

PO_HEADERS_ALL POH

WHERE 1 = 1

and UPPER(NAME) LIKE '%CHIEF EXECUTIVE OFFICER%'

and POH.ame_approval_id=:transactionId

and XX_AP_INVOICE_WF.IS_OVER_BUDGET_PO_AME(POH.PO_HEADER_ID)='Y'

AND XX_AP_INVOICE_WF.GET_PO_AMNT(:transactionId,POH.PO_HEADER_ID)>1000000

order by 2

)approvers_list

where

(select last_updated_by from PO_HEADERS_ALL POH where POH.ame_approval_id=:transactionId) <>


2204

GROUP 2: PO BLANKET:
select approvers_list.hr_people

from

SELECT 'PER:' || MAX(ATTRIBUTE1) hr_people, 1 approver_num

FROM PO_HEADERS_ALL POH

WHERE POH.ame_approval_id=:transactionId

UNION

SELECT 'PER:' || MAX(PERSON_ID) hr_people, 2 approver_num

FROM XX_EMP_POS,

PO_HEADERS_ALL POH

WHERE 1 = 1

and UPPER(NAME) LIKE '%PROCUREMENT%MANAGER%PROCUREMENT%'

and POH.ame_approval_id=:transactionId

order by 2

)approvers_list

GROUP 3: MULTIPLE PO APPROVERS FROM DFF

select approvers_list.hr_people

from

SELECT 'PER:' || MAX(ATTRIBUTE1) hr_people, 1 approver_num

FROM PO_HEADERS_ALL POH

WHERE POH.ame_approval_id=:transactionId

UNION

SELECT 'PER:' || MAX(PERSON_ID) hr_people, 2 approver_num

FROM XX_EMP_POS

WHERE 1 = 1

and UPPER(NAME) LIKE '%LOGISTICS%ACCOMMODATION%MANAGER%'


UNION

SELECT 'PER:' || MAX(PERSON_ID) hr_people, 3 approver_num

FROM XX_EMP_POS

WHERE 1 = 1

and UPPER(NAME) LIKE '%CHIEF EXECUTIVE OFFICER%'

AND XX_AP_INVOICE_WF.GET_PO_AMNT(:transactionId,NULL)>100000

order by 2

)approvers_list

where

(select last_updated_by from PO_HEADERS_ALL POH where POH.ame_approval_id=:transactionId) <>


2204

You might also like