Prenos robno → finansijsko
Prenos robno → finansijsko je batch proces koji svaku izdatu prodajnu fakturu i svaku kompletiranu prijemnicu (CF-005) pretvara u finansijsko knjiženje (automatski finansijski nalog) u ledgeru. Prenos se izvršava po danu dokumenta — svi dokumenti iz istog dana grupisani su u jedan nalog sa mešovitim linijama (kupci + dobavljači).
Prenos se pokreće automatski po rasporedu ili ručno na zahtev korisnika.
Pokretanje ručnog prenosa
Navigacija: Finansije → Prenos robno-finansijsko.
Kliknite Pokreni prenos. Sistem šalje zahtev i vraća jobId. Aplikacija automatski prati
status posla svakih 1,5 sekundi sve dok posao ne dostigne terminalni status:
| Terminal status | Opis |
|---|---|
Completed |
Svi dokumenti su proknjiženi bez konflikata |
CompletedWithConflicts |
Prenos završen, ali postoje nerazrešeni konflikti |
Failed |
Prenos nije uspeo (videti log posla) |
Napomena o konkurentnosti: Sistem koristi Postgres advisory lock po tenantu — ako prenos već teče, drugi pokušaj vraća grešku
GoodsToFinanceTransferAlreadyRunning(990). Sačekajte da tekući posao završi pre ponovnog pokretanja.
Automatski raspored
Prenos se izvršava automatski svaki dan po podešenom rasporedu (podrazumevano 06:00 Europe/Belgrade). Raspored možete izmeniti:
Navigacija: Finansije → Prenos robno-finansijsko → Podešavanja rasporeda.
| Polje | Opis |
|---|---|
| Uključen | Kvačica za aktivaciju automatskog prenosa |
| Vreme | HH:MM format (timezone Europe/Belgrade) |
Promene stupaju na snagu od narednog dana.
Dashboard brojači
Na vrhu stranice prikazuju se live brojači (GET transfer-stats):
| Brojač | Opis |
|---|---|
| Neobrađene fakture | Izdare fakture koje još nisu prenete |
| Neobrađene prijemnice | Kompletne prijemnice koje još nisu prenete |
| Otvoreni konflikti | Konflikti koji čekaju razrešenje |
| Poslednji prenos | Datum i status poslednjeg pokretanja |
Lista poslova prenosa
Kartica Istorija poslova prikazuje sve pokrenute prenose.
Filteri: mod pokretanja (Ručni / Automatski), status, period (od/do).
| Kolona | Opis |
|---|---|
| Pokrenuto | Datum i vreme pokretanja |
| Mod | Ručni / Automatski |
| Status | Running / Completed / CompletedWithConflicts / Failed |
| Dokumenti | Broj obrađenih faktura i prijemnica |
| Konflikti | Broj generisanih konflikata |
| Detalji | Link na detalj posla |
Detalj posla
Prikazuje zaglavlje (statusi, vreme početka/kraja) i listu generisanih finansijskih naloga grupisanih po danima.
Konflikti
Konflikt nastaje kada sistem nije mogao automatski proknjižiti dokument — najčešće zbog zaključane
fiskalne godine (CF-013). Konflikti tipa LockedFiscalYear ne zaustavljaju ceo prenos; dokument se
preskače i beleži kao konflikt.
Lista konflikata
Kartica Konflikti prikazuje sve aktivne i razrešene konflikte.
Filteri: razrešen Da/Ne, tip konflikta, period, fiskalna godina.
| Kolona | Opis |
|---|---|
| Dokument | Faktura ili prijemnica koja je izazvala konflikt |
| Tip | LockedFiscalYear / ostalo |
| Nastao | Datum nastanka konflikta |
| Razrešen | Da / Ne, datum razrešavanja |
Razrešavanje konflikta
Konflikte razrešava Owner ili Admin uloga:
Jedan konflikt: Kliknite Razreši na redu. Opciono unesite razlog. Sistem ažurira iznos knjiženja direktno i rekalkuliše zbire naloga.
Grupno razrešavanje: Označite više konflikata i kliknite Razreši označene. Unesite zajednički razlog. Rezultat je parcijalni uspeh — svaki konflikt dobija sopstveni status razrešavanja.
Već razrešen konflikt ne može se ponovo razrešiti (
TransferConflictAlreadyResolved— 992).
Pozadinski poslovi
Sistem koristi dva automatska pozadinska posla:
| Posao | Raspored | Opis |
|---|---|---|
GoodsToFinanceAutoTransferJob |
Svaki minut | Proverava raspored svakog tenanta i pokreće prenos ako je vreme |
TransferStuckJobWatchdogJob |
Svakih 5 minuta | Prebacuje poslove u statusu Running starije od 2 sata u status Failed |
Watchdog štiti od slučajeva kada posao ostane „zaglavljen" zbog pada servera ili timeout-a.
Greške
| Kod | Konstanta | Uzrok |
|---|---|---|
| 990 | GoodsToFinanceTransferAlreadyRunning |
Prenos već teče za ovaj tenant |
| 991 | TransferConflictNotFound |
Konflikt ne postoji ili pripada drugom tenantu |
| 992 | TransferConflictAlreadyResolved |
Konflikt je već razrešen |
| 993 | TransferConflictResolveFailed |
Interna greška pri razrešavanju konflikta |
| 994 | TransferDateRangeInvalid |
DatumOd > DatumDo pri ručnom pokretanju |
| 995 | TransferLockedFiscalYear |
Dokument je iz zaključane fiskalne godine — pretvara se u LockedFiscalYear konflikt |
| 880 | EfaktureRequiresFinanceTransfer |
Pokušaj SEF upload-a fakture koja još nije preneta u finansije |
Veza sa E-Fakture
Pre slanja fakture na SEF portal, faktura mora biti preneta u finansije. Ako prenos nije
izvršen, sistem blokira SEF upload i vraća EfaktureRequiresFinanceTransfer (880). Pokrenite prenos
pre izvoza na SEF.
Tipičan tok
- Izdajte prodajne fakture i kompletajte prijemnice tokom dana.
- Prenos se automatski pokreće ujutro (podrazumevano 06:00) ili ga pokrenite ručno.
- Pratite status posla na stranici — po završetku proverite da li postoje konflikti.
- Ako postoje konflikti tipa
LockedFiscalYear, proverite status fiskalne godine i razrešite svaki konflikt ručno nakon otvaranja/prenosa. - Provera E-Fakture: ako SEF upload vrati 880, pokrenite prenos pa ponovite upload.