USP_DATAFORMTEMPLATE_SAVE_SALESORDER_RESERVEDITEM

The save procedure used by the edit dataform template "Sales Order Reserved Item Edit Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@SALESORDERID uniqueidentifier IN Sales Order ID
@SECONDSUNTILEXPIRATION int IN Seconds Until Expiration
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.

Definition

Copy

                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_SAVE_SALESORDER_RESERVEDITEM
                    (
                        @ID uniqueidentifier,
                        @SALESORDERID uniqueidentifier,
                        @SECONDSUNTILEXPIRATION int,
                        @CHANGEAGENTID uniqueidentifier = null
                    )
                    as

                    set nocount on;

                    if @CHANGEAGENTID is null  
                    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

                    declare @CURRENTDATE datetime
                    set @CURRENTDATE = current_timestamp

                    begin try
                    -- handle inserting the data

                        if exists(select 1 from dbo.[SALESORDERITEM] with (nolock) where [ID] = @ID)
                        begin
                            merge dbo.SALESORDERRESERVEDITEM as target
                            using (SELECT @ID as ID) as source
                            on (target.ID = source.ID)
                            when matched then
                                update 
                                set 
                                    [CHANGEDBYID] = @CHANGEAGENTID,
                                    [DATECHANGED] = @CURRENTDATE,
                                    [SECONDSUNTILEXPIRATION] = @SECONDSUNTILEXPIRATION
                            when not matched then
                                insert
                                (
                                    ID,
                                    SALESORDERID,
                                    SECONDSUNTILEXPIRATION,
                                    ADDEDBYID,
                                    CHANGEDBYID,
                                    DATEADDED,
                                    DATECHANGED
                                )
                                values
                                (
                                    @ID,
                                    @SALESORDERID,
                                    @SECONDSUNTILEXPIRATION,
                                    @CHANGEAGENTID,
                                    @CHANGEAGENTID,
                                    @CURRENTDATE,
                                    @CURRENTDATE
                                );
                        end
                    end try

                    begin catch
                        exec dbo.USP_RAISE_ERROR
                        return 1
                    end catch

                    return 0