USP_DATAFORMTEMPLATE_ADD_FACULTY

The save procedure used by the add dataform template "Faculty Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@LASTNAME nvarchar(100) IN Last name
@FIRSTNAME nvarchar(50) IN First name
@MIDDLENAME nvarchar(50) IN Middle name
@NICKNAME nvarchar(50) IN Nickname
@SUFFIXCODEID uniqueidentifier IN Suffix
@SUFFIX2CODEID uniqueidentifier IN Suffix 2
@ADDRESS_ADDRESSTYPECODEID uniqueidentifier IN Address type
@ADDRESS_DONOTMAIL bit IN Do not send mail to this address
@ADDRESS_COUNTRYID uniqueidentifier IN Country
@ADDRESS_STATEID uniqueidentifier IN State
@ADDRESS_ADDRESSBLOCK nvarchar(150) IN Address
@ADDRESS_CITY nvarchar(50) IN City
@ADDRESS_POSTCODE nvarchar(12) IN ZIP
@PHONE_PHONETYPECODEID uniqueidentifier IN Phone type
@PHONE_NUMBER nvarchar(100) IN Phone number
@EMAILADDRESS_EMAILADDRESSTYPECODEID uniqueidentifier IN Email type
@EMAILADDRESS_EMAILADDRESS UDT_EMAILADDRESS IN Email address
@SKIP_ADDING_SECURITYGROUPS bit IN Skip adding security groups
@ADDRESS_OMITFROMVALIDATION bit IN Omit this address from validation
@ADDRESS_CART nvarchar(10) IN
@ADDRESS_DPC nvarchar(8) IN
@ADDRESS_LOT nvarchar(5) IN
@ADDRESS_COUNTYCODEID uniqueidentifier IN
@ADDRESS_CONGRESSIONALDISTRICTCODEID uniqueidentifier IN
@ADDRESS_LASTVALIDATIONATTEMPTDATE datetime IN
@ADDRESS_VALIDATIONMESSAGE nvarchar(100) IN
@ADDRESS_CERTIFICATIONDATA int IN
@SKIP_ADDING_SITES bit IN Skip adding sites
@ADDRESS_DONOTMAILREASONCODEID uniqueidentifier IN Reason
@GENDERCODE tinyint IN Gender
@BIRTHDATE UDT_FUZZYDATE IN Birth date
@FACULTYSTATUSCODEID uniqueidentifier IN Status
@HIREDONDATE date IN Hire date
@ACADEMICCATALOGDEPARTMENTID uniqueidentifier IN Department
@ISDEPARTMENTHEAD bit IN Faculty is department head
@ISTEACHERINDEPARTMENT bit IN Faculty teaches in department
@TITLECODEID uniqueidentifier IN Title
@TITLE2CODEID uniqueidentifier IN Title 2

Definition

