0 && !empty($tipo)) { try { $stmt = $pdo->prepare("INSERT INTO inversiones (fecha, descripcion, monto, tipo) VALUES (?, ?, ?, ?)"); $stmt->execute([$fecha, $descripcion, $monto, $tipo]); // Redirigir para evitar reenvío de formulario header("Location: " . $_SERVER['PHP_SELF'] . "?success=true#section-" . $tipo); exit; } catch (PDOException $e) { $error_message = "Error al guardar en la base de datos: " . $e->getMessage(); } } else { $error_message = "Por favor, complete todos los campos correctamente."; } } // --- Filtrado por Mes --- $selected_month = $_GET['mes'] ?? null; $selected_year = $_GET['anio'] ?? null; $filter_active = $selected_month && $selected_year; // --- Obtener todos los datos de inversiones (con filtro si aplica) --- try { $sql = "SELECT * FROM inversiones"; $params = []; if ($filter_active) { $sql .= " WHERE MONTH(fecha) = ? AND YEAR(fecha) = ?"; $params = [$selected_month, $selected_year]; } $sql .= " ORDER BY fecha DESC, id DESC"; $stmt = $pdo->prepare($sql); $stmt->execute($params); $all_inversiones = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { die("Error al obtener los datos: " . $e->getMessage()); } // --- Obtener totales por mes (esto no se filtra) --- try { $stmt_totals = $pdo->query(" SELECT DATE_FORMAT(fecha, '%Y') as anio, DATE_FORMAT(fecha, '%m') as mes_num, DATE_FORMAT(fecha, '%M %Y') as mes_nombre, SUM(monto) as total_monto FROM inversiones GROUP BY anio, mes_num, mes_nombre ORDER BY anio DESC, mes_num DESC "); $monthly_totals = $stmt_totals->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { die("Error al obtener los totales mensuales: " . $e->getMessage()); } // Separar por tipo $inversiones_operativas = array_filter($all_inversiones, fn($inv) => $inv['tipo'] === 'operativa'); $inversiones_operacionales = array_filter($all_inversiones, fn($inv) => $inv['tipo'] === 'operacional'); $inversiones_ads = array_filter($all_inversiones, fn($inv) => $inv['tipo'] === 'ads'); // Función para renderizar una sección de inversión function render_investment_section($title, $type, $data, $description_label) { $total = array_sum(array_column($data, 'monto')); ?>

Fecha Descripción Monto (S/) Acciones
No hay registros.
Editar Eliminar
TOTAL:

Gestión de Inversiones


Registro guardado exitosamente.

Resumen de Inversiones por Mes

Mes Monto Total (S/)
No hay datos para mostrar.

Mostrando Inversiones de:

Mostrar Todos los Meses