USP_DATAFORMTEMPLATE_EDIT_BATCH2_PROPERTIES_2

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@BATCHNUMBER nvarchar(100) IN
@DESCRIPTION nvarchar(1000) IN
@OWNERID uniqueidentifier IN
@PROJECTEDNUMBEROFRECORDS int IN
@PROJECTEDTOTALAMOUNT money IN
@AUTOSAVEONROWCHANGE bit IN
@DISABLEADDNEWROW bit IN

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_BATCH2_PROPERTIES_2 (
    @ID uniqueidentifier
    , @CURRENTAPPUSERID uniqueidentifier
    , @CHANGEAGENTID uniqueidentifier = null
    , @BATCHNUMBER nvarchar(100)
    , @DESCRIPTION nvarchar(1000)
    , @OWNERID uniqueidentifier
    , @PROJECTEDNUMBEROFRECORDS int
    , @PROJECTEDTOTALAMOUNT money
    , @AUTOSAVEONROWCHANGE bit
    , @DISABLEADDNEWROW bit
)
as
    set nocount on;

    begin try
        declare @ISLOCKED bit = 0;
        exec dbo.USP_BATCH_HASEXCLUSIVELOCK @ID, @ISLOCKED output;

        if @ISLOCKED = 1
          raiserror('ERR_BATCHPROPERTIES_BATCHLOCKED',13, 1);

        declare @CHANGEDATE datetime;
        declare @OLDBATCHNUMBER nvarchar(100);
        declare @PREVIOUSOWNERID uniqueidentifier;
        declare @BATCHTEMPLATEID uniqueidentifier;
        declare @BATCHNUMBERINGSCHEMEID uniqueidentifier;

        set @CHANGEDATE = getdate();

        select
            @OLDBATCHNUMBER = BATCHNUMBER
            , @BATCHTEMPLATEID = BATCHTEMPLATEID
            , @PREVIOUSOWNERID = APPUSERID
        from
            dbo.BATCH
        where
            (ID = @ID);

        if not(@OLDBATCHNUMBER = @BATCHNUMBER)
        begin
            declare @ISMANUALSCHEME bit;

            select
                @ISMANUALSCHEME = case BATCHNUMBERINGSCHEME.NUMBERINGSCHEMECODE when 0 then 0 else 1 end,
                @BATCHNUMBERINGSCHEMEID = BATCHTEMPLATE.BATCHNUMBERINGSCHEMEID
            from dbo.BATCHTEMPLATE
                left join dbo.BATCHNUMBERINGSCHEME on BATCHTEMPLATE.BATCHNUMBERINGSCHEMEID = BATCHNUMBERINGSCHEME.ID
            where
                BATCHTEMPLATE.ID = @BATCHTEMPLATEID;

            if @ISMANUALSCHEME = 0 and dbo.UFN_SECURITY_APPUSER_GRANTED_CHANGEBATCHNUMBER(@CURRENTAPPUSERID, @BATCHTEMPLATEID) = 0
                raiserror('ERR_CANNOTCUSTOMIZE_NUMBER', 13, 1);

            if exists (select 
                        top 1 BATCH.ID 
                      from dbo.BATCH 
                      inner join dbo.BATCHTEMPLATE on BATCHTEMPLATE.ID = BATCH.BATCHTEMPLATEID
                      where BATCHNUMBER = @BATCHNUMBER and BATCHNUMBERINGSCHEMEID = @BATCHNUMBERINGSCHEMEID)
              raiserror('ERR_BATCHNUMBER_ISUNIQUE', 13, 1);
        end

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

        update dbo.BATCH set
            BATCHNUMBER = @BATCHNUMBER
            , DESCRIPTION = @DESCRIPTION
            , APPUSERID = @OWNERID
            , PROJECTEDNUMBEROFRECORDS = coalesce(@PROJECTEDNUMBEROFRECORDS, 0)
            , PROJECTEDTOTALAMOUNT = @PROJECTEDTOTALAMOUNT
            , AUTOSAVEONROWCHANGE = coalesce(@AUTOSAVEONROWCHANGE, 0)
            , CHANGEDBYID = @CHANGEAGENTID
            , DATECHANGED = @CHANGEDATE
            , DISABLEADDNEWROW = @DISABLEADDNEWROW
        where
            (ID = @ID);

        exec dbo.USP_BATCHASSIGNEDALERT_SEND @PREVIOUSOWNERID, @ID;
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR;
        return 1;
    end catch

    return 0;