Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
2| Name | Data Type | Length | Description |
|---|---|---|---|
| @periodo | int | 4 | |
| @IDCliente | int | 4 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE OR ALTER PROCEDURE dbo.DEV_Imperium_Carga_Docs_Contratista
@periodo int,
@IDCliente int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ERRORNUMBER SMALLINT
declare @periodoAnt int
DECLARE @PeriodoModalidad int
DECLARE @Modalidad VARCHAR(1)
if (@periodo is null)
BEGIN
SET @periodo = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())),2)
END
/*
SET @periodoAnt = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())-1),2)
*/
SET @periodoAnt = @periodo-1
/*
set @periodo = 201609
*/
set @PeriodoModalidad = substring(convert(varchar(6),@periodo),5,2)
/*
select @PeriodoModalidad as PeriodoModalidad
*/
if @PeriodoModalidad >= datepart(month,getdate())
BEGIN
SET @Modalidad = 'A'
/*
select @PeriodoModalidad as PeriodoModalidad,datepart(month,getdate()) AS pp,@Modalidad AS Modalidad,@periodoAnt AS periodoAnt
*/
END
ELSE
BEGIN
SET @Modalidad = 'V'
/*
select @PeriodoModalidad as PeriodoModalidad,datepart(month,getdate()) AS pp,@Modalidad AS Modalidad,@periodoAnt AS periodoAnt
*/
END
select @PeriodoModalidad as PeriodoModalidad,datepart(month,getdate()) AS pp,@Modalidad AS Modalidad,@periodoAnt AS periodoAnt
/*
select @periodo as periodo,@periodoAnt as periodoAnt
insert into led_contratista_periodo (contratista,periodo)
select contratista,201609 as periodo from led_contratistas
WHERE (cliente = @IDCliente)
and estado_contratista = 'A'
and contratista = contratista_1
and contratista not in (select contratista from led_contratista_periodo where periodo = 201609 and cliente = @IDCliente)
/* Renovamos el periodo de los sub contratistas del cliente*/
insert into led_subcontratista_periodo (subcontratista,periodo,contratista,contratista_1)
select contratista as subcontratista,201609 as periodo,
subcontratista_de as contratista,contratista_1
from led_contratistas
WHERE (cliente = @IDCliente)
and estado_contratista = 'A'
and contratista <> contratista_1
and contratista not in (select contratista from led_subcontratista_periodo where periodo = 201609 and cliente = @IDCliente)
/* Renovamos el periodo de los empleados del cliente*/
insert into led_empleados_periodo (empleado,periodo,contratista,contratista_1)
select empleado,201609 as periodo,
contratista,contratista_1
from led_empleados
WHERE (cliente = @IDCliente)
and estado_empleado = 'A'
and empleado not in (select empleado from led_empleados_periodo where periodo = 201609 and cliente = @IDCliente)
*/
/*
exec Carga_Led_Compliance_Periodo 201609,7334044,'V'
*/
/*
exec Carga_Led_Docs_Contratista 201609,7334044
exec Carga_Led_Docs_Empleados 201608,7334044
*/
/*
select distinct cliente from led_docs
select * from led_docs where periodo = 201608 and tipo_doc in (select tipo_doc from led_tipos_doc where periodicidad = 'E')
update led_docs set fecha_vigencia = '2016-10-06 23:59:59.000' where periodo = 201608 and tipo_doc in (select tipo_doc from led_tipos_doc where periodicidad = 'E')
select * from led_contratista_periodo
SELECT * FROM CLIENTES WHERE NOMBRE_CLIENTE LIKE '%LINK%'
select DISTINCT CLIENTE from LED_DOCS
SELECT * FROM LED_DOCS WHERE CLIENTE = 7334044
select * from led_docs where doc_id in (196832,196833)
*/
/*
exec Imperium_Inicio_Periodo
*/
/*
select * from led_contratista_periodo where periodo = 201609 and contratista = 8031
select * from led_empleados_periodo where periodo = 201609 and contratista = 8031
select * from led_vehiculos_periodo where periodo = 201609
select * from led_subcontratista_periodo where periodo = 201609
*/
/*
delete led_contratista_periodo where periodo = 201609 and contratista = 8031
*/
/*
select distinct cliente from led_docs
select * from led_docs where periodo = 201608 and tipo_doc in (select tipo_doc from led_tipos_doc where periodicidad = 'E')
update led_docs set fecha_vigencia = '2016-10-06 23:59:59.000' where periodo = 201608 and tipo_doc in (select tipo_doc from led_tipos_doc where periodicidad = 'E')
select * from led_contratista_periodo
*/
DECLARE @LastDay_AnyMonth DATETIME
--Last Day of Any Month and Year
DECLARE @dtDate DATETIME, @nextMonth DATETIME, @LastDayNextMonth DATETIME
SET @dtDate = substring(CONVERT(varchar(6),@periodo),1,4) + '-' + substring(CONVERT(varchar(6),@periodo),5,2) + '-01'
SET @nextMonth = DATEADD(mm, 1, @dtDate)
set @LastDay_AnyMonth = DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@dtDate)+1,0))
set @LastDayNextMonth = DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@nextMonth)+1,0))
DECLARE @tipo_doc INT,@estado_doc VARCHAR(1),@led_seccion VARCHAR(1),@cliente INT,@contratista INT,@empleado INT,@vehiculo INT
DECLARE @contratista_1 INT,@insertado DATETIME,@fecha_tolerancia DATETIME,@compliance_doc VARCHAR(1),@fecha_vigencia DATETIME,@doc_log VARCHAR(150),@grupo_doc INT
DECLARE @doc_id_lista INT
/*
DECLARE LedCargaDocs Cursor
FOR
*/
/* led_cliente_contratista.estado_inicial,led_cliente_contratista.afecta_compliance, */
SELECT distinct led_tipos_doc.tipo_doc,
/*iif(LDAnt.fecha_vigencia > GETDATE(),LDAnt.estado_doc,'N') as estado_doc,*/
iif(LDAnt.fecha_vigencia > GETDATE(),LDAnt.estado_doc,led_cliente_contratista.estado_inicial) as estado_doc,
/*
iif(LDAnt.fecha_vigencia > GETDATE() and led_tipos_doc.periodicidad = 'E',LDAnt.estado_doc,'N') as estado_doc,
*/
led_tipos_doc.led_seccion,
led_contratistas.cliente,
led_contratistas.contratista,
null as empleado,
null as vehiculo,
@periodo AS periodo,
led_contratistas.contratista_1,
GETDATE() as insertado,
dateadd(ms,-3,Convert(varchar(10),isnull(led_cliente_contratista.dias_tolerancia,0) + getdate(),111)) as fecha_tolerancia,
/*
iif(LDAnt.fecha_vigencia > GETDATE(),LDAnt.compliance_doc,'B') as compliance_doc,
*/
iif(LDAnt.fecha_vigencia > GETDATE(),LDAnt.compliance_doc,iif(led_cliente_contratista.estado_inicial='N','B',iif(led_cliente_contratista.estado_inicial='R','R',iif(led_cliente_contratista.estado_inicial='V','V',iif(led_cliente_contratista.estado_inicial='I','A','B'))))) as compliance_doc,
iif(LDAnt.fecha_vigencia > getdate(),LDAnt.fecha_vigencia,NULL) as fecha_vigencia,
/*
iif(LDAnt.fecha_vigencia > GETDATE() and led_tipos_doc.periodicidad = 'E',LDAnt.compliance_doc,'B') as compliance_doc,
iif(LDAnt.fecha_vigencia > getdate() and led_tipos_doc.periodicidad = 'E',LDAnt.fecha_vigencia,NULL) as fecha_vigencia,
*/
convert(varchar(16),getdate(),120) + ' GENERACION AUTOMATICA DE DOCUMENTOS' AS doc_log,
led_grupo_tipo_doc.grupo_doc,led_tipos_doc.tipo_doc_lista as doc_id_lista
FROM led_contratistas
INNER JOIN led_cliente_contratista ON (led_contratistas.cliente = led_cliente_contratista.cliente AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista)
INNER JOIN clientes ON led_contratistas.cliente = clientes.cliente
inner JOIN led_tipos_doc ON led_cliente_contratista.tipo_doc = led_tipos_doc.tipo_doc
inner join led_grupo_tipo_doc ON led_cliente_contratista.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
INNER JOIN led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista and led_contratista_periodo.periodo = @periodo)
left JOIN LED_DOCS LDAnt ON (LDAnt.tipo_doc = led_tipos_doc.tipo_doc AND LDAnt.led_seccion = led_tipos_doc.led_seccion AND LDAnt.contratista = led_contratistas.contratista
AND LDAnt.periodo = @periodoAnt AND LDAnt.grupo_doc = led_grupo_tipo_doc.grupo_doc)
WHERE (clientes.cliente = @IDCliente)
AND (led_cliente_contratista.activo = 1)
/*
and ((led_tipos_doc.doc_alta = 0 OR led_tipos_doc.doc_alta IS NULL)
and (led_tipos_doc.doc_baja = 0 OR led_tipos_doc.doc_baja IS NULL) or led_tipos_doc.doc_alta = 1 and (LDAnt.fecha_vigencia > getdate() OR LDAnt.fecha_vigencia IS NULL))
*/
and ( ISNULL(led_tipos_doc.doc_alta,0) = 0
or (led_tipos_doc.doc_alta = 1 /*and
(LDAnt.fecha_vigencia > getdate() OR LDAnt.fecha_vigencia IS NULL)*/
) )
and ISNULL(led_tipos_doc.doc_baja,0) = 0
and led_contratistas.estado_contratista = 'A'
and led_grupos_doc.cliente = @IDCliente
and led_tipos_doc.modalidad = @Modalidad
and led_cliente_contratista.activo=1
/*and led_contratistas.contratista = 189
and led_tipos_doc.tipo_doc = 694
*/
/*
if (@periodo is null)
BEGIN
SET @periodo = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())),2)
END
SET @periodoAnt = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())),2)
DECLARE @LastDay_AnyMonth DATETIME
--Last Day of Any Month and Year
DECLARE @dtDate DATETIME, @nextMonth DATETIME, @LastDayNextMonth DATETIME
SET @dtDate = substring(CONVERT(varchar(6),@periodo),1,4) + '-' + substring(CONVERT(varchar(6),@periodo),5,2) + '-01'
SET @nextMonth = DATEADD(mm, 1, @dtDate)
set @LastDay_AnyMonth = DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@dtDate)+1,0))
set @LastDayNextMonth = DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@nextMonth)+1,0))
DECLARE @tipo_doc INT,@estado_doc VARCHAR(1),@led_seccion VARCHAR(1),@cliente INT,@contratista INT,@empleado INT,@vehiculo INT
DECLARE @contratista_1 INT,@insertado DATETIME,@fecha_tolerancia DATETIME,@compliance_doc VARCHAR(1),@fecha_vigencia DATETIME,@doc_log VARCHAR(150),@grupo_doc INT
DECLARE @doc_id_lista INT
DECLARE LedCargaDocs Cursor
FOR
SELECT distinct led_tipos_doc.tipo_doc,
'N' as estado_doc,
led_tipos_doc.led_seccion,
led_contratistas.cliente,
led_contratistas.contratista,
null as empleado,
null as vehiculo,
/*
convert(varchar(4),datepart(year,getdate())) + convert(varchar(2),datepart(month,getdate())) as periodo,
*/
@periodo AS periodo,
led_contratistas.contratista_1,
GETDATE() as insertado,
dateadd(ms,-3,Convert(varchar(10),isnull(led_cliente_contratista.dias_tolerancia,0) + getdate(),111)) as fecha_tolerancia,
iif((isnull(led_cliente_contratista.dias_tolerancia,0) + getdate())>getdate() ,'B','R') as compliance_doc,
iif(ISNULL(led_tipos_doc.periodicidad,'M') = 'M',@LastDayNextMonth,IIF(ISNULL(led_tipos_doc.periodicidad,'A') = 'A',@LastDay_AnyMonth,null)) as fecha_vigencia,
/*
iif(ISNULL(led_tipos_doc.periodicidad,'M') = 'M',@LastDayNextMonth,IIF(ISNULL(led_tipos_doc.periodicidad,'A') = 'A',@LastDay_AnyMonth,null)) as fecha_vigencia0,
LED_DOCS.fecha_vigencia AS vigenciaANT,
iif(ISNULL(LED_DOCS.fecha_vigencia,null) is null,iif(ISNULL(led_tipos_doc.periodicidad,'M') = 'M',@LastDayNextMonth,IIF(ISNULL(led_tipos_doc.periodicidad,'A') = 'A',@LastDay_AnyMonth,null)),LED_DOCS.fecha_vigencia) as fecha_vigencia,
*/
convert(varchar(16),getdate(),120) + ' GENERACION AUTOMATICA DE DOCUMENTOS' AS doc_log,
led_grupo_tipo_doc.grupo_doc,led_tipos_doc.tipo_doc_lista as doc_id_lista
FROM led_contratistas INNER JOIN
led_cliente_contratista ON led_contratistas.cliente = led_cliente_contratista.cliente
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
INNER JOIN clientes ON led_contratistas.cliente = clientes.cliente INNER JOIN
led_tipos_doc ON led_cliente_contratista.tipo_doc = led_tipos_doc.tipo_doc inner join
led_grupo_tipo_doc ON led_cliente_contratista.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
INNER JOIN led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista and led_contratista_periodo.periodo = @periodo)
/*
left JOIN led_subcontratista_periodo on (led_contratistas.contratista = led_subcontratista_periodo.subcontratista and led_subcontratista_periodo.periodo = @periodo)
*/
/*
LEFT JOIN LED_DOCS ON (LED_DOCS.tipo_doc = led_tipos_doc.tipo_doc AND LED_DOCS.led_seccion = led_tipos_doc.led_seccion AND LED_DOCS.contratista = led_contratistas.contratista
AND LED_DOCS.periodo = 201608 AND LED_DOCS.grupo_doc = led_grupo_tipo_doc.grupo_doc)
*/
WHERE (clientes.cliente = @IDCliente) AND (led_cliente_contratista.activo = 1)
and (led_tipos_doc.doc_alta = 0 OR led_tipos_doc.doc_alta IS NULL)
and (led_tipos_doc.doc_baja = 0 OR led_tipos_doc.doc_baja IS NULL)
and led_contratistas.estado_contratista = 'A'
and led_grupos_doc.cliente = @IDCliente
/*
FROM led_contratistas INNER JOIN
led_cliente_contratista ON led_contratistas.cliente = led_cliente_contratista.cliente
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista INNER JOIN
clientes ON led_contratistas.cliente = clientes.cliente INNER JOIN
led_tipos_doc ON led_cliente_contratista.tipo_doc = led_tipos_doc.tipo_doc inner join
led_grupo_tipo_doc ON led_cliente_contratista.tipo_doc = led_grupo_tipo_doc.tipo_doc
INNER JOIN led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista and led_contratista_periodo.periodo = @periodo)
WHERE (clientes.cliente = @IDCliente) AND (led_cliente_contratista.activo = 1)
and (led_tipos_doc.doc_alta = 0 OR led_tipos_doc.doc_alta IS NULL)
and (led_tipos_doc.doc_baja = 0 OR led_tipos_doc.doc_baja IS NULL)
*/
*/
DECLARE @dbDocID BIGINT = 0
/*
Open LedCargaDocs
Fetch NEXT FROM LedCargaDocs INTO @tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista
While (@@FETCH_STATUS <> -1)
BEGIN
/*
SELECT 'A',@tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista
*/
SET @dbDocID = 0
select @dbDocID = doc_id from led_docs
where tipo_doc = @tipo_doc
and periodo = @periodo
and led_seccion = @led_seccion
and contratista = @contratista
IF (@dbDocID = 0)
/*
select @dbDocID as dbDocID
*/
BEGIN
BEGIN TRY
insert into led_docs (
tipo_doc,
estado_doc,
led_seccion,
cliente,
contratista,
empleado,
vehiculo,
periodo,
contratista_1,
insertado,
fecha_tolerancia,
compliance_doc,
fecha_vigencia,
doc_log,
grupo_doc,
doc_id_lista
)
values
(@tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista)
END TRY
BEGIN CATCH
/*
SET @ERRORNUMBER = 1
*/
/*
SELECT @ERRORNUMBER,@tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc
*/
/*
select 'insert into led_docs (
tipo_doc,
estado_doc,
led_seccion,
cliente,
contratista,
empleado,
vehiculo,
periodo,
contratista_1,
insertado,
fecha_tolerancia,
compliance_doc,
fecha_vigencia,
doc_log,
grupo_doc,doc_id_lista
)
values'select @tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista
*/
END CATCH
END
Fetch NEXT FROM LedCargaDocs INTO @tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista
END
CLOSE LedCargaDocs
DEALLOCATE LedCargaDocs
*/
END
GO
GO
CREATE OR ALTER PROCEDURE dbo.DEV_Imperium_Carga_Docs_Contratista
@periodo int,
@IDCliente int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ERRORNUMBER SMALLINT
declare @periodoAnt int
DECLARE @PeriodoModalidad int
DECLARE @Modalidad VARCHAR(1)
if (@periodo is null)
BEGIN
SET @periodo = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())),2)
END
/*
SET @periodoAnt = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())-1),2)
*/
SET @periodoAnt = @periodo-1
/*
set @periodo = 201609
*/
set @PeriodoModalidad = substring(convert(varchar(6),@periodo),5,2)
/*
select @PeriodoModalidad as PeriodoModalidad
*/
if @PeriodoModalidad >= datepart(month,getdate())
BEGIN
SET @Modalidad = 'A'
/*
select @PeriodoModalidad as PeriodoModalidad,datepart(month,getdate()) AS pp,@Modalidad AS Modalidad,@periodoAnt AS periodoAnt
*/
END
ELSE
BEGIN
SET @Modalidad = 'V'
/*
select @PeriodoModalidad as PeriodoModalidad,datepart(month,getdate()) AS pp,@Modalidad AS Modalidad,@periodoAnt AS periodoAnt
*/
END
select @PeriodoModalidad as PeriodoModalidad,datepart(month,getdate()) AS pp,@Modalidad AS Modalidad,@periodoAnt AS periodoAnt
/*
select @periodo as periodo,@periodoAnt as periodoAnt
insert into led_contratista_periodo (contratista,periodo)
select contratista,201609 as periodo from led_contratistas
WHERE (cliente = @IDCliente)
and estado_contratista = 'A'
and contratista = contratista_1
and contratista not in (select contratista from led_contratista_periodo where periodo = 201609 and cliente = @IDCliente)
/* Renovamos el periodo de los sub contratistas del cliente*/
insert into led_subcontratista_periodo (subcontratista,periodo,contratista,contratista_1)
select contratista as subcontratista,201609 as periodo,
subcontratista_de as contratista,contratista_1
from led_contratistas
WHERE (cliente = @IDCliente)
and estado_contratista = 'A'
and contratista <> contratista_1
and contratista not in (select contratista from led_subcontratista_periodo where periodo = 201609 and cliente = @IDCliente)
/* Renovamos el periodo de los empleados del cliente*/
insert into led_empleados_periodo (empleado,periodo,contratista,contratista_1)
select empleado,201609 as periodo,
contratista,contratista_1
from led_empleados
WHERE (cliente = @IDCliente)
and estado_empleado = 'A'
and empleado not in (select empleado from led_empleados_periodo where periodo = 201609 and cliente = @IDCliente)
*/
/*
exec Carga_Led_Compliance_Periodo 201609,7334044,'V'
*/
/*
exec Carga_Led_Docs_Contratista 201609,7334044
exec Carga_Led_Docs_Empleados 201608,7334044
*/
/*
select distinct cliente from led_docs
select * from led_docs where periodo = 201608 and tipo_doc in (select tipo_doc from led_tipos_doc where periodicidad = 'E')
update led_docs set fecha_vigencia = '2016-10-06 23:59:59.000' where periodo = 201608 and tipo_doc in (select tipo_doc from led_tipos_doc where periodicidad = 'E')
select * from led_contratista_periodo
SELECT * FROM CLIENTES WHERE NOMBRE_CLIENTE LIKE '%LINK%'
select DISTINCT CLIENTE from LED_DOCS
SELECT * FROM LED_DOCS WHERE CLIENTE = 7334044
select * from led_docs where doc_id in (196832,196833)
*/
/*
exec Imperium_Inicio_Periodo
*/
/*
select * from led_contratista_periodo where periodo = 201609 and contratista = 8031
select * from led_empleados_periodo where periodo = 201609 and contratista = 8031
select * from led_vehiculos_periodo where periodo = 201609
select * from led_subcontratista_periodo where periodo = 201609
*/
/*
delete led_contratista_periodo where periodo = 201609 and contratista = 8031
*/
/*
select distinct cliente from led_docs
select * from led_docs where periodo = 201608 and tipo_doc in (select tipo_doc from led_tipos_doc where periodicidad = 'E')
update led_docs set fecha_vigencia = '2016-10-06 23:59:59.000' where periodo = 201608 and tipo_doc in (select tipo_doc from led_tipos_doc where periodicidad = 'E')
select * from led_contratista_periodo
*/
DECLARE @LastDay_AnyMonth DATETIME
--Last Day of Any Month and Year
DECLARE @dtDate DATETIME, @nextMonth DATETIME, @LastDayNextMonth DATETIME
SET @dtDate = substring(CONVERT(varchar(6),@periodo),1,4) + '-' + substring(CONVERT(varchar(6),@periodo),5,2) + '-01'
SET @nextMonth = DATEADD(mm, 1, @dtDate)
set @LastDay_AnyMonth = DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@dtDate)+1,0))
set @LastDayNextMonth = DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@nextMonth)+1,0))
DECLARE @tipo_doc INT,@estado_doc VARCHAR(1),@led_seccion VARCHAR(1),@cliente INT,@contratista INT,@empleado INT,@vehiculo INT
DECLARE @contratista_1 INT,@insertado DATETIME,@fecha_tolerancia DATETIME,@compliance_doc VARCHAR(1),@fecha_vigencia DATETIME,@doc_log VARCHAR(150),@grupo_doc INT
DECLARE @doc_id_lista INT
/*
DECLARE LedCargaDocs Cursor
FOR
*/
/* led_cliente_contratista.estado_inicial,led_cliente_contratista.afecta_compliance, */
SELECT distinct led_tipos_doc.tipo_doc,
/*iif(LDAnt.fecha_vigencia > GETDATE(),LDAnt.estado_doc,'N') as estado_doc,*/
iif(LDAnt.fecha_vigencia > GETDATE(),LDAnt.estado_doc,led_cliente_contratista.estado_inicial) as estado_doc,
/*
iif(LDAnt.fecha_vigencia > GETDATE() and led_tipos_doc.periodicidad = 'E',LDAnt.estado_doc,'N') as estado_doc,
*/
led_tipos_doc.led_seccion,
led_contratistas.cliente,
led_contratistas.contratista,
null as empleado,
null as vehiculo,
@periodo AS periodo,
led_contratistas.contratista_1,
GETDATE() as insertado,
dateadd(ms,-3,Convert(varchar(10),isnull(led_cliente_contratista.dias_tolerancia,0) + getdate(),111)) as fecha_tolerancia,
/*
iif(LDAnt.fecha_vigencia > GETDATE(),LDAnt.compliance_doc,'B') as compliance_doc,
*/
iif(LDAnt.fecha_vigencia > GETDATE(),LDAnt.compliance_doc,iif(led_cliente_contratista.estado_inicial='N','B',iif(led_cliente_contratista.estado_inicial='R','R',iif(led_cliente_contratista.estado_inicial='V','V',iif(led_cliente_contratista.estado_inicial='I','A','B'))))) as compliance_doc,
iif(LDAnt.fecha_vigencia > getdate(),LDAnt.fecha_vigencia,NULL) as fecha_vigencia,
/*
iif(LDAnt.fecha_vigencia > GETDATE() and led_tipos_doc.periodicidad = 'E',LDAnt.compliance_doc,'B') as compliance_doc,
iif(LDAnt.fecha_vigencia > getdate() and led_tipos_doc.periodicidad = 'E',LDAnt.fecha_vigencia,NULL) as fecha_vigencia,
*/
convert(varchar(16),getdate(),120) + ' GENERACION AUTOMATICA DE DOCUMENTOS' AS doc_log,
led_grupo_tipo_doc.grupo_doc,led_tipos_doc.tipo_doc_lista as doc_id_lista
FROM led_contratistas
INNER JOIN led_cliente_contratista ON (led_contratistas.cliente = led_cliente_contratista.cliente AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista)
INNER JOIN clientes ON led_contratistas.cliente = clientes.cliente
inner JOIN led_tipos_doc ON led_cliente_contratista.tipo_doc = led_tipos_doc.tipo_doc
inner join led_grupo_tipo_doc ON led_cliente_contratista.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
INNER JOIN led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista and led_contratista_periodo.periodo = @periodo)
left JOIN LED_DOCS LDAnt ON (LDAnt.tipo_doc = led_tipos_doc.tipo_doc AND LDAnt.led_seccion = led_tipos_doc.led_seccion AND LDAnt.contratista = led_contratistas.contratista
AND LDAnt.periodo = @periodoAnt AND LDAnt.grupo_doc = led_grupo_tipo_doc.grupo_doc)
WHERE (clientes.cliente = @IDCliente)
AND (led_cliente_contratista.activo = 1)
/*
and ((led_tipos_doc.doc_alta = 0 OR led_tipos_doc.doc_alta IS NULL)
and (led_tipos_doc.doc_baja = 0 OR led_tipos_doc.doc_baja IS NULL) or led_tipos_doc.doc_alta = 1 and (LDAnt.fecha_vigencia > getdate() OR LDAnt.fecha_vigencia IS NULL))
*/
and ( ISNULL(led_tipos_doc.doc_alta,0) = 0
or (led_tipos_doc.doc_alta = 1 /*and
(LDAnt.fecha_vigencia > getdate() OR LDAnt.fecha_vigencia IS NULL)*/
) )
and ISNULL(led_tipos_doc.doc_baja,0) = 0
and led_contratistas.estado_contratista = 'A'
and led_grupos_doc.cliente = @IDCliente
and led_tipos_doc.modalidad = @Modalidad
and led_cliente_contratista.activo=1
/*and led_contratistas.contratista = 189
and led_tipos_doc.tipo_doc = 694
*/
/*
if (@periodo is null)
BEGIN
SET @periodo = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())),2)
END
SET @periodoAnt = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())),2)
DECLARE @LastDay_AnyMonth DATETIME
--Last Day of Any Month and Year
DECLARE @dtDate DATETIME, @nextMonth DATETIME, @LastDayNextMonth DATETIME
SET @dtDate = substring(CONVERT(varchar(6),@periodo),1,4) + '-' + substring(CONVERT(varchar(6),@periodo),5,2) + '-01'
SET @nextMonth = DATEADD(mm, 1, @dtDate)
set @LastDay_AnyMonth = DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@dtDate)+1,0))
set @LastDayNextMonth = DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@nextMonth)+1,0))
DECLARE @tipo_doc INT,@estado_doc VARCHAR(1),@led_seccion VARCHAR(1),@cliente INT,@contratista INT,@empleado INT,@vehiculo INT
DECLARE @contratista_1 INT,@insertado DATETIME,@fecha_tolerancia DATETIME,@compliance_doc VARCHAR(1),@fecha_vigencia DATETIME,@doc_log VARCHAR(150),@grupo_doc INT
DECLARE @doc_id_lista INT
DECLARE LedCargaDocs Cursor
FOR
SELECT distinct led_tipos_doc.tipo_doc,
'N' as estado_doc,
led_tipos_doc.led_seccion,
led_contratistas.cliente,
led_contratistas.contratista,
null as empleado,
null as vehiculo,
/*
convert(varchar(4),datepart(year,getdate())) + convert(varchar(2),datepart(month,getdate())) as periodo,
*/
@periodo AS periodo,
led_contratistas.contratista_1,
GETDATE() as insertado,
dateadd(ms,-3,Convert(varchar(10),isnull(led_cliente_contratista.dias_tolerancia,0) + getdate(),111)) as fecha_tolerancia,
iif((isnull(led_cliente_contratista.dias_tolerancia,0) + getdate())>getdate() ,'B','R') as compliance_doc,
iif(ISNULL(led_tipos_doc.periodicidad,'M') = 'M',@LastDayNextMonth,IIF(ISNULL(led_tipos_doc.periodicidad,'A') = 'A',@LastDay_AnyMonth,null)) as fecha_vigencia,
/*
iif(ISNULL(led_tipos_doc.periodicidad,'M') = 'M',@LastDayNextMonth,IIF(ISNULL(led_tipos_doc.periodicidad,'A') = 'A',@LastDay_AnyMonth,null)) as fecha_vigencia0,
LED_DOCS.fecha_vigencia AS vigenciaANT,
iif(ISNULL(LED_DOCS.fecha_vigencia,null) is null,iif(ISNULL(led_tipos_doc.periodicidad,'M') = 'M',@LastDayNextMonth,IIF(ISNULL(led_tipos_doc.periodicidad,'A') = 'A',@LastDay_AnyMonth,null)),LED_DOCS.fecha_vigencia) as fecha_vigencia,
*/
convert(varchar(16),getdate(),120) + ' GENERACION AUTOMATICA DE DOCUMENTOS' AS doc_log,
led_grupo_tipo_doc.grupo_doc,led_tipos_doc.tipo_doc_lista as doc_id_lista
FROM led_contratistas INNER JOIN
led_cliente_contratista ON led_contratistas.cliente = led_cliente_contratista.cliente
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
INNER JOIN clientes ON led_contratistas.cliente = clientes.cliente INNER JOIN
led_tipos_doc ON led_cliente_contratista.tipo_doc = led_tipos_doc.tipo_doc inner join
led_grupo_tipo_doc ON led_cliente_contratista.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
INNER JOIN led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista and led_contratista_periodo.periodo = @periodo)
/*
left JOIN led_subcontratista_periodo on (led_contratistas.contratista = led_subcontratista_periodo.subcontratista and led_subcontratista_periodo.periodo = @periodo)
*/
/*
LEFT JOIN LED_DOCS ON (LED_DOCS.tipo_doc = led_tipos_doc.tipo_doc AND LED_DOCS.led_seccion = led_tipos_doc.led_seccion AND LED_DOCS.contratista = led_contratistas.contratista
AND LED_DOCS.periodo = 201608 AND LED_DOCS.grupo_doc = led_grupo_tipo_doc.grupo_doc)
*/
WHERE (clientes.cliente = @IDCliente) AND (led_cliente_contratista.activo = 1)
and (led_tipos_doc.doc_alta = 0 OR led_tipos_doc.doc_alta IS NULL)
and (led_tipos_doc.doc_baja = 0 OR led_tipos_doc.doc_baja IS NULL)
and led_contratistas.estado_contratista = 'A'
and led_grupos_doc.cliente = @IDCliente
/*
FROM led_contratistas INNER JOIN
led_cliente_contratista ON led_contratistas.cliente = led_cliente_contratista.cliente
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista INNER JOIN
clientes ON led_contratistas.cliente = clientes.cliente INNER JOIN
led_tipos_doc ON led_cliente_contratista.tipo_doc = led_tipos_doc.tipo_doc inner join
led_grupo_tipo_doc ON led_cliente_contratista.tipo_doc = led_grupo_tipo_doc.tipo_doc
INNER JOIN led_contratista_periodo on (led_contratistas.contratista = led_contratista_periodo.contratista and led_contratista_periodo.periodo = @periodo)
WHERE (clientes.cliente = @IDCliente) AND (led_cliente_contratista.activo = 1)
and (led_tipos_doc.doc_alta = 0 OR led_tipos_doc.doc_alta IS NULL)
and (led_tipos_doc.doc_baja = 0 OR led_tipos_doc.doc_baja IS NULL)
*/
*/
DECLARE @dbDocID BIGINT = 0
/*
Open LedCargaDocs
Fetch NEXT FROM LedCargaDocs INTO @tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista
While (@@FETCH_STATUS <> -1)
BEGIN
/*
SELECT 'A',@tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista
*/
SET @dbDocID = 0
select @dbDocID = doc_id from led_docs
where tipo_doc = @tipo_doc
and periodo = @periodo
and led_seccion = @led_seccion
and contratista = @contratista
IF (@dbDocID = 0)
/*
select @dbDocID as dbDocID
*/
BEGIN
BEGIN TRY
insert into led_docs (
tipo_doc,
estado_doc,
led_seccion,
cliente,
contratista,
empleado,
vehiculo,
periodo,
contratista_1,
insertado,
fecha_tolerancia,
compliance_doc,
fecha_vigencia,
doc_log,
grupo_doc,
doc_id_lista
)
values
(@tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista)
END TRY
BEGIN CATCH
/*
SET @ERRORNUMBER = 1
*/
/*
SELECT @ERRORNUMBER,@tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc
*/
/*
select 'insert into led_docs (
tipo_doc,
estado_doc,
led_seccion,
cliente,
contratista,
empleado,
vehiculo,
periodo,
contratista_1,
insertado,
fecha_tolerancia,
compliance_doc,
fecha_vigencia,
doc_log,
grupo_doc,doc_id_lista
)
values'select @tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista
*/
END CATCH
END
Fetch NEXT FROM LedCargaDocs INTO @tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista
END
CLOSE LedCargaDocs
DEALLOCATE LedCargaDocs
*/
END
GO
Depends On
8Used By
No items found