USP_DATAFORMTEMPLATE_EDIT_VOLUNTEERAVAILABILITY
The save procedure used by the edit dataform template "Volunteer Availability Edit 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. |
@AVAILABILITIES | xml | IN | Availabilities |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_VOLUNTEERAVAILABILITY
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@AVAILABILITIES XML
)
as
set nocount on;
declare @CURRENTDATE datetime;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
begin try
exec dbo.USP_VOLUNTEER_GETAVAILABILITIES_UPDATEFROMXML @ID, @AVAILABILITIES, @CHANGEAGENTID;
-- Fix up dates for backwards compatibility (custom code doesn't have a value for full start/end date)
update dbo.VOLUNTEERAVAILABILITY
set
FULLSTARTDATE = coalesce(FULLSTARTDATE, cast((cast(datepart(yyyy, getdate()) as nvarchar(4)) + STARTDATE) as date)),
FULLENDDATE = coalesce
(
FULLENDDATE,
case
when cast(left(ENDDATE, 2) as int) < cast(left(STARTDATE, 2) as int) -- start and end are in separate years
then cast((cast((datepart(yyyy, getdate())) + 1 as nvarchar(4)) + ENDDATE) as date)
else cast((cast(datepart(yyyy, getdate()) as nvarchar(4)) + ENDDATE) as date)
end
),
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
VOLUNTEERAVAILABILITY.VOLUNTEERID = @ID
and
(
VOLUNTEERAVAILABILITY.FULLSTARTDATE is null
or VOLUNTEERAVAILABILITY.FULLENDDATE is null
);
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;