USP_DATAFORMTEMPLATE_EDIT_COMBINATIONCONSTITUENCY
The save procedure used by the edit dataform template "Combination Constituency Edit Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@COMBINATIONCONSTITUENCYCODES | xml | IN | Restrict combination to these constituencies |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_COMBINATIONCONSTITUENCY
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@COMBINATIONCONSTITUENCYCODES xml
)
as
set nocount on;
if @CHANGEAGENTID is null begin
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
end
declare @CURRENTDATE datetime = getdate();
declare @COMBINATIONCONSTITUENCYCODESTABLE table (
ID uniqueidentifier,
CONSTITUENCYCODEID uniqueidentifier,
SEQUENCE int
);
insert into @COMBINATIONCONSTITUENCYCODESTABLE
select
T.c.value('(ID)[1]','uniqueidentifier') as 'ID',
T.c.value('(CONSTITUENCYCODEID)[1]','uniqueidentifier') as 'CONSTITUENCYCODEID',
T.c.value('(SEQUENCE)[1]','int') as 'SEQUENCE'
from @COMBINATIONCONSTITUENCYCODES.nodes('/COMBINATIONCONSTITUENCYCODES/ITEM') T(c);
if @@rowcount > 0 and dbo.UFN_COMBINATION_HASONLINEAVAILABILITY(@ID) = 1 begin
raiserror('BBERR_COMBINATIONCONSTITUENCY_NOTALLOWEDFORONLINE', 13, 1);
end
declare @XML xml = (
select
USERDEFINEDCONSTITUENCYDEFINITION.ID as CONSTITUENCYCODEID,
SYSTEMCONSTITUENCYDEFINITION.ID as CONSTITUENCYSYSTEMNAMEID,
NEWTABLE.ID,
NEWTABLE.SEQUENCE
from
@COMBINATIONCONSTITUENCYCODESTABLE as NEWTABLE
left join dbo.CONSTITUENCYDEFINITION as SYSTEMCONSTITUENCYDEFINITION
on SYSTEMCONSTITUENCYDEFINITION.ID = NEWTABLE.CONSTITUENCYCODEID
and SYSTEMCONSTITUENCYDEFINITION.ISSYSTEM = 1
left join dbo.CONSTITUENCYDEFINITION as USERDEFINEDCONSTITUENCYDEFINITION
on USERDEFINEDCONSTITUENCYDEFINITION.ID = NEWTABLE.CONSTITUENCYCODEID
and USERDEFINEDCONSTITUENCYDEFINITION.ISSYSTEM = 0
where
NEWTABLE.CONSTITUENCYCODEID is not null
and (
SYSTEMCONSTITUENCYDEFINITION.ISACTIVE = 1
or USERDEFINEDCONSTITUENCYDEFINITION.ISACTIVE = 1
)
for xml raw('ITEM'),type,elements,root('COMBINATIONCONSTITUENCYCODES'),BINARY BASE64
);
begin try
exec dbo.USP_COMBINATION_GETCONSTITUENCYCODES_UPDATEFROMXML @ID, @XML, @CHANGEAGENTID, @CURRENTDATE;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;