dbo.Imperium_Racalcula_Compliance_Completo

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

/*

EXEC Imperium_Racalcula_Compliance_Completo


*/



CREATE OR ALTER PROCEDURE  dbo.Imperium_Racalcula_Compliance_Completo


AS

/*
@Cliente INT,
@Per INT
*/


BEGIN
 SET NOCOUNT ON;

DECLARE @ERRORNUMBER SMALLINT 

/*
declare @nuevo int = dbo.PeriodoAdelantado()
declare @viejo int = dbo.PeriodoVencido()
declare @anterior int = dbo.PeriodoMenosDos()

set @nuevo = dbo.PeriodoAdelantado()
set @viejo = dbo.PeriodoVencido()
set @anterior = dbo.PeriodoMenosDos()
/*

select @nuevo as nuevo,@viejo as viejo,@anterior as anterior

*/


exec Imperium_Crea_Periodocidades @viejo,@nuevo,'C','A'
exec Imperium_Crea_Periodocidades @viejo,@nuevo,'S','A'
exec Imperium_Crea_Periodocidades @viejo,@nuevo,'E','A'
exec Imperium_Crea_Periodocidades @viejo,@nuevo,'V','A'


exec Imperium_Crea_Periodocidades @anterior,@viejo,'C','V'
exec Imperium_Crea_Periodocidades @anterior,@viejo,'S','V'
exec Imperium_Crea_Periodocidades @anterior,@viejo,'E','V'
exec Imperium_Crea_Periodocidades @anterior,@viejo,'V','V'


update led_docs set estado_doc ='I',compliance_doc='A',status_doc='I', last_modified=getdate(),ingresado_por=15342812,ingresado=getdate() where doc_id in (
select doc_id from led_docs where tipo_doc in (730,735,736,753) and periodo = @nuevo and (fecha_vigencia is null or isnull(fecha_vigencia,getdate()-1) < getdate()))

/******* ACTUALIZACION DEL CAMPO STATUS_DOC PARA EL PERIODO QUE ACABA DE VENCER ******/


DECLARE @docum bigint

DECLARE DOCS_VENCIDOS CURSOR FOR

SELECT d.doc_id
FROM led_docs d
inner join led_contratistas r on d.contratista = r.contratista
inner join led_cliente_contratista lcc on 
(d.cliente = lcc.cliente and lcc.tipo_contratista = r.tipo_contratista and d.tipo_doc = lcc.tipo_doc)
WHERE d.periodo = dbo.PeriodoMenosDos()
and d.led_seccion = 'C'
AND d.doc_id_lista IS NULL
AND d.estado_doc = 'N'
AND d.status_doc <> 'E'

UNION ALL

SELECT d.doc_id
FROM led_docs d
inner join led_empleados r on d.empleado = r.empleado
inner join led_cliente_empleado lce on 
(d.cliente = lce.cliente and lce.tipo_empleado = r.tipo_empleado and d.tipo_doc = lce.tipo_doc)
WHERE d.periodo = dbo.PeriodoMenosDos()
and d.led_seccion = 'E'
AND d.doc_id_lista IS NULL
AND d.estado_doc = 'N'
AND d.status_doc <> 'E'

UNION ALL

SELECT d.doc_id
FROM led_docs d
inner join led_vehiculos r on d.vehiculo = r.vehiculo
inner join led_cliente_vehiculo lcv on 
(d.cliente = lcv.cliente and lcv.tipo_vehiculo = r.tipo_vehiculo and d.tipo_doc = lcv.tipo_doc)
WHERE d.periodo = dbo.PeriodoMenosDos()
and d.led_seccion = 'V'
AND d.doc_id_lista IS NULL
AND d.estado_doc = 'N'
AND d.status_doc <> 'E'


OPEN DOCS_VENCIDOS

fetch next from DOCS_VENCIDOS into @docum

while @@FETCH_STATUS = 0 begin

exec Imperium_Status_Doc @docum

fetch next from DOCS_VENCIDOS into @docum
end

CLOSE DOCS_VENCIDOS
DEALLOCATE DOCS_VENCIDOS
*/


DECLARE ImperiumDocs Cursor
FOR

select distinct contratista,dbo.PeriodoAdelantado() as periodo,'C' as led_seccion from led_contratistas where estado_contratista='A'
union
select distinct contratista,dbo.PeriodoAdelantado() as periodo,'E' as led_seccion from led_contratistas  where estado_contratista='A'
union
select distinct contratista,dbo.PeriodoAdelantado() as periodo,'V' as led_seccion from led_contratistas  where estado_contratista='A'
union
select distinct contratista,dbo.PeriodoAdelantado() as periodo,'S' as led_seccion from led_contratistas  where estado_contratista='A'
union
select distinct contratista,dbo.PeriodoVencido() as periodo,'C' as led_seccion from led_contratistas  where estado_contratista='A'
union
select distinct contratista,dbo.PeriodoVencido() as periodo,'E' as led_seccion from led_contratistas  where estado_contratista='A'
union
select distinct contratista,dbo.PeriodoVencido() as periodo,'V' as led_seccion from led_contratistas  where estado_contratista='A'
union
select distinct contratista,dbo.PeriodoVencido() as periodo,'S' as led_seccion from led_contratistas  where estado_contratista='A'
union
select distinct contratista,dbo.PeriodoMenosDos() as periodo,'C' as led_seccion from led_contratistas  where estado_contratista='A'
union
select distinct contratista,dbo.PeriodoMenosDos() as periodo,'E' as led_seccion from led_contratistas  where estado_contratista='A'
union
select distinct contratista,dbo.PeriodoMenosDos() as periodo,'V' as led_seccion from led_contratistas  where estado_contratista='A'
union
select distinct contratista,dbo.PeriodoMenosDos() as periodo,'S' as led_seccion from led_contratistas  where estado_contratista='A'

order by periodo desc,contratista desc

 /*
 
 select distinct contratista, periodo,iif(contratista = contratista_1,'C','S') as led_seccion,contratista_1 from led_DOCS
 WHERE led_seccion = 'C'
 and cliente = 9700868
 union
 select distinct contratista, periodo,led_seccion,contratista_1 from led_DOCS
 where led_seccion = 'E'
 and cliente = 9700868
 union
 select distinct contratista, periodo,led_seccion,contratista_1 from led_DOCS
 where led_seccion = 'V'
 and cliente = 9700868
 order by periodo desc
 */




Open ImperiumDocs


DECLARE @ledSeccion varchar(1)
DECLARE @IDContratista INT
DECLARE @IDContratista1 INT
DECLARE @periodo INT

Fetch NEXT FROM ImperiumDocs INTO @IDContratista,@periodo,@ledSeccion
While (@@FETCH_STATUS <> -1)
BEGIN

 BEGIN
  EXEC Imperium_Compliance_Periodo_Contratista @periodo,@IDContratista,@ledSeccion
 END
 /*
  BEGIN
  EXEC Imperium_Compliance_Periodo_Contratista @periodo,@IDContratista,'S'
  END
  BEGIN
  EXEC Imperium_Compliance_Periodo_Contratista @periodo,@IDContratista,'E'
  END
  BEGIN 
  EXEC Imperium_Compliance_Periodo_Contratista @periodo,@IDContratista,'V'
  END
  */


Fetch NEXT FROM ImperiumDocs INTO @IDContratista,@periodo,@ledSeccion

END

CLOSE ImperiumDocs
DEALLOCATE ImperiumDocs

END

GO