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
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
1Used By
No items found