USP_DATAFORMTEMPLATE_EDIT_BATCH_2

The save procedure used by the edit dataform template "Batch Edit Form 2".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@BATCHNUMBER nvarchar(100) IN Batch number
@DESCRIPTION nvarchar(1000) IN Description
@OWNERID uniqueidentifier IN Owner
@PROJECTEDNUMBEROFRECORDS int IN Projected #
@PROJECTEDTOTALAMOUNT money IN Projected amount

Definition

Copy


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

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

        set @CHANGEDATE = getdate();

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

        if not(@OLDBATCHNUMBER = @BATCHNUMBER)
            if dbo.UFN_SECURITY_APPUSER_GRANTED_CHANGEBATCHNUMBER(@CURRENTAPPUSERID, @BATCHTEMPLATEID) = 0
                raiserror('You do not have permission to assign a custom batch number for this batch design.', 13, 1);

        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,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CHANGEDATE
        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;