USP_INVOICESCHEDULE_DELETE

Executes the "Invoice: Delete Schedule" record operation.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN Input parameter indicating the ID of the record being deleted.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the delete.

Definition

Copy


CREATE procedure dbo.USP_INVOICESCHEDULE_DELETE
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier
)
as begin

  begin try
    -- Cannot delete an invoice schedule that has applications

    if exists(
      select * from
        dbo.FINANCIALTRANSACTIONSCHEDULE as FTS
        inner join dbo.FINANCIALTRANSACTIONAPPLICATION as FTA 
          on FTA.FINANCIALTRANSACTIONSCHEDULEID = FTS.ID
      where FTS.FINANCIALTRANSACTIONID = @ID
      ) 
      raiserror('ERR_INVOICE_SCHEDULE_HAS_DISBURSEMENTS', 16, 1);

    declare @contextCache varbinary(128);

      /* cache current context information */
      set @contextCache = CONTEXT_INFO();

      /* set CONTEXT_INFO to @CHANGEAGENTID */
      if not @CHANGEAGENTID is null
          set CONTEXT_INFO @CHANGEAGENTID

      delete from dbo.FINANCIALTRANSACTIONSCHEDULE where FINANCIALTRANSACTIONID=@ID;
    delete from dbo.INVOICESCHEDULEINFORMATION where ID=@ID;

    declare @DATEDUE date;
    declare @AMOUNT money;

    select
      @DATEDUE = I.DATEDUE
      ,@AMOUNT = FT.TRANSACTIONAMOUNT
    from
      dbo.INVOICE as I
      inner join FINANCIALTRANSACTION as FT on I.ID = FT.ID
    where
      I.ID = @ID;

    exec dbo.USP_FINANCIALTRANSACTIONSCHEDULE_ADD null, @CHANGEAGENTID, @ID, @DATEDUE, @AMOUNT

      /* reset CONTEXT_INFO to previous value */
      if not @contextCache is null
          set CONTEXT_INFO @contextCache
  end try
  begin catch
      exec dbo.USP_RAISE_ERROR
      return 1
  end catch

end