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.

259 lines
14 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. --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'
  4. ALTER PROCEDURE [dbo].[proc_settlement_v2]
  5. @flag VARCHAR(20) = NULL,
  6. @pCountry VARCHAR(20) = NULL,
  7. @sAgent VARCHAR(50),
  8. @sBranch VARCHAR(20) = NULL,
  9. @fromDate VARCHAR(30) = NULL,
  10. @toDate VARCHAR(50) = NULL,
  11. @pageNumber VARCHAR(50) = NULL,
  12. @pageSize VARCHAR(50) = NULL,
  13. @user VARCHAR(50) = NULL
  14. AS
  15. SET NOCOUNT ON;
  16. SET ANSI_NULLS ON;
  17. IF @pCountry = 'All'
  18. SET @pCountry = NULL
  19. IF @flag='s'
  20. BEGIN
  21. IF OBJECT_ID(N'tempdb..#SETTLEMENT') IS NOT NULL
  22. DROP TABLE #SETTLEMENT
  23. declare @sql varchar(max),@fxGain varchar(1),@agentCountry varchar(200),@isAgentUUM char(1) = null,@cutOffDate VARCHAR(20) = '2014-10-20'
  24. SELECT id,controlNo,holdTranId
  25. ,sCurrCostRate,sCurrHoMargin,sCurrAgentMargin
  26. ,pCurrCostRate,pCurrHoMargin,pCurrAgentMargin
  27. ,customerRate,sAgentSettRate
  28. ,pDateCostRate,agentFxGain
  29. ,serviceCharge = CASE WHEN PAGENT = 221227 THEN 0 ELSE serviceCharge END
  30. ,handlingFee,sAgentComm,sAgentCommCurrency,pAgentComm,pAgentCommCurrency
  31. ,senderName,receiverName,sCountry,sAgent,sAgentName,sBranch,sBranchName
  32. ,pCountry ,pAgent,pAgentName,pBranch,pBranchName
  33. ,collCurr,tAmt,cAmt,pAmt,payoutCurr,tranStatus,payStatus
  34. ,createdDate
  35. ,approvedDate = CAST(approvedDate AS DATE)
  36. ,paidDate
  37. ,cancelApprovedDate = CAST(cancelApprovedDate AS DATE)
  38. INTO #SETTLEMENT
  39. FROM remitTran WITH (NOLOCK)
  40. WHERE 1=1
  41. AND
  42. (
  43. (SAGENT=ISNULL(@sAgent, SAGENT) AND createdDate BETWEEN @fromDate AND @toDate + ' 23:59:59' AND sCountry = isnull(@pCountry,sCountry) AND sBranch = isnull(@sBranch,sBranch))
  44. OR (SAGENT=ISNULL(@sAgent, SAGENT) AND CANCELAPPROVEDDATE BETWEEN @fromDate AND @toDate + ' 23:59:59' AND sCountry = isnull(@pCountry,sCountry) AND sBranch = isnull(@sBranch,sBranch))
  45. OR (PAGENT=ISNULL(@sAgent, PAGENT) AND PAIDDATE BETWEEN @fromDate AND @toDate + ' 23:59:59' AND pCountry = isnull(@pCountry,pCountry) AND pBranch = isnull(@sBranch,pBranch))
  46. )
  47. CREATE TABLE #SETTLEMENT_MAIN
  48. (
  49. REMARKS VARCHAR(100) NULL,
  50. [DATE] DATE NULL,
  51. TOTTRAN INT NULL,
  52. CURR VARCHAR(10) NULL,
  53. LCYCA MONEY NULL,
  54. LCYSC MONEY NULL,
  55. LCYTA MONEY NULL,
  56. LCYCOMM MONEY NULL,
  57. LCYFX MONEY NULL,
  58. LCYSETTL MONEY NULL,
  59. USDCA MONEY NULL,
  60. USDSC MONEY NULL,
  61. USDTA MONEY NULL,
  62. USDCOMM MONEY NULL,
  63. USDSETTL MONEY NULL,
  64. SUMPA MONEY NULL
  65. )
  66. --INSERT INTO #SETTLEMENT_MAIN(REMARKS,[DATE],TOTTRAN,LCYCA,LCYSC,LCYTA,LCYCOMM,LCYFX,LCYSETTL,USDCA,USDSC,USDTA,USDCOMM,USDSETTL,SUMPA)
  67. SELECT * FROM
  68. (
  69. SELECT
  70. [Remarks] = '<a href="Reports.aspx?reportName=irhSettDrilDwn&sAgent='+isnull(@sAgent, '')+'&pCountry='+
  71. ISNULL(@pCountry,'')+'&sBranch='+ISNULL(CAST(@sBranch AS VARCHAR),'')+'&fromDate='+
  72. convert(varchar,createdDate,101)+'&toDate='+convert(varchar,createdDate,101)+'&flag=Send"> '+ 'Remittance Send(+)' +' </a>'
  73. ,[DATE] = convert(varchar,createdDate,101)
  74. ,[Total Trans] = COUNT(id)
  75. ,[IN COLLECTION CURRENCY_Total Collection] = SUM(cAmt)
  76. ,[IN COLLECTION CURRENCY_Total Charge] = SUM(ISNULL(serviceCharge,0))
  77. ,[IN COLLECTION CURRENCY_Principal Amount] = SUM(tAmt)
  78. ,[IN COLLECTION CURRENCY_Agent<br /> Commission]= SUM(sAgentComm)
  79. ,[IN COLLECTION CURRENCY_Settlement Amount] = SUM(tAmt + ISNULL(sAgentComm,0))
  80. ,[IN COLLECTION CURRENCY_Fx. Gain] = SUM(agentFxGain)
  81. ,[IN USD_Total Collection] = SUM(cAmt/(sCurrCostRate+isnull(sCurrHoMargin,0)))
  82. ,[IN USD_Total Charge] = SUM(serviceCharge/sCurrCostRate)
  83. ,[IN USD_Principal Amount] = SUM(tAmt/(sCurrCostRate+isnull(sCurrHoMargin,0)))
  84. ,[IN USD_Agent <br /> Commission] = SUM(sAgentComm/sCurrCostRate)
  85. ,[IN USD_Settlement Amount] = SUM((cAmt-sAgentComm)/(sCurrCostRate+isnull(sCurrHoMargin,0)))
  86. ,[IN Paying_Principal Amount] = SUM(pAmt)
  87. FROM #SETTLEMENT
  88. WHERE SAGENT = ISNULL(@sAgent, SAGENT) AND createdDate BETWEEN @fromDate AND @toDate + ' 23:59:59'
  89. GROUP BY convert(varchar,createdDate,101)
  90. UNION ALL
  91. SELECT
  92. [Remarks] ='<a href="Reports.aspx?reportName=irhSettDrilDwn&sAgent='+isnull(@sAgent, '')+'&pCountry='+
  93. ISNULL(@pCountry,'')+'&sBranch='+ISNULL(CAST(@sBranch AS VARCHAR),'')+'&fromDate='+
  94. convert(varchar,cancelApprovedDate,101)+'&toDate='+convert(varchar,cancelApprovedDate,101)+'&flag=cancel"> '+ 'Remittance Cancel(-)'+' </a>'
  95. ,[DATE] = convert(varchar,cancelApprovedDate,101)
  96. ,[Nos] = COUNT(id) * -1
  97. ,[IN COLLECTION CURRENCY_Total Collection] = SUM(cAmt) * -1
  98. ,[IN COLLECTION CURRENCY_Total Charge] = SUM(ISNULL(serviceCharge,0)) * -1
  99. ,[IN COLLECTION CURRENCY_Principal Amount] = SUM(tAmt)* -1
  100. ,[IN COLLECTION CURRENCY_Agent<br /> Commission]= SUM(sAgentComm)* -1
  101. ,[IN COLLECTION CURRENCY_Settlement Amount] = SUM(tAmt + ISNULL(sAgentComm,0))* -1
  102. ,[IN COLLECTION CURRENCY_Fx. Gain] = SUM(agentFxGain)* -1
  103. ,[IN USD_Total Collection] = SUM(cAmt/(sCurrCostRate+isnull(sCurrHoMargin,0)))* -1
  104. ,[IN USD_Total Charge] = SUM(serviceCharge/(sCurrCostRate+isnull(sCurrHoMargin,0)))* -1
  105. ,[IN USD_Principal Amount] = SUM(tAmt/(sCurrCostRate+isnull(sCurrHoMargin,0)))* -1
  106. ,[IN USD_Agent <br /> Commission] = SUM(sAgentComm/(sCurrCostRate+isnull(sCurrHoMargin,0)))* -1
  107. ,[IN USD_Sett. Amount] = SUM((cAmt-sAgentComm)/(sCurrCostRate+isnull(sCurrHoMargin,0)))* -1
  108. ,[IN Paying_Principal Amount] = SUM(pAmt)* -1
  109. FROM #SETTLEMENT
  110. WHERE
  111. SAGENT = ISNULL(@sAgent, SAGENT)
  112. AND cancelApprovedDate BETWEEN @fromDate AND @toDate + ' 23:59:59'
  113. GROUP BY convert(varchar,cancelApprovedDate,101)
  114. ) x ORDER BY CAST([DATE] AS DATE)
  115. END
  116. ELSE IF @flag='a'
  117. BEGIN
  118. CREATE TABLE #PartnerResult([Remarks] VARCHAR(50),[DATE] VARCHAR(500),[Total Trans] INT,[IN COLLECTION CURRENCY_Total Collection] MONEY
  119. ,[IN COLLECTION CURRENCY_Total Charge] MONEY,[IN COLLECTION CURRENCY_Principal Amount] MONEY,[IN COLLECTION CURRENCY_Agent<br /> Commission] MONEY
  120. ,[IN COLLECTION CURRENCY_Settlement Amount] MONEY,[IN USD_Principal Amount] MONEY,[IN USD_Agent Comm] MONEY,[IN USD_Settlement Amount] MONEY
  121. ,[IN Paying_Principal Amount] MONEY)
  122. ----#### ONLY FOR PULLING TRANSACTION PARTNER
  123. IF @sAgent IN (1036,405488)
  124. BEGIN
  125. INSERT INTO #PartnerResult
  126. SELECT
  127. [Remarks] = 'Post Transactions(+)'
  128. ,[DATE] = '<a href="Reports.aspx?reportName=irhSettDrilDwn&sAgent='+@sAgent+'&pCountry='+ISNULL(@pCountry,'')
  129. +'&sBranch='+ISNULL(CAST(@sBranch AS VARCHAR),'')+'&fromDate='+convert(varchar,approvedDate,101)+'&toDate='
  130. +convert(varchar,approvedDate,101)+'&flag=Post"> '+convert(varchar,approvedDate,101)+' </a>'
  131. --,[DATE] = convert(varchar,postedDate,101)
  132. ,[Total Trans] = COUNT(id)
  133. ,[IN COLLECTION CURRENCY_Total Collection] = SUM(cAmt)
  134. ,[IN COLLECTION CURRENCY_Total Charge] = SUM(ISNULL(serviceCharge,0))
  135. ,[IN COLLECTION CURRENCY_Principal Amount] = SUM(tAmt)
  136. ,[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)
  137. ,[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)
  138. ,[IN USD_Principal Amount] = SUM(pAmt/pCurrCostRate)
  139. ,[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)
  140. ,[IN USD_Settlement Amount] = 0 ----SUM(pAmt/pCurrCostRate)+SUM(ISNULL(pAgentComm,0)/case when pagentcommcurrency='USD' then 1 else pCurrCostRate end)
  141. ,[IN Paying_Principal Amount] = SUM(pAmt)
  142. FROM remitTran WITH (NOLOCK)
  143. WHERE 1=1 AND pAgent = @sAgent --AND pCountry = @pCountry
  144. AND postedDate BETWEEN @fromDate AND @toDate+' 23:59:59'
  145. GROUP BY CONVERT(varchar,approvedDate,101)
  146. END
  147. ELSE
  148. BEGIN
  149. INSERT INTO #PartnerResult
  150. SELECT
  151. [Remarks] = 'Post Transactions(+)'
  152. ,[DATE] = '<a href="Reports.aspx?reportName=irhSettDrilDwn&sAgent='+@sAgent+'&pCountry='+ISNULL(@pCountry,'')
  153. +'&sBranch='+ISNULL(CAST(@sBranch AS VARCHAR),'')+'&fromDate='+convert(varchar,approvedDate,101)+'&toDate='
  154. +convert(varchar,approvedDate,101)+'&flag=Post"> '+convert(varchar,approvedDate,101)+' </a>'
  155. --,[DATE] = convert(varchar,postedDate,101)
  156. ,[Total Trans] = COUNT(id)
  157. ,[IN COLLECTION CURRENCY_Total Collection] = SUM(cAmt)
  158. ,[IN COLLECTION CURRENCY_Total Charge] = SUM(ISNULL(serviceCharge,0))
  159. ,[IN COLLECTION CURRENCY_Principal Amount] = SUM(tAmt)
  160. ,[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)
  161. ,[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)
  162. ,[IN USD_Principal Amount] = SUM(pAmt/pCurrCostRate)
  163. ,[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)
  164. ,[IN USD_Settlement Amount] = 0 ----SUM(pAmt/pCurrCostRate)+SUM(ISNULL(pAgentComm,0)/case when pagentcommcurrency='USD' then 1 else pCurrCostRate end)
  165. ,[IN Paying_Principal Amount] = SUM(pAmt)
  166. FROM remitTran WITH (NOLOCK)
  167. WHERE 1=1 AND pAgent = @sAgent --AND pCountry = @pCountry
  168. AND approvedDate BETWEEN @fromDate AND @toDate+' 23:59:59'
  169. GROUP BY CONVERT(varchar,approvedDate,101)
  170. END
  171. INSERT INTO #PartnerResult
  172. SELECT
  173. [Remarks] = 'Reverse Transactions(-)'
  174. ,[DATE] = '<a href="Reports.aspx?reportName=irhSettDrilDwn&sAgent='+@sAgent+'&pCountry='+ISNULL(@pCountry,'')
  175. +'&sBranch='+ISNULL(CAST(@sBranch AS VARCHAR),'')+'&fromDate='+convert(varchar,cancelapprovedDate,101)+'&toDate='
  176. +convert(varchar,cancelapprovedDate,101)+'&flag=CANCEL"> '+convert(varchar,cancelapprovedDate,101)+' </a>'
  177. --,[DATE] = convert(varchar,cancelapprovedDate,101)
  178. ,[Total Trans] = COUNT(id)*-1
  179. ,[IN COLLECTION CURRENCY_Total Collection] = SUM(cAmt)*-1
  180. ,[IN COLLECTION CURRENCY_Total Charge] = SUM(ISNULL(serviceCharge,0)) *-1
  181. ,[IN COLLECTION CURRENCY_Principal Amount] = SUM(tAmt)*-1
  182. ,[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
  183. ,[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
  184. ,[IN USD_Principal Amount] = SUM(pAmt/pCurrCostRate) *-1
  185. ,[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
  186. ,[IN USD_Settlement Amount] = 0 ----SUM(pAmt/pCurrCostRate)+SUM(ISNULL(pAgentComm,0)/case when pagentcommcurrency='USD' then 1 else pCurrCostRate end)*-1
  187. ,[IN Paying_Principal Amount] = SUM(pAmt)*-1
  188. FROM remitTran WITH (NOLOCK)
  189. WHERE 1=1 AND pAgent = @sAgent --AND pCountry = @pCountry
  190. AND cancelapprovedDate BETWEEN @fromDate AND @toDate+' 23:59:59'
  191. GROUP BY CONVERT(varchar,cancelapprovedDate,101)
  192. ----) x order by [Remarks],[DATE]
  193. UPDATE #PartnerResult
  194. SET [IN COLLECTION CURRENCY_Settlement Amount] = [IN COLLECTION CURRENCY_Principal Amount]+[IN COLLECTION CURRENCY_Agent<br /> Commission]
  195. ,[IN USD_Settlement Amount] = [IN USD_Principal Amount]+[IN USD_Agent Comm]
  196. SELECT * FROM #PartnerResult ORDER BY [Remarks],[DATE]
  197. ----## if paying agent wise settlement report then check from posted date rest approve date
  198. END
  199. ELSE IF @flag='PartnerD' --##
  200. BEGIN
  201. SELECT
  202. [DATE] = convert(varchar,postedDate,101)
  203. ,[GME NO] = dbo.FNADecryptString(controlNo)
  204. ,[IN COLLECTION CURRENCY_Total Collection] = (cAmt)
  205. ,[IN COLLECTION CURRENCY_Total Charge] = (ISNULL(serviceCharge,0))
  206. ,[IN COLLECTION CURRENCY_Principal Amount] = (tAmt)
  207. ,[IN COLLECTION CURRENCY_Agent<br /> Commission]= (pAgentComm)
  208. ,[IN COLLECTION CURRENCY_Settlement Amount] = (tAmt + ISNULL(pAgentComm,0))
  209. ,[IN USD_Principal Amount] = (pAmt/pCurrCostRate)
  210. ,[IN USD_Agent Comm] = (ISNULL(pAgentComm,0)/(sCurrCostRate+isnull(sCurrHoMargin,0)))
  211. ,[IN USD_Settlement Amount] = (pAmt/pCurrCostRate)+(ISNULL(pAgentComm,0)/pCurrCostRate)
  212. ,[IN Paying_Principal Amount] = (pAmt)
  213. FROM remitTran WITH (NOLOCK)
  214. WHERE 1=1 AND pAgent = @sAgent AND pCountry = @pCountry
  215. AND postedDate BETWEEN @fromDate AND @toDate+' 23:59:59'
  216. ORDER BY postedDate
  217. ----## if paying agent wise settlement report then check from posted date rest approve date
  218. END
  219. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  220. SELECT 'Receiving Country' head,isnull(@pCountry,'All') value
  221. UNION ALL
  222. SELECT 'Sending Branch' head,case when @sBranch is null then 'All' else
  223. (SELECT agentName FROM agentMaster WITH (NOLOCK) WHERE agentId=@sBranch) end VALUE
  224. UNION ALL
  225. SELECT 'From Date' head,@fromDate VALUE
  226. UNION ALL
  227. SELECT 'To Date' head,@toDate VALUE
  228. IF @flag='s'
  229. SELECT 'Settlement Report(Sending Agent)' title
  230. ELSE IF @flag='a'
  231. SELECT 'Settlement Report(Paying Agent)' title
  232. ELSE IF @flag='a'
  233. SELECT 'Settlement Detail(Paying Agent)' title