USP_DATALIST_GL_CONTROLACCOUNTTREASURY
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. |
@BANKACCOUNTID | uniqueidentifier | IN | Bank account |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_GL_CONTROLACCOUNTTREASURY
(
@FINANCIALSYSTEMID uniqueidentifier,
@BANKACCOUNTID uniqueidentifier = 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,
BANKACCOUNT nvarchar(100),
ACCOUNTTYPE nvarchar(17)
)
insert into @TempTbl
select t2.ID, t3.SHORTDESCRIPTION, t2.SEQUENCE, t2.LENGTH,
(select BANKACCOUNT.ACCOUNTNAME from dbo.BANKACCOUNT where BANKACCOUNT.ID = (select BANKACCOUNTID from dbo.CONTROLACCOUNTTREASURY where ID = t2.ID)),
t2.ACCOUNTTYPE
from
(select t.NUM, CONTROLACCOUNT.ID, t.LENGTH, t.SEQUENCE, CONTROLACCOUNT.ACCOUNTTYPE
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,
BANKACCOUNT as BANKACCOUNT,
ACCOUNTTYPE,
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 TREASURYCASHACCOUNT
from @TempTbl T2
where (BANKACCOUNT = (select ACCOUNTNAME from dbo.BANKACCOUNT where ID = @BANKACCOUNTID) or
@BANKACCOUNTID is null)
end