diff --git a/routers/factures.py b/routers/factures.py index 6467464..80a210b 100644 --- a/routers/factures.py +++ b/routers/factures.py @@ -12,6 +12,7 @@ from config import settings from auth import get_current_user from template_helper import render from generate_facturx_jinja2 import Address, Party, Invoice, InvoiceLine, generate_facturx_xml +from facturx import generate_from_binary router = APIRouter(prefix="/factures", tags=["factures"], dependencies=[Depends(get_current_user)]) templates = Jinja2Templates(directory="templates") @@ -158,23 +159,6 @@ def changer_statut_facture( from generate_facturx_jinja2 import Invoice, Party, Address, InvoiceLine, filter_amount, filter_datefmt -@router.get("/{facture_id}/facturx") -def telecharger_facturx(request: Request, facture_id: int, db: Session = Depends(get_db)): - facture = get_invoice_data(facture_id, db) # votre appel BDD - # facture = db.query(Facture).get(facture_id) - if not facture: - raise HTTPException(status_code=404) - - xml_bytes = generate_facturx_xml(facture) - - filename=f"factur-x-{facture_id}.xml" - - return Response( - content= xml_bytes, - media_type="application/xml", - headers={"Content-Disposition": f'attachment; filename="{filename}"'} - ) - @router.get("/{facture_id}/pdf", response_class=HTMLResponse) def telecharger_pdf(request: Request, facture_id: int, db: Session = Depends(get_db)): @@ -192,6 +176,12 @@ def telecharger_pdf(request: Request, facture_id: int, db: Session = Depends(get filename = f"facture-{facture.numero}.pdf" + xml_bytes = generate_facturx_xml(get_invoice_data(facture_id, db)) + + pdf_bytes = generate_from_binary(pdf_bytes, xml_bytes) + + filename = f"facture-{facture.numero}.pdf" + return Response( content=pdf_bytes, media_type="application/pdf", diff --git a/templates/factures/liste.html b/templates/factures/liste.html index 355891b..99ed8bf 100644 --- a/templates/factures/liste.html +++ b/templates/factures/liste.html @@ -29,7 +29,6 @@ Voir PDF - facturx {% endfor %}