<?php
require_once './config.php';

echo '<h1>Mise à jour des tables financières</h1>';

try {
    // Ouvrir une connexion directe à la base de données
    $dbFile = __DIR__ . '/database/association.db';
    $db = new PDO('sqlite:' . $dbFile);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    echo '<h2>Structure actuelle de la table expenses</h2>';
    $stmt = $db->query("PRAGMA table_info(expenses)");
    $columns = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    echo '<table border="1" cellpadding="5" style="border-collapse: collapse;">';
    echo '<tr><th>ID</th><th>Nom</th><th>Type</th><th>Not Null</th><th>Default</th><th>PK</th></tr>';
    
    foreach ($columns as $column) {
        echo '<tr>';
        echo '<td>' . $column['cid'] . '</td>';
        echo '<td>' . $column['name'] . '</td>';
        echo '<td>' . $column['type'] . '</td>';
        echo '<td>' . $column['notnull'] . '</td>';
        echo '<td>' . $column['dflt_value'] . '</td>';
        echo '<td>' . $column['pk'] . '</td>';
        echo '</tr>';
    }
    
    echo '</table>';
    
    // Exécuter le script SQL d'update
    echo '<h2>Application des modifications</h2>';
    
    // Vérifier que le fichier SQL existe
    $sqlFile = __DIR__ . '/database/update_finance_tables.sql';
    if (!file_exists($sqlFile)) {
        throw new Exception("Le fichier SQL de mise à jour n'existe pas.");
    }
    
    // Lire et exécuter le contenu du fichier SQL
    $sql = file_get_contents($sqlFile);
    $db->exec($sql);
    
    echo '<div style="color: green;">La structure de la table expenses a été mise à jour avec succès.</div>';
    
    // Afficher la nouvelle structure
    echo '<h2>Nouvelle structure de la table expenses</h2>';
    $stmt = $db->query("PRAGMA table_info(expenses)");
    $updatedColumns = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    echo '<table border="1" cellpadding="5" style="border-collapse: collapse;">';
    echo '<tr><th>ID</th><th>Nom</th><th>Type</th><th>Not Null</th><th>Default</th><th>PK</th></tr>';
    
    foreach ($updatedColumns as $column) {
        echo '<tr>';
        echo '<td>' . $column['cid'] . '</td>';
        echo '<td>' . $column['name'] . '</td>';
        echo '<td>' . $column['type'] . '</td>';
        echo '<td>' . $column['notnull'] . '</td>';
        echo '<td>' . $column['dflt_value'] . '</td>';
        echo '<td>' . $column['pk'] . '</td>';
        echo '</tr>';
    }
    
    echo '</table>';
    
    // Modifier le fichier add.php pour corriger l'insertion
    $addPhpFile = __DIR__ . '/finance/expenses/add.php';
    
    if (file_exists($addPhpFile)) {
        echo '<h2>Vérification du fichier add.php</h2>';
        
        $fileContent = file_get_contents($addPhpFile);
        
        // Vérifier si le fichier utilise déjà payment_date dans la requête INSERT
        $hasPaymentDate = strpos($fileContent, 'payment_date') !== false;
        
        if ($hasPaymentDate) {
            echo '<div style="color: green;">Le fichier add.php utilise déjà la colonne payment_date.</div>';
        } else {
            echo '<div style="color: orange;">Le fichier add.php pourrait nécessiter une modification manuelle pour utiliser la colonne payment_date.</div>';
        }
    }
    
    echo '<h2>Mise à jour terminée avec succès !</h2>';
    echo '<a href="finance/expenses/add.php" class="btn btn-primary">Retourner à la page d\'ajout de dépenses</a> ';
    echo '<a href="finance/expenses/index.php" class="btn btn-info">Voir la liste des dépenses</a>';
    
} catch (PDOException $e) {
    echo '<div style="color: red; font-weight: bold;">Erreur PDO: ' . $e->getMessage() . '</div>';
} catch (Exception $e) {
    echo '<div style="color: red; font-weight: bold;">Erreur: ' . $e->getMessage() . '</div>';
}
?>
