CREATE OR REPLACE PROCEDURE FCSS.FCSS_REQUEST_SUMMARY(
ivOfficeID IN VARCHAR2 DEFAULT NULL,
ivAssignmentID IN VARCHAR2 DEFAULT NULL,
ivStartDt IN VARCHAR2 DEFAULT NULL,
ocRequestType OUT FCSS_PACKAGE.FCSSType,
ovErrorMsg OUT VARCHAR2
) AS
withClause VARCHAR2(2000) := NULL;
selectClause VARCHAR2(4000) := NULL;
cmdSQL VARCHAR2(4000) := NULL;
BEGIN
withClause:= 'WITH SelectedRequests AS (
SELECT R.REQ_ID, R.REQ_SIBLING_ID, R.REQ_STATUS, R.REQ_START_DT, R.OFFICE_ID, R.ASSIGNMENT_ID FROM FCSS_REQUEST R
(WHERE 1=1)
AND TRUNC(R.REQ_START_DT) BETWEEN TO_DATE('
||ivStartDt|| ',"MM/DD/RRRR") AND TO_DATE('
||ivStartDt|| ' ,"MM/DD/RRRR")
AND R.OFFICE_ID ='|| ivOfficeID ||
'AND R.ASSIGNMENT_ID ='|| ivAssignmentID||')';
--OPEN ocRequestType FOR
selectClause:= '
Select
(select T.DESCRIPTION from FCSS_REQUEST_TYPE T where T.CODE = 1) AS DESCRIPTION,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="PND") AS PENDING,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="APP") AS APPROVED,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="ASN") AS ASSIGNED,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="CAN") AS CANCELLED,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="COM") AS COMPLETED
from dual
union
Select
(select T.DESCRIPTION from FCSS_REQUEST_TYPE T where T.CODE = 2) AS DESCRIPTION,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="PND") AS PENDING,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="APP") AS APPROVED,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="ASN") AS ASSIGNED,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="CAN") AS CANCELLED,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="COM") AS COMPLETED
from dual
union
Select
(select T.DESCRIPTION from FCSS_REQUEST_TYPE T where T.CODE = 3) AS DESCRIPTION,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="PND") AS PENDING,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="APP") AS APPROVED,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="ASN") AS ASSIGNED,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="CAN") AS CANCELLED,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="COM") AS COMPLETED
from dual
union
Select
(select T.DESCRIPTION from FCSS_REQUEST_TYPE T where T.CODE = 4) AS DESCRIPTION,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="PND") AS PENDING,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="APP") AS APPROVED,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="ASN") AS ASSIGNED,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="CAN") AS CANCELLED,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="COM") AS COMPLETED
from dual
union
Select
(select T.DESCRIPTION from FCSS_REQUEST_TYPE T where T.CODE = 5) AS DESCRIPTION,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="PND") AS PENDING,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="APP") AS APPROVED,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="ASN") AS ASSIGNED,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="CAN") AS CANCELLED,
(select Count(*) from FCSS_REQUEST where REQ_STATUS="COM") AS COMPLETED
from dual;';
cmdSQL:= withClause || selectClause;
INSERT INTO TEST Values (cmdSQL, SYSDATE);
COMMIT;
OPEN ocRequestType FOR cmdSQL;
exception When others then
ovErrorMsg := 'FCSS_REQUEST_SUMMARY - ' || SUBSTR(SQLERRM,1,200);
END;