USP_ACCOUNTINGELEMENTSECURITYGROUP_ADDELEMENTS

Adds data elements from a selection and a collection to an accounting element security group.

Parameters

Parameter Parameter Type Mode Description
@GROUPID uniqueidentifier IN
@DATAELEMENTQUERYID uniqueidentifier IN
@SELECTEDELEMENTS xml IN
@CHANGEAGENTID uniqueidentifier IN
@CURRENTDATE datetime IN

Definition

Copy


      CREATE procedure dbo.USP_ACCOUNTINGELEMENTSECURITYGROUP_ADDELEMENTS
      (
        @GROUPID uniqueidentifier,
        @DATAELEMENTQUERYID uniqueidentifier,
        @SELECTEDELEMENTS xml,
        @CHANGEAGENTID uniqueidentifier,
        @CURRENTDATE datetime
      )
      as
      begin          
          create table #DATAELEMENTS (DATAELEMENTID uniqueidentifier)

          if @DATAELEMENTQUERYID is not null
          begin
             insert into #DATAELEMENTS
             select distinct ID
             from dbo.UFN_IDSETREADER_GETRESULTS_GUID(@DATAELEMENTQUERYID)
          end

          if (select count(*) from @SELECTEDELEMENTS.nodes('/SELECTEDELEMENTS/ITEM') T(c)) > 0
          begin
            insert into #DATAELEMENTS
            select distinct T.c.value('(DATAELEMENTID)[1]', 'uniqueidentifier')
            from @SELECTEDELEMENTS.nodes('SELECTEDELEMENTS/ITEM') T(c)
          end

          if (select count(*) from #DATAELEMENTS) = 0 and (select count(*) from dbo.ACCOUNTINGELEMENTSECURITYGROUPELEMENT where ACCOUNTINGELEMENTSECURITYGROUPID = @GROUPID) = 0
          begin
            raiserror('ERR_ACCOUNTINGELEMENTSECURITYGROUP_ELEMENTREQUIRED',13,1)
            return 1
          end

          insert into dbo.ACCOUNTINGELEMENTSECURITYGROUPELEMENT(ACCOUNTINGELEMENTSECURITYGROUPID, DATAELEMENTID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
          select distinct @GROUPID, DATAELEMENTID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
          from #DATAELEMENTS
          where DATAELEMENTID not in (select DATAELEMENTID from dbo.ACCOUNTINGELEMENTSECURITYGROUPELEMENT where ACCOUNTINGELEMENTSECURITYGROUPID = @GROUPID)

          drop table #DATAELEMENTS

          return 0;
      end