跨模块约定。表结构与流程在各功能文档;确认如何改库存见 14-库存确认契约.md。
根目录 README.md 为需求 V1.2 原文,不改。与 README 冲突时,以本文件 + 功能文档为准。
约 50 人的水果批发 / 产地·销地加工中心用的轻量业财一体进销存:采购入库 →(可选)仓内加工 → 销售出库 → 费用/发票;再叠加夜间盈亏与企微 AI 录单。不是 WMS,不是传统 ERP,不对接老 ERP。
真源:人工确认后的业务单 + stock_ledgers。AI / OCR / 语音只出草稿。
products,用 project_name;成员 product_users,至多一名负责人。product_id)。product_id 必填;采购明细记规格名/等级/包装等结算属性,不存产品外键。详见 03-产品.md、05-采购.md。地址主数据见 02-省市区.md(areas,CSV 导入)。等级字典见 03-产品.md(grades 单据存名称,不外键;无单位字典,unit 列可留但写空串)。客户 morphMany、供应商 / 仓库 morphOne 挂 addresses。客户 / 供应商 code 若填则唯一(同产品)。
主数据与业务单据头表用 SoftDeletes(deleted_at)。stocks / stock_ledgers / 快照 / 中间表 / 员工与部门不加。已确认或已入账单据禁止软删(作废或财务驳回);单号不因软删释放。
开票资料(抬头 / 税号 / 四要素)用 invoice_profiles 多态挂客户、供应商等,不写在客户/供应商表上;与规则 12 的发票单据无关。
purchases,类型 raw 果农原料 / goods 成品或半成品。草稿可改(可等扣损结果);确认即归档并入库(见 14)。运费与 total_amount 分列。统货进仓后再分选/包装/降级,另开仓内加工(见规则 15 与 07)。与销售的对应见规则 8 与 05-采购.md,不靠同日猜测。orders。一张单一个产品(头表 product_id)。开单写 summary(订单摘要),明细可后补(先按摘要采购,再补规格/等级/包装与出库仓)。明细是该产品的不同规格/等级/包装(不另建 SKU 表),且每行自带出库仓(多仓拼车履约)。类型默认 external 对外销售;return / reject 仅由原单生成退拒子单。头表不设 settlement。草稿可改;提交审批前须有明细。人审通过 → 待出库 → 出库才按行 sale_out(见 14);可选验收(报损/补发);退拒整单一次。财务闭环两个关键审批节点:开票(on_approve=invoice)、收款(on_approve=collect),见 15 / 08。出库与按批粗利以明细 purchase_id 为准。头表不设 warehouse_id / purchase_id / related_purchase_id(见 05 / 06)。draft,方可再改。禁止静默改已入账流水。采购与销售出入库/冲销共用同一写流水服务(见 14)。销售审批驳回(尚未出库)也回 draft,不写流水。orders。document_expenses(MorphMany 挂采/销,可正可负)≠ 费用申请 expenses(独立人审,节点 pay 付款)。invoice / collect(见 15),与费用申请节点 pay 同理。(仓库, 产品, purchase_id, spec_name, grade, pack)(不含单位),界面展示 purchase_no;空属性存空串。重量列名 weight_kg,语义为斤。可带三费件数单价(加工费 / 包装费 / 隐形分摊)作毛利预估。process_orders 一对 from/to、同一 purchase_id、同一 product_id;产出属性不同则分堆。件数可不守恒(半仓可只扣重量);多产出损耗按产出重量比例分摊;各档三费写对应产出结存。后台不再新开拆合单。不设独立降级单。调拨/加工产出保留批次、行属性与三费单价。| P0 | 延后 |
|---|---|
| 主数据、采销确认归档与财务驳回冲销、加工仓库、费用申请、挂单经营费用、开票资料、采购/销售发票 | 存货成本层、销售在途、WMS、对话问数、企微部门回写 |
功能文档写「见规则 N」或「确认见 14」。验收 = 本文件 + 14 + 该模块验收标准。