
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ind_tiempoAtencionOT]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[ind_tiempoAtencionOT]
GO
CREATE PROCEDURE [dbo].[ind_tiempoAtencionOT]
	@p_estadoTipoDocumento as INT = 0,
		
		@p_tiposervicio as INT = 0,
		@p_sucursal as INT = 0,
		@p_tercero as INT = 0,			
		@p_fecha_fh as smalldatetime = null,
		@p_fecha_fh_b as smalldatetime = null,
		@p_subtipodocumento as INT = 0,
		@p_eid varchar(100)
AS
BEGIN


select 
convert(varchar(7),doc_documento.fecha_fh,111) as periodo,		
sum(case 
		when DATEDIFF(day,[doc_documento].fecha_fh, ort_programacion.desde_fh) < 0 then 0
		else DATEDIFF(day,[doc_documento].fecha_fh,ort_programacion.desde_fh )end)/cast(count(doc_documento.id) as float) as valor,
		case when ort_departamentoSolicitud.departamentoSolicitud ='' then 'No hay Datos' else ort_departamentoSolicitud.departamentoSolicitud end as serie1
		
from doc_documento inner join
	[doc_documento.ot] on doc_documento.id=[doc_documento.ot].id inner join 
	
			doc_subtipodocumento on  doc_subtipodocumento.id = doc_documento.id_subtipodocumento inner join
		gen_tipoServicio on gen_tipoServicio.id=[doc_documento.ot].id_tipoServicio inner join 	
		ter_tercero on doc_documento.id_tercero_cliente=ter_tercero.id inner join  
		doc_estadoTipodocumento on doc_estadoTipodocumento.id=doc_documento.id_estadoTipodocumento inner join 
		ter_sucursal ON [doc_documento.ot].id_sucursal = ter_sucursal.id inner join 
		doc_prioridadDocumento on doc_prioridadDocumento.id = doc_documento.id_prioridadDocumento inner join 
		ort_departamentoSolicitud on ort_departamentoSolicitud.id=[doc_documento.ot].id_departamentoSolicitud inner join
		ort_programacion on ort_programacion.[id]=(select top 1 ort_programacion.[id] from ort_programacion 
        where [doc_documento.ot].id = ort_programacion.[id_documento.ot] and id_tipoProgramacion=6 order by ort_programacion .desde_fh asc)
         




where	(@p_estadoTipoDocumento=0 or doc_estadoTipoDocumento.id = @p_estadoTipoDocumento)
		and(@p_tercero=0 or ter_tercero.id = @p_tercero)
		and (@p_tiposervicio=0 or gen_tipoServicio.id = @p_tiposervicio)
		and (@p_sucursal=0 or ter_sucursal.id = @p_sucursal)
		and (@p_fecha_fh is null or doc_documento.fecha_fh >= @p_fecha_fh)
		and (@p_fecha_fh_b is null or doc_documento.fecha_fh <= @p_fecha_fh_b)
			and (@p_subtipodocumento=0 or doc_subtipodocumento.id = @p_subtipodocumento)
		and	doc_documento.active=1 
		and (ort_departamentoSolicitud.active=1 or ort_departamentoSolicitud.id=0)
		and doc_documento.fechaCierre_ff>'1900-01-01' and [doc_documento.ot].fechaCompromiso_fh>'1900-01-01'
		AND (doc_documento.eid LIKE @p_eid + '%')


group by convert(varchar(7),doc_documento.fecha_fh,111),
		ort_departamentoSolicitud.departamentoSolicitud

order by convert(varchar(7),doc_documento.fecha_fh,111)




select 
		sum(case 
		when DATEDIFF(day,[doc_documento].fecha_fh, ort_programacion.desde_fh )<0 then 0
		else DATEDIFF(day,[doc_documento].fecha_fh, ort_programacion.desde_fh )end)/cast(count(doc_documento.id) as float) as valor,
		case when ort_departamentoSolicitud.departamentoSolicitud ='' then 'No hay Datos' else ort_departamentoSolicitud.departamentoSolicitud end as serie1
		

