USP_DATAFORMTEMPLATE_ADD_SEPAMANDATE

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CONSTITUENTACCOUNTID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@SIGNATUREDATE datetime IN
@LOOKUPID nvarchar(35) IN
@OVERRIDELOOKUPID bit IN
@TYPECODE tinyint IN
@STATUSCODE tinyint IN

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_SEPAMANDATE
(
    @ID uniqueidentifier = null output,
    @CONSTITUENTACCOUNTID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @SIGNATUREDATE datetime = '',
    @LOOKUPID nvarchar(35) = '',
    @OVERRIDELOOKUPID bit = 0,
    @TYPECODE tinyint = 0,
    @STATUSCODE tinyint = 0
)
as

set nocount on;

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

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

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

begin try

    --Make sure that the mandate is getting added to an account that is tied to a financial institution that
    --has a SEPA banking system
    if not exists
    (
        select 1 
        from 
            dbo.CONSTITUENTACCOUNT
            inner join dbo.FINANCIALINSTITUTION on FINANCIALINSTITUTION.ID = CONSTITUENTACCOUNT.FINANCIALINSTITUTIONID
            inner join dbo.BANKINGSYSTEM on BANKINGSYSTEM.ID = FINANCIALINSTITUTION.BANKINGSYSTEMID
        where 
            CONSTITUENTACCOUNT.ID = @CONSTITUENTACCOUNTID
            and BANKINGSYSTEM.CONDITIONSETTINGNAME = 'BankingSystem-SEPA'
    )
    begin
        raiserror('BBERR_SEPAMANDATE_SEPABANKINGSYSTEMFORACCOUNT', 13, 1);
    end

    --Setup the override for the mandate lookup ID
    declare @CUSTOMIDENTIFIER nvarchar(35) = '';
    if @OVERRIDELOOKUPID = 1
    begin
        if @LOOKUPID is not null and @LOOKUPID <> ''
        begin
            set @CUSTOMIDENTIFIER = @LOOKUPID;
        end
        else
        begin
            raiserror('BBERR_MANDATELOOKUPID_CANNOTBENULLOREMPTY', 13, 1);
        end
    end

    --Make the insert into the table
    insert into dbo.SEPAMANDATE
    (
        ID, 
        CONSTITUENTACCOUNTID, 
        CUSTOMIDENTIFIER, 
        SIGNATUREDATE, 
        TYPECODE,
        STATUSCODE,
        ADDEDBYID, 
        CHANGEDBYID, 
        DATEADDED, 
        DATECHANGED
    )
    values
    (
        @ID
        @CONSTITUENTACCOUNTID
        @CUSTOMIDENTIFIER
        @SIGNATUREDATE
        @TYPECODE,
        @STATUSCODE,
        @CHANGEAGENTID
        @CHANGEAGENTID
        @CURRENTDATE
        @CURRENTDATE
    );

end try

begin catch
    exec dbo.USP_RAISE_ERROR;
    return 1;
end catch

return 0;