UFN_REVENUE_GENERATEGLACCOUNT_APPLYOVERRIDES
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REVENUEINFORMATION | xml | IN | |
@REVENUESPLITINFORMATION | xml | IN | |
@REVENUETRANSACTIONTYPECODE | tinyint | IN | |
@REVENUESPLITTYPECODE | tinyint | IN | |
@APPLICATIONCODE | tinyint | IN | |
@PAYMENTMETHODCODE | tinyint | IN | |
@DESIGNATIONID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_REVENUE_GENERATEGLACCOUNT_APPLYOVERRIDES
(
@REVENUEINFORMATION xml,
@REVENUESPLITINFORMATION xml,
@REVENUETRANSACTIONTYPECODE tinyint,
@REVENUESPLITTYPECODE tinyint,
@APPLICATIONCODE tinyint,
@PAYMENTMETHODCODE tinyint,
@DESIGNATIONID uniqueidentifier
)
returns @RevenueXml table
(
REVENUEINFORMATION xml,
REVENUESPLITINFORMATION xml
)
as
begin
if @REVENUEINFORMATION is not null
begin
if @PAYMENTMETHODCODE is not null
begin
declare @PAYMENTMETHODCODEXML as xml = '<PAYMENTMETHODCODE>'+cast(@PAYMENTMETHODCODE as nvarchar(3)) + '</PAYMENTMETHODCODE>'
set @REVENUEINFORMATION.modify('
delete (/REVENUEINFORMATION/ITEM[1]/PAYMENTMETHODCODE)[1]
');
set @REVENUEINFORMATION.modify('
insert sql:variable("@PAYMENTMETHODCODEXML")
as first into (/REVENUEINFORMATION/ITEM)[1]
');
end
if @REVENUETRANSACTIONTYPECODE is not null
begin
declare @TRANSACTIONTYPECODEXML as xml = '<TRANSACTIONTYPECODE>'+cast(@REVENUETRANSACTIONTYPECODE as nvarchar(3)) + '</TRANSACTIONTYPECODE>'
set @REVENUEINFORMATION.modify('
delete (/REVENUEINFORMATION/ITEM[1]/TRANSACTIONTYPECODE)[1]
');
set @REVENUEINFORMATION.modify('
insert sql:variable("@TRANSACTIONTYPECODEXML")
as first into (/REVENUEINFORMATION/ITEM)[1]
');
end
end
if @REVENUESPLITINFORMATION is not null
begin
if @REVENUESPLITTYPECODE is not null
begin
declare @TYPECODEXML as xml = '<TYPECODE>'+cast(@REVENUESPLITTYPECODE as nvarchar(3)) + '</TYPECODE>'
set @REVENUESPLITINFORMATION.modify('
delete (/REVENUESPLITINFORMATION/ITEM[1]/TYPECODE)[1]
');
set @REVENUESPLITINFORMATION.modify('
insert sql:variable("@TYPECODEXML")
as first into (/REVENUESPLITINFORMATION/ITEM)[1]
');
end
if @APPLICATIONCODE is not null
begin
declare @APPLICATIONCODEXML as xml = '<APPLICATIONCODE>'+cast(@APPLICATIONCODE as nvarchar(3)) + '</APPLICATIONCODE>'
set @REVENUESPLITINFORMATION.modify('
delete (/REVENUESPLITINFORMATION/ITEM[1]/APPLICATIONCODE)[1]
');
set @REVENUESPLITINFORMATION.modify('
insert sql:variable("@APPLICATIONCODEXML")
as first into (/REVENUESPLITINFORMATION/ITEM)[1]
');
end
if @DESIGNATIONID is not null
begin
declare @DESIGNATIONXML as xml = '<DESIGNATIONID>'+cast(@DESIGNATIONID as nvarchar(36)) + '</DESIGNATIONID>'
set @REVENUESPLITINFORMATION.modify('
delete (/REVENUESPLITINFORMATION/ITEM[1]/DESIGNATIONID)[1]
');
set @REVENUESPLITINFORMATION.modify('
insert sql:variable("@DESIGNATIONXML")
as first into (/REVENUESPLITINFORMATION/ITEM)[1]
');
end
end
insert into @RevenueXml (REVENUEINFORMATION, REVENUESPLITINFORMATION)
select @REVENUEINFORMATION, @REVENUESPLITINFORMATION
return
end