feat: comptabilite + prestataires + rapport financier + stats dynamiques

Comptabilite (Super Admin) :
- ComptabiliteController avec 7 exports CSV/JSON compatibles SAGE
  (journal ventes, grand livre, FEC, balance agee, reglements,
  commissions Stripe 1.5%+0.25E, couts services)
- Export PDF via ComptaPdf (FPDF) avec bloc legal pre-rempli,
  tableau pagine, champ signature DocuSeal
- Signature electronique DocuSeal + callback + envoi email signe
  avec template dedie (compta_export_signed.html.twig)
- Rapport financier public (RapportFinancierPdf) : recettes par
  service, depenses (Stripe, infra, prestataires), bilan excedent/deficit
- Codes comptables clients EC-XXXX (plus de 411xxx)

Prestataires (Super Admin) :
- Entite Prestataire (raisonSociale, siret, email, phone, adresse)
- Entite FacturePrestataire (numFacture, montantHt, montantTtc,
  year, month, isPaid, PDF via Vich)
- CRUD complet avec recherche SIRET via proxy API data.gouv.fr
- Commande cron app:reminder:factures-prestataire (5 du mois)
- Factures prestataires integrees dans export couts services
- Sidebar Super Admin : entree Prestataires + Comptabilite

Stats (/admin/stats) :
- Cout prestataire dynamique depuis FacturePrestataire
- Fusion Infra + Prestataire en "Cout de fonctionnement"
- Commission Stripe corrigee (1.5% + 0.25E par transaction)

Divers :
- DocuSealService::sendComptaForSignature() + getApi()
- Customer::generateCodeComptable() format EC-XXXX-XXXXX
- Protection double prefixe EC- a la creation client
- Bouton regenerer PDF cache quand advert state=accepted
- Modals sans script inline (data-modal-open/close dans app.js)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Serreau Jovann
2026-04-07 23:39:31 +02:00
parent 95d33a9a6d
commit 8b35e2b6d2
215 changed files with 11539 additions and 1402 deletions

View File

@@ -96,4 +96,4 @@ nelmio_security:
- auth.esy-web.dev
- challenges.cloudflare.com
- signature.esy-web.dev
- signature.siteconseil.fr
- signature.e-cosplay.fr

View File

@@ -1,9 +1,9 @@
pwa:
asset_compiler: false # Default to true. Will change to false in 2.0.0.
image_processor: 'pwa.image_processor.gd' # Or 'pwa.image_processor.gd'
asset_compiler: false
image_processor: 'pwa.image_processor.gd'
favicons:
enabled: true
src: '%kernel.project_dir%/public/assets/notif.png'
src: '%kernel.project_dir%/public/favicon.png'
serviceworker:
enabled: true
scope: "/"
@@ -11,13 +11,13 @@ pwa:
skip_waiting: true
manifest:
enabled: true
name: "SITECONSEIL"
short_name: "PWA"
name: "E-Cosplay"
short_name: "E-Cosplay"
start_url: "app_home"
display: "standalone"
background_color: "#ffffff"
theme_color: "#4285f4"
categories: ['games','multimedia','social networking']
background_color: "#f5f5f0"
theme_color: "#fabf04"
categories: ['business', 'productivity']
icons:
- src: '%kernel.project_dir%/public/assets/notif.png'
sizes: [192]
- src: '%kernel.project_dir%/public/favicon.png'
sizes: [192, 512]

View File

@@ -6,6 +6,7 @@ nelmio_security:
- 'nonce'
- 'https://static.cloudflareinsights.com'
- 'https://challenges.cloudflare.com'
- 'https://js.stripe.com'
# Restreindre les soumissions de formulaires à notre domaine
# et aux redirections OAuth des plateformes de partage social
@@ -16,7 +17,13 @@ nelmio_security:
- 'https://twitter.com'
# Autoriser navigator.share() (Web Share API) et clipboard API
# — les deux sont des APIs navigateur natives, pas des appels réseau externes
# Ce bloc est présent pour documentation et futures intégrations
# Stripe Elements necessite connect-src vers api.stripe.com
connect-src:
- 'self'
- 'https://api.stripe.com'
# Stripe Elements charge ses iframes depuis js.stripe.com
frame-src:
- 'self'
- 'https://js.stripe.com'
- 'https://hooks.stripe.com'

View File

@@ -5,7 +5,7 @@ scheb_two_factor:
email:
enabled: true
sender_email: 'contact@siteconseil.fr'
sender_email: 'contact@e-cosplay.fr'
sender_name: 'CRM SITECONSEIL'
digits: 6
template: 'security/2fa_email.html.twig'

View File

@@ -1,5 +1,7 @@
twig:
file_name_pattern: '*.twig'
globals:
tva_enabled: '%env(bool:TVA_ENABLED)%'
when@test:
twig:

View File

@@ -14,3 +14,11 @@ vich_uploader:
uri_prefix: /uploads/adverts
upload_destination: '%kernel.project_dir%/public/uploads/adverts'
namer: Vich\UploaderBundle\Naming\SmartUniqueNamer
facture_pdf:
uri_prefix: /uploads/factures
upload_destination: '%kernel.project_dir%/public/uploads/factures'
namer: Vich\UploaderBundle\Naming\SmartUniqueNamer
facture_prestataire_pdf:
uri_prefix: /uploads/factures_prestataires
upload_destination: '%kernel.project_dir%/public/uploads/factures_prestataires'
namer: Vich\UploaderBundle\Naming\SmartUniqueNamer