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