All pastes #801092 Raw Edit

Miscellany

public text v1 · immutable
#801092 ·published 2007-11-28 23:55 UTC
rendered paste body
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[prc_getFleetRequisitionInfo]
(
	@USER_NAME  varchar(100),
	@StatusID int = NULL
)
AS

if @USER_NAME = 'ALL' 
	set @USER_NAME = NULL


SELECT DISTINCT fleetRequisitionID, ConditionID into #TMP FROM 
(
SELECT 
	F.fleetRequisitionID,	CASE WHEN EXISTS (Select * 
							from 	relFleetRequisitionApproval R, 	relFleetApprovalProcess P, 	tblFleetRequisition F1
							Where	R.fleetApprovalProcessId = P.fleetApprovalProcessId
							AND		R.fleetRequisitionID = F1.fleetRequisitionID
							AND		F1.fleetRequisitionID = F.fleetRequisitionID
							AND		wsOrderStatusID = 3) 
		THEN 4
		WHEN 	(Select count(*) from 	relFleetRequisitionApproval R, 	relFleetApprovalProcess P, 	tblFleetRequisition F1
							Where	R.fleetApprovalProcessId = P.fleetApprovalProcessId
							AND		R.fleetRequisitionID = F1.fleetRequisitionID
							AND		F1.fleetRequisitionID = F.fleetRequisitionID
							AND		wsOrderStatusID = 2) 
							= 
							(Select count(*) from 	relFleetRequisitionApproval R, 	relFleetApprovalProcess P, 	tblFleetRequisition F1
							Where	R.fleetApprovalProcessId = P.fleetApprovalProcessId
							AND		R.fleetRequisitionID = F1.fleetRequisitionID
							AND		F1.fleetRequisitionID = F.fleetRequisitionID
							)				
		THEN 3  
		WHEN	EXISTS (Select * 
							from 	relFleetRequisitionApproval R, 	relFleetApprovalProcess P, 	tblFleetRequisition F1
							Where	R.fleetApprovalProcessId = P.fleetApprovalProcessId
							AND		R.fleetRequisitionID = F1.fleetRequisitionID
							AND		F1.fleetRequisitionID = F.fleetRequisitionID
							AND		wsOrderStatusID = 2)
		THEN 2
		ELSE 1
		END as ConditionID
from 	relFleetRequisitionApproval R, 	relFleetApprovalProcess P, 	tblFleetRequisition F
Where	R.fleetApprovalProcessId = P.fleetApprovalProcessId
AND		R.fleetRequisitionID = F.fleetRequisitionID
AND                   ((F.onlineEquipmentPurchase <> 1) OR (F.onlineEquipmentPurchase=1 AND OnlinePurchaseID IS NOT NULL))  
) A

IF @StatusID IS NOT NULL And @StatusID<>0
BEGIN
	DELETE FROM #TMP
	WHERE
	CASE 
		WHEN ConditionID>1 THEN ConditionID-1
		ELSE 1
	END NOT LIKE @StatusID
END

select F1.fleetRequisitionId as id  ,R.fleetRequisitionapprovalid, B.costCenter as costCenter, fleetRequisitionDate as Date,
fleetApprovalProcessAuthorizorNTUserName as Authorizer, fleetRequisitionMadeBy as Requestor,
CASE WHEN T.ConditionID = 1 then (select wsOrderStatus from lkpWSOrderStatus where wsOrderSTatusID = 1)
else (select wsOrderStatus from lkpWSOrderStatus where wsOrderSTatusID = T.ConditionID - 1) end As Status,
 CASE 
		WHEN  fleetRequisitionApprovalBy IS NULL THEN  fleetApprovalProcessAuthorizorNTUserName 
  ELSE   FLEETrequisitionApprovalBy end  as AssignedTo,
OnlinePurchaseID,
CASE onlineEquipmentPurchase
WHEN 1 THEN 'Eq. Purch.'
ELSE 'Fleet'
END As Type
FROM relFleetRequisitionApproval R, 	relFleetApprovalProcess P, 	tblFleetRequisition F1, #TMP T, lkpBranch B
					Where	R.fleetApprovalProcessId = P.fleetApprovalProcessId
					AND		R.fleetRequisitionID = F1.fleetRequisitionID
					AND		R.fleetRequisitionID = T.fleetRequisitionID
					AND 		F1.branchID = B.branchID
					AND		R.FleetApprovalProcessID = (Select max(FleetApprovalProcessID) from  relFleetRequisitionApproval A 
											Where A.fleetRequisitionID = T.fleetRequisitionID)
					AND		T.ConditionID = 3
					AND 		(P.fleetApprovalProcessAuthorizorNTUserName = ISNULL(@USER_NAME, P.fleetApprovalProcessAuthorizorNTUserName) 
							OR  P.fleetApprovalProcessAuthorizorDelegateNTUserName = ISNULL(@USER_NAME,P.fleetApprovalProcessAuthorizorDelegateNTUserName))

UNION
SELECT F1.fleetRequisitionId as id  ,R.fleetRequisitionapprovalid, B.costCenter as costCenter, fleetRequisitionDate as Date,
fleetApprovalProcessAuthorizorNTUserName as Authorizer, fleetRequisitionMadeBy as Requestor,
CASE WHEN T.ConditionID = 1 then (select wsOrderStatus from lkpWSOrderStatus where wsOrderSTatusID = 1)
else (select wsOrderStatus from lkpWSOrderStatus where wsOrderSTatusID = T.ConditionID - 1) end As Status, 
 CASE 
		WHEN  fleetRequisitionApprovalBy IS NULL THEN  fleetApprovalProcessAuthorizorNTUserName 
  ELSE   FLEETrequisitionApprovalBy end  as AssignedTo,
