feat: add partial return support with returned_quantity tracking

This commit is contained in:
DXC
2026-03-18 10:41:19 +08:00
parent 63ea2a22a4
commit 79d4a365e0
4 changed files with 91 additions and 15 deletions

View File

@ -13,6 +13,7 @@ class TransBorrow(db.Model):
stock_id = db.Column(db.Integer)
barcode = db.Column(db.String(100))
quantity = db.Column(db.Numeric(19, 4))
returned_quantity = db.Column(db.Numeric(19, 4), default=0)
borrower_name = db.Column(db.String(100))
borrow_time = db.Column(db.DateTime, default=beijing_time)
borrow_signature = db.Column(db.Text)
@ -26,6 +27,9 @@ class TransBorrow(db.Model):
remark = db.Column(db.Text)
def to_dict(self):
returned_qty = float(self.returned_quantity) if self.returned_quantity is not None else 0
total_qty = float(self.quantity) if self.quantity is not None else 0
pending_qty = total_qty - returned_qty
return {
'id': self.id,
'borrow_no': self.borrow_no,
@ -33,7 +37,9 @@ class TransBorrow(db.Model):
'source_table': self.source_table,
'stock_id': self.stock_id,
'barcode': self.barcode,
'quantity': float(self.quantity) if self.quantity is not None else None,
'quantity': total_qty,
'returned_quantity': returned_qty,
'pending_quantity': pending_qty,
'borrower_name': self.borrower_name,
'borrow_time': self.borrow_time.strftime('%Y-%m-%d %H:%M') if self.borrow_time else None,
'borrow_signature': self.borrow_signature,