from pathlib import Path from jinja2 import Environment, FileSystemLoader from weasyprint import HTML TEMPLATES = Path(__file__).parent / "templates" def generate_deviz(order: dict, lines: list, tenant: dict) -> bytes: env = Environment(loader=FileSystemLoader(str(TEMPLATES))) html = env.get_template("deviz.html").render( order=order, tenant=tenant, manopera=[l for l in lines if l.get("tip") == "manopera"], materiale=[l for l in lines if l.get("tip") == "material"], ) return HTML(string=html).write_pdf() def generate_factura( invoice: dict, order: dict, lines: list, tenant: dict ) -> bytes: env = Environment(loader=FileSystemLoader(str(TEMPLATES))) html = env.get_template("factura.html").render( invoice=invoice, order=order, tenant=tenant, lines=lines, ) return HTML(string=html).write_pdf()