USP_EVENTEXPENSE_COPY
Copies expenses from one event to another event.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SOURCEEVENTID | uniqueidentifier | IN | |
@DESTINATIONEVENTID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_EVENTEXPENSE_COPY
(
@SOURCEEVENTID uniqueidentifier,
@DESTINATIONEVENTID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@CURRENTAPPUSERID uniqueidentifier = null
)
with execute as caller
as
set nocount on;
-- Cannot copy if the source event does not exist
if not exists (select ID from dbo.EVENT where ID = @SOURCEEVENTID)
raiserror('The source event specified does not exist.',13,1);
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @BASECURRENCYID uniqueidentifier;
select @BASECURRENCYID = BASECURRENCYID
from dbo.EVENT
where ID = @DESTINATIONEVENTID;
if @BASECURRENCYID is null
set @BASECURRENCYID = dbo.UFN_APPUSER_GETBASECURRENCY(@CURRENTAPPUSERID);
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
insert into dbo.EVENTEXPENSE
(
EVENTID,
EVENTEXPENSETYPECODEID,
BUDGETEDAMOUNT,
ORGANIZATIONBUDGETEDAMOUNT,
COMMENT,
VENDORID,
BASECURRENCYID,
ORGANIZATIONEXCHANGERATEID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
@DESTINATIONEVENTID,
EVENTEXPENSETYPECODEID,
ACTUALAMOUNT,
case when @ORGANIZATIONCURRENCYID = @BASECURRENCYID
then ACTUALAMOUNT
else dbo.UFN_CURRENCY_CONVERT(ACTUALAMOUNT, @ORGANIZATIONEXCHANGERATEID)
end,
COMMENT,
VENDORID,
@BASECURRENCYID,
@ORGANIZATIONEXCHANGERATEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
dbo.EVENTEXPENSE
where
EVENTID = @SOURCEEVENTID;
return 0;