USP_DATAFORMTEMPLATE_EDIT_SALESORDERITEM_OVERRIDE
The save procedure used by the edit dataform template "Sales Order Item Override 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. |
@PRICE | money | IN | Cost |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_SALESORDERITEM_OVERRIDE (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@PRICE money
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
if @PRICE < 0 begin
raiserror('BBERR_SALESORDERITEMOVERRIDE_NEGATIVEPRICE', 13, 1);
end
declare @SALESORDERID uniqueidentifier;
declare @SALESORDERSTATUS int;
select
@SALESORDERID = SALESORDERITEM.SALESORDERID,
@SALESORDERSTATUS = SALESORDER.STATUSCODE
from dbo.SALESORDER
inner join dbo.SALESORDERITEM on SALESORDERITEM.SALESORDERID = SALESORDER.ID
where SALESORDERITEM.ID = @ID;
if @SALESORDERSTATUS = 1
raiserror('BBERR_SALESORDER_COMPLETE', 13, 1);
if @SALESORDERSTATUS = 5
raiserror('BBERR_SALESORDER_CANCELLED', 13, 1);
-- handle updating the data
update dbo.SALESORDERITEM set
FLATRATEPRICE = @PRICE,
PRICINGSTRUCTURECODE = 2, -- Override Total
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID
-- recalculate taxes
exec dbo.USP_SALESORDER_CALCULATETAXES @SALESORDERID, @CHANGEAGENTID;
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;