{% extends 'admin/base_admin.html.twig' %} {% block title %}{{ vendeur.user.fullName }} — Vendeur{% endblock %} {% block content %} {% set moisFr = ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'] %} {% set nowTs = "now"|date("U") %} {# ── Calcul global des commissions éligibles vs en attente ── #} {% set nbEligibles = 0 %} {% set nbAttente = 0 %} {% set montEligibles = 0 %} {% set prochaineDispo = null %} {% for c in vendeur.commissions %} {% if not c.facturee %} {% set facturableTs = c.createdAt|date_modify('+14 days')|date('U') %} {% if facturableTs <= nowTs %} {% set nbEligibles = nbEligibles + 1 %} {% set montEligibles = montEligibles + c.montantCommission %} {% else %} {% set nbAttente = nbAttente + 1 %} {% set facturableDate = c.createdAt|date_modify('+14 days') %} {% if prochaineDispo is null or facturableDate|date('U') < prochaineDispo|date('U') %} {% set prochaineDispo = facturableDate %} {% endif %} {% endif %} {% endif %} {% endfor %}
← Vendeurs

{{ vendeur.user.fullName }}

{{ vendeur.user.email }}
Modifier le statut
{# ══ Colonne gauche ══ #}
{# Profil #}
Profil vendeur
Statut
{{ vendeur.statutLabel }}
Code promo
{% if vendeur.codePromo %} {{ vendeur.codePromo }} {% else %}Aucun{% endif %}
Taux commission
{{ vendeur.tauxCommission }}%
État
{{ vendeur.actif ? 'Actif' : 'Inactif' }}
Depuis le
{{ vendeur.createdAt|date('d/m/Y') }}
{% if vendeur.attributePar %}
Attribué par
{{ vendeur.attributePar.fullName }}
{% endif %}
{% if vendeur.notesAdmin %}
Notes admin :
{{ vendeur.notesAdmin }}
{% endif %}
{# ══ CARTE GÉNÉRATION FACTURE ══ #} {% if vendeur.isVendeur %}
{% if nbEligibles > 0 %} Générer une facture {% elseif nbAttente > 0 %} ⚖️ Facturation bloquée — Rétractation {% else %} Générer une facture {% endif %}
{% if vendeur.nbVentes == 0 %} {# ── Aucune vente ── #}
📭
Aucune vente enregistrée.
La facture sera disponible dès la première vente via {{ vendeur.codePromo }}.
{% elseif nbEligibles == 0 and nbAttente > 0 %} {# ══════════════════════════════════════════════════════════ BLOCAGE LÉGAL — Toutes les commissions sont encore dans le délai de rétractation. Formulaire MASQUÉ. ══════════════════════════════════════════════════════════ #}
🚫 Génération impossible ce mois-ci

{{ nbAttente }} commission(s) du vendeur {{ vendeur.user.fullName }} (code {{ vendeur.codePromo }}) ont été générées entre le 15 et le {{ "now"|date("t") }} du mois.

Conformément à l'Art. L221-18 du Code de la consommation, tout consommateur particulier dispose de 14 jours calendaires pour exercer son droit de rétractation. Une commission ne peut être facturée qu'une fois ce délai définitivement expiré.

Facturer avant l'expiration du délai exposerait SANAGENCY à devoir rembourser le vendeur si le client exerce son droit de rétractation.

⏰ Quand pourrez-vous facturer ?
{% if prochaineDispo %} La prochaine commission sera facturable à partir du {{ prochaineDispo|date('d/m/Y') }}.
Vous pourrez générer la facture en {{ moisFr[prochaineDispo|date('n') - 1] }} {{ prochaineDispo|date('Y') }} . {% endif %}
Rappel de la règle :
Commandes du 1 au 14 du mois → facturables fin du même mois.
Commandes du 15 au 31 du mois → facturables fin du mois suivant.
{# Formulaire volontairement absent — protection légale #} {% elseif nbEligibles > 0 %} {# ── Commissions éligibles disponibles ── #}
✅ {{ nbEligibles }} commission(s) facturables — {{ montEligibles|number_format(2, ',', ' ') }} € HT
Délai de rétractation de 14 j expiré pour ces commissions.
{# Info si des commissions sont encore en attente #} {% if nbAttente > 0 %}
⏳ {{ nbAttente }} autre(s) commission(s) encore dans le délai légal.
{% if prochaineDispo %} Disponible le {{ prochaineDispo|date('d/m/Y') }} ({{ moisFr[prochaineDispo|date('n') - 1] }}). {% endif %}
{% endif %}
{% else %} {# ── Tout est à jour ── #}
Tout est à jour.
Toutes les commissions ont été facturées.
{% endif %}
{% endif %}
{# ══ Colonne droite ══ #}
{# Factures #}
Factures de commission
{% for facture in vendeur.factures %} {% else %} {% endfor %}
Référence Période Ventes Montant HT Statut Générée le Actions
{{ facture.reference }} {{ moisFr[facture.periodeDebut|date('n') - 1] }} {{ facture.periodeDebut|date('Y') }} {{ facture.nbVentes }} {{ facture.montantTotalHT|number_format(2, ',', ' ') }} € {% if facture.isRegle %} ✅ Réglé {% if facture.regléeAt %}
{{ facture.regléeAt|date('d/m/Y') }}
{% endif %} {% else %} ⏳ À régler {% endif %}
{{ facture.genereeAt|date('d/m/Y') }}
PDF {% if not facture.isRegle %}
{% endif %}
Aucune facture générée.
{# Ventes #}
Ventes via {{ vendeur.codePromo ?? '—' }} {{ vendeur.nbVentes }}
{% for commission in vendeur.commissions %} {% set facturableTs = commission.createdAt|date_modify('+14 days')|date('U') %} {% set facturableDate = commission.createdAt|date_modify('+14 days')|date('d/m/Y') %} {% set estEligible = facturableTs <= nowTs %} {% else %} {% endfor %}
Date Commande HT brut Remise HT net Taux Commission Statut facturation
{{ commission.createdAt|date('d/m/Y') }} {% if commission.commande %} {{ commission.commandeReference }} {% else %} {{ commission.commandeReference }} {% endif %} {{ commission.montantHTBrut|number_format(2, ',', ' ') }} € –{{ commission.montantRemise|number_format(2, ',', ' ') }} € {{ commission.montantHTNet|number_format(2, ',', ' ') }} € {{ commission.tauxCommission }}% {{ commission.montantCommission|number_format(2, ',', ' ') }} € {% if commission.facturee %} ✅ Facturée {% if commission.factureCommission %}
{{ commission.factureCommission.reference }}
{% endif %} {% elseif estEligible %} 🔵 Eligible
depuis le {{ facturableDate }}
{% else %} ⏳ Rétractation
facturable le {{ facturableDate }}
{% endif %}
Aucune vente enregistrée.
{% endblock %}