dbo.LN_familia_tipo_informe

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

6
Name Data Type Length Description
@accion varchar 20
@familia int 4
@idTipoInforme int 4
@UserID int 4
@activo bit 1
@subset varchar 150

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- Create the stored procedure in the specified schema
CREATE OR ALTER PROCEDURE dbo.LN_familia_tipo_informe
    @accion VARCHAR(20),
    @familia INT=NULL,
    @idTipoInforme INT=NULL,
    @UserID INT,
    @activo BIT=1,
    @subset VARCHAR(150)=NULL 
-- add more stored procedure parameters here
AS
BEGIN
    -- body of the stored procedure
    SET NOCOUNT ON;
    SET @accion=upper(@accion)
    --
    DECLARE @idreg INT = 0
    --
    IF (@accion='ASIGNAR_FAMILIA')
        BEGIN
            /* Asigna un tipo de informe a la familia, si existe lo actualiza */
            SELECT @idreg=id_tipo_informe FROM LN_familias_tipo_informe WHERE familia = @familia AND id_tipo_informe=@idTipoInforme 
            IF (@idreg = 0)
                BEGIN
                    INSERT INTO LN_familias_tipo_informe (familia,id_tipo_informe,visible,created,created_by,lista_subset) 
                    VALUES (@familia,@idTipoInforme,1,getdate(),@UserID,@subset)
                END
            ELSE
                BEGIN
                    UPDATE LN_familias_tipo_informe SET visible=1,modified=getdate(),modified_by=@UserID,lista_subset=@subset
                    WHERE (familia= @familia AND id_tipo_informe=@idTipoInforme)
                END
            --
            RETURN;
        END
    --
    ELSE IF (@accion='UPD_FAMILIA')
        BEGIN
            /* Cambia el estado del tipo de informe en la familia */
            UPDATE LN_familias_tipo_informe SET visible=@activo,modified=getdate(),modified_by=@UserID
            WHERE familia=@familia AND id_tipo_informe=@idTipoInforme
            --
            RETURN;
        END
    --
    ELSE IF (@accion='UPD_INFORME_SUBSET')
        BEGIN
            /* Actualiza los subsets del tipo informe de la familia */
            UPDATE LN_familias_tipo_informe SET lista_subset=@subset,modified=getdate(),modified_by=@UserID
            WHERE familia=@familia AND id_tipo_informe=@idTipoInforme
            --
            RETURN;
        END
    --
    ELSE IF (@accion='LISTAR_FAMILIA')
        BEGIN
            /* Lista todos los tipos de informe asignados a una familia */
            SELECT LN_tipo_informes.*,LN_familias.nombre_familia,LN_familias.visible AS familia_visible,clientes.nombre_cliente AS nombre_cliente_familia, clientes.cliente AS cod_cliente_familia,LN_familias.familia,
            LN_familias_tipo_informe.visible AS activo_fam_inf,LN_familias_tipo_informe.lista_subset AS subset_doc
            FROM LN_tipo_informes
                LEFT JOIN LN_familias_tipo_informe ON LN_tipo_informes.idTipoInforme=LN_familias_tipo_informe.id_tipo_informe
                LEFT JOIN LN_familias ON LN_familias_tipo_informe.familia=LN_familias.familia 
                LEFT JOIN clientes ON ln_familias.cliente = clientes.cliente
            WHERE LN_familias_tipo_informe.familia= @familia 
            ORDER BY nombre_tipo_informe ASC
            --
            RETURN;
            --
        END
    --
    ELSE IF (@accion='LISTAR_XINFORME')
    BEGIN
        /* Lista todos las familias asignados a un tipo de informe */
        SELECT LN_tipo_informes.*,LN_familias.nombre_familia,LN_familias.visible AS familia_visible,clientes.nombre_cliente AS nombre_cliente_familia, clientes.cliente AS cod_cliente_familia ,LN_familias.familia,
        LN_familias_tipo_informe.visible AS activo_fam_inf,LN_familias_tipo_informe.lista_subset AS subset_doc
        FROM LN_tipo_informes
            LEFT JOIN LN_familias_tipo_informe ON LN_tipo_informes.idTipoInforme=LN_familias_tipo_informe.id_tipo_informe
            LEFT JOIN LN_familias ON LN_familias_tipo_informe.familia=LN_familias.familia 
            LEFT JOIN clientes ON ln_familias.cliente = clientes.cliente
        WHERE LN_tipo_informes.idTipoInforme= @idTipoInforme 
        ORDER BY nombre_tipo_informe ASC
        --
        RETURN;
    END
    --
    ELSE IF (@accion='SETS_INFORME_FAMILIA')
    BEGIN
        /* Levanta los set y subset de documentos asignados a la familia y el tipo de informe dado */
        -- levanta el set asignado a la familia
        SELECT LN_familias.set_doc AS set_doc,1 AS principal
        FROM LN_familias
        WHERE (LN_familias.familia=@familia)
        --
        UNION
        -- Levanta los subsets asignados a la conexion tipo de informe familia
        SELECT Item AS set_doc,0 AS principal 
        FROM dbo.DelimitedSplit8K(
            (
                SELECT LN_familias_tipo_informe.lista_subset AS set_doc
                FROM LN_familias_tipo_informe
                WHERE (LN_familias_tipo_informe.id_tipo_informe=@idTipoInforme AND LN_familias_tipo_informe.familia=@familia)
            )
        ,',')
    END
    ELSE IF (@accion='SETS_FAMILIA')
        BEGIN
            /* Levanta los tipos de documentos de los set y subset de documentos asignados a la familia */
            -- levanta los tipos de documentos del set asignado a la familia
            SELECT LN_set_tipo_doc.tipo_doc,LN_set_tipo_doc.activo,LN_tipos_doc.nombre_tipo_doc
            FROM LN_familias
                INNER JOIN LN_set_tipo_doc ON LN_set_tipo_doc.set_doc=LN_familias.set_doc
                INNER JOIN LN_tipos_doc ON LN_tipos_doc.tipo_doc=LN_set_tipo_doc.tipo_doc
            WHERE (LN_familias.familia=@familia)
            --
            UNION
            -- Levanta los tipos de documentos de los subsets asignados a la conexion tipos de informe con la familia dada
            SELECT DISTINCT LN_set_tipo_doc.tipo_doc,LN_set_tipo_doc.activo,LN_tipos_doc.nombre_tipo_doc
            FROM dbo.DelimitedSplit8K((SELECT dbo.SubsetsFamilia(@familia)),',')
                INNER JOIN LN_set_tipo_doc ON LN_set_tipo_doc.set_doc=Item
                INNER JOIN LN_tipos_doc ON LN_tipos_doc.tipo_doc=LN_set_tipo_doc.tipo_doc
            --
            RETURN;
        END
END
GO

Used By

No items found