Files
BillManager/numerotation.py
2026-02-21 23:26:50 +01:00

45 lines
1.2 KiB
Python

from datetime import date
from sqlalchemy.orm import Session
def generer_numero_facture(db: Session) -> str:
from models import Facture
annee = date.today().year
# Cherche le dernier numéro de l'année en cours
factures = db.query(Facture).filter(
Facture.numero.like(f"{annee}-%")
).all()
if not factures:
seq = 1
else:
sequences = []
for f in factures:
try:
sequences.append(int(f.numero.split("-")[-1]))
except (ValueError, IndexError):
pass
seq = max(sequences) + 1 if sequences else 1
return f"{annee}-{seq:04d}"
def generer_numero_devis(db: Session) -> str:
from models import Devis
from config import settings
annee = date.today().year
prefix = settings.devis_prefix
pattern = f"{prefix}-{annee}-%"
devis = db.query(Devis).filter(
Devis.numero.like(pattern)
).all()
if not devis:
seq = 1
else:
sequences = []
for d in devis:
try:
sequences.append(int(d.numero.split("-")[-1]))
except (ValueError, IndexError):
pass
seq = max(sequences) + 1 if sequences else 1
return f"{prefix}-{annee}-{seq:04d}"