USP_DATAFORMTEMPLATE_ADD_ORDERDISCOUNTMANUAL
The save procedure used by the add dataform template "Order Discount Manual Add Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@SALESORDERID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@DISCOUNTID | uniqueidentifier | IN | Discount |
@NUMBEROFDISCOUNTSPERORDER | int | IN | Number of discounts per order |
@ISLIMITED | bit | IN | Is limited |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_ORDERDISCOUNTMANUAL
(
@ID uniqueidentifier = null output,
@SALESORDERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@DISCOUNTID uniqueidentifier = null,
@NUMBEROFDISCOUNTSPERORDER int = 0,
@ISLIMITED bit = 0
)
as
set nocount on;
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CURRENTDATE datetime = getdate();
begin try
if dbo.UFN_DISCOUNT_AVAILABLEFORORDER(@DISCOUNTID, @SALESORDERID) = 0
raiserror('BBERR_DISCOUNTID_INVALID', 13, 1);
insert into dbo.SALESORDERMANUALDISCOUNT
(ID, SALESORDERID, DISCOUNTID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(@ID, @SALESORDERID, @DISCOUNTID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
if @ISLIMITED = 1
begin
insert into dbo.[SALESORDERDISCOUNTLIMITOVERRIDE]
(ID, SALESORDERID, DISCOUNTID, NUMBEROFDISCOUNTSPERORDER, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(newid(), @SALESORDERID, @DISCOUNTID, @NUMBEROFDISCOUNTSPERORDER, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
end
if (select APPLIESTOCODE from dbo.DISCOUNT where ID = @DISCOUNTID) = 1 -- Item-level
begin
-- No need to do this for order-level discounts because they are applied later (and don't affect item-level calculations).
exec dbo.USP_SALESORDER_APPLYITEMDISCOUNTS @SALESORDERID, @CHANGEAGENTID;
end
exec dbo.USP_SALESORDER_APPLYORDERDISCOUNTS @SALESORDERID, @CHANGEAGENTID;
exec dbo.USP_SALESORDER_CALCULATETAXES @SALESORDERID, @CHANGEAGENTID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;