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.
 
 
 

275 lines
19 KiB

/*
EXEC PROC_MOBILE_DYNAMIC_RECEIVERDETAILS @countryId = '151', @serviceType = 2
EXEC PROC_MOBILE_DYNAMIC_RECEIVERDETAILS @countryId = null, @serviceType = 5
EXEC PROC_MOBILE_DYNAMIC_RECEIVERDETAILS @countryId = null, @serviceType = NULL
EXEC PROC_MOBILE_DYNAMIC_RECEIVERDETAILS @countryId = 17, @serviceType = 2
*/
--SELECT * FROM dbo.receiverFieldSetup WHERE paymentMethodId = 1
--DELETE FROM dbo.receiverFieldSetup WHERE paymentMethodId = 0
ALTER PROCEDURE [dbo].[PROC_MOBILE_DYNAMIC_RECEIVERDETAILS]
@customerId VARCHAR(20) = NULL
,@countryId VARCHAR(10) = NULl
,@serviceType VARCHAR(10) = NULL
AS
SET NOCOUNT ON
BEGIN
IF @countryId IS NULL
RETURN
IF @serviceType IS NULL
RETURN
IF OBJECT_ID('tempdb..#payoutMode') IS NOT NULL
DROP TABLE #payoutMode
IF OBJECT_ID('tempdb..#tempBankList') IS NOT NULL
DROP TABLE #tempBankList
DECLARE @dyCountryId VARCHAR(10), @dyServciceType VARCHAR(10)
SET @dyCountryId = @countryId
SET @dyServciceType = @serviceType
IF NOT EXISTS(SELECT 'x' FROM dbo.receiverFieldSetup(nolock) WHERE pCountry = @dyCountryId AND paymentMethodId = @dyServciceType)
BEGIN
SET @dyCountryId = '0'
END
--SELECT @countryId = CM.countryId
--FROM dbo.countryMaster(NOLOCK) AS CM
--WHERE CM.countryCode = 'VN'
SELECT DISTINCT * INTO #payoutMode FROM (
SELECT
CRM.countryId
,Id = crm.receivingMode
,Mode = STM.typeDesc
,PayoutPartner = TPC.AgentId
,BankRequired = CASE WHEN crm.agentSelection ='N' THEN 'False' ELSE 'True' END
--INTO #payoutMode
FROM dbo.countryReceivingMode(NOLOCK) AS CRM
INNER JOIN dbo.serviceTypeMaster(NOLOCK) AS STM ON CRM.receivingMode = STM.serviceTypeId
INNER JOIN dbo.TblPartnerwiseCountry(NOLOCK) AS TPC ON TPC.CountryId = CRM.countryId
AND CRM.receivingMode = ISNULL(TPC.PaymentMethod,CRM.receivingMode)
WHERE CRM.countryId = @countryId AND TPC.IsActive = 1
AND STM.isActive = 'Y'
)x
/*Receiver Field setup*/
DECLARE @tempp TABLE(field VARCHAR(100),fieldRequired VARCHAR(5),minfieldLength INT,maxfieldLength INT,KeyWord VARCHAR(100))
IF EXISTS(SELECT 'x' FROM receiverFieldSetup(nolock) WHERE pCountry=@dyCountryId AND paymentMethodId=@dyServciceType
AND field = 'Local Name' AND fieldRequired IN('M','O'))
BEGIN
INSERT INTO @tempp(field,fieldRequired,minfieldLength,maxfieldLength,KeyWord)
SELECT field,fieldRequired,minfieldLength,maxfieldLength,KeyWord
FROM receiverFieldSetup(NOLOCK)
WHERE pCountry=@dyCountryId AND paymentMethodId=@dyServciceType
AND field IN ('First Name in Local','Middle Name in Local','Last Name in Local')
END
INSERT INTO @tempp(field,fieldRequired,minfieldLength,maxfieldLength,KeyWord)
SELECT field,fieldRequired,minfieldLength,maxfieldLength,KeyWord
FROM receiverFieldSetup(NOLOCK)
WHERE pCountry=@dyCountryId AND paymentMethodId=@dyServciceType AND
field NOT IN ('Local Name','First Name in Local','Middle Name in Local','Last Name in Local')
--#1
SELECT * FROM @tempp
--#2
/*Reason*/
SELECT detailTitle AS id, detailTitle AS text
FROM dbo.staticDataValue (NOLOCK)
WHERE typeID=3900
AND ISNULL(ISACTIVE, 'Y') = 'Y'
AND ISNULL(IS_DELETE, 'N') = 'N'
--#3
/*Relation*/
SELECT detailTitle AS id,detailTitle AS text
FROM dbo.staticDataValue (NOLOCK)
WHERE typeID=2100
AND ISNULL(ISACTIVE, 'Y') = 'Y'
AND ISNULL(IS_DELETE, 'N') = 'N'
--#4
/*IdType*/
SELECT detailTitle AS id,detailTitle AS text
FROM dbo.staticDataValue (NOLOCK)
WHERE typeID=1300
AND ISNULL(ISACTIVE, 'Y') = 'Y'
AND ISNULL(IS_DELETE, 'N') = 'N'
DECLARE @PAYOUTPARTNER INT, @agentCurrency VARCHAR(5)
SELECT DISTINCT @agentCurrency = CM.currencyCode
FROM currencyMaster CM WITH (NOLOCK)
INNER JOIN countryCurrency CC WITH (NOLOCK) ON CM.currencyId=CC.currencyId
WHERE CC.countryId = @countryId
AND ISNULL(CC.isDeleted,'')<>'Y'
AND CC.spFlag IN ('R', 'B')
AND ISNULL(cc.isDefault, 'N') = 'Y'
SELECT @PAYOUTPARTNER = TP.AGENTID
FROM TblPartnerwiseCountry TP(NOLOCK)
INNER JOIN AGENTMASTER AM(NOLOCK) ON AM.AGENTID = TP.AGENTID
WHERE TP.CountryId = @countryId
AND ISNULL(TP.PaymentMethod, @serviceType) = @serviceType
AND ISNULL(TP.IsActive, 1) = 1
AND ISNULL(AM.ISACTIVE, 'Y') = 'Y'
AND ISNULL(AM.ISDELETED, 'N') = 'N'
AND ISNULL(TP.IsMobileEnabled, 0) = 1
--#5
/*Province*/
SELECT id,[text],countryId FROM (
SELECT
CAST(TSL.STATE_ID AS VARCHAR) AS id
,TSL.STATE_NAME AS [text]
, CONVERT(VARCHAR,CM.countryId) AS countryId
FROM dbo.API_STATE_LIST(NOLOCK) AS TSL
INNER JOIN COUNTRYMASTER CM(NOLOCK) ON CM.COUNTRYNAME = TSL.STATE_COUNTRY
WHERE CM.countryId=@countryId
AND API_PARTNER_ID = @PAYOUTPARTNER
UNION ALL
SELECT '0' AS id,'Any State' AS [text],@countryId AS countryId
)x WHERE ISNULL(x.countryId,@countryId) = @countryId ORDER BY [text] ASC
----WHERE CONVERT(VARCHAR,TSL.countryId)='203' AND TSL.partnerLocationId='019'
/*District*/
--#6
SELECT
CAST(CITY_ID AS VARCHAR) AS id,RTRIM(LTRIM(TSL.CITY_NAME)) AS [text], CONVERT(VARCHAR,TSL.STATE_ID) AS provinceId
FROM dbo.API_CITY_LIST(NOLOCK) AS TSL
INNER JOIN COUNTRYMASTER CM(NOLOCK) ON CM.COUNTRYNAME = TSL.CITY_COUNTRY
WHERE CM.countryId=@countryId
UNION ALL
SELECT '0' AS id,'Any District' AS [text],'0' AS provinceId
ORDER BY [text]
--##7
----## GET COUNTRY INFO
SELECT CM.countryId AS Id,CM.countryName AS Name, CM.countryCode AS Code
FROM dbo.countryMaster(NOLOCK) AS CM
WHERE CM.countryId = @countryId
--##8
SELECT
PM.countryId AS CountryId
,PM.Id AS ModeId
,PM.Mode,PM.PayoutPartner
--,PayCurrency = dbo.GetAllowCurrency(PM.countryId,PM.Id,null)
,PayCurrency = @agentCurrency
,BankRequired
FROM #payoutMode AS PM
WHERE PM.PayoutPartner IS NOT NULL
ORDER BY PM.Mode ASC
DECLARE @SQL VARCHAR(MAX) = ''
DECLARE @AGENTLIST TABLE(payoutPartner BIGINT,countryId INT,id BIGINT,Name VARCHAR(250),Code VARCHAR(50),AgentRole INT
,BranchRequired VARCHAR(5),IsAccountRequired VARCHAR(5),IsAccountValidation VARCHAR(5),agentCurrency VARCHAR(50)
)
IF (@countryId = '151' AND @serviceType = 1) OR (@countryId = '203' AND @serviceType IN (1, 12) AND @PAYOUTPARTNER = 394132)
BEGIN
SET @SQL = 'SELECT payoutPartner = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+'''
,countryId = '''+CAST(@countryId AS VARCHAR)+'''
,id = 0
,Name = ''[ANY WHERE]''
,Code = ''''
,AgentRole = 1
,BranchRequired = ''False''
,IsAccountRequired = ''False''
,IsAccountValidation = ''False''
,agentCurrency = '''+CAST(@agentCurrency AS VARCHAR)+''''
END
ELSE IF @countryId = '203' AND @serviceType NOT IN (1, 13)
BEGIN
SET @SQL = 'SELECT payoutPartner = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+'''
,countryId = CountryId
,id = AL.BANK_ID
,Name = LTRIM(RTRIM(AL.BANK_CODE2))
,Code = LTRIM(RTRIM(AL.BANK_CODE1))
,AgentRole = '''+CAST(@serviceType AS VARCHAR)+'''
,BranchRequired = ''False''
,IsAccountRequired = CASE WHEN '''+CAST(@serviceType AS VARCHAR)+''' = 2 THEN ''True'' ELSE ''False'' END
,IsAccountValidation = ''False''
,agentCurrency = '''+CAST(@agentCurrency AS VARCHAR)+'''
FROM API_BANK_LIST AL(NOLOCK)
INNER JOIN COUNTRYMASTER CM(NOLOCK) ON CM.COUNTRYNAME = AL.BANK_COUNTRY
WHERE CM.CountryId = '''+CAST(@countryId AS VARCHAR)+'''
AND AL.PAYMENT_TYPE_ID IN (0, '''+CAST(@serviceType AS VARCHAR)+''')
AND AL.IS_ACTIVE = 1
AND AL.API_PARTNER_ID = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+''''
END
ELSE
BEGIN
SET @SQL = 'SELECT payoutPartner = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+'''
,countryId = CountryId
,id = AL.BANK_ID
,Name = LTRIM(RTRIM(AL.BANK_NAME))
,Code = LTRIM(RTRIM(AL.BANK_CODE1))
,AgentRole = '''+CAST(@serviceType AS VARCHAR)+'''
,BranchRequired = CASE WHEN '''+CAST(@countryId AS VARCHAR)+''' = 151 THEN ''False'' ELSE ''True'' END
,IsAccountRequired = CASE WHEN '''+CAST(@serviceType AS VARCHAR)+''' = 2 THEN ''True'' ELSE ''False'' END
,IsAccountValidation = ''False''
,agentCurrency = '''+CAST(@agentCurrency AS VARCHAR)+'''
FROM API_BANK_LIST AL(NOLOCK)
INNER JOIN COUNTRYMASTER CM(NOLOCK) ON CM.COUNTRYNAME = AL.BANK_COUNTRY
WHERE CM.CountryId = '''+CAST(@countryId AS VARCHAR)+'''
AND AL.PAYMENT_TYPE_ID IN (0, '''+CAST(@serviceType AS VARCHAR)+''')
AND AL.IS_ACTIVE = 1
AND AL.API_PARTNER_ID = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+''''
END
--PRINT(@SQL)
INSERT INTO @AGENTLIST
EXEC(@SQL)
SELECT * FROM @AGENTLIST ORDER BY Name
--EXEC PROC_MOBILE_DYNAMIC_RECEIVERDETAILS @countryId = '104', @serviceType = 2
--SELECT * FROM COUNTRYMASTER WHERE COUNTRYNAME = 'INDIA'
--##10
SELECT TOP 30
A.Id AS BankId
,ABL.BRANCH_ID AS Id
,ABL.BRANCH_NAME AS [NAME]
FROM @AGENTLIST A
INNER JOIN API_BANK_BRANCH_LIST ABL (NOLOCK) ON ABL.BANK_ID = A.id
ORDER BY [Name]
--##11
SELECT DISTINCT
Currency = X.value
,T.Id
,X.[Key]
FROM @AGENTLIST t
INNER JOIN #payoutMode AS PM ON PM.BankRequired = 'True' AND pm.PayoutPartner = t.payoutPartner
CROSS APPLY DBO.GetCountryCurrency(@countryId,PM.Id,T.Id)X
WHERE PM.Id = ISNULL(t.AgentRole,PM.ID) AND t.AgentRole = @serviceType
ORDER BY X.[Key] DESC
--PRINT @countryId
--PRINT @serviceType
--##12
SELECT payoutpartner = @PAYOUTPARTNER--dbo.GetActivePayoutPartner(@countryId,@serviceType,'')
RETURN
END