USP_DATALIST_GL_CONTROLACCOUNT
This displays a list of control accounts for all subsidiary systems.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@FINANCIALSYSTEMID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@ACCOUNTTYPECODEFILTER | tinyint | IN | Account type |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_GL_CONTROLACCOUNT
(
@FINANCIALSYSTEMID uniqueidentifier,
@ACCOUNTTYPECODEFILTER tinyint = null
)
as
begin
set nocount on;
declare @SEPARATOR nvarchar(1);
select top 1 @SEPARATOR = SEPARATOR from dbo.PDACCOUNTSTRUCTURE;
declare @PDACCOUNTSYSTEMID uniqueidentifier
set @PDACCOUNTSYSTEMID = '4B121C2C-CCE6-440D-894C-EA0DEF80D50B'
declare @TempTbl table
(
CONTROLACCOUNTID uniqueidentifier,
SHORTDESCRIPTION nvarchar(100),
SEQUENCE int,
LENGTH int,
ACCOUNTTYPE nvarchar(17),
ACCOUNTTYPECODE tinyint)
insert into @TempTbl
select t2.ID, t3.SHORTDESCRIPTION, t2.SEQUENCE, t2.LENGTH, t2.ACCOUNTTYPE, t2.ACCOUNTTYPECODE from
(select t.NUM, CONTROLACCOUNT.ID, t.LENGTH, t.SEQUENCE, CONTROLACCOUNT.ACCOUNTTYPE, CONTROLACCOUNT.ACCOUNTTYPECODE
from
(select NUMBERS.NUM, PDACCOUNTSTRUCTURE.LENGTH, PDACCOUNTSTRUCTURE.SEQUENCE
from NUMBERS
inner join PDACCOUNTSTRUCTURE on NUMBERS.NUM = PDACCOUNTSTRUCTURE.SEQUENCE
where ISBASICGL = 0 and PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID) t
cross join CONTROLACCOUNT
where CONTROLACCOUNT.SYSTEMID = @FINANCIALSYSTEMID) t2
left join
(select unPvt.ID, PDACCOUNTSEGMENTVALUE.SHORTDESCRIPTION, PDACCOUNTSTRUCTURE.SEQUENCE, PDACCOUNTSTRUCTURE.LENGTH
from
(select ID, 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.CONTROLACCOUNT) 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.SEQUENCE
select distinct CONTROLACCOUNTID, ACCOUNTTYPE, ACCOUNTTYPECODE,
substring((select isnull(SHORTDESCRIPTION+@SEPARATOR,replicate('*', LENGTH)+@SEPARATOR)
from @TempTbl T
where T.CONTROLACCOUNTID = T2.CONTROLACCOUNTID
order by T.SEQUENCE
for xml path(''), type).value('.','nvarchar(max)'), 1, LEN((select isnull(SHORTDESCRIPTION+@SEPARATOR,replicate('*', LENGTH)+@SEPARATOR)
from @TempTbl T
where T.CONTROLACCOUNTID = T2.CONTROLACCOUNTID
order by T.SEQUENCE
for xml path(''), type).value('.','nvarchar(max)'))-1) as APSUMMARYACCOUNT
from @TempTbl T2
where (ACCOUNTTYPE = (select top 1 ACCOUNTTYPE from dbo.CONTROLACCOUNT where ACCOUNTTYPECODE = @ACCOUNTTYPECODEFILTER) or
@ACCOUNTTYPECODEFILTER is null)
end