USP_DATAFORMTEMPLATE_EDIT_ORGANIZATION

The save procedure used by the edit dataform template "Organization Data Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@ORGANIZATIONNAME nvarchar(100) IN Name
@INDUSTRYCODEID uniqueidentifier IN Industry
@NUMEMPLOYEES int IN No. of employees
@NUMSUBSIDIARIES int IN No. of subsidiaries
@PARENTCORPID uniqueidentifier IN Parent org
@PICTURE varbinary IN Image
@PICTURETHUMBNAIL varbinary IN Image thumbnail
@PICTURECHANGED bit IN Picture changed?
@WEBADDRESS UDT_WEBADDRESS IN Website

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_ORGANIZATION
                (
                    @ID uniqueidentifier,            
                    @CHANGEAGENTID uniqueidentifier = null,
                    @ORGANIZATIONNAME nvarchar(100),
                    @INDUSTRYCODEID uniqueidentifier,
                    @NUMEMPLOYEES int,
                    @NUMSUBSIDIARIES int,
                    @PARENTCORPID uniqueidentifier,
                    @PICTURE varbinary(max),
                    @PICTURETHUMBNAIL varbinary(max),
                    @PICTURECHANGED bit,
                    @WEBADDRESS dbo.UDT_WEBADDRESS
                ) as
                    set nocount on;

                    declare @KEYNAME nvarchar(100);
                    declare @KEYNAMEPREFIX nvarchar(50);

                    declare @CURRENTDATE datetime;

                    exec dbo.USP_PARSE_ORGANIZATION_NAME @ORGANIZATIONNAME, @KEYNAME output, @KEYNAMEPREFIX output;

                    if @NUMEMPLOYEES is null
                        set @NUMEMPLOYEES = 0;

                    if @NUMSUBSIDIARIES is null
                        set @NUMSUBSIDIARIES = 0;

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

                    set @CURRENTDATE = getdate();

                    begin try
                        if @PICTURECHANGED = 1
                            update CONSTITUENT set
                                KEYNAME = @KEYNAME,      
                                KEYNAMEPREFIX = @KEYNAMEPREFIX,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE,
                                PICTURE = @PICTURE,
                                PICTURETHUMBNAIL = @PICTURETHUMBNAIL,
                                WEBADDRESS = @WEBADDRESS
                            from 
                                dbo.CONSTITUENT 
                            where 
                                CONSTITUENT.ID = @ID;
                        else
                            update CONSTITUENT set
                                KEYNAME = @KEYNAME,      
                                KEYNAMEPREFIX = @KEYNAMEPREFIX,
                                WEBADDRESS = @WEBADDRESS,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            from 
                                dbo.CONSTITUENT 
                            where 
                                CONSTITUENT.ID = @ID;

                        update dbo.ORGANIZATIONDATA SET 
                            ORGANIZATIONDATA.INDUSTRYCODEID = @INDUSTRYCODEID,
                            ORGANIZATIONDATA.NUMEMPLOYEES = @NUMEMPLOYEES,
                            ORGANIZATIONDATA.NUMSUBSIDIARIES = @NUMSUBSIDIARIES,
                            ORGANIZATIONDATA.PARENTCORPID = @PARENTCORPID,
                            ORGANIZATIONDATA.CHANGEDBYID = @CHANGEAGENTID,
                            ORGANIZATIONDATA.DATECHANGED = @CURRENTDATE
                        from 
                            dbo.ORGANIZATIONDATA 
                        where 
                            ORGANIZATIONDATA.ID = @ID ;

                        if @@rowcount = 0 
                            insert into dbo.[ORGANIZATIONDATA]
                            (
                                [ID], 
                                [INDUSTRYCODEID], 
                                [NUMEMPLOYEES], 
                                [NUMSUBSIDIARIES], 
                                [PARENTCORPID], 
                                [ADDEDBYID], 
                                [CHANGEDBYID],
                                [DATEADDED],
                                [DATECHANGED]
                            ) values (
                                @ID
                                @INDUSTRYCODEID
                                @NUMEMPLOYEES
                                @NUMSUBSIDIARIES
                                @PARENTCORPID
                                @CHANGEAGENTID
                                @CHANGEAGENTID,
                                @CURRENTDATE,
                                @CURRENTDATE
                            );

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

                    return 0;