<?php
/* -------------------------
    Autor: Jose Luis Robles
    Mail: jrobleso@gmail.com
---------------------------*/
session_start();

// Verificar la sesión y los permisos del usuario
if (!isset($_SESSION['user_login_status']) || $_SESSION['user_login_status'] !== 1) {
    header("location: login.php");
    exit;
}

/* Conectar a la base de datos */
require_once("config/db.php");
require_once("config/conexion.php");
require_once("config/database.php");

$active_rep_gral = "active";
$active_nueva_facturas = "";
$active_productos = "";
$active_clientes = "";
$active_usuarios = "";
$title = "Bonustrade";

if (isset($_POST['downloadBackup'])) {
    // Obtener la fecha actual
    $fechaActual = new DateTime();
    $fechaFormateada = $fechaActual->format('Ymd_His');

    // Nombre del archivo con la fecha
    $mysqlExportPath = 'respaldos/db_diario_backup_' . $fechaFormateada . '.sql';

    // Backup con mysqldump
    $command = sprintf(
        'mysqldump -h %s -u %s -p %s --triggers %s > %s',
        escapeshellarg($server),
        escapeshellarg($username),
        escapeshellarg($password),
        escapeshellarg($database),
        escapeshellarg($mysqlExportPath)
    );

    exec($command, $output = array(), $worked);
    /*echo "Command: $command<br>";
    echo "Output: " . implode("<br>", $output) . "<br>";
    echo "Return Code: $worked<br>";*/

    /* var_dump($worked);
     var_dump($output);
     var_dump($command);*/
    if ($worked === 0) {
        // Éxito - Descargar el respaldo
        header('Content-Type: application/sql');
        header('Content-Disposition: attachment; filename="' . basename($mysqlExportPath) . '"');
        readfile($mysqlExportPath);
        unlink($mysqlExportPath); // Eliminar el archivo después de descargarlo
        exit;
    } else {
        $message = 'Se ha producido un error al exportar ' . $database;
    }
}

include("head.php");
include("navbar.php");
?>

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title></title>
</head>

<body>
    <div class="container">
        <div class="panel panel-info">
            <div class="panel-heading">
                <h4><i class='glyphicon glyphicon-search'></i> Respaldar Base de datos</h4>
            </div>
            <div class="panel-body">
                <form method="post" class="mb-20">
                    <?php
                    if (isset($message)) {
                        // Mostrar mensaje de éxito o error
                        echo $message;
                    }
                    ?>
                    <button type="submit" name="downloadBackup" class="btn btn-success">Descargar respaldo</button>
                </form>
            </div>
        </div>
        <hr>
        <?php
        include("footer.php");
        ?>
    </div>
</body>

</html>

