← Retour à la marketplaceVoir les projets →
🧾
Facturation
⭐ RecommandéDevis, factures, avoirs en PDF avec numérotation automatique et suivi des paiements.
E-commerceComplexe~15 joursv1.1.0
Module de facturation professionnel : création de devis et factures au format PDF, numérotation automatique, suivi des paiements, relances automatiques, tableau de bord financier et export comptable.
invoicingquotespdfpaymentsaccounting
📋 Schéma Prisma
// === Module Facturation ===
enum DocumentType {
QUOTE
INVOICE
CREDIT_NOTE
}
enum DocumentStatus {
DRAFT
SENT
PAID
OVERDUE
CANCELLED
}
model InvoiceSequence {
id String @id @default(cuid())
type DocumentType @unique
prefix String
lastNum Int @default(0)
year Int
@@map("invoice_sequences")
}
model InvoiceDocument {
id String @id @default(cuid())
type DocumentType
number String @unique
status DocumentStatus @default(DRAFT)
contactId String?
clientName String
clientEmail String
clientAddress String?
issueDate DateTime @default(now())
dueDate DateTime?
paidAt DateTime?
subtotal Decimal
taxRate Decimal @default(20)
taxAmount Decimal
total Decimal
notes String?
pdfPath String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
items InvoiceItem[]
@@map("invoice_documents")
}
model InvoiceItem {
id String @id @default(cuid())
documentId String
document InvoiceDocument @relation(fields: [documentId], references: [id], onDelete: Cascade)
description String
quantity Decimal
unitPrice Decimal
total Decimal
@@map("invoice_items")
}🔌 Endpoints API
## API Facturation POST /api/invoices # Créer devis ou facture GET /api/invoices # Liste (filtres: type, status, contact) GET /api/invoices/:id # Détail PUT /api/invoices/:id # Modifier (seulement si DRAFT) POST /api/invoices/:id/send # Envoyer par email + passer en SENT POST /api/invoices/:id/mark-paid # Marquer comme payé POST /api/invoices/:id/pdf # Générer/régénérer le PDF GET /api/invoices/:id/pdf # Télécharger le PDF POST /api/invoices/:id/duplicate # Dupliquer POST /api/invoices/:id/credit-note # Créer un avoir GET /api/invoices/stats # Dashboard financier (CA, impayés, etc.)
🛠️ Guide d'implémentation
## Implémentation Facturation ### Dépendances ```bash npm install @react-pdf/renderer date-fns ``` ### Étape 1 — Numérotation Implémenter src/lib/invoicing/sequence.ts avec transaction Prisma pour garantir l'unicité. ### Étape 2 — Calculs Créer src/lib/invoicing/calculator.ts : - Calcul HT, TVA, TTC - Arrondi à 2 décimales (Decimal.js ou Prisma Decimal) ### Étape 3 — PDF Créer src/lib/invoicing/pdf.tsx avec @react-pdf/renderer. Stocker dans /storage/invoices/<year>/<number>.pdf ### Étape 4 — Envoi email Intégration avec module Emails pour envoi automatique. ### Étape 5 — Relances Tâche planifiée (cron) pour détecter les factures en retard et envoyer des rappels.
Prêt à installer ce module ?
Ajoutez-le à un projet existant depuis la page modules du projet.