<?php
/**
 * Script pour corriger l'affichage des revenus dans le tableau de bord et les rapports
 * Ce script s'assure que les paiements mensuels sont correctement comptabilisés dans les revenus
 */

require_once 'config.php';
require_once 'includes/functions.php';
require_once 'includes/functions_finance.php';
require_once 'database/init.php';

// Vérifier si des paiements mensuels n'ont pas été ajoutés à la table des revenus
$query = "SELECT mp.id, mp.member_id, mp.payment_month, mp.amount, mp.payment_method, mp.payment_date, mp.created_by
          FROM monthly_payments mp
          WHERE mp.status = 'paid' 
          AND mp.amount > 0";

$monthlyPayments = fetchAll($query);
$addedCount = 0;
$alreadyExistsCount = 0;

echo "<h2>Vérification des paiements mensuels manquants dans la table des revenus</h2>";
echo "<p>Nombre total de paiements mensuels avec statut 'paid': " . count($monthlyPayments) . "</p>";

foreach ($monthlyPayments as $payment) {
    // Vérifier si ce paiement existe déjà dans la table des revenus
    if (!checkMonthlyPaymentIncome($payment['member_id'], $payment['payment_month'])) {
        // Ajouter le paiement comme revenu
        $success = addMonthlyPaymentAsIncome(
            $payment['member_id'],
            $payment['payment_month'],
            $payment['amount'],
            $payment['payment_method'],
            $payment['payment_date'],
            $payment['created_by']
        );
        
        if ($success) {
            $addedCount++;
            echo "<p style='color:green'>✓ Paiement mensuel ID: " . $payment['id'] . " ajouté aux revenus</p>";
        } else {
            echo "<p style='color:red'>✗ Erreur lors de l'ajout du paiement mensuel ID: " . $payment['id'] . " aux revenus</p>";
        }
    } else {
        $alreadyExistsCount++;
    }
}

echo "<h3>Résumé</h3>";
echo "<p>Paiements déjà existants dans la table des revenus: " . $alreadyExistsCount . "</p>";
echo "<p>Paiements ajoutés à la table des revenus: " . $addedCount . "</p>";
echo "<p>Total traité: " . ($addedCount + $alreadyExistsCount) . "</p>";

// Vérifier les revenus actuels
$currentMonth = date('Y-m-01');
$nextMonth = date('Y-m-01', strtotime('+1 month'));
$monthlyIncome = calculateTotalIncome($currentMonth, date('Y-m-d', strtotime($nextMonth) - 1));

echo "<h3>Vérification des revenus du mois courant</h3>";
echo "<p>Revenus totaux pour le mois en cours: " . formatCurrency($monthlyIncome) . "</p>";

// Vérifier les revenus des paiements mensuels
$monthlySubscriptionIncome = calculateMonthlySubscriptionIncome($currentMonth, date('Y-m-d', strtotime($nextMonth) - 1));
echo "<p>Revenus des paiements mensuels pour le mois en cours: " . formatCurrency($monthlySubscriptionIncome) . "</p>";

echo "<p>Terminé. Vous pouvez maintenant vérifier le tableau de bord et les rapports pour vous assurer que les paiements mensuels sont correctement comptabilisés dans les revenus.</p>";
?>
