USP_DATAFORMTEMPLATE_ADD_SALESORDERITEMMERCHANDISEITEMS
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@SALESORDERID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@ITEMS | xml | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_SALESORDERITEMMERCHANDISEITEMS
(
@ID uniqueidentifier = null output,
@SALESORDERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@ITEMS xml = ''
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
exec dbo.USP_SALESORDER_ISCOMPLETE_RAISERROR @SALESORDERID, @EXCLUDEGROUPSALES = 1;
declare @MERCHANDISEPRODUCTINSTANCEID uniqueidentifier
declare @QUANTITY decimal (10, 2)
declare MERCHANDISE_ITEMS cursor local fast_forward for
select
T.items.value('(ID)[1]','uniqueidentifier') as 'ID',
T.items.value('(QUANTITY)[1]','integer') as 'QUANTITY'
from
@ITEMS.nodes('/ITEMS/ITEM') T(items)
open MERCHANDISE_ITEMS
fetch next from MERCHANDISE_ITEMS into @MERCHANDISEPRODUCTINSTANCEID, @QUANTITY
while @@fetch_status = 0
begin
set @ID = newid()
exec dbo.USP_SALESORDERITEMMERCHANDISE_ADD @ID, @SALESORDERID, @CHANGEAGENTID, @CURRENTDATE, @MERCHANDISEPRODUCTINSTANCEID, @QUANTITY
fetch next from MERCHANDISE_ITEMS into @MERCHANDISEPRODUCTINSTANCEID, @QUANTITY
end
close MERCHANDISE_ITEMS
deallocate MERCHANDISE_ITEMS
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0