USP_DATAFORMTEMPLATE_EDITLOAD_PLANNEDGIFTPAYOUTGLDISTRIBUTION
The load procedure used by the edit dataform template "Planned Gift Payout GL Distribution Edit Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@GLDISTRIBUTION | xml | INOUT | Revenue GL distribution |
@REVENUEAMOUNT | money | INOUT | Payout amount |
@DEBITGLPAYMENTMETHODREVENUETYPEMAPPINGID | uniqueidentifier | INOUT | Debit mapping type |
@CREDITGLPAYMENTMETHODREVENUETYPEMAPPINGID | uniqueidentifier | INOUT | Credit mapping type |
@TSLONG | bigint | INOUT | Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record. |
@TRANSACTIONCURRENCYID | uniqueidentifier | INOUT | Transaction currency ID |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_PLANNEDGIFTPAYOUTGLDISTRIBUTION
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@GLDISTRIBUTION xml = null output,
@REVENUEAMOUNT money = null output,
@DEBITGLPAYMENTMETHODREVENUETYPEMAPPINGID uniqueidentifier = null output,
@CREDITGLPAYMENTMETHODREVENUETYPEMAPPINGID uniqueidentifier = null output,
@TSLONG bigint = 0 output,
@TRANSACTIONCURRENCYID uniqueidentifier = null output
)
as
begin
set nocount on;
set @DATALOADED = 0;
set @TSLONG = 0;
-- Rename the TRANSACTIONAMOUNT field to AMOUNT.
set @GLDISTRIBUTION = (
select
GLDISTRIBUTION.ID,
GLDISTRIBUTION.TRANSACTIONTYPECODE,
GLDISTRIBUTION.TRANSACTIONAMOUNT AMOUNT,
GLDISTRIBUTION.GLPAYMENTMETHODREVENUETYPEMAPPINGID,
GLDISTRIBUTION.ACCOUNT,
GLDISTRIBUTION.PROJECT,
GLDISTRIBUTION.REFERENCE,
GLDISTRIBUTION.TRANSACTIONCURRENCYID
from
dbo.UFN_PLANNEDGIFTPAYOUT_GETGLDISTRIBUTION(@ID) GLDISTRIBUTION
for xml raw('ITEM'),type,elements,root('GLDISTRIBUTION'),BINARY BASE64
);
select
@REVENUEAMOUNT = sum(PLANNEDGIFTPAYOUTGLDISTRIBUTION.TRANSACTIONAMOUNT)/2
from
dbo.PLANNEDGIFTPAYOUTGLDISTRIBUTION
where
PLANNEDGIFTPAYOUTGLDISTRIBUTION.REVENUEID = @ID
and PLANNEDGIFTPAYOUTGLDISTRIBUTION.OUTDATED = 0;
select
@TRANSACTIONCURRENCYID = TRANSACTIONCURRENCYID
from
dbo.PLANNEDGIFTPAYOUTGLDISTRIBUTION
where
REVENUEID = @ID;
select
top 1 @DEBITGLPAYMENTMETHODREVENUETYPEMAPPINGID = GLPAYMENTMETHODREVENUETYPEMAPPINGID
from
dbo.UFN_PLANNEDGIFTPAYOUT_GETGLDISTRIBUTION_FROMITEMLISTXML(@GLDISTRIBUTION)
where
TRANSACTIONTYPECODE = 0;
select
TOP 1 @CREDITGLPAYMENTMETHODREVENUETYPEMAPPINGID = GLPAYMENTMETHODREVENUETYPEMAPPINGID
from
dbo.UFN_PLANNEDGIFTPAYOUT_GETGLDISTRIBUTION_FROMITEMLISTXML(@GLDISTRIBUTION)
where
TRANSACTIONTYPECODE = 1;
if @REVENUEAMOUNT is not null
begin
set @DATALOADED = 1
select @TSLONG = max(tslong) from dbo.PLANNEDGIFTPAYOUTGLDISTRIBUTION where REVENUEID = @ID
end
return 0;
end