Tok rada: HR Ocena performansi — Evaluacija i obračun plata
Uključeni moduli: OKR · HR (Unapređenja · Opomene · Radionice · Nagrade) · HR Profil (Bonus/Disciplina · Ugovori · Obuke) · HR Obračun plata
Ko ga koristi: HR menadžer · Rukovodioci odeljenja · Zaposleni
Tipično trajanje: Kvartalni ciklus (OKR provere) + mesečni ciklus (obračun plata) + godišnji ciklus (kompletna ocena)
Pregled
CRMConnect nema namenski obrazac za "godišnju ocenu" — ocena performansi se sastavlja iz više nezavisnih modula. Svaki modul doprinosi poseban deo:
| Modul / Tabela | Doprinos |
|---|---|
OKR (tblokrs + tblokrs_checkin) |
Napredak ciljeva + kvalitativna evaluacija po proveri |
HR Profil (tblbonus_discipline) |
Formalni zapis bonusa ili disciplinske mere |
HR Profil (tblhr_promotions) |
Dnevnik unapređenja (promena uloge/funkcije) |
HR Profil (tblhr_warnings) |
Formalne opomene |
HR (tblhr_workshops) |
Učešće na obukama/radionicama |
HR Obračun plata (tblhrp_bonus_kpi) |
KPI bonus ručno unet u obračun plata |
HR Obračun plata (tblhrp_payslips) |
Mesečna platna lista (pokrenuta ručno) |
Kritična napomena —
tblhr_checkins: Tabelatblhr_checkinsu HR modulu predstavlja fizičko prisustvo (vreme ulaska/izlaska na radnom mestu), NE OKR provere. Ta dva nemaju nikakvu vezu.
Obračun plata ne radi automatski. Ne postoji cron niti automatski okidač za obračun plata. Svaka platna lista se ručno kreira i zatvara od strane HR-a.
Dijagram toka
[PRIPREMA CIKLUSA — HR admin, jednom po periodu]
│
├── OKR: kreiranje Cirkulacije (perioda) + Jedinica + Pitanja + Kriterijumi evaluacije
├── HR Obračun plata: konfiguracija šablona platne liste + lista zarada + odbitaka + poreza
└── HR Profil: ugovori zaposlenih sa contract_status='valid'
│
↓
[POSTAVLJANJE CILJEVA — početak perioda]
│
├── Rukovodilac/Zaposleni kreira lične OKR-ove (type=1) vezane za Cirkulaciju
└── Definisani Ključni rezultati: cilj, jedinica, plan
│
↓
[PERIODIČNE PROVERE — tokom perioda]
│
├── Zaposleni popunjava proveru: ostvareno, napredak, nivo_poverenja, kriterijumi_evaluacije
├── Opciono odobravanje (ako je konfigurisano Podešavanje odobrenja): rukovodilac odobrava/odbija
└── Nepromenjivi zapis kreiran u tblokrs_checkin_log pri svakoj proveri
│
↓
[FORMALNA EVALUACIJA — kraj perioda]
│
├── [A] Rukovodilac evidentira Bonus/Disciplinu u HR Profilu
│ → tblbonus_discipline + tblbonus_discipline_detail po zaposlenom
│
├── [B] Rukovodilac evidentira Opomenu (ako je primenljivo)
│ → tblhr_warnings (from_user_id, user_id, title, type_id)
│
└── [C] Rukovodilac pregleda učešće na Radionici/Obuci
→ tblhr_workshops + tblhr_workshop_employees
│
↓
[UNAPREĐENJE (ako je primenljivo)]
│
├── HR evidentira unapređenje: tblhr_promotions (user_id, designation_id, title, date)
└── ⚠ Unapređenje je DNEVNIK — ne ažurira automatski funkciju u zapisu zaposlenog
HR mora ručno da ažurira polje funkcije u zapisu zaposlenog
│
↓
[KPI BONUS → OBRAČUN PLATA]
│
├── HR ručno unosi KPI bonus u HR Obračun plata:
│ tblhrp_bonus_kpi: staffid, month_bonus_kpi, bonus_kpi (vrednost)
└── Pri generisanju platne liste, kolona bonus_kpi (taking_method='system')
automatski povlači vrednost iz ove tabele
│
↓
[GENERISANJE PLATNE LISTE — mesečno, ručno]
│
├── Provera preduslova: ugovor zaposlenog sa contract_status='valid' za relevantni mesec
├── HR Obračun plata → Platne liste → Nova platna lista:
│ payslip_month, payslip_template_id, payslip_range
├── Status: payslip_opening (može se menjati)
├── Sistem automatski agregira (ako su integracije aktivne):
│ - Evidencija radnog vremena: dani rada, plaćeno/neplaćeno odsustvo
│ - HR Profil: plata iz ugovora, uloga, lični podaci
│ - Provizija: provizije za mesec
│ - KPI Bonus: iz tblhrp_bonus_kpi
├── HR pregleda i prilagođava vrednosti u tabeli
└── HR Obračun plata → Platna lista → Zatvori platnu listu → status: payslip_closing
→ upisuje tblhrp_payslip_details (konačni detalji po zaposlenom)
→ upisuje tblhrp_income_taxs (izračunati porez)
[KOMPLETNI CIKLUS ✓ — OKR zatvoren · Bonus evidentiran · Plata obrađena]
Korak po korak
1. Konfiguracija HR Obračuna plata (admin — samo jednom)
Gde: /admin/hr_payroll → Podešavanja
1a. Integracije
| Opcija | Vrednost | Efekat |
|---|---|---|
integrated_hrprofile |
1 |
Povlači platu + podatke zaposlenih iz HR Profila (ugovori, uloga, poreski kod) |
integrated_timesheets |
1 |
Povlači dane rada/odsustvo iz modula Evidencija radnog vremena |
integrated_commissions |
1 |
Uključuje mesečne provizije iz modula Provizija |
standard_working_time |
160 (podrazumevano) |
Standardni radni sati mesečno |
integration_actual_workday |
"W,B" (podrazumevano) |
Kodovi prisustva koji se računaju kao radni dan |
integration_paid_leave |
"AL,HO,EB" (podrazumevano) |
Kodovi plaćenog odsustva |
integration_unpaid_leave |
"U,SI,UB,P" (podrazumevano) |
Kodovi neplaćenog odsustva |
1b. Porezi i porez na dohodak
Gde: HR Obračun plata → Podešavanja → Stope poreza na dohodak
Unesite poreske razrede u tblhrp_income_tax_rates:
| Polje | Opis |
|---|---|
tax_bracket_value_from / to |
Raspon oporezivog dohotka |
tax_rate |
Poreska stopa (%) |
equivalent_value |
Ekvivalentna vrednost razreda |
I olakšice (izuzeća) u tblhrp_income_tax_rebates: code, description, value.
1c. Šablon platne liste
Gde: HR Obračun plata → Podešavanja → Šabloni platnih lista → Novi šablon
Šablon definiše:
- Koji zaposleni/odeljenja/uloge su uključeni (
department_id,role_employees,staff_employees) - Kolone koje se prikazuju (
payslip_columns— iztblhrp_payroll_columns) - Izuzetke po zaposlenima (
except_staff)
Dostupne sistemske kolone (automatski popunjavaju se kada je taking_method='system'):
column_key |
Izvor |
|---|---|
actual_workday |
Evidencija radnog vremena |
paid_leave |
Evidencija radnog vremena (kodovi AL, HO, EB) |
unpaid_leave |
Evidencija radnog vremena (kodovi U, SI, UB, P) |
gross_pay |
Izračunato iz ugovora |
commission_amount |
tblhrp_commissions (iz modula Provizija) |
bonus_kpi |
tblhrp_bonus_kpi (ručno uneto od HR-a) |
income_tax_paye |
Izračunato iz razreda |
net_pay |
gross_pay - odbici - porezi |
total_cost |
Ukupan trošak poslodavca |
1d. Ugovor zaposlenog (obavezan za obračun plata)
Gde: HR Profil → Zaposleni → zapis zaposlenog → kartica Ugovori
Kritičan uslov: Samo ugovori sa contract_status = 'valid' se uključuju u obračun plata. Zaposleni bez važećeg ugovora u relevantnom mesecu ne pojavljuju se u platnoj listi.
| Polje ugovora | Opis |
|---|---|
contract_code |
Broj ugovora |
name_contract |
FK → tblhr_staff_contract_type |
start_valid / end_valid |
Period važenja |
contract_status |
Mora biti 'valid' |
hourly_or_month |
Tip naknade |
2. OKR — postavljanje ciljeva
Gde: /admin/okr → Novi OKR
Kreirajte lične OKR-ove (type=1) za svakog zaposlenog koji se evaluira:
| Polje | Preporučena vrednost |
|---|---|
type |
1 (Lični) |
person_assigned |
staffid zaposlenog |
circulation |
Ciklus za period evaluacije |
display |
1 (Javno) — vidljivo rukovodiocu |
Dodajte Ključne rezultate sa numeričkim target, unit (npr. %, RON, br. projekata) i akcionim plan.
Kompletan OKR vodič: Pogledajte Tok rada 20 — OKR Ciklus za detalje o proverama i odobravanju.
3. Formalni Bonus/Disciplinska mera (HR Profil)
Gde: /admin/hr_profile → Bonus i disciplina → Dodaj
Polja tblbonus_discipline:
| Polje | Opis |
|---|---|
name |
Naziv događaja (npr. "Bonus za performanse Q1") |
id_criteria |
JSON niz sa ID-ovima iz tblrec_criteria (kriterijumi evaluacije) |
type |
Tip (1=bonus) |
from_time |
Referentni period |
approver |
staffid odobravatelja (jednokračno odobravanje) |
status |
Status zapisa |
Detalji po zaposlenom (tblbonus_discipline_detail):
| Polje | Opis |
|---|---|
staff_id |
Dotični zaposleni |
lever_bonus |
Nivo bonusa |
formality |
Forma (npr. novac, pismo) |
formality_value |
Vrednost (iznos ili tekst) |
description |
Obrazloženje |
Korišćeni kriterijumi evaluacije (tblrec_criteria — modul Rekrutovanje, ponovo korišćen):
Polja score_des1..score_des5 definišu 5 opisnih nivoa ocenjivanja po kriterijumu.
4. Formalne opomene
Gde: /admin/hr → Opomene → Dodaj opomenu
| Polje | Opis |
|---|---|
from_user_id |
Ko izdaje opomenu (rukovodilac/HR) |
user_id |
Zaposleni koji je prima |
title |
Predmet opomene |
type_id |
Tip opomene (iz pregleda) |
img |
Prilog (dokument) |
5. Unapređenje
Gde: /admin/hr → Zaposleni → zapis zaposlenog → Dodaj unapređenje
| Polje | Opis |
|---|---|
title |
Naziv unapređenja (npr. "Unapređen na Senior Developer") |
user_id |
Unapređeni zaposleni |
designation_id |
Nova uloga (iz tbldesignations) |
date |
Datum stupanja na snagu |
Napomena:
tblhr_promotionsje dnevnik — ne ažurira automatski poljedesignation_idutblstaff. HR mora ručno da ažurira zapis zaposlenog nakon evidentiranja unapređenja.
6. Obuka / Radionica
Gde: /admin/hr → Radionice → Dodaj radionicu
| Polje | Opis |
|---|---|
description |
Opis obuke |
mode |
internal ili external |
cost |
Trošak obuke |
date_start / date_end |
Period |
type_id |
Tip radionice (iz pregleda) |
trainer_id / trainer_name |
Predavač |
Dodajte učesnike u tblhr_workshop_employees: povežite user_id + workshop_id.
7. KPI bonus u obračunu plata
Gde: /admin/hr_payroll → Bonus KPI → Dodaj
| Polje | Opis |
|---|---|
staffid |
Zaposleni |
month_bonus_kpi |
Mesec (npr. 2026-03) |
bonus_kpi |
Vrednost bonusa (varchar 100 — iznos ili procenat) |
Pri generisanju platne liste za taj mesec, kolona bonus_kpi (sa taking_method='system' i function_name='bonus_kpi') automatski povlači vrednost iz ove tabele.
8. Generisanje i zatvaranje platne liste
Gde: /admin/hr_payroll → Platne liste → Nova platna lista
Statusi platne liste:
| Status | Značenje |
|---|---|
payslip_opening |
Platna lista otvorena — može se menjati, izračunavanja se ažuriraju |
payslip_closing |
Platna lista zatvorena — konačne vrednosti upisane u tblhrp_payslip_details |
Koraci:
- Nova platna lista: popunite
payslip_month(mesec),payslip_template_id,payslip_range(interval unutar meseca) - Sistem generiše JSON tabelu u
payslip_dataagregujući sve konfigurisane izvore - HR pregleda vrednosti u editabilnoj tabeli (format Luckysheet)
- Ručno prilagodite ako je potrebno (posebni odbici, ispravke)
- Zatvori platnu listu (zahteva dozvolu
hrp_payslip → edit):- Parsira tabelu
- Upisuje
tblhrp_payslip_details(jedan red po zaposlenom sa svim konačnim vrednostima) - Upisuje
tblhrp_income_taxs(izračunati porez po zaposlenom) - Status postaje
payslip_closing
- HR može ponoviti zatvorenu platnu listu: dugme Resetuj → status se vraća na
payslip_opening
Tokovi odobravanja u HR-u
| Modul | Tabela | Mehanizam |
|---|---|---|
| OKR provera | tblokr_approval_setting + tblokr_approval_details |
Potpuni višestepeni sa rokom + obaveštenjima |
| Bonus/Disciplina | tblbonus_discipline.approver |
Jedan odobravatelj, varchar polje — bez tabele praćenja |
| Otkaz/Odlazak | tblhr_list_staff_quitting_work.approval |
Jednostavno varchar polje: 'approved' |
| Platna lista | Nema odobravanja | Ručno zatvorena od HR-a sa dozvolom hrp_payslip → edit |
Potrebne dozvole
| Modul | Dozvola | Pristup |
|---|---|---|
| OKR | okr → view / view_own |
Pregled OKR-ova |
| OKR | Podešavanja OKR-a | Isključivo is_admin() |
| HR | hr_employees → view/create/edit/delete |
Zapisi zaposlenih |
| HR | hr_workshops → view/create/edit/delete |
Obuke |
| HR | hr_awards → view/create |
Nagrade |
| HR | hr_warnings → view/create |
Opomene |
| HR Profil | hr_profile → view/edit |
Prošireni podaci zaposlenih, ugovori |
| HR Obračun plata | hr_payroll → view |
Pregled platnih lista |
| HR Obračun plata | hrp_payslip → edit |
Zatvaranje platne liste (Zatvori platnu listu) |
| HR Obračun plata | hrp_settings → view |
Konfiguracija obračuna plata |
Česte greške
| Problem | Uzrok | Rešenje |
|---|---|---|
| Zaposleni se ne pojavljuje u platnoj listi | Nedostaje ugovor ili contract_status ≠ 'valid' |
Dodajte/validirajte ugovor u HR Profil → Ugovori |
| KPI bonus se ne pojavljuje u platnoj listi | tblhrp_bonus_kpi prazno za taj mesec |
Ručno unesite bonus u HR Obračun plata → Bonus KPI |
| Provizija se ne pojavljuje u platnoj listi | integrated_commissions=0 ili modul provizija neaktivan |
Omogućite integraciju iz HR Obračun plata → Podešavanja |
| Dani rada su 0 | integrated_timesheets=0 ili Evidencija radnog vremena nema podataka |
Omogućite integraciju i proverite da je evidencija popunjena |
| Unapređenje nije promenilo ulogu zaposlenog | tblhr_promotions je samo dnevnik |
Ručno ažurirajte polje Funkcija u zapisu Zaposlenog |
| Pogrešno zatvorena platna lista | payslip_closing je konačno |
Koristite dugme Resetuj platnu listu da se vrati na payslip_opening i ispravite |
| OKR provera blokirana | approval_status=3 (na čekanju) |
Odobravatelj mora da obradi prethodni zahtev |
tblhr_checkins prikazuje prisustvo, ne OKR |
Različiti moduli — česta zabuna | hr_checkins = fizičko prisustvo; OKR provere su u tblokrs_checkin |
Reference modula
- Tok rada 20 — OKR Ciklus — puni detalji o OKR proverama i odobravanju
- Tok rada 19 — Provizija — provizije integrisane u obračun plata
- HR — Zaposleni — zapisi zaposlenih
- HR — Obračun plata — dokumentacija modula obračuna plata
- HR — Rekrutovanje — kriterijumi evaluacije (
tblrec_criteria) - Evidencija radnog vremena — prisustvo i dani rada