USP_DATAFORMTEMPLATE_ADD_TIMESHEETBATCHROW
The save procedure used by the add dataform template "Timesheet Batch Row Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@BATCHID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@VOLUNTEERID | uniqueidentifier | IN | Volunteer |
@JOBOCCURRENCEID | uniqueidentifier | IN | Job occurrence |
@HOURSWORKED | decimal(20, 2) | IN | Hours worked |
@STARTDATE | datetime | IN | Start date |
@ENDDATE | datetime | IN | End date |
@SEQUENCE | int | IN | Sequence |
@VOLUNTEER_IMPORTLOOKUPID | nvarchar(100) | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_TIMESHEETBATCHROW
(
@ID uniqueidentifier output,
@CHANGEAGENTID uniqueidentifier,
@BATCHID uniqueidentifier,
@VOLUNTEERID uniqueidentifier = null,
@JOBOCCURRENCEID uniqueidentifier = null,
@HOURSWORKED decimal(20, 2) = null,
@STARTDATE datetime = null,
@ENDDATE datetime = null,
@SEQUENCE int = null,
@VOLUNTEER_IMPORTLOOKUPID nvarchar(100) = null
)
as
set nocount on;
declare @DATECHANGED datetime;
if @ID is null
set @ID = NewID();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
set @DATECHANGED = GetDate();
-- Find the Volunteer ID from the Volunteer Lookup ID
if len(@VOLUNTEER_IMPORTLOOKUPID) > 0
begin
if @VOLUNTEERID is null
begin
with LOOKUPIDS_CTE as (
select top(2)
CONSTITUENT.ID ID
from
dbo.CONSTITUENT
inner join dbo.VOLUNTEER on VOLUNTEER.ID = CONSTITUENT.ID
where
CONSTITUENT.LOOKUPID = @VOLUNTEER_IMPORTLOOKUPID
)
select
distinct @VOLUNTEERID = ID
from
LOOKUPIDS_CTE
if @@rowcount > 1
raiserror('More than one volunteer exists with the supplied lookup ID.', 13, 1);
end
if @VOLUNTEERID is null
begin
raiserror('BBERR_CONSTITUENTISNOTVOLUNTEER', 13, 1);
return 1;
end
end
begin try
insert into dbo.BATCHTIMESHEET(ID, BATCHID, VOLUNTEERID, JOBOCCURRENCEID, HOURSWORKED, STARTDATE, ENDDATE, SEQUENCE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values(@ID, @BATCHID, @VOLUNTEERID, @JOBOCCURRENCEID, @HOURSWORKED, @STARTDATE, @ENDDATE, @SEQUENCE, @CHANGEAGENTID, @CHANGEAGENTID, @DATECHANGED, @DATECHANGED);
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;