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.

229 lines
14 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_graphicalReport] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. /*
  9. EXEC proc_graphicalReport @flag = 'a', @user = 'admin',
  10. @fromDate = '2012-6-6', @toDate = '2012-7-2',@DATETYPE='P',@groupBy='RAW'
  11. EXEC proc_graphicalReport @flag = 'a', @user = 'admin',
  12. @fromDate = '2012-6-6', @toDate = '2012-7-2',@DATETYPE='P',@groupBy='SCW'
  13. */
  14. CREATE procEDURE [dbo].[proc_graphicalReport]
  15. @flag VARCHAR(50) = NULL
  16. ,@user VARCHAR(50) = NULL
  17. ,@dateType VARCHAR(50) = NULL
  18. ,@fromDate VARCHAR(50) = NULL
  19. ,@toDate VARCHAR(50) = NULL
  20. ,@sCountry VARCHAR(50) = NULL
  21. ,@sAgent VARCHAR(50) = NULL
  22. ,@sBranch VARCHAR(50) = NULL
  23. ,@rCountry VARCHAR(50) = NULL
  24. ,@rAgent VARCHAR(50) = NULL
  25. ,@rBranch VARCHAR(50) = NULL
  26. ,@groupBy VARCHAR(50) = NULL
  27. ,@breakType VARCHAR(50) = NULL
  28. ,@graphType VARCHAR(50) = NULL
  29. AS
  30. SET NOCOUNT ON;
  31. SET ANSI_NULLS ON;
  32. IF OBJECT_ID('tempdb..#tempMaster') IS NOT NULL
  33. DROP TABLE #tempMaster
  34. IF OBJECT_ID('tempdb..#tempDataTable') IS NOT NULL
  35. DROP TABLE #tempDataTable
  36. IF @flag='a'
  37. BEGIN
  38. SET @toDate = @toDate + ' 23:59:59'
  39. DECLARE @DateCondition VARCHAR(50),
  40. @GroupCondition varchar(50),
  41. @SQL VARCHAR(MAX),
  42. @maxReportViewDays INT,
  43. @GroupSelect VARCHAR(50)
  44. SELECT @maxReportViewDays=ISNULL(maxReportViewDays,60) FROM applicationUsers WHERE userName = @user
  45. SELECT @DateCondition = CASE WHEN @DATETYPE = 'S' THEN 'approvedDate'
  46. WHEN @DATETYPE = 'P' THEN 'paidDate'
  47. WHEN @DATETYPE = 'C' THEN 'cancelApprovedDate' END
  48. SELECT @GroupCondition = CASE
  49. WHEN @GROUPBY = 'SCW' THEN 'sCountry'
  50. WHEN @GROUPBY = 'SAW' THEN 'sAgent'
  51. WHEN @GROUPBY = 'RCW' THEN 'pCountry'
  52. WHEN @GROUPBY = 'RAW' THEN 'pAgent'
  53. WHEN @GROUPBY = 'DW' THEN 'DW'
  54. END
  55. IF @GroupCondition IN ('sAgent','pAgent')
  56. BEGIN
  57. SET @SQL = 'SELECT AM.agentName Category ,SUM(tAmt) [Value]
  58. FROM remitTran RT WITH (NOLOCK)
  59. INNER JOIN agentMaster AM WITH (NOLOCK) ON RT.'+@GroupCondition+'=AM.agentId
  60. WHERE RT.'+ @DATECONDITION +' BETWEEN '''+ @FROMDATE +''' AND '''+ @TODATE +''''
  61. IF @sCountry IS NOT NULL
  62. SET @SQL = @SQL + ' AND RT.sCountry = ''' + @sCountry + ''''
  63. IF @sAgent IS NOT NULL
  64. SET @SQL = @SQL + ' AND RT.sAgent = ''' + @sAgent + ''''
  65. IF @sBranch IS NOT NULL
  66. SET @SQL = @SQL + ' AND RT.sBranch = '''+ @sBranch +''''
  67. IF @rCountry IS NOT NULL
  68. SET @SQL = @SQL + ' AND RT.pCountry = ''' + @rCountry + ''''
  69. IF @rAgent IS NOT NULL
  70. SET @SQL = @SQL + ' AND RT.PAgent = ''' + @rAgent + ''''
  71. IF @rBranch IS NOT NULL
  72. SET @SQL = @SQL + ' AND RT.pBranch = '''+ @rBranch +''''
  73. SET @SQL = @SQL + ' GROUP BY AM.agentName'
  74. EXECUTE(@SQL)
  75. END
  76. IF @GroupCondition IN ('sCountry','pCountry')
  77. BEGIN
  78. SET @SQL = 'SELECT CM.countryName Category ,SUM(tAmt) [Value]
  79. FROM remitTran RT WITH (NOLOCK)
  80. INNER JOIN countryMaster CM WITH (NOLOCK) ON RT.'+@GroupCondition+'=CM.countryName
  81. WHERE RT.'+ @DATECONDITION +' BETWEEN '''+ @FROMDATE +''' AND '''+ @TODATE +''''
  82. IF @sCountry IS NOT NULL
  83. SET @SQL = @SQL + ' AND RT.sCountry = ''' + @sCountry + ''''
  84. IF @sAgent IS NOT NULL
  85. SET @SQL = @SQL + ' AND RT.sAgent = ''' + @sAgent + ''''
  86. IF @sBranch IS NOT NULL
  87. SET @SQL = @SQL + ' AND RT.sBranch = '''+ @sBranch +''''
  88. IF @rCountry IS NOT NULL
  89. SET @SQL = @SQL + ' AND RT.pCountry = ''' + @rCountry + ''''
  90. IF @rAgent IS NOT NULL
  91. SET @SQL = @SQL + ' AND RT.PAgent = ''' + @rAgent + ''''
  92. IF @rBranch IS NOT NULL
  93. SET @SQL = @SQL + ' AND RT.pBranch = '''+ @rBranch +''''
  94. SET @SQL = @SQL + ' GROUP BY CM.countryName'
  95. EXECUTE(@SQL)
  96. END
  97. IF @GroupCondition IN ('DW') -- >>GROUP BY DATEWISE
  98. BEGIN
  99. IF @breakType='D'
  100. BEGIN
  101. SET @SQL = 'SELECT CONVERT(VARCHAR,RT.'+ @DATECONDITION +',101) Category ,SUM(tAmt) [Value]
  102. FROM remitTran RT WITH (NOLOCK)
  103. WHERE RT.'+ @DATECONDITION +' BETWEEN '''+ @FROMDATE +''' AND '''+ @TODATE +''''
  104. IF @sCountry IS NOT NULL
  105. SET @SQL = @SQL + ' AND RT.sCountry = ''' + @sCountry + ''''
  106. IF @sAgent IS NOT NULL
  107. SET @SQL = @SQL + ' AND RT.sAgent = ''' + @sAgent + ''''
  108. IF @sBranch IS NOT NULL
  109. SET @SQL = @SQL + ' AND RT.sBranch = '''+ @sBranch +''''
  110. IF @rCountry IS NOT NULL
  111. SET @SQL = @SQL + ' AND RT.pCountry = ''' + @rCountry + ''''
  112. IF @rAgent IS NOT NULL
  113. SET @SQL = @SQL + ' AND RT.PAgent = ''' + @rAgent + ''''
  114. IF @rBranch IS NOT NULL
  115. SET @SQL = @SQL + ' AND RT.pBranch = '''+ @rBranch +''''
  116. SET @SQL = @SQL + ' GROUP BY CONVERT(VARCHAR,RT.'+ @DATECONDITION +',101)'
  117. EXECUTE(@SQL)
  118. END
  119. IF @breakType='W'
  120. BEGIN
  121. SET @SQL = 'SELECT
  122. cast(DATEPART(wk,RT.'+ @DATECONDITION +') as varchar)+'' Week'' Category,
  123. SUM(tAmt) [Value]
  124. FROM remitTran RT WITH (NOLOCK)
  125. WHERE RT.'+ @DATECONDITION +' BETWEEN '''+ @FROMDATE +''' AND '''+ @TODATE +''''
  126. IF @sCountry IS NOT NULL
  127. SET @SQL = @SQL + ' AND RT.sCountry = ''' + @sCountry + ''''
  128. IF @sAgent IS NOT NULL
  129. SET @SQL = @SQL + ' AND RT.sAgent = ''' + @sAgent + ''''
  130. IF @sBranch IS NOT NULL
  131. SET @SQL = @SQL + ' AND RT.sBranch = '''+ @sBranch +''''
  132. IF @rCountry IS NOT NULL
  133. SET @SQL = @SQL + ' AND RT.pCountry = ''' + @rCountry + ''''
  134. IF @rAgent IS NOT NULL
  135. SET @SQL = @SQL + ' AND RT.PAgent = ''' + @rAgent + ''''
  136. IF @rBranch IS NOT NULL
  137. SET @SQL = @SQL + ' AND RT.pBranch = '''+ @rBranch +''''
  138. SET @SQL = @SQL + ' GROUP BY DATEPART(YEAR,RT.'+ @DATECONDITION +'),
  139. DATEPART(wk,RT.'+ @DATECONDITION +')
  140. ORDER BY 1,2';
  141. print(@SQL)
  142. EXECUTE(@SQL)
  143. END
  144. IF @breakType='M'
  145. BEGIN
  146. SET @SQL = 'SELECT
  147. DateName( month , DateAdd( month , MONTH(RT.'+ @DATECONDITION +') , 0 ) - 1 ) Category,
  148. SUM(tAmt) [Value]
  149. FROM remitTran RT WITH (NOLOCK)
  150. WHERE RT.'+ @DATECONDITION +' is not null and
  151. RT.'+ @DATECONDITION +' BETWEEN '''+ @FROMDATE +''' AND '''+ @TODATE +''''
  152. IF @sCountry IS NOT NULL
  153. SET @SQL = @SQL + ' AND RT.sCountry = ''' + @sCountry + ''''
  154. IF @sAgent IS NOT NULL
  155. SET @SQL = @SQL + ' AND RT.sAgent = ''' + @sAgent + ''''
  156. IF @sBranch IS NOT NULL
  157. SET @SQL = @SQL + ' AND RT.sBranch = '''+ @sBranch +''''
  158. IF @rCountry IS NOT NULL
  159. SET @SQL = @SQL + ' AND RT.pCountry = ''' + @rCountry + ''''
  160. IF @rAgent IS NOT NULL
  161. SET @SQL = @SQL + ' AND RT.PAgent = ''' + @rAgent + ''''
  162. IF @rBranch IS NOT NULL
  163. SET @SQL = @SQL + ' AND RT.pBranch = '''+ @rBranch +''''
  164. SET @SQL = @SQL + ' GROUP BY YEAR(RT.'+ @DATECONDITION +'), MONTH(RT.'+ @DATECONDITION +')
  165. ORDER BY YEAR(RT.'+ @DATECONDITION +'), MONTH(RT.'+ @DATECONDITION +');'
  166. EXECUTE(@SQL)
  167. END
  168. END
  169. END
  170. GO