DECLARE @sql NVARCHAR(max)=N'' SET @sql = @sql + N'SELECT * FROM( SELECT COUNT(1) over() AS Filter_Count, stt.Txn_ID AS TxnId, agnt1.Full_Name Source ,0 AS OpeningBalance ,CASE WHEN strd.Title=''ISTP'' THEN stt.Title_Description + '' to '' + ISNULL(ISTTrchant.Full_Name,'''') WHEN strd.Title IN (''RSND'',''RCAN'') THEN stt.Title_Description + '' to '' + ISNULL(REPLACE(strt.Destination_Name,''_'','' ''),'''') WHEN strd.Title IN (''RSND'',''RCAN'') THEN stt.Title_Description + '' to '' + ISNULL(REPLACE(strt.Destination_Name,''_'','' ''),'''') WHEN strd.Mobile IS NULL THEN stt.Title_Description + '' to '' + ISNULL(agnt.Full_Name,agnt1.Full_Name) WHEN UPPER(strd.Mobile)=''PSTN'' THEN ''Landline'' WHEN UPPER(strd.Mobile)=''DIYALOWATER'' THEN ''Khanepani'' WHEN UPPER(strd.Mobile)= UPPER(EVE.Event_Code) THEN CONCAT(''Event-'',EVE.Event_Name) ELSE ISNULL(PM.Product_Description, ISNULL(strd.Mobile,stt.Title_Description)) END AS TitleOperation ,ISNULL(CASE WHEN stt.Dest_ACC_ID=@Number AND stt.Title=''FRFD'' THEN ISNULL(CASE WHEN strd.Amount=0 THEN NULL ELSE strd.Amount END,stt.Amount)+strtd.Charge_Refund_Amount WHEN stt.Dest_ACC_ID=@Number AND stt.Title<>''TRNR'' THEN ISNULL(CASE WHEN strd.Amount=0 THEN NULL ELSE strd.Amount END,stt.Amount) WHEN stt.Dest_ACC_ID=@Number AND stt.Title=''TRNR'' THEN ISNULL(stt.Amount,0) WHEN stt.Status=3 THEN ISNULL(strd.Amount,0) END ,''0'') AS AmountIn ,ISNULL(CASE WHEN stt.Source_ACC_ID=@Number AND stt.Title IN (''FRFD'',''PRFD'') AND stt.Status <> 3 THEN stt.Amount WHEN stt.Source_ACC_ID=@Number AND stt.Status <> 3 THEN ISNULL(strd.Amount,stt.Amount) WHEN stt.Status=3 THEN ISNULL(strd.Amount,0) END ,''0'') AS AmountOut ,CASE WHEN stt.Title=''RCAN'' THEN stt.Txn_Fee WHEN stt.Title=''DRFD'' THEN ISNULL(DRZRT.Settle_Charge_Amount,0) ELSE ISNULL(CASE WHEN stt.Fee_Payer=@Number AND stt.Status = 3 THEN 0 WHEN stt.Fee_Payer=@Number then ISNULL(NULLIF(''-''+stt.Txn_Fee,''0''),''0'') ELSE ''0'' END,''0'') END AS Charge ,CASE WHEN stt.Title=''RCAN'' THEN (ISNULL(stch.Amount,0)+ISNULL(stch.TDS,0)) WHEN stt.Title=''FRFD'' AND strtd.Amount_Refund_Payer=@Number THEN ISNULL(strtd.Amount_Refund_Amount,''0'') ELSE ISNULL(CASE WHEN stt.Amount_Destination=@Number THEN stch.Amount+ISNULL(stch.TDS,0) ELSE ''0'' END,''0'') END AS Amount ,CASE WHEN stt.Title=''DRFD'' THEN ISNULL(DRZRT.Settle_Tds_Amount,0) ELSE ISNULL(stch.TDS,''0'') END AS Tds ,0 AS Balance ,CASE WHEN stt.Reference_ID IN (''ph1'',''ph2'',''ph3'',''ph4'',''ph5'',''ph6'',''ph7'',''ph8'',''ph9'') THEN CONVERT(VARCHAR(100),strd.DestinationNumber) WHEN stt.Title = ''TRNR'' THEN strd.CustomerNumber WHEN stt.Title = ''CASH'' THEN strd.CustomerNumber WHEN stt.Title = ''RPAY'' THEN strd.DestinationNumber + ''|'' + ISNULL(strts.Otp,'''')+''|'' + CASE WHEN SPMD.Pay_Txn_Id IS NULL THEN ''0'' ELSE ''1'' END WHEN stt.Title = ''RPEY'' THEN strd.DestinationNumber + ''|'' + ISNULL(strts.Otp,'''')+''|'' + CASE WHEN SPMD.Pay_Txn_Id IS NULL THEN ''0'' ELSE ''1'' END WHEN stt.Title = ''GTP'' THEN ISNULL(CONVERT(VARCHAR(20), GTD.Destination_Number), '''') + ''|'' + ISNULL(GT.ControlNo, '''') +''|'' + CASE WHEN SPMD.Pay_Txn_Id IS NULL THEN ''0'' ELSE ''1'' END WHEN stt.Title = ''ITP'' THEN ISNULL(CONVERT(VARCHAR(20), ITRD.Destination_Number), '''') + ''|'' + ISNULL(ITR.ControlNo, '''') +''|'' + CASE WHEN SPMD.Pay_Txn_Id IS NULL THEN ''0'' ELSE ''1'' END WHEN stt.Title = ''RSND'' THEN strd.SourceNumber + ''|'' + CAST(strt.Pay_Status AS VARCHAR(100)) + ''|'' + ISNULL(strt.Otp,'''') + ''|'' + CASE WHEN strt.Pay_Status NOT IN (2,3) THEN CAST(dbo.SW_FXN_CHECK_SEND_PAY_MONEY_DOCUMENT_UPLOAD(stt.Txn_ID , strt.Source_Number, strt.Source_Name, strt.Amount,0) AS VARCHAR(10)) ELSE ''0'' END WHEN stt.Title = ''CAST'' THEN strd.SourceName WHEN stt.Title = ''FBKG'' THEN ISNULL(stat.Response_Json,stiat.PNR) WHEN stt.Title = ''RCAN'' THEN stt.Reference_ID + ''|RCAN'' WHEN stt.Title = ''PMNT'' AND strd.Mobile=''CCar'' THEN ISNULL(cht.CCar_Reference_No,stt.Reference_ID) WHEN stt.Title = ''PMNT'' THEN CASE WHEN mrq.id IS NOT NULL THEN ISNULL(stt.Reference_ID,'''') + ''|'' + ISNULL(CAST(mrq.id AS VARCHAR(100)),'''') ELSE ISNULL(stt.Reference_ID,'''') END WHEN stt.Title = ''APMT'' AND stmp.Txn_Id IS NOT NULL THEN stmp.NewCardId WHEN stt.Title = ''NCSH'' THEN stttd.ProcessId WHEN stt.Title = ''APMT'' AND strd.Mobile=''DIYALOWATER'' THEN ISNULL(stwp.Symbol_Reference_Id, stt.Reference_ID) WHEN stt.Title = ''APMT'' AND strd.Mobile=''CCar'' THEN ISNULL(cht.CCar_Reference_No,stt.Reference_ID) WHEN stt.Title IN (''ATOP'', ''TPUP'') AND strd.Mobile IN (''ADSLV'',''ADSLU'') THEN CAST(strd.DestinationNumber AS varchar(200)) ELSE stt.Reference_ID END + CASE WHEN stt.Title IN (''APMT'',''PMNT'') THEN '' | '' + CONVERT(VARCHAR(20),stt.Source_ACC_ID) ELSE '''' END AS Reference ,CASE WHEN stt.Title IN(''apmt'',''pmnt'') AND strd.Mobile=''flight'' THEN stt.Title ELSE ISNULL(strd.Mobile,stt.Title)END Product ,stt.Created_Date AS TxnDate ,stt.Status ,stt.Title ,CASE WHEN stt.Status=0 THEN ''Success'' WHEN stt.Status=1 THEN ''Failed'' WHEN stt.Status=2 THEN ''In Process'' WHEN stt.Status=3 THEN ''Failed/Rollback'' WHEN stt.Status=4 THEN ''Suspicious'' WHEN stt.Status=5 THEN ''Suspicious'' WHEN stt.Status=6 THEN ''Amount Pending'' WHEN stt.Status=7 THEN ''Partially Refunded'' WHEN stt.Status=8 THEN ''Fully Refunded'' ELSE ''Pending'' END AS StatusMessage ,'''' AS [Notification],agnt.Full_Name ,CASE WHEN stt.Reward_Destination=@Number THEN ISNULL(stt.Reward_Point,0) ELSE 0 END [Reward_Point] ,Channel = IIF(STR.Channel IN (''Web'',''Mobile'',''Sms''), STR.Channel, ''System'') ,CASE WHEN stt.Status=3 THEN CASE WHEN TCL.Party_Response_Code IS NULL THEN TCL.Response_Description ELSE TCL.Party_Response_Description END ELSE NULL END TCLResponse FROM ( SELECT STT.Txn_ID,stt.Source_ACC_ID,stt.Dest_ACC_ID,stt.Title,stk.Title_Description,stt.Status,stt.Amount,stt.Reference_ID ,stt.Amount_Destination,stt.Txn_Fee,stt.Fee_Payer,stt.Created_Date,stt.Reward_Destination,stt.Reward_Point FROM dbo.Txn STT WITH(NOLOCK) INNER JOIN dbo.Title stk(NOLOCK) ON stt.Txn_ID >= @TxnId AND stk.Title = stt.Title AND stt.Status IN (0,2,3,4,5,6,7,8) AND (stt.Source_ACC_ID = @Number OR stt.Dest_ACC_ID=@Number) AND (stt.Created_Date BETWEEN @FromDate AND @ToDate + '' 23:59:59.999'') AND (stk.Title=''PMNT'' OR stt.Amount > 0 OR stt.Txn_Comm > 0) LEFT JOIN dbo.REQUEST_DATA strd WITH(NOLOCK) ON strd.TxnId >= @TxnId and strd.TxnId = stt.Txn_ID LEFT JOIN dbo.Split('','',@Service) S ON S.value=ISNULL(strd.Mobile,stk.Title_Description) OR stt.Title=s.value OR strd.ReferenceId=s.value LEFT JOIN dbo.REQUEST TR WITH(NOLOCK) ON tr.Txn_ID >= @TxnId AND TR.Txn_ID=STT.Txn_ID INNER JOIN dbo.ACC(NOLOCK) W ON W.ACC_Number = @Number WHERE 1=CASE WHEN @Service IS NOT NULL AND s.value IS NULL THEN 0 ELSE 1 END AND (W.ACC_Code=''107'' OR @SubUser IS NULL OR TR.SubUserName = @SubUser) )stt'+ N'LEFT JOIN SW_VIEW_ACCUSER agnt (NOLOCK) ON agnt.Number = stt.Dest_ACC_ID LEFT JOIN SW_VIEW_ACCUSER agnt1 (NOLOCK) ON agnt1.Number = stt.Source_ACC_ID LEFT JOIN dbo.REQUEST_DATA strd WITH(NOLOCK) ON strd.TxnId = stt.Txn_ID LEFT JOIN dbo.Amount_HISTORY STCH WITH(NOLOCK) ON stch.Txn_ID = stt.Txn_ID AND stch.ACC_Number = @Number LEFT JOIN dbo.INS_POLICY stip(NOLOCK) ON stip.TxnId = strd.TxnId LEFT JOIN dbo.FL_BILLING stat(NOLOCK) ON stat.Txn_Id= stt.Txn_ID LEFT JOIN dbo.IF_BILLING stiat(NOLOCK) ON stiat.Txn_Id= stt.Txn_ID LEFT JOIN dbo.Transfer_Txn(NOLOCK) strt ON strt.Send_Txn_Id = stt.Txn_ID LEFT JOIN dbo.Transfer_Txn (NOLOCK) strts ON strts.Pay_Txn_Id = stt.Txn_ID LEFT JOIN dbo.SEND_PAY_MONEY_DOCUMENTS (NOLOCK) stsmd ON (stsmd.Send_Txn_Id = stt.Txn_ID and stsmd.Txn_Type=''SEND'') LEFT JOIN dbo.TV_PAYMENT stmp(NOLOCK) ON stmp.Txn_Id = stt.Txn_ID LEFT JOIN dbo.Business_REFUND_REQUEST mrq(NOLOCK) ON mrq.TxnId=stt.Txn_ID AND mrq.Status IN (1,2) LEFT JOIN dbo.REFUND_Txn_DATA strtd(NOLOCK) ON strtd.Txn_Id = stt.Txn_ID LEFT JOIN dbo.THIRDPARTY_Txn_DATA stttd(NOLOCK) ON stttd.TxnId = stt.Txn_ID LEFT JOIN dbo.Symbol_PAYMENT stwp (NOLOCK)ON stwp.Txn_Id = stt.Txn_ID LEFT JOIN dbo.IST_PAYMENT step(NOLOCK) ON step.TxnId = stt.Txn_ID LEFT JOIN dbo.SW_VIEW_ACCUSER ISTTrchant (NOLOCK) ON ISTTrchant.Number = step.BusinessNo LEFT JOIN dbo.CCar_BILLING cht(NOLOCK) ON CONVERT(VARCHAR(20),cht.Row_Id) = stt.Reference_ID LEFT JOIN dbo.REQUEST STR (NOLOCK) ON STR.Txn_ID = stt.Txn_ID LEFT JOIN dbo.TCL_Txn TCL(NOLOCK) ON TCL.Txn_Id= stt.Txn_ID LEFT JOIN (SELECT DISTINCT Product, Product_Description FROM PRODUCT_OPERATION_MAP(NOLOCK) ) PM ON PM.Product= strd.Mobile LEFT JOIN dbo.EVENT(NOLOCK) EVE ON strd.Mobile = EVE.Event_Code LEFT JOIN dbo.SEND_PAY_MONEY_DOCUMENTS(NOLOCK) SPMD ON (SPMD.Pay_Txn_ID = stt.Txn_ID AND SPMD.Verified_Status!=0) LEFT JOIN dbo.GT_ICN_REQUEST(NOLOCK) GT ON stt.Txn_ID = GT.TxnId LEFT JOIN dbo.GT_Destination_DOCUMENTS_DETAILS(NOLOCK) GTD ON GT.Row_Id = GTD.GTIcnReqRowId AND GT.TxnId = CONVERT(VARCHAR(20),GTD.PayTxnId) LEFT JOIN dbo.IT_ICN_REQUEST(NOLOCK) ITR ON stt.Txn_ID = ITR.TxnId LEFT JOIN dbo.IT_Destination_DOCUMENTS_DETAILS(NOLOCK) ITRD ON ITR.Row_Id = ITRD.ITIcnReqRowId AND ITR.TxnId = CONVERT(VARCHAR(20),ITRD.PayTxnId) LEFT JOIN dbo.OM_REFUND_Txn (NOLOCK) DRZRT ON DRZRT.Refund_Txn_ID= STT.Txn_ID )rd ORDER BY rd.TxnDate DESC OFFSET @DisplayStart ROWS FETCH NEXT @DisplayLength ROWS ONLY' EXECUTE sp_executesql @sql, N'@FromDate varchar(10),@ToDate varchar(10),@DisplayStart int,@DisplayLength int,@Service varchar(750),@SubUser varchar(100),@Number bigint,@TxnId bigint', @FromDate=@FromDate,@ToDate=@ToDate,@DisplayStart=@DisplayStart,@DisplayLength=@DisplayLength,@Service=@Service,@SubUser=@SubUser,@Number=@Number,@TxnId=@TxnId