# Stock account move reset to draft

This module allows a vendor bill to be reverted to draft status even when an SVL (Stock Valuation Layer) record is created due to a price difference between the receipt and the vendor bill, when inventory from the receipt has yet to be consumed. When a vendor bill is reset to draft, as applicable, a new SVL record is generated to offset the valuation difference that was generated upon the bill’s confirmation.

Table of contents

- Use Cases / Context
- Usage
- Bug Tracker
- Credits
  - Authors
  - Contributors
  - Maintainers

## Use Cases / Context

Typically, when a purchase invoice is created at a price different from the price at which the SVLs of the incoming picking were initially created and confirmed, SVLs are generated to account for the price difference. Once this happens, the invoice cannot normally be reverted to draft due to stock_account restrictions.

Imagine international business settings where exchange rates are updated daily; this limitation can be problematic. For example, if goods are received on April 17th and the vendor bill is processed on April 18th with a different exchange rate, an SVL record is generated, locking the vendor bill. If a user then realizes a mistake, such as processing the bill for the incorrect purchase order, they are unable to cancel it.

## Usage

1. Create a product category with Costing Method: Average Cost (AVCO) or First In First Out (FIFO).
2. Create a product linked to the category created before.
3. Create a purchase order and adds a product line with quantity 1 and price 10.
4. Confirms the purchase order and validates the incoming picking.
5. Creates an invoice from the purchase order.
6. Changes the invoice line price to 12 and confirm the invoice.
7. It is possible to reset the invoice to draft (a new SVL record to offset the existing SVL difference will be created).

When attempting to reset an invoice to draft for a product that has been partially or fully consumed, the system will display the following error message: “The inventory has already been (partially) consumed.” In that case, consider using landed costs to adjust the valuation of the product as necessary.

## Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

## Credits

### Authors

- Tecnativa

### Contributors

- Tecnativa:
  - Víctor Martínez
  - Pedro M. Baeza
- `Quartile <https://www.quartile.co>`_:
  - Yoshi Tashiro
  - Aung Ko Ko Lin

### Maintainers

This module is maintained by the OCA.

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainer:

This module is part of the OCA/account-invoicing project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.