Auto-sinhronizacija E-Faktura
MlekErp podržava per-tenant automatsku sinhronizaciju sa SEF-om za oba smera: ulazni (preuzimanje faktura dobavljača) i izlazni (automatski upload novih prodajnih faktura). Svaki tenant nezavisno konfiguriše intervale i uključuje/isključuje funkcionalnosti.
Konfiguracija (Podešavanja organizacije)
Navigacija: Podešavanja organizacije → E-Fakture (Owner/Admin).
Ulazna auto-sinhronizacija (CF-024)
Automatski preuzima status promena ulaznih faktura od SEF-a (delta sweep).
| Polje | Opis |
|---|---|
| Uključena ulazna sinhronizacija | Kvačica za aktivaciju automatskog preuzimanja inbox-a |
| Interval provere | 15 min / 30 min / 60 min — koliko često sistem proverava promene |
Kada je uključena, sistem koristi SEF-ov changes endpoint za efikasno preuzimanje samo
novih promena od poslednje provere (delta sweep), umesto punjenja čitavog registra.
Izlazna auto-sinhronizacija (CF-024)
Automatski osvežava status već poslatih izlaznih faktura na SEF-u.
| Polje | Opis |
|---|---|
| Uključena izlazna sinhronizacija | Kvačica za aktivaciju praćenja statusa izlaznih faktura |
| Interval provere | 15 min / 30 min / 60 min |
Auto-upload izlaznih faktura (CF-036)
Automatski šalje podobne izdane fakture na SEF bez ručnog pokretanja.
| Polje | Opis |
|---|---|
| Uključen auto-upload | Kvačica za aktivaciju automatskog upload-a |
| Cutoff datum | Datum od kojeg auto-upload važi — fakture starije od ovog datuma se ne šalju automatski |
Napomena: Auto-upload je odvojen od auto-sinhronizacije statusa. Ima drugačiji profil rizika jer upisuje dokumente na SEF umesto da samo čita status. Preporučuje se pažljivo podešavanje cutoff datuma.
Koja faktura ide na auto-upload?
Auto-upload posao bira fakture koje zadovoljavaju sve sledeće uslove:
| Uslov | Objašnjenje |
|---|---|
| Status = Izdata | Faktura mora biti u statusu Issued |
| Preneta u finansije | TransferredToFinanceAt IS NOT NULL — prenos obavljen (CF-010) |
| Posle grace perioda | Faktura mora biti prošla određeni minimalni period posle izdavanja |
| Posle cutoff datuma | Datum fakture mora biti posle per-tenant cutoff datuma |
| Nema zapisa o slanju | Faktura nema postojeći submission (idempotentna — manuelno poslatim se ne duplikuje) |
Greške validacije (npr. nedostaje JBKJS za B2G kupca) se zapisuju kao terminalni Failed
submission u Auto modu poslu i nikada se ne pokušavaju ponovo automatski. Privremene
greške mreže obrađuje zasebni posao SefSubmissionRetryJob.
Pozadinski poslovi
Sistem koristi statičke Coravel sweep poslove koji se izvršavaju svakih 5 minuta i obrađuju samo tenante čiji interval je istekao od poslednje provere.
| Posao | Interval | Opis |
|---|---|---|
SefInboundSyncJob |
5 min sweep, per-tenant interval | Preuzima delta promene ulaznih faktura (changes endpoint) |
SefStatusPollingJob |
5 min sweep, per-tenant interval | Osvežava status već poslatih izlaznih faktura |
SefSubmissionRetryJob |
5 min sweep | Ponovo pokušava slanje izlaznih faktura koje su imale privremenu grešku |
| Auto-upload posao (CF-036) | 5 min sweep, per-tenant interval | Prikuplja i šalje podobne fakture na SEF |
Noćna Overview rekoncilijacija |
Jednom dnevno (noću) | Kompletna provera registra kao backstop za delta sweep |
Ulazni sync — razlika u ponašanju
| Situacija | Behavior |
|---|---|
Prva aktivacija / prvi sync (Sync now) |
90-dnevni backfill — preuzima sve fakture iz poslednja 3 meseca |
| Redovna auto-sinhronizacija | 30-dnevni rolling window sa delta sweep (changes endpoint) |
Ručni Sync now |
Uvek koristi isti backfill/rolling logic kao automatski posao |
Prikaz statusa sinhronizacije
Na stranici Podešavanja organizacije → E-Fakture prikazuju se:
| Info | Opis |
|---|---|
| Poslednja ulazna sinhronizacija | Datum i vreme poslednjeg uspešnog inbound sweep-a |
| Poslednja izlazna sinhronizacija | Datum i vreme poslednjeg uspešnog outbound status poll-a |
| Poslednji auto-upload | Datum i vreme poslednjeg auto-upload pokretanja |
Veza sa izlaznim poslovima
Auto-upload poslovi prikazuju se na stranici Integracije → E-Fakture sa modom Auto i plavim tagom (za razliku od Batch = purpurni i Single = plavi). Svaki auto posao sadrži potpun pregled poslanih faktura i njihovih statusa.
Ručni batch upload (Upload Batch dugme) i per-faktura upload i dalje su dostupni bez obzira na to da li je auto-upload uključen.
Preporučena konfiguracija
Mala firma (ručna kontrola)
- Ulazna sinhronizacija: uključena, interval 60 min
- Izlazna sinhronizacija: uključena, interval 60 min
- Auto-upload: isključen (ručno slanje po potrebi)
Srednja firma (polu-automatizacija)
- Ulazna sinhronizacija: uključena, interval 30 min
- Izlazna sinhronizacija: uključena, interval 30 min
- Auto-upload: uključen, cutoff datum = datum početka korišćenja e-faktura
Visoki obim (puna automatizacija)
- Ulazna sinhronizacija: uključena, interval 15 min
- Izlazna sinhronizacija: uključena, interval 15 min
- Auto-upload: uključen, cutoff datum = datum početka korišćenja
Napomene o SEF ograničenjima
SEF ne podržava push notifikacije (webhook). Sav promet je pull-based — MlekErp redovno pita SEF za promene. Interval od 15 minuta je minimum koji sistem podržava i ujedno je interval koji daje najbrže obaveštavanje o promenama statusa bez prekomerne opterećenosti SEF API-ja.
Ako SEF vrati HTTP 429 (prekoračen limit zahteva), sistem automatski beleži grešku
EfaktureRateLimited (878) i čeka naredni interval pre ponovnog pokušaja.
Veza sa ostalim modulima
| Modul | Veza |
|---|---|
| Izlazne fakture | Ručni i batch upload; pregled poslova |
| Ulazne fakture | Inbox ulaznih faktura; prihvatanje/odbijanje |
| Prenos robno → finansijsko | Preduslov za auto-upload izlaznih faktura |
| Prijem iz e-faktura | CF-035 hand-off — kreiranje prijemnice iz ulazne fakture |