Está en la página 1de 1

set nocount on

declare @IDFISCALPERIOD int,


@PeriodStart datetime,
@PeriodEnd datetime,
@NoFiscalPeriod smallint,
@YearPeriod int,
@FiscalPeriodName varchar(40)

-- Initialize, last day of last year


set @PeriodEnd = dateadd(yy,-1,dateadd(dd,-1,dateadd(yy,datediff(yy,0,getDate())
+1,0)))
set @YearPeriod = datepart(yy, @PeriodEnd) + 1
set @NoFiscalPeriod = 1

while @NoFiscalPeriod < 13 begin


set @PeriodStart = dateadd(dd,1,@PeriodEnd)
set @PeriodEnd = dateadd(dd,-1,dateadd(mm,1,@PeriodStart))
set @FiscalPeriodName=NULL

-- Those take care of 00:00:00 and 23:59:59 for us


exec COST_InsertFiscalPeriodByNo @NoFiscalPeriod=@NoFiscalPeriod,
@YearPeriod=@YearPeriod, @PeriodStart=@PeriodStart, @IdFiscalPeriod=@IdFiscalPeriod
OUTPUT, @fLocked=1
exec COST_UpdateFiscalPeriodByID @IdFiscalPeriod=@IDFISCALPERIOD,
@NoFiscalPeriod=@NoFiscalPeriod, @YearPeriod=@YearPeriod,
@PeriodStart=@PeriodStart, @PeriodEnd=@PeriodEnd, @fClosed=0, @fInClosing=0,
@FiscalPeriodName=@FiscalPeriodName
exec CONS_LockViewByID @TbName='COST_FISCAL_PERIOD',
@ColumnName='ID_FISCAL_PERIOD', @IdView=@IDFISCALPERIOD, @fLocked=0

-- Jump to next month


set @NoFiscalPeriod = @NoFiscalPeriod + 1
end

También podría gustarte