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.

421 lines
16 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_transactionRpt] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[proc_transactionRpt]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[proc_transactionRpt] 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 PROCEDURE [dbo].[proc_transactionRpt]
  12. @flag VARCHAR(20)
  13. ,@user VARCHAR(50) = NULL
  14. ,@sCountry VARCHAR(100) = NULL
  15. ,@rCountry VARCHAR(100) = NULL
  16. ,@sAgent VARCHAR(100) = NULL
  17. ,@rAgent VARCHAR(100) = NULL
  18. ,@sBranch VARCHAR(100) = NULL
  19. ,@rBranch VARCHAR(100) = NULL
  20. ,@sFirstName VARCHAR(100) = NULL
  21. ,@rFirstName VARCHAR(100) = NULL
  22. ,@sMiddleName VARCHAR(100) = NULL
  23. ,@rMiddleName VARCHAR(100) = NULL
  24. ,@sLastName VARCHAR(100) = NULL
  25. ,@rLastName VARCHAR(100) = NULL
  26. ,@sSecondLastName VARCHAR(100) = NULL
  27. ,@rSecondLastName VARCHAR(100) = NULL
  28. ,@sMobile VARCHAR(100) = NULL
  29. ,@rMobile VARCHAR(100) = NULL
  30. ,@sEmail VARCHAR(100) = NULL
  31. ,@rEmail VARCHAR(100) = NULL
  32. ,@sIdNumber VARCHAR(100) = NULL
  33. ,@rIdNumber VARCHAR(100) = NULL
  34. ,@sState VARCHAR(500) = NULL
  35. ,@rState VARCHAR(500) = NULL
  36. ,@sCity VARCHAR(100) = NULL
  37. ,@rCity VARCHAR(100) = NULL
  38. ,@sZip VARCHAR(100) = NULL
  39. ,@rZip VARCHAR(100) = NULL
  40. ,@tranNo VARCHAR(100) = NULL
  41. ,@icn VARCHAR(100) = NULL
  42. ,@senderCompany VARCHAR(100) = NULL
  43. ,@cAmtFrom VARCHAR(100) = NULL
  44. ,@cAmtTo VARCHAR(100) = NULL
  45. ,@pAmtFrom VARCHAR(100) = NULL
  46. ,@pAmtTo VARCHAR(100) = NULL
  47. ,@localDateFrom VARCHAR(100) = NULL
  48. ,@localDateTo VARCHAR(100) = NULL
  49. ,@confirmDateFrom VARCHAR(100) = NULL
  50. ,@confirmDateTo VARCHAR(100) = NULL
  51. ,@paidDateFrom VARCHAR(100) = NULL
  52. ,@paidDateTo VARCHAR(100) = NULL
  53. ,@cancelledDateFrom VARCHAR(100) = NULL
  54. ,@cancelledDateTo VARCHAR(100) = NULL
  55. ,@receivingMode VARCHAR(100) = NULL
  56. ,@status VARCHAR(100) = NULL
  57. ,@reportIn VARCHAR(100) = NULL
  58. ,@rptTemplate VARCHAR(100) = NULL
  59. ,@fromDate VARCHAR(100) = NULL
  60. ,@toDate VARCHAR(100) = NULL
  61. ,@dateType VARCHAR(100) = NULL
  62. ,@isAdvanceSearch VARCHAR(100) = NULL
  63. ,@pageNumber VARCHAR(100) = NULL
  64. ,@pageSize VARCHAR(100) = NULL
  65. ,@sortBy VARCHAR(50) = NULL
  66. ,@sortOrder VARCHAR(5) = NULL
  67. ,@isExportMode VARCHAR(1) = NULL
  68. ,@tranType VARCHAR(50) = NULL
  69. AS
  70. SET NOCOUNT ON;
  71. SET ANSI_NULLS ON;
  72. IF OBJECT_ID('tempdb..#tempTable') IS NOT NULL
  73. DROP TABLE #tempTable
  74. CREATE TABLE #tempTable(HEAD VARCHAR(50),VALUE VARCHAR(200))
  75. DECLARE @table AS VARCHAR(MAX),@fields AS VARCHAR(MAX),@SQL1 AS VARCHAR(MAX),@sCountryName as varchar(50),@rCountryName as varchar(50)
  76. IF @FLAG='rpt'
  77. BEGIN
  78. if @status = 'Unpaid'
  79. set @status ='Payment'
  80. SELECT @sCountryName = countryName FROM countryMaster WITH(NOLOCK) WHERE countryId=@sCountry
  81. SELECT @rCountryName = countryName FROM countryMaster WITH(NOLOCK) WHERE countryId=@rCountry
  82. SELECT @fields = fields FROM ReportTemplate with(nolock) WHERE id = @rptTemplate
  83. declare @linkIcn as varchar(max) = '''<span class = "link" onclick ="ViewTranDetail('' + cast([TranNo] as varchar) + '');">''+ cast([TranNo] as varchar)+''</span>'' as [TranNo]'
  84. set @fields = replace(@fields,'[TranNo]',@linkIcn)
  85. SET @table=
  86. 'SELECT ROW_NUMBER() OVER (ORDER BY [TranNo]) AS [S.N.],'+@fields+'
  87. FROM DBO.vw_transactionRpt WITH(NOLOCK) WHERE 1=1 '
  88. IF @isAdvanceSearch='N'
  89. BEGIN
  90. IF @sCountry IS NOT NULL
  91. SET @table=@table+' AND sCountry='''+@sCountryName+''''
  92. IF @rCountry IS NOT NULL
  93. SET @table=@table+' AND pCountry='''+@rCountryName+''''
  94. IF @sAgent IS NOT NULL
  95. SET @table=@table+' AND sAgent='''+@sAgent+''''
  96. IF @rAgent IS NOT NULL
  97. SET @table=@table+' AND pAgent='''+@rAgent+''''
  98. IF @sBranch IS NOT NULL
  99. SET @table=@table+' AND sBranch='''+@sBranch+''''
  100. IF @rBranch IS NOT NULL
  101. SET @table=@table+' AND pBranch='''+@rBranch+''''
  102. IF @dateType='confirmDate'
  103. SET @table=@table+' AND approvedDate BETWEEN '''+ @fromDate +''' AND '''+ @toDate +' 23:59:59'+''''
  104. IF @dateType='localDate'
  105. SET @table=@table+' AND createdDate BETWEEN '''+ @fromDate +''' AND '''+ @toDate +' 23:59:59'+''''
  106. IF @dateType='paidDate'
  107. SET @table=@table+' AND paidDate BETWEEN '''+ @fromDate +''' AND '''+ @toDate +' 23:59:59'+''''
  108. IF @dateType='cancelledDate'
  109. SET @table=@table+' AND cancelApprovedDate BETWEEN '''+ @fromDate +''' AND '''+ @toDate +' 23:59:59'+''''
  110. IF @receivingMode IS NOT NULL
  111. SET @table=@table+' AND paymentMethod='''+@receivingMode+''''
  112. IF @status IS NOT NULL
  113. SET @table=@table+' AND tranStatus='''+@status+''''
  114. IF @tranType IS NOT NULL
  115. SET @table=@table+' AND tranType='''+@tranType+''''
  116. END
  117. ELSE
  118. BEGIN
  119. IF @sCountry IS NOT NULL
  120. SET @table=@table+' AND sCountry='''+@sCountryName+''''
  121. IF @sAgent IS NOT NULL
  122. SET @table=@table+' AND sAgent='''+@sAgent+''''
  123. IF @sBranch IS NOT NULL
  124. SET @table=@table+' AND sBranch='''+@sBranch+''''
  125. IF @rCountry IS NOT NULL
  126. SET @table=@table+' AND pCountry='''+@rCountryName+''''
  127. IF @rAgent IS NOT NULL
  128. SET @table=@table+' AND pAgent='''+@rAgent+''''
  129. IF @rBranch IS NOT NULL
  130. SET @table=@table+' AND pBranch='''+@rBranch+''''
  131. IF @sFirstName IS NOT NULL
  132. BEGIN
  133. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Sender First Name',@sFirstName)
  134. SET @table=@table+' AND senFirstName LIKE ''%' + @sFirstName + '%'''
  135. END
  136. IF @rFirstName IS NOT NULL
  137. BEGIN
  138. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Receiver First Name',@rFirstName)
  139. SET @table=@table+' AND recFirstName LIKE ''%' + @rFirstName + '%'''
  140. END
  141. IF @sMiddleName IS NOT NULL
  142. BEGIN
  143. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Sender Middle Name',@sMiddleName)
  144. SET @table=@table+' AND senMiddleName LIKE ''%' + @sMiddleName + '%'''
  145. END
  146. IF @rMiddleName IS NOT NULL
  147. BEGIN
  148. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Receiver Middle Name',@rMiddleName)
  149. SET @table=@table+' AND recMiddleName LIKE ''%' + @rMiddleName + '%'''
  150. END
  151. IF @sLastName IS NOT NULL
  152. BEGIN
  153. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Sender Last Name',@sLastName)
  154. SET @table=@table+' AND senLastName LIKE ''%' + @sLastName + '%'''
  155. END
  156. IF @rLastName IS NOT NULL
  157. BEGIN
  158. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Receiver Last Name',@rLastName)
  159. SET @table=@table+' AND recLastName LIKE ''%' + @rLastName + '%'''
  160. END
  161. IF @sSecondLastName IS NOT NULL
  162. BEGIN
  163. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Sender Second Last Name',@sSecondLastName)
  164. SET @table=@table+' AND senSecondLastName LIKE ''%' + @sSecondLastName + '%'''
  165. END
  166. IF @rSecondLastName IS NOT NULL
  167. BEGIN
  168. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Receiver Second Last Name',@rSecondLastName)
  169. SET @table=@table+' AND recSecondLastName LIKE ''%' + @rSecondLastName + '%'''
  170. END
  171. IF @sMobile IS NOT NULL
  172. BEGIN
  173. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Sender Mobile',@sMobile)
  174. SET @table=@table+' AND senMobile LIKE ''%' + @sMobile + '%'''
  175. END
  176. IF @rMobile IS NOT NULL
  177. BEGIN
  178. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Receiver Mobile',@rMobile)
  179. SET @table=@table+' AND recMobile LIKE ''%' + @rMobile + '%'''
  180. END
  181. IF @sEmail IS NOT NULL
  182. BEGIN
  183. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Sender Email',@sEmail)
  184. SET @table=@table+' AND senEmail LIKE ''%' + @sEmail + '%'''
  185. END
  186. IF @rEmail IS NOT NULL
  187. BEGIN
  188. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Receiver Email',@rEmail)
  189. SET @table=@table+' AND recEmail LIKE ''%' + @rEmail + '%'''
  190. END
  191. IF @sIdNumber IS NOT NULL
  192. BEGIN
  193. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Sender Id Number',@sIdNumber)
  194. SET @table=@table+' AND senIdNumber LIKE ''%' + @sIdNumber + '%'''
  195. END
  196. IF @rIdNumber IS NOT NULL
  197. BEGIN
  198. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Receiver Id Number',@rIdNumber)
  199. SET @table=@table+' AND recIdNumber LIKE ''%' + @rIdNumber + '%'''
  200. END
  201. IF @sState IS NOT NULL
  202. BEGIN
  203. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Sender Full Name',@sState)
  204. SET @table=@table+' AND senState LIKE ''%' + @sState + '%'''
  205. END
  206. IF @rState IS NOT NULL
  207. BEGIN
  208. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Receiver Full Name',@rState)
  209. SET @table=@table+' AND recState LIKE ''%' + @rState + '%'''
  210. END
  211. IF @sCity IS NOT NULL
  212. BEGIN
  213. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Sender City',@sCity)
  214. SET @table=@table+' AND senCity LIKE ''%' + @sCity + '%'''
  215. END
  216. IF @rCity IS NOT NULL
  217. BEGIN
  218. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Receiver City',@rCity)
  219. SET @table=@table+' AND recCity LIKE ''%' + @rCity + '%'''
  220. END
  221. IF @sZip IS NOT NULL
  222. BEGIN
  223. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Sender Zip',@sZip)
  224. SET @table=@table+' AND senZip = ''' + @sZip + ''''
  225. END
  226. IF @rZip IS NOT NULL
  227. BEGIN
  228. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Receiver Zip',@rZip)
  229. SET @table=@table+' AND recZip = ''' + @rZip + ''''
  230. END
  231. IF @tranNo IS NOT NULL
  232. BEGIN
  233. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Tran No',@tranNo)
  234. SET @table=@table+' AND TranNo = ''' + @tranNo + ''''
  235. END
  236. IF @icn IS NOT NULL
  237. BEGIN
  238. INSERT INTO #tempTable(HEAD,VALUE)VALUES('ICN',@icn)
  239. SET @table=@table+' AND controlNo = ''' + @icn + ''''
  240. END
  241. IF @senderCompany IS NOT NULL
  242. BEGIN
  243. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Sender Company',@senderCompany)
  244. SET @table=@table+' AND senderCompany LIKE ''%' + @senderCompany + '%'''
  245. END
  246. IF @cAmtFrom IS NOT NULL AND @cAmtTo IS NOT NULL
  247. BEGIN
  248. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Collection Amount From',@cAmtFrom)
  249. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Collection Amount To',@cAmtTo)
  250. SET @table=@table+' AND cAmt BETWEEN '''+ @cAmtFrom +''' AND '''+ @cAmtTo +''''
  251. END
  252. IF @pAmtFrom IS NOT NULL AND @pAmtTo IS NOT NULL
  253. BEGIN
  254. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Payout Amount From',@pAmtFrom)
  255. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Payout Amount To',@pAmtTo)
  256. SET @table=@table+' AND pAmt BETWEEN '''+ @pAmtFrom +''' AND '''+ @pAmtTo +''''
  257. END
  258. IF @confirmDateFrom IS NOT NULL AND @confirmDateTo IS NOT NULL
  259. BEGIN
  260. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Confirm Date From',@confirmDateFrom)
  261. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Confirm Date To',@confirmDateTo)
  262. SET @table=@table+' AND approvedDate BETWEEN '''+ @confirmDateFrom +''' AND '''+ @confirmDateTo +' 23:59:59'+''''
  263. END
  264. IF @localDateFrom IS NOT NULL AND @localDateTo IS NOT NULL
  265. BEGIN
  266. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Local Date From',@localDateFrom)
  267. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Local Date To',@localDateTo)
  268. SET @table=@table+' AND createdDate BETWEEN '''+ @localDateFrom +''' AND '''+ @localDateTo +' 23:59:59'+''''
  269. END
  270. IF @paidDateFrom IS NOT NULL AND @paidDateTo IS NOT NULL
  271. BEGIN
  272. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Paid Date From',@paidDateFrom)
  273. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Paid Date To',@paidDateTo)
  274. SET @table=@table+' AND paidDate BETWEEN '''+ @paidDateFrom +''' AND '''+ @paidDateTo +' 23:59:59'+''''
  275. END
  276. IF @cancelledDateFrom IS NOT NULL AND @cancelledDateTo IS NOT NULL
  277. BEGIN
  278. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Cancelled Date From',@cancelledDateFrom)
  279. INSERT INTO #tempTable(HEAD,VALUE)VALUES('Cancelled Date To',@cancelledDateTo)
  280. SET @table=@table+' AND cancelApprovedDate BETWEEN '''+ @cancelledDateFrom +''' AND '''+ @cancelledDateTo +' 23:59:59'+''''
  281. END
  282. IF @receivingMode IS NOT NULL
  283. SET @table=@table+' AND paymentMethod='''+@receivingMode+''''
  284. IF @status IS NOT NULL
  285. SET @table=@table+' AND tranStatus='''+@status+''''
  286. IF @tranType IS NOT NULL
  287. SET @table=@table+' AND tranType='''+@tranType+''''
  288. END
  289. --PRINT @TABLE
  290. --EXEC(@table)
  291. IF ISNULL(@isExportMode,'N') <> 'Y'
  292. BEGIN
  293. SET @SQL1='
  294. SELECT COUNT(''a'') AS TXNCOUNT,'+@pageSize+' PAGESIZE,'+@pageNumber+' PAGENUMBER FROM ('+ @table +') AS tmp;
  295. SELECT * FROM
  296. (
  297. SELECT *
  298. FROM
  299. (
  300. '+ @table +'
  301. ) AS aa
  302. ) AS tmp WHERE 1 = 1 AND tmp.[S.N.] BETWEEN (('+@pageNumber+' - 1) * '+@pageSize+' + 1) AND '+@pageNumber+' * '+@pageSize+''
  303. print(@sql1);
  304. EXEC(@SQL1)
  305. END
  306. ELSE
  307. BEGIN
  308. PRINT @TABLE
  309. EXEC(@table)
  310. END
  311. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  312. IF @isAdvanceSearch='Y'
  313. BEGIN
  314. SELECT 'Sending Country' head,ISNULL(@sCountryName,'All') VALUE
  315. UNION ALL
  316. SELECT 'Receiving Country' head,ISNULL(@rCountryName,'All') VALUE
  317. UNION ALL
  318. SELECT 'Sending Agent' head,CASE WHEN @sAgent IS NULL THEN 'All' ELSE
  319. (SELECT agentName FROM agentMaster WITH(NOLOCK) WHERE agentId=@sAgent) END VALUE
  320. UNION ALL
  321. SELECT 'Receiving Agent' head,CASE WHEN @rAgent IS NULL THEN 'All' ELSE
  322. (SELECT agentName FROM agentMaster WITH(NOLOCK) WHERE agentId=@rAgent) END VALUE
  323. UNION ALL
  324. SELECT 'Receiving Branch' head,CASE WHEN @rBranch IS NULL THEN 'All' ELSE
  325. (SELECT agentName FROM agentMaster WITH(NOLOCK) WHERE agentId=@rBranch) END VALUE
  326. UNION ALL
  327. SELECT 'Sending Branch' head,CASE WHEN @sBranch IS NULL THEN 'All' ELSE
  328. (SELECT agentName FROM agentMaster WITH(NOLOCK) WHERE agentId=@sBranch) END VALUE
  329. UNION ALL
  330. SELECT * FROM
  331. (
  332. SELECT * FROM #tempTable
  333. )a
  334. UNION ALL
  335. SELECT 'Tran Type' head,case when @tranType IS NULL THEN 'All' WHEN @tranType ='D' THEN 'Domestic' ELSE 'International' end VALUE
  336. UNION ALL
  337. SELECT 'Status' head,case when ISNULL(@status,'All') = 'Payment' then 'Unpaid' else ISNULL(@status,'All') end VALUE
  338. UNION ALL
  339. SELECT 'Receiving Mode',ISNULL(@receivingMode,'All')
  340. UNION ALL
  341. SELECT 'Report In ' head,case when @reportIn='cCurr' THEN 'Collection Currency' ELSE 'USD' END VALUE
  342. UNION ALL
  343. SELECT 'Report Template' head,(SELECT templateName FROM ReportTemplate WITH(NOLOCK) WHERE id= @rptTemplate) VALUE
  344. END
  345. ELSE
  346. BEGIN
  347. SELECT 'Sending Country' head,ISNULL(@sCountryName,'All') VALUE
  348. UNION ALL
  349. SELECT 'Receiving Country' head,ISNULL(@rCountryName,'All') VALUE
  350. UNION ALL
  351. SELECT 'Sending Agent' head,CASE WHEN @sAgent IS NULL THEN 'All' ELSE
  352. (SELECT agentName FROM agentMaster WITH(NOLOCK) WHERE agentId=@sAgent) END VALUE
  353. UNION ALL
  354. SELECT 'Receiving Agent' head,CASE WHEN @rAgent IS NULL THEN 'All' ELSE
  355. (SELECT agentName FROM agentMaster WITH(NOLOCK) WHERE agentId=@rAgent) END VALUE
  356. UNION ALL
  357. SELECT 'Receiving Branch' head,CASE WHEN @sBranch IS NULL THEN 'All' ELSE
  358. (SELECT agentName FROM agentMaster WITH(NOLOCK) WHERE agentId=@sBranch) END VALUE
  359. UNION ALL
  360. SELECT 'Sending Branch' head,CASE WHEN @rBranch IS NULL THEN 'All' ELSE
  361. (SELECT agentName FROM agentMaster WITH(NOLOCK) WHERE agentId=@rBranch) END VALUE
  362. UNION ALL
  363. SELECT 'From Date' head,@fromDate VALUE
  364. UNION ALL
  365. SELECT 'To Date' head,@toDate VALUE
  366. UNION ALL
  367. SELECT 'Date Type' head,@dateType VALUE
  368. UNION ALL
  369. SELECT 'Receiving Mode',ISNULL(@receivingMode,'All')
  370. UNION ALL
  371. SELECT 'Tran Type' head,case when @tranType IS NULL THEN 'All' WHEN @tranType ='D' THEN 'Domestic' ELSE 'International' end VALUE
  372. UNION ALL
  373. SELECT 'Status' head,case when ISNULL(@status,'All') = 'Payment' then 'Unpaid' else ISNULL(@status,'All') end VALUE
  374. UNION ALL
  375. SELECT 'Report In ' head,case when @reportIn='cCurr' THEN 'Collection Currency' ELSE 'USD' END VALUE
  376. UNION ALL
  377. SELECT 'Report Template' head,(SELECT templateName FROM ReportTemplate WITH(NOLOCK) WHERE id= @rptTemplate) VALUE
  378. END
  379. SELECT 'Transaction Report' title
  380. END
  381. GO