import os
from django.conf import settings
from django.template.loader import render_to_string

def generate_invoice_and_save(order, payment):

    html = render_to_string("order_module/invoice.html",
                            {"order": order, "payment": payment})

    pdf_bytes = HTML(string=html).write_pdf()

    folder = os.path.join(settings.MEDIA_ROOT, "invoices")
    os.makedirs(folder, exist_ok=True)

    file_path = os.path.join(folder, f"invoice_{order.id}.pdf")

    with open(file_path, "wb") as f:
        f.write(pdf_bytes)

    return pdf_bytes, file_path
