USP_ORGANIZATIONMERGER_MAKEORGCHILD

Used by the Organization Merger Add Data Form. Makes the organization a child organization of the parent organization passed in.

Parameters

Parameter Parameter Type Mode Description
@CHILDORGANIZATIONID uniqueidentifier IN
@PARENTORGANIZATIONID uniqueidentifier IN
@MERGERDATE datetime IN
@CURRENTDATE datetime IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


            CREATE procedure dbo.USP_ORGANIZATIONMERGER_MAKEORGCHILD
            (
                @CHILDORGANIZATIONID uniqueidentifier,
                @PARENTORGANIZATIONID uniqueidentifier,
                @MERGERDATE datetime,
                @CURRENTDATE datetime,
                @CHANGEAGENTID uniqueidentifier
            )
            as
            begin
                -- end previous parent history record

                update
                    ORGANIZATIONPARENTHISTORY
                set
                    ENDDATE = DateAdd("d", -1, @MERGERDATE),
                    CHANGEDBYID = @CHANGEAGENTID,
                    DATECHANGED = @CURRENTDATE
                from
                    dbo.ORGANIZATIONPARENTHISTORY
                    inner join dbo.ORGANIZATIONDATA on ORGANIZATIONPARENTHISTORY.CHILDCORPID = ORGANIZATIONDATA.ID
                        and ORGANIZATIONPARENTHISTORY.PARENTCORPID = ORGANIZATIONDATA.PARENTCORPID
                where
                    ORGANIZATIONDATA.ID = @CHILDORGANIZATIONID
                        and (ORGANIZATIONPARENTHISTORY.ENDDATE >= @MERGERDATE or ORGANIZATIONPARENTHISTORY.ENDDATE IS NULL)

                -- create new parent history record

                insert into dbo.ORGANIZATIONPARENTHISTORY
                (
                    ID, 
                    CHILDCORPID, 
                    PARENTCORPID, 
                    STARTDATE, 
                    DATEADDED, 
                    DATECHANGED, 
                    ADDEDBYID, 
                    CHANGEDBYID
                )
                values
                (
                    newid(),
                    @CHILDORGANIZATIONID,
                    @PARENTORGANIZATIONID,
                    @MERGERDATE,
                    @CURRENTDATE,
                    @CURRENTDATE,
                    @CHANGEAGENTID,
                    @CHANGEAGENTID
                )

                declare @OLDPARENTORGID uniqueidentifier
                select @OLDPARENTORGID = PARENTCORPID
                from dbo.ORGANIZATIONDATA
                where
                    ID = @CHILDORGANIZATIONID    

                --make org child of target

                update
                    ORGANIZATIONDATA
                set
                    PARENTCORPID = @PARENTORGANIZATIONID,
                    CHANGEDBYID = @CHANGEAGENTID,
                    DATECHANGED = @CURRENTDATE
                from
                    dbo.ORGANIZATIONDATA
                where
                    ID = @CHILDORGANIZATIONID;

                if @@ROWCOUNT = 0
                  insert into dbo.ORGANIZATIONDATA
                  (
                    ID,
                    PARENTCORPID,
                    ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
                  )
                  values
                  (
                    @CHILDORGANIZATIONID,
                    @PARENTORGANIZATIONID,
                    @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
                  );

                --create the parent/subsidiary relationships

                exec dbo.USP_RELATIONSHIPS_CREATEPARENTORGRELATIONSHIP @NONPARENTORGID=@CHILDORGANIZATIONID,
                    @PARENTORGID=@PARENTORGANIZATIONID,
                    @STARTDATE=@MERGERDATE,
                    @CHANGEAGENTID=@CHANGEAGENTID,
                    @CHANGEDATE=@CURRENTDATE,
                    @ADDINITIALRELATIONSHIP=1,
                    @OLDPARENTORGID=@OLDPARENTORGID                
            end