USP_SALESORDERITEMMERCHANDISE_DELETE
Executes the "Sales Order Item Merchandise Delete" record operation.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | Input parameter indicating the ID of the record being deleted. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the delete. |
Definition
Copy
CREATE procedure dbo.USP_SALESORDERITEMMERCHANDISE_DELETE
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as begin
set nocount on;
declare @ORDERID uniqueidentifier
declare @QUANTITY integer
declare @MERCHANDISEPRODUCTINSTANCEID uniqueidentifier
select
@ORDERID = SOI.SALESORDERID,
@QUANTITY = SOI.QUANTITY,
@MERCHANDISEPRODUCTINSTANCEID = SOIM.MERCHANDISEPRODUCTINSTANCEID
from dbo.SALESORDERITEM SOI
inner join dbo.SALESORDERITEMMERCHANDISE SOIM on SOI.ID = SOIM.ID
where SOI.ID = @ID
exec dbo.USP_SALESORDER_ISCOMPLETE_RAISERROR @ORDERID, @EXCLUDEGROUPSALES = 1;
declare @CURRENTDATE datetime = getdate();
declare @e int;
declare @contextCache varbinary(128);
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.SALESORDERITEMORDERDISCOUNTDETAIL where SALESORDERITEMID = @ID
if not @contextCache is null
set CONTEXT_INFO @contextCache;
exec USP_SALESORDERITEM_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID
exec dbo.USP_SALESORDER_APPLYITEMDISCOUNTS @ORDERID, @CHANGEAGENTID;
exec dbo.USP_SALESORDER_APPLYORDERDISCOUNTS @ORDERID, @CHANGEAGENTID;
exec dbo.USP_SALESORDER_CALCULATETAXES @ORDERID, @CHANGEAGENTID;
update dbo.MERCHANDISEPRODUCTINSTANCE set
ONHANDQUANTITY += @QUANTITY,
DATECHANGED = @CURRENTDATE,
CHANGEDBYID = @CHANGEAGENTID
where
ID = @MERCHANDISEPRODUCTINSTANCEID;
return 0;
end