feat: Agregar filtros avanzados a reporte de Deudores de Conceptos
- Filtros por casas: selección múltiple con opción 'Todas las casas' - Filtros por conceptos: selección múltiple con opción 'Todos los conceptos' - Estado inicial: todos los filtros marcados por defecto (muestra toda la info) - Exportación PDF: incluye solo datos filtrados según selección - JavaScript interactivo: lógica de checkboxes con estados intermedios - Modelo actualizado: método getConceptDebtorsFiltered para filtrado avanzado - Interfaz intuitiva: scrollable containers para listas largas - Preserva permisos: respeta restricciones de acceso por casas
This commit is contained in:
@@ -596,7 +596,25 @@ switch ($page) {
|
||||
}
|
||||
$waterDebtors = Report::getWaterDebtors($filters);
|
||||
} elseif ($reportType == 'concept-debtors') {
|
||||
$conceptDebtors = Report::getConceptDebtors($accessibleHouseIds);
|
||||
// Procesar filtros de casas y conceptos
|
||||
$houseFilters = $_GET['filter_houses'] ?? ['all'];
|
||||
$conceptFilters = $_GET['filter_concepts'] ?? ['all'];
|
||||
|
||||
// Determinar casas a filtrar
|
||||
if (in_array('all', $houseFilters) || empty($houseFilters)) {
|
||||
$filteredHouses = $accessibleHouseIds;
|
||||
} else {
|
||||
$filteredHouses = array_intersect($houseFilters, $accessibleHouseIds);
|
||||
}
|
||||
|
||||
// Determinar conceptos a filtrar
|
||||
if (in_array('all', $conceptFilters) || empty($conceptFilters)) {
|
||||
$filteredConcepts = null; // Todos los conceptos
|
||||
} else {
|
||||
$filteredConcepts = $conceptFilters;
|
||||
}
|
||||
|
||||
$conceptDebtors = Report::getConceptDebtorsFiltered($filteredHouses, $filteredConcepts);
|
||||
}
|
||||
|
||||
$view = 'reports/index';
|
||||
@@ -896,7 +914,26 @@ switch ($page) {
|
||||
case 'concept-debtors':
|
||||
// Requerimos el modelo Report
|
||||
require_once __DIR__ . '/models/Report.php';
|
||||
$conceptDebtors = Report::getConceptDebtors($accessibleHouseIds);
|
||||
|
||||
// Procesar filtros para exportación
|
||||
$houseFilters = $_GET['filter_houses'] ?? ['all'];
|
||||
$conceptFilters = $_GET['filter_concepts'] ?? ['all'];
|
||||
|
||||
// Determinar casas a filtrar para exportación
|
||||
if (in_array('all', $houseFilters) || empty($houseFilters)) {
|
||||
$filteredHouses = $accessibleHouseIds;
|
||||
} else {
|
||||
$filteredHouses = array_intersect($houseFilters, $accessibleHouseIds);
|
||||
}
|
||||
|
||||
// Determinar conceptos a filtrar para exportación
|
||||
if (in_array('all', $conceptFilters) || empty($conceptFilters)) {
|
||||
$filteredConcepts = null; // Todos los conceptos
|
||||
} else {
|
||||
$filteredConcepts = $conceptFilters;
|
||||
}
|
||||
|
||||
$conceptDebtors = Report::getConceptDebtorsFiltered($filteredHouses, $filteredConcepts);
|
||||
include __DIR__ . '/views/reports/pdf_concept_debtors.php';
|
||||
break;
|
||||
case 'expenses':
|
||||
|
||||
Reference in New Issue
Block a user