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.

162 lines
17 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_settlement] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE procEDURE [dbo].[proc_settlement]
  9. @flag VARCHAR(20) = NULL,
  10. @pCountry VARCHAR(20) = NULL,
  11. @sAgent VARCHAR(50),
  12. @sBranch VARCHAR(20) = NULL,
  13. @fromDate VARCHAR(30) = NULL,
  14. @toDate VARCHAR(50) = NULL,
  15. @pageNumber VARCHAR(50) = NULL,
  16. @pageSize VARCHAR(50) = NULL,
  17. @user VARCHAR(50) = NULL
  18. AS
  19. SET NOCOUNT ON;
  20. SET ANSI_NULLS ON;
  21. IF @pCountry = 'All'
  22. SET @pCountry = NULL
  23. IF(DATEDIFF(D,@fromDate,GETDATE())>90 )
  24. BEGIN
  25. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  26. EXEC proc_errorHandler '1', '<font color="red"><b>Date Range is not valid, You can only view transaction upto 90 days.</b></font>', NULL
  27. RETURN;
  28. END
  29. IF(DATEDIFF(D,@fromDate,@toDate))>32
  30. BEGIN
  31. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  32. EXEC proc_errorHandler '1', '<font color="red"><b>Date Range is not valid, Please select date range of 32 days.</b></font>', NULL
  33. RETURN;
  34. END
  35. IF @flag='s'
  36. BEGIN
  37. IF OBJECT_ID(N'tempdb..#SETTLEMENT') IS NOT NULL
  38. DROP TABLE #SETTLEMENT
  39. SELECT id,controlNo,holdTranId
  40. ,sCurrCostRate,sCurrHoMargin,sCurrAgentMargin
  41. ,pCurrCostRate,pCurrHoMargin,pCurrAgentMargin
  42. ,customerRate,sAgentSettRate
  43. ,pDateCostRate,agentFxGain
  44. ,serviceCharge,handlingFee,sAgentComm,sAgentCommCurrency,pAgentComm,pAgentCommCurrency
  45. ,senderName,receiverName,sCountry,sAgent,sAgentName,sBranch,sBranchName
  46. ,pCountry ,pAgent,pAgentName,pBranch,pBranchName
  47. ,collCurr,tAmt,cAmt,pAmt,payoutCurr,tranStatus,payStatus
  48. ,createdDate
  49. ,approvedDate
  50. ,paidDate
  51. ,cancelApprovedDate
  52. INTO #SETTLEMENT
  53. FROM remitTran WITH (NOLOCK)
  54. WHERE 1=1
  55. AND
  56. (
  57. (SAGENT=@sAgent AND APPROVEDDATE BETWEEN @fromDate AND @toDate + ' 23:59:59' AND pCountry = isnull(@pCountry,pCountry) AND sBranch = isnull(@sBranch,sBranch))
  58. OR (SAGENT=@sAgent AND CANCELAPPROVEDDATE BETWEEN @fromDate AND @toDate + ' 23:59:59' AND pCountry = isnull(@pCountry,pCountry) AND sBranch = isnull(@sBranch,sBranch))
  59. OR (PAGENT=@sAgent AND PAIDDATE BETWEEN @fromDate AND @toDate + ' 23:59:59' AND sCountry = isnull(@pCountry,sCountry) AND pBranch = isnull(@sBranch,pBranch))
  60. )
  61. SELECT 'Remittance Send(+)' [Remarks]
  62. ,[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=Send"> '+convert(varchar,approvedDate,101)+' </a>'
  63. ,[Total Trans] = COUNT(id)
  64. ,[IN COLLECTION CURRENCY_Currency] = collCurr
  65. ,[IN COLLECTION CURRENCY_Collection Amt] = SUM(camt)
  66. ,[IN COLLECTION CURRENCY_Total Charge] = SUM(ISNULL(serviceCharge,0))
  67. ,[IN COLLECTION CURRENCY_Payout Amt] = SUM(camt-ISNULL(serviceCharge,0))
  68. ,[IN COLLECTION CURRENCY_Agent<br /> Commission] = SUM(ISNULL(sAgentComm,0))
  69. ,[IN COLLECTION CURRENCY_Ex. Gain] = SUM(ISNULL(agentFxGain,0))
  70. ,[IN COLLECTION CURRENCY_Sett. Amount] = SUM(camt) - SUM(ISNULL(sAgentComm,0)) - SUM(ISNULL(agentFxGain,0))
  71. ,[IN USD_Collection Amt] = ROUND(SUM(ROUND(camt/(sCurrCostRate+ISNULL(sCurrHoMargin,0)),2)), 8)
  72. ,[IN USD_Total Charge] = ROUND(SUM(ISNULL(ROUND(serviceCharge/(sCurrCostRate+ISNULL(sCurrHoMargin,0)),4,1),0)), 8)
  73. ,[IN USD_Payout Amt] = ROUND(SUM(ROUND(camt/(sCurrCostRate+ISNULL(sCurrHoMargin,0)),2)-ISNULL(ROUND(serviceCharge/(sCurrCostRate+ISNULL(sCurrHoMargin,0)),4,1),0)), 8)
  74. ,[IN USD_Agent <br /> Commission]
  75. = SUM(ROUND(CAST(ROUND(ISNULL(sAgentComm,0)/ISNULL(sCurrCostRate,1),2) AS MONEY),2))--ROUND(SUM(ISNULL(ROUND(sAgentComm/(sCurrCostRate+ISNULL(sCurrHoMargin,0)),4,1),0)), 8)
  76. ,[IN USD_Ex. Gain] = SUM(ISNULL(ROUND(agentFxGain/(sCurrCostRate+ISNULL(sCurrHoMargin,0)),2),0))
  77. ,[IN USD_Sett. Amount] = ROUND(SUM(ROUND(camt/(sCurrCostRate+ISNULL(sCurrHoMargin,0)),2)) -
  78. SUM(ISNULL(ROUND(sAgentComm/(sCurrCostRate+ISNULL(sCurrHoMargin,0)),4,1),0)) -
  79. SUM(ISNULL(ROUND(agentFxGain/(sCurrCostRate+ISNULL(sCurrHoMargin,0)),4,1),0)),4)
  80. FROM #SETTLEMENT
  81. WHERE SAGENT=@sAgent AND APPROVEDDATE BETWEEN @fromDate AND @toDate + ' 23:59:59'
  82. GROUP BY convert(varchar,approvedDate,101),collCurr
  83. UNION ALL
  84. SELECT [Remarks] = 'Remittance Paid(-)'
  85. ,[DATE] = '<a href="Reports.aspx?reportName=irhSettDrilDwn&sAgent='+@sAgent+'&pCountry='+ISNULL(@pCountry,'')+'&sBranch='+ISNULL(CAST(@sBranch AS VARCHAR),'')+'&fromDate='+convert(varchar,paidDate,101)+'&toDate='+convert(varchar,paidDate,101)+'&flag=PAID"> '+convert(varchar,paidDate,101)+' </a>'
  86. ,[Nos] = COUNT(id)
  87. ,[Currency] = payoutCurr
  88. ,[Collection Amt] = SUM(pamt) * -1
  89. ,[Total Charge] = 0
  90. ,[Payout Amt] = SUM(pamt) * -1
  91. ,[Agent Commission] = ROUND((SUM((ISNULL(pAgentComm,0) / (sCurrCostRate+ISNULL(sCurrHoMargin,0)))*ISNULL(pDateCostRate, (pCurrCostRate - ISNULL(pCurrHoMargin,0))))), 4) * -1
  92. ,[Ex. Gain] = 0
  93. ,[Settlement Amount] = ROUND((SUM(pamt) + SUM((ISNULL(pAgentComm,0) / (sCurrCostRate+ISNULL(sCurrHoMargin,0)))*ISNULL(pDateCostRate, (pCurrCostRate - ISNULL(pCurrHoMargin,0))))), 4) * -1
  94. ,[Collection Amt] = ROUND((SUM(pamt/ISNULL(pDateCostRate, (pCurrCostRate - ISNULL(pCurrHoMargin,0))))), 4) * -1
  95. ,[Total Charge] = 0
  96. ,[Payout Amt] = ROUND((SUM(pamt/ISNULL(pDateCostRate, (pCurrCostRate - ISNULL(pCurrHoMargin,0))))), 4) * -1
  97. ,[Agent <br /> Commission] = ROUND((SUM((ISNULL(pAgentComm,0) / (sCurrCostRate+ISNULL(sCurrHoMargin,0))))), 4) * -1
  98. ,[Ex. Gain] = 0
  99. ,[Settlement Amount] = ROUND((SUM(pamt/ISNULL(pDateCostRate, (pCurrCostRate -
  100. ISNULL(pCurrHoMargin,0)))) +
  101. SUM((ISNULL(pAgentComm,0) / (sCurrCostRate+ISNULL(sCurrHoMargin,0))))), 4) * -1
  102. FROM #SETTLEMENT
  103. WHERE pAGENT=@sAgent AND paidDate BETWEEN @fromDate AND @toDate + ' 23:59:59'
  104. GROUP BY convert(varchar,paidDate,101) ,payoutCurr
  105. UNION ALL
  106. SELECT
  107. [Remarks] = 'Remittance Cancel(-)'
  108. ,[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>'
  109. ,[Nos] = COUNT(id)
  110. ,[Currency] = collCurr
  111. ,[Collection Amt] = SUM(camt) * -1
  112. ,[Total Charge] = SUM(ISNULL(serviceCharge,0)) * -1
  113. ,[IN COLLECTION CURRENCY_Payout Amt] = SUM(camt-ISNULL(serviceCharge,0)) * -1
  114. ,[Agent Commission] = SUM(ISNULL(sAgentComm,0)) * -1
  115. ,[Ex. Gain] = SUM(ISNULL(agentFxGain,0)) * -1
  116. ,[Settlement Amount] = (SUM(camt) - SUM(ISNULL(sAgentComm,0)) - SUM(ISNULL(agentFxGain,0))) * -1
  117. ,[Collection Amt] = (SUM(ROUND(camt/(sCurrCostRate+ISNULL(sCurrHoMargin,0)),2))) * -1
  118. ,[Total Charge] = (SUM(ISNULL(ROUND(serviceCharge/(sCurrCostRate+ISNULL(sCurrHoMargin,0)),4,1),0))) * -1
  119. ,[IN USD_Payout Amt] = (SUM(ROUND(camt/(sCurrCostRate+ISNULL(sCurrHoMargin,0)),2)-ISNULL(ROUND(serviceCharge/(sCurrCostRate+ISNULL(sCurrHoMargin,0)),4,1),0))) * -1
  120. ,[Agent Commission] = (SUM(ISNULL(ROUND(sAgentComm/(sCurrCostRate+ISNULL(sCurrHoMargin,0)),4,1),0))) * -1
  121. ,[Ex. Gain] = (SUM(ISNULL(ROUND(agentFxGain/(sCurrCostRate+ISNULL(sCurrHoMargin,0)),2),0))) * -1
  122. ,[Settlement Amount] = (SUM(ROUND(camt/(sCurrCostRate+ISNULL(sCurrHoMargin,0)),2)) - SUM(ISNULL(ROUND(sAgentComm/(sCurrCostRate+ISNULL(sCurrHoMargin,0)),4,1),0)) - SUM(ISNULL(ROUND(agentFxGain/(sCurrCostRate+ISNULL(sCurrHoMargin,0)),4,1),0))) * -1
  123. FROM #SETTLEMENT
  124. WHERE
  125. SAGENT=@sAgent
  126. AND cancelApprovedDate BETWEEN @fromDate AND @toDate + ' 23:59:59'
  127. GROUP BY convert(varchar,cancelApprovedDate,101),collCurr
  128. ORDER BY remarks desc,DATE
  129. END
  130. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  131. SELECT 'Receiving Country' head,isnull(@pCountry,'All') value
  132. UNION ALL
  133. SELECT 'Sending Branch' head,case when @sBranch is null then 'All' else
  134. (SELECT agentName FROM agentMaster WITH (NOLOCK) WHERE agentId=@sBranch) end VALUE
  135. UNION ALL
  136. SELECT 'From Date' head,@fromDate VALUE
  137. UNION ALL
  138. SELECT 'To Date' head,@toDate VALUE
  139. SELECT 'Settlement Report' title
  140. GO