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.

208 lines
8.2 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_GoldCardReport] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[proc_GoldCardReport]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[proc_GoldCardReport] Script Date: 7/4/2019 11:35:48 AM ******/
  7. SET ANSI_NULLS ON
  8. GO
  9. SET QUOTED_IDENTIFIER ON
  10. GO
  11. --EXEC proc_customerReport @flag = 'detail-report',@startDate = '10/01/2017',@endDate = '12/31/2018',@user = 'admin',@country = null,@branch = NULL
  12. CREATE PROC [dbo].[proc_GoldCardReport]
  13. (
  14. @flag VARCHAR(50)
  15. ,@startDate VARCHAR(30) = NULL
  16. ,@endDate VARCHAR(30) = NULL
  17. ,@user VARCHAR(30) = NULL
  18. ,@country VARCHAR(30) = NULL
  19. ,@branch VARCHAR(80) = NULL
  20. ,@goldCardNo varchar(20) = NULL
  21. )
  22. AS
  23. SET NOCOUNT ON;
  24. SET XACT_ABORT ON;
  25. BEGIN
  26. IF @flag = 'detail-rpt'
  27. BEGIN
  28. SELECT
  29. GoldCardNumber = cm.membershipId,
  30. IssuedDate = cm.memberIDissuedDate,
  31. IssuedBy = cm.memberIDissuedByUser,
  32. IdNumber = cm.idNumber,
  33. MobileNumber = cm.mobile
  34. FROM dbo.customerMaster CM(NOLOCK)
  35. LEFT JOIN (
  36. SELECT AU.userName, AM.agentName FROM agentMaster AM(NOLOCK)
  37. INNER JOIN applicationUsers AU(NOLOCK) ON AU.agentId = AM.agentId
  38. WHERE AM.agentId = ISNULL(@branch, AM.agentId)
  39. )X ON X.userName = CM.memberIDissuedByUser
  40. INNER JOIN countryMaster C(NOLOCK) ON C.countryId = CM.nativeCountry
  41. WHERE CM.nativeCountry = ISNULL(@country, CM.nativeCountry)
  42. AND X.agentName IS NOT NULL
  43. AND CM.approvedBy IS NOT NULL AND CM.memberIDissuedDate IS NOT NULL
  44. AND CM.memberIDissuedDate BETWEEN @startDate AND @endDate + ' 23:59:59'
  45. AND CM.membershipId = ISNULL(@goldCardNo, CM.membershipId)
  46. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  47. select 'Country' head, CASE WHEN @country IS NULL THEN 'All' ELSE (SELECT countryName FROM countryMaster (NOLOCK) WHERE countryId = @country) END UNION ALL
  48. select 'Branch' head, ISNULL((SELECT agentName FROM agentMaster (NOLOCK) WHERE agentId = @branch), 'All') union all-- CASE WHEN @branch IS NULL THEN 'All' ELSE (SELECT agentName FROM agentMaster (NOLOCK) WHERE agentId = @branch) END UNION ALL
  49. SELECT 'GoldCardNumber' head, ISNULL(@goldCardNo, 'All') union all
  50. SELECT 'From Date' head, @startDate value union all
  51. SELECT 'To Date' head, @endDate value
  52. SELECT 'Gold Card Detail Report' title
  53. END
  54. ELSE IF @flag = 'register-matrix'
  55. BEGIN
  56. IF OBJECT_ID('tempdb..#TEMP') IS NOT NULL DROP TABLE #TEMP
  57. CREATE TABLE #TEMP (NAME VARCHAR(50), COUNTRY VARCHAR(30), QTY INT, AGENTID INT)
  58. INSERT INTO #TEMP (NAME , COUNTRY , QTY, AGENTID )
  59. SELECT [NAME] = agentName,
  60. [COUNTRY] = C.countryName,
  61. [QTY] = COUNT(1),
  62. AGENTID = X.agentId
  63. FROM customerMaster CM(NOLOCK)
  64. LEFT JOIN (
  65. SELECT AU.userName, AM.agentName, AM.agentId FROM agentMaster AM(NOLOCK)
  66. INNER JOIN applicationUsers AU(NOLOCK) ON AU.agentId = AM.agentId
  67. WHERE AM.agentId = ISNULL(@branch, AM.agentId)
  68. )X ON X.userName = CM.memberIDissuedByUser
  69. INNER JOIN countryMaster C(NOLOCK) ON C.countryId = CM.nativeCountry
  70. WHERE CM.approvedBy IS NOT NULL
  71. AND X.agentName IS NOT NULL
  72. AND CM.nativeCountry = ISNULL(@country, CM.nativeCountry)
  73. AND CM.memberIDissuedDate BETWEEN @startDate AND @endDate + ' 23:59:59'
  74. AND CM.membershipId = ISNULL(@goldCardNo, CM.membershipId)
  75. GROUP BY X.agentName, C.countryName, X.agentId, C.countryName, CM.nativeCountry
  76. ORDER BY C.countryName
  77. IF NOT EXISTS(SELECT 1 FROM #TEMP)
  78. BEGIN
  79. SELECT SNO = 1, [ERROR_MESSAGE] = 'NO DATA FOUND FOR THIS FILTER'
  80. RETURN
  81. END
  82. DECLARE @columns NVARCHAR(MAX), @sql NVARCHAR(MAX);
  83. SET @columns = '';
  84. SELECT
  85. @columns += N', p.' + QUOTENAME(NAME)
  86. FROM (SELECT DISTINCT NAME FROM #TEMP) AS x;
  87. SET @columns = ', p.Country ' + @columns
  88. SET @sql = N'
  89. SELECT *
  90. FROM
  91. (
  92. SELECT NAME, COUNTRY, QTY = ISNULL(QTY, 0) FROM #TEMP
  93. ) AS j
  94. PIVOT
  95. (
  96. SUM(QTY) FOR NAME IN ('
  97. + STUFF(REPLACE(REPLACE(REPLACE(@columns, 'p.Country ,', ''), ', p.[', ',['), 'p.', ''), 1, 1, '')
  98. + ')
  99. ) AS p;';
  100. PRINT @sql;
  101. EXEC sp_executesql @sql;
  102. END
  103. ELSE IF @flag = 'matrix-detail'
  104. BEGIN
  105. SELECT [CUSTOMER NAME] = firstName,
  106. [EMAIL] = email,
  107. [REGISTERED DATE] = CM.createdDate,
  108. [APPROVED DATE] = CM.verifiedDate,
  109. [BANK NAME] = KB.BankName,
  110. [BANK ACCOUNT NUMBER] = CM.bankAccountNo,
  111. [WALLET ACCOUNT NUMBER] = CM.walletAccountNo,
  112. [AVAILBALE BALANCE] = CM.availableBalance
  113. FROM customerMaster CM(NOLOCK)
  114. LEFT JOIN (
  115. SELECT AU.userName, AM.agentName FROM agentMaster AM(NOLOCK)
  116. INNER JOIN applicationUsers AU(NOLOCK) ON AU.agentId = AM.agentId
  117. WHERE AM.agentName = ISNULL(@branch, AM.agentName)
  118. )X ON X.userName = CM.memberIDissuedByUser
  119. INNER JOIN countryMaster C(NOLOCK) ON C.countryId = CM.nativeCountry
  120. INNER JOIN KoreanBankList KB(NOLOCK) ON KB.rowId = CM.bankName
  121. WHERE C.countryName = ISNULL(@country, C.countryName)
  122. AND X.agentName IS NOT NULL
  123. AND CM.approvedBy IS NOT NULL
  124. AND CM.memberIDissuedDate BETWEEN @startDate AND @endDate + ' 23:59:59'
  125. AND CM.membershipId = ISNULL(@goldCardNo, CM.membershipId)
  126. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  127. select 'Country' head, @country UNION ALL
  128. select 'Branch' head, @branch UNION ALL
  129. SELECT 'GoldCardNumber' head, @goldCardNo UNION ALL
  130. SELECT 'From Date' head, @startDate value union all
  131. SELECT 'To Date' head, @endDate value
  132. SELECT 'Gold Card Report' title
  133. END
  134. ELSE IF @flag = 'GRS' --Gold Card report Summary
  135. BEGIN
  136. SELECT '<a href=Reports.aspx?reportName=goldcarddetailreport&startDate=''' +ISNULL( @startDate,'') + '''&endDate=''' + ISNULL(@endDate,'') + '''&country=''' + CAST( cm.nativeCountry AS VARCHAR(10)) + '''&branch=''' +ISNULL( @branch,'') +'''&goldCardNo=''' + cm.referelCode + '''&flag=DRT' + '>' + a.fullName + '</a>' [Name]
  137. ,cm.referelCode [Gold Card Number],M.countryName [Nationality], COUNT(1) [Number of register]
  138. FROM customerMaster CM(NOLOCK)
  139. JOIN dbo.countryMaster M (NOLOCK) ON m.countryId = cm.nativeCountry
  140. JOIN (
  141. SELECT membershipId,fullName FROM customerMaster(nolocK) WHERE membershipId=ISNULL( @goldCardNo, membershipId)
  142. ) a ON a.membershipId= cm.referelCode
  143. LEFT JOIN (
  144. SELECT AU.userName, AM.agentName FROM agentMaster AM(NOLOCK)
  145. INNER JOIN applicationUsers AU(NOLOCK) ON AU.agentId = AM.agentId
  146. WHERE AM.agentName = ISNULL(@branch, AM.agentName)
  147. )X ON X.userName = CM.memberIDissuedByUser
  148. WHERE CM.referelCode =ISNULL( @goldCardNo,cm.referelCode)
  149. AND CM.approvedBy IS NOT NULL
  150. AND M.countryId = ISNULL(@country, M.countryId)
  151. AND CM.approvedDate BETWEEN @startDate AND @endDate + ' 23:59:59'
  152. GROUP BY a.fullName ,cm.referelCode,M.countryName,cm.nativeCountry
  153. order by cm.nativeCountry
  154. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  155. select 'Country' head, @country UNION ALL
  156. select 'Branch' head, @branch UNION ALL
  157. SELECT 'GoldCardNumber' head, @goldCardNo UNION ALL
  158. SELECT 'From Date' head, @startDate value union all
  159. SELECT 'To Date' head, @endDate value
  160. SELECT 'Gold Card Registation Summary Report' title
  161. END
  162. IF @flag = 'DRT' -- Gold card report Details
  163. BEGIN
  164. IF @branch = ''
  165. BEGIN
  166. SET @branch = null
  167. END
  168. SELECT cm.email [Email ID], cm.fullName [Name] ,M.countryName[Native Country], cm.approvedBy [Approved By] FROM customerMaster CM(NOLOCK)
  169. JOIN dbo.countryMaster M (NOLOCK) ON m.countryId = cm.nativeCountry
  170. LEFT JOIN (
  171. SELECT AU.userName, AM.agentName FROM agentMaster AM(NOLOCK)
  172. INNER JOIN applicationUsers AU(NOLOCK) ON AU.agentId = AM.agentId
  173. WHERE AM.agentName = ISNULL(@branch, AM.agentName)
  174. )X ON X.userName = CM.memberIDissuedByUser
  175. WHERE CM.referelCode = @goldCardNo
  176. AND CM.approvedBy IS NOT NULL
  177. AND m.countryId = ISNULL(@country, M.countryId)
  178. AND CM.approvedDate BETWEEN @startDate AND @endDate + ' 23:59:59'
  179. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  180. select 'Country' head, @country UNION ALL
  181. select 'Branch' head, @branch UNION ALL
  182. SELECT 'GoldCardNumber' head, @goldCardNo UNION ALL
  183. SELECT 'From Date' head, @startDate value union all
  184. SELECT 'To Date' head, @endDate value
  185. SELECT 'Gold Card Registation Details Report' title
  186. END
  187. END
  188. GO