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.

169 lines
5.9 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[mobile_proc_sendMoney] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[mobile_proc_sendMoney]') AND type in (N'P', N'PC'))
  7. DROP PROCEDURE [dbo].[mobile_proc_sendMoney]
  8. SET QUOTED_IDENTIFIER ON
  9. GO
  10. --EXEC mobile_proc_sendMoney @Flag='load',@pCountry='pk',@receiverId = '268980',@customerId='32994'
  11. --EXEC mobile_proc_sendMoney @flag='bankBranch', @pCountry = 'NP', @receiverId = '26663',@Bank='1066',@Search='CCBL'
  12. Create PROC [dbo].[mobile_proc_sendMoney](
  13. @Flag VARCHAR(20) = NULL
  14. ,@pCountry VARCHAR(10) = NULL
  15. ,@receiverId VARCHAR(10) = NULL
  16. ,@Bank VARCHAR(100)= NULL
  17. ,@Search VARCHAR(100)= NULL
  18. ,@customerId INT = NULL
  19. )
  20. AS
  21. --#101 mobile changes
  22. SET NOCOUNT ON
  23. BEGIN
  24. IF @Flag='load'
  25. BEGIN
  26. IF OBJECT_ID('tempdb..#payoutMode') IS NOT NULL
  27. DROP TABLE #payoutMode
  28. IF OBJECT_ID('tempdb..#tempBankList') IS NOT NULL
  29. DROP TABLE #tempBankList
  30. SELECT @pCountry = CM.countryId
  31. FROM dbo.countryMaster(NOLOCK) AS CM
  32. WHERE CM.countryCode = @pCountry
  33. SELECT DISTINCT * INTO #payoutMode FROM (
  34. SELECT
  35. CRM.countryId
  36. ,Id = crm.receivingMode
  37. ,Mode = STM.typeDesc
  38. ,PayoutPartner = TPC.AgentId
  39. ,BankRequired = CASE WHEN crm.agentSelection ='N' THEN 'False' ELSE 'True' END
  40. --INTO #payoutMode
  41. FROM dbo.countryReceivingMode(NOLOCK) AS CRM
  42. INNER JOIN dbo.serviceTypeMaster(NOLOCK) AS STM ON CRM.receivingMode = STM.serviceTypeId
  43. INNER JOIN dbo.TblPartnerwiseCountry(NOLOCK) AS TPC ON TPC.CountryId = CRM.countryId AND CRM.receivingMode = ISNULL(TPC.PaymentMethod,CRM.receivingMode)
  44. WHERE CRM.countryId = @pCountry AND TPC.IsActive = 1
  45. AND STM.isActive = 'Y'
  46. )x
  47. SELECT
  48. AM.agentCountryId AS countryId
  49. ,am.agentId AS Id,am.agentName AS [Name]
  50. ,am.agentCode AS Code
  51. ,AgentRole
  52. ,parentId =CASE WHEN @pCountry=151 THEN '1036' ELSE am.parentId END
  53. ,am.agentState
  54. ,am.isInternal ---- this field is used for account validation 1: allow to do account validation , 0 or null : no need validation
  55. INTO #tempBankList
  56. FROM dbo.agentMaster(NOLOCK) AS AM
  57. WHERE AM.agentType = 2903 AND AM.isActive = 'Y' AND AM.agentCountryId = @pCountry
  58. AND ISNULL(isApiPartner,'0') = '0'
  59. ORDER BY am.agentId
  60. --DECLARE @col varchar(MAX);
  61. --SELECT @col = COALESCE(@col + ',', '') + xx.value
  62. --FROM (
  63. -- SELECT DISTINCT p.PayoutPartner,x.value FROM #payoutMode p
  64. -- INNER JOIN (
  65. -- SELECT @pCountry AS Country,* FROM dbo.GetCountryCurrency(@pCountry,null,null)
  66. -- )x ON x.Country = p.countryId
  67. -- )xx WHERE xx.value <> 'KRW'
  68. ----## GET COUNTRY INFO
  69. SELECT CM.countryId AS Id,CM.countryName AS Name, CM.countryCode AS Code
  70. FROM dbo.countryMaster(NOLOCK) AS CM
  71. WHERE CM.countryId = @pCountry
  72. SELECT
  73. PM.countryId AS CountryId
  74. ,PM.Id AS ModeId
  75. ,PM.Mode,PM.PayoutPartner
  76. ,PayCurrency = dbo.GetAllowCurrency(@pCountry,Id,null)
  77. ,BankRequired
  78. FROM #payoutMode AS PM
  79. WHERE PM.PayoutPartner IS NOT NULL
  80. ORDER BY PM.Mode ASC
  81. CREATE TABLE #TEMPBRANCH(parentId BIGINT)
  82. IF @pCountry NOT IN (151)
  83. BEGIN
  84. INSERT INTO #TEMPBRANCH
  85. SELECT DISTINCT parentId FROM agentMaster(NOLOCK)
  86. WHERE agentCountryId = @pCountry AND agentType = '2904' AND isActive = 'Y'
  87. END
  88. --SELECT * FROM #tempBankList
  89. --SELECT * FROM #payoutMode
  90. --RETURN
  91. ----## GET COUNTRY WISE PAYMODE AND PARTNER
  92. SELECT
  93. t.countryId,t.id
  94. ,Name = t.Name + CASE WHEN t.parentId in (224388,2140,392226) THEN ISNULL(' - ' +t.Code, '') WHEN t.countryId = 142 THEN ISNULL(' - ' + t.agentState, '') ELSE '' END
  95. ,t.Code,AgentRole = PM.Id
  96. --,CASE WHEN dbo.IsBranchRequired(t.Id)=0 THEN 'False' ELSE 'True' END AS BranchRequired
  97. ,BranchRequired = CASE WHEN A.parentId IS NOT NULL THEN 'True' ELSE 'False' END
  98. ,IsAccountRequired = CASE WHEN PM.BankRequired = 'True' AND PM.Id NOT IN( 1 ) THEN 'True' ELSE 'False' END
  99. --,IsAccountValidation = CASE WHEN PM.BankRequired='True' AND dbo.IsBankAccountValidationReq(pm.countryId,pm.Id,t.Id) = 1 THEN 'True' ELSE 'False' END
  100. ,IsAccountValidation = CASE WHEN isInternal='1' THEN 'True' ELSE 'False' END
  101. FROM #tempBankList t
  102. INNER JOIN #payoutMode AS PM ON PM.BankRequired = 'True' AND pm.PayoutPartner = t.parentId
  103. LEFT JOIN #TEMPBRANCH a(nolock) ON A.parentId = T.Id
  104. WHERE PM.Id = ISNULL(t.AgentRole,PM.ID)
  105. ORDER BY T.Name
  106. SELECT TOP (30)
  107. TBL.Id AS BankId
  108. ,AM.agentId AS Id
  109. ,[Name] = CASE WHEN agentCountryId <> '151' THEN AgentName + ' - ' + CAST(agentCode AS VARCHAR) ELSE AgentName END
  110. FROM dbo.agentMaster(NOLOCK) AS AM
  111. INNER JOIN #tempBankList AS TBL ON AM.parentId = TBL.Id
  112. WHERE AM.agentType = 2904
  113. ORDER BY [Name]
  114. SELECT DISTINCT
  115. Currency = X.value
  116. ,T.Id
  117. ,X.[Key]
  118. FROM #tempBankList t
  119. INNER JOIN #payoutMode AS PM ON PM.BankRequired = 'True' AND pm.PayoutPartner = t.parentId
  120. CROSS APPLY DBO.GetCountryCurrency(@pCountry,PM.Id,T.Id)X
  121. WHERE PM.Id = ISNULL(t.AgentRole,PM.ID)
  122. ORDER BY X.[Key] DESC
  123. --SELECT
  124. -- DISTINCT Currency = dbo.GetAllowCurrency(AM.agentCountryId,am.agentRole,AM.agentId)
  125. -- ,am.agentId AS Id
  126. --FROM dbo.agentMaster AS AM(NOLOCK)
  127. --WHERE AM.agentType = 2903 AND AM.isActive = 'Y'
  128. --AND AM.agentCountryId = @pCountry AND ISNULL(AM.isApiPartner,'0') = '0'
  129. --ORDER BY am.agentId
  130. SELECT * FROM dbo.receiverInformation (NOLOCK)
  131. WHERE receiverId = @receiverId
  132. END
  133. IF @Flag='bankBranch'
  134. BEGIN
  135. --IF @countryId IN (105, 174, 151)
  136. --BEGIN
  137. -- SELECT 0 agentId,agentName = 'Any Branch'
  138. -- RETURN
  139. --END
  140. SELECT top 20
  141. Id = BRANCH_ID
  142. ,[Name] = CASE WHEN BRANCH_COUNTRY <> 'NEPAL' THEN BRANCH_NAME + ' - ' + CAST(BRANCH_CODE1 AS VARCHAR) ELSE BRANCH_NAME END
  143. ,BranhCode = BRANCH_CODE1
  144. FROM API_BANK_BRANCH_LIST WITH(NOLOCK)
  145. WHERE IS_ACTIVE = 1
  146. AND BANK_ID = @Bank
  147. AND (BRANCH_NAME LIKE '%'+ISNULL(@Search, BRANCH_NAME)+'%' OR BRANCH_CODE1 LIKE '%'+ISNULL(@Search, BRANCH_CODE1)+'%')
  148. ORDER BY [Name]
  149. END
  150. END