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.
 
 
 

170 lines
5.9 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[mobile_proc_sendMoney] Script Date: 9/27/2019 1:30:14 PM ******/
SET ANSI_NULLS ON
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[mobile_proc_sendMoney]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[mobile_proc_sendMoney]
SET QUOTED_IDENTIFIER ON
GO
--EXEC mobile_proc_sendMoney @Flag='load',@pCountry='pk',@receiverId = '268980',@customerId='32994'
--EXEC mobile_proc_sendMoney @flag='bankBranch', @pCountry = 'NP', @receiverId = '26663',@Bank='1066',@Search='CCBL'
Create PROC [dbo].[mobile_proc_sendMoney](
@Flag VARCHAR(20) = NULL
,@pCountry VARCHAR(10) = NULL
,@receiverId VARCHAR(10) = NULL
,@Bank VARCHAR(100)= NULL
,@Search VARCHAR(100)= NULL
,@customerId INT = NULL
)
AS
--#101 mobile changes
SET NOCOUNT ON
BEGIN
IF @Flag='load'
BEGIN
IF OBJECT_ID('tempdb..#payoutMode') IS NOT NULL
DROP TABLE #payoutMode
IF OBJECT_ID('tempdb..#tempBankList') IS NOT NULL
DROP TABLE #tempBankList
SELECT @pCountry = CM.countryId
FROM dbo.countryMaster(NOLOCK) AS CM
WHERE CM.countryCode = @pCountry
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 = @pCountry AND TPC.IsActive = 1
AND STM.isActive = 'Y'
)x
SELECT
AM.agentCountryId AS countryId
,am.agentId AS Id,am.agentName AS [Name]
,am.agentCode AS Code
,AgentRole
,parentId =CASE WHEN @pCountry=151 THEN '1036' ELSE am.parentId END
,am.agentState
,am.isInternal ---- this field is used for account validation 1: allow to do account validation , 0 or null : no need validation
INTO #tempBankList
FROM dbo.agentMaster(NOLOCK) AS AM
WHERE AM.agentType = 2903 AND AM.isActive = 'Y' AND AM.agentCountryId = @pCountry
AND ISNULL(isApiPartner,'0') = '0'
ORDER BY am.agentId
--DECLARE @col varchar(MAX);
--SELECT @col = COALESCE(@col + ',', '') + xx.value
--FROM (
-- SELECT DISTINCT p.PayoutPartner,x.value FROM #payoutMode p
-- INNER JOIN (
-- SELECT @pCountry AS Country,* FROM dbo.GetCountryCurrency(@pCountry,null,null)
-- )x ON x.Country = p.countryId
-- )xx WHERE xx.value <> 'KRW'
----## 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 = @pCountry
SELECT
PM.countryId AS CountryId
,PM.Id AS ModeId
,PM.Mode,PM.PayoutPartner
,PayCurrency = dbo.GetAllowCurrency(@pCountry,Id,null)
,BankRequired
FROM #payoutMode AS PM
WHERE PM.PayoutPartner IS NOT NULL
ORDER BY PM.Mode ASC
CREATE TABLE #TEMPBRANCH(parentId BIGINT)
IF @pCountry NOT IN (151)
BEGIN
INSERT INTO #TEMPBRANCH
SELECT DISTINCT parentId FROM agentMaster(NOLOCK)
WHERE agentCountryId = @pCountry AND agentType = '2904' AND isActive = 'Y'
END
--SELECT * FROM #tempBankList
--SELECT * FROM #payoutMode
--RETURN
----## GET COUNTRY WISE PAYMODE AND PARTNER
SELECT
t.countryId,t.id
,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
,t.Code,AgentRole = PM.Id
--,CASE WHEN dbo.IsBranchRequired(t.Id)=0 THEN 'False' ELSE 'True' END AS BranchRequired
,BranchRequired = CASE WHEN A.parentId IS NOT NULL THEN 'True' ELSE 'False' END
,IsAccountRequired = CASE WHEN PM.BankRequired = 'True' AND PM.Id NOT IN( 1 ) THEN 'True' ELSE 'False' END
--,IsAccountValidation = CASE WHEN PM.BankRequired='True' AND dbo.IsBankAccountValidationReq(pm.countryId,pm.Id,t.Id) = 1 THEN 'True' ELSE 'False' END
,IsAccountValidation = CASE WHEN isInternal='1' THEN 'True' ELSE 'False' END
FROM #tempBankList t
INNER JOIN #payoutMode AS PM ON PM.BankRequired = 'True' AND pm.PayoutPartner = t.parentId
LEFT JOIN #TEMPBRANCH a(nolock) ON A.parentId = T.Id
WHERE PM.Id = ISNULL(t.AgentRole,PM.ID)
ORDER BY T.Name
SELECT TOP (30)
TBL.Id AS BankId
,AM.agentId AS Id
,[Name] = CASE WHEN agentCountryId <> '151' THEN AgentName + ' - ' + CAST(agentCode AS VARCHAR) ELSE AgentName END
FROM dbo.agentMaster(NOLOCK) AS AM
INNER JOIN #tempBankList AS TBL ON AM.parentId = TBL.Id
WHERE AM.agentType = 2904
ORDER BY [Name]
SELECT DISTINCT
Currency = X.value
,T.Id
,X.[Key]
FROM #tempBankList t
INNER JOIN #payoutMode AS PM ON PM.BankRequired = 'True' AND pm.PayoutPartner = t.parentId
CROSS APPLY DBO.GetCountryCurrency(@pCountry,PM.Id,T.Id)X
WHERE PM.Id = ISNULL(t.AgentRole,PM.ID)
ORDER BY X.[Key] DESC
--SELECT
-- DISTINCT Currency = dbo.GetAllowCurrency(AM.agentCountryId,am.agentRole,AM.agentId)
-- ,am.agentId AS Id
--FROM dbo.agentMaster AS AM(NOLOCK)
--WHERE AM.agentType = 2903 AND AM.isActive = 'Y'
--AND AM.agentCountryId = @pCountry AND ISNULL(AM.isApiPartner,'0') = '0'
--ORDER BY am.agentId
SELECT * FROM dbo.receiverInformation (NOLOCK)
WHERE receiverId = @receiverId
END
IF @Flag='bankBranch'
BEGIN
--IF @countryId IN (105, 174, 151)
--BEGIN
-- SELECT 0 agentId,agentName = 'Any Branch'
-- RETURN
--END
SELECT top 20
Id = BRANCH_ID
,[Name] = CASE WHEN BRANCH_COUNTRY <> 'NEPAL' THEN BRANCH_NAME + ' - ' + CAST(BRANCH_CODE1 AS VARCHAR) ELSE BRANCH_NAME END
,BranhCode = BRANCH_CODE1
FROM API_BANK_BRANCH_LIST WITH(NOLOCK)
WHERE IS_ACTIVE = 1
AND BANK_ID = @Bank
AND (BRANCH_NAME LIKE '%'+ISNULL(@Search, BRANCH_NAME)+'%' OR BRANCH_CODE1 LIKE '%'+ISNULL(@Search, BRANCH_CODE1)+'%')
ORDER BY [Name]
END
END