CRMconnect Azuvio · Docs

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: Tabela tblhr_checkins u 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 — iz tblhrp_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_promotions je dnevnik — ne ažurira automatski polje designation_id u tblstaff. 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:

  1. Nova platna lista: popunite payslip_month (mesec), payslip_template_id, payslip_range (interval unutar meseca)
  2. Sistem generiše JSON tabelu u payslip_data agregujući sve konfigurisane izvore
  3. HR pregleda vrednosti u editabilnoj tabeli (format Luckysheet)
  4. Ručno prilagodite ako je potrebno (posebni odbici, ispravke)
  5. 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
  6. 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