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_Vencida
*/
CREATE OR ALTER PROCEDURE dbo.Imperium_Regeneracion_Inicio_Mes
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 @InicioMes int = 0
DECLARE @Procesado INT = 0
DECLARE @contratista INT ,@cliente INT ,@contratista_1 INT ,@empleado INT ,@vehiculo INT
DECLARE @led_seccion VARCHAR(1)
DECLARE @idRepro INT
SET @periodoYear = convert(varchar(4),datepart(year,getdate()))
SET @periodoMonth = convert(varchar(2),datepart(month,getdate()))
SET @periodoYear = datepart(year,getdate())
SET @periodoMonth = datepart(month,getdate())
SET @periodoA = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())),2)
SeT @StartOfMonth = convert(date,DATEADD(month, DATEDIFF(month, 0, getdate()), 0))
set @ActualDate = getdate()
if (@periodoMonth = 1)
begin
set @periodoV = convert(varchar(4),@periodoYear-1) + RIGHT('00' +convert(varchar(2),12),2)
set @periodoVAnt = convert(varchar(4),@periodoYear-1) + RIGHT('00' +convert(varchar(2),11),2)
end
if (@periodoMonth > 1)
begin
set @periodoV = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())-1),2)
set @periodoVAnt = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())-2),2)
end
set @periodoVAnt = dbo.PeriodoMenosDos()
set @periodoV = dbo.PeriodoVencido()
set @periodoA = dbo.PeriodoAdelantado()
select @InicioMes = count(*) from led_reprocesa_inicio_mes
select @Procesado = count(*) from led_reprocesa_inicio_mes where procesado = 1
select @InicioMes as InicioMes,@Procesado AS Procesado,@StartOfMonth as startofmonth,@ActualDate as actualdate,@periodoV as periodoV,@periodoA as periodoA,@periodoVAnt as periodoVANT,@periodoYear as periodoYear,@periodoMonth as periodoMonth
if @ActualDate = @StartOfMonth and @InicioMes = 0
begin
SELECT 'INSERTA CONTRATISTAS'
delete led_reprocesa_inicio_mes
Insert into led_reprocesa_inicio_mes (contratista,cliente,contratista_1,led_seccion,empleado,vehiculo,periodoVAnt,periodoV,periodoA)
Select distinct contratista,cliente,contratista_1,iif(contratista = contratista_1,'C','S') as led_seccion,
NULL AS EMPLEADO,NULL AS VEHICULO,@periodoVAnt as periodoVAnt,@periodoV as periodoV,@periodoA as periodoA
from led_contratistas
where CONTRATISTA IN (select DISTINCT CONTRATISTA from led_contratista_periodo where periodo=@periodoV) and estado_contratista='A'
AND CLIENTE = 9936068
union all
select distinct contratista,cliente,contratista_1,iif(contratista = contratista_1,'C','S') as led_seccion,
NULL AS EMPLEADO,NULL AS VEHICULO,@periodoVAnt as periodoVAnt,@periodoV as periodoV,@periodoA as periodoA from led_contratista_multi
where CONTRATISTA IN (select DISTINCT SUBCONTRATISTA from led_SUBcontratista_periodo where periodo = @periodoV) AND activo=1
AND CLIENTE = 9936068
union all
select distinct contratista,cliente,contratista_1,'E' AS led_seccion,EMPLEADO,NULL AS VEHICULO,@periodoVAnt as periodoVAnt,@periodoV as periodoV,@periodoA as periodoA
from led_empleados where empleado IN (select DISTINCT empleado from led_EMPLEADOS_periodo where periodo=@periodoV) and estado_empleado='A'
AND CLIENTE = 9936068
union all
select distinct contratista,cliente,contratista_1,'V' AS led_seccion,NULL AS EMPLEADO,VEHICULO ,@periodoVAnt as periodoVAnt,@periodoV as periodoV,@periodoA as periodoA
from led_vehiculos where VEHICULO IN (select DISTINCT VEHICULO from led_vehiculos_periodo where periodo = @periodoV) and estado_vehiculo='A'
AND CLIENTE = 9936068
UNION ALL
Select distinct contratista,cliente,contratista_1,iif(contratista = contratista_1,'C','S') as led_seccion,
NULL AS EMPLEADO,NULL AS VEHICULO,@periodoVAnt as periodoVAnt,@periodoV as periodoV,@periodoA as periodoA from led_contratistas
where CONTRATISTA IN (select DISTINCT CONTRATISTA from led_contratista_periodo where periodo=@periodoV) and estado_contratista='A'
AND CLIENTE <> 9936068
union all
select distinct contratista,cliente,contratista_1,iif(contratista = contratista_1,'C','S') as led_seccion,
NULL AS EMPLEADO,NULL AS VEHICULO,@periodoVAnt as periodoVAnt,@periodoV as periodoV,@periodoA as periodoA from led_contratista_multi
where CONTRATISTA IN (select DISTINCT SUBCONTRATISTA from led_SUBcontratista_periodo where periodo = @periodoV) AND activo=1
AND CLIENTE <> 9936068
union all
select distinct contratista,cliente,contratista_1,'E' AS led_seccion,EMPLEADO,NULL AS VEHICULO ,@periodoVAnt as periodoVAnt,@periodoV as periodoV,@periodoA as periodoA
from led_empleados where empleado IN (select DISTINCT empleado from led_EMPLEADOS_periodo where periodo=@periodoV) and estado_empleado='A'
AND CLIENTE <> 9936068
union all
select distinct contratista,cliente,contratista_1,'V' AS led_seccion,NULL AS EMPLEADO,VEHICULO ,@periodoVAnt as periodoVAnt,@periodoV as periodoV,@periodoA as periodoA
from led_vehiculos where VEHICULO IN (select DISTINCT VEHICULO from led_vehiculos_periodo where periodo = @periodoV) and estado_vehiculo='A'
AND CLIENTE <> 9936068
end
else
begin
SELECT 'PROCESO DE A MIL'
DECLARE LedClientesActivos Cursor
FOR
select top 1000 contratista,cliente,contratista_1,empleado,vehiculo,led_seccion,idRepro,periodoVAnt,periodoV,periodoA
from led_reprocesa_inicio_mes
where procesado = 0
AND CLIENTE NOT IN (3915936,9936068,7048064)
Open LedClientesActivos
Fetch NEXT FROM LedClientesActivos INTO @contratista,@cliente,@contratista_1,@empleado,@vehiculo,@led_seccion,@idRepro,@periodoVAnt,@periodoV,@periodoA
While (@@FETCH_STATUS = 0)
BEGIN
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_inicio_mes set procesado=1 where idRepro=@idRepro
Fetch NEXT FROM LedClientesActivos INTO @contratista,@cliente,@contratista_1,@empleado,@vehiculo,@led_seccion,@idRepro,@periodoVAnt,@periodoV,@periodoA
END
CLOSE LedClientesActivos
DEALLOCATE LedClientesActivos
end
if (@ActualDate = @StartOfMonth) and (@InicioMes = @Procesado) and @Procesado > 0
begin
SELECT 'CREA PERIODICIDADES'
exec Imperium_Crea_Periodocidades @periodoV,@periodoA,'C','A'
exec Imperium_Crea_Periodocidades @periodoV,@periodoA,'E','A'
exec Imperium_Crea_Periodocidades @periodoV,@periodoA,'V','A'
exec Imperium_Crea_Periodocidades @periodoVAnt,@periodoV,'C','V'
exec Imperium_Crea_Periodocidades @periodoVAnt,@periodoV,'E','V'
exec Imperium_Crea_Periodocidades @periodoVAnt,@periodoV,'V','V'
end
END
GO
GO
/*
EXEC Imperium_Regeneracion_Documentacion_Vencida
*/
CREATE OR ALTER PROCEDURE dbo.Imperium_Regeneracion_Inicio_Mes
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 @InicioMes int = 0
DECLARE @Procesado INT = 0
DECLARE @contratista INT ,@cliente INT ,@contratista_1 INT ,@empleado INT ,@vehiculo INT
DECLARE @led_seccion VARCHAR(1)
DECLARE @idRepro INT
SET @periodoYear = convert(varchar(4),datepart(year,getdate()))
SET @periodoMonth = convert(varchar(2),datepart(month,getdate()))
SET @periodoYear = datepart(year,getdate())
SET @periodoMonth = datepart(month,getdate())
SET @periodoA = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())),2)
SeT @StartOfMonth = convert(date,DATEADD(month, DATEDIFF(month, 0, getdate()), 0))
set @ActualDate = getdate()
if (@periodoMonth = 1)
begin
set @periodoV = convert(varchar(4),@periodoYear-1) + RIGHT('00' +convert(varchar(2),12),2)
set @periodoVAnt = convert(varchar(4),@periodoYear-1) + RIGHT('00' +convert(varchar(2),11),2)
end
if (@periodoMonth > 1)
begin
set @periodoV = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())-1),2)
set @periodoVAnt = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())-2),2)
end
set @periodoVAnt = dbo.PeriodoMenosDos()
set @periodoV = dbo.PeriodoVencido()
set @periodoA = dbo.PeriodoAdelantado()
select @InicioMes = count(*) from led_reprocesa_inicio_mes
select @Procesado = count(*) from led_reprocesa_inicio_mes where procesado = 1
select @InicioMes as InicioMes,@Procesado AS Procesado,@StartOfMonth as startofmonth,@ActualDate as actualdate,@periodoV as periodoV,@periodoA as periodoA,@periodoVAnt as periodoVANT,@periodoYear as periodoYear,@periodoMonth as periodoMonth
if @ActualDate = @StartOfMonth and @InicioMes = 0
begin
SELECT 'INSERTA CONTRATISTAS'
delete led_reprocesa_inicio_mes
Insert into led_reprocesa_inicio_mes (contratista,cliente,contratista_1,led_seccion,empleado,vehiculo,periodoVAnt,periodoV,periodoA)
Select distinct contratista,cliente,contratista_1,iif(contratista = contratista_1,'C','S') as led_seccion,
NULL AS EMPLEADO,NULL AS VEHICULO,@periodoVAnt as periodoVAnt,@periodoV as periodoV,@periodoA as periodoA
from led_contratistas
where CONTRATISTA IN (select DISTINCT CONTRATISTA from led_contratista_periodo where periodo=@periodoV) and estado_contratista='A'
AND CLIENTE = 9936068
union all
select distinct contratista,cliente,contratista_1,iif(contratista = contratista_1,'C','S') as led_seccion,
NULL AS EMPLEADO,NULL AS VEHICULO,@periodoVAnt as periodoVAnt,@periodoV as periodoV,@periodoA as periodoA from led_contratista_multi
where CONTRATISTA IN (select DISTINCT SUBCONTRATISTA from led_SUBcontratista_periodo where periodo = @periodoV) AND activo=1
AND CLIENTE = 9936068
union all
select distinct contratista,cliente,contratista_1,'E' AS led_seccion,EMPLEADO,NULL AS VEHICULO,@periodoVAnt as periodoVAnt,@periodoV as periodoV,@periodoA as periodoA
from led_empleados where empleado IN (select DISTINCT empleado from led_EMPLEADOS_periodo where periodo=@periodoV) and estado_empleado='A'
AND CLIENTE = 9936068
union all
select distinct contratista,cliente,contratista_1,'V' AS led_seccion,NULL AS EMPLEADO,VEHICULO ,@periodoVAnt as periodoVAnt,@periodoV as periodoV,@periodoA as periodoA
from led_vehiculos where VEHICULO IN (select DISTINCT VEHICULO from led_vehiculos_periodo where periodo = @periodoV) and estado_vehiculo='A'
AND CLIENTE = 9936068
UNION ALL
Select distinct contratista,cliente,contratista_1,iif(contratista = contratista_1,'C','S') as led_seccion,
NULL AS EMPLEADO,NULL AS VEHICULO,@periodoVAnt as periodoVAnt,@periodoV as periodoV,@periodoA as periodoA from led_contratistas
where CONTRATISTA IN (select DISTINCT CONTRATISTA from led_contratista_periodo where periodo=@periodoV) and estado_contratista='A'
AND CLIENTE <> 9936068
union all
select distinct contratista,cliente,contratista_1,iif(contratista = contratista_1,'C','S') as led_seccion,
NULL AS EMPLEADO,NULL AS VEHICULO,@periodoVAnt as periodoVAnt,@periodoV as periodoV,@periodoA as periodoA from led_contratista_multi
where CONTRATISTA IN (select DISTINCT SUBCONTRATISTA from led_SUBcontratista_periodo where periodo = @periodoV) AND activo=1
AND CLIENTE <> 9936068
union all
select distinct contratista,cliente,contratista_1,'E' AS led_seccion,EMPLEADO,NULL AS VEHICULO ,@periodoVAnt as periodoVAnt,@periodoV as periodoV,@periodoA as periodoA
from led_empleados where empleado IN (select DISTINCT empleado from led_EMPLEADOS_periodo where periodo=@periodoV) and estado_empleado='A'
AND CLIENTE <> 9936068
union all
select distinct contratista,cliente,contratista_1,'V' AS led_seccion,NULL AS EMPLEADO,VEHICULO ,@periodoVAnt as periodoVAnt,@periodoV as periodoV,@periodoA as periodoA
from led_vehiculos where VEHICULO IN (select DISTINCT VEHICULO from led_vehiculos_periodo where periodo = @periodoV) and estado_vehiculo='A'
AND CLIENTE <> 9936068
end
else
begin
SELECT 'PROCESO DE A MIL'
DECLARE LedClientesActivos Cursor
FOR
select top 1000 contratista,cliente,contratista_1,empleado,vehiculo,led_seccion,idRepro,periodoVAnt,periodoV,periodoA
from led_reprocesa_inicio_mes
where procesado = 0
AND CLIENTE NOT IN (3915936,9936068,7048064)
Open LedClientesActivos
Fetch NEXT FROM LedClientesActivos INTO @contratista,@cliente,@contratista_1,@empleado,@vehiculo,@led_seccion,@idRepro,@periodoVAnt,@periodoV,@periodoA
While (@@FETCH_STATUS = 0)
BEGIN
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_inicio_mes set procesado=1 where idRepro=@idRepro
Fetch NEXT FROM LedClientesActivos INTO @contratista,@cliente,@contratista_1,@empleado,@vehiculo,@led_seccion,@idRepro,@periodoVAnt,@periodoV,@periodoA
END
CLOSE LedClientesActivos
DEALLOCATE LedClientesActivos
end
if (@ActualDate = @StartOfMonth) and (@InicioMes = @Procesado) and @Procesado > 0
begin
SELECT 'CREA PERIODICIDADES'
exec Imperium_Crea_Periodocidades @periodoV,@periodoA,'C','A'
exec Imperium_Crea_Periodocidades @periodoV,@periodoA,'E','A'
exec Imperium_Crea_Periodocidades @periodoV,@periodoA,'V','A'
exec Imperium_Crea_Periodocidades @periodoVAnt,@periodoV,'C','V'
exec Imperium_Crea_Periodocidades @periodoVAnt,@periodoV,'E','V'
exec Imperium_Crea_Periodocidades @periodoVAnt,@periodoV,'V','V'
end
END
GO
Depends On
17- dbo.Imperium_Carga_Docs_Sub_Contratista_Contratista
- dbo.Imperium_Carga_Docs_Vehiculos_Contratista
- dbo.Imperium_Crea_Periodocidades
- 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_contratistas
- dbo.led_empleados
- dbo.led_empleados_periodo
- dbo.led_reprocesa_inicio_mes
- dbo.led_subcontratista_periodo
- dbo.led_vehiculos
- dbo.led_vehiculos_periodo
Used By
No items found