This module provides Romanian-specific stock accounting features that
align with Romanian accounting standards and regulations. Below are the
configuration options available.
Per-location FIFO
For products with cost_method=fifo, the module values outgoing moves
against the FIFO stack of the source location rather than the
company-wide stack. Each outgoing move is automatically split into one
stock.move per FIFO layer (e.g. an outgoing of 4 units from a
location with IN 2@10 + IN 3@8 produces a 2x10 move + a
2x8 move).
Internal transfers (internal → internal or via transit) are treated
as both is_in and is_out on the same move:
- they consume from the FIFO stack of the source location,
- they enter the FIFO stack of the destination location with the value
pulled from the source,
- they generate an accounting entry through the location’s valuation
account (or the company-level transfer account if locations share an
account).
Controlled by res.company.fifo_per_location (defaults to True
for Romanian companies, computed from country_id, editable per
company).
Negative stock compensation
When a FIFO outgoing move happens before the corresponding incoming move
(i.e. the location FIFO stack is empty), the outgoing value falls back
to the product’s standard_price. The pending quantity is tracked on
the outgoing move via fifo_neg_pending_qty /
fifo_neg_origin_value.
When the next matching incoming move is posted, the module:
- allocates the new incoming value across pending outgoing moves
(FIFO);
- updates stock.move.value on the outgoing moves to reflect the
real purchase price;
- emits an account.move correction that debits the variation/COGS
account and credits the stock valuation account for the delta;
- links that correction back to the originating IN move via
account.move.fifo_neg_origin_move_id for traceability.
Compensation is idempotent — if _set_value is re-invoked on the same
IN move (e.g. when the supplier invoice is posted), the existing
compensation is detected and not duplicated.
Controlled by res.company.fifo_location_negative_compensation
(defaults to True for Romanian companies, editable per company).
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 maintainers:

This module is part of the OCA/l10n-romania project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.