USP_TAXID_MARKACTIVE

Executes the "Tax ID: Mark active" record operation.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN Input parameter indicating the ID of the record being updated.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the update.

Definition

Copy


                    CREATE procedure dbo.USP_TAXID_MARKACTIVE
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier
                    )
                    as begin
                        set nocount on;

                        declare @CURRENTDATE datetime;
                        declare @FEDERALENTITYTYPECODECOUNT tinyint;
                        declare @STATEENTITYTYPECODECOUNT tinyint;
                        declare @STATE uniqueidentifier;
                        declare @ENTITYTYPECODE tinyint;

                        if @CHANGEAGENTID is null exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

                        set @CURRENTDATE = getdate();
                        set @STATE = (select STATEID from dbo.TAXID where ID=@ID);
                        set @FEDERALENTITYTYPECODECOUNT = (select COUNT(ID) from dbo.TAXID where ENTITYTYPECODE = 0 and STATUSCODE=1);
                        set @STATEENTITYTYPECODECOUNT = (select COUNT(ID) from dbo.TAXID where ENTITYTYPECODE = 1 and STATUSCODE=1 and STATEID=@STATE);
                        set @ENTITYTYPECODE = (select ENTITYTYPECODE from dbo.TAXID where ID=@ID);

                        if  @FEDERALENTITYTYPECODECOUNT > 0 and @ENTITYTYPECODE=0
                            RAISERROR ('Only one active federal entity type is allowed.',  16, 1)

                        if  @STATEENTITYTYPECODECOUNT > 0 and @ENTITYTYPECODE=1
                            RAISERROR ('Only one active state entity type is allowed per state.',  16, 1)

                        UPDATE dbo.TAXID SET STATUSCODE=1, CHANGEDBYID=@CHANGEAGENTID, DATECHANGED=@CURRENTDATE WHERE ID=@ID AND STATUSCODE<>1        

                        return 0;

                    end