USP_DATAFORMTEMPLATE_EDIT_RECURRINGGIFTDEVELOPMENTFUNCTIONHISTORY
The save procedure used by the edit dataform template "Recurring Gift Revenue Function History 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. |
@REVENUEDEVELOPMENTFUNCTIONCODEID | uniqueidentifier | IN | Revenue function |
@TRANSACTIONDATE | date | IN | Date |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_RECURRINGGIFTDEVELOPMENTFUNCTIONHISTORY (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@REVENUEDEVELOPMENTFUNCTIONCODEID uniqueidentifier,
@TRANSACTIONDATE date
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
declare @ERR tinyint;
set @ERR = 0;
-- make sure the new date is still between any surrounding history rows
select top 1 @ERR = case when [OTHER].SEQUENCE < [ME].SEQUENCE then 1 else 2 end
from dbo.RECURRINGGIFTDEVELOPMENTFUNCTIONHISTORY [ME]
inner join dbo.RECURRINGGIFTDEVELOPMENTFUNCTIONHISTORY [OTHER] on [OTHER].REVENUEID = [ME].REVENUEID and [OTHER].ID <> [ME].ID
where (([OTHER].SEQUENCE < [ME].SEQUENCE and @TRANSACTIONDATE < [OTHER].TRANSACTIONDATE) or
([OTHER].SEQUENCE > [ME].SEQUENCE and @TRANSACTIONDATE > [OTHER].TRANSACTIONDATE))
and [ME].ID = @ID;
if @ERR = 1
begin
raiserror('BBERR_TRANSACTIONDATETOOEARLY',13,1)
return 1;
end
else if @ERR = 2
begin
raiserror('BBERR_TRANSACTIONDATETOOLATE',13,1)
return 1;
end
begin try
update dbo.RECURRINGGIFTDEVELOPMENTFUNCTIONHISTORY
set TRANSACTIONDATE = @TRANSACTIONDATE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID
and TRANSACTIONDATE <> @TRANSACTIONDATE;
update F
set REVENUEDEVELOPMENTFUNCTIONCODEID = @REVENUEDEVELOPMENTFUNCTIONCODEID
from REVENUEDEVELOPMENTFUNCTION F
inner join dbo.RECURRINGGIFTDEVELOPMENTFUNCTIONHISTORY on RECURRINGGIFTDEVELOPMENTFUNCTIONHISTORY.REVENUEDEVELOPMENTFUNCTIONID = F.ID
where RECURRINGGIFTDEVELOPMENTFUNCTIONHISTORY.ID = @ID
and F.REVENUEDEVELOPMENTFUNCTIONCODEID <> @REVENUEDEVELOPMENTFUNCTIONCODEID;
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;