dbo.LN_feriados

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

8
Name Data Type Length Description
@accion varchar 50
@pais varchar 2
@fecha_feriado date 3
@user_id int 4
@activo bit 1
@year smallint 2
@modified datetime 8
@modified_by int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE OR ALTER PROCEDUREdbo.LN_feriados
    @accion VARCHAR(50),
    @pais VARCHAR(2),
    @fecha_feriado DATE,
    @user_id INT,
    @activo BIT = 0,
    @year SMALLINT = NULL,
    @modified datetime = null,
    @modified_by int = null


AS
BEGIN
    SET NOCOUNT ON;
    
 IF (@accion = 'LIST_FERIADOS')
  BEGIN
   select isnull(activo,1) as activo, fecha_feriado,pais,created,created_by,modified,modified_by  from feriados where fecha_feriado between getdate()-5 and getdate()+365
   RETURN
  END
 
 IF(@accion = 'AGREGAR')
        BEGIN
            INSERT INTO feriados (
                fecha_feriado,
                pais,
                created_by,created,activo

            ) VALUES (
                @fecha_feriado, 
                @pais,
                @user_id,
                getdate(),@activo
            );
            RETURN;
        END
    --SELECT * FROM FERIADOS


    IF(@accion = 'UPD_ESTADO')
        BEGIN
            UPDATE feriados SET 
            activo = @activo,modified=  @modified,modified_by=@modified_by
            WHERE fecha_feriado = @fecha_feriado AND pais = @pais; 
            RETURN;
        END
    --
    -- Funcion en desuso
    /* IF( @accion = 'LIST' )
            -- Devuelve los feriados (dentro de un limite de tiempo)
            BEGIN
                SELECT * FROM feriados
                WHERE fecha_feriado 
                BETWEEN dateadd(yy, datediff(yy, 0, GETDATE()), 0)  AND getdate()+365
                RETURN;
            END */

 --
    /*
        -- 2025-02-13
        IF ( @accion = 'LIST_PAIS' )
            -- Devuelve los feriados del pais solo con los dias feriados activos
            BEGIN
                SELECT isnull(activo,1) as activo, fecha_feriado,pais,created,created_by,modified,modified_by  FROM feriados
                WHERE pais=@pais AND fecha_feriado BETWEEN dateadd(yy, datediff(yy, 0, GETDATE()), 0)  AND getdate()+365 AND activo = 1
     order by fecha_feriado
                RETURN;
    
            END*/

    IF ( @accion = 'LIST_PAIS' )
        -- Devuelve los feriados del pais solo con los dias feriados activos
        BEGIN
            IF (@year IS NULL)
                SET @year = YEAR(GETDATE());

            SELECT isnull(activo,1) as activo, fecha_feriado,pais,created,created_by,modified,modified_by  FROM feriados
            WHERE 
                pais=@pais
                AND fecha_feriado BETWEEN DATEFROMPARTS(@year, 1, 1) AND DATEFROMPARTS(@year, 12, 31)
                AND activo = 1
   order by fecha_feriado
            RETURN;

        END
    --
    IF ( @accion = 'LIST_YEAR_PAIS' )
        -- Devuelve los feriados por pais y año (sin descriminar activo)
        BEGIN
            SELECT isnull(activo,1) as activo, fecha_feriado,pais,created,created_by,modified,modified_by  FROM feriados
            WHERE pais=@pais AND YEAR(fecha_feriado) = @year
   
   /* AND activo = @activo;*/
            
   RETURN;
        END
END 
GO

Depends On

1

Used By

No items found