USP_DATAFORMTEMPLATE_EDIT_AUCTIONPACKAGE
The save procedure used by the edit dataform template "Auction Package Edit Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@NAME | nvarchar(100) | IN | Name |
@DESCRIPTION | nvarchar(255) | IN | Description |
@AUCTIONITEMCATEGORYID | uniqueidentifier | IN | Category |
@AUCTIONITEMSUBCATEGORYID | uniqueidentifier | IN | Subcategory |
@MINIMUMBID | money | IN | Minimum bid |
@EXPIRATIONDATE | datetime | IN | Expiration |
@EVENTAUCTIONID | uniqueidentifier | IN | Auction |
@BASECURRENCYID | uniqueidentifier | IN | Base currency |
@TRANSACTIONCURRENCYID | uniqueidentifier | IN | Transaction currency |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_AUCTIONPACKAGE (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255),
@AUCTIONITEMCATEGORYID uniqueidentifier,
@AUCTIONITEMSUBCATEGORYID uniqueidentifier,
@MINIMUMBID money,
@EXPIRATIONDATE datetime,
@EVENTAUCTIONID uniqueidentifier,
@BASECURRENCYID uniqueidentifier,
@TRANSACTIONCURRENCYID uniqueidentifier
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
declare @PREVIOUSEVENTAUCTIONID uniqueidentifier;
select @PREVIOUSEVENTAUCTIONID = EVENTAUCTIONID from dbo.AUCTIONITEM where ID = @ID
if (((@PREVIOUSEVENTAUCTIONID is null) and (@EVENTAUCTIONID is not null)) or ((@PREVIOUSEVENTAUCTIONID is not null) and (@EVENTAUCTIONID is not null) and (@PREVIOUSEVENTAUCTIONID <> @EVENTAUCTIONID))) and exists(select 1 from dbo.EVENT where EVENT.ID = @EVENTAUCTIONID and EVENT.ISACTIVE = 0)
raiserror('BBERR_EVENTAUCTIONISINACTIVE',13,1);
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
select @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
select
@TRANSACTIONCURRENCYID = EVENT.BASECURRENCYID
from dbo.EVENT
where EVENT.ID = @EVENTAUCTIONID
-- check to see if there are items attached to this package
-- if the items have a transaction currency that is equal to the event base currency, it's fine
-- otherwise, throw an error
if exists(select 1 from dbo.AUCTIONITEM where AUCTIONITEM.TRANSACTIONCURRENCYID <> @TRANSACTIONCURRENCYID and AUCTIONITEM.PACKAGEID = @ID)
raiserror('BBERR_AUCTIONITEM_PACKAGE_ITEMSWITHINVALIDTRANSACTIONCURRENCYID', 13, 1);
-- handle updating the data
update AUCTIONITEM
set
NAME = @NAME,
DESCRIPTION = @DESCRIPTION,
AUCTIONITEMCATEGORYID = @AUCTIONITEMCATEGORYID,
AUCTIONITEMSUBCATEGORYID = @AUCTIONITEMSUBCATEGORYID,
TRANSACTIONMINIMUMBID = @MINIMUMBID,
MINIMUMBID = @MINIMUMBID,
ORGANIZATIONMINIMUMBID = case when @TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID then @MINIMUMBID
else dbo.UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY(@MINIMUMBID, AUCTIONITEM.ORIGINTOORGANIZATIONEXCHANGERATEID, @MINIMUMBID)
end,
EXPIRATIONDATE = @EXPIRATIONDATE,
EVENTAUCTIONID = @EVENTAUCTIONID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE,
TRANSACTIONCURRENCYID = @TRANSACTIONCURRENCYID,
BASECURRENCYID = @TRANSACTIONCURRENCYID
from dbo.AUCTIONITEM
where ID = @ID
-- update the items to match the event
update dbo.AUCTIONITEM set
EVENTAUCTIONID = @EVENTAUCTIONID
where
PACKAGEID = @ID
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;