USP_DATAFORMTEMPLATE_EDIT_ASSIGNLETTERCODESPROCESS

The save procedure used by the edit dataform template "Assign Letters Process 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.
@NAME nvarchar(100) IN Name
@DESCRIPTION nvarchar(255) IN Description
@IDSETREGISTERID uniqueidentifier IN Selection
@LETTERCODES xml IN
@CREATEOUTPUTIDSET bit IN Create selection from results
@OUTPUTIDSETNAME nvarchar(100) IN Selection name
@OVERWRITEOUTPUTIDSET bit IN Overwrite existing Selection
@ASSIGNALLLETTERCODES bit IN Assign all letters
@USEDATEFILTER bit IN Only consider revenue added since last run
@OUTPUTIDSETRECORDTYPEID uniqueidentifier IN Selection type

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_ASSIGNLETTERCODESPROCESS
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @NAME nvarchar(100), 
                        @DESCRIPTION nvarchar(255),
                        @IDSETREGISTERID uniqueidentifier,
                        @LETTERCODES xml,
                        @CREATEOUTPUTIDSET bit,
                        @OUTPUTIDSETNAME nvarchar(100), 
                        @OVERWRITEOUTPUTIDSET bit,
                        @ASSIGNALLLETTERCODES bit,
                        @USEDATEFILTER bit,
                        @OUTPUTIDSETRECORDTYPEID uniqueidentifier
                    )
                    as
                        set nocount on;

                        declare @CURRENTDATE datetime;
                        set @CURRENTDATE = getdate();

                        begin try
                            if @ID is null
                                set @ID = NewID();

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

                            if @ASSIGNALLLETTERCODES = 0
                                if (select count(*) from dbo.UFN_ASSIGNLETTERCODESPROCESS_GETLETTERCODES_FROMITEMLISTXML(@LETTERCODES)) = 0
                                    raiserror('Please enter at least one letter.', 13, 1);

                            update 
                                dbo.ASSIGNLETTERCODESPROCESS
                            set
                                NAME = @NAME,
                                DESCRIPTION = @DESCRIPTION,
                                IDSETREGISTERID = @IDSETREGISTERID,
                                CREATEOUTPUTIDSET = @CREATEOUTPUTIDSET,
                                OUTPUTIDSETNAME = @OUTPUTIDSETNAME
                                OVERWRITEOUTPUTIDSET = @OVERWRITEOUTPUTIDSET,
                                ASSIGNALLLETTERCODES = @ASSIGNALLLETTERCODES,
                                USEDATEFILTER = @USEDATEFILTER,
                                OUTPUTIDSETRECORDTYPEID = @OUTPUTIDSETRECORDTYPEID,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where
                                ID = @ID;    

                            if @ASSIGNALLLETTERCODES = 0
                                exec dbo.USP_ASSIGNLETTERCODESPROCESS_GETLETTERCODES_UPDATEFROMXML @ID, @LETTERCODES, @CHANGEAGENTID, @CURRENTDATE;

                        end try

                        begin catch
                            exec dbo.USP_RAISE_ERROR;
                            return 1;
                        end catch

                        return 0;