火锅店财务出纳:供应商月结对账小工具——让编码代理做一个单文件页面,送货单、退货单、赠品跟账单碰头算清该付哪笔
你是一个编码代理。请为我做一个单文件 HTML 的「供应商月结对账」
工具,给火锅店出纳用,浏览器双击打开即用,不联网、不装依赖、
不引任何外部资源(字体、图标、CSS 框架都不要)。
一、使用流程(按这个做,不要自己发明流程)
1. 出纳新建一个对账单:选供应商名称、账期区间(起止日期)
2. 录入「我方记录」:从验收单汇总粘贴——每行 品项 / 数量 /
单价 / 单位;支持逐行录入和粘贴文本两种方式,粘贴时按
制表符或逗号拆列,拆不了的行进「未识别」区让人工确认,
不要静默丢弃
3. 录入「供应商账单」:同样结构
4. 点「对账」,按品项名 + 单位匹配两边记录,输出逐行碰头结果
二、行分类(每行必须落进且只落进一类)
1. 一致:品项、数量、单价两边都对上——合计进「确认应付」
2. 数量差:同品项同单价,数量不一致——显示差额与差量,等
出纳人工核对验收单后点「以我方为准 / 以对方为准」
3. 单价变动:同品项,单价不一致——显示两边单价与价差、该
品项本期总量、影响金额;出纳确认「认调价 / 待谈」
4. 单边行:我方有对方没有(多为退货漏冲减)、对方有我方没有
(多为赠品被计价或我方验收单遗失)——逐行标记,附
「退货冲减 / 赠品 / 补验收单 / 待谈」四个归因选项
三、结算口径
- 页面常显三个数:确认应付(一致行合计 + 出纳已「认」的
调价行)、待定金额(所有未裁决行绝对值合计)、本月建议
付款额 = 确认应付
- 裁决三态:认 / 不认 / 待谈。全部行裁决完才允许「导出对账
确认单」,导出前如有「待谈」行,弹窗列出提醒但不阻止
四、数据与导出
- 所有数据存 localStorage;一个供应商一个对账单,可切换、
可删除(删前确认框)
- 导出两样:对账确认单(CSV:品项 / 我方数量 / 对方数量 /
单价 / 裁决 / 归因),以及差异明细(只含未一致行,供回给
供应商核对用)
- 清空浏览器数据会丢全部记录——导出按钮旁边放一行常驻提示
五、防错
- 品项匹配先精确匹配,匹配不上的再做去空格、大小写、常见
单位别名(斤/公斤、箱/件)的宽松匹配;宽松匹配成功的行
标「模糊匹配」,提示出纳核对品名是否同一货
- 同一品项出现多行(分批送货)先按行合并数量再比,不合
并直接比会误报
- 不做任何合计的隐藏修正——差一分钱也原样显示,四舍五入
只显示层做,计算层保留原值
界面:单栏,桌面优先(出纳在办公室用),对账结果表支持按
分类筛选。交付一个完整 HTML 文件,内联全部 CSS 与 JS,附
两百字以内的中文使用说明。
为什么这样写
对账工具最容易做错的事是替人裁决。送货单和账单对不上时,「差在哪」是机械问题,软件算得又快又准;「认不认」是商务问题——那批退货供应商认不认、那次调价要不要翻旧账,出纳说了不算,要谈。所以这个工具把算和判彻底分开:机械部分全自动,裁决部分一行一个三态开关,谁也不能越过谁。很多对账工具死在「自动按我方为准」这个功能上——它把谈判筹码在导出报表里静默放弃了。
四类行分类是按真实差异的成因设计的:一致、数量差、调价、单边。尤其「单边行」单独拎出来,是因为它藏着两种方向相反的错误——我方有对方没有,多半是退货漏冲(对己有利,不追就白亏);对方有我方没有,多半是赠品被计价(对己不利,不查就白付)。两类混在「差异」一个大筐里,人的注意力会自然滑向金额大的那半,方向相反的另一半被漏掉。
「本月建议付款额 = 确认应付」是一个立场声明:建议付的不是供应商账单数,也不是我方记录数,而是双方都没有争议的部分。先按无争议额付款、争议行挂账单后谈,是月结谈判里出纳手里最稳的一张牌——一次全额拒付会把所有差异变成对抗,一次全额照付则等于放弃全部核查。
品项匹配允许「模糊匹配」但必须亮明身份,是踩过坑的设计:供应商账单上的品名永远不会和验收单写法一致(「鲜毛肚」和「毛肚(鲜)」),纯精确匹配的工具等于不可用;但静默的模糊匹配迟早把两种货并成一行——鲜鸭血和鸭血血坯价差一倍。模糊匹配可以存在,但每一行都要挂着牌子等人核对,这是自动化在数据脏的环节该守的本分。
变量
| 变量 | 说明 |
|---|---|
| 宽松匹配的别名表 | 斤/公斤、箱/件等换算关系——每家供应商计重口径不同,第一次对账时逐个补全,之后就一直准 |
| 付款口径 | 工具默认「建议付款额 = 确认应付」;如果门店惯例是整单谈完再付,把这条改在导出确认单的表头写明,避免两边各自理解 |