USP_RESERVEDORDERRECALCULATE_UPDATE
Executes the "Reserved Order Recalculate" record operation.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | Input parameter indicating the ID of the record being updated. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the update. |
Definition
Copy
CREATE procedure dbo.USP_RESERVEDORDERRECALCULATE_UPDATE
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as begin
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
exec dbo.USP_SALESORDER_CALCULATEFEES @ID, @CHANGEAGENTID;
exec dbo.USP_SALESORDER_APPLYITEMDISCOUNTS @ID, @CHANGEAGENTID;
exec dbo.USP_SALESORDER_APPLYORDERDISCOUNTS @ID, @CHANGEAGENTID;
exec dbo.USP_SALESORDER_CALCULATETAXES @ID, @CHANGEAGENTID;
-- Check event registration
if exists ( select SALESORDERITEM.ID
from dbo.[SALESORDERITEM]
inner join dbo.[SALESORDER] on [SALESORDER].[ID] = [SALESORDERITEM].[SALESORDERID]
inner join dbo.[SALESORDERITEMEVENTREGISTRATION] on [SALESORDERITEM].[ID] = [SALESORDERITEMEVENTREGISTRATION].[ID]
inner join dbo.[REGISTRANT] on [SALESORDERITEMEVENTREGISTRATION].[REGISTRANTID] = [REGISTRANT].[ID]
inner join dbo.[EVENT] on [REGISTRANT].[EVENTID] = [EVENT].[ID]
where
[SALESORDER].[ID] = @ID and
dbo.UFN_EVENTREGISTRANT_GETBALANCE(REGISTRANT.ID) < SALESORDERITEM.TOTAL)
update SALESORDERITEM set PRICE = dbo.UFN_EVENTREGISTRANT_GETBALANCE(REGISTRANT.ID)
from dbo.[SALESORDERITEM]
inner join dbo.[SALESORDER] on [SALESORDER].[ID] = [SALESORDERITEM].[SALESORDERID]
inner join dbo.[SALESORDERITEMEVENTREGISTRATION] on [SALESORDERITEM].[ID] = [SALESORDERITEMEVENTREGISTRATION].[ID]
inner join dbo.[REGISTRANT] on [SALESORDERITEMEVENTREGISTRATION].[REGISTRANTID] = [REGISTRANT].[ID]
inner join dbo.[EVENT] on [REGISTRANT].[EVENTID] = [EVENT].[ID]
where
[SALESORDER].[ID] = @ID and
dbo.UFN_EVENTREGISTRANT_GETBALANCE(REGISTRANT.ID) < SALESORDERITEM.TOTAL
-- Update LASTRECALCULATIONDATE field on SALESORDER table
update SALESORDER set LASTRECALCULATIONDATE = getdate()
where ID = @ID
return 0;
end