set ANSI_NULLS OFF
set QUOTED_IDENTIFIER OFF
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[rep_detallesContrato]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[rep_detallesContrato]
GO
CREATE PROCEDURE rep_detallesContrato
@p_tercero as int=0,
@p_id as int=0,
@p_eid as varchar(100),
@p_tipoContrato as int=0,
@p_fechaInicio_ff as datetime=null,
@p_fechaInicio_ff_b as datetime=null
AS
BEGIN


select distinct(cnt_contrato.contrato)as 'Contrato',
count(distinct(cnt_contratoEquipo.id_equipo)) as 'CantidadEquipos',  
ter_tercero.tercero as 'Cliente',
count(distinct(cnt_visitafija.id))as 'Visitas',
count(distinct(case when cnt_visitafija.[id_documento.ot]>0 then cnt_visitafija.[id_documento.ot] else null end))as 'VisitasconOt',
count(distinct(case when doc_estadoTipoDocumento.estadoTipoDocumento_codigo='CER' then doc_estadoTipoDocumento.estadoTipoDocumento_codigo else null end))as 'VisitasconOtCerradas',
count(distinct (case when cnt_visitafija.[id_documento.ot]= [doc_documento].id_documento and cnt_visitafija.[id_documento.ot] <>0 then [doc_documento].id else null end))+ count(distinct ( case when not [doc_documento].id_documento=0then [doc_documento].id_documento else null end )) as 'CantidadOts'
from doc_documento inner join  cnt_visitaFija on doc_documento.id =  cnt_visitaFija.[id_documento.ot]
inner join cnt_contratoDetalleVisita on cnt_contratoDetalleVisita.id  =cnt_visitaFija.id_contratoDetalleVisita 
inner join  cnt_contrato  on cnt_contratoDetalleVisita.id_contrato=cnt_contrato.id
inner join cnt_contratoEquipo on cnt_contratoEquipo.id_Contrato= cnt_contrato.id 
inner join  ter_tercero on ter_tercero.id =cnt_contrato.id_tercero 
inner join  doc_estadoTipoDocumento on doc_estadoTipoDocumento.id =[doc_documento].id_estadoTipoDocumento

where (@p_tipoContrato=0  or cnt_contrato.id_tipoContrato = @p_tipoContrato )and
(@p_fechaInicio_ff =null  or [cnt_contrato].fechaInicio_ff>=@p_fechaInicio_ff )  and  (@p_fechaInicio_ff =null  or [cnt_contrato].fechaInicio_ff<= @p_fechaInicio_ff_b)and
( @p_tercero=0 or [cnt_contrato].id_tercero =@p_tercero) and 
( @p_id >=0 )and
 [cnt_contrato].eid LIKE @p_eid + '%'and
cnt_contratoEquipo.active= 1 and cnt_visitafija.active =1 and cnt_contrato.active=1
 group by cnt_contrato.contrato,ter_tercero.tercero
END
GO
