Bosanska lokalizacija "Odoo" open-source platforme, novi modul l10n_ba_cbbh - Kursna lista Centralna banka BiH


Naš novi Odoo modul l10n_ba_cbbh automatski preuzima dnevni srednji kurs sa zvaničnog endpointa Centralne banke Bosne i Hercegovine i upisuje ga u standardnu Odoo kursnu listu — res.currency.rate. Bez novog modela podataka, sve postojeće Odoo funkcionalnosti (knjiženje faktura, izvodi, izvještaji) automatski pokupe kurs.

Glavne funkcije

1. Dnevno preuzimanje srednjeg kursa sa CBBH

Modul poziva endpoint https://cbbh.ba/CurrencyExchange/GetJson?date=DD/MM/YYYY i parsira polja AlphaCode, Units i Middle iz odgovora. Vrijednost koja se upisuje u Odoo (res.currency.rate.rate) izračunava se kao Units / Middle — broj jedinica strane valute za 1 BAM.

2. Postavke po kompaniji

Pod Postavke → BA CBBH Kursna Lista dvije konfiguracione vrijednosti:

  • Vrijeme dnevnog osvježavanja — kada cron preuzima kurs (default 07:30)
  • Valute — lista AlphaCode-ova razdvojenih zarezom (default USD,EUR)

Postavke modula CBBH kursna lista

3. Cron job

Cron BA: CBBH Kursna Lista (srednji kurs) radi svakih sat vremena. Za svaku kompaniju, kada lokalno vrijeme dosegne konfigurisano cbbh_cron_time i datum posljednjeg preuzimanja nije današnji, modul preuzme srednji kurs sa CBBH-a.

4. Idempotentno upisivanje (bez duplikata)

Upis u res.currency.rate ide kroz upsert po ključu (currency_id, company_id, name=datum): ako red već postoji, samo se ažurira rate; inače se kreira novi. Dodatno, sam Odoo na modelu drži DB constraint unique(name, currency_id, company_id) — duplikati su nemogući i na nivou baze.

5. Manuelno osvježavanje

Dugme Osvježi sada u postavkama pokreće preuzimanje odmah i otvara kursnu listu filtriranu na trenutnu kompaniju i današnji datum, sa kolonama Datum, Valuta, Jedinica po BAM i BAM po jedinici:

CBBH kursna lista nakon osvježavanja

Napomena

Generisano od strane Claude 🤖


Ernad Husremović, hernad@bring.out.ba