Auto - Traitement des contrats en attente de signature

This commit is contained in:
Serreau Jovann
2026-01-29 16:23:24 +01:00
parent ba62b3c9c0
commit e30844914b
2 changed files with 67 additions and 0 deletions

View File

@@ -129,6 +129,25 @@ class MailCommand extends Command
// 3. Contrat en attente de paiement acompte
$io->title('Traitement des contrats en attente de paiement acompte');
// TODO: Logique de récupération et d'envoi
$contratWaitingAccompte = $this->entityManager->getRepository(Contrats::class)->findBy(['isSigned' => true]);
foreach ($contratWaitingAccompte as $contrat) {
$isAccompte = $contrat->isAccompte();
if($isAccompte){
$customer = $contrat->getCustomer();
$fullName = $customer->getName() . " " . $customer->getSurname();
$email = $customer->getEmail();
$this->mailer->send(
$email,
$fullName,
"[Reservation Ludikevent] - Rappel : Acompte à régler - N°" . $contrat->getNumReservation(),
"mails/task/contrat-noaccompte.twig",
[
'contrat' => $contrat,
'customer' => $customer,
],
);
}
}
$io->info('Vérification des acomptes non reçus...');
// 4. Contrat en attente de paiement caution

View File

@@ -0,0 +1,48 @@
{% extends 'mails/base.twig' %}
{% block content %}
<mj-section background-color="#ffffff" padding="40px 20px" border-radius="20px">
<mj-column>
{# En-tête avec avertissement d'annulation #}
<mj-text font-size="20px" font-weight="bold" color="#e74c3c" align="center">
⚠️ Action requise : Paiement de l'acompte
</mj-text>
<mj-divider border-width="2px" border-color="#e74c3c" width="50px" />
<mj-text font-size="14px" color="#555555" padding-top="20px">
Bonjour {{ customer.name }} {{ customer.surname }},
</mj-text>
<mj-text font-size="14px" color="#555555" line-height="22px">
Nous avons bien reçu votre signature pour le contrat n°<strong>{{ contrat.numReservation }}</strong>, mais le règlement de l'acompte n'est pas encore validé.
</mj-text>
<mj-text font-size="15px" color="#e74c3c" font-weight="bold" line-height="22px" padding-top="10px">
Attention : Votre réservation ne sera définitivement confirmée qu'à réception de l'acompte. Sans paiement sous 3 jours, les créneaux seront remis en disponibilité.
</mj-text>
<mj-divider border-color="#f4f4f4" padding-top="20px" />
{# Récapitulatif financier #}
<mj-text font-size="16px" color="#333333">
<strong>Total de la réservation :</strong> {{ contrat|totalContrat }}
</mj-text>
<mj-text font-size="18px" color="#2c3e50" font-weight="bold" padding-top="10px">
Acompte à régler (25%) : {{ (contrat|totalContrat * 0.25)|number_format(2, ',', ' ') }}
</mj-text>
{# Lien vers le paiement ou le contrat #}
<mj-button background-color="#27ae60" color="white" font-size="16px" font-weight="bold" border-radius="5px" href="{{ url('app_paiement_acompte', {'id': contrat.id}) }}" padding-top="30px">
Régler mon acompte en ligne
</mj-button>
<mj-text font-size="12px" color="#999999" padding-top="30px" align="center">
Si vous avez déjà effectué le virement, merci de ne pas tenir compte de cet email. Notre équipe reste à votre disposition.
</mj-text>
</mj-column>
</mj-section>
{% endblock %}