feat(env): Met à jour les URLs ngrok pour l'environnement.
 feat(Prestaire): Ajoute contrainte d'unicité email et relations Contrats/OrderSession.
 feat(OrderSession): Ajoute une relation ManyToOne vers Prestaire.
 feat(Contrats): Ajoute une relation ManyToOne vers Prestaire.
🐛 fix(SignatureController): Corrige la création de contrat à partir du devis signé.
 feat(FlowController): Ajoute un sélecteur de prestataire à la session.
 feat(devis/list.twig): Ajoute une légende des actions dans la liste des devis.
 feat(ContratsController): Ajoute le prestataire au contrat lors de la génération.
 feat(SearchController): Ajoute la recherche de prestataires.
🐛 fix(SignatureClient): Corrige le stockage de l'ID de signature du devis.
 feat(base.twig): Ajoute un lien vers la liste des prestataires dans le menu.
 feat(PrestataireRepository): Ajoute une méthode de recherche par nom et email.
```
This commit is contained in:
Serreau Jovann
2026-02-06 10:42:50 +01:00
parent 9323e79c3e
commit 2fbe64c6d9
22 changed files with 930 additions and 28 deletions

View File

@@ -102,7 +102,7 @@
<div class="flex items-center justify-end space-x-2">
{# Renvoyer lien de signature #}
{% if quote.state == "created_waitsign" and quote.state == "wait-send" %}
{% if quote.state == "created_waitsign" or quote.state == "wait-send" %}
<a data-turbo="false" href="{{ path('app_crm_devis', {resend: quote.id}) }}"
title="Renvoyer le lien de signature"
class="p-2 bg-indigo-600/10 hover:bg-indigo-600 text-indigo-500 hover:text-white rounded-xl transition-all border border-indigo-500/20 shadow-lg shadow-indigo-600/5">
@@ -185,6 +185,37 @@
</div>
</div>
{# LÉGENDE #}
<div class="mt-6 p-4 rounded-2xl bg-[#1e293b]/40 border border-white/5 backdrop-blur-sm">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-[0.2em] mb-3">Légende des actions</p>
<div class="flex flex-wrap gap-4 text-xs text-slate-300">
<div class="flex items-center gap-2">
<div class="p-1.5 bg-indigo-600/10 text-indigo-500 rounded-lg border border-indigo-500/20"><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" /></svg></div>
<span>Renvoyer le lien</span>
</div>
<div class="flex items-center gap-2">
<div class="p-1.5 bg-blue-600/10 text-blue-500 rounded-lg border border-blue-500/20"><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z" /></svg></div>
<span>Modifier</span>
</div>
<div class="flex items-center gap-2">
<div class="p-1.5 bg-emerald-600/10 text-emerald-500 rounded-lg border border-emerald-500/20"><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z" /></svg></div>
<span>Télécharger Devis Signé</span>
</div>
<div class="flex items-center gap-2">
<div class="p-1.5 bg-purple-600/10 text-purple-500 rounded-lg border border-purple-500/20"><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div>
<span>Télécharger Certificat Audit</span>
</div>
<div class="flex items-center gap-2">
<div class="p-1.5 bg-slate-600/10 text-slate-300 rounded-lg border border-slate-500/20"><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 21h10a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v14a2 2 0 002 2z" /></svg></div>
<span>Télécharger Devis PDF</span>
</div>
<div class="flex items-center gap-2">
<div class="p-1.5 bg-rose-500/10 text-rose-500 rounded-lg border border-rose-500/20"><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" /></svg></div>
<span>Supprimer</span>
</div>
</div>
</div>
{# PAGINATION #}
{% if quotes.getTotalItemCount is defined and quotes.getTotalItemCount > quotes.getItemNumberPerPage %}
<div class="mt-8 flex justify-center custom-pagination">