feat: Version 3.3.5 - Optimisations pages, améliorations ergonomie et affichages dynamiques stats
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
112
api/scripts/test/generate_receipt_manual.php
Normal file
112
api/scripts/test/generate_receipt_manual.php
Normal file
@@ -0,0 +1,112 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Script de test pour générer manuellement un reçu
|
||||
* Usage: php generate_receipt_manual.php <passage_id>
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
// Simuler l'environnement web pour AppConfig en CLI
|
||||
if (php_sapi_name() === 'cli') {
|
||||
$_SERVER['SERVER_NAME'] = 'dapp.geosector.fr'; // DEV
|
||||
$_SERVER['HTTP_HOST'] = $_SERVER['SERVER_NAME'];
|
||||
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
|
||||
|
||||
if (!function_exists('getallheaders')) {
|
||||
function getallheaders() {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Chargement de l'environnement
|
||||
require_once __DIR__ . '/../../vendor/autoload.php';
|
||||
require_once __DIR__ . '/../../src/Config/AppConfig.php';
|
||||
require_once __DIR__ . '/../../src/Core/Database.php';
|
||||
require_once __DIR__ . '/../../src/Services/LogService.php';
|
||||
require_once __DIR__ . '/../../src/Services/ReceiptService.php';
|
||||
|
||||
// Vérifier qu'un ID de passage est fourni
|
||||
if ($argc < 2) {
|
||||
echo "Usage: php generate_receipt_manual.php <passage_id>\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$passageId = (int)$argv[1];
|
||||
|
||||
try {
|
||||
echo "=== Test de génération de reçu ===\n";
|
||||
echo "Passage ID: $passageId\n\n";
|
||||
|
||||
// Initialisation de la configuration
|
||||
$appConfig = AppConfig::getInstance();
|
||||
$dbConfig = $appConfig->getDatabaseConfig();
|
||||
|
||||
// Initialiser la base de données
|
||||
Database::init($dbConfig);
|
||||
$db = Database::getInstance();
|
||||
|
||||
echo "✓ Connexion à la base de données OK\n";
|
||||
|
||||
// Vérifier le passage
|
||||
$stmt = $db->prepare('SELECT id, fk_type, encrypted_email, nom_recu FROM ope_pass WHERE id = ?');
|
||||
$stmt->execute([$passageId]);
|
||||
$passage = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if (!$passage) {
|
||||
echo "✗ Passage $passageId non trouvé\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
echo "✓ Passage trouvé\n";
|
||||
echo " - fk_type: " . $passage['fk_type'] . "\n";
|
||||
echo " - encrypted_email: " . (!empty($passage['encrypted_email']) ? 'OUI' : 'NON') . "\n";
|
||||
echo " - nom_recu: " . ($passage['nom_recu'] ?: 'vide') . "\n\n";
|
||||
|
||||
// Déchiffrer l'email
|
||||
if (!empty($passage['encrypted_email'])) {
|
||||
$email = \ApiService::decryptSearchableData($passage['encrypted_email']);
|
||||
echo " - Email déchiffré: $email\n";
|
||||
echo " - Email valide: " . (filter_var($email, FILTER_VALIDATE_EMAIL) ? 'OUI' : 'NON') . "\n\n";
|
||||
} else {
|
||||
echo "✗ Aucun email chiffré trouvé\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// Générer le reçu
|
||||
echo "Génération du reçu...\n";
|
||||
$receiptService = new \App\Services\ReceiptService();
|
||||
$result = $receiptService->generateReceiptForPassage($passageId);
|
||||
|
||||
if ($result) {
|
||||
echo "✓ Reçu généré avec succès !\n\n";
|
||||
|
||||
// Vérifier l'email dans la queue
|
||||
$stmt = $db->prepare('SELECT id, to_email, status, created_at FROM email_queue WHERE fk_pass = ? ORDER BY created_at DESC LIMIT 1');
|
||||
$stmt->execute([$passageId]);
|
||||
$queueEmail = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($queueEmail) {
|
||||
echo "✓ Email ajouté à la queue\n";
|
||||
echo " - Queue ID: " . $queueEmail['id'] . "\n";
|
||||
echo " - Destinataire: " . $queueEmail['to_email'] . "\n";
|
||||
echo " - Status: " . $queueEmail['status'] . "\n";
|
||||
echo " - Créé: " . $queueEmail['created_at'] . "\n";
|
||||
} else {
|
||||
echo "✗ Aucun email trouvé dans la queue\n";
|
||||
}
|
||||
} else {
|
||||
echo "✗ Échec de la génération du reçu\n";
|
||||
echo "Consultez /var/www/geosector/api/logs/api.log pour plus de détails\n";
|
||||
}
|
||||
|
||||
} catch (Exception $e) {
|
||||
echo "✗ ERREUR: " . $e->getMessage() . "\n";
|
||||
echo $e->getTraceAsString() . "\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
echo "\n=== Fin du test ===\n";
|
||||
exit(0);
|
||||
Reference in New Issue
Block a user