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.

111 lines
2.9 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_GetNumber_LuckyDraw] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[proc_GetNumber_LuckyDraw]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[proc_GetNumber_LuckyDraw] Script Date: 7/4/2019 11:35:48 AM ******/
  7. SET ANSI_NULLS ON
  8. GO
  9. SET QUOTED_IDENTIFIER ON
  10. GO
  11. CREATE proc [dbo].[proc_GetNumber_LuckyDraw]
  12. @flag CHAR(1) = 's'
  13. ,@user VARCHAR(50)
  14. AS
  15. SET NOCOUNT ON;
  16. /*
  17. EXEC [proc_GetNumber_LuckyDraw] @flag='s' ,@user='admin'
  18. */
  19. DECLARE
  20. @fromDate DATETIME, @toDate DATETIME,@sCountry VARCHAR(100), @sAgent VARCHAR(100), @sAgent1 VARCHAR(100)
  21. ,@pAgent1 VARCHAR(100), @pAgent2 VARCHAR(100), @pAgent3 VARCHAR(100), @pAgent4 VARCHAR(100), @pAgent5 VARCHAR(100)
  22. ,@luckyDrawType VARCHAR(50), @controlNo VARCHAR(20), @id BIGINT,@prize VARCHAR(50)
  23. ,@dateField VARCHAR(50), @drawTypeCode CHAR(1)
  24. SELECT @luckyDrawType = 'Sender_NewYear',@drawTypeCode='NY'
  25. SET @prize= CASE @luckyDrawType
  26. WHEN 'Sender_NewYear' THEN 'KRW 2,075,000 '
  27. ELSE 'Unknown'
  28. END
  29. SET @drawTypeCode= CASE @luckyDrawType
  30. WHEN 'Sender_NewYear' THEN 'NY'
  31. ELSE 'Unknown'
  32. END
  33. IF(SELECT COUNT(1) FROM WinnerHistory(NOLOCK))=3
  34. BEGIN
  35. SELECT
  36. ErrorCode = '0'
  37. ,Pin = dbo.FNADecryptString(rt.controlNo)
  38. ,Name = rt.senderName
  39. ,[Date] = CONVERT(VARCHAR, rt.approveddate, 107)
  40. ,Prize = @prize
  41. ,Agent = rt.sAgentName
  42. ,Country = rt.pCountry
  43. FROM remitTran rt WITH(NOLOCK)
  44. INNER JOIN WinnerHistory ts WITH(NOLOCK) ON rt.id = ts.id
  45. order by ts.drawnDate
  46. RETURN
  47. END
  48. DECLARE @luckyNumbers TABLE(Id bigint, controlNo VARCHAR(20))
  49. INSERT INTO @luckyNumbers(Id, controlNo)
  50. SELECT Id,controlNo
  51. FROM remitTran rt WITH(NOLOCK)
  52. WHERE approvedDate BETWEEN '2019-11-18' AND '2019-12-31 23:59:59'
  53. AND pCountry = 'Bangladesh'
  54. AND tranStatus <> 'cancel'
  55. DELETE FROM @luckyNumbers
  56. FROM @luckyNumbers t
  57. INNER JOIN WinnerHistory h (NOLOCK) ON t.Id = h.Id
  58. SELECT TOP 1
  59. @controlNo = controlNo, @id = Id
  60. FROM (
  61. SELECT TOP 90 PERCENT
  62. IDL2 = NEWID(),*
  63. FROM (
  64. SELECT
  65. IDL = NEWID(), *
  66. FROM @luckyNumbers
  67. ) round1 ORDER BY IDL ASC
  68. ) round2 ORDER BY IDL2 ASC
  69. IF @controlNo IS NULL
  70. BEGIN
  71. SELECT
  72. ErrorCode = '0'
  73. ,Pin = 'ERROR'
  74. ,Name = 'ERROR'
  75. ,Date = 'ERROR'
  76. ,Prize = @luckyDrawType
  77. ,Agent = 'ERROR'
  78. ,Country = 'ERROR'
  79. RETURN
  80. END
  81. ELSE
  82. BEGIN
  83. INSERT INTO WinnerHistory(ID,controlNo, drawnDate,createdBy, srFlag, drawType)
  84. SELECT @id,@controlNo, GETDATE(),@user, @flag, @drawTypeCode
  85. BEGIN
  86. SELECT
  87. ErrorCode = case when @controlNo = rt.controlNo then '1' else '0' end
  88. ,Pin = dbo.FNADecryptString(rt.controlNo)
  89. ,Name = rt.senderName
  90. ,[Date] = CONVERT(VARCHAR, rt.approveddate, 107)
  91. ,Prize = @prize
  92. ,Agent = rt.sAgentName
  93. ,Country = rt.pCountry
  94. FROM remitTran rt WITH(NOLOCK)
  95. INNER JOIN WinnerHistory ts WITH(NOLOCK) ON rt.id = ts.id
  96. order by ts.drawnDate
  97. END
  98. END
  99. GO