Netdeploy2 Babyyyy

This commit is contained in:
Ben Mosley
2026-02-03 17:41:29 -06:00
commit c77674b86d
23 changed files with 659 additions and 0 deletions

27
routes/invoices.py Normal file
View File

@@ -0,0 +1,27 @@
from flask import Blueprint, render_template, redirect, url_for
from extensions import db
from models.quote import Quote
from models.invoice import Invoice
from models.payment import Payment
from services.invoicing import invoice_from_quote
bp = Blueprint("invoices", __name__, url_prefix="/invoices")
@bp.route("/")
def list_invoices():
return render_template("invoices/list.html", invoices=Invoice.query.all())
@bp.route("/from-quote/<int:quote_id>", methods=["POST"])
def create_from_quote(quote_id):
q = Quote.query.get_or_404(quote_id)
inv = invoice_from_quote(q)
db.session.add(inv)
db.session.commit()
return redirect(url_for("invoices.view_invoice", invoice_id=inv.id))
@bp.route("/<int:invoice_id>")
def view_invoice(invoice_id):
inv = Invoice.query.get_or_404(invoice_id)
return render_template("invoices/view.html", inv=inv)