dbo.Carga_Led_Docs_Contratista

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.Carga_Led_Docs_Contratista
@periodo int,
@IDCliente int

AS

BEGIN
 SET NOCOUNT ON;

DECLARE @ERRORNUMBER SMALLINT 


if (@periodo is null)
BEGIN
 SET @periodo = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())),2)
END


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



/*
versión septiembre 2016
implementar 1-10-2016



/*
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


*/


SET @periodo = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())-1),2)

SET @periodoAnt = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())-1),2)


select @periodo as periodo,@periodoAnt as periodoAnt

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


SELECT distinct led_tipos_doc.tipo_doc,
iif(LED_DOCS.fecha_vigencia > GETDATE()+4,led_docs.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((isnull(led_cliente_contratista.dias_tolerancia,0) + getdate())>getdate() ,'B','R') as compliance_doc0,
*/

iif(LED_DOCS.fecha_vigencia > GETDATE()+4,led_docs.compliance_doc,'B') 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_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_vigencia1,
*/

iif(LED_DOCS.fecha_vigencia > getdate()+4,LED_DOCS.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 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 = @periodoAnt 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




*/




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
*/

BEGIN TRY
select 'NO USAR'

/*
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

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

Used By

No items found