USP_DATAFORMTEMPLATE_ADD_GLFISCALYEARPREVIOUS

The save procedure used by the add dataform template "Previous Fiscal Year Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@YEARID nvarchar(12) IN Fiscal year
@DESCRIPTION nvarchar(60) IN Description
@FISCALPERIODSINYEAR tinyint IN Number of periods
@FISCALYEARPERIODS xml IN Periods

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_GLFISCALYEARPREVIOUS
(
    @ID uniqueidentifier = null output,
    @CHANGEAGENTID uniqueidentifier = null,
    @YEARID nvarchar(12) = '',
    @DESCRIPTION nvarchar(60) = '',
    @FISCALPERIODSINYEAR tinyint = 12,
    @FISCALYEARPERIODS xml = 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()

    begin try
        update dbo.GLFISCALYEAR set
            YEARSEQUENCE = YEARSEQUENCE + 1
            ,CHANGEDBYID = @CHANGEAGENTID
            ,DATECHANGED = @CURRENTDATE

        insert into dbo.GLFISCALYEAR (
            ID
            ,YEARID
            ,DESCRIPTION
            ,FISCALPERIODSINYEAR
            ,YEARSEQUENCE
            ,ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED) 
        values (
            @ID
            ,@YEARID
            ,@DESCRIPTION
            ,@FISCALPERIODSINYEAR
            ,1
            ,@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);

        update dbo.GLFISCALYEAR set
            PREVIOUSYEARID = @ID
            ,CHANGEDBYID = @CHANGEAGENTID
            ,DATECHANGED = @CURRENTDATE
        where YEARSEQUENCE  = (select MIN(YEARSEQUENCE) from dbo.GLFISCALYEAR where YEARSEQUENCE != 1)

        if @FISCALYEARPERIODS is not null
            exec dbo.USP_GLFISCALYEAR_PERIODS_ADDFROMXML @ID, @FISCALYEARPERIODS, @CHANGEAGENTID, @CURRENTDATE

        if not exists (select CLOSED from dbo.UFN_GLFISCALYEAR_PERIODS_FROMITEMLISTXML(@FISCALYEARPERIODS) where CLOSED = 0)
            update dbo.GLFISCALYEAR set STATUSCODE = 2 where ID = @ID
    end try

    begin catch
            exec dbo.USP_RAISE_ERROR
            return 1
    end catch

return 0