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] = ' '+ 'Remittance Send(+)' +' ' ,[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
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
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] =' '+ 'Remittance Cancel(-)'+' ' ,[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
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
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
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] = ' '+convert(varchar,approvedDate,101)+' ' --,[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
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] = ' '+convert(varchar,approvedDate,101)+' ' --,[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
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] = ' '+convert(varchar,cancelapprovedDate,101)+' ' --,[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
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
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
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