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.
 
 
 

260 lines
14 KiB

USE [FastMoneyPro_Remit]
GO
--EXEC proc_settlement_v2 @flag = 'S', @user = 'admin', @pCountry = 'SOUTH KOREA', @sAgent = NULL, @sBranch = null, @fromDate = '09/10/2017', @toDate = '01/15/2018', @pageNumber = '1', @pageSize = '100'
ALTER PROCEDURE [dbo].[proc_settlement_v2]
@flag VARCHAR(20) = NULL,
@pCountry VARCHAR(20) = NULL,
@sAgent VARCHAR(50),
@sBranch VARCHAR(20) = NULL,
@fromDate VARCHAR(30) = NULL,
@toDate VARCHAR(50) = NULL,
@pageNumber VARCHAR(50) = NULL,
@pageSize VARCHAR(50) = NULL,
@user VARCHAR(50) = NULL
AS
SET NOCOUNT ON;
SET ANSI_NULLS ON;
IF @pCountry = 'All'
SET @pCountry = NULL
IF @flag='s'
BEGIN
IF OBJECT_ID(N'tempdb..#SETTLEMENT') IS NOT NULL
DROP TABLE #SETTLEMENT
declare @sql varchar(max),@fxGain varchar(1),@agentCountry varchar(200),@isAgentUUM char(1) = null,@cutOffDate VARCHAR(20) = '2014-10-20'
SELECT id,controlNo,holdTranId
,sCurrCostRate,sCurrHoMargin,sCurrAgentMargin
,pCurrCostRate,pCurrHoMargin,pCurrAgentMargin
,customerRate,sAgentSettRate
,pDateCostRate,agentFxGain
,serviceCharge = CASE WHEN PAGENT = 221227 THEN 0 ELSE serviceCharge END
,handlingFee,sAgentComm,sAgentCommCurrency,pAgentComm,pAgentCommCurrency
,senderName,receiverName,sCountry,sAgent,sAgentName,sBranch,sBranchName
,pCountry ,pAgent,pAgentName,pBranch,pBranchName
,collCurr,tAmt,cAmt,pAmt,payoutCurr,tranStatus,payStatus
,createdDate
,approvedDate = CAST(approvedDate AS DATE)
,paidDate
,cancelApprovedDate = CAST(cancelApprovedDate AS DATE)
INTO #SETTLEMENT
FROM remitTran WITH (NOLOCK)
WHERE 1=1
AND
(
(SAGENT=ISNULL(@sAgent, SAGENT) AND createdDate BETWEEN @fromDate AND @toDate + ' 23:59:59' AND sCountry = isnull(@pCountry,sCountry) AND sBranch = isnull(@sBranch,sBranch))
OR (SAGENT=ISNULL(@sAgent, SAGENT) AND CANCELAPPROVEDDATE BETWEEN @fromDate AND @toDate + ' 23:59:59' AND sCountry = isnull(@pCountry,sCountry) AND sBranch = isnull(@sBranch,sBranch))
OR (PAGENT=ISNULL(@sAgent, PAGENT) AND PAIDDATE BETWEEN @fromDate AND @toDate + ' 23:59:59' AND pCountry = isnull(@pCountry,pCountry) AND pBranch = isnull(@sBranch,pBranch))
)
CREATE TABLE #SETTLEMENT_MAIN
(
REMARKS VARCHAR(100) NULL,
[DATE] DATE NULL,
TOTTRAN INT NULL,
CURR VARCHAR(10) NULL,
LCYCA MONEY NULL,
LCYSC MONEY NULL,
LCYTA MONEY NULL,
LCYCOMM MONEY NULL,
LCYFX MONEY NULL,
LCYSETTL MONEY NULL,
USDCA MONEY NULL,
USDSC MONEY NULL,
USDTA MONEY NULL,
USDCOMM MONEY NULL,
USDSETTL MONEY NULL,
SUMPA MONEY NULL
)
--INSERT INTO #SETTLEMENT_MAIN(REMARKS,[DATE],TOTTRAN,LCYCA,LCYSC,LCYTA,LCYCOMM,LCYFX,LCYSETTL,USDCA,USDSC,USDTA,USDCOMM,USDSETTL,SUMPA)
SELECT * FROM
(
SELECT
[Remarks] = '<a href="Reports.aspx?reportName=irhSettDrilDwn&sAgent='+isnull(@sAgent, '')+'&pCountry='+
ISNULL(@pCountry,'')+'&sBranch='+ISNULL(CAST(@sBranch AS VARCHAR),'')+'&fromDate='+
convert(varchar,createdDate,101)+'&toDate='+convert(varchar,createdDate,101)+'&flag=Send"> '+ 'Remittance Send(+)' +' </a>'
,[DATE] = convert(varchar,createdDate,101)
,[Total Trans] = COUNT(id)
,[IN COLLECTION CURRENCY_Total Collection] = SUM(cAmt)
,[IN COLLECTION CURRENCY_Total Charge] = SUM(ISNULL(serviceCharge,0))
,[IN COLLECTION CURRENCY_Principal Amount] = SUM(tAmt)
,[IN COLLECTION CURRENCY_Agent<br /> Commission]= SUM(sAgentComm)
,[IN COLLECTION CURRENCY_Settlement Amount] = SUM(tAmt + ISNULL(sAgentComm,0))
,[IN COLLECTION CURRENCY_Fx. Gain] = SUM(agentFxGain)
,[IN USD_Total Collection] = SUM(cAmt/(sCurrCostRate+isnull(sCurrHoMargin,0)))
,[IN USD_Total Charge] = SUM(serviceCharge/sCurrCostRate)
,[IN USD_Principal Amount] = SUM(tAmt/(sCurrCostRate+isnull(sCurrHoMargin,0)))
,[IN USD_Agent <br /> Commission] = SUM(sAgentComm/sCurrCostRate)
,[IN USD_Settlement Amount] = SUM((cAmt-sAgentComm)/(sCurrCostRate+isnull(sCurrHoMargin,0)))
,[IN Paying_Principal Amount] = SUM(pAmt)
FROM #SETTLEMENT
WHERE SAGENT = ISNULL(@sAgent, SAGENT) AND createdDate BETWEEN @fromDate AND @toDate + ' 23:59:59'
GROUP BY convert(varchar,createdDate,101)
UNION ALL
SELECT
[Remarks] ='<a href="Reports.aspx?reportName=irhSettDrilDwn&sAgent='+isnull(@sAgent, '')+'&pCountry='+
ISNULL(@pCountry,'')+'&sBranch='+ISNULL(CAST(@sBranch AS VARCHAR),'')+'&fromDate='+
convert(varchar,cancelApprovedDate,101)+'&toDate='+convert(varchar,cancelApprovedDate,101)+'&flag=cancel"> '+ 'Remittance Cancel(-)'+' </a>'
,[DATE] = convert(varchar,cancelApprovedDate,101)
,[Nos] = COUNT(id) * -1
,[IN COLLECTION CURRENCY_Total Collection] = SUM(cAmt) * -1
,[IN COLLECTION CURRENCY_Total Charge] = SUM(ISNULL(serviceCharge,0)) * -1
,[IN COLLECTION CURRENCY_Principal Amount] = SUM(tAmt)* -1
,[IN COLLECTION CURRENCY_Agent<br /> Commission]= SUM(sAgentComm)* -1
,[IN COLLECTION CURRENCY_Settlement Amount] = SUM(tAmt + ISNULL(sAgentComm,0))* -1
,[IN COLLECTION CURRENCY_Fx. Gain] = SUM(agentFxGain)* -1
,[IN USD_Total Collection] = SUM(cAmt/(sCurrCostRate+isnull(sCurrHoMargin,0)))* -1
,[IN USD_Total Charge] = SUM(serviceCharge/(sCurrCostRate+isnull(sCurrHoMargin,0)))* -1
,[IN USD_Principal Amount] = SUM(tAmt/(sCurrCostRate+isnull(sCurrHoMargin,0)))* -1
,[IN USD_Agent <br /> Commission] = SUM(sAgentComm/(sCurrCostRate+isnull(sCurrHoMargin,0)))* -1
,[IN USD_Sett. Amount] = SUM((cAmt-sAgentComm)/(sCurrCostRate+isnull(sCurrHoMargin,0)))* -1
,[IN Paying_Principal Amount] = SUM(pAmt)* -1
FROM #SETTLEMENT
WHERE
SAGENT = ISNULL(@sAgent, SAGENT)
AND cancelApprovedDate BETWEEN @fromDate AND @toDate + ' 23:59:59'
GROUP BY convert(varchar,cancelApprovedDate,101)
) x ORDER BY CAST([DATE] AS DATE)
END
ELSE IF @flag='a'
BEGIN
CREATE TABLE #PartnerResult([Remarks] VARCHAR(50),[DATE] VARCHAR(500),[Total Trans] INT,[IN COLLECTION CURRENCY_Total Collection] MONEY
,[IN COLLECTION CURRENCY_Total Charge] MONEY,[IN COLLECTION CURRENCY_Principal Amount] MONEY,[IN COLLECTION CURRENCY_Agent<br /> Commission] MONEY
,[IN COLLECTION CURRENCY_Settlement Amount] MONEY,[IN USD_Principal Amount] MONEY,[IN USD_Agent Comm] MONEY,[IN USD_Settlement Amount] MONEY
,[IN Paying_Principal Amount] MONEY)
----#### ONLY FOR PULLING TRANSACTION PARTNER
IF @sAgent IN (1036,405488)
BEGIN
INSERT INTO #PartnerResult
SELECT
[Remarks] = 'Post Transactions(+)'
,[DATE] = '<a href="Reports.aspx?reportName=irhSettDrilDwn&sAgent='+@sAgent+'&pCountry='+ISNULL(@pCountry,'')
+'&sBranch='+ISNULL(CAST(@sBranch AS VARCHAR),'')+'&fromDate='+convert(varchar,approvedDate,101)+'&toDate='
+convert(varchar,approvedDate,101)+'&flag=Post"> '+convert(varchar,approvedDate,101)+' </a>'
--,[DATE] = convert(varchar,postedDate,101)
,[Total Trans] = COUNT(id)
,[IN COLLECTION CURRENCY_Total Collection] = SUM(cAmt)
,[IN COLLECTION CURRENCY_Total Charge] = SUM(ISNULL(serviceCharge,0))
,[IN COLLECTION CURRENCY_Principal Amount] = SUM(tAmt)
,[IN COLLECTION CURRENCY_Agent<br /> Commission]= SUM(case when pagentcommcurrency='LKR' then ISNULL(pAgentComm,0)/customerRate when pagentcommcurrency='USD' then ISNULL(pAgentComm,0)*(sCurrCostRate+isnull(sCurrHoMargin,0)) else ISNULL(pAgentComm,0) end)
,[IN COLLECTION CURRENCY_Settlement Amount] = 0 ----SUM(tAmt + case when pagentcommcurrency='LKR' then ISNULL(pAgentComm,0)/customerRate when pagentcommcurrency='USD' then ISNULL(pAgentComm,0)*(sCurrCostRate+isnull(sCurrHoMargin,0)) else ISNULL(pAgentComm,0) end)
,[IN USD_Principal Amount] = SUM(pAmt/pCurrCostRate)
,[IN USD_Agent Comm] = SUM(case when pagentcommcurrency='LKR' then ISNULL(pAgentComm,0)/pCurrCostRate when pagentcommcurrency='USD' then ISNULL(pAgentComm,0) else ISNULL(pAgentComm,0)/(sCurrCostRate+isnull(sCurrHoMargin,0)) end)
,[IN USD_Settlement Amount] = 0 ----SUM(pAmt/pCurrCostRate)+SUM(ISNULL(pAgentComm,0)/case when pagentcommcurrency='USD' then 1 else pCurrCostRate end)
,[IN Paying_Principal Amount] = SUM(pAmt)
FROM remitTran WITH (NOLOCK)
WHERE 1=1 AND pAgent = @sAgent --AND pCountry = @pCountry
AND postedDate BETWEEN @fromDate AND @toDate+' 23:59:59'
GROUP BY CONVERT(varchar,approvedDate,101)
END
ELSE
BEGIN
INSERT INTO #PartnerResult
SELECT
[Remarks] = 'Post Transactions(+)'
,[DATE] = '<a href="Reports.aspx?reportName=irhSettDrilDwn&sAgent='+@sAgent+'&pCountry='+ISNULL(@pCountry,'')
+'&sBranch='+ISNULL(CAST(@sBranch AS VARCHAR),'')+'&fromDate='+convert(varchar,approvedDate,101)+'&toDate='
+convert(varchar,approvedDate,101)+'&flag=Post"> '+convert(varchar,approvedDate,101)+' </a>'
--,[DATE] = convert(varchar,postedDate,101)
,[Total Trans] = COUNT(id)
,[IN COLLECTION CURRENCY_Total Collection] = SUM(cAmt)
,[IN COLLECTION CURRENCY_Total Charge] = SUM(ISNULL(serviceCharge,0))
,[IN COLLECTION CURRENCY_Principal Amount] = SUM(tAmt)
,[IN COLLECTION CURRENCY_Agent<br /> Commission]= SUM(case when pagentcommcurrency='LKR' then ISNULL(pAgentComm,0)/customerRate when pagentcommcurrency='USD' then ISNULL(pAgentComm,0)*(sCurrCostRate+isnull(sCurrHoMargin,0)) else ISNULL(pAgentComm,0) end)
,[IN COLLECTION CURRENCY_Settlement Amount] = 0 ----SUM(tAmt + case when pagentcommcurrency='LKR' then ISNULL(pAgentComm,0)/customerRate when pagentcommcurrency='USD' then ISNULL(pAgentComm,0)*(sCurrCostRate+isnull(sCurrHoMargin,0)) else ISNULL(pAgentComm,0) end)
,[IN USD_Principal Amount] = SUM(pAmt/pCurrCostRate)
,[IN USD_Agent Comm] = SUM(case when pagentcommcurrency='LKR' then ISNULL(pAgentComm,0)/pCurrCostRate when pagentcommcurrency='USD' then ISNULL(pAgentComm,0) else ISNULL(pAgentComm,0)/(sCurrCostRate+isnull(sCurrHoMargin,0)) end)
,[IN USD_Settlement Amount] = 0 ----SUM(pAmt/pCurrCostRate)+SUM(ISNULL(pAgentComm,0)/case when pagentcommcurrency='USD' then 1 else pCurrCostRate end)
,[IN Paying_Principal Amount] = SUM(pAmt)
FROM remitTran WITH (NOLOCK)
WHERE 1=1 AND pAgent = @sAgent --AND pCountry = @pCountry
AND approvedDate BETWEEN @fromDate AND @toDate+' 23:59:59'
GROUP BY CONVERT(varchar,approvedDate,101)
END
INSERT INTO #PartnerResult
SELECT
[Remarks] = 'Reverse Transactions(-)'
,[DATE] = '<a href="Reports.aspx?reportName=irhSettDrilDwn&sAgent='+@sAgent+'&pCountry='+ISNULL(@pCountry,'')
+'&sBranch='+ISNULL(CAST(@sBranch AS VARCHAR),'')+'&fromDate='+convert(varchar,cancelapprovedDate,101)+'&toDate='
+convert(varchar,cancelapprovedDate,101)+'&flag=CANCEL"> '+convert(varchar,cancelapprovedDate,101)+' </a>'
--,[DATE] = convert(varchar,cancelapprovedDate,101)
,[Total Trans] = COUNT(id)*-1
,[IN COLLECTION CURRENCY_Total Collection] = SUM(cAmt)*-1
,[IN COLLECTION CURRENCY_Total Charge] = SUM(ISNULL(serviceCharge,0)) *-1
,[IN COLLECTION CURRENCY_Principal Amount] = SUM(tAmt)*-1
,[IN COLLECTION CURRENCY_Agent<br /> Commission]= SUM(case when pagentcommcurrency='LKR' then ISNULL(pAgentComm,0)/customerRate when pagentcommcurrency='USD' then ISNULL(pAgentComm,0)*(sCurrCostRate+isnull(sCurrHoMargin,0)) else ISNULL(pAgentComm,0) end)*-1
,[IN COLLECTION CURRENCY_Settlement Amount] = 0 ----SUM(tAmt + case when pagentcommcurrency='LKR' then ISNULL(pAgentComm,0)/customerRate when pagentcommcurrency='USD' then ISNULL(pAgentComm,0)*(sCurrCostRate+isnull(sCurrHoMargin,0)) else ISNULL(pAgentComm,0) end)*-1
,[IN USD_Principal Amount] = SUM(pAmt/pCurrCostRate) *-1
,[IN USD_Agent Comm] = SUM(case when pagentcommcurrency='LKR' then ISNULL(pAgentComm,0)/pCurrCostRate when pagentcommcurrency='USD' then ISNULL(pAgentComm,0) else ISNULL(pAgentComm,0)/(sCurrCostRate+isnull(sCurrHoMargin,0)) end)*-1
,[IN USD_Settlement Amount] = 0 ----SUM(pAmt/pCurrCostRate)+SUM(ISNULL(pAgentComm,0)/case when pagentcommcurrency='USD' then 1 else pCurrCostRate end)*-1
,[IN Paying_Principal Amount] = SUM(pAmt)*-1
FROM remitTran WITH (NOLOCK)
WHERE 1=1 AND pAgent = @sAgent --AND pCountry = @pCountry
AND cancelapprovedDate BETWEEN @fromDate AND @toDate+' 23:59:59'
GROUP BY CONVERT(varchar,cancelapprovedDate,101)
----) x order by [Remarks],[DATE]
UPDATE #PartnerResult
SET [IN COLLECTION CURRENCY_Settlement Amount] = [IN COLLECTION CURRENCY_Principal Amount]+[IN COLLECTION CURRENCY_Agent<br /> Commission]
,[IN USD_Settlement Amount] = [IN USD_Principal Amount]+[IN USD_Agent Comm]
SELECT * FROM #PartnerResult ORDER BY [Remarks],[DATE]
----## if paying agent wise settlement report then check from posted date rest approve date
END
ELSE IF @flag='PartnerD' --##
BEGIN
SELECT
[DATE] = convert(varchar,postedDate,101)
,[GME NO] = dbo.FNADecryptString(controlNo)
,[IN COLLECTION CURRENCY_Total Collection] = (cAmt)
,[IN COLLECTION CURRENCY_Total Charge] = (ISNULL(serviceCharge,0))
,[IN COLLECTION CURRENCY_Principal Amount] = (tAmt)
,[IN COLLECTION CURRENCY_Agent<br /> Commission]= (pAgentComm)
,[IN COLLECTION CURRENCY_Settlement Amount] = (tAmt + ISNULL(pAgentComm,0))
,[IN USD_Principal Amount] = (pAmt/pCurrCostRate)
,[IN USD_Agent Comm] = (ISNULL(pAgentComm,0)/(sCurrCostRate+isnull(sCurrHoMargin,0)))
,[IN USD_Settlement Amount] = (pAmt/pCurrCostRate)+(ISNULL(pAgentComm,0)/pCurrCostRate)
,[IN Paying_Principal Amount] = (pAmt)
FROM remitTran WITH (NOLOCK)
WHERE 1=1 AND pAgent = @sAgent AND pCountry = @pCountry
AND postedDate BETWEEN @fromDate AND @toDate+' 23:59:59'
ORDER BY postedDate
----## if paying agent wise settlement report then check from posted date rest approve date
END
EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
SELECT 'Receiving Country' head,isnull(@pCountry,'All') value
UNION ALL
SELECT 'Sending Branch' head,case when @sBranch is null then 'All' else
(SELECT agentName FROM agentMaster WITH (NOLOCK) WHERE agentId=@sBranch) end VALUE
UNION ALL
SELECT 'From Date' head,@fromDate VALUE
UNION ALL
SELECT 'To Date' head,@toDate VALUE
IF @flag='s'
SELECT 'Settlement Report(Sending Agent)' title
ELSE IF @flag='a'
SELECT 'Settlement Report(Paying Agent)' title
ELSE IF @flag='a'
SELECT 'Settlement Detail(Paying Agent)' title