USP_ORDERPATRON_DELETE

Executes the "Order Patron Delete Record Operation" record operation.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN Input parameter indicating the ID of the record being updated.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the update.

Definition

Copy


                CREATE procedure dbo.USP_ORDERPATRON_DELETE
                (
                    @ID uniqueidentifier,
                    @CHANGEAGENTID uniqueidentifier
                )
                as begin

                    declare @HASMEMBERSHIPS bit = 0
                    declare @HASEVENTREGISTRATION bit = 0
                    declare @HASPREREGISTERED bit = 0

                    declare @CURRENTDATE datetime = getdate();

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

                    begin try
                        exec dbo.USP_SALESORDER_ISCOMPLETE_RAISERROR @SALESORDERID = @ID, @EXCLUDEGROUPSALES = 1;

                        if exists(
                            select 1
                            from dbo.SALESORDERITEM
                            where SALESORDERID = @ID
                            and TYPECODE in (1,6)
                        ) 
                        or exists(
                            select 1
                            from dbo.SALESORDERITEMTICKET
                            inner join dbo.SALESORDERITEM on SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
                            inner join dbo.PROGRAM on SALESORDERITEMTICKET.PROGRAMID = PROGRAM.ID
                            where SALESORDERID = @ID
                            and PROGRAM.ISPREREGISTERED = 1
                        )
                        begin
                            raiserror('BBERR_PATRONASSOCIATEDWITHITEMS', 13, 1);
                            return 1;
                        end

                        update dbo.SALESORDER set
                            CONSTITUENTID = null,
                            RECIPIENTID = null,
                            ADDRESSID = null,
                            PHONEID = null,
                            EMAILADDRESSID = null,
                            CHANGEDBYID = @CHANGEAGENTID,
                            DATECHANGED = @CURRENTDATE
                        where ID = @ID;

                        exec dbo.USP_SALESORDER_UPDATEPAYMENTCONSTITUENT @ID, @CHANGEAGENTID;

                        if exists (select top 1 1 from dbo.SALESORDERITEM where SALESORDERID = @ID)
                        begin                        
                            exec dbo.USP_COMBINATION_REMOVEINELIGIBLECOMBINATIONS @ID, @CHANGEAGENTID;
                            exec dbo.USP_SALESORDER_APPLYITEMDISCOUNTS @ID, @CHANGEAGENTID;
                            exec dbo.USP_SALESORDER_APPLYORDERDISCOUNTS @ID, @CHANGEAGENTID;
                            exec dbo.USP_SALESORDER_CALCULATETAXES @ID, @CHANGEAGENTID;
                        end
                    end try

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

                    return 0;

                end