USP_DATAFORMTEMPLATE_EDIT_GENERATECONSTITUENTUPDATEBATCHPROCESS

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@NAME nvarchar(100) IN
@IDSETREGISTERID uniqueidentifier IN
@BATCHTEMPLATEID uniqueidentifier IN
@BATCHNUMBER nvarchar(100) IN
@OVERRIDEBATCHNUMBER bit IN
@DESCRIPTION nvarchar(1000) IN
@OWNERID uniqueidentifier IN
@AUTOSAVEONROWCHANGE bit IN
@PROJECTEDNUMBEROFRECORDS int IN
@SITEID uniqueidentifier IN

Definition

Copy


create procedure dbo.USP_DATAFORMTEMPLATE_EDIT_GENERATECONSTITUENTUPDATEBATCHPROCESS 
(
    @ID uniqueidentifier,
    @CURRENTAPPUSERID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @NAME nvarchar(100),
    @IDSETREGISTERID uniqueidentifier,
    @BATCHTEMPLATEID uniqueidentifier,
    @BATCHNUMBER nvarchar(100),
    @OVERRIDEBATCHNUMBER bit,
    @DESCRIPTION nvarchar(1000),
    @OWNERID uniqueidentifier,
    @AUTOSAVEONROWCHANGE bit,
    @PROJECTEDNUMBEROFRECORDS int,
    @SITEID uniqueidentifier
)
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();

    declare @BATCHNUMBERINGSCHEMEID uniqueidentifier;
    declare @APPUSERID uniqueidentifier;
    declare @BATCHWORKFLOWSTATEID uniqueidentifier;

        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

        if @OWNERID is null
            set @APPUSERID = @CURRENTAPPUSERID;
        else
            set @APPUSERID = @OWNERID;

        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

            if (@SITEID is not null
            begin
            if dbo.UFN_SITEALLOWEDFORUSER(@CURRENTAPPUSERID, @SITEID) = 0 
                begin
                raiserror ('ERR_SITE_NOACCESS',13,1);
                return 1;
                end
            end

            update dbo.GENERATEBATCHPROCESSCUB set 
                ID = @ID,
                NAME = @NAME,
                IDSETREGISTERID = @IDSETREGISTERID,
                BATCHTEMPLATEID = @BATCHTEMPLATEID,
                BATCHNUMBER = @BATCHNUMBER,
                OVERRIDEBATCHNUMBER = @OVERRIDEBATCHNUMBER,
                DESCRIPTION = @DESCRIPTION,
                APPUSERID = @APPUSERID,
                AUTOSAVEONROWCHANGE = @AUTOSAVEONROWCHANGE,
                PROJECTEDNUMBEROFRECORDS = @PROJECTEDNUMBEROFRECORDS,
                CHANGEDBYID = @CHANGEAGENTID,
                DATECHANGED = @CURRENTDATE
            where ID = @ID;

            update dbo.BUSINESSPROCESSINSTANCE set 
                SITEID = @SITEID,
                CHANGEDBYID = @CHANGEAGENTID,
                DATECHANGED = @CURRENTDATE
                where 
                    BUSINESSPROCESSINSTANCE.BUSINESSPROCESSPARAMETERSETID = @ID
                    and BUSINESSPROCESSINSTANCE.BUSINESSPROCESSCATALOGID = '44ccccea-9e4b-4935-9ab0-60c9f23a543d'
                    and (BUSINESSPROCESSINSTANCE.SITEID <> @SITEID 
                    or BUSINESSPROCESSINSTANCE.SITEID is null and @SITEID is not null 
                    or BUSINESSPROCESSINSTANCE.SITEID is not null and @SITEID is null);

        end try

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

return 0