dbo.Imperium_Baja_Automatica_Docs

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO

CREATE OR ALTER PROCEDURE  dbo.Imperium_Baja_Automatica_Docs

AS

BEGIN
 SET NOCOUNT ON;

DECLARE @ERRORNUMBER SMALLINT 
DECLARE @IDDoc bigint 
DECLARE @led_seccion varchar(1)
DECLARE @contratista int 
DECLARE @empleado int
DECLARE @vehiculo int
DECLARE @tipo_log varchar(1)
DECLARE @descripcion_log varchar(200)
DECLARE @horario_log datetime
DECLARE @user_id int
DECLARE @cliente int
DECLARE @contratista_1 int
DECLARE @tipo_doc int
DECLARE @doc_id_lista int
DECLARE @fecha_vigencia datetime
DECLARE @periodoA INT
DECLARE @periodoV INT
DECLARE @Now varchar(10)
DECLARE @userContratista INT
DECLARE @estadoV1 VARCHAR(1)
DECLARE @doc_version INT 
DECLARE @doc_versionANT INT 

  select @periodoA = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())),2)
  select @Now =  RIGHT('00' +convert(varchar(2),datepart(day,getdate())),2) + '-' + RIGHT('00' +convert(varchar(2),datepart(month,getdate())),2) + '-' + convert(varchar(4),datepart(year,getdate()))

  /*set @periodoA  = dbo.PeriodoAdelantado()*/
  set @periodoA  = dbo.PeriodoAdelantado()
  set @periodoV = dbo.PeriodoVencido()

  DECLARE LedBajaDocs Cursor
  FOR
