USP_DATAFORMTEMPLATE_EDIT_EDUCATIONALINSTITUTION_3

The save procedure used by the edit dataform template "Educational Institution Edit Form 2".

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.
@FICECODE nvarchar(50) IN FICE code
@NAME nvarchar(100) IN Name
@ISAFFILIATED bit IN This institution is affiliated with our organization
@COUNTRYID uniqueidentifier IN Country
@CITY nvarchar(50) IN City
@STATEID uniqueidentifier IN State
@ADDRESSBLOCK nvarchar(150) IN Address
@POSTCODE nvarchar(12) IN Zip
@PHONENUMBER nvarchar(100) IN Phone number

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_EDUCATIONALINSTITUTION_3
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @FICECODE nvarchar(50),
                        @NAME nvarchar(100),
                        @ISAFFILIATED bit,
                        @COUNTRYID uniqueidentifier,
                        @CITY nvarchar(50),
                        @STATEID uniqueidentifier,
                                                @ADDRESSBLOCK nvarchar(150),
                                                @POSTCODE nvarchar(12),
                                                @PHONENUMBER nvarchar(100)
                    )
                    as
                        set nocount on;

                        declare @KEYNAME nvarchar(100);
                        declare @KEYNAMEPREFIX nvarchar(50);
                        declare @CURRENTDATE datetime;
                        set @CURRENTDATE = getdate();

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

                        begin try
                            if    dbo.UFN_EDUCATIONALINSTITUTION_NAMEISUNIQUE(@ID, @NAME)=1
                            begin

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

                                update dbo.CONSTITUENT set
                                                    KEYNAME = @KEYNAME,
                                                    KEYNAMEPREFIX = @KEYNAMEPREFIX,
                                                    DATECHANGED = @CURRENTDATE,
                                                    CHANGEDBYID = @CHANGEAGENTID
                                where ID = @ID;

                                if @COUNTRYID is null
                                    exec @COUNTRYID = dbo.UFN_COUNTRY_GETDEFAULT;

                                if exists(select ID from dbo.ADDRESS where (CONSTITUENTID = @ID) and (ISPRIMARY = 1))
                                begin
                                update dbo.ADDRESS
                                    set COUNTRYID = @COUNTRYID,
                                                                                ADDRESSBLOCK = @ADDRESSBLOCK,
                                        CITY = @CITY,
                                        STATEID = @STATEID,
                                                                                POSTCODE = @POSTCODE,
                                        DATECHANGED = @CURRENTDATE,
                                        CHANGEDBYID = @CHANGEAGENTID
                                    where (CONSTITUENTID = @ID) and 
                                        (ISPRIMARY = 1);
                                end
                                else
                                begin
                                declare @ADDRESSID uniqueidentifier;
                                set @ADDRESSID = newID();
                                insert into dbo.ADDRESS
                                    (ID, CONSTITUENTID, ISPRIMARY, COUNTRYID, ADDRESSBLOCK, CITY, STATEID, POSTCODE, DATEADDED, DATECHANGED, ADDEDBYID,CHANGEDBYID)
                                values
                                    (@ADDRESSID, @ID, 1, @COUNTRYID, @ADDRESSBLOCK, @CITY, @STATEID, @POSTCODE, @CURRENTDATE, @CURRENTDATE, @CHANGEAGENTID, @CHANGEAGENTID);                                 
                                end

                                if coalesce(@PHONENUMBER, '') <> ''
                                begin
                                    if exists(select ID from dbo.PHONE where (CONSTITUENTID = @ID) and (ISPRIMARY = 1))
                                        begin
                                        update dbo.PHONE
                                            set NUMBER = @PHONENUMBER,
                                                DATECHANGED = @CURRENTDATE,
                                                CHANGEDBYID = @CHANGEAGENTID
                                            where (CONSTITUENTID = @ID) and (ISPRIMARY = 1);
                                        end
                                    else
                                        begin
                                            insert into dbo.PHONE
                                                (ID, CONSTITUENTID, ISPRIMARY, NUMBER, SEQUENCE, DATEADDED, DATECHANGED, ADDEDBYID, CHANGEDBYID)
                                            values
                                                (newID(), @ID, 1, @PHONENUMBER, 1, @CURRENTDATE, @CURRENTDATE, @CHANGEAGENTID, @CHANGEAGENTID);                                 
                                        end
                                end

                                update dbo.EDUCATIONALINSTITUTION
                                set
                                    FICECODE = @FICECODE,
                                    DATECHANGED = @CURRENTDATE,
                                    CHANGEDBYID = @CHANGEAGENTID
                                where
                                    ID = @ID;

                                    -- Might need to create or remove a school here 

                                    declare @ISSCHOOL bit;
                                    set @ISSCHOOL = dbo.UFN_CONSTITUENT_ISSCHOOL(@ID);

                                    if ((@ISAFFILIATED = 1) and (@ISSCHOOL = 0))
                                    begin
                                    insert into dbo.SCHOOL
                                    (
                                         ID,
                                         ADDEDBYID,
                                         CHANGEDBYID,
                                         DATEADDED,
                                         DATECHANGED
                                    )
                                    values
                                    (
                                                                                @ID,
                                                                                @CHANGEAGENTID,
                                                                                @CHANGEAGENTID,
                                                                                @CURRENTDATE,
                                                                                @CURRENTDATE
                                    )
                                    end
                                    else
                                    begin if ((@ISAFFILIATED = 0) and (@ISSCHOOL = 1))
                                    -- Remove the school record

                                    exec dbo.USP_SCHOOL_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID;
                                    end
                                end
                                else
                                    raiserror ('ERR_EDUCATIONALINSTITUTION_NAMEISUNIQUE',13,1);
                            end try
                        begin catch
                            exec dbo.USP_RAISE_ERROR;
                            return 1;
                        end catch

                        return 0;