USP_DATAFORMTEMPLATE_EDIT_GENERATECONSTITUENTUPDATEBATCHPREPROCESS

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@IDSETREGISTERID uniqueidentifier IN
@BATCHNUMBER nvarchar(100) IN
@OVERRIDEBATCHNUMBER bit IN
@CURRENTAPPUSERID uniqueidentifier IN

Definition

Copy


create procedure dbo.USP_DATAFORMTEMPLATE_EDIT_GENERATECONSTITUENTUPDATEBATCHPREPROCESS 
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @IDSETREGISTERID uniqueidentifier,
    @BATCHNUMBER nvarchar(100),
    @OVERRIDEBATCHNUMBER bit,
    @CURRENTAPPUSERID uniqueidentifier
)
as

    set nocount on;

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

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

    declare @BATCHTEMPLATEID uniqueidentifier;
    declare @BATCHNUMBERINGSCHEMEID uniqueidentifier;
    declare @BATCHWORKFLOWSTATEID uniqueidentifier;

    select @BATCHTEMPLATEID = BATCHTEMPLATEID from dbo.GENERATEBATCHPROCESSCUB where ID = @ID;

    if (@OVERRIDEBATCHNUMBER = 0 or @BATCHNUMBER is null or len(@BATCHNUMBER) = 0)
    begin
        select @BATCHNUMBERINGSCHEMEID = BATCHNUMBERINGSCHEMEID
        from dbo.BATCHTEMPLATE
        where ID = @BATCHTEMPLATEID;

        if @BATCHNUMBERINGSCHEMEID is null
            raiserror('ERR_NUMBERINGSCHEME_NOTDEFINED', 13, 1);
    end
    else
    begin
        if dbo.UFN_SECURITY_APPUSER_GRANTED_CHANGEBATCHNUMBER(@CURRENTAPPUSERID, @BATCHTEMPLATEID) = 0
            raiserror('ERR_CANNOTCUSTOMIZE_NUMBER', 13, 1);
        if (select count(1) from dbo.BATCH where BATCHNUMBER = @BATCHNUMBER and BATCHTEMPLATEID = @BATCHTEMPLATEID) > 0
            raiserror('ERR_DUPLICATE_NUMBER', 13, 1);
    end

    select 
        @BATCHWORKFLOWSTATEID = BATCHWORKFLOWSTATE.ID 
    from 
    dbo.BATCHTEMPLATE 
        inner join dbo.BATCHWORKFLOW on BATCHTEMPLATE.BATCHWORKFLOWID = BATCHWORKFLOW.ID
        inner join dbo.BATCHWORKFLOWSTATE on BATCHWORKFLOW.ID = BATCHWORKFLOWSTATE.BATCHWORKFLOWID
        where BATCHTEMPLATE.ID = @BATCHTEMPLATEID
    and 
        ISINITIALSTATE = 1;

    if @BATCHWORKFLOWSTATEID is null
        raiserror('ERR_INVALIDWORKFLOW_DEFINED', 13, 1);

    begin try
        update dbo.GENERATEBATCHPROCESSCUB set
            IDSETREGISTERID = @IDSETREGISTERID,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CURRENTDATE,
            BATCHNUMBER = @BATCHNUMBER,
            OVERRIDEBATCHNUMBER = @OVERRIDEBATCHNUMBER
        where ID = @ID;


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

return 0;