OdooWiki OCA HUB

Romania - Payment to Statement

l10n_ro_payment_to_statement folder_open OCA/l10n-romania open_in_new
Accounting License: AGPL-3

Keeps the cash register (registru de casa) of a cash journal.

Every payment posted in a cash journal set to keep a register is added to the register of its day, which is opened when it does not exist yet.

The payment and its register line are two entries: the payment moves the money to the account of its payment method (4111 = 581), the line of the register brings it into the cash account (5311 = 581), and the module reconciles the two with each other. So the line never has to be reconciled by hand, and the register shows the cash as it moves.

The module also numbers the documents of a cash journal with sequences of its own, instead of letting Odoo build the numbers: receipt (chitanta), cash in and cash out slips (dispozitie de incasare / de plata) and the register itself.

A sequence can be set on any other journal as well, in Journal sequence, and the entries of that journal are then numbered from it: the invoices of a sale journal, the bills of a purchase one, the entries of a miscellaneous one.

auto_awesome What this module does

AI-generated from the code · Odoo 20.0

Keeps the Romanian cash register (registru de casă) of a cash journal: every posted cash payment is automatically added to the register of its day and reconciled, and cash documents get their own Romanian numbers.

This module turns a Romanian cash journal into a proper cash register. On the journal form you get new fields: a sequence for the register itself, a sequence for other cash entries, and separate sequences for cash in slips, cash out slips and customer receipts. When a Romanian cash journal is created, these sequences are generated automatically with prefixes like RC, DI, DP and CH, and the automatic register option is switched on by default.

When a payment is posted in such a cash journal, the module checks that the payment method has its own outstanding account, different from the cash account; otherwise it stops with an error. It then creates a line in the cash register of the payment's date, opening that register if it does not exist yet, and reconciles the payment with that line so nothing has to be matched by hand. The payment form shows the register and the register line it belongs to.

If a payment is cancelled, reset to draft or its date changes, the register line is removed or moved to the register of the new day. A posted cash payment that already used a number cannot be deleted.

Cash entries and cash in/out slips made directly in the register are numbered from the matching Romanian sequence, and the register itself takes its name from its own sequence (or the date when none is set).

Depends on

Required by other modules

Models and fields (5)
  • account.move · new model
  • account.journal · new modell10n_ro_auto_statement (Romania - Auto Statement), l10n_ro_cash_in_sequence_id (Romania - Sequence cash in), l10n_ro_journal_sequence_id (Romania - Sequence Journal), l10n_ro_cash_out_sequence_id (Romania - Sequence cash out), l10n_ro_statement_sequence_id (Romania - Statement Sequence), l10n_ro_customer_cash_in_sequence_id (Romania - Customer sequence cash in)
  • account.payment · new modell10n_ro_statement_id (Romania - Statement), l10n_ro_statement_line_id (Statement Line)
  • account.bank.statement · new model
  • account.bank.statement.line · new modelis_l10n_ro_payment_disposal

Text generated by AI (DeepSeek) from reading the Odoo 20.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 7 confirmed, 2 with no information of 9 versions.

Sources · Odoo 20.0

Confirmed on 2026-11-03 in branch 20.0 of OCA/l10n-romania.

terminal Installation and usage

OCA documentation · Odoo 20.0

The sequence of a journal

Journal sequence can be set on any journal, not only on a cash one. The entries of that journal then take their number from it, instead of from the numbering Odoo builds itself:

  • a sale journal numbers its invoices from it (FCT/00001)
  • a purchase journal numbers its bills
  • a miscellaneous journal numbers its entries (NC/00001)
  • a cash journal numbers the supplier payments and everything which is neither a receipt nor a slip, see the table below

The number is taken when the entry is posted: a draft has none yet, and a draft which is discarded leaves no gap behind. Set Implementation to No gap on the sequence if the numbering has to be without holes.

The cash journal

A cash journal of a romanian company is set up when it is created:

  • it is given the sequences of its documents, named after the code of the journal: | sequence | suffix | numbers | | --- | --- | --- | | Customer sequence cash in | CH | customer payments (chitanta) | | Cash in sequence | DI | money in from a supplier (dispozitie de incasare) | | Cash out sequence | DP | money out to a customer (dispozitie de plata) | | Statement sequence | RC | the register itself (registru de casa) | | Journal sequence | none | supplier payments and the other entries |
  • Romania - Auto Statement is ticked, which is what makes the journal keep a register. Untick it on a journal which should not have one, or create the journal with it set to false.

The sequences can be replaced afterwards with sequences of your own; the module only fills in the ones which are empty.

The account of the payment method

A cash journal which keeps a register needs an outstanding account on its payment methods (Incoming/Outgoing Payments), other than the cash account of the journal. That account is what the register line brings the money in from:

| entry | debit | credit | | --- | --- | --- | | the payment (receipt) | outstanding 581 | receivable 4111 | | the line of the register | cash 5311 | outstanding 581 |

The module reconciles the two 581 lines with each other, so nothing is left to match by hand and the line does not show up in the bank reconciliation screen.

Posting a payment is refused when that account is missing, or when it is the cash account of the journal itself: the register line would then move the money from the cash account into the cash account, which is no movement at all. The message says which account to set.

Registering a payment

Post a payment in a cash journal which keeps a register, from the payment itself or from the Register Payment button of an invoice. The payment takes its number from the sequence of its kind, and the register of the day gets a line for it, reconciled with the payment.

The line is already reconciled, so it does not show up in the bank reconciliation screen, and the balance of the register follows the payments of the day.

Cancelling a payment, or setting it back to draft, takes its register line away with it; posting it again makes a new one. A payment posted again with the same amount on another day moves to the register of that day, unless it is alone in its own register, which then simply follows it.

Cash in and cash out slips

A line made straight in the register, without a payment behind it, joins the register of its day too.

The balance of the register

The module computes the balance of the register from its lines. The Ending Balance is left to whoever counts the money: the module never writes it.

No verified information in OCA: Installation.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.