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, }