Skip to Content

Odoo(OpenERP)中销售订单的预收款及多次开票的处理

一、常见的销售、收款、发货关系

  1. 收到全款后发货
  2. 预收部分款后发货
  3. 先发货再收款
  4. 分批收款,分批发货

二、具体处理方式

1. 收到全款后发货

在 OpenERP 的 Sales Order 中,将字段 Shipping Policy 选择“Payment Before Delivery”,这意味着先付款再发货。选择该选项后,销售订单确认时,OpenERP 会自动生成与 SO 对应的 Invoice,但不会自动生成与 SO 对应的发货单(Picking List)。当财务人员确认 Invoice 并确认收到该 Invoice 的款项时,系统会自动生成 SO 对应的发货单,此时允许发货。

2. 预收部分款后发货

生成预收票据

在 Sales Order 中,点击“Advance Invoice”按钮,此按钮用于生成预收款票据。选择预收款对应的产品项目(需事先定义一个用于预收款的产品名称,例如“销售预收款”),填入预收金额,系统会自动生成预收票据,并将该票据关联到 SO 上(在 SO 的 History 属性页上显示)。

控制预收款再发货

方法一:将 SO 上的 Shipping Policy 选择“Shipping & Manual Invoice”。这表示 SO 确认时,系统不会自动生成对应的 Invoice,而是需要手动点击按钮“Create Final Invoice”来生成发票。若选择这种方式,在预收款收到前,销售人员不要确认 SO,这样系统就不会自动生成发货单。

方法二:将 Shipping Policy 选择“Payment Before Delivery”。如此一来,如果确认 SO 时,预收款发票尚未支付,则系统不会自动生成发货单,而是要等到确认收到款额时系统才会自动生成发货单。

3. 多次开票的处理

设置 Shipping Policy

将 SO 上的 Shipping Policy 选择“Shipping & Manual Invoice”。

使用“Lines to Invoice”功能

点击 SO 上的按钮“Create Final Invoice”,系统会自动一次性生成 SO 的余额的发票,但不允许拆分金额多次开票。系统提供了“Lines to Invoice”的功能,该功能会列出所有已确认但未开票的 SO 明细行,允许对每一个明细行开票,并将明细行的发票自动关联到 SO 上。

特殊情况处理

如果一张发票对应多个 SO,或者对 SO 上的一个明细行开多张发票,必须在 Account 的 Invoice 界面上手工新建发票,且该发票不能与 SO 关联起来。建议严格基于 SO 开发票,摒弃根据收款额开销售发票的习惯。

4. 收款和发票的关系

建议开票严格基于 SO,但收款不必严格基于 SO。具体如下:

  • 一个 SO 可以多次开票,但开票的最小单位是 SO 上的一个明细行。
  • 不允许一张发票包含多个 SO 的内容。
  • 一笔收款可以对应到多张发票(核销多张发票)。

Odoo(OpenERP)中销售订单的预收款及多次开票的处理
6776, Administrator February 25, 2011
Tags
Archive