Sari la conținut

Contabilitatea primară: localizarea românească open source

Odoo Community AssociationNextERP Romania

Marketing

Software liber, într-un repository public

Acesta e stratul la care se referă majoritatea oamenilor când spun „localizarea românească". Se află în repository-ul public l10n-romania al Odoo Community Association, are 43 de module pe Odoo 19 și e software liber, pe care oricine îl poate citi, folosi și completa.

Acoperă munca pe care un contabil o atinge în fiecare zi: taxele, gestiunea, documentele primare care trebuie să iasă pe hârtie și banca. E diferența dintre un Odoo corect tehnic și un Odoo în care un contabil român chiar poate lucra.

Închide chiar și conturile de venituri, cheltuieli și TVA la final de lună. Ce nu acoperă e restul închiderii — stornarea în roșu, reevaluarea valutară, mijloacele fixe — plus registrele tipizate și declarațiile ANAF, care stau în stratul de deasupra.

NextERP RomaniaOdoo Community Association

Contribuția NextERP la localizarea OCA

73%

din codul sursă din repository

32

din cele 43 de module create de noi

2015

primul nostru modul, pe Odoo 8.0

Branch-ul pentru Odoo 20 s-a deschis pe 30 septembrie 2026 și e încă gol. Din cele 43 de module, 28 au deja un pull request de migrare în așteptare, toate ale noastre.

Taxe și închidere

Regulile fiscale românești pe care motorul contabil generic nu le cunoaște.


TVA la încasare, cu conturile de TVA neexigibil

Deductibilitate dată de momentul încasării

TVA nedeductibil, total sau parțial

Închiderea conturilor de venituri și cheltuieli

Închiderea de TVA și nota de regularizare

Limitarea plăților în numerar conform legii

Gestiunea cantitativ-valorică

Stoc ținut și cantitativ și valoric, așa cum cere contabilitatea românească.


FIFO și media ponderată pe regulile românești

Dată contabilă separată de data livrării

Recepții în curs, pentru marfa nefacturată

Costuri la recepție repartizate pe costul mărfii

Diferențe de preț față de factura furnizorului

Fișa de magazie

Documente primare

Hârtiile pe care o firmă din România trebuie să le producă și să le păstreze.


Nota de intrare-recepție, standard și de amănunt

Aviz de însoțire valorizat

Mențiuni obligatorii pe documentele de livrare

Factura în format românesc

Chitanța și documentul de încasare

Registrul de casă al unui jurnal de numerar

Bancă și trezorerie

Extrase intrate, reconciliate, cu cursul valutar sub control.


Import MT940 pentru BCR și BRD

Import MT940 pentru ING și Raiffeisen

Import MT940 pentru Eximbank și Alpha Bank

Un motor MT940 comun la care se pot lega alte bănci

Raport de extras de cont

Curs valutar editabil pe factură

Parteneri, vamă și casa de marcat

Tot ce atinge datele de la ANAF sau partea de magazin.


Parteneri creați direct din codul fiscal

Date de firmă preluate de la ANAF

Validarea stării fiscale după listele ANAF

Cod fiscal și număr de registru unice

Declarația vamală, cu taxele pe costul mărfii

Mesaje preluate din SPV-ul ANAF

Localități și date poștale românești

Amănunt și casa de marcat

Gestiunea cu amănuntul din România nu are echivalent nicăieri altundeva în Odoo. Marfa se ține la preț de raft, cu adaosul și TVA-ul neexigibil în conturi separate, iar fiecare schimbare de preț trebuie să lase un document în urmă. Șase module o acoperă și sunt în întregime munca noastră.

Marfa la preț de vânzare

Contul 371 la preț de raft, cu 378 pentru adaos și 4428 pentru TVA neexigibilă.


Adaosul și TVA neexigibilă separate automat la fiecare înregistrare

Costuri la recepție care cresc costul fără să miște prețul de raft

Ce face o diferență de factură asupra adaosului, arătat înainte de validare

Adaosul recalculat când se schimbă prețul de vânzare

Documente și rapoarte

Hârtiile pe care un magazin trebuie să le producă, în formatul pe care îl cere un control.


Proces-verbal de schimbare de preț, cu tot istoricul în spate

NIR cu coloane de cost, adaos și TVA neexigibilă

Raport de stoc cu amănuntul, pe magazin

Adaos și TVA neexigibilă pe stocul din fiecare magazin

Punct de vânzare

Casa de marcat, legată de același stoc și aceleași conturi.


Bon fiscal emis din punctul de vânzare Odoo

Stornări care produc notă de credit și dispoziție de plată

Client identificat după CUI, preluat de la ANAF direct la casă

Mai multe sesiuni ținute deschise pe o casă, închise în ordine

Open source și în afara OCA

Nu tot ce publicăm deschis ajunge în repository-ul OCA. O parte din munca noastră repară chiar modulele românești ale Odoo — e-Factura și e-Transport — și se află în repository-ul nostru public, NextERP-Romania/odoo-community, sub aceleași licențe libere. Poți să-l citești, să-l folosești și să-l copiezi fără să fii clientul nostru.

