From cc33108e88dd4757d74d3ee6a2e81b06d22fcc29 Mon Sep 17 00:00:00 2001 From: dxc Date: Sat, 28 Feb 2026 11:43:10 +0800 Subject: [PATCH] feat: add TransBorrow.get_borrowed_quantity method Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) --- inventory-backend/app/models/transaction.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/inventory-backend/app/models/transaction.py b/inventory-backend/app/models/transaction.py index ffcad3c..32393fd 100644 --- a/inventory-backend/app/models/transaction.py +++ b/inventory-backend/app/models/transaction.py @@ -1,5 +1,6 @@ from app.extensions import db from datetime import datetime +from sqlalchemy import func class TransBorrow(db.Model): @@ -46,6 +47,19 @@ class TransBorrow(db.Model): 'remark': self.remark, } + @classmethod + def get_borrowed_quantity(cls, source_table, stock_id): + """ + 获取指定库存记录(source_table 和 stock_id)的借出未还数量总和。 + 返回浮点数,若无借出记录则返回 0.0。 + """ + result = db.session.query(func.sum(cls.quantity)).filter( + cls.source_table == source_table, + cls.stock_id == stock_id, + cls.is_returned == False + ).scalar() + return float(result) if result is not None else 0.0 + class TransRepair(db.Model): __tablename__ = 'trans_repair'