/*
SELECT doc_id FROM LED_DOCS WHERE estado_doc='I' AND isnull(aprobacion_parcial,0) = 1 and fecha_tolerancia < getdate()
and isnull(parcial_actualizado,0) = 0 and isnull(reapertura_por_alta,0) = 0 

DECLARE @periodoA INT
*/



   SELECT LED_DOCS.doc_id,LED_DOCS.led_seccion,LED_DOCS.contratista,LED_DOCS.empleado,LED_DOCS.vehiculo,'R' as tipo_log,
   /*char(10) + @Now + ' Rechazo automático por vencimiento del plazo de carga. ' as descripcion_log,getdate() as horario_log,*/
   char(10) + @Now + ' Rechazo automático: documento con aprobación parcial, debe cumplimentarse en su totalidad. ' as descripcion_log,getdate() as horario_log,
   15342812 as user_id,LED_DOCS.cliente,LED_DOCS.contratista_1,LED_DOCS.tipo_doc,LED_DOCS.doc_id_lista,LED_DOCS.fecha_vigencia,led_contratistas.user_id as userContratista,LED_DOCS_AUX.estado_doc as estadoV1
   ,ISNULL(LED_DOCS.doc_version,0) AS doc_version
    FROM LED_DOCS 
    inner join led_contratistas on led_docs.contratista_1 = led_contratistas.contratista
    left join led_docs_aux on (led_docs.doc_id=led_docs_aux.doc_id and led_docs_aux.doc_version=led_docs.doc_versioN)
    WHERE LED_DOCS.estado_doc='I' AND isnull(LED_DOCS.aprobacion_parcial,0) = 1 and LED_DOCS.fecha_tolerancia < getdate()
   and isnull(LED_DOCS.parcial_actualizado,0) = 0 and isnull(LED_DOCS.reapertura_por_alta,0) = 0 
   and LED_DOCS.doc_id_lista is null
  
   
   UNION ALL

   SELECT LED_DOCS.doc_id,LED_DOCS.led_seccion,LED_DOCS.contratista,LED_DOCS.empleado,LED_DOCS.vehiculo,'R' as tipo_log,
    char(10) + @Now + ' Rechazo automático por vencimiento de fecha vigencia del documento.' as descripcion_log,getdate() as horario_log,
   15342812 as user_id,LED_DOCS.cliente,LED_DOCS.contratista_1,LED_DOCS.tipo_doc,LED_DOCS.doc_id_lista,LED_DOCS.fecha_vigencia,led_contratistas.user_id as userContratista,LED_DOCS_AUX.estado_doc as estadoV1
   ,ISNULL(LED_DOCS.doc_version,0) AS doc_version
   FROM LED_DOCS 
   inner join led_contratistas on led_docs.contratista_1 = led_contratistas.contratista
   left join led_docs_aux on (led_docs.doc_id=led_docs_aux.doc_id and led_docs_aux.doc_version=led_docs.doc_versioN)
   WHERE LED_DOCS.estado_doc='V' AND LED_DOCS.fecha_vigencia < getdate() AND LED_DOCS.PERIODO = @periodoA

   UNION ALL

   SELECT LED_DOCS.doc_id,LED_DOCS.led_seccion,LED_DOCS.contratista,LED_DOCS.empleado,LED_DOCS.vehiculo,'R' as tipo_log,
    char(10) + @Now + ' Rechazo automático por vencimiento de fecha vigencia del documento.' as descripcion_log,getdate() as horario_log,
   15342812 as user_id,LED_DOCS.cliente,LED_DOCS.contratista_1,LED_DOCS.tipo_doc,LED_DOCS.doc_id_lista,LED_DOCS.fecha_vigencia,led_contratistas.user_id as userContratista,LED_DOCS_AUX.estado_doc as estadoV1
   ,ISNULL(LED_DOCS.doc_version,0) AS doc_version
   FROM LED_DOCS 
   inner join led_contratistas on led_docs.contratista_1 = led_contratistas.contratista
   left join led_docs_aux on (led_docs.doc_id=led_docs_aux.doc_id and led_docs_aux.doc_version=led_docs.doc_version)
   WHERE LED_DOCS.estado_doc='V' AND LED_DOCS.fecha_vigencia < getdate() AND LED_DOCS.PERIODO = @periodoV 
   and  led_docs.tipo_doc in (722,760,475,749,737,767,769,512,510,706,479)


   /*
    and cliente not in (9335603)
    */



   ORDER BY fecha_vigencia DESC

  Open LedBajaDocs

  Fetch NEXT FROM LedBajaDocs INTO @IDDoc,@led_seccion,@contratista,@empleado,@vehiculo,@tipo_log,@descripcion_log,@horario_log,@user_id,@cliente,@contratista_1,@tipo_doc,@doc_id_lista,@fecha_vigencia,@userContratista,@estadoV1,@doc_version

  While (@@FETCH_STATUS = 0)
  BEGIN


  BEGIN TRY


   update led_docs set estado_doc = 'R',compliance_doc='R',rechazado_por=15342812,rechazado=getdate(),last_modified=getdate(),
   doc_log = convert(varchar(max),doc_log) + @descripcion_log + char(10) ,
   texto_rechazo = @descripcion_log + char(10),status_doc='R',doc_version=0
   where doc_id = @IDDoc
   
   INSERT INTO led_log (led_seccion,contratista,empleado,vehiculo,tipo_log,
   descripcion_log,horario_log,user_id,cliente,contratista_1,doc_id) 
   VALUES (@led_seccion,@contratista,@empleado,@vehiculo,@tipo_log,@descripcion_log,@horario_log,@user_id,@cliente,@contratista_1,@IDDoc)

   insert into led_notificaciones (horario,tipo_notificacion,texto_notificacion,visible_contratista,
   cliente,contratista,leido,usuario_de,usuario_para,doc_id)
   values (GETDATE(),'A2C',@descripcion_log,1,@cliente,@contratista_1,0,15342812,@userContratista,@IDDoc)

   IF(@doc_version > 0)
   BEGIN
    SET @doc_versionANT = @doc_version - 1
   END

   /* SI LA V1 ES V RECHAZAMOS LA V1 EN AUX TAMBIEN*/

   IF (@estadoV1 = 'V')
    BEGIN
      update led_docs_AUX SET estado_doc = 'R',compliance_doc='R',rechazado_por=15342812,rechazado=getdate(),
       doc_log = convert(varchar(max),doc_log) + @descripcion_log + char(10) ,
       texto_rechazo = @descripcion_log + char(10)
       where doc_id = @IDDoc and doc_version=@doc_version   
    END


   /* SI LA V0 ES I / R  RECHAZAMOS LA V0 EN AUX TAMBIEN*/ 
   IF (@estadoV1 = 'I' or @estadoV1 = 'R')
    BEGIN
      update led_docs_AUX SET estado_doc = 'R',compliance_doc='R',rechazado_por=15342812,rechazado=getdate(),
       doc_log = convert(varchar(max),doc_log) + @descripcion_log + char(10) ,
       texto_rechazo = @descripcion_log + char(10)
       where doc_id = @IDDoc and doc_version=@doc_versionANT
    END








  END TRY



  BEGIN CATCH

  SET @ERRORNUMBER = 1

  END CATCH

  Fetch NEXT FROM LedBajaDocs INTO @IDDoc,@led_seccion,@contratista,@empleado,@vehiculo,@tipo_log,@descripcion_log,@horario_log,@user_id,@cliente,@contratista_1,@tipo_doc,@doc_id_lista,@fecha_vigencia,@userContratista,@estadoV1,@doc_version

  END

  CLOSE LedBajaDocs
  DEALLOCATE LedBajaDocs

end
GO