e-Factura, extinsă

Extensii la modulul de e-Factura al Odoo, publicate sub LGPL-3.


Facturi trimise în SPV de un job programat, nu manual

Facturi de la furnizori preluate din SPV și create în Odoo

Câmpuri de text trunchiate la limitele CIUS-RO, ca ANAF să nu mai respingă

Descrieri lungi și note de linie scrise corect în XML

Utilizatori anume notificați când o transmitere eșuează

e-Transport, extins

Aliniat la specificația ANAF eTransport v2.0.2, sub LGPL-3.


Valoarea fără TVA calculată pe sensul operațiunii

Cantitate și unitate de măsură convertite consecvent

Greutatea brută nu se mai dublează la colete cu mai multe linii

Codul tarifar NC8 obligatoriu, în loc de o valoare implicită de zerouri

Aceleași verificări aplicate transferurilor în lot

Declarare întârziată după o indisponibilitate ANAF, conform OUG 41/2022

Trezorerie și restul

Alte module din același repository public, sub AGPL-3.


Linii de extras atașate automat la extrasul zilei

Util când MT940, CAMT.053 sau OCR aduc linii fără extras

Aplicat doar firmelor românești dintr-o bază multi-companie

Încă opt module open source dincolo de localizare

Punct de vânzare, inventar, excepții pe achiziții, costuri auto

Modul cu modul

Fiecare modul din repository, versiunea de Odoo în care a apărut prima dată, ziua primului commit și cine a scris codul sursă care se află azi în el. Cele mai vechi dintre ele datează din 2015 și din Odoo 8.0. Traducerile și fișierele generate sunt lăsate deoparte; acestea sunt linii de cod. Dincolo de cod, scriem și întreținem și traducerea românească a acestor module și documentația livrată cu ele.

Toate sunt publicate sub egida Odoo Community Association: fiecare dintre cele 43 de module are OCA printre autorii declarați, iar 39 dintre ele îl au și pe NextERP Romania. Autoratul e, prin urmare, comun prin construcție — tabelul de mai jos spune cine a scris codul dinăuntru.

ModulDinÎnceputLiniiNextERPTerrabitQDevDakai SoftIndependenți
l10n_ro_siruta8.02015-12-04retras după 15.0–––––
l10n_ro_config8.02015-12-061 87269%17%14%––
l10n_ro_vat_on_payment8.02016-01-1387192%8%–––
l10n_ro_partner_unique8.02016-05-0626246%54%–––
l10n_ro_partner_create_by_vat8.02016-05-081 30872%26%––2%
l10n_ro_account_bank_statement_import_mt940_brd8.02016-06-2148046%54%–––
l10n_ro_hr11.02017-11-26retras după 11.0–––––
l10n_ro_hr_contract11.02017-11-26retras după 11.0–––––
l10n_ro_hr_medical_holidays11.02017-11-26retras după 11.0–––––
l10n_ro_fiscal_validation11.02018-01-29241100%<1%–––
l10n_ro_report_D30011.02018-02-22retras după 11.0–––––
l10n_ro_account_period_close11.02018-02-2582781%18%–1%–
l10n_ro_address_extended11.02018-02-25retras după 15.0–––––
l10n_ro_report_trial_balance11.02018-03-21retras după 11.0–––––
l10n_ro_stock11.02019-12-0842165%35%–––
l10n_ro_hr_payroll11.02020-04-23retras după 11.0–––––
l10n_ro_account_report_invoice13.02020-07-0625894%6%–<1%–
l10n_ro_dvi13.02020-08-191 55978%15%–7%–
l10n_ro_city13.02020-09-022929%84%<1%–7%
l10n_ro_partner_statement13.02020-09-23retras după 13.0–––––
l10n_ro_stock_account13.02020-10-036 09161%34%–1%4%
l10n_ro_payment_to_statement14.02021-03-231 42990%9%–1%–
l10n_ro_stock_report13.02021-04-191 88543%56%–1%<1%
l10n_ro_nondeductible_vat14.02022-01-092 018100%<1%–––
l10n_ro_payment_receipt_report14.02022-01-0950598%2%–<1%–
l10n_ro_account_edit_currency_rate14.02022-04-28188100%––––
l10n_ro_stock_price_difference14.02022-06-081 02380%20%–<1%–
l10n_ro_stock_account_notice14.02022-07-22retras după 18.0–––––
l10n_ro_stock_account_date14.02022-07-2343491%9%–––
l10n_ro_stock_account_date_wizard14.02022-07-2318994%2%–3%1%
l10n_ro_stock_picking_comment_template14.02022-07-2449799%1%–<1%–
l10n_ro_edi_ubl13.02022-07-28retras după 13.0–––––
l10n_ro_stock_picking_valued_report14.02022-08-0174281%19%–<1%–
l10n_ro_account_anaf_sync14.02022-09-18retras după 17.0–––––
l10n_ro_account_bank_statement_report14.02022-09-24760100%<1%–––
l10n_ro_account_edi_ubl14.02022-10-06retras după 16.0–––––
l10n_ro_account_bank_statement_import_mt940_base14.02022-11-0579284%16%–––
l10n_ro_account_bank_statement_import_mt940_bcr14.02022-11-0550448%52%–––
l10n_ro_account_bank_statement_import_mt940_ing14.02022-11-0566477%23%–––
l10n_ro_account_bank_statement_import_mt940_alpha14.02022-11-1932199%1%–––
l10n_ro_stock_account_reception_in_progress14.02022-11-2626173%7%––20%
l10n_ro_account_bank_statement_import_mt940_rffsn14.02022-12-0755738%62%–––
l10n_ro_stock_account_mrp14.02022-12-21retras după 16.0–––––
l10n_ro_pos15.02023-08-1566621%79%––<1%
l10n_ro_account15.02023-08-183251%99%–––
l10n_ro_stock_account_tracing14.02023-08-25retras după 14.0–––––
l10n_ro_etransport16.02024-03-15retras după 17.0–––––
l10n_ro_stock_account_landed_cost16.02024-04-2288284%16%–––
l10n_ro_stock_account_tracking16.02024-04-2236490%10%–––
l10n_ro_message_spv15.02024-06-123 6851%99%–<1%<1%
l10n_ro_account_bank_statement_import_mt940_exim17.02026-05-1253832%68%–––
l10n_ro_account_bank_statement_import_mt940_bt17.02026-05-12retras după 17.0–––––
l10n_ro_stock_account_retail19.02026-09-074 620100%––––
l10n_ro_stock_account_retail_landed_cost19.02026-09-07491100%––––
l10n_ro_stock_account_retail_picking_report19.02026-09-07419100%––––
l10n_ro_stock_account_retail_price_change19.02026-09-073 267100%––––
l10n_ro_stock_account_retail_price_difference19.02026-09-07201100%––––
l10n_ro_stock_account_retail_report19.02026-09-071 207100%––––
l10n_ro_pos_refund19.02026-09-13845100%––––
l10n_ro_pos_partner19.02026-09-15370100%––––
Total (43 active, 17 retrase)8.02015-12-0445 13173%26%<1%<1%1%

