USP_ORGANIZATION_ADD_EDIT

Add or edit an organization constituent record

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CURRENTAPPUSERID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@NAME nvarchar(100) IN
@WEBADDRESS UDT_WEBADDRESS IN
@PICTURE varbinary IN
@PICTURETHUMBNAIL varbinary IN
@INDUSTRYCODEID uniqueidentifier IN
@NUMEMPLOYEES int IN
@NUMSUBSIDIARIES int IN
@PARENTCORPID uniqueidentifier IN
@ADDRESS_ADDRESSTYPECODEID uniqueidentifier IN
@ADDRESS_DONOTMAIL bit IN
@ADDRESS_COUNTRYID uniqueidentifier IN
@ADDRESS_STATEID uniqueidentifier IN
@ADDRESS_ADDRESSBLOCK nvarchar(150) IN
@ADDRESS_CITY nvarchar(50) IN
@ADDRESS_POSTCODE nvarchar(12) IN
@PHONE_PHONETYPECODEID uniqueidentifier IN
@PHONE_NUMBER nvarchar(100) IN
@SKIP_ADDING_SECURITYGROUPS bit IN
@EMAILADDRESS_EMAILADDRESSTYPECODEID uniqueidentifier IN
@EMAILADDRESS_EMAILADDRESS UDT_EMAILADDRESS IN
@OMITFROMVALIDATION bit IN
@CART nvarchar(10) IN
@DPC nvarchar(8) IN
@LOT nvarchar(5) IN
@COUNTYCODEID uniqueidentifier IN
@CONGRESSIONALDISTRICTCODEID uniqueidentifier IN
@LASTVALIDATIONATTEMPTDATE datetime IN
@VALIDATIONMESSAGE nvarchar(100) IN
@CERTIFICATIONDATA int IN
@ADDRESS_DONOTMAILREASONCODEID uniqueidentifier IN
@ISPRIMARY bit IN
@SKIP_ADDING_SITES bit IN
@INFOSOURCECODEID uniqueidentifier IN
@ISCONSTITUENT bit IN

Definition

