dbo.informes_

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

3
Name Data Type Length Description
@accion varchar 20
@informe int 4
@tipoinforme int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE OR ALTER PROCEDURE dbo.informes_
     @accion varchar(20),
     @informe int, 
     @tipoinforme int = null 
AS
BEGIN
    declare @idtarea int
    declare @informe_ int
    if(@accion = 'tareas_sin_idtarea')
    begin
        select count(*) cantidad from informes i 
            inner join LN_informe_design ides on ides.idTipoInforme = @tipoinforme 
            inner join LN_tareas t on t.id_tipo_informe_blue = i.id_tipo_informe and t.idTarea = ides.idElem 
            and ides.tipo_elem = 'T'
        where i.informe_padre = @informe and i.idTarea is null 
        return 
    end


 if(@accion = 'select')
    begin
        select * from informes 
        where informe = @informe   
        return 
    end



    if(@accion = 'actualizar_idtarea')
    begin
        --declaramos las variables del cursor
        DECLARE actualizar_idtarea CURSOR FOR 
            --búsqueda de lastareas hijas de un informe padre que no tienen idtarea
            select t.idTarea idtareaInforme, informe from informes i 
                inner join LN_informe_design ides on ides.idTipoInforme = @tipoinforme
                inner join LN_tareas t on t.id_tipo_informe_blue = i.id_tipo_informe and t.idTarea = ides.idElem 
                and ides.tipo_elem = 'T'
            where i.informe_padre = @informe and i.idTarea is null 
  OPEN actualizar_idtarea
        FETCH NEXT FROM actualizar_idtarea INTO @idtarea,@informe_
        WHILE @@fetch_status = 0
        BEGIN
            ---actualiza el idtarea del/los informes hijos
            update informes set idTarea = @idtarea where informe = @informe_
            FETCH NEXT FROM actualizar_idtarea INTO @idtarea,@informe_
        END
        CLOSE actualizar_idtarea
        DEALLOCATE actualizar_idtarea
        return 
    end
END
GO

Used By

No items found