Implement issue 1 search, order reuse and tracking

This commit is contained in:
reddaniel110
2026-10-14 11:25:43 +08:00
parent 0e45a58e5b
commit 4aaa6c6a14
17 changed files with 363 additions and 19 deletions
+6
View File
@@ -17,6 +17,7 @@ from order_logic import (ORDER_FIELDS, ITEM_FIELDS, add_log, can_edit, can_appro
validate_order)
from pdf_export import PDF_TEMPLATE_VERSION, build_pdf, seal_layout
from order_tracking import can_follow, can_record_payment
from material_prices import remember_approved_prices, supplier_price_map
from security import current_user, db, login_required, role_required
@@ -109,6 +110,7 @@ def register_order_routes(app):
return render_template('order_edit.html', user=user, o=order, editable=True,
suppliers=db.query(Supplier).filter_by(active=True).all(),
materials=db.query(Material).filter_by(active=True).all(), doc_types=DOC_TYPES,
supplier_prices=supplier_price_map(db, order.supplier_name, order.supplier_tax_no, user),
total_cn=amount_to_cn(order.total_amount))
@app.route('/orders/<int:oid>/view')
@@ -161,6 +163,7 @@ def register_order_routes(app):
version.pdf_sha256 = hashlib.sha256(version.pdf_data).hexdigest()
version.template_version = (PDF_TEMPLATE_VERSION + '-legacy-current'
if version.template_version == 'legacy-current' else PDF_TEMPLATE_VERSION)
remember_approved_prices(db, order)
add_log(order, '审批通过并归档正式 PDF', user, request.form.get('comment'), old)
db.commit()
flash('审批通过,正式 PDF 已归档', 'ok')
@@ -263,11 +266,14 @@ def register_order_routes(app):
order.order_date = datetime.now().strftime('%Y-%m-%d')
order.items = [OrderItem(seq=i, **{field: getattr(item, field) for field in ITEM_FIELDS})
for i, item in enumerate(source.items, 1)]
for item in order.items:
item.delivery_date = ''
recalc(order)
db.add(order)
remember_creation(key, 'copy:%s' % oid, order)
add_log(order, '复制创建草稿', user, '来源:' + source.order_no)
db.commit()
flash('已复制为新草稿。请填写新交期,并核对单价和订单条款。', 'ok')
return redirect(url_for('order_edit', oid=order.id))
@app.route('/orders/<int:oid>/pdf')