docs: 定价重设计原型同步(stock-in.js 双模式/详情三列)+ CLAUDE.md 定价口径节 + db-schema/CONTRACT 更新

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JJ1g8XV1YhhmHRzhwWEW7o
This commit is contained in:
wangjia
2026-07-03 12:44:22 +08:00
parent 979ca3c83b
commit 85a6eb9150
6 changed files with 47 additions and 24 deletions
+9 -7
View File
@@ -432,7 +432,7 @@
<tr><td class="mono">reviewer_id</td><td class="mono ty">BIGINT UNSIGNED</td><td class="ctr"></td><td class="mono df">NULL</td><td>审核人</td></tr>
<tr><td class="mono">status</td><td class="mono ty">ENUM('draft','pending','approved','rejected')</td><td class="ctr"></td><td class="mono df">draft</td><td></td></tr>
<tr><td class="mono">order_date</td><td class="mono ty">DATE</td><td class="ctr"></td><td class="mono df"></td><td></td></tr>
<tr><td class="mono">total_amount</td><td class="mono ty">DECIMAL(16,2)</td><td class="ctr"></td><td class="mono df">0</td><td></td></tr>
<tr><td class="mono">cost_total</td><td class="mono ty">DECIMAL(16,2)</td><td class="ctr"></td><td class="mono df">0</td><td>应付合计=Σ总进价(2026-07 消歧,旧列 total_amount 弃用待删)</td></tr>
<tr><td class="mono">reviewed_at</td><td class="mono ty">DATETIME</td><td class="ctr"></td><td class="mono df">NULL</td><td></td></tr>
<tr><td class="mono">custom_fields</td><td class="mono ty">JSON</td><td class="ctr"></td><td class="mono df">NULL</td><td></td></tr>
<tr><td class="mono">remark</td><td class="mono ty">VARCHAR(500)</td><td class="ctr"></td><td class="mono df">NULL</td><td></td></tr>
@@ -456,8 +456,8 @@
<tr><td class="mono">series</td><td class="mono ty">VARCHAR(100)</td><td class="ctr"></td><td class="mono df">NULL</td><td>系列(历史导入快照)</td></tr>
<tr><td class="mono">spec</td><td class="mono ty">VARCHAR(100)</td><td class="ctr"></td><td class="mono df">NULL</td><td>规格(历史导入快照)</td></tr>
<tr><td class="mono">quantity</td><td class="mono ty">DECIMAL(12,3)</td><td class="ctr"></td><td class="mono df"></td><td>数量</td></tr>
<tr><td class="mono">unit_price</td><td class="mono ty">DECIMAL(16,2)</td><td class="ctr"></td><td class="mono df">0</td><td>单价</td></tr>
<tr><td class="mono">total_price</td><td class="mono ty">DECIMAL(16,2)</td><td class="ctr"></td><td class="mono df">0</td><td></td></tr>
<tr><td class="mono">cost_price</td><td class="mono ty">DECIMAL(16,2)</td><td class="ctr"></td><td class="mono df">0</td><td>进价·单瓶(旧列 unit_price 弃用待删)</td></tr>
<tr><td class="mono">cost_amount</td><td class="mono ty">DECIMAL(16,2)</td><td class="ctr"></td><td class="mono df">0</td><td>总进价=quantity×cost_price(旧列 total_price 弃用待删)</td></tr>
<tr><td class="mono">batch_no</td><td class="mono ty">VARCHAR(50)</td><td class="ctr"></td><td class="mono df">NULL</td><td>批次号</td></tr>
<tr><td class="mono">production_date</td><td class="mono ty">DATE</td><td class="ctr"></td><td class="mono df">NULL</td><td>生产日期</td></tr>
<tr><td class="mono">expire_date</td><td class="mono ty">DATE</td><td class="ctr"></td><td class="mono df">NULL</td><td>有效期</td></tr>
@@ -482,7 +482,8 @@
<tr><td class="mono">reviewer_id</td><td class="mono ty">BIGINT UNSIGNED</td><td class="ctr"></td><td class="mono df">NULL</td><td></td></tr>
<tr><td class="mono">status</td><td class="mono ty">ENUM('draft','pending','approved','rejected')</td><td class="ctr"></td><td class="mono df">draft</td><td></td></tr>
<tr><td class="mono">order_date</td><td class="mono ty">DATE</td><td class="ctr"></td><td class="mono df"></td><td></td></tr>
<tr><td class="mono">total_amount</td><td class="mono ty">DECIMAL(16,2)</td><td class="ctr"></td><td class="mono df">0</td><td></td></tr>
<tr><td class="mono">sale_total</td><td class="mono ty">DECIMAL(16,2)</td><td class="ctr"></td><td class="mono df">0</td><td>应收合计=Σ售价小计(旧列 total_amount 弃用待删)</td></tr>
<tr><td class="mono">profit_total</td><td class="mono ty">DECIMAL(16,2)</td><td class="ctr"></td><td class="mono df">0</td><td>总利润=Σ(售价>0?(售价-成本)×数量:0),建单落库、确认售价/进价联动重算;仅管理员可见(operator 响应抹零)</td></tr>
<tr><td class="mono">reviewed_at</td><td class="mono ty">DATETIME</td><td class="ctr"></td><td class="mono df">NULL</td><td></td></tr>
<tr><td class="mono">custom_fields</td><td class="mono ty">JSON</td><td class="ctr"></td><td class="mono df">NULL</td><td></td></tr>
<tr><td class="mono">remark</td><td class="mono ty">VARCHAR(500)</td><td class="ctr"></td><td class="mono df">NULL</td><td></td></tr>
@@ -494,7 +495,7 @@
</div>
<div class="card" id="stock_out_items">
<h3><code class="tname">stock_out_items</code> <span class="tcomment">出库单明细</span></h3>
<div class="callout danger"><b>当前问题相关:</b>出库行快照 <code>batch_no/production_date</code> 在 App 建单时常为空(选货按 product 聚合、未带批次)。打印回退到 <code>products</code> 主记录——若该 product 也没填,就显示空白,但库存页仍能显示(取自入库明细)。<code>unit_price</code>=成本、<code>sale_price</code>=售价。</div>
<div class="callout danger"><b>当前问题相关:</b>出库行快照 <code>batch_no/production_date</code> 在 App 建单时常为空(选货按 product 聚合、未带批次)。打印回退到 <code>products</code> 主记录——若该 product 也没填,就显示空白,但库存页仍能显示(取自入库明细)。<code>cost_price</code>=成本、<code>sale_price</code>=售价2026-07 已消歧改名)</div>
<table>
<thead><tr><th style="width:23%">列名</th><th style="width:20%">类型</th><th style="width:7%">可空</th><th style="width:16%">默认</th><th>说明</th></tr></thead>
<tbody><tr><td class="mono"><b>id</b> <span class="tag pk">PK</span></td><td class="mono ty">BIGINT UNSIGNED</td><td class="ctr"></td><td class="mono df">AUTO_INC</td><td></td></tr>
@@ -506,9 +507,10 @@
<tr><td class="mono">series</td><td class="mono ty">VARCHAR(100)</td><td class="ctr"></td><td class="mono df">NULL</td><td>系列(历史导入快照)</td></tr>
<tr><td class="mono">spec</td><td class="mono ty">VARCHAR(100)</td><td class="ctr"></td><td class="mono df">NULL</td><td>规格(历史导入快照)</td></tr>
<tr><td class="mono">quantity</td><td class="mono ty">DECIMAL(12,3)</td><td class="ctr"></td><td class="mono df"></td><td></td></tr>
<tr><td class="mono">unit_price</td><td class="mono ty">DECIMAL(16,2)</td><td class="ctr"></td><td class="mono df">0</td><td>成本单价(入库成本快照)</td></tr>
<tr><td class="mono">cost_price</td><td class="mono ty">DECIMAL(16,2)</td><td class="ctr"></td><td class="mono df">0</td><td>成本单价·入库成本快照(旧列 unit_price 弃用待删;仅管理员可见)</td></tr>
<tr><td class="mono">sale_price</td><td class="mono ty">DECIMAL(16,2)</td><td class="ctr"></td><td class="mono df">0</td><td>售价(出库实际销售单价,应收按售价×数量)</td></tr>
<tr><td class="mono">total_price</td><td class="mono ty">DECIMAL(16,2)</td><td class="ctr"></td><td class="mono df">0</td><td>成本小计(unit_price×quantity)</td></tr>
<tr><td class="mono">cost_amount</td><td class="mono ty">DECIMAL(16,2)</td><td class="ctr"></td><td class="mono df">0</td><td>成本小计=quantity×cost_price(旧列弃用待删;仅管理员可见)</td></tr>
<tr><td class="mono">sale_amount</td><td class="mono ty">DECIMAL(16,2)</td><td class="ctr"></td><td class="mono df">0</td><td>售价小计=quantity×sale_price(待定价=0</td></tr>
<tr><td class="mono">batch_no</td><td class="mono ty">VARCHAR(50)</td><td class="ctr"></td><td class="mono df">NULL</td><td>批次号</td></tr>
<tr><td class="mono">production_date</td><td class="mono ty">DATE</td><td class="ctr"></td><td class="mono df">NULL</td><td>生产日期</td></tr>
<tr><td class="mono">custom_fields</td><td class="mono ty">JSON</td><td class="ctr"></td><td class="mono df">NULL</td><td></td></tr>