USE [FastMoneyPro_Remit] GO /****** Object: StoredProcedure [dbo].[PROC_DAILYPAID_AND_SENDING] Script Date: 4/4/2024 9:52:08 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROC [dbo].[PROC_DAILYPAID_AND_SENDING] @flag VARCHAR(20) ,@user VARCHAR(30) = NULL ,@startDate VARCHAR(10) = NULL ,@endDate VARCHAR(10) = NULL ,@sAgentId BIGINT = NULL ,@payoutPartnerId BIGINT = NULL ,@payoutPartnerName VARCHAR(100) = NULL ,@sortBy VARCHAR(50) = NULL ,@sortOrder VARCHAR(5) = NULL ,@pageSize INT = NULL ,@pageNumber INT = NULL ,@trantype VARCHAR(5) = NULL ,@verificationType VARCHAR(50) = NULL AS -------------------------------------- --July 20 @JME-562 -> add customerid column -- #509 - Add transactionType column -- #718 - @flag = 'send' -- #1254 - @flag = 'send' , add source of deposit -- #1440 - Payment type , @flag = 'send' -------------------------------------- BEGIN TRY DECLARE @select_field_list VARCHAR(MAX) ,@extra_field_list VARCHAR(MAX) ,@table VARCHAR(MAX) ,@sql_filter VARCHAR(MAX) ,@sAgentName VARCHAR(150) ,@pAgentName VARCHAR(150) ,@endDateNew VARCHAR(20) ,@usertype VARCHAR(20) SELECT @sAgentName = agentName FROM dbo.agentMaster WHERE agentid = @sAgentId SELECT @pAgentName = agentName FROM dbo.agentMaster WHERE agentid = @payoutPartnerId SET @endDateNew = @endDate + ' 23:59:59' IF @flag = 'PAID' BEGIN SELECT ROW_NUMBER() OVER ( ORDER BY rt.id ) SN ,rt.id [Receipt No] ,convert(VARCHAR, rt.createdDate, 121) [Creation Date] ,convert(VARCHAR, rt.paidDate, 121) [Payment Date] ,rt.createdBy [User Name] ,rt.pSuperAgentName [Payment Office] ,rt.sCountry [Country Of Origin] ,rt.receiverName [Beneficiary] ,tr.mobile [Receiver Mobile] ,rt.tAmt [Amount To Send] ,rt.collCurr [Coll Currency] ,rt.pAmt [Amount to Receive] ,rt.payoutCurr [Pay Currency] ,rt.pCountry [Receiver country] ,CASE rt.paymentMethod WHEN 'BANK DEPOSIT' THEN 'BT' WHEN 'CASH PAYMENT' THEN 'CPU' END [Payment Type] ,dbo.FNADecryptString(rt.controlNo) [Control Number] INTO #PAID_RPT FROM remittran rt(NOLOCK) INNER JOIN dbo.tranReceivers tr(NOLOCK) ON tr.tranId = rt.id WHERE pSuperAgent = ISNULL(@payoutPartnerId, pSuperAgent) AND sAgent = ISNULL(@sAgentId, sAgent) AND paidDate BETWEEN @startDate AND @endDateNew AND ( PAYSTATUS = 'PAID' OR transtatus = 'Paid' ) AND tranType = ISNULL(@trantype,tranType) ORDER BY rt.createdDate SELECT * FROM #PAID_RPT UNION ALL SELECT ROW_NUMBER() OVER ( ORDER BY rt.id ) SN ,rt.id [Receipt No] ,convert(VARCHAR, rt.createdDate, 121) [Creation Date] ,[Payment Date] = 'Previously paid but cancelled' ,rt.createdBy [User Name] ,rt.pSuperAgentName [Payment Office] ,rt.sCountry [Country Of Origin] ,rt.receiverName [Beneficiary] ,tr.mobile [Receiver Mobile] ,rt.tAmt * - 1 [Amount To Send] ,rt.collCurr [Coll Currency] ,rt.pAmt [Amount to Receive] ,rt.payoutCurr [Pay Currency] ,rt.pCountry [Receiver country] ,CASE rt.paymentMethod WHEN 'BANK DEPOSIT' THEN 'BT' WHEN 'CASH PAYMENT' THEN 'CPU' END [Payment Type] ,dbo.FNADecryptString(rt.controlNo) [Control Number] FROM remittran rt(NOLOCK) INNER JOIN dbo.tranReceivers tr(NOLOCK) ON tr.tranId = rt.id WHERE pSuperAgent = ISNULL(@payoutPartnerId, pSuperAgent) AND sAgent = ISNULL(@sAgentId, sAgent) AND incrRpt = 'c' AND CANCELAPPROVEDDATE BETWEEN @startDate AND @endDateNew AND tranType =ISNULL(@trantype,tranType) UNION ALL SELECT ROW_NUMBER() OVER ( ORDER BY rt.id ) SN ,rt.id [Receipt No] ,convert(VARCHAR, '2023-01-06 9:45:35 AM', 121) [Creation Date] ,[Payment Date] = 'Previously paid but cancelled' ,rt.createdBy [User Name] ,rt.pSuperAgentName [Payment Office] ,rt.sCountry [Country Of Origin] ,rt.receiverName [Beneficiary] ,tr.mobile [Receiver Mobile] ,rt.tAmt * - 1 [Amount To Send] ,rt.collCurr [Coll Currency] ,rt.pAmt [Amount to Receive] ,rt.payoutCurr [Pay Currency] ,rt.pCountry [Receiver country] ,CASE rt.paymentMethod WHEN 'BANK DEPOSIT' THEN 'BT' WHEN 'CASH PAYMENT' THEN 'CPU' END [Payment Type] ,dbo.FNADecryptString(rt.controlNo) [Control Number] FROM remittran rt(NOLOCK) INNER JOIN dbo.tranReceivers tr(NOLOCK) ON tr.tranId = rt.id WHERE controlNo= dbo.encryptDb('33TF113141256') AND CASE WHEN '2023-01-06' BETWEEN @startDate AND @endDateNew THEN 1 ELSE 0 END= 1 --AND incrRpt = 'c' PRINT @startDate; PRINT @endDateNew; EXEC proc_errorHandler '0' ,'Report has been prepared successfully.' ,NULL SELECT 'Paying Agent' head ,ISNULL(@pAgentName, 'All') value UNION ALL SELECT 'From Date' head ,@startDate value UNION ALL SELECT 'To Date' head ,@endDate value SELECT 'Daily Paid Report Agent' title END IF @flag = 'SEND' BEGIN DECLARE @sql1 VARCHAR(max) ,@sql2 VARCHAR(max) ,@SQL VARCHAR(MAX) SELECT @usertype = usertype FROM applicationusers WHERE username = @user SET @sql1 = ' SELECT [IME_NO] = ''"''+ CASE WHEN ''' + ISNULL(@usertype, '') + '''=''A'' THEN ''''+DBO.FNADECRYPTSTRING(CONTROLNO)+'''' ELSE ''''+DBO.FNADECRYPTSTRING(CONTROLNO)+'''' END ,[Serial No] = RT.id ,[TRUST_PAYMENT_ID] = RT.transactionreference ,[TXN_CHANNEL] = CASE WHEN (RT.tranType = ''M'' AND RT.isOnlineTxn = ''M'') THEN ''Mobile'' WHEN (RT.tranType = ''M'' AND RT.isOnlineTxn = ''O'') THEN ''Web Online'' WHEN RT.tranType = ''I'' THEN ''CR Panel'' ELSE RT.tranType END ,[DATE_SEND] =CONVERT(VARCHAR,RT.createdDate,111) ,[DATE_PAID] = CONVERT(VARCHAR,RT.paidDate,111) --,[MEMBERSHIPID] = ISNULL(TS.membershipId, CM.MEMBERSHIPID) ,[MEMBERSHIPID] = '''' + ISNULL(TS.membershipId, CM.MEMBERSHIPID) + '''' -- '''' ,[PAYOUT_PARTNER] = RT.pAgentName ,[SENDER_NAME] = senderName ,[SENDER_MOBILE] = ''"''+ TS.MOBILE ,[RECEIVER_NAME]= receiverName ,[EX_RATE] = customerRate ,[PAYMENT_TYPE] = paymentMethod ,[DEPOSIT_TYPE] = RT.depositType ,[COLL_AMT] = cAmt ,[COLL_CURR] = collCurr ,[REWARD_P] = RT.rewardPoints ,[RATE_MARGIN] = RT.customerPremium ,[TRANSFER_AMT] = tAmt ,[SEND_CURR] = collCurr ,[SC_FEE] = serviceCharge ,[CHARGE_CURR] = collCurr ,[RECEIVED_AMT] = pAmt ,[RECEIVED_CURR]= payoutCurr ,[APPROVED_BY] = rt.approvedBy ,TRANSTATUS = transtatus ,PAYSTATUS = CASE WHEN RT.PAYSTATUS = ''Paid'' THEN ''PAID'' WHEN RT.PAYSTATUS = ''Post'' THEN ''POST'' WHEN RT.PAYSTATUS = ''Cancel'' THEN ''CANCEL'' ELSE RT.PAYSTATUS END ,[CREATED_DATE] = rt.createddate ,[VERFIY_DATE] = rt.verifiedDate ,[VERFIY_BY] = rt.verifiedBy ,RT.sBranch ,[COST_RATE] =pDateCostRate ,[EMAIL] = ISNULL(CM.email, CM.username) FROM REMITTRANTEMP RT(NOLOCK) LEFT JOIN TRANSENDERSTEMP TS (NOLOCK) ON TS.TRANID = RT.ID LEFT JOIN CUSTOMERMASTER CM (NOLOCK) ON CM.CUSTOMERID = TS.CUSTOMERID WHERE 1=1' SET @sql2 = ' SELECT [IME_NO] = ''"''+ CASE WHEN ''' + ISNULL(@usertype, '') + ''' = ''A'' THEN ''''+DBO.FNADECRYPTSTRING(CONTROLNO)+'''' ELSE ''''+DBO.FNADECRYPTSTRING(CONTROLNO)+'''' END ,[Serial No] = RT.holdtranid ,[TRUST_PAYMENT_ID] = RT.transactionreference ,[TXN_CHANNEL] = CASE WHEN (RT.tranType = ''M'' AND RT.isOnlineTxn = ''M'') THEN ''Mobile'' WHEN (RT.tranType = ''M'' AND RT.isOnlineTxn = ''O'') THEN ''Web Online'' WHEN RT.tranType = ''I'' THEN ''CR Panel'' ELSE RT.tranType END ,[DATE_SEND] =CONVERT(VARCHAR,RT.approvedDate,111) ,[DATE_PAID] = CONVERT(VARCHAR,RT.paidDate,111) --,[MEMBERSHIPID] = ISNULL(TS.membershipId, CM.MEMBERSHIPID) ,[MEMBERSHIPID] = '''' +ISNULL(TS.membershipId, CM.MEMBERSHIPID) + '''' -- +CAST(CM.CUSTOMERID AS VARCHAR) + -- ''>'' -- + ISNULL(TS.membershipId, CM.MEMBERSHIPID) + -- '''' ,[PAYOUT_PARTNER] = RT.pAgentName ,[SENDER_NAME] = senderName ,[SENDER_MOBILE] = ''"''+ TS.MOBILE ,[RECEIVER_NAME]= receiverName ,[EX_RATE] = customerRate ,[PAYMENT_TYPE] = paymentMethod ,[DEPOSIT_TYPE] = RT.depositType ,[COLL_AMT] = cAmt ,[COLL_CURR] = collCurr ,[REWARD_P] = RT.rewardPoints ,[RATE_MARGIN] = RT.customerPremium ,[TRANSFER_AMT] = tAmt ,[SEND_CURR] = collCurr ,[SC_FEE] = serviceCharge ,[CHARGE_CURR] = collCurr ,[RECEIVED_AMT] = pAmt ,[RECEIVED_CURR]= payoutCurr ,[APPROVED_BY] = rt.approvedBy ,TRANSTATUS = transtatus ,PAYSTATUS = CASE WHEN RT.PAYSTATUS = ''Paid'' THEN ''PAID'' WHEN RT.PAYSTATUS = ''Post'' THEN ''POST'' WHEN RT.PAYSTATUS = ''Cancel'' THEN ''CANCEL'' ELSE RT.PAYSTATUS END ,[CREATED_DATE] = rt.createddate ,[VERFIY_DATE] = rt.verifiedDate ,[VERFIY_BY] = rt.verifiedBy ,RT.sBranch ,[COST_RATE] =pDateCostRate ,[EMAIL] = ISNULL(CM.email, CM.username) FROM REMITTRAN RT(NOLOCK) LEFT JOIN TRANSENDERS TS (NOLOCK) ON TS.TRANID = RT.ID LEFT JOIN CUSTOMERMASTER CM (NOLOCK) ON CM.CUSTOMERID = TS.CUSTOMERID where 1=1 ' IF isnull(@startDate, '') <> '' AND isnull(@endDate, '') <> '' BEGIN SET @sql1 = @sql1 + ' and rt.createddate BETWEEN ''' + @startDate + ''' AND ''' + @endDate + '''+'' 23:59:59''' SET @sql2 = @sql2 + ' and rt.createddate BETWEEN ''' + @startDate + ''' AND ''' + @endDate + '''+'' 23:59:59''' END IF ISNULL(@verificationType, '') <> '' BEGIN IF @verificationType = 'verified' BEGIN SET @sql1 = @sql1 + ' AND rt.verifiedDate IS NOT NULL AND rt.verifiedBy IS NOT NULL' SET @sql2 = @sql2 + ' AND rt.verifiedDate IS NOT NULL AND rt.verifiedBy IS NOT NULL' END ELSE IF @verificationType = 'unverified' BEGIN SET @sql1 = @sql1 + ' AND rt.verifiedDate IS NULL AND rt.verifiedBy IS NULL' SET @sql2 = @sql2 + ' AND rt.verifiedDate IS NULL AND rt.verifiedBy IS NULL' END END SET @SQL = 'select [SN] = ROW_NUMBER() OVER (ORDER BY xyz.[CREATED_DATE] DESC) ,[IME_NO] ,[Serial No] ,[TRUST_PAYMENT_ID] ,[TXN_CHANNEL] ,[DATE_SEND] --,[DATE_PAID] ,[MEMBERSHIPID] ,[PAYOUT_PARTNER] ,[SENDER_NAME] ,[SENDER_MOBILE] ,[RECEIVER_NAME] ,[PAYMENT_TYPE] ,[DEPOSIT_TYPE] ,[COLL_AMT] ,[COLL_CURR] ,[SC_FEE] ,[REWARD_P] ,[TRANSFER_AMT] ,[EX_RATE] ,[RATE_MARGIN] --,[COST_RATE] ,[RECEIVED_AMT] ,[RECEIVED_CURR] ,[VERFIY_DATE] ,[VERFIY_BY] ,[APPROVED_BY] ,TRANSTATUS ,PAYSTATUS ,[EMAIL] from ( ' + @sql1 + ' union all ' + @sql2 + ' ) xyz ' SET @SQL = @SQL + 'order by xyz.[CREATED_DATE] desc' PRINT (@SQL) EXEC (@SQL) EXEC proc_errorHandler '0' ,'Report has been prepared successfully.' ,NULL SELECT 'Verification Type' head ,@verificationType value UNION ALL SELECT 'From Date' head ,@startDate value UNION ALL SELECT 'To Date' head ,@endDate value SELECT 'Verified/ Unverified txn report' title END IF @flag = 'NoWorkPermit' BEGIN SELECT ROW_NUMBER() OVER ( ORDER BY RT.id ) SN ,RT.id [Transaction No] ,dbo.FNADecryptString(controlNo) [Control Number] ,collMode [Deposit Type] ,'Sent' [Tran Status] ,CASE paymentMethod WHEN 'BANK DEPOSIT' THEN 'BT' WHEN 'CASH PAYMENT' THEN 'CPU' END [Payment Type] ,createdDate [Date] ,pSuperAgentName [Corresponding] ,senderName [Sender] ,createdBy [Cashier] ,tAmt [Money Send] ,collCurr [Currency] ,serviceCharge [Commision] ,cAmt [Total Amount] ,pAmt [Money Received] ,payoutCurr [PayCCY] ,pCurrCostRate [Settlement Rate] ,customerRate [CustRate] ,payoutCurr [Currency Type] ,pCountry [Receiver Country] FROM remittran RT(NOLOCK) INNER JOIN TRANSENDERS TS(NOLOCK) ON TS.TRANID = RT.ID WHERE pSuperAgent = ISNULL(@payoutPartnerId, pSuperAgent) AND sAgent = ISNULL(@sAgentId, sAgent) AND createdDate BETWEEN @startDate AND @endDateNew AND TS.VISASTATUS IN ( '11387' ,'11418' ,'11419' ) UNION ALL SELECT ROW_NUMBER() OVER ( ORDER BY RT.id ) SN ,RT.id [Transaction No] ,dbo.FNADecryptString(controlNo) [Control Number] ,collMode [Deposit Type] ,'Cancel' [Tran Status] ,CASE paymentMethod WHEN 'BANK DEPOSIT' THEN 'BT' WHEN 'CASH PAYMENT' THEN 'CPU' END [Payment Type] ,createdDate [Date] ,pSuperAgentName [Corresponding] ,senderName [Sender] ,createdBy [Cashier] ,- 1 * tAmt [Money Send] ,collCurr [Currency] ,- 1 * serviceCharge [Commision] ,- 1 * cAmt [Total Amount] ,- 1 * pAmt [Money Received] ,payoutCurr [PayCCY] ,pCurrCostRate [Settlement Rate] ,customerRate [CustRate] ,payoutCurr [Currency Type] ,pCountry [Receiver Country] FROM remittran RT(NOLOCK) INNER JOIN TRANSENDERS TS(NOLOCK) ON TS.TRANID = RT.ID WHERE pSuperAgent = ISNULL(@payoutPartnerId, pSuperAgent) AND sAgent = ISNULL(@sAgentId, sAgent) AND cancelApprovedDate BETWEEN @startDate AND @endDateNew AND tranStatus IN ('Cancel') AND TS.VISASTATUS IN ( '11387' ,'11418' ,'11419' ) EXEC proc_errorHandler '0' ,'Report has been prepared successfully.' ,NULL SELECT 'Sending Agent' head ,@sAgentName value UNION ALL SELECT 'From Date' head ,@startDate value UNION ALL SELECT 'To Date' head ,@endDate value SELECT 'Transaction Report (No Work Permit)' title END END TRY BEGIN CATCH IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION SELECT 1 ERRORCODE ,ERROR_MESSAGE() MSG ,NULL ID END CATCH