diff --git a/app.py b/app.py index a9a1023..46c0768 100644 --- a/app.py +++ b/app.py @@ -430,11 +430,14 @@ def inbound(): if qty <= 0: flash("入库数量必须大于 0", "error") else: + dlv = request.form.get("delivery_date", "").strip() + delivery_date = _date(dlv) if dlv else None rec = Inbound( material_id=mid, batch_no=request.form.get("batch_no", ""), qty=qty, operator=request.form.get("operator", ""), source=request.form.get("source", ""), occur_date=_date(request.form.get("occur_date")), + delivery_date=delivery_date, remark=request.form.get("remark", "")) db.session.add(rec) db.session.commit() @@ -1009,6 +1012,15 @@ def api_import_boms_commit(): def seed_admin(): with app.app_context(): db.create_all() + # 兼容旧库: 给 inbound 表补充 delivery_date 列(幂等) + try: + cols = [r[1] for r in db.session.execute( + db.text("PRAGMA table_info(inbound)")).fetchall()] + if "delivery_date" not in cols: + db.session.execute(db.text("ALTER TABLE inbound ADD COLUMN delivery_date DATE")) + db.session.commit() + except Exception: + db.session.rollback() if not db.session.scalar(db.select(User).where(User.username == "admin")): db.session.add(User(username="admin", password=sha256("admin123"), role="admin", display_name="管理员")) diff --git a/models.py b/models.py index ea5fe99..33bb717 100644 --- a/models.py +++ b/models.py @@ -49,6 +49,7 @@ class Inbound(db.Model): operator = db.Column(db.String(64), default="") # 经手人 source = db.Column(db.String(255), default="") # 来源 / 供应商 occur_date = db.Column(db.Date, default=date.today) + delivery_date = db.Column(db.Date, default=None) # 送货日期(供应商到货日, 可空) remark = db.Column(db.String(255), default="") created_at = db.Column(db.DateTime, default=datetime.now) diff --git a/templates/material_detail.html b/templates/material_detail.html index 5f04668..4b8cd4e 100644 --- a/templates/material_detail.html +++ b/templates/material_detail.html @@ -29,11 +29,12 @@

入库流水(每次入库时间 / 数量)

- + {% for r in inbounds %} + @@ -42,7 +43,7 @@ {% else %} - + {% endfor %}
入库日期录入时间数量批次号来源 / 供应商经手人备注
入库日期送货日期录入时间数量批次号来源 / 供应商经手人备注
{{ r.occur_date }}{{ r.delivery_date or '-' }} {{ r.created_at.strftime('%Y-%m-%d %H:%M') if r.created_at else '-' }} {{ '%.2f'|format(r.qty) }} {{ r.batch_no or '-' }}{{ r.remark or '-' }}
暂无入库记录
暂无入库记录
diff --git a/templates/txn.html b/templates/txn.html index 59c0166..3d32966 100644 --- a/templates/txn.html +++ b/templates/txn.html @@ -32,6 +32,8 @@ {% if kind=='inbound' %} + + {% else %} diff --git a/物料入库出库系统_使用教程.md b/物料入库出库系统_使用教程.md index 7d7639d..3e67ffb 100644 --- a/物料入库出库系统_使用教程.md +++ b/物料入库出库系统_使用教程.md @@ -109,7 +109,7 @@ ### 5.4 物料明细与流水查询 点列表里的 **明细** 链接,进入单颗物料页面,顶部三张卡片显示在库 / 入库总 / 消耗总;下方两张表分别是: -- **入库流水**:入库日期、录入时间、数量、批次、来源、经手人 +- **入库流水**:入库日期、送货日期、录入时间、数量、批次、来源、经手人 - **出库流水**:出库日期、录入时间、数量、批次、用途、关联单号、经手人 > 这就是「查看每颗物料每次的入库时间」的入口。 @@ -130,7 +130,7 @@ 表单顶部有一个 **「物料编码」输入框**(与「物料」下拉并列): - **直接输入或扫码**物料编码(如 `P0001`),系统会**自动定位**到下拉里对应的物料:精确命中、或编码前缀唯一时立即锁定,并把光标跳到「数量」;多个前缀候选会提示「继续输入」;编码不存在会标红提示「未找到」。 - 也可以照旧在「物料」下拉里手动选择——手选后编码框会自动反向填入对应编码,两种方式互通。 -- 填批次号、数量、经手人、来源/供应商(出库为用途/关联单号)、业务日期、备注 → 提交。库存实时 +N(出库实时 −N,不足会拦截),并写操作日志。 +- 填送货日期、批次号、数量、经手人、来源/供应商(出库为用途/关联单号)、业务日期、备注 → 提交。库存实时 +N(出库实时 −N,不足会拦截),并写操作日志。送货日期默认当天,可改成供应商实际到货日,与「业务日期」(记账日)区分。 ### 6.2 批量导入窗口 点右上角 **⊞ 批量导入窗口**,支持两种方式: