USP_DISBURSEMENTPROCESS_CREATE

Creates a disbursement process

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@PARENTIDID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@NAME nvarchar(255) IN
@DESCRIPTION nvarchar(255) IN

Definition

Copy


CREATE procedure dbo.USP_DISBURSEMENTPROCESS_CREATE
(
  @ID uniqueidentifier output
    ,@PARENTIDID uniqueidentifier
    ,@CHANGEAGENTID uniqueidentifier
  ,@NAME nvarchar(255)
  ,@DESCRIPTION nvarchar(255)
)
as begin
  set nocount on;

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

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

  insert into dbo.DISBURSEMENTPROCESS
  ( 
    ID
      ,NAME 
      ,[DESCRIPTION]
      ,BANKACCOUNTID
      ,TYPECODE
      ,FILTERCODE
      ,DUEDATE
      ,DISCOUNTDATE
      ,IDSETREGISTERID
      ,DISCOUNTASOFDATE
      ,DISBURSEMENTDATE
      ,POSTSTATUSCODE
      ,POSTDATE
      ,CREATESELECTIONFROMRESULT
      ,OUTPUTIDSETRECORDTYPEID
      ,OUTPUTIDSETNAME
      ,OVERWRITEOUTPUTIDSET
      ,SIGNATURE1OPTIONCODE
      ,SIGNATURE2OPTIONCODE
      ,SIGNATURE1ID
      ,SIGNATURE2ID
      ,STATUSCODE 
      ,DATEADDED
      ,DATECHANGED
      ,ADDEDBYID
      ,CHANGEDBYID
      )
  select
    @ID
      ,case COALESCE(@NAME ,'')
      when '' THEN T.NAME
      else @NAME
     end as NAME
      ,case COALESCE(@DESCRIPTION ,'')
      when '' THEN T.DESCRIPTION
      else @DESCRIPTION
     end as DESCRIPTION       
      ,T.BANKACCOUNTID
      ,T.TYPECODE
      ,T.FILTERCODE
      ,case T.DUEDATECODE 
          when 0 THEN dateadd(day, T.DUEDATENUMBEROFDAYS, getdate())
          when 1 THEN dateadd(day, -T.DUEDATENUMBEROFDAYS, getdate())
      end as DUEDATE
      ,case T.INCLUDEINVOICESWITHDISCOUNT
     when 1 then (
        case T.DISCOUNTDATECODE
              when 0 THEN dateadd(day, T.DISCOUNTDATENUMBEROFDAYS, getdate())
          when 1 THEN dateadd(day, -T.DISCOUNTDATENUMBEROFDAYS, getdate())
          end 
      )
    else
      NULL
    end as DISCOUNTDATE
      ,T.IDSETREGISTERID
      ,dateadd(day,-T.CALCULATEDISCOUNTDAYS,getdate()) as DISCOUNTASOFDATE
      ,dateadd(day,T.DISBURSEMENTDATENUMBEROFDAYS,getdate()) as DISBURSEMENTDATE
      ,T.POSTSTATUSCODE
      ,CASE WHEN T.POSTSTATUSCODE = 3 THEN null else dateadd(day,T.POSTDATENUMBEROFDAYS,getdate()) END as POSTDATE
      ,T.CREATESELECTIONFROMRESULT
      ,T.OUTPUTIDSETRECORDTYPEID
      ,T.OUTPUTIDSETNAME
      ,T.OVERWRITEOUTPUTIDSET
      ,T.SIGNATURE1OPTIONCODE
      ,T.SIGNATURE2OPTIONCODE
      ,T.SIGNATURE1ID
      ,T.SIGNATURE2ID
      ,0 -- Status: Created

      ,getdate()
      ,getdate()
      ,@CHANGEAGENTID
      ,@CHANGEAGENTID
  from dbo.DISBURSEMENTPROCESSTEMPLATE AS T
  where T.ID = @PARENTIDID


    -- Defaulting in the DisbursementFormat information for the DisbursemnetProcess from the DisbursementProcessTemplate.

    ----

    insert into dbo.DISBURSEMENTPROCESSFORMAT
    (
        DISBURSEMENTPROCESSID,
        DISBURSEMENTFORMATID,
        PRINTERID,
        ADDEDBYID,
        CHANGEDBYID,
        DATEADDED,
        DATECHANGED
    )
    select
        @ID,
        F.DISBURSEMENTFORMATID,
        F.PRINTERID,
        @CHANGEAGENTID,
        @CHANGEAGENTID,
        getdate(),
        getdate()
    from dbo.DISBURSEMENTPROCESSTEMPLATEFORMAT AS F
    where F.DISBURSEMENTPROCESSTEMPLATEID = @PARENTIDID        
    ----


    -- Defaulting in the Auto-Signatures information for the DisbursementProcess from the DisbursementProcessTemplate.

    --****

    insert into dbo.DISBURSEMENTPROCESSSIGNATURE
    (
        DISBURSEMENTPROCESSID,
        FROMAMOUNT,
        BANKACCOUNTAUTHORIZEDSIGNATUREID,
        TYPECODE,
        ADDEDBYID, 
        CHANGEDBYID, 
        DATEADDED, 
        DATECHANGED
    )
    select
        @ID,
        FROMAMOUNT,
        BANKACCOUNTAUTHORIZEDSIGNATUREID,
        TYPECODE,
        @CHANGEAGENTID,
        @CHANGEAGENTID,
        getdate(),
        getdate()
    from dbo.DISBURSEMENTPROCESSTEMPLATESIGNATURE AS S
    where S.DISBURSEMENTPROCESSTEMPLATEID = @PARENTIDID
    --****


    return 0;
end