Copy


            CREATE procedure dbo.USP_ORGANIZATION_ADD_EDIT (
                @ID uniqueidentifier = null output,
                @CURRENTAPPUSERID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier = null,
                @NAME nvarchar(100) = null,
                @WEBADDRESS dbo.UDT_WEBADDRESS = null,
                @PICTURE varbinary(max) = null,
                @PICTURETHUMBNAIL varbinary(max) = null,
                @INDUSTRYCODEID uniqueidentifier = null,        
                @NUMEMPLOYEES int = null,
                @NUMSUBSIDIARIES int = null,
                @PARENTCORPID uniqueidentifier = null,
                @ADDRESS_ADDRESSTYPECODEID uniqueidentifier = null,
                @ADDRESS_DONOTMAIL bit = null,
                @ADDRESS_COUNTRYID uniqueidentifier = null,
                @ADDRESS_STATEID uniqueidentifier = null,
                @ADDRESS_ADDRESSBLOCK nvarchar(150) = null,
                @ADDRESS_CITY nvarchar(50) = null,
                @ADDRESS_POSTCODE nvarchar(12) = null,
                @PHONE_PHONETYPECODEID uniqueidentifier = null,
                @PHONE_NUMBER nvarchar(100) = null,
                @SKIP_ADDING_SECURITYGROUPS bit=0,
                @EMAILADDRESS_EMAILADDRESSTYPECODEID uniqueidentifier = null,
                @EMAILADDRESS_EMAILADDRESS dbo.UDT_EMAILADDRESS = null,
                @OMITFROMVALIDATION bit = 0,
                @CART nvarchar(10) = null,
                @DPC nvarchar(8) = null,
                @LOT nvarchar(5) = null,
                @COUNTYCODEID uniqueidentifier = null,
                @CONGRESSIONALDISTRICTCODEID uniqueidentifier = null,
                @LASTVALIDATIONATTEMPTDATE datetime = null,
                @VALIDATIONMESSAGE nvarchar(100) = null,
                @CERTIFICATIONDATA integer = null,
                @ADDRESS_DONOTMAILREASONCODEID uniqueidentifier = null,
                @ISPRIMARY bit = null,
                @SKIP_ADDING_SITES bit = null,
                @INFOSOURCECODEID uniqueidentifier = null,
          @ISCONSTITUENT bit = 1
            ) as
                set nocount on;

                declare @CURRENTDATE datetime;
                declare @CHILDID uniqueidentifier;
                declare @KEYNAME nvarchar(100);
                declare @KEYNAMEPREFIX nvarchar(50);
                declare @UpdateOrgData bit;
                declare @NewOrg bit;
                set @NewOrg = 0 -- not a new record


                if @ID is null
                begin
                    set @ID = newid();
                    set @NewOrg = 1
                  end

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

                set @CURRENTDATE = getdate();
                if @ADDRESS_DONOTMAIL = 0 -- Do not mail = false (0)

                    set @ADDRESS_DONOTMAILREASONCODEID = null
          if @ID is null
          begin
                  if @NUMEMPLOYEES is null
                      set @NUMEMPLOYEES = 0;
                  if @NUMSUBSIDIARIES is null
                      set @NUMSUBSIDIARIES = 0;
          end

                begin try
                    if @NAME is null
                    begin
                        set @KEYNAME = null
                        set @KEYNAMEPREFIX = null
                    end
                    else
                        exec dbo.USP_PARSE_ORGANIZATION_NAME @NAME, @KEYNAME output, @KEYNAMEPREFIX output;

                    if exists(select ID from dbo.CONSTITUENT where ID= @ID)
                        update dbo.CONSTITUENT set
                            KEYNAME = ISNULL(@KEYNAME, KEYNAME),
                            WEBADDRESS = ISNULL(@WEBADDRESS, WEBADDRESS),
                            PICTURE = ISNULL(@PICTURE, PICTURE),
                            PICTURETHUMBNAIL = ISNULL(@PICTURETHUMBNAIL, PICTURETHUMBNAIL),
                            KEYNAMEPREFIX = ISNULL(@KEYNAMEPREFIX, KEYNAMEPREFIX),
                            ISCONSTITUENT= ISNULL(@ISCONSTITUENT, ISCONSTITUENT),
                            CHANGEDBYID = @CHANGEAGENTID,
                            DATECHANGED = @CURRENTDATE
                        where ID = @ID
                    else
                        insert into dbo.CONSTITUENT 
                        (
                            ID,
                            ISORGANIZATION,
                            KEYNAME,
                            WEBADDRESS,
                            PICTURE,
                            PICTURETHUMBNAIL,
                            KEYNAMEPREFIX,
                            ISCONSTITUENT,
                            ADDEDBYID,
                            CHANGEDBYID,  
                            DATEADDED,  
                            DATECHANGED
                        )
                        values
                        (    
                            @ID,
                            -1,
                            @KEYNAME,
                            @WEBADDRESS,
                            @PICTURE,
                            @PICTURETHUMBNAIL,
                            @KEYNAMEPREFIX,
                            @ISCONSTITUENT,
                            @CHANGEAGENTID,
                            @CHANGEAGENTID,
                            @CURRENTDATE,
                            @CURRENTDATE
                        );

                if exists(select ID from dbo.ORGANIZATIONDATA where ID= @ID)
                    update dbo.ORGANIZATIONDATA set
                        INDUSTRYCODEID = ISNULL(@INDUSTRYCODEID, INDUSTRYCODEID),
                        NUMEMPLOYEES = ISNULL(@NUMEMPLOYEES, NUMEMPLOYEES),
                        NUMSUBSIDIARIES = ISNULL(@NUMSUBSIDIARIES, NUMSUBSIDIARIES),
                        PARENTCORPID = ISNULL(@PARENTCORPID, PARENTCORPID),
                        CHANGEDBYID = @CHANGEAGENTID,
                        DATECHANGED = @CURRENTDATE,
                        ISPRIMARY = ISNULL(@ISPRIMARY, ISPRIMARY)
                    where ID = @ID
                else
          begin
            if @NUMEMPLOYEES is null
              set @NUMEMPLOYEES = 0
            if @NUMSUBSIDIARIES is null
              set @NUMSUBSIDIARIES = 0
            if @ISPRIMARY is null
              set @ISPRIMARY = 1

                    insert into dbo.ORGANIZATIONDATA
                    (
                        ID,
                        INDUSTRYCODEID,
                        NUMEMPLOYEES,
                        NUMSUBSIDIARIES,
                        PARENTCORPID,
                        ADDEDBYID,
                        CHANGEDBYID,
                        DATEADDED,
                        DATECHANGED,
                        ISPRIMARY
                    )
                    values
                    (
                        @ID,
                        @INDUSTRYCODEID,
                        @NUMEMPLOYEES,
                        @NUMSUBSIDIARIES,
                        @PARENTCORPID,
                        @CHANGEAGENTID,
                        @CHANGEAGENTID,
                          @CURRENTDATE,
                        @CURRENTDATE,
                        @ISPRIMARY
                    );
          end

                    /*Start Primary Address */

                    if
                    (
                        (@ADDRESS_STATEID is not null)
                        or (coalesce(@ADDRESS_ADDRESSBLOCK,'') <> ''
                        or (coalesce(@ADDRESS_CITY,'') <> ''
                        or (coalesce(@ADDRESS_POSTCODE,'') <> ''
                        or (@ADDRESS_ADDRESSTYPECODEID is not null
                        or (@ADDRESS_COUNTRYID is not null)
                        or (@ADDRESS_DONOTMAIL = 1)
                        or (@ADDRESS_DONOTMAILREASONCODEID is not null)
                    )
                    begin
                        declare @ADDRESSID uniqueidentifier;
                        select @ADDRESSID = ID from dbo.ADDRESS where CONSTITUENTID = @ID and ISPRIMARY = 1
                        if @ADDRESSID is null
                            set @ADDRESSID = newID();

                        if exists(select ID from dbo.ADDRESS where ID = @ADDRESSID)
                            update dbo.ADDRESS set
                                ADDRESSTYPECODEID = ISNULL(@ADDRESS_ADDRESSTYPECODEID, ADDRESSTYPECODEID),
                                DONOTMAIL = ISNULL(@ADDRESS_DONOTMAIL, DONOTMAIL),
                                COUNTRYID = ISNULL(@ADDRESS_COUNTRYID, COUNTRYID),
                                STATEID = ISNULL(@ADDRESS_STATEID, STATEID),
                                ADDRESSBLOCK = ISNULL(@ADDRESS_ADDRESSBLOCK, ADDRESSBLOCK),
                                CITY = ISNULL(@ADDRESS_CITY, CITY),
                                POSTCODE = ISNULL(@ADDRESS_POSTCODE, POSTCODE),
                                CART = ISNULL(@CART, CART),
                                DPC = ISNULL(@DPC, DPC),
                                LOT = ISNULL(@LOT, LOT),
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE,
                                DONOTMAILREASONCODEID = ISNULL(@ADDRESS_DONOTMAILREASONCODEID, DONOTMAILREASONCODEID)
                            where ID = @ADDRESSID
                        else
            begin
                            if @CART is null
                  set @CART = ''
                if @DPC is null
                  set @DPC = ''
                if @LOT is null
                  set @LOT = ''

                insert into dbo.ADDRESS
                            (
                                ID,
                                CONSTITUENTID,
                                ADDRESSTYPECODEID,
                                ISPRIMARY,
                                DONOTMAIL,
                                COUNTRYID,
                                STATEID,
                                ADDRESSBLOCK,
                                CITY,
                                POSTCODE,                                
                                CART,
                                DPC,
                                LOT,
                                ADDEDBYID,
                                CHANGEDBYID,
                                DATEADDED,
                                DATECHANGED,
                                DONOTMAILREASONCODEID
                            )
                            values
                            (
                                @ADDRESSID,
                                @ID,
                                @ADDRESS_ADDRESSTYPECODEID,
                                1,
                                @ADDRESS_DONOTMAIL,
                                @ADDRESS_COUNTRYID,
                                @ADDRESS_STATEID,
                                @ADDRESS_ADDRESSBLOCK,
                                @ADDRESS_CITY,
                                @ADDRESS_POSTCODE,
                                @CART,
                                @DPC,
                                @LOT,
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CURRENTDATE,
                                @CURRENTDATE,
                                @ADDRESS_DONOTMAILREASONCODEID
                            );
            end

                        if exists(select ID from dbo.ADDRESSVALIDATIONUPDATE where ID = @ADDRESSID)
                            update dbo.ADDRESSVALIDATIONUPDATE set
                                COUNTYCODEID = ISNULL(@COUNTYCODEID, COUNTYCODEID),
                                CONGRESSIONALDISTRICTCODEID = ISNULL(@CONGRESSIONALDISTRICTCODEID, CONGRESSIONALDISTRICTCODEID),
                                LASTVALIDATIONATTEMPTDATE = ISNULL(@LASTVALIDATIONATTEMPTDATE, LASTVALIDATIONATTEMPTDATE),
                                VALIDATIONMESSAGE = ISNULL(@VALIDATIONMESSAGE, VALIDATIONMESSAGE),
                                CERTIFICATIONDATA = ISNULL(@CERTIFICATIONDATA, CERTIFICATIONDATA),
                                OMITFROMVALIDATION = ISNULL(@OMITFROMVALIDATION, OMITFROMVALIDATION),
                                INFOSOURCECODEID = ISNULL(@INFOSOURCECODEID, INFOSOURCECODEID),
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where ID = @ADDRESSID
                        else
            begin
              if @VALIDATIONMESSAGE is null
                set @VALIDATIONMESSAGE = ''
              if @CERTIFICATIONDATA is null
                set @CERTIFICATIONDATA = ''

                            insert into dbo.ADDRESSVALIDATIONUPDATE
                            (
                                ID,
                                COUNTYCODEID,
                                CONGRESSIONALDISTRICTCODEID,
                                LASTVALIDATIONATTEMPTDATE,
                                VALIDATIONMESSAGE,
                                CERTIFICATIONDATA,
                                OMITFROMVALIDATION,
                                INFOSOURCECODEID,
                                ADDEDBYID,
                                CHANGEDBYID,
                                DATEADDED,
                                DATECHANGED
                            )
                            values
                            (
                                @ADDRESSID,
                                @COUNTYCODEID,
                                @CONGRESSIONALDISTRICTCODEID,
                                @CURRENTDATE,
                                @VALIDATIONMESSAGE,
                                @CERTIFICATIONDATA,
                                @OMITFROMVALIDATION,
                                @INFOSOURCECODEID,
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CURRENTDATE,
                                @CURRENTDATE
                            );
            end
                    end
                    /*End Primary Address */

                    /*Start Primary Phone */

                    if (@PHONE_PHONETYPECODEID is not null) or (coalesce(@PHONE_NUMBER,'') <> '')
                    begin
                        declare @PhoneID uniqueidentifier
                        select @PhoneID = ID from dbo.PHONE where CONSTITUENTID = @ID and ISPRIMARY = 1
                        if @PhoneID is null
                            set @PhoneID = newID();

                        if exists(select ID from dbo.PHONE where ID= @PhoneID)
                            update dbo.PHONE set
                                PHONETYPECODEID = ISNULL(@PHONE_PHONETYPECODEID, PHONETYPECODEID),
                                NUMBER = ISNULL(@PHONE_NUMBER, NUMBER),
                                COUNTRYID = ISNULL(@ADDRESS_COUNTRYID, COUNTRYID),
                                INFOSOURCECODEID = ISNULL(@INFOSOURCECODEID, INFOSOURCECODEID),
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where ID = @PhoneID
                        else
                            insert into dbo.PHONE
                            (
                                CONSTITUENTID,
                                PHONETYPECODEID,
                                NUMBER,
                                ISPRIMARY,
                                COUNTRYID,
                                INFOSOURCECODEID,
                                ADDEDBYID,
                                CHANGEDBYID,
                                DATEADDED,
                                DATECHANGED
                            )
                            values
                            (
                                @ID,
                                @PHONE_PHONETYPECODEID,
                                @PHONE_NUMBER,
                                1,
                                @ADDRESS_COUNTRYID,
                                @INFOSOURCECODEID,
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CURRENTDATE,
                                @CURRENTDATE
                            );
                    end

                    /*End Primary Phone */

                    /*Start Primary Email Address */
                    if (@EMAILADDRESS_EMAILADDRESSTYPECODEID is not null) or (coalesce(@EMAILADDRESS_EMAILADDRESS,'') <> '')
                    begin
                        declare @EmailID uniqueidentifier
                        select @EmailID = ID from dbo.EMAILADDRESS where CONSTITUENTID = @ID and ISPRIMARY = 1
                        if @EmailID is null
                            set @EmailID = newID();

                        if exists(select ID from dbo.EMAILADDRESS where ID = @EmailID)
                            update dbo.EMAILADDRESS set
                                EMAILADDRESSTYPECODEID = ISNULL(@EMAILADDRESS_EMAILADDRESSTYPECODEID, EMAILADDRESSTYPECODEID),
                                EMAILADDRESS = ISNULL(@EMAILADDRESS_EMAILADDRESS, EMAILADDRESS),
                                INFOSOURCECODEID = ISNULL(@INFOSOURCECODEID, INFOSOURCECODEID),
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where ID = @EmailID
                        else
                            insert into dbo.[EMAILADDRESS]
                            (
                                [CONSTITUENTID],
                                [EMAILADDRESSTYPECODEID],
                                [EMAILADDRESS],
                                [ISPRIMARY],
                                [INFOSOURCECODEID],
                                [ADDEDBYID],
                                [CHANGEDBYID],
                                [DATEADDED],
                                [DATECHANGED]
                            )
                            values
                            (
                                @ID,
                                @EMAILADDRESS_EMAILADDRESSTYPECODEID,
                                @EMAILADDRESS_EMAILADDRESS,
                                1,
                                @INFOSOURCECODEID,
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CURRENTDATE,
                                @CURRENTDATE
                            );
                    end
                    /*End Primary Email Address */

                    /*Start security groups*/
                    if @NewOrg = 1 and COALESCE(@SKIP_ADDING_SECURITYGROUPS,0) = 0
                    BEGIN
                        exec dbo.USP_CONSTITUENT_ASSIGNSECURITYGROUPS_FORNEWRECORD
                                @APPUSERID =@CURRENTAPPUSERID,
                                @DATAFORMTEMPLATEID='9d3aff90-42d0-4db0-a4c1-703d25fd1902',
                                @CONSTITUENTID  =@ID,
                                @DATEADDEDTOUSE =@CURRENTDATE,
                                @CHANGEAGENTID = @CHANGEAGENTID;

                    END
                    /*end security groups*/

                    if @NewOrg = 1 and coalesce(@SKIP_ADDING_SITES,0) = 0
                        exec dbo.USP_CONSTITUENT_ASSIGNSITES_FORNEWRECORD
                            @APPUSERID = @CURRENTAPPUSERID,
                            @DATAFORMTEMPLATEID = '9d3aff90-42d0-4db0-a4c1-703d25fd1902',
                            @CONSTITUENTID = @ID,
                            @DATEADDEDTOUSE = @CURRENTDATE,
                            @CHANGEAGENTID = @CHANGEAGENTID;                            

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

                return 0;