feat: 采购管理税率+分开单价总价列 + 按单出/借库锁定扫描 + 含税法计算
- purchase: 新增tax_rate字段(model+service+frontend), 表格拆分为不含税单价/总价/税率三列 - buy.vue: 含税法计算(含税总价=数量×含税单价), 含税总价自动计算可手动覆盖 - create.vue: 按单出库模式下未选审批单时锁定摄像头和SKU输入 - borrow.vue: 未选审批单时锁定摄像头和SKU输入 - deploy_production.sql: 整合全部数据库变更(表结构+权限码+角色分配)
This commit is contained in:
@ -20,8 +20,9 @@ class PurchaseRequest(db.Model):
|
||||
supplier_link = db.Column(db.String(500), comment='商家地址链接')
|
||||
remark = db.Column(db.Text, comment='备注信息')
|
||||
images = db.Column(db.Text, comment='图片列表JSON')
|
||||
unit_price = db.Column(db.Numeric(19, 4), default=0, comment='单价')
|
||||
total_price = db.Column(db.Numeric(19, 4), default=0, comment='总价')
|
||||
unit_price = db.Column(db.Numeric(19, 4), default=0, comment='不含税单价')
|
||||
total_price = db.Column(db.Numeric(19, 4), default=0, comment='不含税总价')
|
||||
tax_rate = db.Column(db.Numeric(5, 2), default=0, comment='税率')
|
||||
status = db.Column(db.Integer, default=0, nullable=False)
|
||||
requester_id = db.Column(db.Integer, nullable=False, index=True)
|
||||
approver_id = db.Column(db.Integer, index=True)
|
||||
@ -88,6 +89,7 @@ class PurchaseRequest(db.Model):
|
||||
'images': self.get_images(),
|
||||
'unit_price': float(self.unit_price) if self.unit_price else 0,
|
||||
'total_price': float(self.total_price) if self.total_price else 0,
|
||||
'tax_rate': float(self.tax_rate) if self.tax_rate else 0,
|
||||
'status': self.status,
|
||||
'status_text': ['待审批', '已通过', '已驳回', '已完成'][self.status] if self.status in [0, 1, 2, 3] else '未知',
|
||||
'requester_id': self.requester_id,
|
||||
|
||||
@ -79,6 +79,7 @@ class PurchaseService:
|
||||
images=json.dumps(data.get('images', []), ensure_ascii=False) if data.get('images') else '[]',
|
||||
unit_price=float(data.get('unit_price', 0) or 0),
|
||||
total_price=float(data.get('total_price', 0) or 0),
|
||||
tax_rate=float(data.get('tax_rate', 0) or 0),
|
||||
requester_id=requester_id,
|
||||
approver_id=data.get('approver_id'),
|
||||
status=0
|
||||
|
||||
Reference in New Issue
Block a user