Seria Inginerie · Partea 5/6

Odoo Community pentru România, piesă cu piesă

Ce module folosim peste Odoo Community 19 pentru o firmă din România, ce face fiecare, ce licență are și unde scriem noi cod.

Articolul este disponibil doar în limba română.

Baza

Instanța noastră de demonstrație rulează Odoo Community 19 pe PostgreSQL 16. Odoo Community este varianta open-source, sub licența LGPL-3: acoperă vânzări, achiziții, stocuri, producție, facturare, CRM și proiecte, fără licențe pe utilizator. Peste ea punem module întreținute de Odoo Community Association (OCA) și modulele noastre.

Mai jos sunt piesele, grupate după ce rezolvă. Setul exact pentru fiecare firmă se alege la audit, după ce folosește firma de fapt.

Configurarea românească

  • l10n_ro_config instalează și configurează modulele de localizare pentru România și adaugă o pagină dedicată în configurare, de unde se pornesc celelalte module și câmpurile specifice.

Stocuri și contabilitate de gestiune

  • l10n_ro_stock adaugă locațiile și tipurile de transfer cerute de practica românească, inclusiv consumul și darea în folosință, pentru fiecare depozit nou, și tipul de gestiune: magazin sau depozit.
  • l10n_ro_stock_account aduce contabilitatea stocurilor după standardele românești, cu conturi pe locație.
  • l10n_ro_stock_account_landed_cost extinde costurile suplimentare de achiziție (transport, taxe) și asupra mișcărilor de stoc deja rezervate.
  • l10n_ro_stock_account_tracking ține evidența rezervărilor dintre mișcările de stoc pentru produsele evaluate FIFO.
  • l10n_ro_stock_picking_valued_report și l10n_ro_stock_report adaugă documentele de transfer valorice și raportul de stoc cerute de legislația românească.

ANAF

  • l10n_ro_message_spv gestionează mesajele din SPV: descarcă periodic, automat, lista de mesaje pentru facturile primite și trimise și le procesează.
  • l10n_ro_edi_stock_extension corectează și completează modulul oficial din Odoo Community pentru RO e-Transport, ca să respecte specificația ANAF e-Transport v2 (XSD din 26.01.2023, Schematron v2.0.2 din 12.08.2024).
  • l10n_ro_partner_create_by_vat creează partenerii după CUI, cu denumirea și adresa preluate din serviciul web ANAF.

Banca

  • l10n_ro_account_bank_statement_import_mt940_base este parserul comun pentru extrasele MT940. Cum spune chiar documentația modulului, fiecare bancă își interpretează MT940 în felul ei, așa că peste el stau modulele pentru BCR, BRD, ING și Raiffeisen.
  • account_statement_import_file și account_reconcile_oca aduc importul extraselor și reconcilierea lor cu facturile.

Raportare și control

  • account_financial_report: fișa conturilor, balanța, soldurile deschise, vechimea soldurilor pe parteneri, raportul de TVA și registrul jurnal.
  • partner_statement: fișe de cont pentru clienți și furnizori, cu vechimea sumelor restante.
  • report_xlsx: rapoarte în Excel.
  • auditlog: jurnalul operațiilor utilizatorilor, adică creări, citiri, modificări și ștergeri.
  • auto_backup: copii de siguranță programate.

Un flux, de la recepție la plată

  1. Marfa intră în depozit; documentul de recepție valoric iese din l10n_ro_stock_picking_valued_report, iar valoarea stocului se înregistrează după regulile din l10n_ro_stock_account.
  2. Factura furnizorului sosește în SPV; l10n_ro_message_spv o descarcă și o aduce în Odoo Community, unde se leagă de recepție.
  3. Plata apare în extrasul băncii; extrasul se importă cu modulul băncii respective și se reconciliază cu factura prin account_reconcile_oca.
  4. La final de lună, balanța, soldurile pe parteneri și raportul de TVA vin din account_financial_report, iar orice modificare făcută pe drum rămâne în auditlog.

Licențele, pe scurt

Odoo Community este LGPL-3. Dintre modulele de mai sus, două sunt LGPL-3, l10n_ro_edi_stock_extension și account_statement_import_file, iar restul sunt AGPL-3; am verificat licența în manifestul fiecăruia. AGPL are o consecință concretă: dacă modifici un astfel de modul și îl oferi utilizatorilor printr-o rețea, le datorezi codul modificat. Modulele noastre, scrise pentru un anumit client, stau separat. Înainte de a împacheta un produs închis peste aceste module, e nevoie de un jurist, nu de un blog.

Unde scriem noi cod

Acolo unde standardul nu ajunge: fluxuri specifice firmei, rapoarte, legături cu alte programe și teste automate pentru fluxurile sensibile, cum sunt cele de e-Transport. Modulele noastre urmează aceleași convenții ca modulele OCA, ca să poată fi actualizate odată cu restul.

Versiuni și actualizări

Odoo Community are o versiune majoră nouă în fiecare an. Trecerea unei baze de date Odoo Community de la o versiune majoră la alta nu se face singură: este un proiect de migrare, cu testare, pentru care comunitatea OCA întreține proiectul OpenUpgrade. De aceea alegem o versiune pentru fiecare client și planificăm migrarea ca proiect separat, nu ca pe o actualizare obișnuită.

Cum îl găzduim

Fiecare client are propria instanță și propria bază de date, pe servere în UE, cu copii de siguranță și actualizări. Mai multe firme ale aceluiași grup pot sta în aceeași bază; firme diferite, niciodată. Detaliile sunt în articolul despre infrastructură.

Surse

Vrei asta în firma ta?

La auditul digital gratuit ne uităm cum lucrează firma ta acum și îți spunem ce se poate automatiza, cu sau fără AI, și cât costă.