Files
KCGL/inventory-backend/app/models/transaction.py
dxc c06b96f149 (no commit message provided)
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
2026-02-09 11:44:24 +08:00

93 lines
3.6 KiB
Python

from app.extensions import db
from datetime import datetime
class TransBorrow(db.Model):
__tablename__ = 'trans_borrow'
id = db.Column(db.Integer, primary_key=True)
borrow_no = db.Column(db.String(100))
sku = db.Column(db.String(100))
source_table = db.Column(db.String(50))
stock_id = db.Column(db.Integer)
barcode = db.Column(db.String(100))
quantity = db.Column(db.Numeric(19, 4))
# 借出信息
borrower_name = db.Column(db.String(100))
borrow_time = db.Column(db.DateTime, default=datetime.now)
borrow_signature = db.Column(db.Text) # 借用人签字
expected_return_time = db.Column(db.DateTime)
# 归还信息
is_returned = db.Column(db.Boolean, default=False)
return_time = db.Column(db.DateTime)
return_operator = db.Column(db.String(100)) # 库管
return_signature = db.Column(db.Text) # 库管签字
return_location = db.Column(db.String(100)) # 归还库位
status = db.Column(db.String(20), default='borrowed')
remark = db.Column(db.Text)
def to_dict(self):
return {
'id': self.id,
'borrow_no': self.borrow_no,
'sku': self.sku,
'barcode': self.barcode,
'quantity': float(self.quantity) if self.quantity else 0,
'borrower_name': self.borrower_name,
'borrow_time': self.borrow_time.strftime('%Y-%m-%d %H:%M') if self.borrow_time else '',
'borrow_signature': self.borrow_signature,
'expected_return_time': self.expected_return_time.strftime(
'%Y-%m-%d %H:%M') if self.expected_return_time else '',
'is_returned': self.is_returned,
'return_time': self.return_time.strftime('%Y-%m-%d %H:%M') if self.return_time else '',
'return_operator': self.return_operator,
'return_signature': self.return_signature,
'return_location': self.return_location,
'status': self.status,
'remark': self.remark
}
class TransRepair(db.Model):
__tablename__ = 'trans_repair'
id = db.Column(db.Integer, primary_key=True)
sku = db.Column(db.String(100))
source_table = db.Column(db.String(50))
stock_id = db.Column(db.Integer)
fault_description = db.Column(db.Text)
repair_result = db.Column(db.Text)
repair_manager = db.Column(db.String(100))
cost_price = db.Column(db.Numeric(10, 2))
sale_price = db.Column(db.Numeric(10, 2))
arrival_date = db.Column(db.Date)
shipping_date = db.Column(db.Date)
created_at = db.Column(db.DateTime, default=datetime.now)
updated_at = db.Column(db.DateTime, default=datetime.now, onupdate=datetime.now)
def to_dict(self):
return {
'id': self.id,
'sku': self.sku,
'source_table': self.source_table,
'stock_id': self.stock_id,
'fault_description': self.fault_description,
'repair_result': self.repair_result,
'repair_manager': self.repair_manager,
'cost_price': float(self.cost_price) if self.cost_price is not None else None,
'sale_price': float(self.sale_price) if self.sale_price is not None else None,
'arrival_date': self.arrival_date.strftime('%Y-%m-%d') if self.arrival_date else None,
'shipping_date': self.shipping_date.strftime('%Y-%m-%d') if self.shipping_date else None,
'created_at': self.created_at.strftime('%Y-%m-%d %H:%M:%S') if self.created_at else None,
'updated_at': self.updated_at.strftime('%Y-%m-%d %H:%M:%S') if self.updated_at else None,
}