USP_DATAFORMTEMPLATE_EDIT_R68ONLINESUBMISSIONSETTINGSBYREFERENCENUMBER
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@ORGANISATION | nvarchar(160) | IN | |
@CCRNID | uniqueidentifier | IN | |
@REGULATORCODE | tinyint | IN | |
@OTHERREGULATORNAME | nvarchar(160) | IN | |
@REGULATORNUMBER | nvarchar(20) | IN | |
@SENDERINFO | xml | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_R68ONLINESUBMISSIONSETTINGSBYREFERENCENUMBER
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@ORGANISATION nvarchar(160),
@CCRNID uniqueidentifier,
@REGULATORCODE tinyint,
@OTHERREGULATORNAME nvarchar(160),
@REGULATORNUMBER nvarchar(20),
@SENDERINFO xml
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
update dbo.R68ONLINESUBMISSIONSETTINGS
set ORGANISATION = @ORGANISATION,
CCRNID = @CCRNID,
REGULATORCODE = @REGULATORCODE,
OTHERREGULATORNAME = @OTHERREGULATORNAME,
REGULATORNUMBER = @REGULATORNUMBER,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID
declare @PASSWORDENCRYPTED nvarchar(max);
declare @HASH nvarchar(200);
declare @EXISTINGPASSWORDENCRYPTED nvarchar(max);
declare @EXISTINGHASH nvarchar(200);
declare @SENDERINFOID uniqueidentifier;
declare @USERID nvarchar(100);
declare @PASSWORD nvarchar(200);
declare @PASSWORDHASH nvarchar(200);
declare @TYPECODE tinyint;
declare @ISTRUSTEE bit;
declare @TRUSTEENAME nvarchar(160);
declare @OFFICIALTITLE nvarchar(4);
declare @OFFICIALFORENAME nvarchar(35);
declare @OFFICIALSURNAME nvarchar(35);
declare @PHONENUMBER nvarchar(35);
declare @ISOVERSEAS bit;
declare @POSTCODE nvarchar(8);
declare @RECORDEXISTS bit;
delete from dbo.R68ONLINESUBMISSIONSETTINGSSENDERINFO
where R68ONLINESUBMISSIONSETTINGSID = @ID and
ID not in (
select T.c.value('(ID)[1]','uniqueidentifier') as ID
from @SENDERINFO.nodes('SENDERINFO/ITEM') T(c)
)
declare SENDERINFO_CURSOR cursor local fast_forward for
select T.c.value('(ID)[1]','uniqueidentifier') as ID,
T.c.value('(USERID)[1]','nvarchar(100)') as USERID,
T.c.value('(PASSWORD)[1]','nvarchar(200)') as PASSWORD,
T.c.value('(PASSWORDHASH)[1]','nvarchar(200)') as PASSWORDHASH,
T.c.value('(TYPE)[1]','tinyint') as TYPECODE,
T.c.value('(ISTRUSTEE)[1]','bit') as ISTRUSTEE,
T.c.value('(TRUSTEENAME)[1]','nvarchar(160)') as TRUSTEENAME,
T.c.value('(OFFICIALTITLE)[1]','nvarchar(4)') as OFFICIALTITLE,
T.c.value('(OFFICIALFORENAME)[1]','nvarchar(35)') as OFFICIALFORENAME,
T.c.value('(OFFICIALSURNAME)[1]','nvarchar(35)') as OFFICIALSURNAME,
T.c.value('(PHONENUMBER)[1]','nvarchar(35)') as PHONENUMBER,
T.c.value('(ISOVERSEAS)[1]','bit') as ISOVERSEAS,
T.c.value('(POSTCODE)[1]','nvarchar(8)') as POSTCODE
from @SENDERINFO.nodes('SENDERINFO/ITEM') T(c)
open SENDERINFO_CURSOR;
--open the symmetric key for encryption
exec dbo.USP_GET_KEY_ACCESS;
begin try
fetch next from SENDERINFO_CURSOR into @SENDERINFOID, @USERID, @PASSWORD, @PASSWORDHASH, @TYPECODE, @ISTRUSTEE, @TRUSTEENAME, @OFFICIALTITLE, @OFFICIALFORENAME, @OFFICIALSURNAME, @PHONENUMBER, @ISOVERSEAS, @POSTCODE;
while @@FETCH_STATUS = 0
begin
set @RECORDEXISTS = 0
set @EXISTINGPASSWORDENCRYPTED = ''
set @PASSWORDENCRYPTED = ''
set @HASH = ''
set @EXISTINGHASH = ''
if exists(select 1 from dbo.R68ONLINESUBMISSIONSETTINGSSENDERINFO where ID = @SENDERINFOID)
begin
set @RECORDEXISTS = 1;
select @EXISTINGPASSWORDENCRYPTED = PASSWORD,
@EXISTINGHASH = PASSWORDHASH
from dbo.R68ONLINESUBMISSIONSETTINGSSENDERINFO
where ID = @SENDERINFOID
end
set @PASSWORDENCRYPTED = EncryptByKey(Key_GUID('sym_BBInfinity'), @PASSWORD);
set @HASH = @PASSWORDHASH
if @RECORDEXISTS = 1
begin
update dbo.R68ONLINESUBMISSIONSETTINGSSENDERINFO
set USERID = @USERID,
PASSWORD = @PASSWORDENCRYPTED,
PASSWORDHASH = @HASH,
TYPECODE = @TYPECODE,
ISTRUSTEE = @ISTRUSTEE,
TRUSTEENAME = @TRUSTEENAME,
OFFICIALTITLE = @OFFICIALTITLE,
OFFICIALFORENAME = @OFFICIALFORENAME,
OFFICIALSURNAME = @OFFICIALSURNAME,
PHONENUMBER = @PHONENUMBER,
ISOVERSEAS = @ISOVERSEAS,
POSTCODE = @POSTCODE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @SENDERINFOID
end
else
begin
insert into dbo.R68ONLINESUBMISSIONSETTINGSSENDERINFO
(ID, R68ONLINESUBMISSIONSETTINGSID, USERID, [PASSWORD], PASSWORDHASH, TYPECODE, ISTRUSTEE, TRUSTEENAME, OFFICIALTITLE, OFFICIALFORENAME, OFFICIALSURNAME, PHONENUMBER, ISOVERSEAS, POSTCODE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(@SENDERINFOID, @ID, @USERID, @PASSWORDENCRYPTED, @HASH, @TYPECODE, @ISTRUSTEE, @TRUSTEENAME, @OFFICIALTITLE, @OFFICIALFORENAME, @OFFICIALSURNAME, @PHONENUMBER, @ISOVERSEAS, @POSTCODE, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
end
fetch next from SENDERINFO_CURSOR into @SENDERINFOID, @USERID, @PASSWORD, @PASSWORDHASH, @TYPECODE, @ISTRUSTEE, @TRUSTEENAME, @OFFICIALTITLE, @OFFICIALFORENAME, @OFFICIALSURNAME, @PHONENUMBER, @ISOVERSEAS, @POSTCODE;
end
close symmetric key sym_BBInfinity;
close SENDERINFO_CURSOR;
deallocate SENDERINFO_CURSOR;
end try
begin catch
close symmetric key sym_BBInfinity;
close SENDERINFO_CURSOR;
deallocate SENDERINFO_CURSOR;
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;