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

12 months ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[PROC_MOBILE_DYNAMIC_RECEIVERDETAILS] Script Date: 9/26/2023 5:11:53 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER PROCEDURE [dbo].[PROC_MOBILE_DYNAMIC_RECEIVERDETAILS]
  9. @customerId VARCHAR(20) = NULL
  10. ,@countryId VARCHAR(10) = NULl
  11. ,@serviceType VARCHAR(10) = NULL
  12. AS
  13. -------------------------------------------------------
  14. -- #101 - ADDED IN WHERE CLAUSE IsMobileEnabled
  15. --Bug #726 Unable to select branches from mobile app
  16. -->Bug #871 Bank details not pass during receiver modify
  17. --#1116 -> Branch Not selected - iOS
  18. -- #739 Ime pay add wallet
  19. -------------------------------------------------------
  20. -- EXEC [PROC_MOBILE_DYNAMIC_RECEIVERDETAILS] '11','169','2'
  21. SET NOCOUNT ON
  22. BEGIN
  23. IF @countryId IS NULL
  24. RETURN
  25. IF @serviceType IS NULL
  26. RETURN
  27. IF OBJECT_ID('tempdb..#payoutMode') IS NOT NULL
  28. DROP TABLE #payoutMode
  29. IF OBJECT_ID('tempdb..#tempBankList') IS NOT NULL
  30. DROP TABLE #tempBankList
  31. DECLARE @dyCountryId VARCHAR(10), @dyServciceType VARCHAR(10)
  32. SET @dyCountryId = @countryId
  33. SET @dyServciceType = @serviceType
  34. IF NOT EXISTS(SELECT 'x' FROM dbo.receiverFieldSetup(nolock) WHERE pCountry = @dyCountryId AND paymentMethodId = @dyServciceType)
  35. BEGIN
  36. SET @dyCountryId = '0'
  37. END
  38. --SELECT @countryId = CM.countryId
  39. --FROM dbo.countryMaster(NOLOCK) AS CM
  40. --WHERE CM.countryCode = 'VN'
  41. SELECT DISTINCT * INTO #payoutMode FROM (
  42. SELECT
  43. CRM.countryId
  44. ,Id = crm.receivingMode
  45. ,Mode = STM.typeDesc
  46. ,PayoutPartner = TPC.AgentId
  47. ,BankRequired = CASE WHEN crm.agentSelection ='N' THEN 'False' ELSE 'True' END
  48. --INTO #payoutMode
  49. FROM dbo.countryReceivingMode(NOLOCK) AS CRM
  50. INNER JOIN dbo.serviceTypeMaster(NOLOCK) AS STM ON CRM.receivingMode = STM.serviceTypeId
  51. INNER JOIN dbo.TblPartnerwiseCountry(NOLOCK) AS TPC ON TPC.CountryId = CRM.countryId
  52. AND CRM.receivingMode = ISNULL(TPC.PaymentMethod,CRM.receivingMode)
  53. WHERE CRM.countryId = @countryId AND TPC.IsActive = 1
  54. AND STM.isActive = 'Y'
  55. )x
  56. /*Receiver Field setup*/
  57. DECLARE @tempp TABLE(field VARCHAR(100),fieldRequired VARCHAR(5),minfieldLength INT,maxfieldLength INT,KeyWord VARCHAR(100))
  58. IF EXISTS(SELECT 'x' FROM receiverFieldSetup(nolock) WHERE pCountry=@dyCountryId AND paymentMethodId=@dyServciceType
  59. AND field = 'Local Name' AND fieldRequired IN('M','O'))
  60. BEGIN
  61. INSERT INTO @tempp(field,fieldRequired,minfieldLength,maxfieldLength,KeyWord)
  62. SELECT field,fieldRequired,minfieldLength,maxfieldLength,KeyWord
  63. FROM receiverFieldSetup(NOLOCK)
  64. WHERE pCountry=@dyCountryId AND paymentMethodId=@dyServciceType
  65. AND field IN ('First Name in Local','Middle Name in Local','Last Name in Local')
  66. END
  67. INSERT INTO @tempp(field,fieldRequired,minfieldLength,maxfieldLength,KeyWord)
  68. SELECT field,fieldRequired,minfieldLength,maxfieldLength,KeyWord
  69. FROM receiverFieldSetup(NOLOCK)
  70. WHERE pCountry=@dyCountryId AND paymentMethodId=@dyServciceType AND
  71. field NOT IN ('Local Name','First Name in Local','Middle Name in Local','Last Name in Local')
  72. --#1
  73. SELECT * FROM @tempp
  74. --#2
  75. /*Reason*/
  76. SELECT detailTitle AS id, detailTitle AS text
  77. FROM dbo.staticDataValue (NOLOCK)
  78. WHERE typeID=3900
  79. AND ISNULL(ISACTIVE, 'Y') = 'Y'
  80. AND ISNULL(IS_DELETE, 'N') = 'N'
  81. --#3
  82. /*Relation*/
  83. SELECT detailTitle AS id,detailTitle AS text
  84. FROM dbo.staticDataValue (NOLOCK)
  85. WHERE typeID=2100
  86. AND ISNULL(ISACTIVE, 'Y') = 'Y'
  87. AND ISNULL(IS_DELETE, 'N') = 'N'
  88. --#4
  89. /*IdType*/
  90. SELECT detailTitle AS id,detailTitle AS text
  91. FROM dbo.staticDataValue (NOLOCK)
  92. WHERE typeID=1300
  93. AND ISNULL(ISACTIVE, 'Y') = 'Y'
  94. AND ISNULL(IS_DELETE, 'N') = 'N'
  95. DECLARE @PAYOUTPARTNER INT, @agentCurrency VARCHAR(5)
  96. SELECT DISTINCT @agentCurrency = CM.currencyCode
  97. FROM currencyMaster CM WITH (NOLOCK)
  98. INNER JOIN countryCurrency CC WITH (NOLOCK) ON CM.currencyId=CC.currencyId
  99. WHERE CC.countryId = @countryId
  100. AND ISNULL(CC.isDeleted,'')<>'Y'
  101. AND CC.spFlag IN ('R', 'B')
  102. AND ISNULL(cc.isDefault, 'N') = 'Y'
  103. SELECT @PAYOUTPARTNER = TP.AGENTID
  104. FROM TblPartnerwiseCountry TP(NOLOCK)
  105. INNER JOIN AGENTMASTER AM(NOLOCK) ON AM.AGENTID = TP.AGENTID
  106. WHERE TP.CountryId = @countryId
  107. AND ISNULL(TP.PaymentMethod, @serviceType) = @serviceType
  108. AND ISNULL(TP.IsActive, 1) = 1
  109. AND ISNULL(AM.ISACTIVE, 'Y') = 'Y'
  110. AND ISNULL(AM.ISDELETED, 'N') = 'N'
  111. AND ISNULL(TP.IsMobileEnabled, 0) = 1
  112. --#5
  113. /*Province*/
  114. SELECT id,[text],countryId FROM (
  115. SELECT
  116. CAST(TSL.STATE_ID AS VARCHAR) AS id
  117. ,TSL.STATE_NAME AS [text]
  118. , CONVERT(VARCHAR,CM.countryId) AS countryId
  119. FROM dbo.API_STATE_LIST(NOLOCK) AS TSL
  120. INNER JOIN COUNTRYMASTER CM(NOLOCK) ON CM.COUNTRYNAME = TSL.STATE_COUNTRY
  121. WHERE CM.countryId=@countryId
  122. AND API_PARTNER_ID = @PAYOUTPARTNER
  123. UNION ALL
  124. SELECT '0' AS id,'Any State' AS [text],@countryId AS countryId
  125. )x WHERE ISNULL(x.countryId,@countryId) = @countryId ORDER BY [text] ASC
  126. ----WHERE CONVERT(VARCHAR,TSL.countryId)='203' AND TSL.partnerLocationId='019'
  127. /*District*/
  128. --#6
  129. SELECT
  130. CAST(CITY_ID AS VARCHAR) AS id,RTRIM(LTRIM(TSL.CITY_NAME)) AS [text], CONVERT(VARCHAR,TSL.STATE_ID) AS provinceId
  131. FROM dbo.API_CITY_LIST(NOLOCK) AS TSL
  132. INNER JOIN COUNTRYMASTER CM(NOLOCK) ON CM.COUNTRYNAME = TSL.CITY_COUNTRY
  133. WHERE CM.countryId=@countryId
  134. UNION ALL
  135. SELECT '0' AS id,'Any District' AS [text],'0' AS provinceId
  136. ORDER BY [text]
  137. --##7
  138. ----## GET COUNTRY INFO
  139. SELECT CM.countryId AS Id,CM.countryName AS Name, CM.countryCode AS Code
  140. FROM dbo.countryMaster(NOLOCK) AS CM
  141. WHERE CM.countryId = @countryId
  142. --##8
  143. SELECT
  144. PM.countryId AS CountryId
  145. ,PM.Id AS ModeId
  146. ,PM.Mode,PM.PayoutPartner
  147. --,PayCurrency = dbo.GetAllowCurrency(PM.countryId,PM.Id,null)
  148. ,PayCurrency = @agentCurrency
  149. ,BankRequired
  150. FROM #payoutMode AS PM
  151. WHERE PM.PayoutPartner IS NOT NULL
  152. ORDER BY PM.Mode ASC
  153. DECLARE @SQL VARCHAR(MAX) = ''
  154. DECLARE @AGENTLIST TABLE(payoutPartner BIGINT,countryId INT,id BIGINT,Name VARCHAR(250),Code VARCHAR(50),AgentRole INT
  155. ,BranchRequired VARCHAR(5),IsAccountRequired VARCHAR(5),IsAccountValidation VARCHAR(5),agentCurrency VARCHAR(50)
  156. )
  157. IF (@countryId = '151' AND @serviceType = 1) OR (@countryId = '203' AND @serviceType IN (1, 12) AND @PAYOUTPARTNER = 394132)
  158. BEGIN
  159. SET @SQL = 'SELECT payoutPartner = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+'''
  160. ,countryId = '''+CAST(@countryId AS VARCHAR)+'''
  161. ,id = 0
  162. ,Name = ''[GME ANY WHERE]''
  163. ,Code = ''''
  164. ,AgentRole = 1
  165. ,BranchRequired = ''False''
  166. ,IsAccountRequired = ''False''
  167. ,IsAccountValidation = ''False''
  168. ,agentCurrency = '''+CAST(@agentCurrency AS VARCHAR)+''''
  169. END
  170. ELSE IF @countryId = '203' AND @serviceType NOT IN (1, 13)
  171. BEGIN
  172. SET @SQL = 'SELECT payoutPartner = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+'''
  173. ,countryId = CountryId
  174. ,id = ISNULL(abm.MASTER_BANK_ID,AL.BANK_ID)
  175. ,Name = LTRIM(RTRIM(ISNULL(AL.BANK_CODE2, Al.BANK_NAME)))
  176. ,Code = LTRIM(RTRIM(AL.BANK_CODE1))
  177. ,AgentRole = '''+CAST(@serviceType AS VARCHAR)+'''
  178. ,BranchRequired = ''False''
  179. ,IsAccountRequired = CASE WHEN '''+CAST(@serviceType AS VARCHAR)+''' = 2 THEN ''True'' ELSE ''False'' END
  180. ,IsAccountValidation = ''False''
  181. ,agentCurrency = '''+CAST(@agentCurrency AS VARCHAR)+'''
  182. FROM API_BANK_LIST AL(NOLOCK)
  183. LEFT JOIN dbo.API_BANK_LIST_MASTER ABM(NOLOCK) ON ABM.JME_BANK_CODE = al.JME_BANK_CODE
  184. INNER JOIN COUNTRYMASTER CM(NOLOCK) ON CM.COUNTRYNAME = AL.BANK_COUNTRY
  185. WHERE CM.CountryId = '''+CAST(@countryId AS VARCHAR)+'''
  186. AND AL.PAYMENT_TYPE_ID IN (0, '''+CAST(@serviceType AS VARCHAR)+''')
  187. AND AL.IS_ACTIVE = 1
  188. AND AL.API_PARTNER_ID = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+''''
  189. END
  190. ELSE IF @countryId = '151' AND @serviceType IN (2)
  191. BEGIN
  192. SET @SQL = 'SELECT payoutPartner = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+'''
  193. ,countryId = CountryId
  194. ,id = ISNULL(abm.MASTER_BANK_ID,AL.BANK_ID)
  195. ,Name = LTRIM(RTRIM(ISNULL(AL.BANK_NAME, abm.BANK_NAME)))
  196. ,Code = LTRIM(RTRIM(AL.BANK_CODE1))
  197. ,AgentRole = '''+CAST(@serviceType AS VARCHAR)+'''
  198. ,BranchRequired = ''False''
  199. ,IsAccountRequired = CASE WHEN '''+CAST(@serviceType AS VARCHAR)+''' = 2 THEN ''True'' ELSE ''False'' END
  200. ,IsAccountValidation = ''False''
  201. ,agentCurrency = '''+CAST(@agentCurrency AS VARCHAR)+'''
  202. FROM API_BANK_LIST AL(NOLOCK)
  203. LEFT JOIN dbo.API_BANK_LIST_MASTER ABM(NOLOCK) ON ABM.JME_BANK_CODE = al.JME_BANK_CODE
  204. INNER JOIN COUNTRYMASTER CM(NOLOCK) ON CM.COUNTRYNAME = AL.BANK_COUNTRY
  205. WHERE CM.CountryId = '''+CAST(@countryId AS VARCHAR)+'''
  206. AND AL.PAYMENT_TYPE_ID IN (0, '''+CAST(@serviceType AS VARCHAR)+''')
  207. AND AL.IS_ACTIVE = 1
  208. AND AL.API_PARTNER_ID = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+''''
  209. END
  210. ELSE IF (@countryId = '151' AND @serviceType = 13 AND @PAYOUTPARTNER = 394397)
  211. BEGIN
  212. SET @SQL = 'SELECT payoutPartner = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+'''
  213. ,countryId = CountryId
  214. ,id = AL.BANK_ID
  215. ,Name = LTRIM(RTRIM(AL.BANK_NAME))
  216. ,Code = LTRIM(RTRIM(AL.BANK_CODE1))
  217. ,AgentRole = '''+CAST(@serviceType AS VARCHAR)+'''
  218. ,BranchRequired = CASE WHEN '''+CAST(@countryId AS VARCHAR)+''' = 151 THEN ''False'' ELSE ''True'' END
  219. ,IsAccountRequired = CASE WHEN '''+CAST(@serviceType AS VARCHAR)+''' in(2,13) THEN ''True'' ELSE ''False'' END
  220. ,IsAccountValidation = ''false''
  221. ,agentCurrency = '''+CAST(@agentCurrency AS VARCHAR)+'''
  222. FROM API_BANK_LIST AL(NOLOCK)
  223. INNER JOIN COUNTRYMASTER CM(NOLOCK) ON CM.COUNTRYNAME = AL.BANK_COUNTRY
  224. WHERE CM.CountryId = '''+CAST(@countryId AS VARCHAR)+'''
  225. AND AL.PAYMENT_TYPE_ID IN (0, '''+CAST(@serviceType AS VARCHAR)+''')
  226. AND AL.IS_ACTIVE = 1
  227. AND AL.API_PARTNER_ID = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+''''
  228. END
  229. ELSE
  230. BEGIN
  231. SET @SQL = 'SELECT payoutPartner = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+'''
  232. ,countryId = CountryId
  233. ,id = AL.BANK_ID
  234. ,Name = LTRIM(RTRIM(AL.BANK_NAME))
  235. ,Code = LTRIM(RTRIM(AL.BANK_CODE1))
  236. ,AgentRole = '''+CAST(@serviceType AS VARCHAR)+'''
  237. ,BranchRequired = CASE WHEN '''+CAST(@countryId AS VARCHAR)+''' = 151 THEN ''False'' ELSE ''True'' END
  238. ,IsAccountRequired = CASE WHEN '''+CAST(@serviceType AS VARCHAR)+''' in(2,13) THEN ''True'' ELSE ''False'' END
  239. ,IsAccountValidation = ''False''
  240. ,agentCurrency = '''+CAST(@agentCurrency AS VARCHAR)+'''
  241. FROM API_BANK_LIST AL(NOLOCK)
  242. INNER JOIN COUNTRYMASTER CM(NOLOCK) ON CM.COUNTRYNAME = AL.BANK_COUNTRY
  243. WHERE CM.CountryId = '''+CAST(@countryId AS VARCHAR)+'''
  244. AND AL.PAYMENT_TYPE_ID IN (0, '''+CAST(@serviceType AS VARCHAR)+''')
  245. AND AL.IS_ACTIVE = 1
  246. AND AL.API_PARTNER_ID = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+''''
  247. END
  248. -- PRINT(@SQL)
  249. INSERT INTO @AGENTLIST
  250. EXEC(@SQL)
  251. SELECT * FROM @AGENTLIST ORDER BY Name
  252. --EXEC PROC_MOBILE_DYNAMIC_RECEIVERDETAILS @countryId = '104', @serviceType = 2
  253. --SELECT * FROM COUNTRYMASTER WHERE COUNTRYNAME = 'INDIA'
  254. --##10
  255. --SELECT TOP 30
  256. -- A.Id AS BankId
  257. -- ,ABL.BRANCH_ID AS Id
  258. -- ,ABL.BRANCH_NAME AS [NAME]
  259. --FROM @AGENTLIST A
  260. --INNER JOIN API_BANK_BRANCH_LIST ABL (NOLOCK) ON ABL.BANK_ID = A.id
  261. --ORDER BY [Name]
  262. Select BankId, Id,[NAME] from
  263. (SELECT ROW_NUMBER() OVER (PARTITION BY A.Id order by ABL.BRANCH_NAME asc) row_num ,
  264. case when a.id is not null then CAST(A.Id AS VARCHAR) else '0' end AS BankId
  265. ,case when ABL.BRANCH_ID is not null then CAST(ABL.BRANCH_ID AS VARCHAR) else '00999' end AS Id
  266. ,[Name] = case WHEN BRANCH_COUNTRY is not null THEN
  267. CASE WHEN BRANCH_COUNTRY <> 'NEPAL'
  268. THEN ABL.BRANCH_NAME + ' - ' + CAST(ABL.BRANCH_CODE1 AS VARCHAR)
  269. ELSE ABL.BRANCH_NAME END
  270. ELSE 'HEAD OFFICE'
  271. END
  272. ,BranhCode = BRANCH_CODE1
  273. FROM @AGENTLIST A
  274. LEFT JOIN API_BANK_BRANCH_LIST ABL (NOLOCK) ON ABL.BANK_ID = A.id
  275. WHERE isnull(IS_ACTIVE,1) = 1
  276. --and abl.BANK_ID='1766'
  277. )x
  278. WHERE row_num <=10
  279. --##11
  280. SELECT DISTINCT
  281. Currency = X.value
  282. ,T.Id
  283. ,X.[Key]
  284. FROM @AGENTLIST t
  285. INNER JOIN #payoutMode AS PM ON PM.BankRequired = 'True' AND pm.PayoutPartner = t.payoutPartner
  286. CROSS APPLY DBO.GetCountryCurrency(@countryId,PM.Id,T.Id)X
  287. WHERE PM.Id = ISNULL(t.AgentRole,PM.ID) AND t.AgentRole = @serviceType
  288. ORDER BY X.[Key] DESC
  289. --PRINT @countryId
  290. --PRINT @serviceType
  291. --##12
  292. SELECT payoutpartner = @PAYOUTPARTNER--dbo.GetActivePayoutPartner(@countryId,@serviceType,'')
  293. RETURN
  294. END