职责:供应商;果农原料 / 成品半成品采购;确认归档入库;财务可驳回;与销售显式关联供财务看板。
边界:分选改 SKU 走加工;请款/发票/费用见财务。确认/驳回见 14-库存确认契约.md。
对照:线下 #1 / #2 见 13-线下单据映射.md。
| 线下 | purchases.type |
|---|---|
| 果农原料分级结算单 | raw |
| 常规采购单 | goods |
表:suppliers
| 字段 | 说明 |
|---|---|
| id | 主键 |
| name | 名称 |
| type | farmer / processor / other |
| contact / mobile / address | 可空 |
| bank_name / bank_account / account_name | 请款收款户,可空;开票四要素见开票资料 |
| status | 启用 / 停用 |
| remark | 可空 |
| created_at / updated_at / deleted_at | 时间戳;软删除 |
开票资料:morphMany invoice_profiles(见 08-财务.md),不写在本表。
表:purchases;purchase_no 唯一。
| 字段 | 说明 |
|---|---|
| id | 主键 |
| purchase_no | 全局唯一 |
| type | raw / goods |
| supplier_id | 供应商 |
| product_id | 归属产品,可空 |
| warehouse_id | 入库仓 |
| business_date | 业务/到货日 |
| batch_no / plate_no / origin | 可空 |
| status | draft / confirmed / cancelled |
| freight_fee | 运费 |
| total_amount | 明细合计,不含运费 |
| invoice_complete | 是否开票完毕(人工勾选,可空/默认 false) |
| rejected_at / rejected_by / reject_reason | 最近财务驳回,可空 |
| source | wecom / web / manual |
| operator_id | 采购员 |
| accepted_at / acceptor_id / accept_remark | 验收,可空 |
| remark | 可空 |
| created_at / updated_at / deleted_at | 时间戳;软删除 |
purchase_items| 字段 | 说明 |
|---|---|
| id | 主键 |
| purchase_id | 采购单 |
| sku_id / unit | SKU / 单位 |
| sku_name | 开单时名称快照 |
| sku_snapshot | 开单时 SKU 快照 JSON:name / code / grade / spec / form / source / product_id |
| quantity | 件数 |
| weight_kg | 重量 kg |
| unit_price | 元/kg |
| amount | 行金额 |
| remark | 可空 |
果农按等级结算:明细多行不同等级 SKU。统货再分选产出写在加工单。
选/改 SKU 时写入 sku_name、sku_snapshot;确认后只读。展示与对账用快照,库存仍按 sku_id。
表:purchase_order_links
唯一:(purchase_id, order_id)。不自动按「同产品同日」猜测。
| 字段 | 说明 |
|---|---|
| id | 主键 |
| purchase_id | 采购单 |
| order_id | 销售单 |
| created_at | 时间 |
可在采购或销售界面维护;财务看板只读此关联。
draft → confirmed # purchase_in,见 14;归档
confirmed → draft # 仅财务驳回:冲销后回草稿
draft → cancelled
针对已 confirmed 采购单,界面计算展示(可不落库):
| 指标 | 算法要点 |
|---|---|
| 关联销售数量/重量 | purchase_order_links → 销售明细 quantity / weight_kg(或到仓重,约定一种)合计 |
| 采销差 | 采购明细合计 − 关联销售合计(件数、重量分列) |
| 粗利润 / 利润率 | 关联销售 payable_amount 合计 −(本采购 total_amount + 运费 + 分摊到本单的已确认业务费用)等;利润率 = 利润 / 销售收入;阈值见 finance_thresholds |
| 发票情况 | 关联已 approved 采购发票金额合计 vs 本单金额;以及 invoice_complete |
请款时以上作提示,默认不阻断批准(见财务)。
finance_thresholds| 字段 | 说明 |
|---|---|
| id | 主键 |
| name | 如 min_profit_rate |
| value | 数值 |
| remark | 可空 |
| updated_at | 时间 |
也可用简单 config;与 loss_params 同类。
raw/goods 草稿 → 改到扣损/价格确认 → 确认归档。purchase_order_links。purchase_id。raw/goods;确认入库、财务驳回冲销回草稿。| V1 | 延后 |
|---|---|
| 上表 + 看板计算 | 采购运费资本化进存货;自动猜采销对应 |