spAddUpdate_ClassYearNotes

Parameters

Parameter Parameter Type Mode Description
@PKID int INOUT
@CurrentUsersID int IN
@ClientClassYearsID int IN
@ClassNote ntext IN
@IsApproved bit IN
@ApprovedByID int IN
@ApprovedDate datetime IN
@ModifiedDate datetime IN
@PublishDate datetime IN
@ExpireDate datetime IN
@ClassYearGuid uniqueidentifier INOUT
@RaisersEdgeRecordId int IN
@LastName nvarchar(200) IN
@FirstName nvarchar(100) IN

Definition

Copy


            CREATE   procedure [dbo].[spAddUpdate_ClassYearNotes](
                @PKID                    int OUTPUT,
                @CurrentUsersID            int,
                @ClientClassYearsID        int,
                @ClassNote                ntext,
                @IsApproved                bit,
                @ApprovedByID            int,
                @ApprovedDate            datetime,
                @ModifiedDate            datetime,
                @PublishDate            datetime,
                @ExpireDate             datetime,
                @ClassYearGuid             uniqueidentifier OUTPUT,
                @RaisersEdgeRecordId    int,
                @LastName                nvarchar(200),
                @FirstName                nvarchar(100)
            )
            as
            BEGIN
                set nocount on

                declare @supervisorId int
                declare @ResponsibleID int
                declare @OwnerID int

                if @RaisersEdgeRecordId < 1 set @RaisersEdgeRecordId=null
                select @supervisorId = dbo.fnGetSupervisorId()

                if (@PKID <= 0
                begin
                    select @PKID = ID, @OwnerID = OwnerID, 
                            @ResponsibleID = isnull(dbo.fnGetUserIDFromLinkedPeopleID(cyn.BackOfficeSystemPeopleID), OwnerID)                
                    from dbo.ClassYearNotes cyn
                    where ClientClassYearsID = @ClientClassYearsID
                    and dbo.fnGetRecordIDFromPeopleID(cyn.BackOfficeSystemPeopleID) = @RaisersEdgeRecordId
                    if @PKID is null set @PKID = 0
                end
                else
                begin
                    select @PKID = ID, @OwnerID = OwnerID, 
                            @ResponsibleID = isnull(dbo.fnGetUserIDFromLinkedPeopleID(cyn.BackOfficeSystemPeopleID), OwnerID)
                    from dbo.ClassYearNotes cyn
                    where ID = @PKID
                    if @PKID is null set @PKID = 0
                end

                if (@PKID<=0) begin
                    declare @BackOfficeSystemPeopleID int
                    exec dbo.spGetBackOfficeSystemPeopleID @RaisersEdgeRecordId, 0, @BackOfficeSystemPeopleID OUTPUT

                    insert into dbo.ClassYearNotes ( 
                        ClientClassYearsID,    ClassNote,    OwnerID, IsApproved,    ApprovedByID,
                        ApprovedDate,    PublishDate,    ModifiedDate,    ExpireDate, BackOfficeSystemPeopleID, LastName, FirstName )
                    values (@ClientClassYearsID, @ClassNote, @CurrentUsersID, @IsApproved, @ApprovedByID,    
                        @ApprovedDate, @PublishDate, @ModifiedDate,    @ExpireDate, @BackOfficeSystemPeopleID, @LastName, @FirstName

                    select @PKID = @@Identity
                end else 
                begin
                    if @ResponsibleID = @CurrentUsersID
                    begin
                        --it's my note, so I can update it...
                        update dbo.ClassYearNotes  
                        set ClassNote = @ClassNote,    IsApproved = @IsApproved,
                        ApprovedByID = @ApprovedByID,    ApprovedDate = @ApprovedDate,
                        ModifiedDate = @ModifiedDate,    ExpireDate = @ExpireDate,
                        LastName = @LastName, FirstName = @FirstName, DateLastChanged = getutcdate(),
                        OwnerID = @OwnerID
                           where ID=@PKID
                    end
                    else if @CurrentUsersID = @supervisorId and @OwnerID = @supervisorId
                    begin
                        --supervisor doing an import...
                        --this will succeed only for updates of records NOT modified by 
                        --the linked user...else it will fail...
                        update dbo.ClassYearNotes  
                        set ClassNote = @ClassNote,    IsApproved = @IsApproved,
                        ApprovedByID = @ApprovedByID,    ApprovedDate = @ApprovedDate,
                        ModifiedDate = @ModifiedDate,    ExpireDate = @ExpireDate,
                        LastName = @LastName, FirstName = @FirstName, DateLastChanged = getutcdate()
                        where ID=@PKID
                    end
                    else
                    begin
                        RAISERROR ('Unable to update class note.',16,1)
                        RETURN 0
                    end
                end
                select @ClassYearGuid=Guid from ClientClassYears where ID=@ClientClassYearsID
            END