USP_DATALIST_BALANCINGENTRY
This data list returns all balancing entries.
Definition
Copy
CREATE procedure dbo.USP_DATALIST_BALANCINGENTRY
as
set nocount on;
declare @TempTblDebit table
(
BALANCINGENTRYID uniqueidentifier,
SHORTDESCRIPTION nvarchar(100),
SEGMENTSEQUENCE int,
LENGTH int)
declare @PDACCOUNTSYSTEMID uniqueidentifier
set @PDACCOUNTSYSTEMID = '4B121C2C-CCE6-440D-894C-EA0DEF80D50B'
insert into @TempTblDebit
select t2.ID, t3.SHORTDESCRIPTION, t2.SEGMENTSEQUENCE, t2.LENGTH from
(select t.NUM, BALANCINGENTRY.ID, t.LENGTH, t.SEGMENTSEQUENCE
from
(select NUMBERS.NUM, PDACCOUNTSTRUCTURE.LENGTH, PDACCOUNTSTRUCTURE.SEGMENTSEQUENCE
from NUMBERS
inner join PDACCOUNTSTRUCTURE on NUMBERS.NUM = PDACCOUNTSTRUCTURE.SEGMENTSEQUENCE
where PDACCOUNTSTRUCTURE.ELEMENTTYPECODE = 1
and ISBASICGL = 0
and PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID) t
cross join
BALANCINGENTRY) t2
left join
(select unPvt.BALANCINGENTRYID as ID, PDACCOUNTSEGMENTVALUE.SHORTDESCRIPTION, PDACCOUNTSTRUCTURE.SEGMENTSEQUENCE, PDACCOUNTSTRUCTURE.LENGTH
from
(select BALANCINGENTRYID, DATAELEMENT1ID, DATAELEMENT2ID, DATAELEMENT3ID, DATAELEMENT4ID, DATAELEMENT5ID, DATAELEMENT6ID, DATAELEMENT7ID, DATAELEMENT8ID, DATAELEMENT9ID, DATAELEMENT10ID,
DATAELEMENT11ID, DATAELEMENT12ID, DATAELEMENT13ID, DATAELEMENT14ID, DATAELEMENT15ID, DATAELEMENT16ID, DATAELEMENT17ID, DATAELEMENT18ID, DATAELEMENT19ID, DATAELEMENT20ID,
DATAELEMENT21ID, DATAELEMENT22ID, DATAELEMENT23ID, DATAELEMENT24ID, DATAELEMENT25ID, DATAELEMENT26ID, DATAELEMENT27ID, DATAELEMENT28ID, DATAELEMENT29ID, DATAELEMENT30ID
from dbo.BALANCINGENTRYELEMENT
where BALANCINGENTRYTYPECODE = 1) p
unpivot
(DATAELEMENTID for dColumn in
(DATAELEMENT1ID, DATAELEMENT2ID, DATAELEMENT3ID, DATAELEMENT4ID, DATAELEMENT5ID, DATAELEMENT6ID, DATAELEMENT7ID, DATAELEMENT8ID, DATAELEMENT9ID, DATAELEMENT10ID,
DATAELEMENT11ID, DATAELEMENT12ID, DATAELEMENT13ID, DATAELEMENT14ID, DATAELEMENT15ID, DATAELEMENT16ID, DATAELEMENT17ID, DATAELEMENT18ID, DATAELEMENT19ID, DATAELEMENT20ID,
DATAELEMENT21ID, DATAELEMENT22ID, DATAELEMENT23ID, DATAELEMENT24ID, DATAELEMENT25ID, DATAELEMENT26ID, DATAELEMENT27ID, DATAELEMENT28ID, DATAELEMENT29ID, DATAELEMENT30ID)) as unPvt
inner join PDACCOUNTSEGMENTVALUE on unPvt.DATAELEMENTID = PDACCOUNTSEGMENTVALUE.ID
inner join PDACCOUNTSTRUCTURE on PDACCOUNTSEGMENTVALUE.PDACCOUNTSTRUCTUREID = PDACCOUNTSTRUCTURE.ID) t3
on t2.ID = t3.ID and t2.NUM = t3.SEGMENTSEQUENCE
declare @TempTblCredit table
(
BALANCINGENTRYID uniqueidentifier,
SHORTDESCRIPTION nvarchar(100),
SEGMENTSEQUENCE int,
LENGTH int)
insert into @TempTblCredit
select t2.ID, t3.SHORTDESCRIPTION, t2.SEGMENTSEQUENCE, t2.LENGTH from
(select t.NUM, BALANCINGENTRY.ID, t.LENGTH, t.SEGMENTSEQUENCE
from
(select NUMBERS.NUM, PDACCOUNTSTRUCTURE.LENGTH, PDACCOUNTSTRUCTURE.SEGMENTSEQUENCE
from NUMBERS
inner join PDACCOUNTSTRUCTURE on NUMBERS.NUM = PDACCOUNTSTRUCTURE.SEGMENTSEQUENCE
where PDACCOUNTSTRUCTURE.ELEMENTTYPECODE = 1
and ISBASICGL = 0
and PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID) t
cross join
BALANCINGENTRY) t2
left join
(select unPvt.BALANCINGENTRYID as ID, PDACCOUNTSEGMENTVALUE.SHORTDESCRIPTION, PDACCOUNTSTRUCTURE.SEGMENTSEQUENCE, PDACCOUNTSTRUCTURE.LENGTH
from
(select BALANCINGENTRYID, DATAELEMENT1ID, DATAELEMENT2ID, DATAELEMENT3ID, DATAELEMENT4ID, DATAELEMENT5ID, DATAELEMENT6ID, DATAELEMENT7ID, DATAELEMENT8ID, DATAELEMENT9ID, DATAELEMENT10ID,
DATAELEMENT11ID, DATAELEMENT12ID, DATAELEMENT13ID, DATAELEMENT14ID, DATAELEMENT15ID, DATAELEMENT16ID, DATAELEMENT17ID, DATAELEMENT18ID, DATAELEMENT19ID, DATAELEMENT20ID,
DATAELEMENT21ID, DATAELEMENT22ID, DATAELEMENT23ID, DATAELEMENT24ID, DATAELEMENT25ID, DATAELEMENT26ID, DATAELEMENT27ID, DATAELEMENT28ID, DATAELEMENT29ID, DATAELEMENT30ID
from dbo.BALANCINGENTRYELEMENT
where BALANCINGENTRYTYPECODE = 2) p
unpivot
(DATAELEMENTID for dColumn in
(DATAELEMENT1ID, DATAELEMENT2ID, DATAELEMENT3ID, DATAELEMENT4ID, DATAELEMENT5ID, DATAELEMENT6ID, DATAELEMENT7ID, DATAELEMENT8ID, DATAELEMENT9ID, DATAELEMENT10ID,
DATAELEMENT11ID, DATAELEMENT12ID, DATAELEMENT13ID, DATAELEMENT14ID, DATAELEMENT15ID, DATAELEMENT16ID, DATAELEMENT17ID, DATAELEMENT18ID, DATAELEMENT19ID, DATAELEMENT20ID,
DATAELEMENT21ID, DATAELEMENT22ID, DATAELEMENT23ID, DATAELEMENT24ID, DATAELEMENT25ID, DATAELEMENT26ID, DATAELEMENT27ID, DATAELEMENT28ID, DATAELEMENT29ID, DATAELEMENT30ID)) as unPvt
inner join PDACCOUNTSEGMENTVALUE on unPvt.DATAELEMENTID = PDACCOUNTSEGMENTVALUE.ID
inner join PDACCOUNTSTRUCTURE on PDACCOUNTSEGMENTVALUE.PDACCOUNTSTRUCTUREID = PDACCOUNTSTRUCTURE.ID) t3
on t2.ID = t3.ID and t2.NUM = t3.SEGMENTSEQUENCE
declare @SEPARATOR nvarchar(1)
select top 1 @SEPARATOR = SEPARATOR from dbo.PDACCOUNTSTRUCTURE;
select distinct BE.ID,
BE.DESCRIPTION,
substring((select isnull(SHORTDESCRIPTION+@SEPARATOR,replicate('*', LENGTH)+@SEPARATOR)
from @TempTblDebit TD
where TD.BALANCINGENTRYID = BE.ID
order by TD.SEGMENTSEQUENCE
for xml path(''), type).value('.','nvarchar(max)'), 1, LEN((select isnull(SHORTDESCRIPTION+@SEPARATOR,replicate('*', LENGTH)+@SEPARATOR)
from @TempTblDebit TD
where TD.BALANCINGENTRYID = BE.ID
order by TD.SEGMENTSEQUENCE
for xml path(''), type).value('.','nvarchar(max)'))-1) as DEBITACCOUNT,
substring((select isnull(SHORTDESCRIPTION+@SEPARATOR,replicate('*', LENGTH)+@SEPARATOR)
from @TempTblCredit TC
where TC.BALANCINGENTRYID = BE.ID
order by TC.SEGMENTSEQUENCE
for xml path(''), type).value('.','nvarchar(max)'), 1, LEN((select isnull(SHORTDESCRIPTION+@SEPARATOR,replicate('*', LENGTH)+@SEPARATOR)
from @TempTblCredit TC
where TC.BALANCINGENTRYID = BE.ID
order by TC.SEGMENTSEQUENCE
for xml path(''), type).value('.','nvarchar(max)'))-1) as CREDITACCOUNT
from dbo.BALANCINGENTRY BE
order by BE.DESCRIPTION asc