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_Regeneracion_Documentacion_Cliente
*/
CREATE OR ALTER PROCEDURE dbo.Imperium_Regeneracion_Documentacion_Cliente
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ERRORNUMBER int
DECLARE @StartOfMonth DATE
DECLARE @ActualDate DATE
DECLARE @periodoV INT = NULL
DECLARE @periodoVAnt INT = NULL
DECLARE @periodoA INT = NULL
DECLARE @IDCliente int = NULL
DECLARE @Modalidad varchar(1)
DECLARE @NombreCliente varchar(200)
DECLARE @periodoYear INT = NULL
DECLARE @periodoMonth INT = NULL
DECLARE @contratista INT ,@cliente INT ,@contratista_1 INT ,@empleado INT ,@vehiculo INT
DECLARE @led_seccion VARCHAR(1)
DECLARE @CantPendientes int = 0
DECLARE @idRepro INT
set @periodoVAnt = dbo.PeriodoMenosDos()
set @periodoV = dbo.PeriodoVencido()
set @periodoA = dbo.PeriodoAdelantado()
begin
select @CantPendientes = count(*) from led_reprocesa_docs where procesado = 0 AND CLIENTE = 7048064
if (@CantPendientes = 0)
begin
delete led_reprocesa_docs
SELECT 'BORRADO'
Insert into led_reprocesa_docs (contratista,cliente,contratista_1,led_seccion,empleado,vehiculo)
select distinct led_empleados_periodo.contratista,led_empleados.cliente,led_empleados_periodo.contratista_1,'E' AS led_seccion,led_empleados_periodo.EMPLEADO,NULL AS VEHICULO
from led_empleados_periodo inner join led_empleados on led_empleados_periodo.empleado=led_empleados.empleado
where led_empleados.estado_empleado = 'A'
and led_empleados_periodo.periodo in (dbo.PeriodoVencido(),dbo.PeriodoAdelantado())
and cliente=7048064
union all
/*
Select distinct led_contratistas.contratista,cliente,contratista_1,iif(led_contratistas.contratista = contratista_1,'C','S') as led_seccion,
NULL AS EMPLEADO,NULL AS VEHICULO from led_contratistas inner join led_contratista_periodo on led_contratistas.contratista = led_contratista_periodo.contratista
where estado_contratista='A' and cliente=7048064 and led_contratista_periodo.periodo in (dbo.PeriodoVencido(),dbo.PeriodoAdelantado())
union all
*/
select distinct led_contratista_multi.contratista,cliente,contratista_1,iif(led_contratista_multi.contratista = contratista_1,'C','S') as led_seccion,
NULL AS EMPLEADO,NULL AS VEHICULO from led_contratista_multi inner join led_contratista_periodo on led_contratista_multi.contratista = led_contratista_periodo.contratista
where activo=1 and cliente=7048064 and led_contratista_periodo.periodo in (dbo.PeriodoVencido(),dbo.PeriodoAdelantado()) and vigencia_desde < getdate() and (vigencia_hasta > getdate() or vigencia_hasta is null)
union all
select distinct led_contratista_multi.contratista,cliente,led_contratista_multi.contratista_1,iif(led_contratista_multi.contratista = led_contratista_multi.contratista_1,'C','S') as led_seccion,
NULL AS EMPLEADO,NULL AS VEHICULO from led_contratista_multi inner join led_subcontratista_periodo on led_contratista_multi.contratista = led_subcontratista_periodo.subcontratista
where activo=1 and cliente=7048064 and led_subcontratista_periodo.periodo in (dbo.PeriodoVencido(),dbo.PeriodoAdelantado()) and vigencia_desde < getdate() and (vigencia_hasta > getdate() or vigencia_hasta is null)
union all
select distinct led_vehiculos.contratista,cliente,led_vehiculos.contratista_1,'V' AS led_seccion,NULL AS EMPLEADO,led_vehiculos.VEHICULO
from led_vehiculos
inner join led_vehiculos_periodo on led_vehiculos_periodo.vehiculo = led_vehiculos.vehiculo
where estado_vehiculo='A'
and cliente=7048064 and led_vehiculos_periodo.periodo in (dbo.PeriodoVencido(),dbo.PeriodoAdelantado())
order by contratista,contratista_1,led_seccion asc
end
/* Averiguamos la lista de clientes a procesar -0.2*/
DECLARE LedClientesActivos Cursor
FOR
select top 250 contratista,cliente,contratista_1,empleado,vehiculo,led_seccion,idRepro
from led_reprocesa_docs
where procesado = 0
AND CLIENTE = 7048064
order by empleado desc
Open LedClientesActivos
Fetch NEXT FROM LedClientesActivos INTO @contratista,@cliente,@contratista_1,@empleado,@vehiculo,@led_seccion,@idRepro
While (@@FETCH_STATUS = 0)
BEGIN
/*
SELECT @contratista,@cliente,@contratista_1,@empleado,@vehiculo,@led_seccion,@idRepro as Repro
*/
IF (@led_seccion = 'V')
BEGIN
exec Imperium_Carga_Docs_Vehiculos_Contratista @periodoA,@cliente,@contratista,'A'
exec Imperium_Carga_Docs_Vehiculos_Contratista @periodoV,@cliente,@contratista,'V'
END
IF (@led_seccion = 'S')
BEGIN
exec Imperium_Carga_Docs_Sub_Contratista_Contratista @periodoA,@cliente,@contratista
exec Imperium_Carga_Docs_Sub_Contratista_Contratista @periodoV,@cliente,@contratista
END
IF (@led_seccion = 'C')
BEGIN
EXEC Imperium_Multi_Carga_Docs_Contratista @cliente,@contratista,@periodoA,'A'
EXEC Imperium_Multi_Carga_Docs_Contratista @cliente,@contratista,@periodoV,'V'
END
IF (@led_seccion = 'E')
BEGIN
exec Imperium_Multi_Carga_Docs_Empleados @cliente,@empleado,@periodoA,'A'
exec Imperium_Multi_Carga_Docs_Empleados @cliente,@empleado,@periodoV,'V'
END
update led_reprocesa_docs set procesado=1 where idRepro=@idRepro
exec Imperium_Compliance_Periodo_Contratista @periodoA,@contratista,@led_seccion
exec Imperium_Compliance_Periodo_Contratista @periodoV,@contratista,@led_seccion
Fetch NEXT FROM LedClientesActivos INTO @contratista,@cliente,@contratista_1,@empleado,@vehiculo,@led_seccion,@idRepro
END
CLOSE LedClientesActivos
DEALLOCATE LedClientesActivos
end
END
GO
GO
/*
EXEC Imperium_Regeneracion_Documentacion_Cliente
*/
CREATE OR ALTER PROCEDURE dbo.Imperium_Regeneracion_Documentacion_Cliente
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ERRORNUMBER int
DECLARE @StartOfMonth DATE
DECLARE @ActualDate DATE
DECLARE @periodoV INT = NULL
DECLARE @periodoVAnt INT = NULL
DECLARE @periodoA INT = NULL
DECLARE @IDCliente int = NULL
DECLARE @Modalidad varchar(1)
DECLARE @NombreCliente varchar(200)
DECLARE @periodoYear INT = NULL
DECLARE @periodoMonth INT = NULL
DECLARE @contratista INT ,@cliente INT ,@contratista_1 INT ,@empleado INT ,@vehiculo INT
DECLARE @led_seccion VARCHAR(1)
DECLARE @CantPendientes int = 0
DECLARE @idRepro INT
set @periodoVAnt = dbo.PeriodoMenosDos()
set @periodoV = dbo.PeriodoVencido()
set @periodoA = dbo.PeriodoAdelantado()
begin
select @CantPendientes = count(*) from led_reprocesa_docs where procesado = 0 AND CLIENTE = 7048064
if (@CantPendientes = 0)
begin
delete led_reprocesa_docs
SELECT 'BORRADO'
Insert into led_reprocesa_docs (contratista,cliente,contratista_1,led_seccion,empleado,vehiculo)
select distinct led_empleados_periodo.contratista,led_empleados.cliente,led_empleados_periodo.contratista_1,'E' AS led_seccion,led_empleados_periodo.EMPLEADO,NULL AS VEHICULO
from led_empleados_periodo inner join led_empleados on led_empleados_periodo.empleado=led_empleados.empleado
where led_empleados.estado_empleado = 'A'
and led_empleados_periodo.periodo in (dbo.PeriodoVencido(),dbo.PeriodoAdelantado())
and cliente=7048064
union all
/*
Select distinct led_contratistas.contratista,cliente,contratista_1,iif(led_contratistas.contratista = contratista_1,'C','S') as led_seccion,
NULL AS EMPLEADO,NULL AS VEHICULO from led_contratistas inner join led_contratista_periodo on led_contratistas.contratista = led_contratista_periodo.contratista
where estado_contratista='A' and cliente=7048064 and led_contratista_periodo.periodo in (dbo.PeriodoVencido(),dbo.PeriodoAdelantado())
union all
*/
select distinct led_contratista_multi.contratista,cliente,contratista_1,iif(led_contratista_multi.contratista = contratista_1,'C','S') as led_seccion,
NULL AS EMPLEADO,NULL AS VEHICULO from led_contratista_multi inner join led_contratista_periodo on led_contratista_multi.contratista = led_contratista_periodo.contratista
where activo=1 and cliente=7048064 and led_contratista_periodo.periodo in (dbo.PeriodoVencido(),dbo.PeriodoAdelantado()) and vigencia_desde < getdate() and (vigencia_hasta > getdate() or vigencia_hasta is null)
union all
select distinct led_contratista_multi.contratista,cliente,led_contratista_multi.contratista_1,iif(led_contratista_multi.contratista = led_contratista_multi.contratista_1,'C','S') as led_seccion,
NULL AS EMPLEADO,NULL AS VEHICULO from led_contratista_multi inner join led_subcontratista_periodo on led_contratista_multi.contratista = led_subcontratista_periodo.subcontratista
where activo=1 and cliente=7048064 and led_subcontratista_periodo.periodo in (dbo.PeriodoVencido(),dbo.PeriodoAdelantado()) and vigencia_desde < getdate() and (vigencia_hasta > getdate() or vigencia_hasta is null)
union all
select distinct led_vehiculos.contratista,cliente,led_vehiculos.contratista_1,'V' AS led_seccion,NULL AS EMPLEADO,led_vehiculos.VEHICULO
from led_vehiculos
inner join led_vehiculos_periodo on led_vehiculos_periodo.vehiculo = led_vehiculos.vehiculo
where estado_vehiculo='A'
and cliente=7048064 and led_vehiculos_periodo.periodo in (dbo.PeriodoVencido(),dbo.PeriodoAdelantado())
order by contratista,contratista_1,led_seccion asc
end
/* Averiguamos la lista de clientes a procesar -0.2*/
DECLARE LedClientesActivos Cursor
FOR
select top 250 contratista,cliente,contratista_1,empleado,vehiculo,led_seccion,idRepro
from led_reprocesa_docs
where procesado = 0
AND CLIENTE = 7048064
order by empleado desc
Open LedClientesActivos
Fetch NEXT FROM LedClientesActivos INTO @contratista,@cliente,@contratista_1,@empleado,@vehiculo,@led_seccion,@idRepro
While (@@FETCH_STATUS = 0)
BEGIN
/*
SELECT @contratista,@cliente,@contratista_1,@empleado,@vehiculo,@led_seccion,@idRepro as Repro
*/
IF (@led_seccion = 'V')
BEGIN
exec Imperium_Carga_Docs_Vehiculos_Contratista @periodoA,@cliente,@contratista,'A'
exec Imperium_Carga_Docs_Vehiculos_Contratista @periodoV,@cliente,@contratista,'V'
END
IF (@led_seccion = 'S')
BEGIN
exec Imperium_Carga_Docs_Sub_Contratista_Contratista @periodoA,@cliente,@contratista
exec Imperium_Carga_Docs_Sub_Contratista_Contratista @periodoV,@cliente,@contratista
END
IF (@led_seccion = 'C')
BEGIN
EXEC Imperium_Multi_Carga_Docs_Contratista @cliente,@contratista,@periodoA,'A'
EXEC Imperium_Multi_Carga_Docs_Contratista @cliente,@contratista,@periodoV,'V'
END
IF (@led_seccion = 'E')
BEGIN
exec Imperium_Multi_Carga_Docs_Empleados @cliente,@empleado,@periodoA,'A'
exec Imperium_Multi_Carga_Docs_Empleados @cliente,@empleado,@periodoV,'V'
END
update led_reprocesa_docs set procesado=1 where idRepro=@idRepro
exec Imperium_Compliance_Periodo_Contratista @periodoA,@contratista,@led_seccion
exec Imperium_Compliance_Periodo_Contratista @periodoV,@contratista,@led_seccion
Fetch NEXT FROM LedClientesActivos INTO @contratista,@cliente,@contratista_1,@empleado,@vehiculo,@led_seccion,@idRepro
END
CLOSE LedClientesActivos
DEALLOCATE LedClientesActivos
end
END
GO
Depends On
16- dbo.Imperium_Carga_Docs_Sub_Contratista_Contratista
- dbo.Imperium_Carga_Docs_Vehiculos_Contratista
- dbo.Imperium_Compliance_Periodo_Contratista
- dbo.Imperium_Multi_Carga_Docs_Contratista
- dbo.Imperium_Multi_Carga_Docs_Empleados
- dbo.PeriodoAdelantado
- dbo.PeriodoMenosDos
- dbo.PeriodoVencido
- dbo.led_contratista_multi
- dbo.led_contratista_periodo
- dbo.led_empleados
- dbo.led_empleados_periodo
- dbo.led_reprocesa_docs
- dbo.led_subcontratista_periodo
- dbo.led_vehiculos
- dbo.led_vehiculos_periodo
Used By
No items found