USP_DATAFORMTEMPLATE_EDIT_CREDITGLDISTRIBUTION

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@GLDISTRIBUTION xml IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_CREDITGLDISTRIBUTION (
    @ID uniqueidentifier,
    @GLDISTRIBUTION xml,
    @CHANGEAGENTID uniqueidentifier = null
)
as
begin try
    set nocount on;

    if @CHANGEAGENTID is null  
        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    declare @DIST table (ID uniqueidentifier, GLACCOUNTID uniqueidentifier, REFERENCE nvarchar(255), PDACCOUNTSYSTEMID uniqueidentifier)
    insert into @DIST
    select
        T.c.value('(ID)[1]','uniqueidentifier') AS 'ID',
        T.c.value('(GLACCOUNTID)[1]','uniqueidentifier') AS 'GLACCOUNTID',
        T.c.value('(REFERENCE)[1]','nvarchar(255)') AS 'REFERENCE',
        T.c.value('(PDACCOUNTSYSTEMID)[1]','uniqueidentifier') AS 'PDACCOUNTSYSTEMID'
    from @GLDISTRIBUTION.nodes('/GLDISTRIBUTION/ITEM') T(c)

    update JE set
        GLACCOUNTID = DIST.GLACCOUNTID,
        COMMENT = DIST.REFERENCE
    from
        @DIST DIST
        inner join dbo.JOURNALENTRY JE on JE.ID = DIST.ID

    update JEX set
        ACCOUNT = GLACCOUNT.ACCOUNTNUMBER
    from
        @DIST DIST
        inner join dbo.JOURNALENTRY_EXT JEX on JEX.ID = DIST.ID
        inner join dbo.GLACCOUNT on GLACCOUNT.ID = DIST.GLACCOUNTID

end try
begin catch
    exec dbo.USP_RAISE_ERROR;
    return 1;
end catch

return 0;