<?php
/**
 * Script de test pour la fonction calculateTotalIncome
 */

// Inclusion des fichiers nécessaires
require_once 'config.php';
require_once 'database/init.php';
require_once 'includes/functions.php';

// Fonction pour formater les montants
function formatAmount($amount) {
    return number_format($amount, 2) . ' د.م.';
}

// Période de test (mois en cours)
$currentMonth = date('Y-m-01');
$endOfMonth = date('Y-m-t');

echo "<h1>Test de la fonction calculateTotalIncome</h1>";
echo "<p>Période : du " . date('d/m/Y', strtotime($currentMonth)) . " au " . date('d/m/Y', strtotime($endOfMonth)) . "</p>";

// Calcul des revenus de la table income
$incomeQuery = "SELECT SUM(amount) as total FROM income WHERE payment_date BETWEEN ? AND ?";
$stmt = $db->prepare($incomeQuery);
$stmt->execute([$currentMonth, $endOfMonth]);
$incomeResult = $stmt->fetch(PDO::FETCH_ASSOC);
$incomeTotal = $incomeResult && $incomeResult['total'] ? (float)$incomeResult['total'] : 0;

// Calcul des revenus des paiements mensuels
$mpQuery = "SELECT SUM(amount_paid) as total FROM monthly_payments WHERE payment_status = 'paid' AND payment_date BETWEEN ? AND ?";
$stmt = $db->prepare($mpQuery);
$stmt->execute([$currentMonth, $endOfMonth]);
$mpResult = $stmt->fetch(PDO::FETCH_ASSOC);
$monthlyPaymentsTotal = $mpResult && $mpResult['total'] ? (float)$mpResult['total'] : 0;

// Calcul du total des revenus avec la fonction calculateTotalIncome
$totalIncome = calculateTotalIncome($currentMonth, $endOfMonth);

// Affichage des résultats
echo "<ul>";
echo "<li>Revenus de la table income : " . formatAmount($incomeTotal) . "</li>";
echo "<li>Revenus des paiements mensuels : " . formatAmount($monthlyPaymentsTotal) . "</li>";
echo "<li>Total des revenus (calculé séparément) : " . formatAmount($incomeTotal + $monthlyPaymentsTotal) . "</li>";
echo "<li>Total des revenus (fonction calculateTotalIncome) : " . formatAmount($totalIncome) . "</li>";
echo "</ul>";

// Vérification du résultat
if (abs($totalIncome - ($incomeTotal + $monthlyPaymentsTotal)) < 0.01) {
    echo "<p style='color:green;font-weight:bold;'>✓ La fonction calculateTotalIncome fonctionne correctement !</p>";
} else {
    echo "<p style='color:red;font-weight:bold;'>✗ La fonction calculateTotalIncome ne calcule pas correctement le total des revenus.</p>";
    echo "<p>Différence : " . formatAmount($totalIncome - ($incomeTotal + $monthlyPaymentsTotal)) . "</p>";
}

// Lien vers le tableau de bord
echo "<p><a href='dashboard.php' class='btn btn-primary'>Retour au tableau de bord</a></p>";
?>