Bosanska lokalizacija Odoo: Modul account_payment_partner_saldo — Saldo tab i automatsko ispravljanje prelaznog konta banke


Problem: tihe rupe na prelaznom kontu banke

U FBiH kontnom planu konto 20091 Prelazni račun banke služi kao “parking” za uplate koje uvoz bankovnog izvoda ne uspije automatski poravnati sa otvorenom fakturom. Ideja je da računovođa kasnije ručno ispravi tu uplatu — prebaci je sa prelaznog konta na konto partnera (kupci 2110 ili dobavljači 4320).

Praksa, međutim, izgleda drugačije. Bez dodatnog alata, ovakve transakcije se gubi u šumi:

  • partner u glavnoj knjizi (2110) izgleda bez salda jer mu nikad nije ni knjižena uplata,
  • novac je legao na 20091 ali se u standardnom widgetu za poravnanje uopšte ne pojavljuje,
  • mjesecima se kumulira “skriveni” saldo na prelaznom kontu koji niko ne primjećuje sve dok se ne pojavi pri zatvaranju godine.

Konkretan slučaj iz produkcije: kupac Rudnik Abid Lolić Nova Bila uplaćuje 386,10 KM unaprijed za tri buduće mjesečne fakture. Bankovni uvoz ne nađe podudaranje (jer fakture još ne postoje), uplata padne na 20091, knjiga 2110 ostane mirna na nuli. Rezultat: računovođa otvori OCA widget za poravnanje, filtrira po partneru — i ne vidi nijednog kandidata, iako “tehnički” postoji otvorena uplata.

Rješenje: modul account_payment_partner_saldo

Modul dodaje Saldo tab na dva mjesta:

  1. forma account.payment (plaćanja kupaca, plaćanja dobavljačima),
  2. OCA account_reconcile_oca widget za poravnanje bankovnih izvoda.

U oba slučaja Saldo tab pokazuje:

  • AR/AP saldo partnera na njegovom prirodnom kontu (kupci ili dobavljači),
  • Prelazni konto saldo — saldo istog partnera na bilo kojem drugom reconcile-enabled kontu (uključujući 20091),
  • Konto partnera koji se čita iz partnerove konfiguracije (property_account_receivable_id / property_account_payable_id),
  • listu otvorenih stavki partnera kroz sve reconcile kontove sa sumama duguje / potražuje / preostali iznos.

Drugim riječima, na jednoj stranici računovođa odmah vidi: “kupac ima 0,00 na 2110, ali -386,10 KM na 20091” — što je rana indikacija da nešto nije proknjiženo gdje treba.

”Ispravi prelazni konto u konto partnera” — jedan klik

Kada AR/AP saldo iznosi 0,00 a saldo prelaznog konta nije nula, modul aktivira dugme “Ispravi prelazni konto u konto partnera” (boja btn-primary). Klikom se pokreće sljedeća logika:

  1. pronađu se sve otvorene linije partnera na prelaznom kontu (neAR/AP, ali reconcile=True),
  2. svaki izvorni nalog koji ih sadrži se resetuje na pripremu,
  3. linije se prepisuju — account_id se mijenja iz 20091 u konto partnera (2110 za kupce, 4320 ili sl. za dobavljače),
  4. nalog se ponovo proknjiži, a OCA-in keš reconcile_data_info se osvježi pozivom clean_reconcile() da bi se gornji pano “PREGLED KNJIŽENJA” odmah prerenderao.

Ne kreira se nikakav novi nalog. Originalni bankovni nalog (npr. UCB/2026/00414) na kraju nosi čistu kontaciju DR 2005 Banka / CR 2110 Kupci — bez prelaznog koraka, bez OS/OS… preknjiženja, bez paralelnog audit traila.

Prije akcije korisnik dobiva eksplicitnu potvrdu:

Potvrda akcije — Resetovati izvorni nalog na pripremu, promijeniti prelazni konto na konto partnera i ponovo proknjižiti?

Nakon klika U REDU, originalni bankovni nalog je izmijenjen, reconcile_data_info osvježen, i Saldo tab odmah prikazuje novo stanje: AR/AP saldo: −386,10 KM, Prelazni konto saldo: 0,00 KM, a u tabeli otvorenih stavki vidi se uredan otvoreni kredit na 2110 spreman za zatvaranje protiv sljedeće mjesečne fakture.

Rezultat: gornji pano UCB/2026/00414 sada knjiži na 2110 Kupci u zemlji, Saldo tab pokazuje AR/AP −386,10 KM i prelazni konto 0,00 KM

Tehničke napomene

  • Modul zavisi od account_reconcile_oca (OCA Account Reconcile) jer koristi reconcile_data_info keš za osvježavanje gornjeg panoa.
  • Polje partner_open_line_ids ne filtrira samo AR/AP — proteže se na sva reconcile=True konta, što znači da će u tabeli biti vidljive i istorijske stavke sa 20091, 20097, 20098 i ostalih prelaznih konta ako još uvijek imaju nezatvoreni saldo.
  • Smjer ciljnog konta se određuje automatski: za account.payment kroz partner_type (customer → 2110, supplier → 4320), za bankovni izvod kroz znak amount (pozitivan iznos → AR, negativan → AP).
  • Akcija je idempotentna i pristojna: ako nema nijedne otvorene linije na prelaznom kontu, dugme je sakriveno; ako konto partnera nije konfigurisan, prikazuje se jasna UserError poruka.

Napomena

Generisano od strane Claude 🤖


Ernad Husremović, hernad@bring.out.ba