USP_MERCHANTACCOUNT_SAVE
Adds or updates a merchant account.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@MERCHANTACCOUNTID | uniqueidentifier | IN | |
@SECONDSTOPROCESSRECORD | int | IN | |
@NUMBERTRANSACTIONSPERTHREAD | int | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@SITES | xml | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_MERCHANTACCOUNT_SAVE
(
@MERCHANTACCOUNTID uniqueidentifier,
@SECONDSTOPROCESSRECORD int,
@NUMBERTRANSACTIONSPERTHREAD int,
@CHANGEAGENTID uniqueidentifier,
@SITES xml = null,
@CURRENTAPPUSERID uniqueidentifier = null
)
as
set nocount on
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
declare @MERCHANTACCOUNTEXISTS bit = 0
declare @MERCHANTACCOUNTSITES table
(
SITEID uniqueidentifier
)
insert into @MERCHANTACCOUNTSITES(SITEID)
select SITES.SITEID from dbo.UFN_MERCHANTACCOUNT_GETSITES_FROMITEMLISTXML(@SITES) as SITES
declare @SITECOUNT as integer = 0;
select @SITECOUNT = COUNT(MERCHANTACCOUNTSITES.SITEID) from @MERCHANTACCOUNTSITES MERCHANTACCOUNTSITES
if @SITECOUNT = 0
insert into @MERCHANTACCOUNTSITES(SITEID) values(null)
begin try
if (select count(MERCHANTACCOUNTSITES.SITEID) from @MERCHANTACCOUNTSITES as MERCHANTACCOUNTSITES) = 0
begin
if dbo.UFN_SITEREQUIREDFORUSER(@CURRENTAPPUSERID) = 1
begin
raiserror('BBERR_MERCHANTACCOUNTSITE_SITEREQUIRED',13,1);
return 1;
end
end
if @SITES is not null
begin
if not exists (select 1
from @MERCHANTACCOUNTSITES as MERCHANTACCOUNTSITES
where dbo.UFN_SITEALLOWEDFORUSER(@CURRENTAPPUSERID, MERCHANTACCOUNTSITES.SITEID) = 1)
begin
raiserror('BBERR_SITE_NOACCESS', 13, 1);
return 1;
end
end
update dbo.MERCHANTACCOUNT set
SECONDSTOPROCESSRECORD = @SECONDSTOPROCESSRECORD,
NUMBERTRANSACTIONSPERTHREAD = @NUMBERTRANSACTIONSPERTHREAD,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @MERCHANTACCOUNTID
if @@ROWCOUNT > 0
set @MERCHANTACCOUNTEXISTS = 1
if @MERCHANTACCOUNTEXISTS = 1
begin
exec dbo.USP_MERCHANTACCOUNT_GETSITES_UPDATEFROMXML @MERCHANTACCOUNTID, @SITES, @CHANGEAGENTID, @CURRENTDATE
end
if @MERCHANTACCOUNTEXISTS = 0
begin
insert into dbo.MERCHANTACCOUNT (ID, SECONDSTOPROCESSRECORD, NUMBERTRANSACTIONSPERTHREAD, DATEADDED, DATECHANGED, ADDEDBYID, CHANGEDBYID)
values (@MERCHANTACCOUNTID, @SECONDSTOPROCESSRECORD, @NUMBERTRANSACTIONSPERTHREAD, @CURRENTDATE, @CURRENTDATE, @CHANGEAGENTID, @CHANGEAGENTID)
exec dbo.USP_MERCHANTACCOUNT_GETSITES_ADDFROMXML @MERCHANTACCOUNTID, @SITES, @CHANGEAGENTID, @CURRENTDATE
end
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0