USP_COMBINATION_REMOVEINELIGIBLECOMBINATIONS
Removes ineligible combinations from an order.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SALESORDERID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_COMBINATION_REMOVEINELIGIBLECOMBINATIONS
(
@SALESORDERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as
begin
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @contextCache varbinary(128);
-- cache current context information
set @contextCache = CONTEXT_INFO();
-- set CONTEXT_INFO to @CHANGEAGENTID
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
declare @CONSTITUENTID uniqueidentifier = null
select @CONSTITUENTID = [CONSTITUENTID]
from dbo.[SALESORDER]
where [ID] = @SALESORDERID
-- Delete sales order item related fees
delete [SALESORDERITEM]
from dbo.SALESORDERITEM
inner join dbo.SALESORDERITEMFEE on SALESORDERITEM.ID = SALESORDERITEMFEE.ID
inner join dbo.SALESORDERITEMTICKET on SALESORDERITEMFEE.SALESORDERITEMID = SALESORDERITEMTICKET.ID
inner join dbo.SALESORDERITEMTICKETCOMBINATION on SALESORDERITEMTICKET.ID = SALESORDERITEMTICKETCOMBINATION.ID
inner join dbo.COMBINATION on SALESORDERITEMTICKETCOMBINATION.COMBINATIONID = COMBINATION.ID
where SALESORDERITEM.SALESORDERID = @SALESORDERID and dbo.UFN_COMBINATION_ELIGIBLEFORORDER(COMBINATION.ID, @CONSTITUENTID) = 0
-- Delete sales order items in combination no longer eligible
delete dbo.SALESORDERITEM
from dbo.SALESORDERITEM
inner join dbo.SALESORDERITEMTICKET on SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
inner join dbo.SALESORDERITEMTICKETCOMBINATION on SALESORDERITEMTICKET.ID = SALESORDERITEMTICKETCOMBINATION.ID
inner join dbo.COMBINATION on SALESORDERITEMTICKETCOMBINATION.COMBINATIONID = COMBINATION.ID
where SALESORDERITEM.SALESORDERID = @SALESORDERID and dbo.UFN_COMBINATION_ELIGIBLEFORORDER(COMBINATION.ID, @CONSTITUENTID) = 0
-- reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
end