USP_DATAFORMTEMPLATE_EDIT_PROSPECTRESEARCHREQUEST_2

The save procedure used by the edit dataform template "Prospect Research Request Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@STATUSCODE tinyint IN Status
@PROSPECTRESEARCHREQUESTPRIORITYCODEID uniqueidentifier IN Priority
@DUEDATE date IN Due date
@PROSPECTRESEARCHREQUESTTYPECODEID uniqueidentifier IN Research type
@PROSPECTRESEARCHREQUESTREASONCODEID uniqueidentifier IN Request reason
@REQUESTEDBYID uniqueidentifier IN Requested by
@SUBMITTEDBYID uniqueidentifier IN Submitted by
@NOTES nvarchar(max) IN Notes
@COPYTOLINKEDREQUESTS bit IN Update research request information on open individual requests
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@SITES xml IN Sites

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PROSPECTRESEARCHREQUEST_2
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @STATUSCODE tinyint,
  @PROSPECTRESEARCHREQUESTPRIORITYCODEID uniqueidentifier,
  @DUEDATE date,
  @PROSPECTRESEARCHREQUESTTYPECODEID uniqueidentifier,
  @PROSPECTRESEARCHREQUESTREASONCODEID uniqueidentifier,
  @REQUESTEDBYID uniqueidentifier,
  @SUBMITTEDBYID uniqueidentifier,
  @NOTES nvarchar(max),
  @COPYTOLINKEDREQUESTS bit,
  @CURRENTAPPUSERID uniqueidentifier,
  @SITES xml
)
as
  set nocount on;

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

  declare @CURRENTDATE datetime;
  set @CURRENTDATE = getdate();

  begin try
    exec dbo.USP_PROSPECTRESEARCHREQUEST_VALIDATESITES @SITES, @CURRENTAPPUSERID, 'e15a6824-63b7-4498-b189-13937024391e', 1, 1, @REQUESTEDBYID, @SUBMITTEDBYID;

    -- save the existing requester and submittor

    declare
      @OLDREQUESTEDBYID uniqueidentifier,
      @OLDSUBMITTEDBYID uniqueidentifier;

    select
      @OLDREQUESTEDBYID = PRR.[REQUESTEDBYID],
      @OLDSUBMITTEDBYID = PRR.[SUBMITTEDBYID]
    from dbo.[PROSPECTRESEARCHREQUEST] PRR
    where PRR.[ID] = @ID;

    -- handle updating the data

    update dbo.PROSPECTRESEARCHREQUEST set
      STATUSCODE = @STATUSCODE,
      PROSPECTRESEARCHREQUESTPRIORITYCODEID = @PROSPECTRESEARCHREQUESTPRIORITYCODEID,
      DUEDATE = @DUEDATE,
      PROSPECTRESEARCHREQUESTTYPECODEID = @PROSPECTRESEARCHREQUESTTYPECODEID,
      PROSPECTRESEARCHREQUESTREASONCODEID = @PROSPECTRESEARCHREQUESTREASONCODEID,
      REQUESTEDBYID = @REQUESTEDBYID,
      SUBMITTEDBYID = @SUBMITTEDBYID,
      NOTES = @NOTES,
      CHANGEDBYID = @CHANGEAGENTID,
      DATECHANGED = @CURRENTDATE
    where ID = @ID;

    exec dbo.USP_PROSPECTRESEARCHREQUEST_GETSITES_UPDATEFROMXML @ID, @SITES, @CHANGEAGENTID, @CURRENTDATE;

    update dbo.PROSPECTRESEARCHREQUESTCONSTITUENT set
      PROSPECTRESEARCHREQUESTPRIORITYCODEID = @PROSPECTRESEARCHREQUESTPRIORITYCODEID,
      DUEDATE = @DUEDATE,
      PROSPECTRESEARCHREQUESTTYPECODEID = @PROSPECTRESEARCHREQUESTTYPECODEID,
      PROSPECTRESEARCHREQUESTREASONCODEID = @PROSPECTRESEARCHREQUESTREASONCODEID,
      NOTES = case when NOTES = '' or NOTES is null then @NOTES else NOTES end,
      CHANGEDBYID = @CHANGEAGENTID,
      DATECHANGED = @CURRENTDATE
    where
      PROSPECTRESEARCHREQUESTID = @ID and 
      STATUSCODE not in(4, 6) and
      @COPYTOLINKEDREQUESTS = 1;

    if @STATUSCODE in (4, 5)
    begin
      update dbo.PROSPECTRESEARCHREQUEST set
        STATUSCODE = case when ASSIGNEDTOID is null then 1 else 2 end
      where ID = @ID;

      update dbo.PROSPECTRESEARCHREQUESTCONSTITUENT set
        STATUSCODE = case when ASSIGNEDTOID is null then 1 else 2 end,
        DATECOMPLETED = null,
        CHANGEDBYID = @CHANGEAGENTID,
        DATECHANGED = @CURRENTDATE
      where
        PROSPECTRESEARCHREQUESTID = @ID and
        STATUSCODE <> 6;
    end

    exec dbo.USP_PROSPECTRESEARCHREQUEST_EDITEDALERT_SEND @CURRENTAPPUSERID, @OLDREQUESTEDBYID, @OLDSUBMITTEDBYID, @ID;
  end try
  begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
  end catch

  return 0;