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;