USP_DATAFORMTEMPLATE_EDIT_UNMAPPEDERRORPROCESS

The save procedure used by the edit dataform template "GL Account Mapping Message Update Process Edit Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@MESSAGES xml IN Messages

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_UNMAPPEDERRORPROCESS 
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @MESSAGES XML
)
as

    set nocount on;

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

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    begin try
        declare @PDACCOUNTSYSTEMIDID uniqueidentifier;

        select @PDACCOUNTSYSTEMIDID = PDACCOUNTSYSTEMID from dbo.GLACCOUNTMAPPINGERRORUPDATEPROCESS where ID = @ID;

        declare @tempTbl Table (ERRORMESSAGE nvarchar(max));

        insert into @tempTbl (ERRORMESSAGE)
        select ERRORMESSAGE
        from dbo.UFN_UNMAPPEDTRANSACTIONERROR_GETSELECTEDERRORS_FROMITEMLISTXML(@MESSAGES)
        where INCLUDE = 1;

        -- handle updating the data

        update dbo.GLACCOUNTMAPPINGERROR 
        set
            GLACCOUNTMAPPINGERRORUPDATEPROCESSID = @ID,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CURRENTDATE
        where exists (
            select ME.ID
            from dbo.GLACCOUNTMAPPINGERROR ME
            left join dbo.SALESORDER SO on SO.ID = ME.TRANSACTIONID
            inner join dbo.FINANCIALTRANSACTION FT on FT.ID = ME.TRANSACTIONID or FT.ID = SO.REVENUEID
            where
                ME.ID = GLACCOUNTMAPPINGERROR.ID
                and FT.PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMIDID
                and ME.ERRORMESSAGE in (select ERRORMESSAGE from @tempTbl)
                and ME.GLACCOUNTMAPPINGERRORUPDATEPROCESSID is null
                and ME.DELETED = 0
        );
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

return 0;