USP_BANKINGSYSTEM_UPDATESINGLECONDITIONSETTING

Parameters

Parameter Parameter Type Mode Description
@ENABLED bit INOUT
@ENABLEDCHANGED bit INOUT
@CHANGEAGENTID uniqueidentifier IN
@CURRENTDATE datetime IN

Definition

Copy


CREATE procedure dbo.USP_BANKINGSYSTEM_UPDATESINGLECONDITIONSETTING
(
    @ENABLED bit output,
    @ENABLEDCHANGED bit output,
    @CHANGEAGENTID uniqueidentifier = null,
    @CURRENTDATE datetime = null
)
as
begin
    declare @CONDITIONSETTINGNAME nvarchar(50);
    set @CONDITIONSETTINGNAME = N'BankingSystem-Single';

    if 1 =
        (
            select
                count(*)
            from
                dbo.BANKINGSYSTEM
                inner join dbo.CONDITIONSETTING on BANKINGSYSTEM.CONDITIONSETTINGNAME = CONDITIONSETTING.NAME
        )
        set @ENABLED = 1;
    else
        set @ENABLED = 0;

    declare @CONDITIONSETTINGORIGINALLYENABLED bit;
    set @CONDITIONSETTINGORIGINALLYENABLED = dbo.UFN_CONDITIONSETTING_EVALUATEEXISTSCONDITION(@CONDITIONSETTINGNAME);

    set @ENABLEDCHANGED = case @CONDITIONSETTINGORIGINALLYENABLED when @ENABLED then 0 else 1 end;

    if @ENABLEDCHANGED = 1
    begin
        if @CHANGEAGENTID is null
            exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

        if @CURRENTDATE is null
            set @CURRENTDATE = getdate();

        if @ENABLED = 1
            exec dbo.USP_CONDITIONSETTING_SETCONDITION @CONDITIONSETTINGNAME, @CHANGEAGENTID, @CURRENTDATE;
        else
            exec dbo.USP_CONDITIONSETTING_DELETEBYNAME_WITHCHANGEAGENTID @CONDITIONSETTINGNAME, @CHANGEAGENTID;
    end

end