diff --git a/dashboard.php b/dashboard.php index 5c67ba2..614fe3c 100755 --- a/dashboard.php +++ b/dashboard.php @@ -597,21 +597,27 @@ switch ($page) { $waterDebtors = Report::getWaterDebtors($filters); } elseif ($reportType == 'concept-debtors') { // Procesar filtros de casas y conceptos - $houseFilters = $_GET['filter_houses'] ?? ['all']; - $conceptFilters = $_GET['filter_concepts'] ?? ['all']; + $houseFilters = $_GET['filter_houses'] ?? []; + $conceptFilters = $_GET['filter_concepts'] ?? []; // Determinar casas a filtrar - if (in_array('all', $houseFilters) || empty($houseFilters)) { + if (empty($houseFilters) || in_array('all', $houseFilters)) { $filteredHouses = $accessibleHouseIds; } else { - $filteredHouses = array_intersect($houseFilters, $accessibleHouseIds); + // Filtrar solo las casas específicamente seleccionadas + $filteredHouses = array_filter($houseFilters, function($houseId) use ($accessibleHouseIds) { + return $houseId !== 'all' && in_array($houseId, $accessibleHouseIds); + }); } // Determinar conceptos a filtrar - if (in_array('all', $conceptFilters) || empty($conceptFilters)) { + if (empty($conceptFilters) || in_array('all', $conceptFilters)) { $filteredConcepts = null; // Todos los conceptos } else { - $filteredConcepts = $conceptFilters; + // Filtrar solo los conceptos específicamente seleccionados + $filteredConcepts = array_filter($conceptFilters, function($conceptId) { + return $conceptId !== 'all'; + }); } $conceptDebtors = Report::getConceptDebtorsFiltered($filteredHouses, $filteredConcepts); @@ -916,24 +922,39 @@ switch ($page) { require_once __DIR__ . '/models/Report.php'; // Procesar filtros para exportación - $houseFilters = $_GET['filter_houses'] ?? ['all']; - $conceptFilters = $_GET['filter_concepts'] ?? ['all']; + $houseFilters = $_GET['filter_houses'] ?? []; + $conceptFilters = $_GET['filter_concepts'] ?? []; + + // Debug: mostrar qué filtros se están recibiendo + error_log("DEBUG - House filters: " . print_r($houseFilters, true)); + error_log("DEBUG - Concept filters: " . print_r($conceptFilters, true)); // Determinar casas a filtrar para exportación - if (in_array('all', $houseFilters) || empty($houseFilters)) { + if (empty($houseFilters) || in_array('all', $houseFilters)) { $filteredHouses = $accessibleHouseIds; + error_log("DEBUG - Using all accessible houses: " . count($filteredHouses)); } else { - $filteredHouses = array_intersect($houseFilters, $accessibleHouseIds); + // Filtrar solo las casas específicamente seleccionadas + $filteredHouses = array_filter($houseFilters, function($houseId) use ($accessibleHouseIds) { + return $houseId !== 'all' && in_array($houseId, $accessibleHouseIds); + }); + error_log("DEBUG - Using filtered houses: " . count($filteredHouses) . " - " . implode(',', $filteredHouses)); } // Determinar conceptos a filtrar para exportación - if (in_array('all', $conceptFilters) || empty($conceptFilters)) { + if (empty($conceptFilters) || in_array('all', $conceptFilters)) { $filteredConcepts = null; // Todos los conceptos + error_log("DEBUG - Using all concepts"); } else { - $filteredConcepts = $conceptFilters; + // Filtrar solo los conceptos específicamente seleccionados + $filteredConcepts = array_filter($conceptFilters, function($conceptId) { + return $conceptId !== 'all'; + }); + error_log("DEBUG - Using filtered concepts: " . count($filteredConcepts) . " - " . implode(',', $filteredConcepts)); } $conceptDebtors = Report::getConceptDebtorsFiltered($filteredHouses, $filteredConcepts); + error_log("DEBUG - Concept debtors result: " . count($conceptDebtors['debtors']) . " concepts with debts"); include __DIR__ . '/views/reports/pdf_concept_debtors.php'; break; case 'expenses': diff --git a/models/Report.php b/models/Report.php index 5a6657e..5e8679e 100755 --- a/models/Report.php +++ b/models/Report.php @@ -527,8 +527,16 @@ class Report { ORDER BY cc.name, h.number, cc.concept_date DESC "; + error_log("DEBUG - SQL Query: " . $query); + error_log("DEBUG - SQL Params: " . print_r($params, true)); + $results = $db->fetchAll($query, $params); + error_log("DEBUG - SQL Results count: " . count($results)); + if (count($results) > 0) { + error_log("DEBUG - First result sample: " . print_r($results[0], true)); + } + // Group by concept like the original method $debtors = []; $grandTotal = 0;