Commit Graph

324 Commits

Author SHA1 Message Date
Serreau Jovann
70ecdfb47c feat: bloc encadre pour le client dans PDF contrat (meme presentation que l'association)
Partie "ET" du contrat : bloc encadre gris avec raison sociale
et email du client, meme style que le bloc dore de l'association.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:30:09 +02:00
Serreau Jovann
aa18cb834d feat: bloc info association dans PDF contrat (SIRET, RNA, siege, president Shoko Cosplay)
Remplace le texte "representee par son/sa President(e)" par un bloc
encadre dore avec les informations legales completes :
- Forme juridique, SIRET, RNA
- Siege social
- President : Shoko Cosplay - Serreau Jovann
- Email, telephone

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:29:25 +02:00
Serreau Jovann
060e81aa6b fix: ajout constante EURO dans ContratMigrationSiteconseilPdf
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:26:45 +02:00
Serreau Jovann
376852045a fix: migration contrat services - ajout DEFAULT '[]' pour les lignes existantes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:23:47 +02:00
Serreau Jovann
22bb3c71be feat: services inclus dans les contrats avec quantites et prix
Entite Contrat:
- Champ JSON services (service, quantity, priceHt)
- Catalogue SERVICE_CATALOG avec 11 services et prix
- getTotalHt() calcule le total

Controller:
- Formulaire accepte service_key[] et service_qty[] en repeater
- Associe les prix depuis le catalogue

Template index (modal creation):
- Repeater dynamique : select service + champ quantite + bouton X
- Bouton "+ Ajouter un service"
- JS avec nonce CSP

Template show:
- Tableau services inclus (service, quantite, prix unitaire, sous-total)
- Total HT en pied de tableau

PDF ContratMigrationSiteconseilPdf:
- Section "SERVICES INCLUS DANS LE CONTRAT" avec tableau
  (service, qte, prix unitaire HT, sous-total HT)
- Total HT en bas

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:20:21 +02:00
Serreau Jovann
d9073944e0 feat: finalisation contrats - tab client, bouton generer PDF, renommage Contrat de Service
- Tab Contrats dans fiche client avec liste (reference, type, statut, date)
- Bouton "Generer PDF" si PDF absent (fallback)
- Renommage "Contrat de Migration" -> "Contrat de Service" partout
  (PDF titre, entite label, template modal)
- Chargement contratsList dans ClientsController

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:16:49 +02:00
Serreau Jovann
0e1f249cc3 fix: remplacement emails - contact@ devient client@, monitor@ devient notification@
- contact@e-cosplay.fr remplace par client@e-cosplay.fr dans 87 fichiers
  (PDFs, templates, emails, controllers, DocuSeal submitters)
- monitor@e-cosplay.fr remplace par notification@e-cosplay.fr dans 4 fichiers
  (webhooks DocuSeal, commandes DNS/NDD, controller echeancier)
- Ajout lien "En savoir plus sur notre association" vers www.e-cosplay.fr
  sur la page migration SITECONSEIL

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:11:08 +02:00
Serreau Jovann
d11837941f fix: mise a jour numero de telephone 07 66 95 70 06 dans tous les fichiers
Remplacement de l'ancien numero (06 79 34 88 02) par le nouveau
(07 66 95 70 06) dans 19 fichiers : PDFs, templates legaux, CGV, CGU,
mentions legales, contrats.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:09:10 +02:00
Serreau Jovann
65a816923a fix: numero de telephone association 07 66 95 70 06 (page migration)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:06:32 +02:00
Serreau Jovann
e3d1a5d452 feat: ajout emails president et secretaire (page migration)
- President: shoko-cosplay@e-cosplay.fr
- Secretaire: marta-gator@e-cosplay.fr

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:05:43 +02:00
Serreau Jovann
7835d821f7 feat: details bureau et fondateurs de l'association (page migration)
- President & Membre fondateur: Serreau Jovann (Shoko Cosplay)
- Secretaire/Tresoriere & Membre fondatrice: Dufresne Aurelie (Marta Gator)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:04:58 +02:00
Serreau Jovann
d76920f552 feat: section CMS Esy-Web - code source gere par membre fondateur (ancien salarie SITECONSEIL)
- Sites continuent d'utiliser le CMS Esy-Web
- Code source gere par E-Cosplay, par un membre fondateur
  (ancien salarie de SITECONSEIL)
- Continuite technique totale garantie

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:02:58 +02:00
Serreau Jovann
da7b25f625 feat: calendrier envoi contrats - du 2 mai au 14 mai 2026 pour repondre
- Contrats envoyes a compter du 2 mai 2026
- Delai de reponse jusqu'au 14 mai 2026
- Possibilite de signer avant en contactant contact@e-cosplay.fr

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:01:32 +02:00
Serreau Jovann
a57319d8e1 feat: date limite 31 mai 2026 - arret definitif des services sans contrat
- Date limite 31 mai 2026 pour signer le contrat
- Pas de periode de transition supplementaire
- Services definitivement arretes a cette date sans contrat
- FAQ mise a jour en coherence

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 15:00:28 +02:00
Serreau Jovann
4ae86aa88f feat: section refus + FAQ politique prix non negociable (page migration)
Ajout section "Je refuse de travailler avec vous" :
- 3 etapes : contacter SITECONSEIL, demander codes transfert, migrer
- Avertissement : services desactives si contrat non signe

Ajout FAQ "Je refuse votre politique de prix/gestion" :
- Meme procedure : recuperer donnees et migrer ailleurs

Ajout FAQ "Je veux les tarifs de SITECONSEIL" :
- Non. Entite independante, tarifs non negociables
- Libre de choisir un autre prestataire

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 14:58:52 +02:00
Serreau Jovann
0bd6009b7c feat: informations paiements - Stripe, SumUp Bank Irlande, declaration Etats
Ajout section "Informations sur les paiements" avec 3 cartes :
- Stripe : CB et SEPA operes par Stripe (PCI DSS)
- SumUp Bank : compte bancaire en Irlande pour les virements
- Declaree aux Etats : Prefecture, INSEE, RNA, SIRET

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 14:57:02 +02:00
Serreau Jovann
7afd871660 feat: etapes signature contrat + verification 1er paiement obligatoire CB/SEPA
Etapes mises a jour (5 etapes):
1. Reception contrat par email depuis contrat@e-cosplay.fr
2. Signature electronique DocuSeal
3. Configuration mode de paiement (SEPA/CB/virement)
4. Creation espace client
5. Continuite des services

Verification 1er paiement (bloc rouge):
- Premier paiement obligatoirement par CB ou SEPA (pas de virement)
- Requis pour valider le moyen de paiement
- Paiements suivants : SEPA/CB/virement au choix

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 14:54:42 +02:00
Serreau Jovann
d1812a254c feat: transparence + confidentialite avertissements + AG exceptionnelle
- Decisions avertissements/sanctions/resiliations restent privees
  pour proteger la reputation du client
- AG Exceptionnelle possible avec seule mention "Discussion
  resiliation service client" - aucune info nominative communiquee

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 14:51:13 +02:00
Serreau Jovann
26124c7483 feat: delai recours 72h au 3eme avertissement + frais remise en service 300 EUR
- Entre 3eme avertissement et reunion bureau (24h), possibilite
  d'envoyer un email a direction@e-cosplay.fr pour repousser a 72h
- Preuves et documents justificatifs obligatoires
- Frais de remise en service possibles, plafonnes a 300 EUR HT

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 14:49:40 +02:00
Serreau Jovann
820607b6c1 fix: 3eme avertissement - le bureau se reunit sous 24h pour decider la resiliation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 14:47:56 +02:00
Serreau Jovann
dd0a1e4a63 feat: FAQ - interdiction adhesion clients + membres non societes de dev
Ajout question FAQ "Puis-je devenir adherent ?" :
- Non, par principe de protection des clients et conflit d'interet
- Les clients avec services ne peuvent pas adherer
- Les membres ne sont pas des societes de developpement
  (eviter concurrence et influence sur les decisions)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 14:47:19 +02:00
Serreau Jovann
c3b93430b6 feat: horaires service client + facturation hors horaires (page migration)
- Horaires ouverture: 10h-12h / 14h-17h du lundi au vendredi
- Hors horaires: pas de reponse ou facturation 35 EUR HT/h
  (toute heure commencee est due)
- Exception: probleme technique verifie et verifiable = non facture
- Tout abus sanctionne sans limite (avertissement/resiliation)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 14:45:06 +02:00
Serreau Jovann
71670a0819 feat: section association but non lucratif sur page migration SITECONSEIL
Ajout bloc dore expliquant le statut associatif :
- Association loi 1901 a but non lucratif
- Membres adherents de l'association
- Benevoles selon leur disponibilite et desir
- Revenus couvrent uniquement les couts d'infrastructure

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 14:42:42 +02:00
Serreau Jovann
08d0ad1e6c fix: site hors CMS Esy-Web - tarif 100 EUR/mois, aucune maintenance incluse
- Tarif passe de 200 EUR a 100 EUR/mois HT (1200 EUR/an)
- Mention claire: hebergement uniquement, aucune maintenance,
  aucune mise a jour, aucun support technique inclus
- La maintenance reste a la charge du client ou d'un prestataire externe

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 14:40:27 +02:00
Serreau Jovann
d07a9f4f9c feat: section systeme d'avertissement sur page migration SITECONSEIL
3 niveaux visuels (jaune/orange/rouge) :
- 1er avertissement : notification officielle
- 2eme avertissement : procedure de suspension preparee
- 3eme : resiliation immediate et definitive, non negociable

Decisions prises par le bureau et membres fondateurs a huis clos.
Contestation uniquement via direction@e-cosplay.fr.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 08:32:07 +02:00
Serreau Jovann
0e728ac597 feat: tarif site hors CMS Esy-Web - 200 EUR/mois (non negociable)
Ajout carte rouge "Site hors CMS Esy-Web" dans la grille tarifaire
migration SITECONSEIL : 200 EUR/mois HT (2400 EUR/an) pour les sites
realises avec WordPress, Prestashop, etc. necessitant une machine dediee.
Tarif non negociable.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 08:29:58 +02:00
Serreau Jovann
314529bcf7 feat: section E-Flex dans tarifs legaux + mentions migration SITECONSEIL
Page /legal/tarif:
- Section E-Flex: financement sans frais, 3 methodes (SEPA/CB/virement)
- Mention financement EsyFlex SITECONSEIL poursuivable sous validation
- Mention credit obligatoire
- Date de mise a jour dynamique

Page /move/from/siteconseil:
- Mention E-Flex existant chez SITECONSEIL (reprise sous validation)
- Lien vers grille tarifaire complete
- Section developpement sur-mesure: refus sauf si termine
  (l'association n'a pas la capacite de gerer les devs sur-mesure)
- Suppression controller LegalTarifController doublon

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 08:28:11 +02:00
Serreau Jovann
7dd14aa214 fix: texte 1ere boite mail - si vous disposez deja d'une boite chez SITECONSEIL
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 08:24:22 +02:00
Serreau Jovann
b4dc33b31f feat: tarifs messagerie sur page migration - 1ere boite offerte, 1 EUR/3Go, 5 EUR/50Go
- 1ere boite mail gratuite (3 Go) incluse avec le contrat
- Boite supplementaire 3 Go : 1 EUR/mois HT (12 EUR/an)
- Boite supplementaire 50 Go : 5 EUR/mois HT (60 EUR/an)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 08:23:51 +02:00
Serreau Jovann
d506209c5b feat: grille tarifaire sur page migration - site vitrine 100 EUR/mois, e-commerce 150 EUR/mois
Ajout section "Nouveaux tarifs" avec comparaison :
- Site vitrine: 365 EUR/an (SITECONSEIL) -> 100 EUR/mois soit 1200 EUR HT/an
- Site e-commerce: 730 EUR/an (SITECONSEIL) -> 150 EUR/mois soit 1800 EUR HT/an

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 08:22:38 +02:00
Serreau Jovann
6b2ea3358d feat: mention modification des tarifs dans la section ce qui change (page migration)
Ajout ligne orange "Modification des tarifs : les tarifs sont differents
de ceux de la SARL SITECONSEIL" dans la section "Ce qui change".

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 08:21:22 +02:00
Serreau Jovann
afb66ff601 feat: base legale suspension services pour non-paiement (page migration)
Ajout section "Base legale" avec references juridiques :
- Article 1219 Code civil (exception d'inexecution)
- Article L.441-10 Code de commerce (suspension de plein droit)
- Liberte de suspension quelle que soit la situation de l'entreprise

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 08:20:27 +02:00
Serreau Jovann
d75ad40bc6 feat: section systeme automatique impayes sur page migration SITECONSEIL
Ajout section rouge "Systeme automatique de gestion des impayes" :
- Suspension automatique des services sans intervention humaine
- Aucun renouvellement sans paiement prealable
- Aucun arrangement possible (s'enerver ne changera rien)
- Rappel: contacter avant l'echeance, sans paiement pas de service

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 08:19:01 +02:00
Serreau Jovann
42d508a53b feat: contrat migration SARL SITECONSEIL - PDF, DocuSeal, webhook, page publique
PDF ContratMigrationSiteconseilPdf:
- Preambule: cessation SARL SITECONSEIL, continuite par E-Cosplay
- Avertissement orange: pas de reprise d'anciennete ni accords anterieurs
- 8 articles: objet, transfert, tarifs, duree, anciennete, responsabilite,
  RGPD, droit applicable
- 2 signatures DocuSeal (Company auto-signe + Client signe)

Controller admin:
- create: genere le PDF automatiquement a la creation
- generate-pdf: regeneration PDF
- send-signature: envoi DocuSeal 2 parties + email client avec lien
- Boutons: Regenerer PDF, Voir PDF, Envoyer/Renvoyer signature, Annuler

Page publique /move/from/siteconseil:
- Explication complete de la migration (pourquoi, ce qui change,
  ce qui ne change pas, etapes, FAQ)
- Accessible sans authentification
- Liee dans l'email de signature

Webhook DocuSeal (doc_type=contrat):
- Telecharge PDF signe + audit (unlink apres flush)
- State SIGNED + signedAt
- Email client + admin avec PDFs en piece jointe

Templates email:
- contrat_signature: lien page migration + lien signer + avertissement
- contrat_signed: confirmation + PDFs attaches

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 08:18:09 +02:00
Serreau Jovann
9b8e49c550 feat: entite Contrat + CRUD admin + formulaire creation
Entite Contrat:
- email, raisonSociale, type (migration_siteconseil), state (draft/send/signed/cancelled)
- submissionId, submitterCompanyId, submitterCustomerId (DocuSeal)
- 3 PDFs Vich (unsigned, signed, audit)
- customer (ManyToOne nullable, lie apres signature)
- Reference CTR_XXXXX, getTypeLabel()

Controller admin /admin/contrats:
- index: liste des contrats avec statut
- create: email + raison sociale + type de contrat
- show: detail avec infos client, contrat, PDFs, actions
- cancel: annulation

Templates:
- index: tableau + modal creation (email, raison sociale, select type)
- show: 2 blocs (client + contrat), boutons PDF/signe/audit/annuler

Vich mappings: contrat_pdf, contrat_signed_pdf, contrat_audit_pdf

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 08:09:51 +02:00
Serreau Jovann
f10dabad81 feat: ajout onglet Contrats dans la sidebar admin
- Lien Contrats dans la sidebar (entre Clients et Facturation)
- Controller ContratController avec route /admin/contrats
- Template placeholder avec description du flow futur:
  creer contrat -> signer -> creation espace client auto

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 08:04:02 +02:00
Serreau Jovann
85e53e434b feat: ajout tab Contrats dans la fiche client (placeholder)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 08:01:14 +02:00
Serreau Jovann
6411db64c2 feat: E-Flex - annulation auto apres 2 rejets + blocage creation
Annulation automatique:
- Apres 2 echecs de prelevement, E-Flex passe en STATE_CANCELLED
- Email d'annulation envoye au client (detail: total, paye, restant,
  rejets) + notification admin
- Template eflex_cancelled.html.twig

Blocage creation:
- Controller: refuse la creation si un E-Flex est en cours (active,
  pending_setup, draft) ou en defaut (cancelled avec nbFailed > 0)
- Template: bouton "Creer" remplace par "Creation bloquee (defaut)"
  ou "E-Flex en cours" selon le cas

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 08:00:01 +02:00
Serreau Jovann
5812c740e2 feat: mention credit obligatoire E-Flex (process, PDF, email signature)
Ajout "Un credit vous engage et doit etre rembourse. Verifiez votre
capacite de remboursement avant de vous engager." dans :
- Page process E-Flex (bandeau orange avant le bouton signer)
- PDF contrat E-Flex (section dediee avant les signatures)
- Email de signature E-Flex (encadre orange)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 07:58:17 +02:00
Serreau Jovann
3f9ad08f0b feat: email confirmation paiement recu E-Flex + mention credit dans process
- Email eflex_paiement_recu au client lors du paiement manuel admin
  (reference, echeance, montant, methode, date, progression)
- Bandeau vert si toutes echeances payees

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 07:57:36 +02:00
Serreau Jovann
1524ec5732 feat: E-Flex admin - champ date de paiement dans le formulaire paiement manuel
- Ajout input date (pre-rempli aujourd'hui) dans le formulaire "Paye"
- Controller accepte la date saisie pour setPaidAt au lieu de now()
- Date et methode affiches dans le tableau des echeances

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 07:56:18 +02:00
Serreau Jovann
7a1e33d234 feat: webhooks E-Flex - ajout notification admin en cas de succes et echec paiement
- handleEFlexPaymentSucceeded: envoie email notification@e-cosplay.fr
  avec detail echeance payee
- handleEFlexPaymentFailed: envoie email notification@e-cosplay.fr
  avec detail echec + motif

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 07:55:13 +02:00
Serreau Jovann
1c5e099598 feat: E-Flex - sauvegarde PaymentMethod CB + echeances auto (1ere +2j, suivantes tous les 2 mois)
- Checkout Session avec setup_future_usage=off_session + customer Stripe
  pour sauvegarder la carte et permettre les prelevements futurs
- Webhook payment_intent.succeeded stocke le PaymentMethod sur EFlex
  si pas deja configure (permet cron auto ensuite)
- 1ere echeance = creation +2 jours (pas de champ startDate)
- Echeances suivantes = tous les 2 mois apres la 1ere
- Retrait du champ date 1ere echeance du formulaire (automatique)
- Info dans le formulaire: "La 1ere echeance sera due 2 jours apres
  la signature. Les suivantes tous les 2 mois."

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 07:54:01 +02:00
Serreau Jovann
bbb9ad318e feat: page process E-Flex - choix methode de paiement (virement/CB/SEPA)
Remplace les boutons "Payer echeance X" par 3 cartes de choix :
- Virement bancaire : coordonnees bancaires + reference a indiquer
- Carte bancaire : bouton payer la prochaine echeance via Stripe Checkout
- Prelevement automatique SEPA (recommande) : configurer l'IBAN une fois

Si SEPA deja configure, affiche le statut actif avec IBAN masque.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 07:52:03 +02:00
Serreau Jovann
8e7a114c22 fix: unlink fichiers temporaires apres flush dans webhook EFlex DocuSeal
Le @unlink() etait appele avant $em->flush(), Vich essayait de lire
un fichier deja supprime. Les fichiers temporaires sont maintenant
supprimes apres le flush.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 07:48:03 +02:00
Serreau Jovann
a41f081696 fix: ajout getters getPdfSignedFile/getPdfAuditFile sur EFlex + retrait select methode paiement creation
- Ajout getPdfSignedFile() et getPdfAuditFile() manquants sur entite EFlex (erreur Vich/Twig)
- Retrait du select methode de paiement dans le formulaire de creation E-Flex (le client choisira directement)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 07:46:12 +02:00
Serreau Jovann
18daf096fa feat: systeme complet echeancier SEPA, E-Flex, attestations, avertissements clients
Echeancier - Webhooks DocuSeal:
- Webhook form.completed: telecharge PDF signe + audit, state SIGNED, prepare SEPA, notifie client + admin
- Webhook form.declined: state CANCELLED, notifie client + admin
- Reference EC_ECH_XXXXX affichee dans PDF, emails, pages client, admin
- Attestation fin de paiement auto via DocuSeal au completion

Echeancier - SEPA Direct Debit (remplace Subscriptions):
- Page /echeancier/setup-payment/{id}: formulaire IBAN Stripe Elements + mandat SEPA
- Confirmation SetupIntent -> stocke PaymentMethod -> state ACTIVE
- Commande cron app:echeancier:process-payments: preleve les echeances dues via PaymentIntent off_session
- Webhooks payment_intent.succeeded/failed: met a jour EcheancierLine, notifie client
- Regularisation CB via Stripe Checkout en cas d'echec prelevement
- Bouton "Forcer prelevement" par echeance dans admin
- Infos SEPA stockees (last4, bank_code, country) + affichees admin
- Page setup_payment_done quand SEPA deja configure
- Annulation auto apres 2 rejets + sync paiements vers Advert lie

Echeancier - Lien Advert:
- Champ advert (ManyToOne nullable) sur Echeancier
- Select "Avis lie" dans formulaire creation
- AdvertPayment cree a chaque echeance payee
- Advert passe en accepted quand echeancier completed

Comptabilite:
- Export echeanciers CSV/JSON/PDF/PDF signe dans /admin/comptabilite
- Colonnes: reference, client, creance, majoration, total, paye, restant, Stripe PI, avis lie

Stats:
- Case "Total impaye global" = factures impayees + echeances non payees
- Tableau echeanciers en cours avec restant du

Confiance client:
- Statut Confiant/Attention/Danger calcule dynamiquement
- Badge en haut a droite de la fiche client
- Integre warningLevel (1st=Attention, 2nd=Attention, last=Danger)
- Creation echeancier bloquee si Danger (template + controller)

Avertissements client (tab Controle, ROLE_ROOT):
- 3 niveaux: 1st, 2nd (procedure suspension preparee), last (48h)
- Motifs cochables: impayes, irrespect, hors horaires, services gratuits
- PDF signe DocuSeal pour chaque avertissement (ClientWarningPdf)
- PDF levee avertissement signe (ClientWarningResetPdf)
- Webhooks DocuSeal client_warning + client_warning_reset
- Barre progression 4 etapes dans admin
- Mentions legales: huis clos, contestation direction@e-cosplay.fr

Cloture compte:
- Bouton "Envoyer notification de cloture" apres dernier avertissement
- PDF signe DocuSeal (ClientClosurePdf): suppression 24h, recouvrement, commissaire justice, forces ordre
- Bouton "Suspendre le compte" (state suspended)
- Webhook DocuSeal client_closure: envoie PDF signe a client + admin + direction

Factures:
- Auto-generation PDF si absent lors de l'envoi
- Bouton "Envoyer" visible meme sans PDF pour factures payees

E-Flex (financement services):
- Entites EFlex + EFlexLine (reference E_FLEX_XXXXX)
- Methodes: SEPA, CB (Stripe Checkout), virement manuel
- PDF contrat avec 2 signatures DocuSeal (Company + Client)
- Controller admin CRUD + force payment + paiement manuel
- Pages client: verify, process, sign, signed, setup SEPA, paiement CB
- Webhook DocuSeal eflex: telecharge PDFs, prepare Stripe, notifie
- Webhooks Stripe payment_intent: gestion paiements E-Flex
- Cron traite aussi les E-Flex SEPA dans process-payments
- Tab E-Flex dans fiche client avec liste + modal creation
- Emails: signature, signed, verify_code, echeance_payee, echeance_echec

Attestations custom (ROLE_ROOT):
- Entite AttestationCustom avec items JSON + HMAC SHA-256
- Repeater dynamique pour ajouter elements a attester
- PDF avec phrase officielle "Je soussigne(e)..." + QR code verification
- Signature manuelle dans DocuSeal (redirection)
- Webhook attestation_custom: telecharge PDF signe + audit
- Page publique /attestation/verify/{id}/{hmac} avec validation HMAC
- Lien dans sidebar Super Admin

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 07:45:22 +02:00
Serreau Jovann
5b3706e282 fix: texte page signed - "recevoir un email pour configurer les prelevements"
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 20:22:34 +02:00
Serreau Jovann
4958bb5a17 fix: email verification echeancier dedie (plus de reference advert null)
- Nouveau template emails/echeancier_verify_code.html.twig
  (sans reference a advert.orderNumber)
- Controller utilise le nouveau template au lieu de order_verify_code

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 20:21:19 +02:00
Serreau Jovann
81f093c2d0 feat: bouton renvoyer le code sur page verification echeancier
- Route /echeancier/verify/{id}/resend (POST)
- Genere nouveau code 6 chiffres + envoie par email
- Bouton "Renvoyer le code" sous le formulaire

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 20:20:19 +02:00