Skip to main content

HR Product Health Review — 2026-07-11 (MC #105260)

MC #105260 — Bilko HR Product Health Review — SINTEZA za CEO

Datum: 2026-07-11 | Reviewers: bilko-racunovodstvo-hr (lead) + bilko-porez-fiskalizacija-hr | John verifikacija spornih nalaza live probama

Executive verdikt

Jezgro je zdravo. Ljuska nije spremna za prodaju bez 5 fixeva.

  • Knjigovodstveno jezgro: dvojno knjiženje RADI (John live probe: e2e org, jun P&L 3750 EUR, debit/credit konta ispravna), RRiF kontni plan, NUMERIC(19,4), KIR/KPR ispravni, PDV matematika tačna, OIB checksum ispravan, bilanca invarijanta drži.
  • Porezni verdikt (bilko-porez-fiskalizacija-hr): "NE smije se prodavati HR firmama bez ograde" — uslovi za DA dolje.

Nalazi — konsolidovano i rangirano

CRITICAL (zakonski rizik / blokira prodaju)

  1. PDV filing period hardkodiran kvartalno (PluginHR.getFilingDeadlines) — mjesečni obveznici (iznad praga, čl.85 ZPDV) dobili bi POGREŠAN ROK → rizik kazne klijentu. [porez #1]
  2. Nema server-side whitelist PDV stope — taxRate prima bilo šta, tiho truje PDV izvještaj. [porez #2]

HIGH

  1. Demo-seed zaobilazi knjiženje → demo/trial org ima fakture bez GL zapisa → P&L=0 → svaki trial korisnik zaključi da je proizvod pokvaren. (John reklasifikovao s P0: runtime je ispravan, seed je bug.) [rač #1 + John probe]
  2. Dashboard bez period parametra (ReportService.kt:31, hardkodiran tekući mjesec) — CEO-ov trigger nalaz; uneseni stariji račun "nestane" s glavnog ekrana. [rač + CEO]
  3. B2G eRačun ne postoji (obaveza za javni sektor od 2019) — ili implementirati ili eksplicitni disclaimer "bez javnog sektora". [porez #3]
  4. Generic 404 vraća "Invoice not found" (BILKO-INV-001) za SVE rute — zbunjuje korisnike i mobile tim. [rač #2]

MEDIUM

  1. Expense kategorije freetext umjesto RRiF konta (accountId nullable, ne popunjava se uvijek). [rač #3]
  2. buyerOib se ne preuzima automatski s kupca + einvoiceReadiness se ne prekalkuliše poslije create. [porez live]
  3. Retention period kontradikcija: kod tvrdi 11 god (NN 78/2015), dokument kaže UNVERIFIED — pravno raščistiti. [porez]
  4. HrEInvoiceServiceTest: 20 padova (test-šema drift o.deleted_at) + PluginHRTest 3 UBL pada = LAŽNI ALARM (osirotjeli test mrtve grane; produkcijski UBL put ispravan) — test dug čisti CI signal. [porez bonus]

META (proces)

  1. USER-STORIES.md je Srbija-scoped — HR tržište NEMA formalne story-je (samo 2 placeholder ćelije). Review rađen na kod+API. HR story backlog treba napisati. [porez metod]
  2. Agent-dizajn bez product review-a (MTD odluka) — persona-review gate prije shipa user-facing feature-a (ide u #105241 proces lekcije).

Minimum za "smije se prodavati" (B2B SMB, bez javnog sektora)

  1. Fix #1 mjesečno/kvartalno razlikovanje
  2. Fix #2 PDV rate whitelist {25,13,5,0}
  3. Fix #3 demo-seed kroz servisni sloj (trial kredibilitet)
  4. HrEInvoiceServiceTest šema fix (da issue/submit tok bude CI-dokaziv)
  5. Eksplicitan B2G disclaimer + retention pravna potvrda

Skorovi

  • Računovodstvo: PASS 8 / GAP 5 / FAIL 2 (15 testabilnih; 3 van read-only opsega)
  • Porez: 9 verdikt stavki (tabela u porez fajlu); HR formalne stories ne postoje

Puni izvještaji: racunovodstvo-hr-review.md (131 l.) + porez-fiskalizacija-hr-review.md (173 l.)