Rândurile estompate sunt module care au existat și au fost retrase, pentru că funcționalitatea a ajuns în Odoo standard sau a fost preluată de alt modul; ele nu mai au cod pe 19.0, deci nu au procente. Procentele sunt rotunjite astfel încât fiecare rând să însumeze exact 100. O linie se contabilizează la cel care a scris-o prima dată, nu la cel care a migrat-o ultima dată. Acolo unde o migrare a rescris un fișier fără să-i poarte istoricul, atribuirea e recuperată potrivind textul cu toate versiunile anterioare ale aceluiași modul.

Un efort comun și de ce contează cine o întreține

Localizarea românească se construiește la vedere, de mai multe firme care lucrează în același repository și își revizuiesc reciproc modificările. Terrabit, QDev Web Labs și Dakai Soft contribuie alături de noi, împreună cu câțiva dezvoltatori independenți, iar unele module sunt în întregime ale lor. Revizuirea asta e parte din motivul pentru care codul e de încredere.

Fiecare versiune nouă de Odoo, și apare una pe an, înseamnă că toate aceste module trebuie migrate, testate și repuse în funcțiune. O firmă care doar folosește localizarea așteaptă pe altcineva să facă asta. O firmă care o scrie poate migra când are nevoie și poate repara o problemă în ziua în care apare.

Asta e diferența practică pentru clienții noștri: migrările nu stau pe loc, iar problemele se rezolvă la sursă în loc să devină ciudățenii cu care înveți să trăiești. Solicită o consultație gratuită.

Nouă versiuni, iar a zecea în lucru

Fiecare versiune anuală de Odoo înseamnă că modulele existente trebuie migrate, testate și repuse în funcțiune — iar unele versiuni aduc și module care nu existau înainte. Ambele coloane numără module de pe branch, nu pull request-uri.

Un modul e considerat nou în versiunea pe care a aterizat primul lui commit, nu acolo unde apare prima dată în arbore: patru module au fost scrise pe 15.0 și 16.0 și aduse ulterior înapoi pe 14.0.

Versiune OdooDe migratMigrate de NextERPModule noiScrise de NextERP
8.0––66 din 6 · 100%
11.066 din 6 · 100%109 din 10 · 90%
13.099 din 9 · 100%71 din 7 · 14%
14.01914 din 19 · 74%2118 din 21 · 86%
15.03630 din 36 · 83%30 din 3 · 0%
16.03617 din 36 · 47%30 din 3 · 0%
17.03716 din 37 · 43%22 din 2 · 100%
18.03418 din 34 · 53%––
19.03515 din 35 · 43%88 din 8 · 100%
20.0 *4328 din 43 · 65%––
Total255153 din 255 · 60%6044 din 60 · 73%

Rândul marcat cu asterisc e încă deschis: acele pull request-uri așteaptă revizuire, nu sunt integrate. Versiunile 9.0, 10.0 și 12.0 n-au avut niciodată module românești.