Mejorar Balance General con detalle de conceptos especiales y filtro por año
This commit is contained in:
@@ -533,6 +533,8 @@ switch ($page) {
|
||||
$balance = Report::getGeneralBalance();
|
||||
$expensesByCategory = Report::getExpensesByCategory();
|
||||
$accessibleHouseIds = Auth::getAccessibleHouseIds();
|
||||
$filterYear = $_GET['filter_year'] ?? null;
|
||||
$conceptDetails = Report::getConceptDetailsByYear($filterYear);
|
||||
|
||||
if ($reportType == 'water-debtors') {
|
||||
$filters = [
|
||||
@@ -754,6 +756,8 @@ switch ($page) {
|
||||
// Requerimos el modelo Report
|
||||
require_once __DIR__ . '/models/Report.php';
|
||||
$balance = Report::getGeneralBalance();
|
||||
$filterYear = $_GET['filter_year'] ?? null;
|
||||
$conceptDetails = Report::getConceptDetailsByYear($filterYear);
|
||||
include __DIR__ . '/views/reports/pdf_balance.php';
|
||||
break;
|
||||
}
|
||||
@@ -763,25 +767,63 @@ switch ($page) {
|
||||
exit;
|
||||
|
||||
case 'export_csv_balance':
|
||||
// Lógica para exportar CSV de balance
|
||||
header('Content-Type: text/csv');
|
||||
header('Content-Disposition: attachment; filename="Balance_General_IBIZA_' . date('Y') . '.csv"');
|
||||
fputs(fopen('php://output', 'w'), $bom = (chr(0xEF) . chr(0xBB) . chr(0xBF))); // BOM for UTF-8 in Excel
|
||||
|
||||
// Requerimos el modelo Report
|
||||
Auth::requireAdmin();
|
||||
require_once __DIR__ . '/models/Report.php';
|
||||
|
||||
$filterYear = $_GET['filter_year'] ?? null;
|
||||
$balance = Report::getGeneralBalance();
|
||||
$conceptDetails = Report::getConceptDetailsByYear($filterYear);
|
||||
|
||||
header('Content-Type: text/csv');
|
||||
$filename = 'Balance_General_IBIZA';
|
||||
if ($filterYear) {
|
||||
$filename .= '_' . $filterYear;
|
||||
}
|
||||
header('Content-Disposition: attachment; filename="' . $filename . '.csv"');
|
||||
fputs(fopen('php://output', 'w'), $bom = (chr(0xEF) . chr(0xBB) . chr(0xBF)));
|
||||
|
||||
$output = fopen('php://output', 'w');
|
||||
fputcsv($output, ['Condominio IBIZA-Cto Sierra Morena 152 - Balance General ' . date('Y')]);
|
||||
fputcsv($output, ['Condominio IBIZA-Cto Sierra Morena 152 - Balance General']);
|
||||
if ($filterYear) {
|
||||
fputcsv($output, ['Año: ' . $filterYear]);
|
||||
}
|
||||
fputcsv($output, ['']); // Blank line
|
||||
|
||||
fputcsv($output, ['Descripción', 'Monto']);
|
||||
fputcsv($output, ['Total Ingresos (Conceptos)', $balance['total_incomes']]);
|
||||
if (!Auth::isLector()) {
|
||||
fputcsv($output, ['Total Egresos', $balance['total_expenses']]);
|
||||
fputcsv($output, ['Balance Neto', $balance['balance']]);
|
||||
fputcsv($output, ['Total Egresos', $balance['total_expenses']]);
|
||||
fputcsv($output, ['Balance Neto', $balance['balance']]);
|
||||
fputcsv($output, ['']); // Blank line
|
||||
|
||||
if (!empty($conceptDetails['concepts'])) {
|
||||
fputcsv($output, ['Detalle de Conceptos Especiales']);
|
||||
fputcsv($output, ['']); // Blank line
|
||||
fputcsv($output, ['Concepto', 'Descripción', 'Esperado', 'Recaudado', 'Pendiente', 'Gastos', 'Balance']);
|
||||
|
||||
foreach ($conceptDetails['concepts'] as $cd) {
|
||||
fputcsv($output, [
|
||||
$cd['concept']['name'],
|
||||
$cd['concept']['description'] ?? '-',
|
||||
$cd['expected'],
|
||||
$cd['collected'],
|
||||
$cd['pending'],
|
||||
$cd['expenses'],
|
||||
$cd['balance']
|
||||
]);
|
||||
}
|
||||
|
||||
fputcsv($output, ['']); // Blank line
|
||||
fputcsv($output, [
|
||||
'TOTALES',
|
||||
'',
|
||||
$conceptDetails['totals']['expected'],
|
||||
$conceptDetails['totals']['collected'],
|
||||
$conceptDetails['totals']['pending'],
|
||||
$conceptDetails['totals']['expenses'],
|
||||
$conceptDetails['totals']['balance']
|
||||
]);
|
||||
}
|
||||
|
||||
fclose($output);
|
||||
exit;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user