Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.95 KB | None | 0 0
  1. USE [GIX]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[GetBulletinRecepientSummary] Script Date: 23/02/2018 11:14:39 AM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. -- =============================================
  9. -- Author: Camille
  10. -- Create date: 08/12/2011
  11. -- Description: Returns
  12. -- =============================================
  13. ALTER PROCEDURE [dbo].[GetBulletinRecepientSummary]
  14. @BulletinID int
  15.  
  16. AS
  17. BEGIN
  18. --DECLARE @BulletinID int = 18
  19. DECLARE @Criteria VARCHAR(10);
  20. DECLARE @BulletinDate Date = NULL
  21. DECLARE @GasGateIDs VARCHAR(MAX);
  22. DECLARE @LoadSheddingCategoryIDS VARCHAR(MAX);
  23. DECLARE @PoolIDs VARCHAR(MAX);
  24. DECLARE @WeldedPointIDs VARCHAR(MAX);
  25. DECLARE @PartyIDs VARCHAR(MAX);
  26.  
  27.  
  28. SELECT @Criteria = Criteria, @BulletinDate = BulletinDate
  29. FROM Bulletin
  30.  
  31. SELECT @GasGateIDs = COALESCE(@GasGateIDs + ', ' + convert(varchar(max),BulletinGasGateid), convert(varchar(max),BulletinGasGateid))
  32. FROM BulletinGasGate
  33. where bulletinid = @BulletinID
  34.  
  35.  
  36. SELECT @LoadSheddingCategoryIDS = COALESCE(@LoadSheddingCategoryIDS + ', ' + convert(varchar(max),LoadSheddingCategoryid), convert(varchar(max),LoadSheddingCategoryid))
  37. FROM BulletinLoadSheddingCategory
  38. where bulletinid = @BulletinID
  39.  
  40. SELECT @PoolIDs = COALESCE(@PoolIDs + ', ' + convert(varchar(max),PoolId), convert(varchar(max),PoolId))
  41. FROM BulletinPool
  42. where bulletinid = @BulletinID
  43.  
  44.  
  45.  
  46. SELECT @WeldedPointIDs = COALESCE(@WeldedPointIDs + ', ' + convert(varchar(max),WeldedPointId), convert(varchar(max),WeldedPointId))
  47. FROM BulletinWeldedPoint
  48. where bulletinid = @BulletinID
  49.  
  50.  
  51.  
  52. SELECT @PartyIDs = COALESCE(@PartyIDs + ', ' + convert(varchar(max),PartyId), convert(varchar(max),PartyId))
  53. FROM BulletinParty
  54. where bulletinid = @BulletinID
  55.  
  56. --select ''+ @BulletinGasGateIds BulletinGasGateIds , @BulletinLSCIds BulletinLSCIds, @BulletinPoolIds BulletinPoolIds, @BulletinWeldedPointIds BulletinWeldedPointIds, @BulletinPartyIds BulletinPartyIds
  57.  
  58.  
  59.  
  60.  
  61.  
  62. DECLARE @SQL varchar(MAX);
  63. DECLARE @CurrentDate DATE = ISNULL(@BulletinDate,GETDATE())
  64. DECLARE @FirstCriteria TINYINT = 1
  65. IF @Criteria IS NULL
  66. SET @Criteria ='AND'
  67.  
  68. DECLARE @Temp as Table(
  69. RowNumber Int,
  70. PartyName VARCHAR(100),
  71. WeldedPointName VARCHAR(100),
  72. LSCName VARCHAR(100),
  73. [PoolName] VARCHAR(100),
  74. GasGateCode VARCHAR(100)
  75. )
  76.  
  77.  
  78. SET @SQL = ' SELECT DISTINCT ROW_NUMBER() OVER(ORDER BY Pool.Name asc) AS RowNumber, vwPartyActive.PartyName, WeldedPointName, LOV.Name LSC, Pool.Name, GasGate.Code GasGateCode'
  79. SET @SQL = @SQL + ' FROM vwWeldedPointActive '
  80. SET @SQL = @SQL + ' INNER JOIN ContactWeldedPoint ON vwWeldedPointActive.WeldedPointID = ContactWeldedPoint.WeldedPointID '
  81. SET @SQL = @SQL + ' INNER JOIN ContractWeldedPoint ON vwWeldedPointActive.WeldedPointID = ContractWeldedPoint.WeldedPointID '
  82. SET @SQL = @SQL + ' INNER JOIN vwContactActive ON ContactWeldedPoint.ContactID = vwContactActive.ContactID '
  83. SET @SQL = @SQL + ' INNER JOIN GasGate ON vwWeldedPointActive.GasGateID = GasGate.GasGateID '
  84. SET @SQL = @SQL + ' INNER JOIN Pool ON GasGate.PoolID = Pool.PoolID '
  85. SET @SQL = @SQL + ' INNER JOIN LOV on vwWeldedPointActive.LOVLoadSheddingCategoryID = LOV.LOVID '
  86. SET @SQL = @SQL + ' INNER JOIN vwPartyActive on vwPartyActive.PartyID = vwContactActive.PartyID '
  87. SET @SQL = @SQL + ' WHERE IsEmergencyContact = 1 AND '
  88. SET @SQL = @SQL + ' WeldedPointEndDate >= ''' + CONVERT(VARCHAR(50),@CurrentDate) +'''' +' AND '
  89.  
  90. IF @PartyIDs IS NOT NULL AND LEN(@PartyIDs)>0
  91. BEGIN
  92. SET @SQL = @SQL + CASE WHEN @FirstCriteria = 0 THEN @Criteria ELSE ' (' END + ' vwContactActive.PartyID IN (' + CAST(@PartyIDs AS VARCHAR(max)) +') '
  93. SET @FirstCriteria = 0;
  94. END
  95.  
  96. IF @WeldedPointIDs IS NOT NULL AND LEN(@WeldedPointIDs)>0
  97. BEGIN
  98. SET @SQL = @SQL + CASE WHEN @FirstCriteria = 0 THEN @Criteria ELSE ' (' END + ' vwWeldedPointActive.WeldedPointID IN (' + CAST(@WeldedPointIDs AS VARCHAR(max)) +') '
  99. SET @FirstCriteria = 0;
  100. END
  101.  
  102. IF @GasGateIDs IS NOT NULL AND LEN(@GasGateIDs)>0
  103. BEGIN
  104. SET @SQL = @SQL + CASE WHEN @FirstCriteria = 0 THEN @Criteria ELSE ' (' END + ' GasGate.GasGateID IN (' + CAST(@GasGateIDs AS VARCHAR(max)) +') '
  105. SET @FirstCriteria = 0;
  106. END
  107.  
  108. IF @PoolIDs IS NOT NULL AND LEN(@PoolIDs)>0
  109. BEGIN
  110. SET @SQL = @SQL + CASE WHEN @FirstCriteria = 0 THEN @Criteria ELSE ' (' END + ' Pool.PoolID IN (' + CAST(@PoolIDs AS VARCHAR(max)) +') '
  111. SET @FirstCriteria = 0;
  112. END
  113.  
  114. IF @LoadSheddingCategoryIDS IS NOT NULL AND LEN(@LoadSheddingCategoryIDS)>0
  115. BEGIN
  116. SET @SQL = @SQL + CASE WHEN @FirstCriteria = 0 THEN @Criteria ELSE ' (' END + ' LOVLoadSheddingCategoryID IN (' + CAST(@LoadSheddingCategoryIDS AS VARCHAR(max))+') '
  117. SET @FirstCriteria = 0;
  118. END
  119.  
  120. SET @SQL = @SQL + CASE WHEN @FirstCriteria = 0 THEN ')' ELSE ' (1=0)' END
  121.  
  122.  
  123. INSERT INTO @Temp
  124. EXEC (@SQL)
  125. PRINT (@SQL)
  126.  
  127.  
  128.  
  129. select RowNumber,
  130. [PoolName] ,
  131. PartyName ,
  132. WeldedPointName ,
  133. LSCName , GasGateCode from @Temp
  134.  
  135.  
  136.  
  137.  
  138. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement