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.
172 lines
9.9 KiB
172 lines
9.9 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[proc_pickLuckyDraw] Script Date: 9/27/2019 1:30:14 PM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
CREATE proc [dbo].[proc_pickLuckyDraw]
|
|
@flag CHAR(1) = 's'
|
|
,@user VARCHAR(30)
|
|
|
|
AS
|
|
SET NOCOUNT ON;
|
|
/*
|
|
|
|
EXEC [proc_pickLuckyDraw] @flag='s' ,@user='admin'
|
|
*/
|
|
DECLARE
|
|
@fromDate DATETIME, @toDate DATETIME,@sCountry VARCHAR(100), @sAgent 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)
|
|
|
|
SELECT
|
|
@fromDate = fromDate,
|
|
@toDate = toDate,
|
|
@sCountry = cm.countryName,
|
|
@sAgent = sAgent,
|
|
@pAgent1 = pAgent1,
|
|
@pAgent2 = pAgent2,
|
|
@pAgent3 = pAgent3,
|
|
@pAgent4 = pAgent4,
|
|
@pAgent5 = pAgent5,
|
|
@luckyDrawType = luckyDrawType
|
|
FROM luckyDrawSetup lds with(nolock)
|
|
left join countryMaster cm with(nolock) on lds.sCountry = cm.countryId
|
|
WHERE flag = @flag
|
|
--set @sCountry = 'Malaysia'
|
|
|
|
SET @prize= CASE @luckyDrawType
|
|
WHEN 'Sender_Daily' THEN 'Smart Phone'
|
|
WHEN 'Sender_Weekly' THEN 'IPad'
|
|
WHEN 'Receiver_Daily' THEN 'Luggage Bag'
|
|
WHEN 'Receiver_Weekly' THEN 'Digital Camera'
|
|
ELSE 'Unknown'
|
|
END
|
|
|
|
DECLARE @pAgentList VARCHAR(MAX) = ''
|
|
IF @pAgent1 IS NOT NULL SET @pAgentList = @pAgentList + ' OR pAgent=' + @pAgent1
|
|
IF @pAgent2 IS NOT NULL SET @pAgentList = @pAgentList + ' OR pAgent=' + @pAgent2
|
|
IF @pAgent3 IS NOT NULL SET @pAgentList = @pAgentList + ' OR pAgent=' + @pAgent3
|
|
IF @pAgent4 IS NOT NULL SET @pAgentList = @pAgentList + ' OR pAgent=' + @pAgent4
|
|
IF @pAgent5 IS NOT NULL SET @pAgentList = @pAgentList + ' OR pAgent=' + @pAgent5
|
|
|
|
IF @pAgentList <> ''
|
|
SET @pAgentList = SUBSTRING(@pAgentList, 4, 8000)
|
|
ELSE
|
|
SET @pAgentList = NULL
|
|
|
|
DECLARE @sql VARCHAR(MAX) = '
|
|
SELECT
|
|
Id
|
|
,controlNo
|
|
FROM remitTran rt WITH(NOLOCK)
|
|
WHERE approvedDate > ''2015-09-01''
|
|
and '+case when @flag ='s' then 'approvedDate' else 'paidDate' end+ ' BETWEEN ''' + CONVERT(VARCHAR, @fromDate, 101) + ''' AND ''' + CONVERT(VARCHAR, @toDate, 101) + ' 23:59:59''
|
|
AND pCountry = ''Nepal''
|
|
--ANS sCountry =''Japan''
|
|
AND tranStatus = ''Paid''
|
|
--AND LEFT(rt.controlno,1) = ''R''
|
|
AND LEN(rt.controlNo) = 11'
|
|
|
|
|
|
+ CASE WHEN @flag = 'r' THEN ' AND payStatus=''Paid''' ELSE '' END
|
|
|
|
IF @sCountry IS NOT NULL SET @sql = @sql + ' AND sCountry=''' + @sCountry + ''''
|
|
IF @sAgent IS NOT NULL SET @sql = @sql + ' AND sAgent=' + @sAgent
|
|
|
|
SET @sql = @sql + ISNULL(' AND (' + @pAgentList + ')', '')
|
|
|
|
|
|
|
|
DECLARE @luckyNumbers TABLE(Id bigint, controlNo VARCHAR(20))
|
|
|
|
|
|
INSERT INTO @luckyNumbers(Id, controlNo)
|
|
EXEC (@sql)
|
|
PRINT @sql
|
|
|
|
DELETE FROM @luckyNumbers
|
|
FROM @luckyNumbers t
|
|
INNER JOIN WinnerHistory h ON t.controlNo = h.controlNo
|
|
|
|
DELETE FROM @luckyNumbers
|
|
FROM @luckyNumbers t
|
|
INNER JOIN remitTran rt ON t.controlNo = rt.controlNo
|
|
INNER JOIN errPaidTran ep ON rt.id = ep.tranId
|
|
|
|
--DELETE @luckyNumbers WHERE controlNo IN (SELECT controlNo FROM WinnerHistory WITH(NOLOCK))
|
|
|
|
--DELETE @luckyNumbers WHERE controlNo IN (
|
|
--SELECT ld.controlNo FROM errPaidTran ep WITH(NOLOCK)
|
|
-- inner join remitTran rt with(nolock) on ep.tranId = rt.id
|
|
-- inner join @luckyNumbers ld on ld.controlNo = rt.controlNo
|
|
-- )
|
|
|
|
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)
|
|
SELECT @id,@controlNo, GETDATE(),@user
|
|
|
|
IF @flag = 'r'
|
|
BEGIN
|
|
SELECT
|
|
ErrorCode = '0'
|
|
,Pin = dbo.FNADecryptString(@controlNo)
|
|
,Name = UPPER(tr.firstName + ISNULL(' ' + tr.middleName, '') + ISNULL(' ' + tr.lastName1, '') + ISNULL(' ' + tr.lastName2 , ''))
|
|
,[Date] = CONVERT(VARCHAR, rt.paidDate, 107)
|
|
,Prize = @prize
|
|
,Agent = rt.pAgentName
|
|
,Country = 'Nepal '-- + isnull(rt.pAgentName,'')
|
|
FROM remitTran rt WITH(NOLOCK)
|
|
INNER JOIN tranReceivers tr WITH(NOLOCK) ON rt.id = tr.tranId
|
|
WHERE rt.id = @id
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT
|
|
ErrorCode = '0'
|
|
,Pin = dbo.FNADecryptString(@controlNo)
|
|
,Name = UPPER(ts.firstName + ISNULL(' ' + ts.middleName, '') + ISNULL(' ' + ts.lastName1, '') + ISNULL(' ' + ts.lastName2 , ''))
|
|
,[Date] = CONVERT(VARCHAR, rt.createdDate, 107)
|
|
,Prize = @prize
|
|
,Agent = rt.sAgentName
|
|
,Country = rt.sCountry
|
|
FROM remitTran rt WITH(NOLOCK)
|
|
INNER JOIN tranSenders ts WITH(NOLOCK) ON rt.id = ts.tranId
|
|
WHERE rt.id = @id
|
|
END
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
GO
|