Copy

                CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_FACULTY
                (
                    @ID uniqueidentifier = null output,
                    @CURRENTAPPUSERID uniqueidentifier,
                    @CHANGEAGENTID uniqueidentifier = null,
                    @LASTNAME nvarchar(100),
                    @FIRSTNAME nvarchar(50) = '',
                    @MIDDLENAME nvarchar(50) = '',
                    @NICKNAME nvarchar(50) = '',
                    @SUFFIXCODEID uniqueidentifier = null,
                    @SUFFIX2CODEID uniqueidentifier = null,
                    @ADDRESS_ADDRESSTYPECODEID uniqueidentifier = null,
                    @ADDRESS_DONOTMAIL bit = 0,
                    @ADDRESS_COUNTRYID uniqueidentifier = null,
                    @ADDRESS_STATEID uniqueidentifier = null,
                    @ADDRESS_ADDRESSBLOCK nvarchar(150) = '',
                    @ADDRESS_CITY nvarchar(50) = '',
                    @ADDRESS_POSTCODE nvarchar(12) = '',
                    @PHONE_PHONETYPECODEID uniqueidentifier = null,
                    @PHONE_NUMBER nvarchar(100) = '',
                    @EMAILADDRESS_EMAILADDRESSTYPECODEID uniqueidentifier = null,
                    @EMAILADDRESS_EMAILADDRESS dbo.UDT_EMAILADDRESS = '',
                    @SKIP_ADDING_SECURITYGROUPS bit=0,
                    @ADDRESS_OMITFROMVALIDATION bit = 0,
                    @ADDRESS_CART nvarchar(10) = '',
                    @ADDRESS_DPC nvarchar(8) = '',
                    @ADDRESS_LOT nvarchar(5) = '',
                    @ADDRESS_COUNTYCODEID uniqueidentifier = null,
                    @ADDRESS_CONGRESSIONALDISTRICTCODEID uniqueidentifier = null,
                    @ADDRESS_LASTVALIDATIONATTEMPTDATE datetime = null,
                    @ADDRESS_VALIDATIONMESSAGE nvarchar(100) = '',
                    @ADDRESS_CERTIFICATIONDATA integer = 0,
                    @SKIP_ADDING_SITES bit = 0,
                    @ADDRESS_DONOTMAILREASONCODEID uniqueidentifier = null,
                    @GENDERCODE tinyint = 0,
                    @BIRTHDATE dbo.UDT_FUZZYDATE = '00000000',
                    @FACULTYSTATUSCODEID uniqueidentifier = null,
                    @HIREDONDATE date = null,
                    @ACADEMICCATALOGDEPARTMENTID uniqueidentifier = null,
                    @ISDEPARTMENTHEAD bit = 0,
                    @ISTEACHERINDEPARTMENT bit = 1,
                    @TITLECODEID uniqueidentifier = null,
                    @TITLE2CODEID uniqueidentifier = null                
                )
                as

                set nocount on;

                if @ID is null
                    set @ID = newid();

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

                if @ADDRESS_DONOTMAIL = 0 
                                        set @ADDRESS_DONOTMAILREASONCODEID = null

                declare @CURRENTDATE datetime
                set @CURRENTDATE = getdate()

                begin try
                    -- handle inserting the data
                    insert into dbo.CONSTITUENT
                                            (
                                                [ID],
                                                [ISORGANIZATION],
                                                [KEYNAME],
                                                [FIRSTNAME],
                                                [MIDDLENAME],
                                                [NICKNAME],
                                                [SUFFIXCODEID],
                                                [SUFFIX2CODEID],
                                                [TITLECODEID],
                                                [TITLE2CODEID],
                                                [GENDERCODE],
                                                [BIRTHDATE],
                                                [ADDEDBYID],
                                                [CHANGEDBYID],
                                                [DATEADDED],
                                                [DATECHANGED])
                    values
                                    (@ID,
                                                0,
                                                @LASTNAME,
                                                @FIRSTNAME,
                                                @MIDDLENAME,
                                                @NICKNAME,
                                                @SUFFIXCODEID,
                                                @SUFFIX2CODEID,
                                                @TITLECODEID,
                                                @TITLE2CODEID,
                                       @GENDERCODE,
                                                @BIRTHDATE,
                                                @CHANGEAGENTID,
                                                @CHANGEAGENTID,
                                                @CURRENTDATE,
                                                @CURRENTDATE);

                    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;
                                        set @ADDRESSID = newID();

                                        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,
                                            @ADDRESS_CART,
                                            @ADDRESS_DPC,
                                            @ADDRESS_LOT,                        
                                            @CHANGEAGENTID,
                                            @CHANGEAGENTID,
                                            @CURRENTDATE,
                                            @CURRENTDATE,
                                            @ADDRESS_DONOTMAILREASONCODEID
                                        );      

                                        insert into dbo.ADDRESSVALIDATIONUPDATE
                                        (
                                            [ID],
                                            [COUNTYCODEID],
                                            [CONGRESSIONALDISTRICTCODEID],
                                            [LASTVALIDATIONATTEMPTDATE],
                                            [VALIDATIONMESSAGE],
                                            [CERTIFICATIONDATA],
                                            [OMITFROMVALIDATION],
                                            [ADDEDBYID],
                                            [CHANGEDBYID],
                                            [DATEADDED],
                                            [DATECHANGED]
                                        )
                                        values
                                        (
                                            @ADDRESSID,
                                            @ADDRESS_COUNTYCODEID,
                       @ADDRESS_CONGRESSIONALDISTRICTCODEID,
                                            @CURRENTDATE,
                                            @ADDRESS_VALIDATIONMESSAGE,
                                            @ADDRESS_CERTIFICATIONDATA,
                                            @ADDRESS_OMITFROMVALIDATION,
                                            @CHANGEAGENTID,
                                            @CHANGEAGENTID,
                                            @CURRENTDATE,
                                            @CURRENTDATE
                                        );
                                    end

                                /*Start Primary Phone */
                                if (@PHONE_PHONETYPECODEID is not null) or (coalesce(@PHONE_NUMBER,'') <> '')
                                    begin
                                        insert into dbo.[PHONE]
                                        (
                                            [CONSTITUENTID],
                                            [PHONETYPECODEID],
                                            [NUMBER],
                                            [ISPRIMARY],
                                            [ADDEDBYID],
                                            [CHANGEDBYID],
                                            [DATEADDED],
                                            [DATECHANGED],
                                            [COUNTRYID]
                                        )
                                        values
                                        (
                                            @ID,
                                            @PHONE_PHONETYPECODEID,
                                            @PHONE_NUMBER,
                                            1,
                                            @CHANGEAGENTID,
                                            @CHANGEAGENTID,
                                            @CURRENTDATE,
                                            @CURRENTDATE,
                                            @ADDRESS_COUNTRYID
                                        );
                                    end
                                /*End Primary Phone */

                                /*Start Primary Email Address */
                                if (@EMAILADDRESS_EMAILADDRESSTYPECODEID is not null) or (coalesce(@EMAILADDRESS_EMAILADDRESS,'') <> '')
                                    begin
                                        insert into dbo.[EMAILADDRESS]
                                        (
                                            [CONSTITUENTID],
                                            [EMAILADDRESSTYPECODEID],
                                            [EMAILADDRESS],
                                            [ISPRIMARY],
                                            [ADDEDBYID],
                                            [CHANGEDBYID],
                                            [DATEADDED],
                                            [DATECHANGED]
                                        )
                                        values
                                        (
                                            @ID,
                                            @EMAILADDRESS_EMAILADDRESSTYPECODEID,
                                            @EMAILADDRESS_EMAILADDRESS,
                                            1,
                                            @CHANGEAGENTID,
                                            @CHANGEAGENTID,
                                            @CURRENTDATE,
                                            @CURRENTDATE
                                        );
                                    end
                                /*End Primary Email Address */


                                /*Start security groups*/
                                if COALESCE(@SKIP_ADDING_SECURITYGROUPS,0) = 0
                                BEGIN


                                    exec dbo.USP_CONSTITUENT_ASSIGNSECURITYGROUPS_FORNEWRECORD
                                            @APPUSERID =@CURRENTAPPUSERID,
                                            @DATAFORMTEMPLATEID='B4A8C2CB-FE50-4c50-A587-DC3C409B0E6A',
                                            @CONSTITUENTID  =@ID,
                                            @DATEADDEDTOUSE =@CURRENTDATE,
                                            @CHANGEAGENTID = @CHANGEAGENTID;                                                                                                                                                


                                END
                                /*end security groups*/

                                if coalesce(@SKIP_ADDING_SITES,0) = 0
                                    exec dbo.USP_CONSTITUENT_ASSIGNSITES_FORNEWRECORD
                                        @APPUSERID = @CURRENTAPPUSERID,
                                        @DATAFORMTEMPLATEID = 'B4A8C2CB-FE50-4c50-A587-DC3C409B0E6A',
                                        @CONSTITUENTID = @ID,
                                        @DATEADDEDTOUSE = @CURRENTDATE,
                                        @CHANGEAGENTID = @CHANGEAGENTID;                                

                                /*Start name format defaults*/
                                INSERT INTO [dbo].[NAMEFORMAT]
                                    ([CONSTITUENTID]
                                    ,[NAMEFORMATTYPECODEID]
                                    ,[NAMEFORMATFUNCTIONID]
                                    ,[ADDEDBYID]
                                    ,[CHANGEDBYID]
                                    ,[DATEADDED]
                                    ,[DATECHANGED]
                                    ,[PRIMARYADDRESSEE]
                                    ,[PRIMARYSALUTATION]
                                    ,[SEQUENCE])
                                SELECT
                                    @ID
                                    ,NFD.NAMEFORMATTYPECODEID
                                    ,NFD.NAMEFORMATFUNCTIONID
                                    ,@CHANGEAGENTID
                                    ,@CHANGEAGENTID
                                    ,@CURRENTDATE
                                    ,@CURRENTDATE
                                    ,NFD.PRIMARYADDRESSEE
                                    ,NFD.PRIMARYSALUTATION
                                    ,(select count(ID) 
                                        from dbo.NAMEFORMATDEFAULT as SUBNFD 
                                        where NFD.ID > SUBNFD.ID 
                                        and NFD.APPLYTOCODE = SUBNFD.APPLYTOCODE)
                                FROM dbo.NAMEFORMATDEFAULT as NFD
                                WHERE NFD.APPLYTOCODE = 0 
                                /*End name format defaults*/

                    insert into dbo.FACULTY
                    (ID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, FACULTYSTATUSCODEID, HIREDONDATE)
                    values
                    (@ID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE, @FACULTYSTATUSCODEID, @HIREDONDATE);

                    if @ACADEMICCATALOGDEPARTMENTID is not null
                        exec dbo.USP_DATAFORMTEMPLATE_ADD_FACULTYACADEMICCATALOGDEPARTMENT_BYDEPARTMENT null
                                                                                                        @ACADEMICCATALOGDEPARTMENTID,
                                                                                                        @CHANGEAGENTID,
                                                                                                        @ID,
                                                                                                        @ISDEPARTMENTHEAD,
                                                                                                        @ISTEACHERINDEPARTMENT,
                                                                                                        1   -- add as primary
                end try

                begin catch
                    exec dbo.USP_RAISE_ERROR
                    return 1
                end catch

                return 0