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}"