# Commandes planifiées ACMF

Les planifications lancent PHP 8.3 directement, sans curl, domaine HTTP ou jeton réseau. Elles réutilisent les traitements Symfony actuels par sous-requêtes internes au processus ; l'extraction complète des contrôleurs vers des services métier reste un chantier distinct.

| Commande | Calendrier historique | Traitement |
| --- | --- | --- |
| `acmf:resiliations` | Dernier jour du mois, 19 h | Résiliations demandées et rapport |
| `acmf:renouvellements` | 1er du mois, 5 h | Résiliations automatiques, impayés, renouvellements et rapport |
| `acmf:partenaires-mensuel` | 1er du mois, 19 h | Envoi CFDP, exports/transferts partenaires et rapport |
| `generate:avis-cotisation` | 10 du mois, 19 h | Avis de cotisation et rapport |
| `acmf:partenaires-hebdomadaire` | Vendredi, 19 h | Exports/transferts CFDP, BEAC, Allianz et rapport |

Exemple :

```bash
cd /var/www/html/preprod.gestion.acmf.fr
APP_ENV=prod APP_DEBUG=0 php8.3 bin/console generate:avis-cotisation --execute
```

Sans `--execute`, chaque commande affiche uniquement ses étapes. `--period=2026-10-10` permet de fixer la période du journal. Les commandes numériques `acmf:cron 1` à `acmf:cron 5` restent compatibles et partagent les mêmes journaux : ne pas planifier simultanément les anciennes et nouvelles commandes. Le modèle `cron.example` conserve les horaires historiques et utilise les nouveaux noms.

Les workflows utilisent le verrou commun et gardent les protections existantes contre répétition ou reprise ambiguë. Une étape interrompue exige l'examen du journal. Aucun cron n'a été activé sur un serveur distant ; l'activation en préproduction attend la recette des intégrations et destinataires.
