forked from seb_vallee/BillManager
Init project
This commit is contained in:
44
numerotation.py
Normal file
44
numerotation.py
Normal file
@@ -0,0 +1,44 @@
|
||||
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}"
|
||||
Reference in New Issue
Block a user