spCustomFormElement_AddUpdate

Parameters

Parameter Parameter Type Mode Description
@ID int INOUT
@TypeID int IN
@SubTypeID int IN
@Title nvarchar(200) IN
@Label nvarchar(max) IN
@Description nvarchar(1000) IN
@Instruction nvarchar(1000) IN
@Guid uniqueidentifier IN
@FolderID int IN
@ParentID uniqueidentifier IN
@Sequence int IN
@DataSource uniqueidentifier IN
@OwnerID int IN
@Properties xml IN
@FieldTypeForValidation int IN
@MappingSchemaGuid uniqueidentifier IN
@MappingSchema xml IN
@DateCreated datetime IN
@IsComplete bit IN

Definition

Copy

            CREATE PROCEDURE [dbo].[spCustomFormElement_AddUpdate](        
                @ID                int  output
                @TypeID        int
                @SubTypeID    int,
                @Title            nvarchar(200),
                @Label            nvarchar(max),
                @Description    nvarchar(1000),
                @Instruction    nvarchar(1000),
                @Guid            uniqueidentifier,
                @FolderID        int,
                @ParentID        uniqueidentifier,
                @Sequence        int,
                @DataSource    uniqueidentifier,
                @OwnerID        int,
                @Properties        xml,
                @FieldTypeForValidation    int,
                @MappingSchemaGuid        uniqueidentifier,
                @MappingSchema                xml,
                @DateCreated datetime,
                @IsComplete bit
            )
            AS
            BEGIN

                SET @SubTypeID = nullif(@SubTypeID, dbo.fnGetIntMinValue())
                SET @FolderID = nullif(@FolderID, dbo.fnGetIntMinValue())
                SET @ParentID = nullif(@ParentID, dbo.fnGetGuidMinValue())
                SET @DataSource = nullif(@DataSource, dbo.fnGetGuidMinValue())
                SET @OwnerID = nullif(@OwnerID, dbo.fnGetIntMinValue())
                SET @MappingSchemaGuid = nullif(@MappingSchemaGuid, dbo.fnGetGuidMinValue())

                BEGIN TRANSACTION

                UPDATE [dbo].[CustomFormElement] 
                SET 
                    [TypeID] = @TypeId
                    ,[SubTypeID] = @SubTypeId
                    ,[Title] = @Title
                    ,[Label] = @Label
                    ,[Description] = @Description
                    ,[Instruction] = @Instruction
                    ,[Guid] = @Guid
                    ,[ParentID] = @ParentID
                    ,[Sequence] = @Sequence
                    ,[Properties] = @Properties
                    ,[FieldTypeForValidation] = @FieldTypeForValidation
                    ,[DateCreated] = @DateCreated
                    ,[IsComplete] = @IsComplete
                WHERE CustomFormElement.ID = @ID or CustomFormElement.Guid = @Guid

                IF @@ROWCOUNT = 0                 
                BEGIN
                    INSERT INTO [dbo].[CustomFormElement]
                    (
                        [TypeID]
                        ,[SubTypeID]
                        ,[Title]
                        ,[Label]
                        ,[Description]
                        ,[Instruction]
                        ,[Guid]
                      ,[ParentID]
                        ,[Sequence]
                        ,[OwnerID]
                        ,[Properties]
                        ,[FieldTypeForValidation]
                        ,[DateCreated]
                        ,[IsComplete]
                    )
                    VALUES
                    (
                        @TypeId
                        ,@SubTypeId
                        ,@Title
                        ,@Label
                        ,@Description
                        ,@Instruction
                        ,@Guid
                        ,@ParentID
                        ,@Sequence
                        ,@OwnerID
                        ,@Properties
                        ,@FieldTypeForValidation
                        ,@DateCreated
                        ,@IsComplete
                    )

                    SELECT @ID = @@Identity
                END

                ------ continue if adding / updating a FORM:
                IF @TypeID = 1 
                BEGIN
                    -- 1. Store the Form Folder 

                    -- delete: to handle pulling a form from a 0+ FolderID to 0    
                    DELETE FROM [dbo].[CustomFormFolder]
                    WHERE CustomFormElementID = @ID

                    IF @FolderID IS NOT NULL AND @FolderID > 0
                    BEGIN
                        INSERT INTO [dbo].[CustomFormFolder]
                        (
                            [CustomFormElementID]
                            ,[SiteFoldersID]
                        )
                        VALUES
                        (
                            @ID
                            ,@FolderID
                        )
                    END

                    --    2. Store the Form DataSource: None, Admission Office, etc.
                    IF @DataSource IS NOT NULL 
                    BEGIN

                        UPDATE dbo.CustomFormDataSource
                        SET 
                            DataSource = @DataSource
                        WHERE FormGuid = @Guid

                        IF @@ROWCOUNT = 0 
                        BEGIN
                            INSERT INTO dbo.CustomFormDataSource
                            (
                                FormGuid,
                                DataSource
                            )
                            VALUES
                            (
                                @Guid
                                @DataSource
                            )
                        END
                    END

                    -- 3. Store the Mapping Schema
                    IF @MappingSchemaGuid IS NOT NULL 
                    BEGIN

                        UPDATE dbo.CustomFormMappingSchema
                        SET 
                            FormGuid = @Guid
                            , MappingSchemaGuid = @MappingSchemaGuid
                            , MappingSchema = @MappingSchema
                        WHERE    FormGuid = @Guid AND MappingSchemaGuid = @MappingSchemaGuid

                        IF @@ROWCOUNT = 0 
                        BEGIN
                            INSERT INTO dbo.CustomFormMappingSchema
                            (
                                FormGuid
                                , MappingSchemaGuid
                                , MappingSchema
                            )
                            VALUES
                            (
                                @Guid,
                                @MappingSchemaGuid,
                                @MappingSchema
                            )
                        END
                    END

                END

                COMMIT TRANSACTION
            END