public IList <Reporte> reportePorTipoPermiso() { IList <Reporte> reportes = new List <Reporte>(); unidades = new NegocioUnidad().listado(); solicitudes = new NegocioSolicitud().listado(); departamentos = new NegocioDepartamento().listado(); empleados = new NegocioEmpleado().listado(); listTipoPermiso = new NegocioTipoPermiso().listado(); var query = from s in solicitudes join t in listTipoPermiso on s.idTipoPermiso equals t.idTipoPermiso group s by new { t.nombreTipoPermiso } into r select new { tipoPermiso = r.Key.nombreTipoPermiso, cantidad = r.Count(c => c.idSolicitud != null) }; foreach (var item in query) { Reporte nuevo = new Reporte(); nuevo.nombreUnidad = string.Empty; nuevo.nombreTipoPermiso = item.tipoPermiso; nuevo.cantidadPermisos = item.cantidad; reportes.Add(nuevo); } return(reportes); }
public IList <Reporte> reportePorTipoPermisoDeUnidadInterna(int idUnidad) { IList <Reporte> reportes = new List <Reporte>(); unidades = new NegocioUnidad().listado(); solicitudes = new NegocioSolicitud().listado(); departamentos = new NegocioDepartamento().listado(); empleados = new NegocioEmpleado().listado(); listTipoPermiso = new NegocioTipoPermiso().listado(); var query = from s in solicitudes join t in listTipoPermiso on s.idTipoPermiso equals t.idTipoPermiso join e in empleados on s.rutAutorizante equals e.rut join d in departamentos on e.idDepartamento equals d.idDepartamento where e.idDepartamento == idUnidad group s by new { t.nombreTipoPermiso, d.nombreDepartamento } into r select new { nombreDepartamento = r.Key.nombreDepartamento, tipoPermiso = r.Key.nombreTipoPermiso, cantidad = r.Count(c => c.idSolicitud != null) }; foreach (var item in query) { Reporte nuevo = new Reporte(); nuevo.nombreUnidad = item.nombreDepartamento; nuevo.nombreTipoPermiso = item.tipoPermiso; nuevo.cantidadPermisos = item.cantidad; reportes.Add(nuevo); } return(reportes); }