USP_DATAFORMTEMPLATE_VIEW_FINANCIALTRANSACTION_DISTRIBUTIONS

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@DATALOADED bit INOUT
@DISTRIBUTIONTYPES xml INOUT

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_FINANCIALTRANSACTION_DISTRIBUTIONS
(
    @ID uniqueidentifier
    ,@DATALOADED bit = 0 output
    ,@DISTRIBUTIONTYPES xml = null output
)
as
    set nocount on;

    --If we're coming from the order page, it sends in the order id
    if exists (select ID from dbo.SALESORDER where SALESORDER.ID = @ID)
        select @ID = REVENUEID from dbo.SALESORDER where SALESORDER.ID = @ID

    -- be sure to set this, in case the select returns no rows
    set @DATALOADED = 1;

    set @DISTRIBUTIONTYPES = (select distinct
        case JE.TYPECODE
            when 0 then
                case when isnull(ORIGINAL_JEX.TABLENAMECODE, JEX.TABLENAMECODE) is null then 999
                else case isnull(ORIGINAL_JEX.TABLENAMECODE, JEX.TABLENAMECODE)
                    when 0 then 1
                    when 5 then case isnull(ORIGINAL_JEX.BENEFITTYPECODE, JEX.BENEFITTYPECODE) 
                        when 1 then 5 
                        when 2 then 105 
                        when 3 then 205 
                        when 4 then 998 end
                    when 6 then case LI.TYPECODE when 5 then 6 else 106 end
                    else isnull(ORIGINAL_JEX.TABLENAMECODE, JEX.TABLENAMECODE) end end
            else 997 end [TABLENAMECODE]
        ,RS.APPLICATIONCODE
        ,RS.TYPECODE RSTYPECODE
        ,FT.TYPECODE FTTYPECODE
    from dbo.JOURNALENTRY JE
    inner join dbo.JOURNALENTRY_EXT JEX on JE.ID = JEX.ID
    inner join dbo.FINANCIALTRANSACTIONLINEITEM LI on LI.ID = JE.FINANCIALTRANSACTIONLINEITEMID
    inner join dbo.FINANCIALTRANSACTION FT on FT.ID = LI.FINANCIALTRANSACTIONID
    left join dbo.REVENUESPLIT_EXT RS on RS.ID = isnull(LI.REVERSEDLINEITEMID, LI.ID)
    left join dbo.JOURNALENTRY_EXT ORIGINAL_JEX on JEX.REVERSEDGLTRANSACTIONID = ORIGINAL_JEX.ID
    where
        (FT.TYPECODE = 23 and FT.ID = @ID)
        or (isnull(FT.PARENTID, FT.ID) = @ID)
    order by FT.TYPECODE asc, TABLENAMECODE asc
    for xml raw('ITEM'),type,elements,root('DISTRIBUTIONTYPES'),BINARY BASE64);

    return 0;