OnlinePurchaseID,
CASE onlineEquipmentPurchase
WHEN 1 THEN 'Eq. Purch.'
ELSE 'Fleet'
END As Type
FROM relFleetRequisitionApproval R, 	relFleetApprovalProcess P, 	tblFleetRequisition F1, #TMP T, lkpBranch B
					Where	R.fleetApprovalProcessId = P.fleetApprovalProcessId
					AND		R.fleetRequisitionID = F1.fleetRequisitionID
					AND		R.fleetRequisitionID = T.fleetRequisitionID
					AND 		F1.branchID = B.branchID
					AND		R.FleetApprovalProcessID = (Select min(FleetApprovalProcessID) from  relFleetRequisitionApproval A 
											Where A.fleetRequisitionID = T.fleetRequisitionID)
					AND		T.ConditionID = 1
					AND 		(P.fleetApprovalProcessAuthorizorNTUserName = ISNULL(@USER_NAME, P.fleetApprovalProcessAuthorizorNTUserName) 
							OR  P.fleetApprovalProcessAuthorizorDelegateNTUserName = ISNULL(@USER_NAME,P.fleetApprovalProcessAuthorizorDelegateNTUserName))

UNION
SELECT F1.fleetRequisitionId as id  ,R.fleetRequisitionapprovalid, B.costCenter as costCenter, fleetRequisitionDate as Date,
fleetApprovalProcessAuthorizorNTUserName as Authorizer, fleetRequisitionMadeBy as Requestor,
CASE WHEN T.ConditionID = 1 then (select wsOrderStatus from lkpWSOrderStatus where wsOrderSTatusID = 1)
else (select wsOrderStatus from lkpWSOrderStatus where wsOrderSTatusID = T.ConditionID - 1) end As Status,
 CASE 
		WHEN  fleetRequisitionApprovalBy IS NULL THEN  fleetApprovalProcessAuthorizorNTUserName 
  ELSE   FLEETrequisitionApprovalBy end  as AssignedTo,
OnlinePurchaseID,
CASE onlineEquipmentPurchase
WHEN 1 THEN 'Eq. Purch.'
ELSE 'Fleet'
END As Type
FROM relFleetRequisitionApproval R, 	relFleetApprovalProcess P, 	tblFleetRequisition F1, #TMP T, lkpBranch B
					Where	R.fleetApprovalProcessId = P.fleetApprovalProcessId
					AND		R.fleetRequisitionID = F1.fleetRequisitionID
					AND		R.fleetRequisitionID = T.fleetRequisitionID
					AND 		F1.branchID = B.branchID
					AND		R.FleetApprovalProcessID = (Select min(FleetApprovalProcessID) from  relFleetRequisitionApproval A 
											Where A.fleetRequisitionID = T.fleetRequisitionID AND wsOrderStatusID=1)
					AND		T.ConditionID = 2
					AND 		(P.fleetApprovalProcessAuthorizorNTUserName = ISNULL(@USER_NAME, P.fleetApprovalProcessAuthorizorNTUserName) 
							OR  P.fleetApprovalProcessAuthorizorDelegateNTUserName = ISNULL(@USER_NAME,P.fleetApprovalProcessAuthorizorDelegateNTUserName))

UNION
SELECT F1.fleetRequisitionId as id  ,R.fleetRequisitionapprovalid, B.costCenter as costCenter, fleetRequisitionDate as Date,
fleetApprovalProcessAuthorizorNTUserName as Authorizer, fleetRequisitionMadeBy as Requestor,
CASE WHEN T.ConditionID = 1 then (select wsOrderStatus from lkpWSOrderStatus where wsOrderSTatusID = 1)
else (select wsOrderStatus from lkpWSOrderStatus where wsOrderSTatusID = T.ConditionID - 1) end As Status,
 CASE 
		WHEN  fleetRequisitionApprovalBy IS NULL THEN  fleetApprovalProcessAuthorizorNTUserName 
  ELSE   FLEETrequisitionApprovalBy end  as AssignedTo,
OnlinePurchaseID,
CASE onlineEquipmentPurchase
WHEN 1 THEN 'Eq. Purch.'
ELSE 'Fleet'
END As Type		
FROM relFleetRequisitionApproval R, 	relFleetApprovalProcess P, 	tblFleetRequisition F1, #TMP T, lkpBranch B
					Where	R.fleetApprovalProcessId = P.fleetApprovalProcessId	
					AND		R.fleetRequisitionID = F1.fleetRequisitionID
					AND		R.fleetRequisitionID = T.fleetRequisitionID
					AND 		F1.branchID = B.branchID
					AND		R.FleetApprovalProcessID = (Select min(FleetApprovalProcessID) from  relFleetRequisitionApproval A 
											Where A.fleetRequisitionID = T.fleetRequisitionID AND wsOrderStatusID=3)
					AND		T.ConditionID = 4
					AND 		(P.fleetApprovalProcessAuthorizorNTUserName = ISNULL(@USER_NAME, P.fleetApprovalProcessAuthorizorNTUserName) 
							OR  P.fleetApprovalProcessAuthorizorDelegateNTUserName = ISNULL(@USER_NAME,P.fleetApprovalProcessAuthorizorDelegateNTUserName))

order by Date desc