USP_REVENUE_SPLIT_EDIT_SAVE_2
Provides a common method to save data for revenue detail split edit forms.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CHANGEDATE | datetime | IN | |
@REVENUEAMOUNT | money | IN | |
@SPLITS | xml | IN |
Definition
Copy
CREATE procedure dbo.USP_REVENUE_SPLIT_EDIT_SAVE_2
(
@ID uniqueidentifier = null,
@CHANGEAGENTID uniqueidentifier = null,
@CHANGEDATE datetime = null,
@REVENUEAMOUNT money = null,
@SPLITS xml
)
as
set nocount on;
begin try
declare @TRANSACTIONTYPECODE int;
declare @TRANSACTIONCURRENCYID uniqueidentifier;
declare @BASECURRENCYID uniqueidentifier;
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @BASEEXCHANGERATEID uniqueidentifier;
declare @ISMEMBERSHIPTRANSACTION bit;
select
@TRANSACTIONTYPECODE = REVENUE.TYPECODE,
@TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID,
@BASECURRENCYID = BASECURRENCYID,
@ORGANIZATIONEXCHANGERATEID = REVENUE.ORGEXCHANGERATEID,
@BASEEXCHANGERATEID = REVENUE.BASEEXCHANGERATEID,
@ISMEMBERSHIPTRANSACTION = case REVENUE.TYPECODE when 2 then dbo.UFN_RECURRINGGIFT_ISMEMBERSHIP(@ID)
when 15 then 1
else 0 end
from dbo.FINANCIALTRANSACTION REVENUE
inner join dbo.REVENUE_EXT on REVENUE.ID = REVENUE_EXT.ID
inner join dbo.PDACCOUNTSYSTEM on REVENUE.PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
inner join dbo.CURRENCYSET on PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSET.ID
where REVENUE.ID = @ID
and REVENUE.DELETEDON is null;
if @ISMEMBERSHIPTRANSACTION = 1
begin
exec dbo.USP_MEMBERSHIPPLEDGE_VALIDATESPLITS @SPLITS, @REVENUEAMOUNT, @TRANSACTIONTYPECODE, @ID, @TRANSACTIONCURRENCYID;
--add in missing splits
set @SPLITS = ( select ID, AMOUNT, APPLICATIONCODE, DESIGNATIONID, TYPECODE, DECLINESGIFTAID, TRANSACTIONCURRENCYID
from (select
SPLITS.[ID],
SPLITS.[AMOUNT],
SPLITS.[APPLICATIONCODE],
SPLITS.[DESIGNATIONID],
SPLITS.[TYPECODE],
SPLITS.[DECLINESGIFTAID],
SPLITS.[TRANSACTIONCURRENCYID]
from dbo.UFN_REVENUE_GETSPLITS_2_FROMITEMLISTXML(@SPLITS) SPLITS
union all
select
SPLIT.ID,
SPLIT.TRANSACTIONAMOUNT as AMOUNT,
SPLIT.APPLICATIONCODE,
SPLIT.DESIGNATIONID,
SPLIT.TYPECODE,
SPLIT.DECLINESGIFTAID,
SPLIT.TRANSACTIONCURRENCYID
from dbo.UFN_REVENUE_GETSPLITS_2(@ID) SPLIT
where SPLIT.DESIGNATIONID is null) SPLITS
for xml raw('ITEM'),type,elements,root('SPLITS'),BINARY BASE64);
end
else
begin
-- JamesWill 03/13/2006 CR237716-031306
exec dbo.USP_REVENUESPLIT_VALIDATESPLITS @SPLITS, @REVENUEAMOUNT, @TRANSACTIONTYPECODE, @ID, @TRANSACTIONCURRENCYID;
end
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @CHANGEDATE is null
set @CHANGEDATE = getdate()
--Multicurrency - RobertDi 4/15/10 - Process the splits xml to calculate the base and organization amounts and place them in proper nodes.
set @SPLITS = dbo.UFN_REVENUESPLIT_CONVERTAMOUNTSINXML(@SPLITS,@BASECURRENCYID,@ORGANIZATIONEXCHANGERATEID,@TRANSACTIONCURRENCYID,@BASEEXCHANGERATEID)
exec dbo.USP_REVENUE_GETSPLITS_2_UPDATEFROMXML @ID, @SPLITS, @CHANGEAGENTID, @CHANGEDATE;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;