USP_REPORT_ELEMENTBALANCE
Returns the balance for a given element as of a specific date.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ASOFDATE | datetime | IN | |
@SELECTION | uniqueidentifier | IN | |
@ELEMENTID | uniqueidentifier | IN | |
@COLUMN | int | IN | |
@ACCOUNTSTRUCTUREID | uniqueidentifier | IN | |
@INCLUDENOTPOSTED | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_REPORT_ELEMENTBALANCE(
@ASOFDATE datetime = null,
@SELECTION uniqueidentifier = null,
@ELEMENTID uniqueidentifier = null,
@COLUMN int,
@ACCOUNTSTRUCTUREID uniqueidentifier = null,
@INCLUDENOTPOSTED bit = 0
)
with execute as owner
as
set nocount on;
declare
@SQL as nvarchar(max)
set @SQL =
N'select PDACCOUNTSEGMENTVALUE.ID as DATAELEMENTID, PDACCOUNTSEGMENTVALUE.SHORTDESCRIPTION as SHORTID, isnull(sum(isnull(JE.TRANSACTIONAMOUNT, 0) *
(case when ACCOUNTCODE.ID is not null then case when JE.TRANSACTIONTYPECODE = (ACCOUNTCODE.NORMALBALANCECODE-1) then 1 else -1 end else case JE.TRANSACTIONTYPECODE when 0 then 1 else -1 end end) *
(case when ACCOUNTCODE.ID is not null then case ACCOUNTCODE.CONTRAACCOUNT when 1 then -1 else 1 end else 1 end)
), 0) as BALANCE
from dbo.PDACCOUNTSEGMENTVALUE'+nchar(13);
if @SELECTION is not null
set @SQL = @SQL +
N'inner join dbo.UFN_IDSETREADER_GETRESULTS_GUID(@SELECTION) as SELECTION on PDACCOUNTSEGMENTVALUE.ID = SELECTION.[ID]'+nchar(13);
set @SQL = @SQL +
N'inner join dbo.JOURNALENTRY JE on JE.DATAELEMENT'+cast(@COLUMN as nvarchar(3))+N'ID = PDACCOUNTSEGMENTVALUE.ID
inner join dbo.FINANCIALTRANSACTIONLINEITEM FTL on JE.FINANCIALTRANSACTIONLINEITEMID = FTL.ID
inner join dbo.FINANCIALTRANSACTION FT on FTL.FINANCIALTRANSACTIONID = FT.ID
left join dbo.ACCOUNTCODE on PDACCOUNTSEGMENTVALUE.ID = ACCOUNTCODE.ID
where (@ELEMENTID is null or DATAELEMENT'+cast(@COLUMN as nvarchar(3))+N'ID = @ELEMENTID)
and (JE.ID is null or (FT.TYPECODE = 103 and JE.POSTDATE < @ASOFDATE) or (FT.TYPECODE <> 103 and FTL.POSTDATE < @ASOFDATE))
and (@INCLUDENOTPOSTED = 1 or FTL.POSTSTATUSCODE = 2)
group by PDACCOUNTSEGMENTVALUE.ID, SHORTDESCRIPTION'; -- Typecode 103 = Journal Entry batch
exec sp_executesql @SQL, N'@ELEMENTID uniqueidentifier,@ASOFDATE datetime,@INCLUDENOTPOSTED bit,@SELECTION uniqueidentifier',@ELEMENTID=@ELEMENTID, @ASOFDATE=@ASOFDATE, @INCLUDENOTPOSTED=@INCLUDENOTPOSTED, @SELECTION=@SELECTION;