USP_DATAFORMTEMPLATE_ADD_GENERATEBATCHPROCESS

The save procedure used by the add dataform template "Generate Batch Process Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@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.
@NAME nvarchar(100) IN Name
@IDSETREGISTERID uniqueidentifier IN Revenue selection
@BATCHTEMPLATEID uniqueidentifier IN Batch template
@BATCHNUMBER nvarchar(100) IN Batch number
@OVERRIDEBATCHNUMBER bit IN Override
@DESCRIPTION nvarchar(1000) IN Description
@OWNERID uniqueidentifier IN Owner
@AUTOSAVEONROWCHANGE bit IN Enable auto save
@PROJECTEDNUMBEROFRECORDS int IN Projected #
@PROJECTEDTOTALAMOUNT money IN Projected amount
@INCLUDEPOSTEDTRANSACTIONS bit IN Include posted transactions
@ADJUSTMENTDATE datetime IN Adjustment date
@ADJUSTMENTPOSTDATE datetime IN Adjustment post date
@ADJUSTMENTPOSTSTATUSCODE tinyint IN Adjustment post status
@ADJUSTMENTREASONCODEID uniqueidentifier IN Adjustment reason
@ADJUSTMENTREASON nvarchar(300) IN Adjustment details
@OVERWRITE bit IN Filter selection and overwrite with new value
@FILTERBY nvarchar(255) IN Filter by
@OLDGUIDVALUE uniqueidentifier IN Current value
@NEWGUIDVALUE uniqueidentifier IN Overwrite with
@OLDDATEVALUE datetime IN Current value
@NEWDATEVALUE datetime IN Overwrite with
@SITEID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_GENERATEBATCHPROCESS
(
    @ID uniqueidentifier = null output,
    @CURRENTAPPUSERID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @NAME nvarchar(100),
    @IDSETREGISTERID uniqueidentifier,
    @BATCHTEMPLATEID uniqueidentifier,
    @BATCHNUMBER nvarchar(100) = '',
    @OVERRIDEBATCHNUMBER bit = 0,
    @DESCRIPTION nvarchar(1000) = '',
    @OWNERID uniqueidentifier = null,
    @AUTOSAVEONROWCHANGE bit = 0,
    @PROJECTEDNUMBEROFRECORDS int = 0,
    @PROJECTEDTOTALAMOUNT money = 0,
    @INCLUDEPOSTEDTRANSACTIONS bit = 0,
    @ADJUSTMENTDATE datetime = null,
    @ADJUSTMENTPOSTDATE datetime = null,
    @ADJUSTMENTPOSTSTATUSCODE tinyint = 1,
    @ADJUSTMENTREASONCODEID uniqueidentifier = null,
    @ADJUSTMENTREASON nvarchar(300) = null,
    @OVERWRITE bit = 0,
    @FILTERBY nvarchar(255) = null,
    @OLDGUIDVALUE uniqueidentifier = null,
    @NEWGUIDVALUE uniqueidentifier = null,
    @OLDDATEVALUE datetime = null,
    @NEWDATEVALUE datetime = null,
    @SITEID uniqueidentifier = null
)
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 @USENUMBERINGSCHEME bit;
declare @BATCHNUMBERINGSCHEMEID uniqueidentifier;
declare @APPUSERID uniqueidentifier;
declare @BATCHWORKFLOWSTATEID uniqueidentifier;

if (@OVERRIDEBATCHNUMBER = 0 or @BATCHNUMBER is null or len(@BATCHNUMBER) = 0)
    set @USENUMBERINGSCHEME = 1;

if (@USENUMBERINGSCHEME = 1)
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

    insert into dbo.GENERATEBATCHPROCESS
        (ID, NAME, IDSETREGISTERID, BATCHTEMPLATEID, BATCHNUMBER, OVERRIDEBATCHNUMBER, DESCRIPTION, APPUSERID, AUTOSAVEONROWCHANGE, PROJECTEDNUMBEROFRECORDS, PROJECTEDTOTALAMOUNT, 
     INCLUDEPOSTEDTRANSACTIONS, ADJUSTMENTDATE, ADJUSTMENTPOSTDATE, ADJUSTMENTPOSTSTATUSCODE, ADJUSTMENTREASONCODEID, ADJUSTMENTREASON, OVERWRITE,
     ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
    values
        (@ID, @NAME, @IDSETREGISTERID, @BATCHTEMPLATEID, @BATCHNUMBER, @OVERRIDEBATCHNUMBER, @DESCRIPTION, @APPUSERID, @AUTOSAVEONROWCHANGE, @PROJECTEDNUMBEROFRECORDS, @PROJECTEDTOTALAMOUNT
     @INCLUDEPOSTEDTRANSACTIONS, @ADJUSTMENTDATE, @ADJUSTMENTPOSTDATE, @ADJUSTMENTPOSTSTATUSCODE, @ADJUSTMENTREASONCODEID, @ADJUSTMENTREASON, @OVERWRITE
     @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)

     if @OVERWRITE = 1
     begin
     insert into dbo.GENERATEBATCHPROCESSOVERWRITE
         (GENERATEBATCHPROCESSID, FIELDNAME, OLDGUIDVALUE, NEWGUIDVALUE, OLDDATEVALUE, NEWDATEVALUE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
     values
         (@ID, @FILTERBY, @OLDGUIDVALUE, @NEWGUIDVALUE, @OLDDATEVALUE, @NEWDATEVALUE, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
     end

    exec dbo.USP_BUSINESSPROCESSINSTANCE_ADD @CHANGEAGENTID = @CHANGEAGENTID
        @BUSINESSPROCESSCATALOGID = 'b226b0a0-043d-47bf-9dc4-6594ba5bbcbd'
        @BUSINESSPROCESSPARAMETERSETID = @ID
        @OWNERID = @CURRENTAPPUSERID,
        @SITEID = @SITEID;

end try

begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
end catch

return 0