USP_DATAFORMTEMPLATE_EDIT_SALESORDERITEM
The save procedure used by the edit dataform template "Sales Order Item Edit Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@QUANTITY | smallint | IN | Quantity |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_SALESORDERITEM (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@QUANTITY smallint
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
if @QUANTITY <= 0
raiserror('BBERR_QUANTITY_GREATERTHANZERO', 13, 1);
declare @ORDERID uniqueidentifier;
declare @EVENTID uniqueidentifier;
select
@ORDERID = SALESORDERITEM.SALESORDERID,
@EVENTID = SALESORDERITEMTICKET.EVENTID
from dbo.SALESORDERITEM with (nolock)
inner join dbo.SALESORDERITEMTICKET with (nolock) on SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
where SALESORDERITEM.ID = @ID;
if @EVENTID is not null
begin
-- Check availability
if dbo.UFN_SALESORDERTICKET_VALIDQUANTITY(@EVENTID, @ORDERID, @QUANTITY) = 0
begin
raiserror('ERR_TICKETINSERT_UNAVAILABLE', 13, 1)
end
end
exec dbo.USP_SALESORDER_ISCOMPLETE_RAISERROR @ORDERID, @EXCLUDEGROUPSALES = 1;
update dbo.SALESORDERITEM set
QUANTITY = @QUANTITY,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
exec dbo.USP_SALESORDER_CALCULATEFEES @ORDERID, @CHANGEAGENTID;
exec dbo.USP_SALESORDER_APPLYITEMDISCOUNTS @ORDERID, @CHANGEAGENTID;
exec dbo.USP_SALESORDER_APPLYORDERDISCOUNTS @ORDERID, @CHANGEAGENTID;
exec dbo.USP_SALESORDER_CALCULATETAXES @ORDERID, @CHANGEAGENTID;
end try
begin catch
if ERROR_NUMBER() = 8115
begin
raiserror('ERR_TICKETINSERT_MONEYOVERFLOW', 13, 1);
end
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;