USP_USERSETTINGS_BATCHSETTINGS_CREATEORUPDATE

Creates or updates user settings for a given batch type.

Parameters

Parameter Parameter Type Mode Description
@BATCHID uniqueidentifier IN
@APPUSERID uniqueidentifier IN
@SETTINGS xml IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


            Create procedure USP_USERSETTINGS_BATCHSETTINGS_CREATEORUPDATE(@BATCHID uniqueidentifier, @APPUSERID uniqueidentifier, @SETTINGS xml, @CHANGEAGENTID uniqueidentifier = null)
            as
            begin

                set nocount on

                declare @BATCHTYPECATALOGID uniqueidentifier
                select @BATCHTYPECATALOGID=BATCHTYPECATALOGID from dbo.BATCHTEMPLATE inner join dbo.BATCH on BATCHTEMPLATE.ID = BATCH.BATCHTEMPLATEID where BATCH.ID = @BATCHID;

                declare @existingID uniqueidentifier
                select @existingID = ID from dbo.BATCHUSERSETTINGS where BATCHTYPECATALOGID = @BATCHTYPECATALOGID and APPUSERID = @APPUSERID;

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

                declare @date datetime
                set @date = getdate()

                if @existingID is null 

                    begin
                        declare @ID uniqueidentifier
                        set @ID = NewID()

                        insert into dbo.BATCHUSERSETTINGS 
                            (ID, BATCHTYPECATALOGID, APPUSERID, SETTINGS, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                        values 
                            (@ID, @BATCHTYPECATALOGID, @APPUSERID, @SETTINGS, @CHANGEAGENTID, @CHANGEAGENTID, @date, @date)
                    end

                else

                    update dbo.BATCHUSERSETTINGS 
                    set SETTINGS = @SETTINGS,
                        CHANGEDBYID = @CHANGEAGENTID,
                        DATECHANGED = @date
                    where ID = @existingID

                RETURN 0;    

            end