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

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_GetNumber_LuckyDraw] Script Date: 7/4/2019 11:35:48 AM ******/
DROP PROCEDURE [dbo].[proc_GetNumber_LuckyDraw]
GO
/****** Object: StoredProcedure [dbo].[proc_GetNumber_LuckyDraw] Script Date: 7/4/2019 11:35:48 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[proc_GetNumber_LuckyDraw]
@flag CHAR(1) = 's'
,@user VARCHAR(50)
AS
SET NOCOUNT ON;
/*
EXEC [proc_GetNumber_LuckyDraw] @flag='s' ,@user='admin'
*/
DECLARE
@fromDate DATETIME, @toDate DATETIME,@sCountry VARCHAR(100), @sAgent VARCHAR(100), @sAgent1 VARCHAR(100)
,@pAgent1 VARCHAR(100), @pAgent2 VARCHAR(100), @pAgent3 VARCHAR(100), @pAgent4 VARCHAR(100), @pAgent5 VARCHAR(100)
,@luckyDrawType VARCHAR(50), @controlNo VARCHAR(20), @id BIGINT,@prize VARCHAR(50)
,@dateField VARCHAR(50), @drawTypeCode CHAR(1)
SELECT @luckyDrawType = 'Sender_NewYear',@drawTypeCode='NY'
SET @prize= CASE @luckyDrawType
WHEN 'Sender_NewYear' THEN 'KRW 2,075,000 '
ELSE 'Unknown'
END
SET @drawTypeCode= CASE @luckyDrawType
WHEN 'Sender_NewYear' THEN 'NY'
ELSE 'Unknown'
END
IF(SELECT COUNT(1) FROM WinnerHistory(NOLOCK))=3
BEGIN
SELECT
ErrorCode = '0'
,Pin = dbo.FNADecryptString(rt.controlNo)
,Name = rt.senderName
,[Date] = CONVERT(VARCHAR, rt.approveddate, 107)
,Prize = @prize
,Agent = rt.sAgentName
,Country = rt.pCountry
FROM remitTran rt WITH(NOLOCK)
INNER JOIN WinnerHistory ts WITH(NOLOCK) ON rt.id = ts.id
order by ts.drawnDate
RETURN
END
DECLARE @luckyNumbers TABLE(Id bigint, controlNo VARCHAR(20))
INSERT INTO @luckyNumbers(Id, controlNo)
SELECT Id,controlNo
FROM remitTran rt WITH(NOLOCK)
WHERE approvedDate BETWEEN '2019-11-18' AND '2019-12-31 23:59:59'
AND pCountry = 'Bangladesh'
AND tranStatus <> 'cancel'
DELETE FROM @luckyNumbers
FROM @luckyNumbers t
INNER JOIN WinnerHistory h (NOLOCK) ON t.Id = h.Id
SELECT TOP 1
@controlNo = controlNo, @id = Id
FROM (
SELECT TOP 90 PERCENT
IDL2 = NEWID(),*
FROM (
SELECT
IDL = NEWID(), *
FROM @luckyNumbers
) round1 ORDER BY IDL ASC
) round2 ORDER BY IDL2 ASC
IF @controlNo IS NULL
BEGIN
SELECT
ErrorCode = '0'
,Pin = 'ERROR'
,Name = 'ERROR'
,Date = 'ERROR'
,Prize = @luckyDrawType
,Agent = 'ERROR'
,Country = 'ERROR'
RETURN
END
ELSE
BEGIN
INSERT INTO WinnerHistory(ID,controlNo, drawnDate,createdBy, srFlag, drawType)
SELECT @id,@controlNo, GETDATE(),@user, @flag, @drawTypeCode
BEGIN
SELECT
ErrorCode = case when @controlNo = rt.controlNo then '1' else '0' end
,Pin = dbo.FNADecryptString(rt.controlNo)
,Name = rt.senderName
,[Date] = CONVERT(VARCHAR, rt.approveddate, 107)
,Prize = @prize
,Agent = rt.sAgentName
,Country = rt.pCountry
FROM remitTran rt WITH(NOLOCK)
INNER JOIN WinnerHistory ts WITH(NOLOCK) ON rt.id = ts.id
order by ts.drawnDate
END
END
GO