USP_DATAFORMTEMPLATE_VIEW_LEDGERACCOUNTPROFILE
The load procedure used by the view dataform template "Ledger Account Profile View Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@ACCOUNT | nvarchar(max) | INOUT | Account |
@DESCRIPTION | nvarchar(400) | INOUT | Description |
@CATEGORYCODE | tinyint | INOUT | Category |
@SUBCATEGORYCODE | tinyint | INOUT | Sub Category |
@CONTRAACCOUNT | bit | INOUT | Contra account |
@BALANCETYPE | tinyint | INOUT | Balance type |
@ACTIVE | bit | INOUT | Status |
@HASINACTIVELEMENTS | bit | INOUT | Has inactive elements |
@DATAELEMENTS | xml | INOUT | Segments |
@SEPARATOR | nvarchar(1) | INOUT | Separator |
@PDACCOUNTSYSTEMID | uniqueidentifier | INOUT | PDACCOUNTSYSTEMID |
@CONTROLACCOUNT | bit | INOUT | Control account |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_LEDGERACCOUNTPROFILE
(
@ID uniqueidentifier
,@DATALOADED bit = 0 output
,@ACCOUNT nvarchar(max) = null output
,@DESCRIPTION nvarchar(400) = null output
,@CATEGORYCODE tinyint = null output
,@SUBCATEGORYCODE tinyint = null output
,@CONTRAACCOUNT bit = null output
,@BALANCETYPE tinyint = null output
,@ACTIVE bit = null output
,@HASINACTIVELEMENTS bit = null output
,@DATAELEMENTS xml = null output
,@SEPARATOR nvarchar(1) = null output
,@PDACCOUNTSYSTEMID uniqueidentifier = null output
,@CONTROLACCOUNT bit = null output
)
as
set nocount on;
set @DATALOADED = 0;
declare @DATAELEMENTSTABLE table
(DATAELEMENTID uniqueidentifier)
insert into @DATAELEMENTSTABLE(DATAELEMENTID)
select unPvt.DATAELEMENTID
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
select @DATALOADED = 1,
@ACCOUNT = GLACCOUNT.ACCOUNTSTRING,
@DESCRIPTION = GLACCOUNT.ACCOUNTDESCRIPTION,
@CATEGORYCODE = ACCOUNTCODE.CATEGORYCODE,
@SUBCATEGORYCODE = ACCOUNTCODE.SUBCATEGORYCODE,
@CONTRAACCOUNT = ACCOUNTCODE.CONTRAACCOUNT,
@BALANCETYPE = dbo.UFN_GETCATEGORYBALANCEFROMID(GLACCOUNT.ACCOUNTCODEID),
@ACTIVE = ACTIVE
,@PDACCOUNTSYSTEMID = PDACCOUNTSYSTEMID,
@CONTROLACCOUNT = case when ACCOUNTCODEID in (select DATAELEMENTID from @DATAELEMENTSTABLE) then 1 else 0 end
from
dbo.GLACCOUNT
left join dbo.ACCOUNTCODE on ACCOUNTCODE.ID = GLACCOUNT.ACCOUNTCODEID
where GLACCOUNT.ID = @ID
if @PDACCOUNTSYSTEMID is null
set @PDACCOUNTSYSTEMID = '4B121C2C-CCE6-440D-894C-EA0DEF80D50B'
if exists
(select 1 from
dbo.UFN_LEDGERACCOUNT_DATAELEMENTS(@ID) DE
inner join dbo.PDACCOUNTSEGMENTVALUE on DE.DATAELEMENTID = PDACCOUNTSEGMENTVALUE.ID
where
PDACCOUNTSEGMENTVALUE.ISACTIVE = 0)
set @HASINACTIVELEMENTS = 1;
set @DATAELEMENTS = (
select unpvt.DATAELEMENTID, DE.SHORTDESCRIPTION, DE.ISACTIVE, SEGMENTSEQUENCE, ELEMENTDEFINITIONCODE
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.GLACCOUNT
where GLACCOUNT.ID = @ID) l
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 dbo.PDACCOUNTSEGMENTVALUE DE on DATAELEMENTID = DE.ID
inner join dbo.PDACCOUNTSTRUCTURE on DE.PDACCOUNTSTRUCTUREID = PDACCOUNTSTRUCTURE.ID
order by SEGMENTSEQUENCE
for xml raw('ITEM'),type,elements,root('DATAELEMENTS'),BINARY BASE64)
select top 1 @SEPARATOR = SEPARATOR from dbo.PDACCOUNTSTRUCTURE where PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID and ISBASICGL=0;
return 0;