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.
408 lines
31 KiB
408 lines
31 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[proc_bonusRpt] Script Date: 9/27/2019 1:30:14 PM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
CREATE proc [dbo].[proc_bonusRpt]
|
|
(
|
|
@flag VARCHAR(50)
|
|
,@fromDate VARCHAR(50) = NULL
|
|
,@toDate VARCHAR(50) = NULL
|
|
,@mFrom varchar(50) = null
|
|
,@mTo varchar(50) = null
|
|
,@customerId VARCHAR(50) = NULL
|
|
,@branchId VARCHAR(50) = NULL
|
|
,@orderBy VARCHAR(100) = NULL
|
|
,@membershipId VARCHAR(100) = NULL
|
|
,@user VARCHAR(100) = NULL
|
|
,@prizeId VARCHAR(20) = NULL
|
|
,@pageNumber INT = 1
|
|
,@pageSize INT = 50
|
|
)
|
|
AS
|
|
SET NOCOUNT ON
|
|
SET XACT_ABORT ON
|
|
|
|
declare @sql varchar(max)
|
|
, @table as varchar(max)
|
|
, @oldToDate varchar(50) = @toDate
|
|
SET @toDate = @toDate+' 23:59:59'
|
|
|
|
if @flag = 'bRpt'
|
|
begin
|
|
declare @subsql varchar(max) = 'select
|
|
sen.customerId
|
|
,sen.membershipId
|
|
,earnedBonus = sum(rt.bonusPoint)
|
|
from remitTran rt with(nolock)
|
|
inner join tranSenders sen with(nolock) on rt.id = sen.tranId
|
|
where rt.approvedDateLocal between '''+@fromDate+''' and '''+@toDate+'''
|
|
and rt.isBonusUpdated = ''Y'''
|
|
|
|
if @membershipId is not null
|
|
set @subsql = @subsql+ ' and sen.membershipId = '''+@membershipId+''''
|
|
set @subsql = @subsql+ 'group by sen.customerId,sen.membershipId'
|
|
|
|
set @sql = '
|
|
select
|
|
[S.N.] = ROW_NUMBER() over(order by x.earnedBonus desc)
|
|
,[Membership Id] = ''<a href = "#" onclick="OpenInNewWindow('''''+dbo.FNAGetURL()+'SwiftSystem/Reports/Reports.aspx?reportName=20167200&flag=bRptDrildown&fromDate='+@fromDate+'&toDate='+@oldToDate+'&membershipId=''+ x.membershipId +'''''')">''+ x.membershipId +''</a>''
|
|
,[Customer Name] = cm.firstName+'' ''+isnull(cm.middleName,'''')+'' ''+ isnull(cm.lastName,'''')
|
|
,[Earned Bonus] = x.earnedBonus
|
|
,[Zone] = pZone
|
|
,[District] = pDistrict
|
|
,[VDC/Municipality] = pMunicipality
|
|
,[Mobile] = mobile
|
|
,[Email] = email
|
|
,[Citizenship No] = citizenshipNo
|
|
from
|
|
(
|
|
'+@subsql+'
|
|
)x
|
|
inner join customerMaster cm with(nolock) on x.customerId = cm.customerId
|
|
where x.earnedBonus between '''+@mFrom+''' and '''+@mTo+''''
|
|
|
|
EXEC(@sql)
|
|
EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
|
|
SELECT 'Date Range From ' head, @fromDate +' - '+ @toDate value
|
|
UNION ALL
|
|
SELECT 'Bonus Range From ' head, @mFrom +' - '+ @mTo value
|
|
UNION ALL
|
|
SELECT 'Order By' head, @orderBy value
|
|
UNION ALL
|
|
SELECT 'Membership Id' head, @membershipId value
|
|
|
|
SELECT 'Customer Bonus Report ' title
|
|
end
|
|
|
|
if @flag = 'bRptDrildown'
|
|
begin
|
|
select
|
|
[S.N.] = row_number() over(order by rt.id)
|
|
,[Tran Id] = rt.id
|
|
,[Control No] = dbo.fnadecryptstring(rt.controlNo)
|
|
,[Sender Name] = senderName
|
|
,[Receiver Name] = receiverName
|
|
,[Confirm Date] = rt.approvedDateLocal
|
|
,[Earned Bonus] = rt.bonusPoint
|
|
,[Coll. Amt] = cAmt
|
|
,[Payout Amt] = pAmt
|
|
,[Service Charge] = serviceCharge
|
|
,[Payout Agent Comm.] = pAgentComm
|
|
,[Sending Agent Comm.] = sAgentComm
|
|
|
|
from remitTran rt with(nolock)
|
|
inner join tranSenders sen with(nolock) on rt.id = sen.tranId
|
|
where rt.approvedDateLocal between @fromDate and @toDate and rt.isBonusUpdated = 'Y'
|
|
and sen.membershipId = @membershipId
|
|
EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
|
|
SELECT 'Date Range From ' head, @fromDate +' - '+ @toDate value
|
|
UNION ALL
|
|
SELECT 'Order By' head, @orderBy value
|
|
UNION ALL
|
|
SELECT 'Membership Id' head, @membershipId value
|
|
|
|
SELECT 'Customer Bonus Transaction Detail Report ' title
|
|
end
|
|
|
|
IF @flag='bonusPoint'
|
|
BEGIN
|
|
if @orderBy = 'CustomerName'
|
|
set @orderBy = '[Sender Name]'
|
|
if @orderBy = 'BonusEarned'
|
|
set @orderBy = '[Bonus Earned]'
|
|
if @orderBy = 'Branch'
|
|
set @orderBy = '[Branch Name]'
|
|
|
|
IF ISNULL(@mFrom, 0) = 0
|
|
SET @mFrom = 1
|
|
|
|
set @table =
|
|
'select
|
|
[Sender Name] = ISNULL('' ''+ c.firstName,'''') + ISNULL('' '' + c.middleName, '''') + ISNULL('' '' + c.lastName, '''')
|
|
, [Sender Citizenship No] = c.citizenshipNo
|
|
, [Sender Mobile/Phone] = c.mobile
|
|
, [Bonus Pending] = convert(int,round(isnull(bonusPointPending,0),0))
|
|
, [Bonus Earned] = convert(int,round((isnull(bonusPoint,0) + ISNULL(Redeemed, 0)),0))
|
|
, [Available Bonus] = convert(int,round((isnull(bonusPoint,0)),0))
|
|
FROM customerMaster c with(nolock)
|
|
LEFT JOIN agentMaster am with(nolock) on c.agentId = am.agentId
|
|
WHERE (isnull(bonusPointPending,0) between '''+@mFrom+''' and '''+@mTo+''' OR ISNULL(bonusPoint, 0) BETWEEN ''' + @mFrom + ''' AND ''' + @mTo + ''')'
|
|
if @membershipId is not null
|
|
set @table = @table+ ' and c.membershipId = '''+@membershipId+''''
|
|
|
|
SET @sql = 'SELECT
|
|
COUNT(*) AS TXNCOUNT
|
|
,' + CAST(@pageSize AS VARCHAR) + ' PAGESIZE
|
|
,' + CAST(@pageNumber AS VARCHAR) + ' PAGENUMBER
|
|
FROM (' + @table + ') x'
|
|
PRINT @sql
|
|
EXEC (@sql)
|
|
|
|
SET @sql = '
|
|
SELECT
|
|
*
|
|
FROM (
|
|
SELECT
|
|
ROW_NUMBER() OVER (ORDER BY '+@orderBy+') AS [S.N],*
|
|
FROM (' + @table + ') x
|
|
) AS tmp WHERE tmp.[S.N] BETWEEN ' + CAST(((@pageNumber - 1) * @pageSize + 1) AS VARCHAR) + ' AND ' + CAST(@pageNumber * @pageSize AS VARCHAR)
|
|
|
|
PRINT @sql
|
|
EXEC (@sql)
|
|
|
|
|
|
EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
|
|
SELECT 'Bonus From ' head, @mFrom value
|
|
union all
|
|
SELECT 'Bonus To ' head, @mTo value
|
|
union all
|
|
select 'Branch Name' head, case when @branchId is not null then (select agentName from agentMaster with(nolock) where agentId = @branchId)
|
|
else 'All' end
|
|
union all
|
|
select 'Order By' head, @orderBy value
|
|
union all
|
|
select 'Membership Id' head, @membershipId value
|
|
|
|
|
|
SELECT 'Customer Bonus Point Report ' title
|
|
END
|
|
/*
|
|
if @flag = 'bonusRedeemed'
|
|
begin
|
|
if @orderBy = 'CustomerName'
|
|
set @orderBy = '[Sender Name]'
|
|
if @orderBy = 'RedeemedDate'
|
|
set @orderBy = '[Redeemed_Date]'
|
|
if @orderBy = 'Branch'
|
|
set @orderBy = '[Branch Name]'
|
|
if @orderBy = 'GiftItem'
|
|
set @orderBy = '[Gift Item]'
|
|
|
|
declare @tbl table (membershipId varchar(50),hoComm money, txnCount int)
|
|
IF OBJECT_ID('tempdb..#tbl') IS NOT NULL
|
|
DROP TABLE #tbl
|
|
|
|
CREATE TABLE #tbl
|
|
(
|
|
membershipId varchar(50),
|
|
hoComm money,
|
|
txnCount varchar(50)
|
|
)
|
|
|
|
insert into #tbl
|
|
select
|
|
membershipId = cm.customerCardNo,
|
|
hoComm = sum(isnull(serviceCharge,0)-isnull(sAgentComm,0)-isnull(pAgentComm,0)),
|
|
txnCount = count('x')
|
|
from remitTran rt with(nolock)
|
|
inner join tranSenders sen with(nolock) on rt.id = sen.tranId
|
|
inner join customerMaster cm with(nolock) on cm.customerCardNo = sen.membershipId
|
|
inner join bonusRedeemHistory red with(nolock) on red.customerId = cm.id
|
|
where red.approvedDate between @fromDate and @toDate
|
|
and cm.customerCardNo = isnull(@membershipId,cm.customerCardNo)
|
|
and red.prizeId = isnull(@prizeId, red.prizeId)
|
|
group by cm.customerCardNo
|
|
|
|
set @table =
|
|
'select
|
|
[Ref. No] = red.redeemId
|
|
, [Membership Id] = c.customerCardNo
|
|
, [Agent] = am.agentName
|
|
, [Sender Name] = ISNULL('' ''+ c.firstName,'''') + ISNULL('' '' + c.middleName, '''') + ISNULL('' '' + c.lastName, '''')
|
|
, [Sender (ID Type/No)] = dbo.FNAGetDataValue(ci.idType)+'' - ''+ cast(ci.idNumber as varchar)
|
|
, [Sender Contact] = c.mobile
|
|
, [No. of Txn] = ''<a href = "#" onclick="OpenInNewWindow('''''+dbo.FNAGetURL()+'SwiftSystem/Reports/Reports.aspx?reportName=20167200&flag=txn-detail&branchId='+isnull(@branchId,'')+'&giftItem='+isnull(@prizeId,'')+'&from='+@fromDate+'&to='+@oldToDate+'&membershipId=''+ c.customerCardNo +'''''')">''+ txn.txnCount +''</a>''
|
|
, [HO <br/>Commission] = txn.hoComm
|
|
, [Bonus Point_Total] = cast(ISNULL(red.currentMilage, 0) as int)
|
|
, [Bonus Point_Redeemed] = convert(int,round(isnull(red.deductMilage,0),0))
|
|
, [Bonus Point_Remaining] = cast(ISNULL(red.currentMilage, 0) - isnull(red.deductMilage,0) as int)
|
|
, [Gift Item] = dbo.FNAGetDataValue(red.prizeId)
|
|
, [Request_Date] = red.createdDate
|
|
, [Request_User] = red.createdBy
|
|
, [Approved_Date] = red.approvedDate
|
|
, [Approved_By] = red.approvedBy
|
|
from customerMaster c with(nolock)
|
|
inner join #tbl txn on c.customerCardNo = txn.membershipId
|
|
inner join bonusRedeemHistory red with(nolock) on c.id = red.customerId
|
|
left join customerIdentity ci with(nolock) on c.id = ci.customerId
|
|
left join agentMaster am with(nolock) on red.branchId = am.agentId
|
|
where red.approvedDate between '''+@fromDate+''' and '''+@toDate+''''
|
|
|
|
if @branchId is not null
|
|
set @table = @table+ ' and red.branchId = '''+@branchId+''''
|
|
|
|
if @membershipId is not null
|
|
set @table = @table+ ' and c.customerCardNo = '''+@membershipId+''''
|
|
|
|
if @prizeId is not null
|
|
set @table = @table+ ' and red.prizeId = '''+@prizeId+''''
|
|
|
|
SET @sql = 'SELECT
|
|
COUNT(*) AS TXNCOUNT
|
|
,' + CAST(@pageSize AS VARCHAR) + ' PAGESIZE
|
|
,' + CAST(@pageNumber AS VARCHAR) + ' PAGENUMBER
|
|
FROM (' + @table + ') x'
|
|
PRINT @sql
|
|
EXEC (@sql)
|
|
|
|
SET @sql = '
|
|
SELECT
|
|
*
|
|
FROM (
|
|
SELECT
|
|
ROW_NUMBER() OVER (ORDER BY '+@orderBy+') AS [S.N],*
|
|
FROM (' + @table + ') x
|
|
) AS tmp WHERE tmp.[S.N] BETWEEN ' + CAST(((@pageNumber - 1) * @pageSize + 1) AS VARCHAR) + ' AND ' + CAST(@pageNumber * @pageSize AS VARCHAR)
|
|
|
|
PRINT @sql
|
|
EXEC (@sql)
|
|
|
|
EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
|
|
|
|
|
|
select 'Branch Name' head, case when @branchId is not null then (select agentName from agentMaster with(nolock) where agentId = @branchId)
|
|
else 'All' end value
|
|
union all
|
|
SELECT 'From Date' head, @fromDate value
|
|
union all
|
|
SELECT 'To Date' head, @toDate value
|
|
union all
|
|
select 'Gift Item' head,case when @prizeId is not null then (select dbo.FNAGetDataValue(@prizeId)) else 'All' end value
|
|
union all
|
|
select 'Order By' head, @orderBy value
|
|
union all
|
|
select 'Membership Id' head, @membershipId value
|
|
SELECT 'Customer Bonus Redeemed Report ' title
|
|
end
|
|
|
|
if @flag ='txn-detail'
|
|
begin
|
|
SELECT
|
|
[S.N.] = row_number()over(order by rt.id)
|
|
,[Control No] ='<a href = "#" onclick="OpenInNewWindow('''+dbo.FNAGetURL()+'Remit/Transaction/Reports/SearchTransaction.aspx?commentFlag=N&showBankDetail=N&tranId='+CAST(rt.id AS VARCHAR)+''')">'+dbo.FNADecryptString(controlNo)+'</a>'
|
|
,[Sending_Country] = sCountry
|
|
,[Sending_Agent] = sBranchName
|
|
,[Sending_Amt] = tAmt
|
|
,[Sending_Currency] = collCurr
|
|
,[Receiving_Country] = ISNULL(pCountry,'-')
|
|
,[Receiving_Branch] = case when rt.paymentMethod='Bank Deposit' then rt.pBankBranchName else ISNULL(rt.pBranchName,'-') end
|
|
,[Receiving_Amt] = pAmt
|
|
,[Tran Type] = rt.paymentMethod
|
|
,[Sender Name] = sen.firstName + ISNULL(' ' + sen.middleName, '') + ISNULL(' ' + sen.lastName1, '') + ISNULL(' ' + sen.lastName2,'')
|
|
,[Receiver Name] = rec.firstName + ISNULL(' ' + rec.middleName, '') + ISNULL(' ' + rec.lastName1, '') + ISNULL(' ' + rec.lastName2, '')
|
|
FROM remitTran rt WITH(NOLOCK)
|
|
inner join tranSenders sen WITH(NOLOCK) ON rt.id=sen.tranId
|
|
inner join tranReceivers rec WITH(NOLOCK) ON rt.id=rec.tranId
|
|
inner join bonusRedeemHistory red with(nolock) on red.customerId = sen.customerId
|
|
where sen.membershipId = @membershipId
|
|
and red.approvedDate between @fromDate and @toDate
|
|
and red.prizeId = isnull(@prizeId,red.prizeId)
|
|
and red.branchId = isnull(@branchId,red.branchId)
|
|
|
|
EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
|
|
|
|
select 'Branch Name' head, case when @branchId is not null then (select agentName from agentMaster with(nolock) where agentId = @branchId)
|
|
else 'All' end value
|
|
union all
|
|
SELECT 'From Date' head, @fromDate value
|
|
union all
|
|
SELECT 'To Date' head, @toDate value
|
|
union all
|
|
select 'Gift Item' head,case when @prizeId is not null then (select dbo.FNAGetDataValue(@prizeId)) else 'All' end value
|
|
union all
|
|
select 'Order By' head, @orderBy value
|
|
union all
|
|
select 'Membership Id' head, @membershipId value
|
|
SELECT 'Customer Bonus - TXN Report ' title
|
|
end
|
|
|
|
if @flag = 'red-agent'
|
|
begin
|
|
if @orderBy = 'CustomerName'
|
|
set @orderBy = '[Sender Name]'
|
|
if @orderBy = 'RedeemedDate'
|
|
set @orderBy = '[Redeemed_Date]'
|
|
if @orderBy = 'Branch'
|
|
set @orderBy = '[Branch Name]'
|
|
if @orderBy = 'GiftItem'
|
|
set @orderBy = '[Gift Item]'
|
|
|
|
set @table =
|
|
'select
|
|
[Ref. No] = red.redeemId
|
|
, [Membership Id] = c.customerCardNo
|
|
, [Agent] = am.agentName
|
|
, [Sender Name] = ISNULL('' ''+ c.firstName,'''') + ISNULL('' '' + c.middleName, '''') + ISNULL('' '' + c.lastName, '''')
|
|
, [Sender (ID Type/No)] = dbo.FNAGetDataValue(ci.idType)+'' - ''+ cast(ci.idNumber as varchar)
|
|
, [Sender Contact] = c.mobile
|
|
, [Bonus Point_Total] = cast(ISNULL(red.currentMilage, 0) as int)
|
|
, [Bonus Point_Redeemed] = convert(int,round(isnull(red.deductMilage,0),0))
|
|
, [Bonus Point_Remaining] = cast(ISNULL(red.currentMilage, 0) - isnull(red.deductMilage,0) as int)
|
|
, [Gift Item] = dbo.FNAGetDataValue(red.prizeId)
|
|
, [Request_Date] = red.createdDate
|
|
, [Request_User] = red.createdBy
|
|
, [Approved_Date] = red.approvedDate
|
|
, [Approved_By] = red.approvedBy
|
|
from customerMaster c with(nolock)
|
|
inner join bonusRedeemHistory red with(nolock) on c.id = red.customerId
|
|
left join customerIdentity ci with(nolock) on c.id = ci.customerId
|
|
left join agentMaster am with(nolock) on red.branchId = am.agentId
|
|
where red.approvedDate between '''+@fromDate+''' and '''+@toDate+''''
|
|
|
|
if @branchId is not null
|
|
set @table = @table+ ' and red.branchId = '''+@branchId+''''
|
|
|
|
if @membershipId is not null
|
|
set @table = @table+ ' and c.customerCardNo = '''+@membershipId+''''
|
|
|
|
if @prizeId is not null
|
|
set @table = @table+ ' and red.prizeId = '''+@prizeId+''''
|
|
|
|
SET @sql = 'SELECT
|
|
COUNT(*) AS TXNCOUNT
|
|
,' + CAST(@pageSize AS VARCHAR) + ' PAGESIZE
|
|
,' + CAST(@pageNumber AS VARCHAR) + ' PAGENUMBER
|
|
FROM (' + @table + ') x'
|
|
PRINT @sql
|
|
EXEC (@sql)
|
|
|
|
SET @sql = '
|
|
SELECT
|
|
*
|
|
FROM (
|
|
SELECT
|
|
ROW_NUMBER() OVER (ORDER BY '+@orderBy+') AS [S.N],*
|
|
FROM (' + @table + ') x
|
|
) AS tmp WHERE tmp.[S.N] BETWEEN ' + CAST(((@pageNumber - 1) * @pageSize + 1) AS VARCHAR) + ' AND ' + CAST(@pageNumber * @pageSize AS VARCHAR)
|
|
|
|
PRINT @sql
|
|
EXEC (@sql)
|
|
|
|
EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
|
|
|
|
|
|
select 'Branch Name' head, case when @branchId is not null then (select agentName from agentMaster with(nolock) where agentId = @branchId)
|
|
else 'All' end value
|
|
union all
|
|
SELECT 'From Date' head, @fromDate value
|
|
union all
|
|
SELECT 'To Date' head, @toDate value
|
|
union all
|
|
select 'Gift Item' head,case when @prizeId is not null then (select dbo.FNAGetDataValue(@prizeId)) else 'All' end value
|
|
union all
|
|
select 'Order By' head, @orderBy value
|
|
union all
|
|
select 'Membership Id' head, @membershipId value
|
|
SELECT 'Customer Bonus Redeemed Report ' title
|
|
end
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
GO
|