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