from doc_documento inner join
	[doc_documento.ot] on doc_documento.id=[doc_documento.ot].id inner join 
	
			doc_subtipodocumento on  doc_subtipodocumento.id = doc_documento.id_subtipodocumento inner join
		gen_tipoServicio on gen_tipoServicio.id=[doc_documento.ot].id_tipoServicio inner join 	
		ter_tercero on doc_documento.id_tercero_cliente=ter_tercero.id inner join  
		doc_estadoTipodocumento on doc_estadoTipodocumento.id=doc_documento.id_estadoTipodocumento inner join 
		ter_sucursal ON [doc_documento.ot].id_sucursal = ter_sucursal.id inner join 
		doc_prioridadDocumento on doc_prioridadDocumento.id = doc_documento.id_prioridadDocumento inner join 
		ort_departamentoSolicitud on ort_departamentoSolicitud.id=[doc_documento.ot].id_departamentoSolicitud inner join
		ort_programacion on ort_programacion.[id]=(select top 1 ort_programacion.[id] from ort_programacion 
        where [doc_documento.ot].id = ort_programacion.[id_documento.ot] and id_tipoProgramacion=6 order by ort_programacion .desde_fh asc)


where	(@p_estadoTipoDocumento=0 or doc_estadoTipoDocumento.id = @p_estadoTipoDocumento)
		and(@p_tercero=0 or ter_tercero.id = @p_tercero)
		and (@p_tiposervicio=0 or gen_tipoServicio.id = @p_tiposervicio)
		and (@p_sucursal=0 or ter_sucursal.id = @p_sucursal)
		and (@p_fecha_fh is null or doc_documento.fecha_fh >= @p_fecha_fh)
		and (@p_fecha_fh_b is null or doc_documento.fecha_fh <= @p_fecha_fh_b)
			and (@p_subtipodocumento=0 or doc_subtipodocumento.id = @p_subtipodocumento)
		and	doc_documento.active=1 
		and (ort_departamentoSolicitud.active=1 or ort_departamentoSolicitud.id=0)
		and	doc_documento.fechaCierre_ff>'1900-01-01' and [doc_documento.ot].fechaCompromiso_fh>'1900-01-01'
		AND (doc_documento.eid LIKE @p_eid + '%')

group by ort_departamentoSolicitud.departamentoSolicitud

order by sum(case 
		when DATEDIFF(day,[doc_documento.ot].fechaCompromiso_fh,doc_documento.fechaCierre_ff)<0 then 0
		else DATEDIFF(day,[doc_documento.ot].fechaCompromiso_fh,doc_documento.fechaCierre_ff)end) desc



select 
		count(doc_documento.id) as total
		

from doc_documento inner join
	[doc_documento.ot] on doc_documento.id=[doc_documento.ot].id inner join 
	
			doc_subtipodocumento on  doc_subtipodocumento.id = doc_documento.id_subtipodocumento inner join
		gen_tipoServicio on gen_tipoServicio.id=[doc_documento.ot].id_tipoServicio inner join 	
		ter_tercero on doc_documento.id_tercero_cliente=ter_tercero.id inner join  
		doc_estadoTipodocumento on doc_estadoTipodocumento.id=doc_documento.id_estadoTipodocumento inner join 
		ter_sucursal ON [doc_documento.ot].id_sucursal = ter_sucursal.id inner join 
		doc_prioridadDocumento on doc_prioridadDocumento.id = doc_documento.id_prioridadDocumento inner join 
		ort_departamentoSolicitud on ort_departamentoSolicitud.id=[doc_documento.ot].id_departamentoSolicitud inner join
		ort_programacion on ort_programacion.[id]=(select top 1 ort_programacion.[id] from ort_programacion 
        where [doc_documento.ot].id = ort_programacion.[id_documento.ot] and id_tipoProgramacion=6 order by ort_programacion.desde_fh asc)


where	(@p_estadoTipoDocumento=0 or doc_estadoTipoDocumento.id = @p_estadoTipoDocumento)
		and(@p_tercero=0 or ter_tercero.id = @p_tercero)
		and (@p_tiposervicio=0 or gen_tipoServicio.id = @p_tiposervicio)
		and (@p_sucursal=0 or ter_sucursal.id = @p_sucursal)
		and (@p_fecha_fh is null or doc_documento.fecha_fh >= @p_fecha_fh)
		and (@p_fecha_fh_b is null or doc_documento.fecha_fh <= @p_fecha_fh_b)
			and (@p_subtipodocumento=0 or doc_subtipodocumento.id = @p_subtipodocumento)
		and	doc_documento.active=1 
		and (ort_departamentoSolicitud.active=1 or ort_departamentoSolicitud.id=0)
		and	doc_documento.fechaCierre_ff>'1900-01-01' and [doc_documento.ot].fechaCompromiso_fh>'1900-01-01'
		AND (doc_documento.eid LIKE @p_eid + '%')


END
GO

SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO

