USP_DATAFORMTEMPLATE_EDIT_SALESORDERITEMDONATION_2

The save procedure used by the edit dataform template "Order Donation Edit Data 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.
@AMOUNT money IN Amount
@DESIGNATIONID uniqueidentifier IN Designation
@DESCRIPTION nvarchar(255) IN Description
@DATA xml IN Data
@ECARDSDATA xml IN ECards Data
@OPTIONS xml IN Options
@CALLBACKURL nvarchar(255) IN Callback URL
@SYSTEMTYPENAME nvarchar(255) IN System Type Name
@ASSEMBLYNAME nvarchar(255) IN Assembly Name
@ATTRIBUTES xml IN Attributes
@CATEGORYNAME nvarchar(255) IN Category Name
@ACKNOWLEDGEMENT nvarchar(max) IN Acknowledgement
@GROUPID uniqueidentifier IN Group Id
@ISZEROAMOUNTTRANSACTION bit IN Is Zero Amount Transaction

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_SALESORDERITEMDONATION_2 
                (
                    @ID uniqueidentifier,
                    @CHANGEAGENTID uniqueidentifier = null,
                    @AMOUNT money,
                    @DESIGNATIONID uniqueidentifier,
                    @DESCRIPTION nvarchar(255),
                    @DATA xml,
                    @ECARDSDATA xml,
                    @OPTIONS xml,
                    @CALLBACKURL nvarchar(255),
                    @SYSTEMTYPENAME nvarchar(255),
                    @ASSEMBLYNAME nvarchar(255),
                    @ATTRIBUTES xml,
                    @CATEGORYNAME nvarchar(255),
                    @ACKNOWLEDGEMENT nvarchar(max),
          @GROUPID uniqueidentifier,
          @ISZEROAMOUNTTRANSACTION bit
                )
                as

                    set nocount on

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

                    declare @CURRENTDATE datetime
                    set @CURRENTDATE = getdate()

                    begin try
                        declare @SALESORDERID uniqueidentifier
                        select @SALESORDERID = [SALESORDERID]
                        from dbo.[SALESORDERITEM]
                        where [ID] = @ID

                        exec dbo.USP_SALESORDER_ISCOMPLETE_RAISERROR @SALESORDERID, @EXCLUDEGROUPSALES = 1;

                        -- handle updating the data

                        declare @DESIGNATIONNAME nvarchar(512) = dbo.UFN_DESIGNATION_GETNAME(@DESIGNATIONID)
                        if len(@DESCRIPTION) > 0
                            set @DESIGNATIONNAME = @DESCRIPTION

                        if @DESIGNATIONNAME is not null
                            update dbo.SALESORDERITEM set
                                DESCRIPTION = left(@DESIGNATIONNAME, 255),
                                PRICE = @AMOUNT,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE,
                                DATA = @DATA,
                                OPTIONS = @OPTIONS,
                                CALLBACKURL = @CALLBACKURL,
                                SYSTEMTYPENAME = @SYSTEMTYPENAME,
                                ASSEMBLYNAME = @ASSEMBLYNAME,
                                ATTRIBUTES = @ATTRIBUTES,
                                CATEGORYNAME = @CATEGORYNAME,
                                ACKNOWLEDGEMENT = @ACKNOWLEDGEMENT
                            where ID = @ID

                        update dbo.SALESORDERITEMDONATION set
                            DESIGNATIONID = @DESIGNATIONID,
                            DESIGNATIONNAME = coalesce(@DESIGNATIONNAME,''),
                            AMOUNT = @AMOUNT,
                            CHANGEDBYID = @CHANGEAGENTID,
                            DATECHANGED = @CURRENTDATE,
                            ECARDSDATA = @ECARDSDATA,
              ISZEROAMOUNTTRANSACTION = @ISZEROAMOUNTTRANSACTION
                        where ID = @ID

            if @GROUPID is not null
              update dbo.SALESORDERITEMGROUP set
                GROUPID = @GROUPID,
                CHANGEDBYID = @CHANGEAGENTID,
                              DATECHANGED = @CURRENTDATE
              where ID = @ID
                    end try
                    begin catch
                        exec dbo.USP_RAISE_ERROR
                        return 1
                    end catch

                return 0;