优化付款交货待办展示并支持列表快捷登记

This commit is contained in:
reddaniel110
2026-09-17 15:20:39 +08:00
parent 000f4198a8
commit 0e45a58e5b
16 changed files with 591 additions and 103 deletions
+12 -4
View File
@@ -8,13 +8,14 @@ from functools import wraps
from flask import (Flask, flash, jsonify, redirect, render_template, request,
send_file, send_from_directory, session, url_for)
from sqlalchemy import func
from sqlalchemy import func, or_
from werkzeug.security import check_password_hash, generate_password_hash
from security import db, current_user, login_required, role_required, init_security, validate_password, sign_in
from money import number, format_price
from order_logic import scope
from order_routes import register_order_routes
from order_tracking import TRACKING_FILTERS, filter_tracking, register_tracking_routes
from order_tracking import (TRACKING_FILTERS, filter_tracking, register_tracking_routes,
tracking_conditions, tracking_priority)
from excel_io import read_rows, read_material_rows, read_supplier_rows, save_upload
from flask import abort
@@ -77,10 +78,14 @@ def index():
month_total = (scope(db.query(func.sum(Order.total_amount)))
.filter(Order.status == "approved").scalar() or 0)
tracking_counts = {key: filter_tracking(scope(db.query(Order)), key).count() for key in TRACKING_FILTERS}
tracking_rows = scope(db.query(Order)).filter_by(status='approved').order_by(Order.id.desc()).limit(12).all()
tracking_key = request.args.get('tracking', 'open')
tracking_query = filter_tracking(scope(db.query(Order)), tracking_key or 'open')
tracking_total = tracking_query.count()
tracking_rows = tracking_query.order_by(tracking_priority(), Order.id.asc()).limit(12).all()
return render_template("index.html", user=u, todo=todo, my_orders=my_orders,
counts=counts, month_total=month_total,
tracking_counts=tracking_counts, tracking_rows=tracking_rows,
tracking_key=tracking_key or 'open', tracking_total=tracking_total,
status_text=STATUS_TEXT, role_text=ROLE_TEXT)
@@ -108,7 +113,10 @@ def orders():
q = q.filter(Order.order_date <= date_to)
if u.role == "maker":
q = q.filter(Order.created_by == u.id)
q = filter_tracking(q, request.args.get('tracking', ''))
tracking = request.args.get('tracking', '')
q = filter_tracking(q, tracking)
if not tracking and request.args.get('show_completed') != '1':
q = q.filter(or_(Order.status != 'approved', ~tracking_conditions()['closed']))
rows = q.order_by(Order.id.desc()).all()
return render_template("orders.html", user=u, rows=rows, status_text=STATUS_TEXT,
doc_types=DOC_TYPES, args=request.args)