USP_SMARTFIELD_PLEDGEINSTALLMENTSBALANCE
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PLEDGESELECTIONID | uniqueidentifier | IN | |
@ASOF | datetime | IN |
Definition
Copy
CREATE procedure dbo.USP_SMARTFIELD_PLEDGEINSTALLMENTSBALANCE
(
@PLEDGESELECTIONID uniqueidentifier,
@ASOF datetime
)
as
set nocount on;
declare @FTSELECTCLAUSE as nvarchar(max) = N'select FINANCIALTRANSACTION.ID' + char(13);
declare @FTFROMCLAUSE as nvarchar(max) = N'from dbo.FINANCIALTRANSACTION' + char(13);
declare @FTWHERECLAUSE as nvarchar(max) = N'where FINANCIALTRANSACTION.TYPECODE = 1 and FINANCIALTRANSACTION.DELETEDON is null' + char(13); -- TYPECODE = 1 is for pledges
declare @PLEDGECTEPRESQL as nvarchar(50) = N'with PLEDGE_CTE as (' + char(13);
declare @PLEDGECTEPOSTSQL as nvarchar(10) = N')' + char(13);
declare @PLEDGECTESQL as nvarchar(max);
declare @ASOFSTRING as nvarchar(50) = convert(nvarchar(50), @ASOF, 121);
declare @ASOFSQL as nvarchar(500) =
N'select PLEDGE_CTE.ID' + char(13) +
N'from PLEDGE_CTE' + char(13) +
N'where PLEDGE_CTE.DATECHANGED > ''' + @ASOFSTRING + '''' + char(13) +
N'union' + char(13) +
N'select PLEDGE_CTE.ID' + char(13) +
N'from PLEDGE_CTE' + char(13) +
N'inner join dbo.INSTALLMENT on INSTALLMENT.REVENUEID = PLEDGE_CTE.ID' + char(13) +
N'where INSTALLMENT.DATECHANGED > ''' + @ASOFSTRING + '''' + char(13)
;
declare @PIBPREWRAPSQL as nvarchar(200) =
N'select' + char(13) +
N' INSTALLMENT.ID as ID,' + char(13) +
N' REVENUEBALANCES.BASEBALANCE as BALANCE' + char(13) +
N'from (' + char(13)
;
declare @PIBPOSTWRAPSQL as nvarchar(500) =
N') as PLEDGE' + char(13) +
N'outer apply dbo.UFN_PLEDGE_GETREVALUEDINSTALLMENTBALANCES(PLEDGE.ID, getdate(), 0) as REVENUEBALANCES' + char(13) +
N'inner join dbo.INSTALLMENT on REVENUEBALANCES.ID = INSTALLMENT.ID' + char(13)
;
declare @SQL nvarchar(max);
declare @ENDSTATEMENT nvarchar(5) = N';' + char(13);
if @PLEDGESELECTIONID is not null
begin
set @FTFROMCLAUSE += N'inner join dbo.UFN_IDSETREADER_GETRESULTS_GUID(''' + convert(nvarchar(50), @PLEDGESELECTIONID) + ''') S on S.ID = FINANCIALTRANSACTION.ID' + char(13);
end
if @ASOF is null
begin
set @SQL = @PIBPREWRAPSQL + @FTSELECTCLAUSE + @FTFROMCLAUSE + @FTWHERECLAUSE + @PIBPOSTWRAPSQL + @ENDSTATEMENT;
end
else
begin
set @FTSELECTCLAUSE += N',FINANCIALTRANSACTION.DATECHANGED' + char(13);
set @PLEDGECTESQL = @PLEDGECTEPRESQL + @FTSELECTCLAUSE + @FTFROMCLAUSE + @FTWHERECLAUSE + @PLEDGECTEPOSTSQL;
set @SQL = @PLEDGECTESQL + @PIBPREWRAPSQL + @ASOFSQL + @PIBPOSTWRAPSQL + @ENDSTATEMENT;
end
exec sp_executesql @SQL;