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.
 
 

335 lines
26 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[PROC_MOBILE_DYNAMIC_RECEIVERDETAILS] Script Date: 9/26/2023 5:11:53 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[PROC_MOBILE_DYNAMIC_RECEIVERDETAILS]
@customerId VARCHAR(20) = NULL
,@countryId VARCHAR(10) = NULl
,@serviceType VARCHAR(10) = NULL
AS
-------------------------------------------------------
-- #101 - ADDED IN WHERE CLAUSE IsMobileEnabled
--Bug #726 Unable to select branches from mobile app
-->Bug #871 Bank details not pass during receiver modify
--#1116 -> Branch Not selected - iOS
-- #739 Ime pay add wallet
-------------------------------------------------------
-- EXEC [PROC_MOBILE_DYNAMIC_RECEIVERDETAILS] '11','169','2'
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 = ''[GME 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 = ISNULL(abm.MASTER_BANK_ID,AL.BANK_ID)
,Name = LTRIM(RTRIM(ISNULL(AL.BANK_CODE2, Al.BANK_NAME)))
,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)
LEFT JOIN dbo.API_BANK_LIST_MASTER ABM(NOLOCK) ON ABM.JME_BANK_CODE = al.JME_BANK_CODE
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 IF @countryId = '151' AND @serviceType IN (2)
BEGIN
SET @SQL = 'SELECT payoutPartner = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+'''
,countryId = CountryId
,id = ISNULL(abm.MASTER_BANK_ID,AL.BANK_ID)
,Name = LTRIM(RTRIM(ISNULL(AL.BANK_NAME, abm.BANK_NAME)))
,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)
LEFT JOIN dbo.API_BANK_LIST_MASTER ABM(NOLOCK) ON ABM.JME_BANK_CODE = al.JME_BANK_CODE
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 IF (@countryId = '151' AND @serviceType = 13 AND @PAYOUTPARTNER = 394397)
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)+''' in(2,13) 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)+''' in(2,13) 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]
Select BankId, Id,[NAME] from
(SELECT ROW_NUMBER() OVER (PARTITION BY A.Id order by ABL.BRANCH_NAME asc) row_num ,
case when a.id is not null then CAST(A.Id AS VARCHAR) else '0' end AS BankId
,case when ABL.BRANCH_ID is not null then CAST(ABL.BRANCH_ID AS VARCHAR) else '00999' end AS Id
,[Name] = case WHEN BRANCH_COUNTRY is not null THEN
CASE WHEN BRANCH_COUNTRY <> 'NEPAL'
THEN ABL.BRANCH_NAME + ' - ' + CAST(ABL.BRANCH_CODE1 AS VARCHAR)
ELSE ABL.BRANCH_NAME END
ELSE 'HEAD OFFICE'
END
,BranhCode = BRANCH_CODE1
FROM @AGENTLIST A
LEFT JOIN API_BANK_BRANCH_LIST ABL (NOLOCK) ON ABL.BANK_ID = A.id
WHERE isnull(IS_ACTIVE,1) = 1
--and abl.BANK_ID='1766'
)x
WHERE row_num <=10
--##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