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