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.

274 lines
19 KiB

1 year ago
  1. /*
  2. EXEC PROC_MOBILE_DYNAMIC_RECEIVERDETAILS @countryId = '151', @serviceType = 2
  3. EXEC PROC_MOBILE_DYNAMIC_RECEIVERDETAILS @countryId = null, @serviceType = 5
  4. EXEC PROC_MOBILE_DYNAMIC_RECEIVERDETAILS @countryId = null, @serviceType = NULL
  5. EXEC PROC_MOBILE_DYNAMIC_RECEIVERDETAILS @countryId = 17, @serviceType = 2
  6. */
  7. --SELECT * FROM dbo.receiverFieldSetup WHERE paymentMethodId = 1
  8. --DELETE FROM dbo.receiverFieldSetup WHERE paymentMethodId = 0
  9. ALTER PROCEDURE [dbo].[PROC_MOBILE_DYNAMIC_RECEIVERDETAILS]
  10. @customerId VARCHAR(20) = NULL
  11. ,@countryId VARCHAR(10) = NULl
  12. ,@serviceType VARCHAR(10) = NULL
  13. AS
  14. SET NOCOUNT ON
  15. BEGIN
  16. IF @countryId IS NULL
  17. RETURN
  18. IF @serviceType IS NULL
  19. RETURN
  20. IF OBJECT_ID('tempdb..#payoutMode') IS NOT NULL
  21. DROP TABLE #payoutMode
  22. IF OBJECT_ID('tempdb..#tempBankList') IS NOT NULL
  23. DROP TABLE #tempBankList
  24. DECLARE @dyCountryId VARCHAR(10), @dyServciceType VARCHAR(10)
  25. SET @dyCountryId = @countryId
  26. SET @dyServciceType = @serviceType
  27. IF NOT EXISTS(SELECT 'x' FROM dbo.receiverFieldSetup(nolock) WHERE pCountry = @dyCountryId AND paymentMethodId = @dyServciceType)
  28. BEGIN
  29. SET @dyCountryId = '0'
  30. END
  31. --SELECT @countryId = CM.countryId
  32. --FROM dbo.countryMaster(NOLOCK) AS CM
  33. --WHERE CM.countryCode = 'VN'
  34. SELECT DISTINCT * INTO #payoutMode FROM (
  35. SELECT
  36. CRM.countryId
  37. ,Id = crm.receivingMode
  38. ,Mode = STM.typeDesc
  39. ,PayoutPartner = TPC.AgentId
  40. ,BankRequired = CASE WHEN crm.agentSelection ='N' THEN 'False' ELSE 'True' END
  41. --INTO #payoutMode
  42. FROM dbo.countryReceivingMode(NOLOCK) AS CRM
  43. INNER JOIN dbo.serviceTypeMaster(NOLOCK) AS STM ON CRM.receivingMode = STM.serviceTypeId
  44. INNER JOIN dbo.TblPartnerwiseCountry(NOLOCK) AS TPC ON TPC.CountryId = CRM.countryId
  45. AND CRM.receivingMode = ISNULL(TPC.PaymentMethod,CRM.receivingMode)
  46. WHERE CRM.countryId = @countryId AND TPC.IsActive = 1
  47. AND STM.isActive = 'Y'
  48. )x
  49. /*Receiver Field setup*/
  50. DECLARE @tempp TABLE(field VARCHAR(100),fieldRequired VARCHAR(5),minfieldLength INT,maxfieldLength INT,KeyWord VARCHAR(100))
  51. IF EXISTS(SELECT 'x' FROM receiverFieldSetup(nolock) WHERE pCountry=@dyCountryId AND paymentMethodId=@dyServciceType
  52. AND field = 'Local Name' AND fieldRequired IN('M','O'))
  53. BEGIN
  54. INSERT INTO @tempp(field,fieldRequired,minfieldLength,maxfieldLength,KeyWord)
  55. SELECT field,fieldRequired,minfieldLength,maxfieldLength,KeyWord
  56. FROM receiverFieldSetup(NOLOCK)
  57. WHERE pCountry=@dyCountryId AND paymentMethodId=@dyServciceType
  58. AND field IN ('First Name in Local','Middle Name in Local','Last Name in Local')
  59. END
  60. INSERT INTO @tempp(field,fieldRequired,minfieldLength,maxfieldLength,KeyWord)
  61. SELECT field,fieldRequired,minfieldLength,maxfieldLength,KeyWord
  62. FROM receiverFieldSetup(NOLOCK)
  63. WHERE pCountry=@dyCountryId AND paymentMethodId=@dyServciceType AND
  64. field NOT IN ('Local Name','First Name in Local','Middle Name in Local','Last Name in Local')
  65. --#1
  66. SELECT * FROM @tempp
  67. --#2
  68. /*Reason*/
  69. SELECT detailTitle AS id, detailTitle AS text
  70. FROM dbo.staticDataValue (NOLOCK)
  71. WHERE typeID=3900
  72. AND ISNULL(ISACTIVE, 'Y') = 'Y'
  73. AND ISNULL(IS_DELETE, 'N') = 'N'
  74. --#3
  75. /*Relation*/
  76. SELECT detailTitle AS id,detailTitle AS text
  77. FROM dbo.staticDataValue (NOLOCK)
  78. WHERE typeID=2100
  79. AND ISNULL(ISACTIVE, 'Y') = 'Y'
  80. AND ISNULL(IS_DELETE, 'N') = 'N'
  81. --#4
  82. /*IdType*/
  83. SELECT detailTitle AS id,detailTitle AS text
  84. FROM dbo.staticDataValue (NOLOCK)
  85. WHERE typeID=1300
  86. AND ISNULL(ISACTIVE, 'Y') = 'Y'
  87. AND ISNULL(IS_DELETE, 'N') = 'N'
  88. DECLARE @PAYOUTPARTNER INT, @agentCurrency VARCHAR(5)
  89. SELECT DISTINCT @agentCurrency = CM.currencyCode
  90. FROM currencyMaster CM WITH (NOLOCK)
  91. INNER JOIN countryCurrency CC WITH (NOLOCK) ON CM.currencyId=CC.currencyId
  92. WHERE CC.countryId = @countryId
  93. AND ISNULL(CC.isDeleted,'')<>'Y'
  94. AND CC.spFlag IN ('R', 'B')
  95. AND ISNULL(cc.isDefault, 'N') = 'Y'
  96. SELECT @PAYOUTPARTNER = TP.AGENTID
  97. FROM TblPartnerwiseCountry TP(NOLOCK)
  98. INNER JOIN AGENTMASTER AM(NOLOCK) ON AM.AGENTID = TP.AGENTID
  99. WHERE TP.CountryId = @countryId
  100. AND ISNULL(TP.PaymentMethod, @serviceType) = @serviceType
  101. AND ISNULL(TP.IsActive, 1) = 1
  102. AND ISNULL(AM.ISACTIVE, 'Y') = 'Y'
  103. AND ISNULL(AM.ISDELETED, 'N') = 'N'
  104. AND ISNULL(TP.IsMobileEnabled, 0) = 1
  105. --#5
  106. /*Province*/
  107. SELECT id,[text],countryId FROM (
  108. SELECT
  109. CAST(TSL.STATE_ID AS VARCHAR) AS id
  110. ,TSL.STATE_NAME AS [text]
  111. , CONVERT(VARCHAR,CM.countryId) AS countryId
  112. FROM dbo.API_STATE_LIST(NOLOCK) AS TSL
  113. INNER JOIN COUNTRYMASTER CM(NOLOCK) ON CM.COUNTRYNAME = TSL.STATE_COUNTRY
  114. WHERE CM.countryId=@countryId
  115. AND API_PARTNER_ID = @PAYOUTPARTNER
  116. UNION ALL
  117. SELECT '0' AS id,'Any State' AS [text],@countryId AS countryId
  118. )x WHERE ISNULL(x.countryId,@countryId) = @countryId ORDER BY [text] ASC
  119. ----WHERE CONVERT(VARCHAR,TSL.countryId)='203' AND TSL.partnerLocationId='019'
  120. /*District*/
  121. --#6
  122. SELECT
  123. CAST(CITY_ID AS VARCHAR) AS id,RTRIM(LTRIM(TSL.CITY_NAME)) AS [text], CONVERT(VARCHAR,TSL.STATE_ID) AS provinceId
  124. FROM dbo.API_CITY_LIST(NOLOCK) AS TSL
  125. INNER JOIN COUNTRYMASTER CM(NOLOCK) ON CM.COUNTRYNAME = TSL.CITY_COUNTRY
  126. WHERE CM.countryId=@countryId
  127. UNION ALL
  128. SELECT '0' AS id,'Any District' AS [text],'0' AS provinceId
  129. ORDER BY [text]
  130. --##7
  131. ----## GET COUNTRY INFO
  132. SELECT CM.countryId AS Id,CM.countryName AS Name, CM.countryCode AS Code
  133. FROM dbo.countryMaster(NOLOCK) AS CM
  134. WHERE CM.countryId = @countryId
  135. --##8
  136. SELECT
  137. PM.countryId AS CountryId
  138. ,PM.Id AS ModeId
  139. ,PM.Mode,PM.PayoutPartner
  140. --,PayCurrency = dbo.GetAllowCurrency(PM.countryId,PM.Id,null)
  141. ,PayCurrency = @agentCurrency
  142. ,BankRequired
  143. FROM #payoutMode AS PM
  144. WHERE PM.PayoutPartner IS NOT NULL
  145. ORDER BY PM.Mode ASC
  146. DECLARE @SQL VARCHAR(MAX) = ''
  147. DECLARE @AGENTLIST TABLE(payoutPartner BIGINT,countryId INT,id BIGINT,Name VARCHAR(250),Code VARCHAR(50),AgentRole INT
  148. ,BranchRequired VARCHAR(5),IsAccountRequired VARCHAR(5),IsAccountValidation VARCHAR(5),agentCurrency VARCHAR(50)
  149. )
  150. IF (@countryId = '151' AND @serviceType = 1) OR (@countryId = '203' AND @serviceType IN (1, 12) AND @PAYOUTPARTNER = 394132)
  151. BEGIN
  152. SET @SQL = 'SELECT payoutPartner = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+'''
  153. ,countryId = '''+CAST(@countryId AS VARCHAR)+'''
  154. ,id = 0
  155. ,Name = ''[ANY WHERE]''
  156. ,Code = ''''
  157. ,AgentRole = 1
  158. ,BranchRequired = ''False''
  159. ,IsAccountRequired = ''False''
  160. ,IsAccountValidation = ''False''
  161. ,agentCurrency = '''+CAST(@agentCurrency AS VARCHAR)+''''
  162. END
  163. ELSE IF @countryId = '203' AND @serviceType NOT IN (1, 13)
  164. BEGIN
  165. SET @SQL = 'SELECT payoutPartner = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+'''
  166. ,countryId = CountryId
  167. ,id = AL.BANK_ID
  168. ,Name = LTRIM(RTRIM(AL.BANK_CODE2))
  169. ,Code = LTRIM(RTRIM(AL.BANK_CODE1))
  170. ,AgentRole = '''+CAST(@serviceType AS VARCHAR)+'''
  171. ,BranchRequired = ''False''
  172. ,IsAccountRequired = CASE WHEN '''+CAST(@serviceType AS VARCHAR)+''' = 2 THEN ''True'' ELSE ''False'' END
  173. ,IsAccountValidation = ''False''
  174. ,agentCurrency = '''+CAST(@agentCurrency AS VARCHAR)+'''
  175. FROM API_BANK_LIST AL(NOLOCK)
  176. INNER JOIN COUNTRYMASTER CM(NOLOCK) ON CM.COUNTRYNAME = AL.BANK_COUNTRY
  177. WHERE CM.CountryId = '''+CAST(@countryId AS VARCHAR)+'''
  178. AND AL.PAYMENT_TYPE_ID IN (0, '''+CAST(@serviceType AS VARCHAR)+''')
  179. AND AL.IS_ACTIVE = 1
  180. AND AL.API_PARTNER_ID = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+''''
  181. END
  182. ELSE
  183. BEGIN
  184. SET @SQL = 'SELECT payoutPartner = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+'''
  185. ,countryId = CountryId
  186. ,id = AL.BANK_ID
  187. ,Name = LTRIM(RTRIM(AL.BANK_NAME))
  188. ,Code = LTRIM(RTRIM(AL.BANK_CODE1))
  189. ,AgentRole = '''+CAST(@serviceType AS VARCHAR)+'''
  190. ,BranchRequired = CASE WHEN '''+CAST(@countryId AS VARCHAR)+''' = 151 THEN ''False'' ELSE ''True'' END
  191. ,IsAccountRequired = CASE WHEN '''+CAST(@serviceType AS VARCHAR)+''' = 2 THEN ''True'' ELSE ''False'' END
  192. ,IsAccountValidation = ''False''
  193. ,agentCurrency = '''+CAST(@agentCurrency AS VARCHAR)+'''
  194. FROM API_BANK_LIST AL(NOLOCK)
  195. INNER JOIN COUNTRYMASTER CM(NOLOCK) ON CM.COUNTRYNAME = AL.BANK_COUNTRY
  196. WHERE CM.CountryId = '''+CAST(@countryId AS VARCHAR)+'''
  197. AND AL.PAYMENT_TYPE_ID IN (0, '''+CAST(@serviceType AS VARCHAR)+''')
  198. AND AL.IS_ACTIVE = 1
  199. AND AL.API_PARTNER_ID = '''+CAST(@PAYOUTPARTNER AS VARCHAR)+''''
  200. END
  201. --PRINT(@SQL)
  202. INSERT INTO @AGENTLIST
  203. EXEC(@SQL)
  204. SELECT * FROM @AGENTLIST ORDER BY Name
  205. --EXEC PROC_MOBILE_DYNAMIC_RECEIVERDETAILS @countryId = '104', @serviceType = 2
  206. --SELECT * FROM COUNTRYMASTER WHERE COUNTRYNAME = 'INDIA'
  207. --##10
  208. SELECT TOP 30
  209. A.Id AS BankId
  210. ,ABL.BRANCH_ID AS Id
  211. ,ABL.BRANCH_NAME AS [NAME]
  212. FROM @AGENTLIST A
  213. INNER JOIN API_BANK_BRANCH_LIST ABL (NOLOCK) ON ABL.BANK_ID = A.id
  214. ORDER BY [Name]
  215. --##11
  216. SELECT DISTINCT
  217. Currency = X.value
  218. ,T.Id
  219. ,X.[Key]
  220. FROM @AGENTLIST t
  221. INNER JOIN #payoutMode AS PM ON PM.BankRequired = 'True' AND pm.PayoutPartner = t.payoutPartner
  222. CROSS APPLY DBO.GetCountryCurrency(@countryId,PM.Id,T.Id)X
  223. WHERE PM.Id = ISNULL(t.AgentRole,PM.ID) AND t.AgentRole = @serviceType
  224. ORDER BY X.[Key] DESC
  225. --PRINT @countryId
  226. --PRINT @serviceType
  227. --##12
  228. SELECT payoutpartner = @PAYOUTPARTNER--dbo.GetActivePayoutPartner(@countryId,@serviceType,'')
  229. RETURN
  230. END