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.

214 lines
17 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_kycEnrollmentReport] 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 procEDURE [dbo].[proc_kycEnrollmentReport]
  9. (
  10. @rptType VARCHAR(50)=NULL
  11. ,@user VARCHAR(30)=NULL
  12. ,@fromDate VARCHAR(30)=NULL
  13. ,@toDate VARCHAR(30)=NULL
  14. ,@sZone VARCHAR(30)=NULL
  15. ,@sAgent VARCHAR(10)=NULL
  16. ,@remitCardNo VARCHAR(50)=NULL
  17. ,@sDistrict VARCHAR(100)=NULL
  18. )AS
  19. BEGIN
  20. DECLARE @FilterList TABLE(head VARCHAR(50), value VARCHAR(100))
  21. DECLARE
  22. @table VARCHAR(MAX) = NULL
  23. ,@url VARCHAR(max) = NULL
  24. ,@gobalFilter VARCHAR(MAX) = ' WHERE 1=1 '
  25. ,@groupBy VARCHAR(500) = NULL
  26. IF @rptType = 'agent-enroll-rpt'
  27. BEGIN
  28. SELECT
  29. [S.N.] = ROW_NUMBER() OVER(ORDER BY km.createdDate DESC),
  30. [IME Remit Card No.] = km.remitCardNo,
  31. [Customer Name] = ISNULL(' '+km.salutation,'')+' '+ isnull(' '+km.firstName,'')+ isnull(' '+km.middleName,'')+ isnull(' '+km.lastName,''),
  32. [Created By] = km.createdBy,
  33. [Created Date] = km.createdDate,
  34. [Status] = CASE WHEN km.approvedDate IS NULL THEN 'Unapproved' ELSE 'Approved' end
  35. FROM dbo.kycMaster km WITH(NOLOCK)
  36. WHERE km.createdDate BETWEEN @fromDate AND @toDate+' 23:59:59'
  37. AND km.agentId = @sAgent
  38. AND ISNULL(km.isDeleted,'N') = 'N'
  39. AND ISNULL(km.isActive,'Y') ='Y'
  40. RETURN;
  41. END
  42. IF @fromDate IS NOT NULL AND @toDate IS NOT NULL
  43. BEGIN
  44. INSERT INTO @FilterList
  45. SELECT 'From Date',@fromDate
  46. INSERT INTO @FilterList
  47. SELECT 'To Date',@toDate
  48. SET @gobalFilter=@gobalFilter+' AND ISNULL(km.isDeleted,''N'') = ''N'' AND km.createdDate BETWEEN '''+@fromDate+''' AND '''+@toDate+' 23:59:59'''
  49. END
  50. IF @sZone IS NOT NULL
  51. BEGIN
  52. INSERT INTO @FilterList
  53. SELECT 'Zone',@sZone
  54. SET @gobalFilter=@gobalFilter+' AND am.agentState ='''+@sZone+''''
  55. END
  56. IF @sDistrict IS NOT NULL
  57. BEGIN
  58. INSERT INTO @FilterList
  59. SELECT 'District',@sZone
  60. SET @gobalFilter=@gobalFilter+' AND am.agentDistrict ='''+@sDistrict+''''
  61. END
  62. IF @sAgent IS NOT NULL
  63. BEGIN
  64. INSERT INTO @FilterList
  65. SELECT 'Agent',agentName FROM agentMaster WITH(NOLOCK) WHERE agentId=@sAgent
  66. SET @gobalFilter=@gobalFilter+' AND km.agentId ='''+@sAgent+''''
  67. END
  68. IF @remitCardNo IS NOT NULL
  69. BEGIN
  70. INSERT INTO @FilterList
  71. SELECT 'IME Remit Card Number',@remitCardNo
  72. SET @gobalFilter=@gobalFilter+' AND km.remitCardNo ='''+@remitCardNo+''''
  73. END
  74. IF @rptType='zone'
  75. BEGIN
  76. --SET @gobalFilter=@gobalFilter+' group by am.agentState order by am.agentState ASC'
  77. --SET @table='SELECT
  78. -- [S.N.] = row_number()over(order by am.agentState)
  79. -- ,[Zone] = ''<a href = "#" onclick=OpenInNewWindow("Reports.aspx?reportName=20832300_enroll&rptType=district&fromDate='+ISNULL(@fromDate,'')+'&toDate='+ISNULL(@toDate,'')+'&sZone=''+am.agentState+''")>''+am.agentState+''</a>''
  80. -- ,[Total Customer] = CAST(count(''x'') AS VARCHAR(10))
  81. --FROM kycMaster km WITH(NOLOCK)
  82. --inner join agentMaster am with(nolock) on km.agentId = am.agentId ' +@gobalFilter
  83. --PRINT @table
  84. --EXEC(@table)
  85. SET @groupBy = ' GROUP BY km.zoneName'
  86. SET @gobalFilter = @gobalFilter+' GROUP BY am.agentState,km.cardStatus'
  87. SET @table='SELECT
  88. [S.N.] = row_number()over(order by km.zoneName),
  89. [Zone Name] = ''<a href = "#" onclick=OpenInNewWindow("Reports.aspx?reportName=20832300_enroll&rptType=district&fromDate='+ISNULL(@fromDate,'')+'&toDate='+ISNULL(@toDate,'')+'&sZone=''+km.zoneName+''")>''+km.zoneName+''</a>'',
  90. [Enrolled] = SUM(km.appCnt+km.penCnt),
  91. [Approved] = SUM(km.appCnt),
  92. [Pending] = SUM(km.penCnt)
  93. FROM
  94. (
  95. SELECT
  96. zoneName = am.agentState
  97. ,appCnt = CASE WHEN cardStatus=''Approved'' THEN COUNT(''x'') ELSE ''0'' END
  98. ,penCnt = CASE WHEN cardStatus IN (''pending'',''Complain'') THEN COUNT(''x'') ELSE ''0'' END
  99. FROM dbo.kycMaster km WITH(NOLOCK)
  100. INNER JOIN agentMaster am WITH(NOLOCK) ON km.agentId = am.agentId '+@gobalFilter+'
  101. )km' + @groupBy
  102. PRINT @table
  103. EXEC(@table)
  104. END
  105. IF @rptType='district'
  106. BEGIN
  107. --SET @gobalFilter=@gobalFilter+' group by am.agentDistrict order by am.agentDistrict ASC'
  108. --SET @table='SELECT
  109. -- [S.N.] = row_number()over(order by am.agentDistrict)
  110. -- ,[District] = ''<a href = "#" onclick=OpenInNewWindow("Reports.aspx?reportName=20832300_enroll&rptType=agent&fromDate='+ISNULL(@fromDate,'')+'&toDate='+ISNULL(@toDate,'')+'&sDistrict=''+am.agentDistrict+''")>''+am.agentDistrict+''</a>''
  111. -- ,[Total Customer] = CAST(count(''x'') AS VARCHAR(10))
  112. --FROM kycMaster km WITH(NOLOCK)
  113. --inner join agentMaster am with(nolock) on km.agentId = am.agentId ' +@gobalFilter
  114. --PRINT @table
  115. --EXEC(@table)
  116. SET @groupBy = ' GROUP BY km.districtName'
  117. SET @gobalFilter = @gobalFilter+' GROUP BY am.agentDistrict,km.cardStatus'
  118. SET @table='SELECT
  119. [S.N.] = row_number()over(order by km.districtName),
  120. [District Name] = ''<a href = "#" onclick=OpenInNewWindow("Reports.aspx?reportName=20832300_enroll&rptType=agent&fromDate='+ISNULL(@fromDate,'')+'&toDate='+ISNULL(@toDate,'')+'&sDistrict=''+km.districtName+''")>''+km.districtName+''</a>'',
  121. [Enrolled] = SUM(km.appCnt+km.penCnt),
  122. [Approved] = SUM(km.appCnt),
  123. [Pending] = SUM(km.penCnt)
  124. FROM
  125. (
  126. SELECT
  127. districtName = am.agentDistrict
  128. ,appCnt = CASE WHEN cardStatus=''Approved'' THEN COUNT(''x'') ELSE ''0'' END
  129. ,penCnt = CASE WHEN cardStatus IN (''pending'',''Complain'') THEN COUNT(''x'') ELSE ''0'' END
  130. FROM dbo.kycMaster km WITH(NOLOCK)
  131. INNER JOIN agentMaster am WITH(NOLOCK) ON km.agentId = am.agentId '+@gobalFilter+'
  132. )km' + @groupBy
  133. PRINT @table
  134. EXEC(@table)
  135. END
  136. IF @rptType='agent'
  137. BEGIN
  138. -- SET @gobalFilter=@gobalFilter+' group by am.agentState,am.agentName,km.agentId order by am.agentState,am.agentName ASC'
  139. -- SET @table='SELECT
  140. -- [S.N.] = row_number()over(order by am.agentState,am.agentName)
  141. -- ,[Zone] = am.agentState
  142. -- ,[Agent] = ''<a href = "#" onclick=OpenInNewWindow("Reports.aspx?reportName=20832300_enroll&rptType=detail&fromDate='+ISNULL(@fromDate,'')+'&toDate='+ISNULL(@toDate,'')+'&sZone=''+am.agentState+''&sAgent=''+cast(km.agentId as varchar)+''")>''+am.agentName +''</a>
  143. --''
  144. -- ,[Total Customer] = CAST(count(*) AS VARCHAR(10))
  145. -- FROM kycMaster km WITH(NOLOCK)
  146. -- INNER JOIN agentMaster am WITH(NOLOCK) ON km.agentId = am.agentId ' +@gobalFilter
  147. -- PRINT @table
  148. -- EXEC(@table)
  149. SET @groupBy = ' GROUP BY km.zoneName,km.agentName,km.agentId'
  150. SET @gobalFilter = @gobalFilter+' GROUP BY am.agentId,am.agentState,am.agentName,km.cardStatus'
  151. SET @table='SELECT
  152. [S.N.] = row_number()over(order by km.zoneName,km.agentName),
  153. [Zone Name] = km.zoneName,
  154. [Agent Name] = ''<a href = "#" onclick=OpenInNewWindow("Reports.aspx?reportName=20832300_enroll&rptType=detail&fromDate='+ISNULL(@fromDate,'')+'&toDate='+ISNULL(@toDate,'')+'&sZone=''+km.zoneName+''&sAgent=''+cast(km.agentId as varchar)+''")>''+km.agentName+''</a>'',
  155. [Enrolled] = SUM(km.appCnt+km.penCnt),
  156. [Approved] = SUM(km.appCnt),
  157. [Pending] = SUM(km.penCnt)
  158. FROM
  159. (
  160. SELECT
  161. zoneName = am.agentState
  162. ,agentId = am.agentId
  163. ,agentName = am.agentName
  164. ,appCnt = CASE WHEN cardStatus=''Approved'' THEN COUNT(''x'') ELSE ''0'' END
  165. ,penCnt = CASE WHEN cardStatus IN (''pending'',''Complain'') THEN COUNT(''x'') ELSE ''0'' END
  166. FROM dbo.kycMaster km WITH(NOLOCK)
  167. INNER JOIN agentMaster am WITH(NOLOCK) ON km.agentId = am.agentId '+@gobalFilter+'
  168. )km' + @groupBy
  169. PRINT @table
  170. EXEC(@table)
  171. END
  172. IF @rptType='detail'
  173. BEGIN
  174. SET @table='SELECT
  175. [S.N.] = row_number() over(order by am.agentName)
  176. ,[IME Remit Card No.] = ''<a href="#" onclick="OpenInNewWindow('''''+dbo.FNAGetURL()+'Remit/Administration/CustomerSetup/KYC/View.aspx?customerId='' + cast(km.rowId as varchar) + '''''')">'' + km.remitCardNo + ''</a>''
  177. ,[Customer Name] = isnull('' ''+km.salutation,'''')+'' ''+ isnull('' ''+km.firstName,'''')+ isnull('' ''+km.middleName,'''')+ isnull('' ''+km.lastName,'''')
  178. ,[Agent Name] = am.agentName
  179. ,[Created By] = km.createdBy
  180. ,[Created Date] = km.createdDate
  181. ,[Status] = CASE WHEN (km.approvedBy IS NULL) THEN ''Unapproved'' ELSE ''Approved'' END
  182. FROM kycMaster km WITH(NOLOCK)
  183. INNER JOIN agentMaster am WITH(NOLOCK) ON km.agentId = am.agentId ' +@gobalFilter
  184. PRINT @Table
  185. EXEC(@Table)
  186. END
  187. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  188. SELECT * FROM @FilterList
  189. SELECT 'KYC Enrollment Report' title
  190. END
  191. GO