ERPNext 学习笔记:采购退货以后,库存和发票别各走各的

前几天把采购收货里短收和超收的情况理了一遍,今天接着往后走了一步:如果货已经收进来了,后来发现质量问题要退给供应商,库存和发票应该怎么处理。这个场景比单纯改数量麻烦,因为货是真的退走了,钱也真的不能照原样付。

我用一张测试单把流程走了一遍,才发现采购退货在 ERPNext 里不是一张单能解决的事。库存要退,应付也要冲,两边有关联,但谁也不能代替谁。

先把场景摆清楚

假设采购订单下了 10 件,仓库实收 10 件,供应商发票也已经入账。过了两天,质检发现其中 2 件有瑕疵,和供应商确认后退回。这个时候,原来的采购订单、收货单和发票都已经提交,不能为了结果好看回去改数量。

我一开始盯着那张收货单想了半天,后来提醒自己:已经提交的单据是当时的业务凭证,后面发生退货,就应该新增一张退货单,而不是把原来的记录抹掉。

库存先从退货单走出去

ERPNext 里做采购收货退回时,可以从采购收货单创建退货,或者新建采购收货单后把退货选项打开。具体入口不同版本会有些差别,但要点是一样的:关联原来的采购收货单,选对物料、数量和仓库。

这次我退 2 件,就老老实实填 2 件。批次或序列号能选的也要和实物对应,不能只图快按物料编号退掉。提交之后,库存数量会减少,库存账里也能看到和生产入库相反的那条记录。

这里有个前提:退货之前先确认仓库里确实还有这批货,而且没有被其他单据占用。如果货已经发出或者数量对不上,应该先查库存,不要靠负库存把流程硬推过去。

发票不能删,得做一笔冲回

库存退掉以后,供应商那边如果已经开票,应付账款不会自动消失。我的测试单里,这一步要另外创建采购发票的退货或借项通知,关联原发票,按退回的数量和金额冲回。具体叫法看版本和设置,但业务含义都是“这张票要减掉一部分”。

我没有直接修改原来的采购发票。原票保留,退货产生的负数记录挂在后面,这样以后查账时能看到完整的来龙去脉。供应商如果重新开票,也应该作为新的凭证处理,而不是把旧票覆盖掉。

还有一种容易被混在一起的情况:供应商只是同意退一部分货款,或者补发损坏的配件,但货并不退回。这就属于金额调整或补货,不该随手开一张库存退货单。先分清“货退不退”和“钱退不退”,后面的单才不容易做错。

我会核对的三处

第一是库存。退货前后的结存要对得上,退货日期、仓库和批次不能选错;如果退货日期跨了月末,库存估值也可能跟着变,我不能为了补一张旧单随便倒填日期。

第二是单据关联。我会从采购收货单点进退货记录,再从采购发票点进冲回记录,确认原单和退货单都能互相找到。只看到库存少了,却没看到对应的应付变化,这单就不算走完。

第三是供应商应付。回到供应商往来里看未付金额有没有从原数减下来,和供应商的对账单能不能对上。数量、税额、运费如果其中一项没冲干净,下个月付款时还会再冒出来。

今天的小结

采购退货不是“把入库数量改掉”这么简单,它是两件同时发生的事:仓库把实物退出去,财务把应付冲回来。两张单要互相呼应,但各自保留自己的记录。

我现在会在退货前先问三个问题:货到底退不退,原发票有没有入账,退货日期会不会影响当期库存和账务。这三个问题答清楚,ERPNext 里该选的单据基本也就定了。下次准备拿一张带运费和税额分摊的退货单再试一遍,看看部分冲回时还有哪些地方容易漏。