USP_DATAFORMTEMPLATE_ADD_ORDERCREATECHECK
The save procedure used by the add dataform template "Order Create Check Add Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@ORDERID | uniqueidentifier | IN | OrderID |
@SALESMETHODTYPECODE | tinyint | IN | Sales Method |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_ORDERCREATECHECK
(
@ID uniqueidentifier = null output,
@ORDERID uniqueidentifier = null,
@SALESMETHODTYPECODE tinyint = null,
@CURRENTAPPUSERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null
)
as
set nocount on;
if @CHANGEAGENTID is null --Try matching on the appuser's username
select top(1) @CHANGEAGENTID = CHANGEAGENT.ID
from dbo.CHANGEAGENT inner join dbo.APPUSER on CHANGEAGENT.USERNAME = APPUSER.USERNAME
where APPUSER.ID = @CURRENTAPPUSERID
order by case when CHANGEAGENT.APPLICATIONNAME like 'Blackbaud App Server%' then 0 else 1 end,
case when nullif(CHANGEAGENT.PROCESSNAME,'') is null then 0 else 1 end,
case when CHANGEAGENT.APPLICATIONNAME like '%(WebShell)' then 0 when CHANGEAGENT.APPLICATIONNAME like '%(BlackbaudApplication)' then 1 else 2 end
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
declare @EXISTINGSALESORDERID uniqueidentifier;
select top(1)
@EXISTINGSALESORDERID = ID
from dbo.SALESORDER
where
STATUSCODE = 0 and
APPUSERID = @CURRENTAPPUSERID and
SALESMETHODTYPECODE = @SALESMETHODTYPECODE
declare @DELIVERYMETHODID uniqueidentifier;
select @DELIVERYMETHODID = DELIVERYMETHOD.ID
from dbo.SALESMETHODDELIVERYMETHOD
inner join dbo.SALESMETHOD on SALESMETHOD.ID = SALESMETHODDELIVERYMETHOD.SALESMETHODID
inner join dbo.DELIVERYMETHOD on DELIVERYMETHOD.ID = SALESMETHODDELIVERYMETHOD.DELIVERYMETHODID
where
SALESMETHOD.TYPECODE = @SALESMETHODTYPECODE and
DELIVERYMETHOD.ISACTIVE = 1 and
SALESMETHODDELIVERYMETHOD.ISDEFAULT = 1
if @EXISTINGSALESORDERID is null begin
if @ID is null begin
set @ID = newid()
end
insert into dbo.SALESORDER
(
ID,
SALESMETHODTYPECODE,
DELIVERYMETHODID,
SAMEASPATRON,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED,
APPUSERID
)
values
(
@ID,
@SALESMETHODTYPECODE,
@DELIVERYMETHODID,
1,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
@CURRENTAPPUSERID
)
end
else begin
-- Hacky because the passed in ID is ignored
set @ID = @EXISTINGSALESORDERID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0