USP_DATAFORMTEMPLATE_EDITLOAD_AUCTIONDONATION
The load procedure used by the edit dataform template "Auction Donation Edit Data 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. |
@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. |
@AMOUNT | money | INOUT | Value |
@DATE | datetime | INOUT | Date |
@EXPIRATIONDATE | datetime | INOUT | Expiration date |
@DESIGNATIONID | uniqueidentifier | INOUT | Designation |
@POSTDATE | datetime | INOUT | Post date |
@POSTSTATUSCODE | tinyint | INOUT | Post status |
@BASECURRENCYID | uniqueidentifier | INOUT | Base currency |
@TRANSACTIONCURRENCYID | uniqueidentifier | INOUT | Transaction currency |
@BASEEXCHANGERATEID | uniqueidentifier | INOUT | Exchange rate ID |
@EXCHANGERATE | decimal(20, 8) | INOUT | Exchange rate |
@HADSPOTRATE | bit | INOUT | Had spot rate |
@BASEDECIMALDIGITS | tinyint | INOUT | Decimal digits |
@BASEROUNDINGTYPECODE | tinyint | INOUT | Rounding type |
@TRANSACTIONCURRENCYDESCRIPTION | nvarchar(110) | INOUT | Transaction currency description |
@USERGRANTEDSPOTRATE | bit | INOUT | User granted spot rate |
@ALLOWGLDISTRIBUTIONS | bit | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_AUCTIONDONATION
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@TSLONG bigint = 0 output,
@AMOUNT money = null output,
@DATE datetime = null output,
@EXPIRATIONDATE datetime = null output,
@DESIGNATIONID uniqueidentifier = null output,
@POSTDATE datetime = null output,
@POSTSTATUSCODE tinyint = null output,
@BASECURRENCYID uniqueidentifier = null output,
@TRANSACTIONCURRENCYID uniqueidentifier = null output,
@BASEEXCHANGERATEID uniqueidentifier = null output,
@EXCHANGERATE decimal(20,8) = null output,
@HADSPOTRATE bit = null output,
@BASEDECIMALDIGITS tinyint = null output,
@BASEROUNDINGTYPECODE tinyint = null output,
@TRANSACTIONCURRENCYDESCRIPTION nvarchar(110) = null output,
@USERGRANTEDSPOTRATE bit = null output,
@ALLOWGLDISTRIBUTIONS bit = null output
)
as
set nocount on;
-- be sure to set these, in case the select returns no rows
set @DATALOADED = 0;
set @TSLONG = 0;
--replace with commented code for PBI 102747
set @USERGRANTEDSPOTRATE = 1;
/*set @USERGRANTEDSPOTRATE = case
when dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or
dbo.UFN_SECURITY_APPUSER_GRANTED_SYSTEMPRIVILEGE_IN_SYSTEMROLE(@CURRENTAPPUSERID, '911f104d-ba5f-4469-b0ae-184c879aea99') = 1
then 1
else 0
end;*/
-- populate the output parameters, which correspond to fields on the form. Note that
-- we set @DATALOADED = 1 to indicate that the load was successful. Otherwise, the system
-- will display a "no data loaded" message. Also note that we fetch the TSLONG so that concurrency
-- can be considered.
select
@DATALOADED = 1,
@TSLONG = FINANCIALTRANSACTION.TSLONG,
@AMOUNT = FINANCIALTRANSACTION.TRANSACTIONAMOUNT,
@DATE = FINANCIALTRANSACTION.[DATE],
@EXPIRATIONDATE = AUCTIONITEM.EXPIRATIONDATE,
@DESIGNATIONID = REVENUESPLIT_EXT.DESIGNATIONID,
@POSTDATE = FINANCIALTRANSACTION.POSTDATE,
@POSTSTATUSCODE =
case FINANCIALTRANSACTION.POSTSTATUSCODE
when 2
then 0
when 1
then 1
else
2
end,
@BASECURRENCYID = V.BASECURRENCYID,
@TRANSACTIONCURRENCYID = FINANCIALTRANSACTION.TRANSACTIONCURRENCYID,
@BASEEXCHANGERATEID = FINANCIALTRANSACTION.BASEEXCHANGERATEID,
@EXCHANGERATE =
case
when FINANCIALTRANSACTION.BASEEXCHANGERATEID is not null
then CURRENCYEXCHANGERATE.RATE
when FINANCIALTRANSACTION.TRANSACTIONCURRENCYID = V.BASECURRENCYID
then 1
else 0
end,
@HADSPOTRATE =
case
when CURRENCYEXCHANGERATE.TYPECODE = 2
then 1
else 0
end,
@BASEDECIMALDIGITS = CURRENCY.DECIMALDIGITS,
@BASEROUNDINGTYPECODE = CURRENCY.ROUNDINGTYPECODE,
@TRANSACTIONCURRENCYDESCRIPTION = dbo.UFN_CURRENCY_GETDESCRIPTION(FINANCIALTRANSACTION.TRANSACTIONCURRENCYID)
from dbo.FINANCIALTRANSACTION
inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
inner join dbo.REVENUESPLIT_EXT on REVENUESPLIT_EXT.ID = FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.AUCTIONITEM on AUCTIONITEM.REVENUEAUCTIONDONATIONID = FINANCIALTRANSACTION.ID
inner join dbo.V_BASECURRENCYFORFINANCIALTRANSACTION_I V with (noexpand) on FINANCIALTRANSACTION.ID = V.FINANCIALTRANSACTIONID
left join dbo.CURRENCY on CURRENCY.ID = V.BASECURRENCYID
left join dbo.CURRENCYEXCHANGERATE on CURRENCYEXCHANGERATE.ID = FINANCIALTRANSACTION.BASEEXCHANGERATEID
where FINANCIALTRANSACTION.ID = @ID;
-- Check GL business rule for this account system and set to 'Do not post' if needed.
declare @PDACCOUNTSYSTEMID uniqueidentifier;
select @PDACCOUNTSYSTEMID = PDACCOUNTSYSTEMID from dbo.PDACCOUNTSYSTEMFORREVENUE where ID = @ID;
set @ALLOWGLDISTRIBUTIONS = dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(@PDACCOUNTSYSTEMID);
return 0;