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.
243 lines
15 KiB
243 lines
15 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[proc_payAcDeposit] Script Date: 9/27/2019 1:30:14 PM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
CREATE proc [dbo].[proc_payAcDeposit]
|
|
@flag VARCHAR(50)
|
|
,@controlNo VARCHAR(20) = NULL
|
|
,@accountNo VARCHAR(30) = NULL
|
|
,@senderName VARCHAR(50) = NULL
|
|
,@receiverName VARCHAR(50) = NULL
|
|
,@user VARCHAR(30) = NULL
|
|
,@tranIds VARCHAR(MAX) = NULL
|
|
,@pBranch INT = NULL
|
|
,@settlingAgent INT = NULL
|
|
,@bankId INT = NULL
|
|
,@sortBy VARCHAR(50) = NULL
|
|
,@sortOrder VARCHAR(5) = NULL
|
|
,@pageSize INT = NULL
|
|
,@pageNumber INT = NULL
|
|
,@tranNos VARCHAR(MAX) = NULL
|
|
AS
|
|
|
|
/*
|
|
|
|
EXEC proc_payAcDeposit @flag = 's' ,@pageNumber='1', @pageSize='10', @sortBy='controlNo', @sortOrder='ASC', @user = 'admin'
|
|
*/
|
|
DECLARE
|
|
@select_field_list VARCHAR(MAX)
|
|
,@extra_field_list VARCHAR(MAX)
|
|
,@table VARCHAR(MAX)
|
|
,@sql_filter VARCHAR(MAX)
|
|
|
|
SET NOCOUNT ON
|
|
SET XACT_ABORT ON
|
|
|
|
DECLARE
|
|
@controlNoEncrypted VARCHAR(100)
|
|
SELECT @controlNoEncrypted = dbo.FNAEncryptString(@controlNo)
|
|
|
|
SELECT @pageSize = 1000, @pageNumber = 1
|
|
|
|
|
|
IF @flag = 's' --Select Transaction with payment type AC Deposit
|
|
BEGIN
|
|
SET @table = '(
|
|
SELECT
|
|
trn.id
|
|
,controlNo = ''<a href="#" onclick="OpenInNewWindow('''''+dbo.FNAGetURL()+'Remit/Transaction/Reports/SearchTransaction.aspx?controlNo='' + dbo.FNADecryptString(trn.controlNo) + '''''')">'' + dbo.FNADecryptString(trn.controlNo) + ''</a>''
|
|
--,controlNo = dbo.FNADecryptString(trn.controlNo)
|
|
,trn.accountNo
|
|
,bankName = ISNULL(trn.pBankName,trn.pAgentName)
|
|
,pBranchName = ISNULL(trn.pBankBranchName,trn.pBranchName)
|
|
,trn.pAmt
|
|
,trn.payoutCurr
|
|
,rCustomerId = rec.customerId
|
|
,receiverName = rec.firstName + ISNULL( '' '' + rec.middleName, '''') + ISNULL( '' '' + rec.lastName1, '''') + ISNULL( '' '' + rec.lastName2, '''')
|
|
,rCountryName = rec.country
|
|
,rStateName = rec.state
|
|
,rCity = rec.city
|
|
,rAddress = rec.address
|
|
,tranDate = trn.approvedDate
|
|
FROM remitTran trn WITH(NOLOCK)
|
|
LEFT JOIN tranReceivers rec WITH(NOLOCK) ON trn.id = rec.tranId
|
|
WHERE trn.tranStatus = ''Payment''
|
|
AND trn.payStatus = ''Unpaid''
|
|
AND trn.paymentMethod = ''Bank Deposit''
|
|
'
|
|
--AND pBranch = ' + CAST(@pBranch AS VARCHAR) + '
|
|
SET @sql_filter = ''
|
|
|
|
IF @bankId IS NOT NULL
|
|
SET @table = @table + ' AND pAgent = ' + CAST(@bankId AS VARCHAR) + ''
|
|
|
|
IF @pBranch IS NOT NULL
|
|
SET @table = @table + ' AND pBranch = ' + CAST(@pBranch AS VARCHAR) + ''
|
|
|
|
IF @controlNo IS NOT NULL
|
|
SET @table = @table + ' AND trn.controlNo = ''' + @controlNoEncrypted + ''''
|
|
|
|
IF @accountNo IS NOT NULL
|
|
SET @table = @table + ' AND trn.accountNo = ''' + @accountNo + ''''
|
|
|
|
IF @receiverName IS NOT NULL
|
|
SET @sql_filter = @sql_filter + ' AND receiverName LIKE ''%' + @receiverName + '%'''
|
|
|
|
SET @select_field_list ='
|
|
id
|
|
,controlNo
|
|
,accountNo
|
|
,bankName
|
|
,pBranchName
|
|
,pAmt
|
|
,payoutCurr
|
|
,rCustomerId
|
|
,receiverName
|
|
,rCountryName
|
|
,rStateName
|
|
,rCity
|
|
,rAddress
|
|
,tranDate
|
|
'
|
|
SET @table = @table + ') x'
|
|
|
|
EXEC dbo.proc_paging
|
|
@table
|
|
,@sql_filter
|
|
,@select_field_list
|
|
,@extra_field_list
|
|
,@sortBy
|
|
,@sortOrder
|
|
,@pageSize
|
|
,@pageNumber
|
|
END
|
|
|
|
ELSE IF @flag = 'payIntl'
|
|
BEGIN
|
|
DECLARE @txn TABLE(id INT IDENTITY(1,1),tranNo VARCHAR(50))
|
|
DECLARE @script VARCHAR(MAX)
|
|
|
|
IF NOT EXISTS(SELECT 'X' FROM @txn)
|
|
BEGIN
|
|
EXEC proc_errorHandler 0, 'No Transaction to post', NULL
|
|
RETURN
|
|
END
|
|
|
|
EXEC proc_errorHandler 0, 'Transaction(s) paid successfully', NULL
|
|
END
|
|
|
|
ELSE IF @flag = 'u'
|
|
BEGIN
|
|
DECLARE @sql VARCHAR(MAX)
|
|
DECLARE
|
|
@tranId INT
|
|
,@rowId INT
|
|
,@totalRow INT
|
|
,@sBranch INT
|
|
,@pSuperAgent INT
|
|
,@sCountry VARCHAR(100)
|
|
,@sLocation INT
|
|
,@pHubComm MONEY, @pHubCommCurrency VARCHAR(3), @pSuperAgentComm MONEY, @pSuperAgentCommCurrency VARCHAR(3), @pAgentComm MONEY, @pAgentCommCurrency VARCHAR(3)
|
|
,@pCountry VARCHAR(100), @pCountryId INT, @pLocation INT
|
|
,@deliveryMethod VARCHAR(50), @deliveryMethodId INT
|
|
,@collCurr VARCHAR(3), @tAmt MONEY, @cAmt MONEY, @pAmt MONEY, @payoutCurr VARCHAR(3), @serviceCharge MONEY
|
|
IF(@tranIds IS NULL)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Transaction(s) not found', NULL
|
|
RETURN
|
|
END
|
|
CREATE TABLE #tempTran(rowId INT IDENTITY(1,1), tranId INT)
|
|
SET @sql = '
|
|
INSERT INTO #tempTran(tranId)
|
|
SELECT id FROM remitTran WHERE id IN (' + @tranIds + ')
|
|
'
|
|
EXEC(@sql)
|
|
|
|
SET @rowId = 1
|
|
SELECT @totalRow = COUNT(rowId) FROM #tempTran
|
|
WHILE (@rowId <= @totalRow)
|
|
BEGIN
|
|
SELECT @tranId = tranId FROM #tempTran WHERE rowId = @rowId
|
|
SELECT
|
|
@sBranch = trn.sBranch
|
|
,@sCountry = trn.sCountry
|
|
,@sLocation = sb.agentLocation
|
|
,@pSuperAgent = trn.pSuperAgent
|
|
,@pCountryId = cm.countryId
|
|
,@pLocation = trn.pLocation
|
|
,@pBranch = trn.pBranch
|
|
,@deliveryMethodId = dm.serviceTypeId
|
|
,@tAmt = trn.tAmt
|
|
,@cAmt = trn.cAmt
|
|
,@pAmt = trn.pAmt
|
|
,@serviceCharge = trn.serviceCharge
|
|
,@payoutCurr = trn.payoutCurr
|
|
FROM remitTran trn WITH(NOLOCK)
|
|
LEFT JOIN agentMaster sb WITH(NOLOCK) ON trn.sBranch = sb.agentId
|
|
LEFT JOIN countryMaster cm WITH(NOLOCK) ON trn.pCountry = cm.countryName
|
|
LEFT JOIN serviceTypeMaster dm WITH(NOLOCK) ON trn.paymentMethod = dm.typeTitle
|
|
WHERE id = @tranId
|
|
|
|
--Commission Calculation Starts---------------------------------
|
|
IF @sCountry = 'Nepal'
|
|
BEGIN
|
|
SELECT
|
|
@pAgentComm = ISNULL(pAgentComm, 0)
|
|
,@pSuperAgentComm = ISNULL(psAgentComm, 0)
|
|
FROM dbo.FNAGetDomesticPayComm(@sBranch, @pBranch, @deliveryMethodId, @tAmt)
|
|
|
|
SELECT @pAgentCommCurrency = 'NPR', @pSuperAgentCommCurrency = 'NPR'
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT @pSuperAgentComm = amount, @pSuperAgentCommCurrency = commissionCurrency FROM dbo.FNAGetPayCommSA(@sBranch, NULL, @sLocation, @pSuperAgent, @pCountryId, @pLocation, @pBranch, @payoutCurr, @deliveryMethodId, @cAmt, @pAmt, @serviceCharge, @pHubComm, 0)
|
|
|
|
SELECT @pAgentComm = amount, @pAgentCommCurrency = commissionCurrency FROM dbo.FNAGetPayComm(@sBranch, NULL, @sLocation, @pSuperAgent, @pCountryId, @pLocation, @pBranch, @payoutCurr, @deliveryMethodId, @cAmt, @pAmt, @serviceCharge, @pHubComm, @pSuperAgentComm)
|
|
END
|
|
--Commission Calculation Ends-----------------------------------
|
|
UPDATE remitTran SET
|
|
pHubComm = @pHubComm
|
|
,pHubCommCurrency = @pHubCommCurrency
|
|
,pSuperAgentComm = @pSuperAgentComm
|
|
,pSuperAgentCommCurrency = @pSuperAgentCommCurrency
|
|
,pAgentComm = @pAgentComm
|
|
,pAgentCommCurrency = @pAgentCommCurrency
|
|
,tranStatus = 'Paid'
|
|
,payStatus = 'Paid'
|
|
,paidBy = @user
|
|
,paidDate = GETDATE()
|
|
,paidDateLocal = dbo.FNADateFormatTZ(GETDATE(), @user)
|
|
WHERE id = @tranId
|
|
|
|
SELECT @settlingAgent = agentId FROM applicationUsers WITH(NOLOCK) WHERE userName = @user
|
|
--EXEC proc_updateTopUpLimit @settlingAgent, @pAmt
|
|
|
|
SET @rowId = @rowId + 1
|
|
END
|
|
|
|
/*
|
|
-- ### inserting txn view history
|
|
INSERT INTO tranViewHistory (
|
|
tranViewType
|
|
,createdBy
|
|
,createdDate
|
|
,tranId
|
|
,remarks
|
|
)
|
|
SELECT
|
|
'PAY'
|
|
,@user
|
|
,GETDATE()
|
|
,value
|
|
,'ADM: PAY A/C DEPOSIT TXN' from dbo.Split(',',@tranIds)
|
|
|
|
*/
|
|
EXEC proc_errorHandler 0, 'Transaction(s) paid successfully', NULL
|
|
END
|
|
|
|
|
|
GO
|