-- SQL Query - Obtain Hold Details for an Order and Hold Code and Release Reason Code Defintitions
;
-- Holds which have been released:
SELECT
oh.Source_Order_Number
, hdi.DOO_Header_ID
, hdi.DOO_Line_id
, hdi.Fulfill_Line_id
, TRANSACTION_ENTITY_NAME1
, hdi.TRANSACTION_ENTITY_ID1
, dhcb.HOLD_CODE
, dhct.HOLD_NAME
, dhct.HOLD_DESCRIPTION
, dhct.HOLD_CODE_ID
, dhcb.EFFECTIVE_START_DATE
, dhcb.EFFECTIVE_END_DATE
, dhcb.GENERAL_HOLD_FLAG
, dhcb.SYSTEM_FLAG
, dhcb.APPLY_HOLD_ROLE_ELIGIBILITY
, dhcB.RELEASE_HOLD_ROLE_ELIGIBILITY
, hdi.pending_flag
, hdi.deleted_flag
, hdi.Hold_Instance_id
, hdi.hold_code_id
, hdi.APPLY_SYSTEM
, hdi.apply_date
, hdi.APPLY_USER_ID
, hdi.RELEASE_USER_ID
, hdi.RELEASE_DATE
, hdi.HOLD_RUNNING_TASK_FLAG
, hdi.HOLD_COMMENTS
, hdi.HOLD_RELEASE_REASON_CODE
, hdi.HOLD_RELEASE_COMMENTS
, hdi.Active_Flag
, hdi.TRANSACTION_ENTITY_ID1
, hdi.HOLD_RELEASE_REASON_CODE
, hdi.HOLD_RELEASE_COMMENTS
FROM
Fusion.DOO_Hold_Instances hdi
, Fusion.DOO_Headers_all oh
, Fusion.DOO_Lines_all ol
, Fusion.DOO_Fulfill_Lines_all fl
, Fusion.DOO_HOLD_CODES_B dhcb
, Fusion.DOO_HOLD_CODES_tl dhct
, fusion.FND_LOOKUP_VALUES_B flvb
, fusion.FND_LOOKUP_VALUES_tl flvt
WHERE
oh.Source_Order_Number = :SOURCE_ORDER_NUMBER
AND hdi.hold_code_id = dhcb.hold_code_id
AND oh.Header_ID = ol.Header_id
AND oh.Header_ID = fl.Header_id
AND fl.line_id =ol.line_id
AND
(
(
TRANSACTION_ENTITY_NAME1 = 'DOO_ORDER_LINES_V'
AND TRANSACTION_ENTITY_ID1 = ol.Line_id
)
OR
(
TRANSACTION_ENTITY_NAME1 = 'DOO_ORDER_HEADERS_V'
AND TRANSACTION_ENTITY_ID1 = oh.Header_id
)
OR
(
TRANSACTION_ENTITY_NAME1 = 'DOO_ORDER_FLINES_V'
AND TRANSACTION_ENTITY_ID1 = fl.Fulfill_Line_id
)
)
AND dhct.hold_code_id = dhcb.hold_code_id
AND dhct.language = USERENV('LANG')
AND hdi.HOLD_RELEASE_REASON_CODE IS NOT NULL
AND hdi.HOLD_RELEASE_REASON_CODE =flvb.LOOKUP_CODE
AND flvt.lookup_code = flvb.lookup_code
AND flvt.LOOKUP_TYPE = flvb.LOOKUP_TYPE
AND flvt.LOOKUP_TYPE = 'DOO_HLD_RELEASE_REASON'
AND flvt.language = USERENV('LANG')
AND oh.submitted_flag = 'Y'
and active_flag <> 'Y'
ORDER BY
oh.creation_Date DESC
;
-- Active holds on an order:
SELECT
oh.Source_Order_Number
, hdi.DOO_Header_ID
, hdi.DOO_Line_id
, hdi.Fulfill_Line_id
, TRANSACTION_ENTITY_NAME1
, hdi.TRANSACTION_ENTITY_ID1
, dhcb.HOLD_CODE
, dhct.HOLD_NAME
, dhct.HOLD_DESCRIPTION
, dhct.HOLD_CODE_ID
, dhcb.EFFECTIVE_START_DATE
, dhcb.EFFECTIVE_END_DATE
, dhcb.GENERAL_HOLD_FLAG
, dhcb.SYSTEM_FLAG
, dhcb.APPLY_HOLD_ROLE_ELIGIBILITY
, dhcB.RELEASE_HOLD_ROLE_ELIGIBILITY
, hdi.pending_flag
, hdi.deleted_flag
, hdi.Hold_Instance_id
, hdi.hold_code_id
, hdi.APPLY_SYSTEM
, hdi.apply_date
, hdi.APPLY_USER_ID
, hdi.RELEASE_USER_ID
, hdi.RELEASE_DATE
, hdi.HOLD_RUNNING_TASK_FLAG
, hdi.HOLD_COMMENTS
, hdi.HOLD_RELEASE_REASON_CODE
, hdi.HOLD_RELEASE_COMMENTS
, hdi.Active_Flag
, hdi.TRANSACTION_ENTITY_ID1
, hdi.HOLD_RELEASE_REASON_CODE
, hdi.HOLD_RELEASE_COMMENTS
FROM
Fusion.DOO_Hold_Instances hdi
, Fusion.DOO_Headers_all oh
, Fusion.DOO_Lines_all ol
, Fusion.DOO_Fulfill_Lines_all fl
, Fusion.DOO_HOLD_CODES_B dhcb
, Fusion.DOO_HOLD_CODES_tl dhct
WHERE
oh.Source_Order_Number = :SOURCE_ORDER_NUMBER
AND hdi.hold_code_id = dhcb.hold_code_id
AND oh.Header_ID = ol.Header_id
AND oh.Header_ID = fl.Header_id
AND fl.line_id =ol.line_id
AND
(
(
TRANSACTION_ENTITY_NAME1 = 'DOO_ORDER_LINES_V'
AND TRANSACTION_ENTITY_ID1 = ol.Line_id
)
OR
(
TRANSACTION_ENTITY_NAME1 = 'DOO_ORDER_HEADERS_V'
AND TRANSACTION_ENTITY_ID1 = oh.Header_id
)
OR
(
TRANSACTION_ENTITY_NAME1 = 'DOO_ORDER_FLINES_V'
AND TRANSACTION_ENTITY_ID1 = fl.Fulfill_Line_id
)
)
AND dhct.hold_code_id = dhcb.hold_code_id
AND dhct.language = USERENV('LANG')
AND oh.submitted_flag = 'Y'
and active_flag = 'Y'
ORDER BY
oh.creation_Date DESC
;
-- Hold Codes
SELECT
dhcb.HOLD_CODE
, dhct.HOLD_NAME
, dhct.HOLD_DESCRIPTION
, dhct.HOLD_CODE_ID
, dhcb.EFFECTIVE_START_DATE
, dhcb.EFFECTIVE_END_DATE
, dhcb.GENERAL_HOLD_FLAG
, dhcb.SYSTEM_FLAG
, dhcb.APPLY_HOLD_ROLE_ELIGIBILITY
, dhcB.RELEASE_HOLD_ROLE_ELIGIBILITY
FROM
Fusion.DOO_HOLD_CODES_B dhcb
, Fusion.DOO_HOLD_CODES_tl dhct
WHERE
dhct.hold_code_id = dhcb.hold_code_id
AND dhct.language = USERENV('LANG')
ORDER BY
dhcb.HOLD_CODE
;
-- Release Reason Codes
SELECT
flvb.LOOKUP_CODE
, flvt.MEANING
, flvb.ENABLED_FLAG
, flvb.START_DATE_ACTIVE
, flvb.END_DATE_ACTIVE
FROM
fusion.FND_LOOKUP_VALUES_B flvb
, fusion.FND_LOOKUP_VALUES_tl flvt
WHERE
flvt.lookup_code = flvb.lookup_code
AND flvt.LOOKUP_TYPE = flvb.LOOKUP_TYPE
AND flvt.LOOKUP_TYPE = 'DOO_HLD_RELEASE_REASON'
AND flvt.language = USERENV('LANG')
ORDER BY
flvb.LOOKUP_CODE
;