Catégories globales + flag neutre + seed_reference
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
"""
|
||||
Charge les barèmes 2026 et un jeu de données d'exemple (multi-activité + autoliq).
|
||||
Charge les données de RÉFÉRENCE (barèmes + catégories) puis un jeu de
|
||||
données d'EXEMPLE (entreprise, clients, factures, dépenses).
|
||||
Pour la prod, préférez `seed_reference` (référence seule, sans démo).
|
||||
|
||||
Usage : python manage.py seed_demo
|
||||
"""
|
||||
from decimal import Decimal
|
||||
@@ -8,43 +11,24 @@ from datetime import date
|
||||
from django.core.management.base import BaseCommand
|
||||
|
||||
from compta.models import (
|
||||
Bareme, Entreprise, Client, Facture, LigneFacture, Depense, Activite,
|
||||
Entreprise, Client, Facture, LigneFacture, Depense, Activite,
|
||||
StatutFacture, RegimeTva,
|
||||
)
|
||||
|
||||
# Barèmes officiels 2026 (voir docs/regles-fiscales-2026.md)
|
||||
BAREMES_2026 = [
|
||||
# activite, taux_urssaf, abattement, taux_vl, seuil_ca, tva_base, tva_majore
|
||||
(Activite.VENTE, Decimal("12.30"), Decimal("71"), Decimal("1.0"),
|
||||
Decimal("203100"), Decimal("85000"), Decimal("93500")),
|
||||
(Activite.SERVICE_BIC, Decimal("21.20"), Decimal("50"), Decimal("1.7"),
|
||||
Decimal("83600"), Decimal("37500"), Decimal("41250")),
|
||||
(Activite.SERVICE_BNC, Decimal("25.60"), Decimal("34"), Decimal("2.2"),
|
||||
Decimal("83600"), Decimal("37500"), Decimal("41250")),
|
||||
]
|
||||
from compta.management.commands.seed_reference import charger_reference
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "Charge les barèmes 2026 et des données d'exemple."
|
||||
help = "Charge la référence + des données d'exemple."
|
||||
|
||||
def handle(self, *args, **options):
|
||||
for act, urssaf, ab, vl, sca, tb, tm in BAREMES_2026:
|
||||
Bareme.objects.update_or_create(
|
||||
activite=act, annee=2026,
|
||||
defaults=dict(taux_urssaf=urssaf, abattement_fiscal=ab,
|
||||
taux_vl=vl, seuil_ca=sca,
|
||||
seuil_tva_base=tb, seuil_tva_majore=tm),
|
||||
)
|
||||
self.stdout.write(self.style.SUCCESS("Barèmes 2026 chargés."))
|
||||
cat = charger_reference(self.stdout, self.style)
|
||||
|
||||
# Entreprise multi-activité : impression 3D (Vente BIC) + aide info (Presta BIC)
|
||||
ent, _ = Entreprise.objects.get_or_create(
|
||||
nom="JB Conseil",
|
||||
defaults=dict(activite=Activite.SERVICE_BIC, franchise_tva=False,
|
||||
taux_tva_defaut=Decimal("20.00"),
|
||||
versement_liberatoire=True, email="jb@example.fr",
|
||||
num_tva_intracom="FR00123456789"),
|
||||
)
|
||||
num_tva_intracom="FR00123456789"))
|
||||
|
||||
clients = {}
|
||||
for nom, mail in [("Acme SARL", "contact@acme.fr"),
|
||||
@@ -56,7 +40,6 @@ class Command(BaseCommand):
|
||||
|
||||
V, S = Activite.VENTE, Activite.SERVICE_BIC
|
||||
factures = [
|
||||
# numero, client, activite, emission, encaissement, statut, lignes
|
||||
("2026-001", "Acme SARL", S, date(2026, 1, 10), date(2026, 1, 25),
|
||||
StatutFacture.ENCAISSEE, [("Dépannage informatique", 2, 600)]),
|
||||
("2026-002", "Studio Lumiere", V, date(2026, 1, 18), date(2026, 2, 5),
|
||||
@@ -73,8 +56,7 @@ class Command(BaseCommand):
|
||||
entreprise=ent, numero=numero,
|
||||
defaults=dict(client=clients[client_nom], activite=activite,
|
||||
date_emission=emis, date_encaissement=enc,
|
||||
statut=statut),
|
||||
)
|
||||
statut=statut))
|
||||
if created:
|
||||
for des, qte, pu in lignes:
|
||||
LigneFacture.objects.create(
|
||||
@@ -84,18 +66,21 @@ class Command(BaseCommand):
|
||||
|
||||
Depense.objects.get_or_create(
|
||||
entreprise=ent, libelle="Bobines PLA/PETG", date=date(2026, 1, 15),
|
||||
defaults=dict(categorie="Matiere", activite=Activite.VENTE,
|
||||
defaults=dict(categorie=cat["Matière première"], activite=Activite.VENTE,
|
||||
montant_ttc=Decimal("96.00"), montant_tva=Decimal("16.00")))
|
||||
Depense.objects.get_or_create(
|
||||
entreprise=ent, libelle="Abonnement outils", date=date(2026, 2, 10),
|
||||
defaults=dict(categorie="Logiciel", activite=Activite.SERVICE_BIC,
|
||||
defaults=dict(categorie=cat["Abonnement logiciel"],
|
||||
activite=Activite.SERVICE_BIC,
|
||||
montant_ttc=Decimal("34.80"), montant_tva=Decimal("5.80")))
|
||||
# Achat intracommunautaire (ex. imprimante depuis l'Allemagne) :
|
||||
# le fournisseur facture HT, on auto-liquide la TVA à 20 %.
|
||||
Depense.objects.get_or_create(
|
||||
entreprise=ent, libelle="Imprimante 3D (DE)", date=date(2026, 2, 20),
|
||||
defaults=dict(categorie="Materiel", activite=Activite.VENTE,
|
||||
defaults=dict(categorie=cat["Matériel et outillage"], activite=Activite.VENTE,
|
||||
regime_tva=RegimeTva.INTRACOM, taux_tva=Decimal("20"),
|
||||
montant_ttc=Decimal("500.00"), montant_tva=Decimal("0")))
|
||||
Depense.objects.get_or_create(
|
||||
entreprise=ent, libelle="URSSAF DE LORRAINE", date=date(2026, 3, 3),
|
||||
defaults=dict(categorie=cat["Cotisation sociale Urssaf"],
|
||||
montant_ttc=Decimal("73.00"), montant_tva=Decimal("0")))
|
||||
|
||||
self.stdout.write(self.style.SUCCESS("Données d'exemple chargées."))
|
||||
|
||||
Reference in New Issue
Block a user