USP_DATAFORMTEMPLATE_EDIT_GENERATEBATCHPREPROCESS

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

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@IDSETREGISTERID uniqueidentifier IN Revenue selection
@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
@BATCHNUMBER nvarchar(100) IN Batch number
@OVERRIDEBATCHNUMBER bit IN Override
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_GENERATEBATCHPREPROCESS 
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @IDSETREGISTERID uniqueidentifier,
  @INCLUDEPOSTEDTRANSACTIONS bit,
    @ADJUSTMENTDATE datetime,
    @ADJUSTMENTPOSTDATE datetime,
    @ADJUSTMENTPOSTSTATUSCODE tinyint,
    @ADJUSTMENTREASONCODEID uniqueidentifier,
    @ADJUSTMENTREASON nvarchar(300),
  @OVERWRITE bit,
  @FILTERBY nvarchar(255),
  @OLDGUIDVALUE uniqueidentifier,
  @NEWGUIDVALUE uniqueidentifier,
  @OLDDATEVALUE datetime,
  @NEWDATEVALUE datetime,
  @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 @USENUMBERINGSCHEME bit;
  declare @BATCHNUMBERINGSCHEMEID uniqueidentifier;
  declare @BATCHWORKFLOWSTATEID uniqueidentifier;

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

  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

  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.GENERATEBATCHPROCESS set
            IDSETREGISTERID = @IDSETREGISTERID,
      INCLUDEPOSTEDTRANSACTIONS = @INCLUDEPOSTEDTRANSACTIONS,
      ADJUSTMENTDATE = @ADJUSTMENTDATE,
      ADJUSTMENTPOSTDATE = @ADJUSTMENTPOSTDATE,
      ADJUSTMENTPOSTSTATUSCODE = @ADJUSTMENTPOSTSTATUSCODE,
      ADJUSTMENTREASONCODEID = @ADJUSTMENTREASONCODEID,
      ADJUSTMENTREASON = @ADJUSTMENTREASON,
      OVERWRITE = @OVERWRITE,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CURRENTDATE,
      BATCHNUMBER = @BATCHNUMBER,
      OVERRIDEBATCHNUMBER = @OVERRIDEBATCHNUMBER
        where ID = @ID

    delete from dbo.GENERATEBATCHPROCESSOVERWRITE
    where GENERATEBATCHPROCESSID = @ID

    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
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

return 0;