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