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.

100 lines
5.6 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_SMSRpt] 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_SMSRpt]
  9. @flag VARCHAR(10) = NULL
  10. ,@user VARCHAR(30) = NULL
  11. ,@fromDate VARCHAR(50) = NULL
  12. ,@toDate VARCHAR(50) = NULL
  13. ,@country VARCHAR(100) = NULL
  14. ,@pageNumber INT = NULL
  15. ,@pageSize INT = NULL
  16. AS
  17. SET NOCOUNT ON;
  18. SET XACT_ABORT ON ;
  19. BEGIN TRY
  20. IF @flag = 's' -- summary
  21. BEGIN
  22. DECLARE @sql VARCHAR(MAX),@URL VARCHAR(500)
  23. SET @URL='"Reports.aspx?reportName=20164500&rptType=d&fromDate='+@fromDate+'&toDate='+@toDate+'&country=''+ISNULL(REPLACE(isnull(sms.Country,''Manual Sent''),'' '',''__''),'''')+''"'
  24. SET @sql ='SELECT
  25. [S.N.] = ROW_NUMBER()OVER(ORDER BY country)
  26. ,[Country] = ''<span class = "link" onclick =ViewAMLDDLReport('+@URL+');>'' + isnull(sms.country,''Manual Sent'') + ''</span>''
  27. ,[Total SMS] = COUNT(''X'')
  28. FROM SMSQueue sms WITH(NOLOCK)
  29. WHERE sms.mobileNo IS NOT NULL
  30. AND sms.sentDate BETWEEN '''+@fromDate+''' AND '''+@toDate+' 23:59:59'''
  31. IF @country IS NOT NULL
  32. SET @sql = @sql + ' AND sms.country = '''+ @country +''''
  33. SET @sql = @sql + ' GROUP BY sms.COUNTRY'
  34. print(@sql)
  35. EXEC(@sql)
  36. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  37. SELECT 'Country' head,@country VALUE
  38. UNION ALL
  39. SELECT 'From Date' head,@fromDate VALUE
  40. UNION ALL
  41. SELECT 'TO Date' head,@toDate VALUE
  42. SELECT 'SMS Reporting - Summary' title
  43. END
  44. IF @flag = 'd' -- detail
  45. BEGIN
  46. SET @country = REPLACE(@country,'__',' ')
  47. SET @sql ='SELECT
  48. [S.N.] = row_number() over(order by sms.rowId)
  49. ,[Country] = sms.country
  50. ,[Mobile] = sms.mobileNo
  51. ,[Message] = sms.msg
  52. ,[Sent Date & Time] = sms.sentDate
  53. ,[Control No] = dbo.fnadecryptString(sms.controlNo)
  54. FROM smsqueue sms with(nolock)
  55. WHERE sms.mobileNo is not null
  56. AND sms.sentDate BETWEEN '''+@fromDate+''' AND '''+@toDate+' 23:59:59'''
  57. if @country is not null and @country <> 'Manual Sent'
  58. SET @sql = @sql +' AND sms.country='''+ @country +''''
  59. if @country is not null and @country = 'Manual Sent'
  60. SET @sql = @sql +' AND sms.country IS NULL'
  61. --PRINT(@sql)
  62. EXEC(@sql)
  63. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  64. SELECT 'Country' head,@country VALUE
  65. UNION ALL
  66. SELECT 'From Date' head,@fromDate VALUE
  67. UNION ALL
  68. SELECT 'TO Date' head,@toDate VALUE
  69. SELECT 'SMS Reporting - Detail' title
  70. END
  71. END TRY
  72. BEGIN CATCH
  73. IF @@TRANCOUNT > 0
  74. ROLLBACK TRANSACTION
  75. SELECT 1 error_code, ERROR_MESSAGE() mes, NULL id
  76. print error_line()
  77. END CATCH
  78. GO