﻿CREATE  FUNCTION [C6MartPeriodico].[getTrimestre_Sim]
(
	@data datetime,
	@primo bit
)
RETURNS VARCHAR(8)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @retData VARCHAR(8)
--PER SIMULAZIONE (Commentare x Trimestrale)------------
declare @DtAnno varchar(4) = convert(varchar(4), @data, 112)
declare @DtAnnoPrec varchar(4) = convert(varchar(4), dateAdd(YYYY, -1, @data), 112)
IF @primo = 0
begin
  if @data < @DtAnno + '0301'      -- 0101 - 0228
    set @retdata= @DtAnnoPrec + '1130'
  else if @data < @DtAnno + '0601' -- 0301 - 0531
    set @retdata= DateAdd(dd, -1, @DtAnno + '0301')
  else if @data < @DtAnno + '0901' -- 0601 - 0831
    set @retdata= @DtAnno + '0531'
  else if @data < @DtAnno + '1201' -- 0901 - 1130
    set @retdata= @DtAnno + '0831'
  else -- 1201 - 1231
    set @retdata= @DtAnno + '1130'
end
ELSE
begin
  if @data < @DtAnno + '0301'      -- 0101 - 0228
    set @retdata= @DtAnnoPrec + '1201'
  else if @data < @DtAnno + '0601' -- 0301 - 0531
    set @retdata= @DtAnno + '0301'
  else if @data < @DtAnno + '0901' -- 0601 - 0831
    set @retdata= @DtAnno + '0601'
  else if @data < @DtAnno + '1201' -- 0901 - 1130
    set @retdata= @DtAnno + '0901'
  else -- 1201 - 1231
    set @retdata= @DtAnno + '1201'
end
-- Return the result of the function
RETURN @retData
----- TEST -----------------------
--    SET @retData = '20151130'
--    RETURN 	@retData
END