USP_DATAFORMTEMPLATE_ADD_SALESORDERITEMDONATION_ONLINECOMMENT

The save procedure used by the add dataform template "Sales Order Item Online Comment Add Data 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.
@TEXTNOTE nvarchar(max) IN Notes
@NOTETYPE nvarchar(100) IN Note type
@SALESORDERITEMID uniqueidentifier IN Input parameter indicating the context ID for the record being added.

Definition

Copy


                    create procedure dbo.USP_DATAFORMTEMPLATE_ADD_SALESORDERITEMDONATION_ONLINECOMMENT
                    (
                        @ID uniqueidentifier = null output,
                        @CHANGEAGENTID uniqueidentifier = null,    
                        @TEXTNOTE nvarchar(max) = '',
                        @NOTETYPE nvarchar(100),
                        @SALESORDERITEMID uniqueidentifier
                    )
                    as
                        set nocount on;

                        declare @CURRENTDATE datetime;
                        declare @DEFAULTNOTETYPEID uniqueidentifier = '48BB21DA-FB99-407B-9960-0A8C35D5EDD2';
                        declare @SALESORDERID uniqueidentifier;

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

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

                            select @SALESORDERID = [SALESORDERID] from dbo.[SALESORDERITEM] where [ID] = @SALESORDERITEMID;

                            set @CURRENTDATE = getdate();

                            declare @NOTETYPECODEID uniqueidentifier = null
                            if exists(select 1 from dbo.[SALESORDERNOTETYPECODE] where [ID] = @DEFAULTNOTETYPEID)
                                set @NOTETYPECODEID = @DEFAULTNOTETYPEID
                            else
                                select @NOTETYPECODEID = [ID] from dbo.[SALESORDERNOTETYPECODE] where [DESCRIPTION] = @NOTETYPE

                            if @NOTETYPECODEID is null
                            begin
                                set @NOTETYPECODEID = @DEFAULTNOTETYPEID;
                                exec dbo.USP_SALESORDERNOTETYPECODE_CREATEENTRY @NOTETYPE, 1, null, @CHANGEAGENTID, @NOTETYPECODEID;
                            end

                            declare @TITLE nvarchar(50) = ''
                            if len(@TEXTNOTE) > 50
                                set @TITLE = left(@TEXTNOTE,47) + '...';
                            else
                                set @TITLE = @TEXTNOTE;

                            insert into dbo.[SALESORDERNOTE] (
                                [ID],
                                [DATEENTERED],
                                [TITLE],
                                [TEXTNOTE],
                                [SALESORDERNOTETYPECODEID],
                                [SALESORDERID],
                                [SALESORDERITEMID],
                                [ADDEDBYID],
                                [CHANGEDBYID],
                                [DATEADDED],
                                [DATECHANGED]
                            ) values (
                                @ID,
                                @CURRENTDATE,
                                @TITLE,
                                @TEXTNOTE
                                @NOTETYPECODEID,
                                @SALESORDERID,
                                @SALESORDERITEMID,
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CURRENTDATE,
                                @CURRENTDATE
                            );

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

                        return 0;