USP_DATAFORMTEMPLATE_ADD_PHONEFINDER

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

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@NAME nvarchar(150) IN Name
@DESCRIPTION nvarchar(250) IN Description
@SITEID uniqueidentifier IN Site
@PRIMARYCONTACTNAME nvarchar(250) IN Name
@PRIMARYCONTACTEMAIL UDT_EMAILADDRESS IN Email address
@PRIMARYCONTACTPHONE nvarchar(20) IN Phone number
@ALTERNATECONTACTNAME nvarchar(250) IN Name
@ALTERNATECONTACTEMAIL UDT_EMAILADDRESS IN Email address
@ALTERNATECONTACTPHONE nvarchar(20) IN Phone number

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_PHONEFINDER
(
    @ID uniqueidentifier = null output,
    @CHANGEAGENTID uniqueidentifier = null,
    @CURRENTAPPUSERID uniqueidentifier = null,
    @NAME nvarchar(150) = null,
    @DESCRIPTION nvarchar(250) = null,
    @SITEID uniqueidentifier = null,
    @PRIMARYCONTACTNAME nvarchar(250) = null,
    @PRIMARYCONTACTEMAIL dbo.UDT_EMAILADDRESS = null,
    @PRIMARYCONTACTPHONE nvarchar(20) = null,
    @ALTERNATECONTACTNAME nvarchar(250) = null,
    @ALTERNATECONTACTEMAIL dbo.UDT_EMAILADDRESS = null,
    @ALTERNATECONTACTPHONE nvarchar(20) = null
)
as
begin
    set nocount on;

    declare @CURRENTDATE datetime = getdate();

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

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

    begin try
        if @SITEID is not null
        begin
            if dbo.UFN_SITEALLOWEDFORUSER(@CURRENTAPPUSERID, @SITEID) = 0
                raiserror('ERR_SITE_NOACCESS', 13, 1);
        end

        /*    Create batch process.  This is necessary because the process instance page uses a platform view form for
            displaying the status of the batch, which must exist to display information about it. */

        declare @BATCHID uniqueidentifier;
        declare @BATCHNAME nvarchar(200) = @NAME + N' - ' + convert(nvarchar(8), getdate(), 112) + replace(convert(nvarchar(8), getdate(), 108), N':', N'');
        declare @BATCHDESCRIPTION nvarchar(250) = N'Batch created by ' + @NAME + N' PhoneFinder process.';
        declare @COUNT int;

        select @COUNT = COUNT(ID) from dbo.BATCHTEMPLATE where BATCHTYPECATALOGID = '6ABF3E1E-25E3-4429-91B2-9496C3DDA413'

        if @COUNT = 0
            begin
                raiserror('BBERR_TEMPLATE_DOESNOT_EXIST',13,1)
                return
            end

        exec dbo.USP_DATAFORMTEMPLATE_ADD_BATCH2
            @BATCHID output,
            @CURRENTAPPUSERID,
            null,                -- Batch number

            @BATCHDESCRIPTION,
            null,                -- Owner ID

            0,                    -- Projected number of records

            0,                    -- Projected total amount

            '3be6b236-e086-461e-af57-0b4a4d294252',
            null,                -- Originating batch ID

            @CHANGEAGENTID;


        /* AAW 3/8/2010: Create a default information source code table entry of "PhoneFinder" and default to it: */
        declare @INFOSOURCECODEID uniqueidentifier;

        select @INFOSOURCECODEID = INFOSOURCECODE.[ID] 
        from dbo.INFOSOURCECODE 
        where INFOSOURCECODE.[DESCRIPTION] = N'PhoneFinder';

        if @INFOSOURCECODEID is null
            exec dbo.USP_INFOSOURCECODE_CREATEENTRY
                @DESCRIPTION = N'PhoneFinder',
                @CHANGEAGENTID = @CHANGEAGENTID,
                @ID = @INFOSOURCECODEID output;


        insert into dbo.PHONEFINDER
        (
            ID,
            NAME,
            DESCRIPTION,
            SITEID,
            BATCHID,
            BATCHAPPUSERID,
            PRIMARYCONTACTNAME,
            PRIMARYCONTACTEMAIL,
            PRIMARYCONTACTPHONE,
            ALTERNATECONTACTNAME,
            ALTERNATECONTACTEMAIL,
            ALTERNATECONTACTPHONE,
            INFOSOURCECODEID,
            ADDEDBYID,
            CHANGEDBYID,
            DATEADDED,
            DATECHANGED
        )
        values
        (
            @ID,
            @NAME,
            @DESCRIPTION,
            @SITEID,
            @BATCHID,
            @CURRENTAPPUSERID,
            @PRIMARYCONTACTNAME,
            @PRIMARYCONTACTEMAIL,
            @PRIMARYCONTACTPHONE,
            @ALTERNATECONTACTNAME,
            @ALTERNATECONTACTEMAIL,
            @ALTERNATECONTACTPHONE,
            @INFOSOURCECODEID,
            @CHANGEAGENTID,
            @CHANGEAGENTID,
            @CURRENTDATE,
            @CURRENTDATE
        );

        /* Add submit process: */
        declare @PHONEFINDERSUBMITPROCESSID uniqueidentifier = newid();
        insert into dbo.PHONEFINDERSUBMITPROCESS
        (
            ID,
            PHONEFINDERID,
            ADDEDBYID,
            CHANGEDBYID,
            DATEADDED,
            DATECHANGED
        )
        values
        (
            @PHONEFINDERSUBMITPROCESSID,
            @ID,    
            @CHANGEAGENTID,
            @CHANGEAGENTID,
            @CURRENTDATE,
            @CURRENTDATE
        );

        exec dbo.USP_BUSINESSPROCESSINSTANCE_ADD
            @CHANGEAGENTID = @CHANGEAGENTID,
            @BUSINESSPROCESSCATALOGID = '7B8F15BB-9C5E-49E3-82D1-999B7B1A6843',
            @BUSINESSPROCESSPARAMETERSETID = @PHONEFINDERSUBMITPROCESSID,
            @OWNERID = @CURRENTAPPUSERID;

        /* Add get process: */
        declare @PHONEFINDERGETPROCESSID uniqueidentifier = newid();
        insert into dbo.PHONEFINDERGETPROCESS
        (
            ID,
            PHONEFINDERID,
            ADDEDBYID,
            CHANGEDBYID,
            DATEADDED,
            DATECHANGED
        )
        values
        (
            @PHONEFINDERGETPROCESSID,
            @ID,
            @CHANGEAGENTID,
            @CHANGEAGENTID,
            @CURRENTDATE,
            @CURRENTDATE
        );

        exec dbo.USP_BUSINESSPROCESSINSTANCE_ADD
            @CHANGEAGENTID = @CHANGEAGENTID,
            @BUSINESSPROCESSCATALOGID = '1b4e38e5-74ae-4743-b716-94800c008e66',
            @BUSINESSPROCESSPARAMETERSETID = @PHONEFINDERGETPROCESSID,
            @OWNERID = @CURRENTAPPUSERID;

        /* Add resubmit process: */
        declare @PHONEFINDERRESUBMITPROCESSID uniqueidentifier = newid();
        insert into dbo.PHONEFINDERRESUBMITPROCESS
        (
            ID,
            PHONEFINDERID,
            ADDEDBYID,
            CHANGEDBYID,
            DATEADDED,
            DATECHANGED
        )
        values
        (
            @PHONEFINDERRESUBMITPROCESSID,
            @ID,
            @CHANGEAGENTID,
            @CHANGEAGENTID,
            @CURRENTDATE,
            @CURRENTDATE
        );

        exec dbo.USP_BUSINESSPROCESSINSTANCE_ADD
            @CHANGEAGENTID = @CHANGEAGENTID,
            @BUSINESSPROCESSCATALOGID = '44e99271-3171-4a34-993b-3b41f49138c1',
            @BUSINESSPROCESSPARAMETERSETID = @PHONEFINDERRESUBMITPROCESSID,
            @OWNERID = @CURRENTAPPUSERID;

    end try

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

    return 0                
end