USP_ORGANIZATION_ADD_BYINDIVIDUAL

Adds an organization by an individual and create the relationship.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@INDIVIDUALCONSTITUENTID uniqueidentifier IN
@NAME nvarchar(100) IN
@WEBADDRESS UDT_WEBADDRESS IN
@ADDRESS_ADDRESSTYPECODEID uniqueidentifier IN
@ADDRESS_COUNTRYID uniqueidentifier IN
@ADDRESS_STATEID uniqueidentifier IN
@ADDRESS_ADDRESSBLOCK nvarchar(150) IN
@ADDRESS_CITY nvarchar(50) IN
@ADDRESS_POSTCODE nvarchar(12) IN
@ADDRESS_DONOTMAIL bit IN
@ADDRESS_DONOTMAILREASONCODEID uniqueidentifier IN
@PHONE_PHONETYPECODEID uniqueidentifier IN
@PHONE_NUMBER nvarchar(100) IN
@EMAILADDRESS_EMAILADDRESSTYPECODEID uniqueidentifier IN
@EMAILADDRESS_EMAILADDRESS UDT_EMAILADDRESS IN
@CURRENTAPPUSERID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_ORGANIZATION_ADD_BYINDIVIDUAL (  
    @ID uniqueidentifier = null output,
    @INDIVIDUALCONSTITUENTID uniqueidentifier,
    @NAME nvarchar(100),  
    @WEBADDRESS dbo.UDT_WEBADDRESS = '',  
    @ADDRESS_ADDRESSTYPECODEID uniqueidentifier = null,  
    @ADDRESS_COUNTRYID uniqueidentifier = null,  
    @ADDRESS_STATEID uniqueidentifier = null,  
    @ADDRESS_ADDRESSBLOCK nvarchar(150) = '',  
    @ADDRESS_CITY nvarchar(50) = '',  
    @ADDRESS_POSTCODE nvarchar(12) = '',  
    @ADDRESS_DONOTMAIL bit = 0,
    @ADDRESS_DONOTMAILREASONCODEID uniqueidentifier = null,  
    @PHONE_PHONETYPECODEID uniqueidentifier = null,  
    @PHONE_NUMBER nvarchar(100) = '',  
    @EMAILADDRESS_EMAILADDRESSTYPECODEID uniqueidentifier = null,  
    @EMAILADDRESS_EMAILADDRESS dbo.UDT_EMAILADDRESS = '',  
    @CURRENTAPPUSERID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null

as  
set nocount on;  

begin try

    declare @LEFTPOSTCODECOUNT int;
    declare @OVERALLMATCHTHRESHOLD numeric(5, 2);  

    if @ID = '00000000-0000-0000-0000-000000000000'
        set @ID = null;

    if @ID is null
    begin
        select top 1 @ID = C.ID
        from dbo.CONSTITUENT C  
        inner join dbo.[ADDRESS] A on C.ID = A.CONSTITUENTID  
        where C.ISORGANIZATION = 1   
        and  C.KEYNAME = @NAME
        and  A.POSTCODE = @ADDRESS_POSTCODE  
        and A.ADDRESSBLOCK = @ADDRESS_ADDRESSBLOCK
        order by C.DATECHANGED desc;
    end

    if dbo.UFN_VALIDWEBADDRESS(@WEBADDRESS) != 1
        set @WEBADDRESS = 'http://' + @WEBADDRESS;

    if dbo.UFN_VALIDWEBADDRESS(@WEBADDRESS) != 1
        set @WEBADDRESS = '';

  if @ID is null begin
        set @ID = newid();
        exec dbo.USP_ORGANIZATION_ADD
        @ID = @ID,
        @NAME = @NAME,  
        @WEBADDRESS = @WEBADDRESS,  
        @ADDRESS_ADDRESSTYPECODEID = @ADDRESS_ADDRESSTYPECODEID,  
        @ADDRESS_COUNTRYID = @ADDRESS_COUNTRYID,  
        @ADDRESS_STATEID = @ADDRESS_STATEID,  
        @ADDRESS_ADDRESSBLOCK = @ADDRESS_ADDRESSBLOCK,  
        @ADDRESS_CITY = @ADDRESS_CITY,  
        @ADDRESS_POSTCODE = @ADDRESS_POSTCODE,  
        @ADDRESS_DONOTMAIL = @ADDRESS_DONOTMAIL,
        @ADDRESS_DONOTMAILREASONCODEID = @ADDRESS_DONOTMAILREASONCODEID,  
        @PHONE_PHONETYPECODEID = @PHONE_PHONETYPECODEID,  
        @PHONE_NUMBER = @PHONE_NUMBER,  
        @EMAILADDRESS_EMAILADDRESSTYPECODEID = @EMAILADDRESS_EMAILADDRESSTYPECODEID,  
        @EMAILADDRESS_EMAILADDRESS = @EMAILADDRESS_EMAILADDRESS,  
        @CURRENTAPPUSERID = @CURRENTAPPUSERID,
        @CHANGEAGENTID = @CHANGEAGENTID;
    end

    declare @RELATIONSHIPTYPECODEID uniqueidentifier = null;  
    declare @RECIPROCALTYPECODEID uniqueidentifier = null;

    select top 1 
        @RELATIONSHIPTYPECODEID = PRIMARYBUSINESSRELATIONSHIPTYPECODEID, 
        @RECIPROCALTYPECODEID = PRIMARYBUSINESSRECIPROCALTYPECODEID
    from dbo.NETCOMMUNITYDEFAULTCODEMAP(nolock)

    if @RELATIONSHIPTYPECODEID is not null and @RECIPROCALTYPECODEID is not null
        and @ID is not null and @INDIVIDUALCONSTITUENTID is not null
        and @ID <> @INDIVIDUALCONSTITUENTID
        if not exists (select ID from RELATIONSHIP(nolock) 
                        where RELATIONSHIPCONSTITUENTID = @ID
                        and RECIPROCALCONSTITUENTID = @INDIVIDUALCONSTITUENTID
                        and RELATIONSHIPTYPECODEID = @RELATIONSHIPTYPECODEID
                        and RECIPROCALTYPECODEID = @RECIPROCALTYPECODEID)
            exec dbo.USP_DATAFORMTEMPLATE_ADD_INDTOGROUP_RELATIONSHIP
                @CONSTITUENTID = @ID,  
                @RECIPROCALCONSTITUENTID = @INDIVIDUALCONSTITUENTID,  
                @RELATIONSHIPTYPECODEID = @RELATIONSHIPTYPECODEID ,
                @RECIPROCALTYPECODEID = @RECIPROCALTYPECODEID,
                @COMMENTS = ''  

end try

begin catch
    exec dbo.USP_RAISE_ERROR;
    return 1;
end catch

return 0;