dbo.Imperium_vista_contratista_Alta_Empleado

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

8
Name Data Type Length Description
@p_contratista int 4
@p_id_padron int 4
@p_tipo_empleado tinyint 1
@p_tipo_alta tinyint 1
@p_alta_afip datetime 8
@p_user_id int 4
@p_domicilio_trabajo varchar 500
@p_inicio_servicio datetime 8

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.Imperium_vista_contratista_Alta_Empleado
 -- Add the parameters for the stored procedure here
 @p_contratista          int,
 @p_id_padron          int,
 @p_tipo_empleado         tinyint,
 @p_tipo_alta          tinyint,
 @p_alta_afip          datetime,
 @p_user_id           int,
 @p_domicilio_trabajo        varchar(500) = NULL,
 @p_inicio_servicio datetime = null 
 
 
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;
 /* 05/10/2023: si no viene fecha de alta, tomamos el periodo vencido */
 if (@p_alta_afip is null)
 begin
  declare @p_txt varchar(10) = dbo.periodoVencido();
  set @p_txt = SUBSTRING(@p_txt,1,4) + '-' + SUBSTRING(@p_txt,5,2) + '-01'
  set @p_alta_afip = convert(date,@p_txt)
 end 
 /**/
 IF (@p_contratista > 0 AND @p_id_padron > 0 AND @p_tipo_empleado > 0 AND @p_user_id > 0) BEGIN

  DECLARE @empleado     INT
  DECLARE @cliente     INT
  DECLARE @contratista_1    INT
  DECLARE @modalidad     VARCHAR(1)
  DECLARE @tipo_doc     SMALLINT
  DECLARE @grupo_doc     INT
  DECLARE @dias_tolerancia   TINYINT
  DECLARE @fecha_tolerancia   DATETIME
  DECLARE @fecha_vigencia    DATETIME
  DECLARE @estado_inicial    VARCHAR(1)
  DECLARE @periodicidad    VARCHAR(1)
  DECLARE @doc_id_lista    SMALLINT
  DECLARE @compliance_doc    VARCHAR(1)
  DECLARE @alta      bit = 0
  DECLARE @reafectacion    bit = 0
  DECLARE @reactivacion    bit = 0
  DECLARE @estado_anterior   varchar(1) = NULL
  DECLARE @periodo     INT
  DECLARE @doc_log     VARCHAR(MAX)
  DECLARE @locacion     INT
  DECLARE @periodos_text    VARCHAR(20) = NULL

  DECLARE @periodo_adelantado INT = CONVERT(INT, CONVERT(VARCHAR(4),YEAR(GETDATE())) + RIGHT('00' + CONVERT(VARCHAR(2),MONTH(GETDATE())), 2))
  DECLARE @periodo_vencido INT = CONVERT(INT, CONVERT(VARCHAR(4),YEAR(DATEADD(MONTH,-1,GETDATE()))) + RIGHT('00' + CONVERT(VARCHAR(2),MONTH(DATEADD(MONTH,-1,GETDATE()))), 2))


  SELECT @cliente = cliente, @contratista_1 = contratista_1
  FROM led_contratistas WHERE contratista = @p_contratista

  IF NOT EXISTS (SELECT empleado FROM led_empleados WHERE contratista = @p_contratista AND id_padron = @p_id_padron) BEGIN

   INSERT INTO led_empleados
   (cliente, estado_empleado, tipo_empleado, contratista, id_padron, contratista_1, alta_afip, created, domicilio_trabajo,alta_servicio)
   SELECT @cliente as cliente, 'A' as estado_empleado, @p_tipo_empleado as tipo_empleado, 
      contratista, @p_id_padron as id_padron, 
      @contratista_1 AS contratista_1, @p_alta_afip as alta_afip, GETDATE() as created, @p_domicilio_trabajo AS domicilio_trabajo, @p_inicio_servicio as alta_servicio
   FROM led_contratistas
   WHERE contratista = @p_contratista


   SELECT @empleado = @@IDENTITY

   SET @alta = 1

  END ELSE BEGIN
   /* existe el id padron bajo el contratista */

   SELECT @empleado = empleado, @estado_anterior = estado_empleado   
   from led_empleados
   WHERE contratista = @p_contratista AND id_padron = @p_id_padron

   UPDATE led_empleados SET tipo_empleado = @p_tipo_empleado WHERE empleado = @empleado
   if(@p_alta_afip is not null)
      UPDATE led_empleados SET alta_afip = @p_alta_afip WHERE empleado = @empleado
   if(@p_inicio_servicio is not null)
    UPDATE led_empleados SET alta_servicio = @p_inicio_servicio WHERE empleado = @empleado

  END

  
  /* modalidades del empleado - vencida / adelantada */
  DECLARE modalidades CURSOR FOR

   SELECT led_tipos_doc.modalidad
   FROM led_tipos_doc 
   inner join led_cliente_empleado on led_tipos_doc.tipo_doc = led_cliente_empleado.tipo_doc
   WHERE led_cliente_empleado.tipo_empleado = @p_tipo_empleado
   AND led_cliente_empleado.cliente = @cliente
   GROUP BY led_tipos_doc.modalidad
   HAVING led_tipos_doc.modalidad IS NOT NULL
   ORDER BY led_tipos_doc.modalidad DESC

  OPEN modalidades  

  FETCH NEXT FROM modalidades INTO @modalidad  

  WHILE @@FETCH_STATUS = 0 BEGIN 

   IF (@modalidad = 'V') BEGIN
   
    IF NOT EXISTS (SELECT empleado FROM led_empleados_periodo WHERE empleado = @empleado AND periodo = @periodo_vencido) BEGIN
    
     INSERT INTO led_empleados_periodo 
     (empleado, contratista, tipo_alta, periodo, contratista_1, fecha_afectacion)
     values
     (@empleado, @p_contratista, @p_tipo_alta, @periodo_vencido, @contratista_1, GETDATE())

     IF (@estado_anterior = 'A') BEGIN
      SET @reafectacion = 1
     END


     IF (@periodos_text IS NOT NULL) SET @periodos_text = @periodos_text + ', '
     SET @periodos_text = @periodos_text + CONVERT(VARCHAR, @periodo_vencido)

    END


    IF (isnuLL(@estado_anterior,'N') = 'N') BEGIN
     UPDATE led_empleados SET estado_empleado = 'A' WHERE empleado = @empleado

     SET @reactivacion = 1
    END

   END ELSE BEGIN
    /* periodo adelantado */

    IF NOT EXISTS (SELECT empleado FROM led_empleados_periodo WHERE empleado = @empleado AND periodo = @periodo_adelantado) BEGIN

     INSERT INTO led_empleados_periodo 
     (empleado, contratista, tipo_alta, periodo, contratista_1, fecha_afectacion)
     values
     (@empleado, @p_contratista, NULL, @periodo_adelantado, @contratista_1, GETDATE())


     IF (@estado_anterior = 'A') BEGIN
      SET @reafectacion = 1
     END

     IF (@periodos_text IS NOT NULL) SET @periodos_text = @periodos_text + ', '
     SET @periodos_text = @periodos_text + CONVERT(VARCHAR, @periodo_adelantado)

    END
 
    IF (@estado_anterior = 'N') BEGIN
     UPDATE led_empleados SET estado_empleado = 'A' WHERE empleado = @empleado

     SET @reactivacion = 1
    END

   END

   FETCH NEXT FROM modalidades INTO @modalidad  
  END

  CLOSE modalidades
  DEALLOCATE modalidades
  /* fin modalidades */


  /* tabla multi */
  IF NOT EXISTS (SELECT empleado FROM led_empleado_multi WHERE empleado = @empleado) BEGIN

   INSERT INTO led_empleado_multi
   (empleado, id, tipo_empleado, id_dep, vigencia_desde, vigencia_hasta, tipo_empleado_principal,
    contratista, contratista_1, cliente, activo, created, created_by)
   VALUES
   (@empleado, 1, @p_tipo_empleado, 0, convert(date,getdate()), NULL, NULL,
    @p_contratista, @contratista_1, @cliente, 1, GETDATE(), @p_user_id)


  END ELSE BEGIN

   IF NOT EXISTS (SELECT empleado FROM led_empleado_multi WHERE empleado = @empleado AND tipo_empleado = @p_tipo_empleado) BEGIN

    INSERT INTO led_empleado_multi
    (empleado, id, tipo_empleado, id_dep, vigencia_desde, vigencia_hasta, tipo_empleado_principal,
     contratista, contratista_1, cliente, activo, created, created_by)
    SELECT @empleado AS empleado, 
     (SELECT ISNULL(MAX(id), 0) + 1 FROM led_empleado_multi WHERE empleado = @empleado) AS id,      
     @p_tipo_empleado AS tipo_empleado, 0 AS id_dep, 
     convert(date,getdate()) AS vigencia_desde, NULL AS vigencia_hasta, 
     NULL as tipo_empleado_principal,
     @p_contratista AS contratista, @contratista_1 AS contratista_1,
     @cliente AS cliente, 1 AS activo, GETDATE() AS created, @p_user_id as created_by


   END ELSE BEGIN

    UPDATE led_empleado_multi SET
    activo = 1, 
    modified = GETDATE(),
    modified_by = @p_user_id,
    vigencia_desde = convert(date,getdate()),
    vigencia_hasta = NULL
    WHERE empleado = @empleado
    AND tipo_empleado = @p_tipo_empleado

   END

   UPDATE led_empleado_multi SET
   activo = 0,
   modified = GETDATE(),
   modified_by = @p_user_id
   WHERE empleado = @empleado
   AND tipo_empleado <> @p_tipo_empleado

  END
  /* fin tabla multi */


  /* documentos de alta */
  IF (NOT @reafectacion = 1) BEGIN

   IF (@p_tipo_alta > 0) BEGIN 

    DECLARE tipos_doc_alta CURSOR FOR

     SELECT led_cliente_empleado.tipo_doc, led_tipos_doc.modalidad,
      led_cliente_empleado.dias_tolerancia, led_cliente_empleado.estado_inicial,
      led_grupo_tipo_doc.grupo_doc, led_tipos_doc.periodicidad, led_tipos_doc.tipo_doc_lista
     FROM led_cliente_empleado inner join led_tipos_doc
      on led_cliente_empleado.tipo_doc = led_tipos_doc.tipo_doc
     inner join led_grupo_tipo_doc on led_tipos_doc.tipo_doc = led_grupo_tipo_doc.tipo_doc
     inner join led_grupos_doc on 
      (led_grupo_tipo_doc.grupo_doc = led_grupos_doc.grupo_doc
      AND led_cliente_empleado.cliente = led_grupos_doc.cliente)
     WHERE led_cliente_empleado.cliente = @cliente
     AND led_cliente_empleado.tipo_empleado = @p_tipo_empleado
     AND led_cliente_empleado.tipo_alta = @p_tipo_alta
     AND led_cliente_empleado.activo = 1

    OPEN tipos_doc_alta  

    FETCH NEXT FROM tipos_doc_alta INTO @tipo_doc, @modalidad, @dias_tolerancia, 
             @estado_inicial, @grupo_doc, @periodicidad, @doc_id_lista

    WHILE @@FETCH_STATUS = 0 BEGIN
    
     IF (@modalidad = 'V') 
      SET @periodo = @periodo_vencido
     ELSE
      SET @periodo = @periodo_adelantado

     IF (@estado_inicial = 'N')
      SET @compliance_doc = 'B'
     ELSE
      IF (@estado_inicial = 'I')
       SET @compliance_doc = 'B'
      ELSE
       IF (@estado_inicial = 'V')
        SET @compliance_doc = 'V'
       ELSE
        SET @compliance_doc = 'N'

     
     IF (@dias_tolerancia > 0)
      SET @fecha_tolerancia = DATEADD(SECOND,-1,CONVERT(DATETIME,DATEADD(DAY, @dias_tolerancia+1, CONVERT(DATE, GETDATE()))))
     ELSE
      SET @fecha_tolerancia = DATEADD(SECOND,-1,CONVERT(DATETIME,DATEADD(DAY, 6, CONVERT(DATE, GETDATE()))))


     DECLARE @dias_mes_a INT = datediff(day, getdate(), dateadd(month, 1, getdate()))
     DECLARE @dias_mes_v INT = datediff(day, dateadd(month,-1,getdate()), dateadd(month, 1, dateadd(month,-1,getdate())))
     DECLARE @mes_a INT = month(getdate())
     DECLARE @mes_v INT = month(dateadd(month,-1,getdate()))
     DECLARE @ano_a INT = Year(getdate())
     DECLARE @ano_v INT = Year(dateadd(month,-1,getdate()))


     IF (@periodicidad = 'M') BEGIN

      IF (@modalidad = 'V')
       SET @fecha_vigencia = DATETIMEFROMPARTS(@ano_v,@mes_v,@dias_mes_v,23,59,59,0)
      ELSE
       SET @fecha_vigencia = DATETIMEFROMPARTS(@ano_a,@mes_a,@dias_mes_a,23,59,59,0)

     END ELSE

      IF (@periodicidad = 'A') BEGIN

       IF (@modalidad = 'V')
        SET @fecha_vigencia = DATETIMEFROMPARTS(@ano_v,12,31,23,59,59,0)
       ELSE
        SET @fecha_vigencia = DATETIMEFROMPARTS(@ano_a,12,31,23,59,59,0)

      END ELSE       
       SET @fecha_vigencia = NULL

     

     IF NOT EXISTS (SELECT tipo_doc, periodo, led_seccion, contratista, empleado
         FROM led_docs
         WHERE tipo_doc = @tipo_doc
         AND periodo = @periodo
         AND led_seccion = 'E'
         AND contratista = @p_contratista
         AND empleado = @empleado) BEGIN

      SET @doc_log = CONVERT(VARCHAR, GETDATE(), 120) + ' - GENERACION AUTOMATICA DE DOCUMENTO DE ALTA DE EMPLEADO'

      INSERT INTO led_docs 
      (tipo_doc, cliente, contratista, contratista_1, empleado, led_seccion, periodo,
      insertado, estado_doc, compliance_doc, grupo_doc, fecha_tolerancia, fecha_vigencia, 
      doc_id_lista, doc_log)
      VALUES
      (@tipo_doc, @cliente, @p_contratista, @contratista_1, @empleado, 'E', @periodo,
      GETDATE(), @estado_inicial, @compliance_doc, @grupo_doc, @fecha_tolerancia, 
      @fecha_vigencia, @doc_id_lista, @doc_log)


     END


     FETCH NEXT FROM tipos_doc_alta INTO @tipo_doc, @modalidad, @dias_tolerancia, 
              @estado_inicial, @grupo_doc, @periodicidad, @doc_id_lista
    END

    CLOSE tipos_doc_alta
    DEALLOCATE tipos_doc_alta



   END

  END
  /* fin doc de alta */


  /* Locaciones, las que tenga el contratista / subcontratista  */
  DECLARE Locaciones CURSOR FOR

   SELECT led_locaciones.locacion
   FROM led_locaciones INNER JOIN led_contratista_locaciones
   ON led_locaciones.locacion = led_contratista_locaciones.locacion
   WHERE led_locaciones.visible = 1
   AND led_contratista_locaciones.contratista = @p_contratista
   AND led_contratista_locaciones.vigencia_desde <= GETDATE()
   AND (led_contratista_locaciones.vigencia_hasta IS NULL
     OR led_contratista_locaciones.vigencia_hasta > GETDATE())
   AND led_contratista_locaciones.activo = 1


  OPEN Locaciones  

  FETCH NEXT FROM Locaciones INTO @locacion

  WHILE @@FETCH_STATUS = 0 BEGIN 

   IF NOT EXISTS (SELECT locacion FROM led_empleado_locaciones WHERE empleado = @empleado AND locacion = @locacion) BEGIN

    INSERT INTO led_empleado_locaciones
    (empleado, locacion, asignada, asignada_por, 
    vigencia_desde, vigencia_hasta, activo, created, created_by)
    VALUES
    (@empleado, @locacion, GETDATE(), @p_user_id,
    DATETIMEFROMPARTS(year(getdate()),Month(getdate()),day(getdate()),0,0,0,0), NULL, 1, GETDATE(), @p_user_id)

   END ELSE BEGIN

    UPDATE led_empleado_locaciones SET
    vigencia_desde = DATETIMEFROMPARTS(year(getdate()),Month(getdate()),day(getdate()),0,0,0,0), 
    vigencia_hasta = NULL,
    activo = 1,
    modified = GETDATE(),
    modified_by = @p_user_id
    WHERE empleado = @empleado 
    AND locacion = @locacion

   END

   FETCH NEXT FROM Locaciones INTO @locacion
  END

  CLOSE Locaciones
  DEALLOCATE Locaciones
  /* fin locaciones */


  /* LOG */
  DECLARE @logtext VARCHAR(250) = NULL
  DECLARE @nombre VARCHAR(200) = NULL
  DECLARE @identif VARCHAR(100) = NULL

  SELECT @nombre = padrones.nombre_persona, 
    @identif = identificadores.abreviatura + ' ' + padrones.numero
  FROM padrones INNER JOIN led_empleados ON padrones.id_padron = led_empleados.id_padron
  INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
  WHERE led_empleados.empleado = @empleado

  IF (@alta = 1) BEGIN

   SET @logtext = 'Alta nuevo empleado: ' + @nombre + ' (' + @identif + ')'

   INSERT INTO led_log
   (led_seccion, contratista, empleado, tipo_log, descripcion_log, 
   horario_log, user_id, cliente, doc_id, contratista_1)
   VALUES
   ('E', @p_contratista, @empleado, 'A', @logtext, GETDATE(), @p_user_id, @cliente, NULL, @contratista_1)

  END ELSE

   IF (@reafectacion = 1) BEGIN

    SET @logtext = 'Reafectación empleado: ' + @nombre + ' (' + @identif + ')'

    INSERT INTO led_log
    (led_seccion, contratista, empleado, tipo_log, descripcion_log, 
    horario_log, user_id, cliente, doc_id, contratista_1)
    VALUES
    ('E', @p_contratista, @empleado, 'R', @logtext, GETDATE(), @p_user_id, @cliente, NULL, @contratista_1)


   END ELSE

    IF (@reactivacion = 1) BEGIN

     SET @logtext = 'Alta empleado (estado anterior NO activo): ' + @nombre + ' (' + @identif + ')'

     INSERT INTO led_log
     (led_seccion, contratista, empleado, tipo_log, descripcion_log, 
     horario_log, user_id, cliente, doc_id, contratista_1)
     VALUES
     ('E', @p_contratista, @empleado, 'A', @logtext, GETDATE(), @p_user_id, @cliente, NULL, @contratista_1)

    END

  /* Reapertura de documentos nómina */
  DECLARE @doc_id BIGINT
  DECLARE @nombre_tipo_doc VARCHAR(100)
  DECLARE @texto_noti VARCHAR(MAX)
  DECLARE @notificacion INT
  DECLARE @doc_version TINYINT
  DECLARE @docaux_log VARCHAR(MAX)

  DECLARE Periodos CURSOR FOR

   SELECT periodo FROM led_empleados_periodo 
   WHERE empleado = @empleado
   AND periodo >= @periodo_vencido
   ORDER BY periodo

  OPEN Periodos 
  
  FETCH NEXT FROM Periodos INTO @periodo

  WHILE @@FETCH_STATUS = 0 BEGIN 

   DECLARE DocLista CURSOR FOR

    SELECT led_docs.doc_id, led_tipos_doc.nombre_tipo_doc, led_docs.doc_version, led_tipos_doc.modalidad
    FROM led_docs 
    INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
    INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
    INNER JOIN led_contratista_multi ON led_docs.contratista = led_contratista_multi.contratista
    INNER JOIN led_cliente_contratista ON
     (led_contratistas.cliente = led_cliente_contratista.cliente
     AND led_contratista_multi.tipo_contratista = led_cliente_contratista.tipo_contratista
     AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc)
    WHERE led_docs.led_seccion = 'C'
    AND led_docs.contratista = @p_contratista
    AND led_docs.periodo = @periodo
    AND led_docs.estado_doc = 'V'
    AND led_docs.doc_id_lista IS NULL
    AND led_tipos_doc.validar_lista_cuil > 0
    AND led_cliente_contratista.activo = 1
    AND led_contratista_multi.activo = 1
    AND led_contratista_multi.vigencia_desde < GETDATE()
    AND (led_contratista_multi.vigencia_hasta > GETDATE() OR led_contratista_multi.vigencia_hasta IS NULL)
    AND led_docs.tipo_doc IN
      (SELECT led_tipos_doc.tipo_doc_lista
      FROM led_empleados
      INNER JOIN led_empleado_multi ON led_empleados.tipo_empleado = led_empleado_multi.tipo_empleado
      INNER JOIN led_cliente_empleado ON
       (led_empleado_multi.tipo_empleado = led_cliente_empleado.tipo_empleado
       AND led_empleados.cliente = led_cliente_empleado.cliente)
      INNER JOIN led_tipos_doc ON led_cliente_empleado.tipo_doc = led_tipos_doc.tipo_doc
      WHERE led_empleados.empleado = @empleado
      AND led_cliente_empleado.activo = 1
      AND led_empleado_multi.activo = 1
      AND led_empleado_multi.vigencia_desde < GETDATE()
      AND (led_empleado_multi.vigencia_hasta > GETDATE() OR led_empleado_multi.vigencia_hasta IS NULL)
      GROUP BY led_tipos_doc.tipo_doc_lista
      HAVING led_tipos_doc.tipo_doc_lista IS NOT NULL)
    GROUP BY led_docs.doc_id, led_tipos_doc.nombre_tipo_doc, led_docs.doc_version, led_tipos_doc.modalidad
   
   OPEN DocLista

   FETCH NEXT FROM DocLista INTO @doc_id, @nombre_tipo_doc, @doc_version, @modalidad

   WHILE @@FETCH_STATUS = 0 BEGIN 

    if ( iif(@modalidad = 'V', iif(@periodo = @periodo_vencido, 1, 0), iif(@periodo = @periodo_adelantado, 1, 0) ) > 0) begin

     /* Sólo debo reaperturar cuando el período coincide con la modalidad del tipo de documento que estoy analizando */

     /* Notificar reapertura */
     SET @texto_noti = 'El documento ' + @nombre_tipo_doc + ' correspondiente al período ' + left(convert(varchar, dbo.Periodo2Date(@periodo), 120), 7) + ' '
     SET @texto_noti = @texto_noti + 'que se encontraba previamente verificado ha sido reabierto y colocado en estado "Ingresado" debido a la incorporación a la nómina del siguiente ' 
     SET @texto_noti = @texto_noti + 'empleado: ' + @nombre + ' (' + @identif + '). El documento ingresa nuevamente en proceso de verificación por parte de Fidelitas.' + CHAR(10)
     SET @texto_noti = @texto_noti + 'Si el archivo adjunto preexistente incluye al recurso incorporado no es necesario tomar ninguna acción. Por el contrario, si no lo incluye, usted puede '
     SET @texto_noti = @texto_noti + 'reemplazar o adjuntar nuevos archivos al documento a los fines de cumplir con la documentación requerida.'

     INSERT INTO led_notificaciones
     (horario, tipo_notificacion, texto_notificacion, visible_contratista, 
     cliente, contratista, leido, usuario_de, usuario_para, doc_id)
     VALUES
     (GETDATE(), 'A2C', @texto_noti, 1, @cliente, @contratista_1, 0, 15342812, @p_user_id, @doc_id)

     SELECT @notificacion = @@IDENTITY


     SELECT @doc_log = doc_log FROM led_docs WHERE doc_id = @doc_id
   
     SET @doc_log = @doc_log + CHAR(10) + CONVERT(VARCHAR,GETDATE(),120) + ': REAPERTURA DE DOCUMENTO POR INCORPORACION A NOMINA DEL EMPLEADO ' + @nombre + ' (' + @identif + ')'

     UPDATE led_docs SET
     estado_doc = 'I',
     verificado = NULL,
     verificado_por = NULL,
     aprobacion_parcial = 1,
     parcial_actualizado = 0,
     reapertura_por_alta = 1,
     doc_log = @doc_log,
     notificacion = @notificacion,
     last_modified = GETDATE()
     WHERE doc_id = @doc_id

     /* Actualización de la versión auxiliar si corresponde */
     IF (@doc_version > 0 AND @periodo = dbo.PeriodoAdelantado()) BEGIN

      SELECT @docaux_log = doc_log FROM led_docs_aux
      WHERE doc_id = @doc_id
      AND doc_version = @doc_version


      UPDATE led_docs_aux SET 
      estado_doc = 'I',
      doc_log = @docaux_log + CHAR(10) + CONVERT(VARCHAR,GETDATE(),120) + ': REAPERTURA DE DOCUMENTO POR INCORPORACION A NOMINA DEL EMPLEADO ' + @nombre + ' (' + @identif + ')',
      aprobacion_parcial = 1,
      reapertura_por_alta = 1
      WHERE doc_id = @doc_id
      AND doc_version = @doc_version

     END

    end
    
    FETCH NEXT FROM DocLista INTO @doc_id, @nombre_tipo_doc, @doc_version, @modalidad
   END
   CLOSE DocLista
   DEALLOCATE DocLista

   FETCH NEXT FROM Periodos INTO @periodo
  END

  CLOSE Periodos
  DEALLOCATE Periodos


  /* ejecución de SP para creación de documentos */
  EXEC [dbo].[Imperium_Multi_Carga_Docs_Empleados] @cliente, @empleado, @periodo_vencido, 'V'
  EXEC [dbo].[Imperium_Multi_Carga_Docs_Empleados] @cliente, @empleado, @periodo_adelantado, 'A'


 END
 
END

GO

Used By

No items found