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.

115 lines
4.4 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_txn_summary] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[proc_txn_summary]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[proc_txn_summary] Script Date: 7/4/2019 11:35:48 AM ******/
  7. SET ANSI_NULLS ON
  8. GO
  9. SET QUOTED_IDENTIFIER ON
  10. GO
  11. CREATE PROC [dbo].[proc_txn_summary]
  12. @flag VARCHAR(20)
  13. ,@startDate DATE = NULL
  14. ,@endDate DATE = NULL
  15. ,@agentId INT = NULL
  16. ,@rptType CHAR(1) = NULL
  17. AS
  18. SET NOCOUNT ON;
  19. SET XACT_ABORT ON;
  20. BEGIN
  21. IF @flag = 'send'
  22. BEGIN
  23. IF @rptType = 's'
  24. BEGIN
  25. SELECT A.agent_name [AGENT NAME] ,Y.USD_AMT [TOTAL USD],REMAIN_AMT [REMAINING USD] ,WEIGHTEDRATE ,cummNPR [CUMM NPR] ,TRAN_DATE
  26. FROM SendTransactionSummary S ( NOLOCK )
  27. INNER JOIN ( SELECT S_AGENT ,MAX(TRAN_ID) TRAN_ID
  28. FROM SendTransactionSummary(NOLOCK)
  29. WHERE S_AGENT = ISNULL(@agentId, S_AGENT)
  30. GROUP BY S_AGENT
  31. ) X ON S.TRAN_ID = X.TRAN_ID
  32. INNER JOIN agenttable A ( NOLOCK ) ON S.S_AGENT = A.map_code
  33. INNER JOIN ( SELECT S_AGENT ,SUM(USD_AMT) USD_AMT
  34. FROM SendTransactionSummary(NOLOCK)
  35. GROUP BY S_AGENT
  36. ) Y ON Y.S_AGENT = S.S_AGENT
  37. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  38. SELECT 'Sending Agent' head, @agentId value
  39. SELECT title = 'Send Transaction Summary'
  40. END
  41. IF @rptType = 'd'
  42. BEGIN
  43. SELECT A.AGENT_NAME ,
  44. S.USD_AMT ,
  45. S.USD_RATE ,
  46. S.NPR_AMT ,
  47. S.TRAN_DATE ,
  48. S.REMAIN_AMT [REMAINING USD],
  49. S.WEIGHTEDRATE ,
  50. S.CUMMNPR
  51. FROM SendTransactionSummary S ( NOLOCK )
  52. INNER JOIN agenttable A ( NOLOCK ) ON S.S_AGENT = A.map_code
  53. WHERE S.TRAN_DATE BETWEEN @startDate AND CAST(@endDate AS VARCHAR) + ' 23:59:59';
  54. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  55. SELECT 'Start Date' head, @startDate value UNION ALL
  56. SELECT 'End Date' head, @endDate value
  57. SELECT title = 'Send Transaction Detail'
  58. END
  59. END
  60. IF @flag = 'fund'
  61. BEGIN
  62. IF @rptType = 's'
  63. BEGIN
  64. SELECT A.AGENT_NAME ,BANK = M.acct_name + ' ' + M.acct_num ,Y.USD_AMT ,REMAIN_AMT_EXCHANGE [REMAINING USD] ,WEIGHTEDRATE ,CUMM_NPR ,TRAN_DATE
  65. FROM FundTransactionSummary S ( NOLOCK )
  66. INNER JOIN ( SELECT S_AGENT ,MAX(TRAN_ID) TRAN_ID
  67. FROM FundTransactionSummary(NOLOCK)
  68. WHERE S_AGENT = ISNULL(@agentId, S_AGENT)
  69. GROUP BY S_AGENT
  70. ) X ON S.TRAN_ID = X.TRAN_ID
  71. INNER JOIN agenttable A ( NOLOCK ) ON A.map_code = X.S_AGENT
  72. INNER JOIN ac_master M ( NOLOCK ) ON M.acct_num = S.R_BANK
  73. INNER JOIN ( SELECT S_AGENT ,
  74. SUM(USD_AMT) USD_AMT
  75. FROM FundTransactionSummary(NOLOCK)
  76. GROUP BY S_AGENT
  77. ) Y ON Y.S_AGENT = S.S_AGENT;
  78. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  79. SELECT 'Sending Agent' head, @agentId value
  80. SELECT title = 'Fund Transaction Summary'
  81. END
  82. IF @rptType = 'd'
  83. BEGIN
  84. SELECT A.AGENT_NAME ,
  85. BANK = M.acct_name + ' ' + M.acct_num ,
  86. S.USD_AMT ,
  87. S.USD_RATE ,
  88. S.NPR_AMT ,
  89. S.TRAN_DATE ,
  90. S.REMAIN_AMT_EXCHANGE [REMAINING USD],
  91. S.WEIGHTEDRATE ,
  92. S.CUMM_NPR
  93. FROM FundTransactionSummary S ( NOLOCK )
  94. INNER JOIN agenttable A ( NOLOCK ) ON S.S_AGENT = A.map_code
  95. INNER JOIN ac_master M ( NOLOCK ) ON M.acct_num = S.R_BANK
  96. WHERE S.TRAN_DATE BETWEEN @startDate AND CAST(@endDate AS VARCHAR) + ' 23:59:59';
  97. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  98. SELECT 'Start Date' head, @startDate value UNION ALL
  99. SELECT 'End Date' head, @endDate value
  100. SELECT title = 'Fund Transaction Detail'
  101. END
  102. END
  103. END