USP_FINANCIALTRANSACTION_LINEITEMAPPLICATIONS_UNAPPLYMULTIPLE

Removes one or more applications between two line items.

Parameters

Parameter Parameter Type Mode Description
@APPLICATIONS xml IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_FINANCIALTRANSACTION_LINEITEMAPPLICATIONS_UNAPPLYMULTIPLE
                (
                    @APPLICATIONS xml,
                    @CHANGEAGENTID uniqueidentifier = null
                )
            as
            begin
                set nocount on;

                /*
                 *
                 * NOTE: Rules about transaction types and subledger specific details should be handled in a subledger
                 *          unapply sproc that calls this sproc.
                 *
                 */

                begin try
                    -- Check basic unapply rules


                    -- Cannot unapply a line item that is not an application

                    if (exists (select FINANCIALTRANSACTIONLINEITEM.ID
                                from dbo.FINANCIALTRANSACTIONLINEITEM
                                    inner join dbo.UFN_FINANCIALTRANSACTION_LINEITEMAPPLICATIONS_FROMITEMLISTXML(@APPLICATIONS) as APPLICATIONSTOUNAPPLY
                                        on APPLICATIONSTOUNAPPLY.ID = FINANCIALTRANSACTIONLINEITEM.ID
                                where (FINANCIALTRANSACTIONLINEITEM.TYPECODE != 2)))
                         raiserror('ERR_LINEITEMAPPLICATION_LINEITEMNOTAPPLICATION', 13,1);

                    -- Recreate these as line items

                    declare @LINEITEMIDS UDT_GENERICID;
                    insert into @LINEITEMIDS 
                    select 
                      APPLICATIONS.ID
                    from dbo.UFN_FINANCIALTRANSACTION_LINEITEMAPPLICATIONS_FROMITEMLISTXML(@APPLICATIONS) as APPLICATIONS

                    declare @POSTDATE datetime;
                    select @POSTDATE = GETDATE();

                    -- Otherwise create the unapply for posted line items

                    exec dbo.USP_FINANCIALTRANSACTIONLINEITEMS_REVERSE @CHANGEAGENTID, @LINEITEMIDS, @POSTDATE, @POSTDATE, 1;

                end try

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

                return 0;

            end