USP_DATAFORMTEMPLATE_COPY_GLFISCALYEAR_PRELOAD
The load procedure used by the edit dataform template "Fiscal Year Copy Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@COPYID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@YEARID | nvarchar(12) | INOUT | Fiscal year |
@DESCRIPTION | nvarchar(60) | INOUT | Description |
@FISCALPERIODSINYEAR | tinyint | INOUT | Number of periods |
@STATUSCODE | tinyint | INOUT | Status |
@FISCALYEARPERIODS | xml | INOUT | Periods |
@NEXTFISCALYEARID | nvarchar(12) | INOUT | Year ID |
@FIRSTSTARTDATE | datetime | INOUT | First start date |
@FIRSTENDDATE | datetime | INOUT | First end date |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_COPY_GLFISCALYEAR_PRELOAD
(
@COPYID uniqueidentifier,
@YEARID nvarchar(12) = null output,
@DESCRIPTION nvarchar(60) = null output,
@FISCALPERIODSINYEAR tinyint = null output,
@STATUSCODE tinyint = null output,
@FISCALYEARPERIODS xml = null output,
@NEXTFISCALYEARID nvarchar(12) = null output,
@FIRSTSTARTDATE datetime = null output,
@FIRSTENDDATE datetime = null output
)
as
set nocount on;
declare @NEWSTARTDATE datetime
select @NEWSTARTDATE = max(ENDDATE)+1 from dbo.GLFISCALPERIOD
declare @COPYSTARTDATE datetime
select @COPYSTARTDATE = min(STARTDATE) from dbo.UFN_GLFISCALYEAR_PERIODS(@COPYID)
if month(@COPYSTARTDATE) <> month(@NEWSTARTDATE) and day(@COPYSTARTDATE) <> day(@NEWSTARTDATE)
raiserror('ERR_INVALID_STARTDATE',13,1)
select
@YEARID = '',
@DESCRIPTION = '',
@FISCALPERIODSINYEAR = FISCALPERIODSINYEAR,
@STATUSCODE = 1,
@NEXTFISCALYEARID = ''
from
dbo.GLFISCALYEAR
where
GLFISCALYEAR.ID = @COPYID
declare @YEARDIFF int
select @YEARDIFF = (year(max(T1.ENDDATE)+1) - year(min(V1.STARTDATE))) from dbo.UFN_GLFISCALYEAR_PERIODS(@COPYID) v1, dbo.GLFISCALPERIOD t1
SELECT @FIRSTSTARTDATE = max(ENDDATE)+1 FROM dbo.GLFISCALPERIOD
set @FISCALYEARPERIODS =
(select 0 as CLOSED, dbo.UFN_GLFISCALYEAR_COPYENDDATE(ENDDATE, @YEARDIFF) as ENDDATE,
newid() as ID, SEQUENCE, dbo.UFN_GLFISCALYEAR_COPYSTARTDATE(STARTDATE, @YEARDIFF) as STARTDATE
from dbo.UFN_GLFISCALYEAR_PERIODS(@COPYID)
order by SEQUENCE
for xml raw('ITEM'),type,elements,root('FISCALYEARPERIODS'),BINARY BASE64)
return 0;