USP_DATAFORMTEMPLATE_ADD_RELATIONSHIPJOBINFO

The save procedure used by the add dataform template "Relationship Job Info Add Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CONTEXTID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@RELATIONSHIPID uniqueidentifier IN Relationship
@JOBTITLE nvarchar(100) IN Job title
@CAREERLEVELCODEID uniqueidentifier IN Career level
@JOBCATEGORYCODEID uniqueidentifier IN Category
@STARTDATE date IN Start date
@ENDDATE date IN End date
@JOBDIVISION nvarchar(100) IN Division
@JOBDEPARTMENT nvarchar(100) IN Department
@JOBSCHEDULECODEID uniqueidentifier IN Schedule
@JOBRESPONSIBILITY nvarchar(250) IN Responsibilities
@ISPRIVATERECORD bit IN Is private
@SYNCENDDATETORELATIONSHIP bit IN

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_RELATIONSHIPJOBINFO
(
    @ID uniqueidentifier = null output,
    @CONTEXTID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @RELATIONSHIPID uniqueidentifier = null,
    @JOBTITLE nvarchar(100) = '',
    @CAREERLEVELCODEID uniqueidentifier = null,
    @JOBCATEGORYCODEID uniqueidentifier = null,
    @STARTDATE date = null,
    @ENDDATE date = null,
    @JOBDIVISION nvarchar(100) = '',
    @JOBDEPARTMENT nvarchar(100) = '',
    @JOBSCHEDULECODEID uniqueidentifier = null,
    @JOBRESPONSIBILITY nvarchar(250) = '',
    @ISPRIVATERECORD bit = 0,
    @SYNCENDDATETORELATIONSHIP bit = 1
)
as

set nocount on;

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

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

declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()

begin try

    declare @RELATIONSHIPSETID uniqueidentifier;

    if @STARTDATE > @CURRENTDATE
        raiserror('BBERR_STARTDATEFUTURE', 13, 1)

    select @RELATIONSHIPSETID = RELATIONSHIPSETID 
    from dbo.RELATIONSHIP where ID = @RELATIONSHIPID;

    if @RELATIONSHIPSETID is null
    begin
        exec dbo.USP_RELATIONSHIPSET_RETROCREATE @RELATIONSHIPSETID output, @CHANGEAGENTID, @RELATIONSHIPID
    end

    update dbo.RELATIONSHIPJOBINFO
    set 
        ENDDATE = dateadd(day, -1, @STARTDATE),
        CHANGEDBYID = @CHANGEAGENTID,
        DATECHANGED = @CURRENTDATE
    where RELATIONSHIPSETID = @RELATIONSHIPSETID
        and (ENDDATE is null or ENDDATE >= @STARTDATE)
        and (STARTDATE is null or STARTDATE < @STARTDATE);


    insert into dbo.RELATIONSHIPJOBINFO
        (ID, RELATIONSHIPSETID, JOBTITLE, CAREERLEVELCODEID, JOBCATEGORYCODEID, STARTDATE, ENDDATE, JOBDIVISION, JOBDEPARTMENT, JOBSCHEDULECODEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, JOBRESPONSIBILITY, ISPRIVATERECORD)
    values
        (@ID, @RELATIONSHIPSETID, @JOBTITLE, @CAREERLEVELCODEID, @JOBCATEGORYCODEID, @STARTDATE, @ENDDATE, @JOBDIVISION, @JOBDEPARTMENT, @JOBSCHEDULECODEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE, @JOBRESPONSIBILITY, @ISPRIVATERECORD)

    if @SYNCENDDATETORELATIONSHIP = 1
    begin

        update 
            dbo.RELATIONSHIP
            set ENDDATE = @ENDDATE
        where RELATIONSHIPSETID = @RELATIONSHIPSETID;

    end
end try

begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
end catch

return 0