You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

170 lines
11 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_cardStockReport] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE proc [dbo].[proc_cardStockReport] (
  9. @flag VARCHAR(10)
  10. ,@searchBy VARCHAR(20)=NULL
  11. ,@cardBy VARCHAR(20)=NULL
  12. ,@szone VARCHAR(20)=NULL
  13. ,@user VARCHAR(20)=NULL
  14. ,@sagent VARCHAR(20)=NULL
  15. ,@remitCardNo VARCHAR(20)=NULL
  16. )
  17. AS SET NOCOUNT ON;
  18. BEGIN
  19. DECLARE @FilterList TABLE(head VARCHAR(50), value VARCHAR(100))
  20. IF OBJECT_ID('tempdb..#TEMP_CARDSTOCK') IS NOT NULL
  21. DROP TABLE TEMP_CARDSTOCK
  22. CREATE TABLE #TEMP_CARDSTOCK(remitcardNo VARCHAR(16), cardStatus CHAR(20),agentId VARCHAR(20))
  23. DECLARE
  24. @table VARCHAR(MAX) = NULL
  25. ,@gobalFilter VARCHAR(MAX) = ' WHERE icm.isDeleted IS NULL'
  26. ,@sql VARCHAR(MAX) = NULL
  27. ,@url VARCHAR(MAX) = NULL
  28. IF @sZone IS NOT NULL
  29. BEGIN
  30. INSERT INTO @FilterList
  31. SELECT 'Sending Zone',@sZone
  32. SET @gobalFilter=@gobalFilter+' AND am.agentState ='''+@sZone+''''
  33. END
  34. IF @sAgent IS NOT NULL
  35. BEGIN
  36. INSERT INTO @FilterList
  37. SELECT 'Sending Agent',agentName FROM agentMaster WITH(NOLOCK) WHERE agentId=@sAgent
  38. SET @gobalFilter=@gobalFilter+' AND am.agentId ='''+@sAgent+''''
  39. END
  40. IF @remitCardNo IS NOT NULL
  41. BEGIN
  42. INSERT INTO @FilterList
  43. SELECT 'Membership Id',@remitcardNo
  44. SET @gobalFilter=@gobalFilter+' AND cast(icm.remitcardNo as varchar) ='''+@remitcardNo+''''
  45. END
  46. IF @cardBy IS NOT NULL
  47. BEGIN
  48. INSERT INTO @FilterList
  49. SELECT 'Card Type'
  50. ,CASE WHEN @cardBy ='r' THEN 'IME Remit Card' ELSE
  51. CASE WHEN @cardBy ='c' THEN 'Customer Card' ELSE
  52. 'IME -Pin Remit Card' END END
  53. SET @gobalFilter=@gobalFilter+' AND icm.cardType ='''+@cardBy+''''
  54. END
  55. INSERT INTO @FilterList
  56. SELECT 'Report By',CASE WHEN @flag ='sz' THEN 'ZONE WISE'
  57. WHEN @flag ='sa' THEN 'AGENT WISE'
  58. WHEN @flag ='s' THEN 'DETAIL'
  59. END
  60. SET @sql = 'insert into #TEMP_CARDSTOCK(remitcardNo,cardStatus,agentId)
  61. select icm.remitcardNo ,cardStatus,icm.agentId
  62. from imeremitcardmaster icm with(nolock) INNER JOIN agentMaster am WITH(NOLOCK)
  63. ON icm.agentId=am.agentId '
  64. +@gobalFilter +'';
  65. IF @flag='sz'
  66. BEGIN
  67. SET @table='
  68. SELECT
  69. [S.N.] = ROW_NUMBER() OVER(ORDER BY icm.zone)
  70. ,[Zone] = ''<a href = "#" onclick=OpenInNewWindow("Reports.aspx?reportName=getcardstockreport&searchBy=sa&sZone=''+icm.zone+''&cardBy='+@cardBy+'&searchText='+ISNULL(@remitCardNo,'')+'")>''+ icm.zone +''</a>''
  71. ,[Transfered] = sum(tCount)
  72. ,[Enrolled] = sum(eCount)
  73. ,[Total] = sum(tCount) + sum(eCount)
  74. FROM(
  75. SELECT
  76. zone = am.agentState
  77. ,tCount = case when icm.cardStatus = ''Transfered'' then count(''X'') else 0 end
  78. ,eCount = case when icm.cardStatus = ''Enrolled'' then count(''X'') else 0 end
  79. FROM imeremitcardMaster icm with(nolock)
  80. INNER JOIN agentMaster am with(nolock) ON icm.agentId = am.agentId
  81. '+@gobalFilter+'
  82. GROUP BY am.agentState,icm.cardStatus
  83. ) icm GROUP BY icm.zone'
  84. PRINT @table
  85. EXEC(@table)
  86. END
  87. IF @flag='sa'
  88. BEGIN
  89. SET @table='
  90. SELECT
  91. [S.N.] = ROW_NUMBER() OVER(ORDER BY am.agentState,am.agentName)
  92. ,[Zone] = am.agentState
  93. ,[Agent Name] = ''<a href = "#" onclick=OpenInNewWindow("Reports.aspx?reportName=getcardstockreport&searchBy=detail&sAgent=''+ CAST(am.agentId AS VARCHAR)+''&cardBy='+@cardBy+'&searchText='+ISNULL(@remitCardNo,'')+'")>''+ am.agentName +''</a>''
  94. ,[Transfered] = sum(tCount)
  95. ,[Enrolled] = sum(eCount)
  96. ,[Total] = sum(tCount) + sum(eCount)
  97. FROM(
  98. SELECT
  99. agentId = am.agentId
  100. ,tCount = case when icm.cardStatus = ''Transfered'' then count(''X'') else 0 end
  101. ,eCount = case when icm.cardStatus = ''Enrolled'' then count(''X'') else 0 end
  102. FROM imeremitcardMaster icm with(nolock)
  103. INNER JOIN agentMaster am with(nolock) ON icm.agentId = am.agentId
  104. '+@gobalFilter+'
  105. GROUP BY am.agentId,icm.cardStatus
  106. ) icm INNER JOIN dbo.agentMaster am WITH(NOLOCK) ON icm.agentId = am.agentId
  107. GROUP BY am.agentId,am.agentState, am.agentName'
  108. PRINT @table
  109. EXEC (@table)
  110. END
  111. IF @flag='detail'
  112. BEGIN
  113. SET @table='
  114. SELECT
  115. [S.N.] = ROW_NUMBER() OVER(ORDER BY icm.cardStatus)
  116. ,[Card Number] = remitcardNo
  117. ,[Zone] = am.agentState
  118. ,[Agent Name] = am.agentName
  119. ,[Status] = CASE WHEN icm.cardStatus=''HO'' THEN ''Available'' else icm.cardStatus END
  120. ,[Uploaded By] = icm.createdBy
  121. ,[Uploaded Date] = icm.createdDate
  122. ,[Transfered By] = icm.transferedBy
  123. ,[Transfered Date] = icm.transferedDate
  124. ,[Enrolled By] = enrolledBy
  125. ,[Enrolled Date] = enrolledDate
  126. FROM imeremitcardmaster icm WITH(NOLOCK)
  127. INNER JOIN agentMaster am WITH(NOLOCK) ON icm.agentId = am.agentId
  128. '+@gobalFilter
  129. PRINT @Table
  130. EXEC(@Table)
  131. END
  132. IF @flag='s'
  133. BEGIN
  134. SET @gobalFilter=@gobalFilter+' ORDER BY am.agentName ASC'
  135. SET @table='SELECT
  136. icm.remitcardNo as [Card Number]
  137. ,CASE WHEN icm.cardStatus=''HO'' THEN ''Available'' else icm.cardStatus END AS [Status]
  138. FROM imeremitcardmaster icm WITH(NOLOCK)
  139. INNER JOIN agentMaster am WITH(NOLOCK) on isnull(icm.agentId,1001)=am.agentId'+ @gobalFilter
  140. print @table
  141. EXEC (@table)
  142. END
  143. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  144. SELECT * FROM @FilterList
  145. SELECT 'CARD STOCK REPORT' title
  146. END
  147. GO