alter procedure rrhh.sp_obtenerDepartamentosDocumentosPago
@numAnio int,
@numTipoPlanilla int,
@numPlanilla int
as
begin
	set nocount on;
	IF OBJECT_ID(N'tempdb..#departamentosPlanilla') IS NOT NULL
		BEGIN
			DROP TABLE #departamentosPlanilla;
		END

	create table #departamentosPlanilla(
		coddepartamento int
	);

	insert into #departamentosPlanilla(coddepartamento)
	select distinct(coddepartamento) from negocios_a.dbo.pla_planilla_det where correlativo = @numPlanilla;

	SELECT X.* 
		FROM (SELECT departamentos.codempresa,
				departamentos.coddepartamento,
				departamentos.nomdepartamento nombreDepartamento,
				departamentos.coddepartamentopadre,
				(select count(*) from negocios_a.dbo.gen_empleado where coddepartamento = departamentos.coddepartamento and codestado = 1 and codtipoplanilla = @numTipoPlanilla) totalEmpleados,
				(select count(*) from negocios_a.dbo.gen_empleado where coddepartamento = departamentos.coddepartamento and(correoempresarial is not null and correoempresarial != '' and correoempresarial != '0') and codestado = 1 and codtipoplanilla = @numTipoPlanilla) totalEmails,
				(select COUNT(distinct(envios.codempleado)) from rrhh.det_procesosDocumentosPago envios inner join rrhh.datos_procesosDocumentosPago procesos on envios.idProceso = procesos.id and procesos.estado = 1 where envios.estado = 1 and procesos.tipoPlanilla = @numTipoPlanilla and planilla = @numPlanilla and envios.coddepartamento = departamentos.coddepartamento AND envios.tipoProceso = 1) totalEnvios,
				(select COUNT(distinct(generaciones.codempleado)) from rrhh.det_procesosDocumentosPago generaciones inner join rrhh.datos_procesosDocumentosPago procesos on generaciones.idProceso = procesos.id and procesos.estado = 1 where generaciones.estado = 1 and procesos.tipoPlanilla = @numTipoPlanilla and planilla = @numPlanilla and generaciones.coddepartamento = departamentos.coddepartamento AND generaciones.tipoProceso IN(1,2)) totalGenerados
			FROM negocios_a.dbo.gen_departamento departamentos WHERE codempresa = 4 and departamentos.coddepartamento IN (select * from #departamentosPlanilla)) 
		X
end

/*
EXEC rrhh.sp_obtenerDepartamentosDocumentosPago 2023,1,6834
*/