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:
@@ -96,4 +96,4 @@ nelmio_security:
|
||||
- auth.esy-web.dev
|
||||
- challenges.cloudflare.com
|
||||
- signature.esy-web.dev
|
||||
- signature.siteconseil.fr
|
||||
- signature.e-cosplay.fr
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
twig:
|
||||
file_name_pattern: '*.twig'
|
||||
globals:
|
||||
tva_enabled: '%env(bool:TVA_ENABLED)%'
|
||||
|
||||
when@test:
|
||||
twig:
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user