USP_SALESORDER_ADDPATRON
Adds a patron to a sales order and updates the order accordingly.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SALESORDERID | uniqueidentifier | IN | |
@CONSTITUENTID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTDATE | datetime | IN |
Definition
Copy
CREATE procedure dbo.USP_SALESORDER_ADDPATRON
(
@SALESORDERID uniqueidentifier,
@CONSTITUENTID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@CURRENTDATE datetime = null
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @CURRENTDATE is null
set @CURRENTDATE = getdate();
declare @RECIPIENTID uniqueidentifier;
declare @SAMEASPATRON bit;
select
@RECIPIENTID = RECIPIENTID,
@SAMEASPATRON = SAMEASPATRON
from dbo.SALESORDER
where ID = @SALESORDERID;
begin try
exec dbo.USP_SALESORDER_ISCOMPLETE_RAISERROR @SALESORDERID, @EXCLUDEGROUPSALES = 1;
if @SAMEASPATRON = 1
begin
update dbo.SALESORDER set
CONSTITUENTID = @CONSTITUENTID,
RECIPIENTID = @CONSTITUENTID,
ADDRESSID = (select top(1) ID from dbo.ADDRESS where CONSTITUENTID = @CONSTITUENTID and ISPRIMARY = 1 and DONOTMAIL = 0),
PHONEID = (select top(1) ID from dbo.PHONE where PHONE.CONSTITUENTID = @CONSTITUENTID and PHONE.ISPRIMARY = 1 and DONOTCALL = 0),
EMAILADDRESSID = (select top(1) ID from dbo.EMAILADDRESS where CONSTITUENTID = @CONSTITUENTID and ISPRIMARY = 1 and DONOTEMAIL = 0),
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @SALESORDERID;
end
else
begin
update dbo.SALESORDER set
CONSTITUENTID = @CONSTITUENTID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @SALESORDERID;
end
exec dbo.USP_SALESORDER_UPDATEPAYMENTCONSTITUENT @SALESORDERID, @CHANGEAGENTID;
if exists (select top 1 1 from dbo.SALESORDERITEM where SALESORDERID = @SALESORDERID)
begin
if not exists(select 1 from dbo.CONSTITUENT where ID = @CONSTITUENTID and ISGROUP = 1)
exec dbo.USP_SALESORDER_UPDATEPREREGISTEREDEVENTHOST @SALESORDERID, @CHANGEAGENTID;
exec dbo.USP_COMBINATION_REMOVEINELIGIBLECOMBINATIONS @SALESORDERID, @CHANGEAGENTID;
exec dbo.USP_SALESORDER_APPLYITEMDISCOUNTS @SALESORDERID, @CHANGEAGENTID;
exec dbo.USP_SALESORDER_APPLYORDERDISCOUNTS @SALESORDERID, @CHANGEAGENTID;
exec dbo.USP_SALESORDER_CALCULATETAXES @SALESORDERID, @CHANGEAGENTID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;