🚀 Početak — Setup

1. Baza podataka (SSMS)

Pokrenite redom:
1. SQL/ESPlate_Baza.sql
2. SQL/TestPodaci.sql
3. Fix_SVE_KOLONE.sql ⚠️
4. Fix_Doprinosi_RS_BD.sql

2. Pokretanje aplikacije

Visual Studio:
Build → Clean Solution
Build → Build Solution
F5 (pokretanje)
Browser: https://localhost:7101

3. Testni korisnici

superadmin / Admin123
servis1 / Servis123
korisnik1 / Korisnik123

⚠️ Fix_SVE_KOLONE.sql je obavezan! Bez ovog SQL-a neke kolone ostaju kao INT umjesto DECIMAL — zdravstvo i GIP prikazuju 0, a neke stranice padaju. Skripta je sigurna za višekratno pokretanje.

🏗️ Arhitektura i uloge korisnika

ESPlate je multi-servis, multi-korisnik web aplikacija koja podržava tri entiteta BiH. Postoje tri nivoa pristupa:

UlogaUsernamePrava pristupa
SuperAdminsuperadminUpravljanje servisima, svim firmama, korisnicima i stopama doprinosa
Servisservis1Upravljanje firmama i korisnicima unutar svog računovodstvenog servisa
Korisnikkorisnik1Radnici, obračuni i izvještaji — samo za svoju firmu

Tok rada

1

SuperAdmin kreira Servis

Administracija → Servisi → Novi servis

2

Servis kreira Firmu

Firme → Nova firma — bira entitet (FBiH/RS/BD)

3

Servis dodjeljuje Korisnika firmi

Korisnici → Firme (ikona zupčanika) → nivo pristupa

4

Korisnik vodi plaće

Dodaje radnike → ugovore → kreira obračune → štampa izvještaje

🏢 Firme

Kreiranje firme

Navigacija → Administracija → Firme → Nova firma

PoljeOpis
NazivPuni naziv firme (npr. Demo d.o.o. Sarajevo)
JIBJedinstveni identifikacioni broj — 13 cifara
Entitet ⚠️FBiH / RS / Brčko Distrikt — određuje stope doprinosa!
Šifra djelatnostiZa PU obrasca MIP-1023 / GIP-1022
Banka / IBANRačun firme za virman naloge
DirektorPotpis na ugovorima o radu

Dodjela korisnika firmi

Korisnici → ikona zupčanika → odabir firme i nivoa pristupa:

% Doprinosi i stope

Navigacija → Doprinosi/Porezi

DoprinosFBiHRSBD (Opcija 1)
PIO/MIO — radnik17%18.5%17%
Zdravstvo — radnik12.5%10.2%12%
Nezaposlenost — radnik1.5%0.6%1.5%
Dječija zaštita (RS)1.7%
Ukupno radnik31%31%30.5%
PIO/MIO — poslodavac6%0%6%
Zdravstvo — poslodavac4%0%0%
Lični odbitak (mj.)300 KM1.000 KM300 KM
Porez na dohodak10%10%10%
RS: Svi doprinosi (31%) su na teret radnika — poslodavac NE plaća doprinose na platu. Lični odbitak u RS je 1.000 KM/mj. (postavljate u poreznoj kartici radnika: godišnji odbitak = 12.000 KM).
Brčko Distrikt: Radnik bira PIO fond — ako bira FBiH: PIO radnik 17% + poslodavac 6%. Ako bira RS: PIO radnik 18.5% + poslodavac 0%. Stopa se mijenja u Doprinosi stranici.

Virman računi

Tab "Virman računi" — definišite IBAN za svaku vrstu doprinosa:

VrstaOpis
PIO_RPIO/MIO radnik (MIP-1023) → Fond PIO/MIO
PIO_PPIO/MIO poslodavac (GIP-1022)
ZDR_RZdravstvo radnik → Kantonal (FBiH 89.8% od ukupnog)
ZDR_PZdravstvo federalni (FBiH 10.2% → Fond solidarnosti)
NEZ_RNezaposlenost kantonal (FBiH 70%)
POREZPorez na dohodak → JRT trezor PU
NETONeto plate → računi radnika
FBiH automatska podjela: Zdravstvo = 2 virmana (89.8% kantonal + 10.2% Fond solidarnosti, vrsta prihoda 712112). Nezaposlenost = 2 virmana (70% kantonal + 30% federalni, vrsta prihoda 712113). Sistem automatski dijeli iznose!

🏷️ Vrste prihoda

Navigacija → Vrste prihoda

Vrsta prihodaŠifraOporezivoUlazi u bruto
Osnovna plata3100✅ Da✅ Da
Topli obrok3200❌ NE❌ NE
Naknada za prevoz3210❌ NE❌ NE
Prekovremeni rad3300✅ Da✅ Da
Regres3400❌ NE❌ NE
Stimulacija / Bonus3500✅ Da✅ Da
Naknada za bolovanje3600✅ Da❌ NE
Jubilarna nagrada3700❌ NE❌ NE

👥 Radnici — Dodavanje

Navigacija → Radnici → Dodaj radnika

Minuli rad — automatski izračun

Formula: (Staž u firmi u mj. + Prethodni staž u mj.) ÷ 12 × 0.5% = Minuli rad (max 20%)
Unesite "Prethodni staž (mj.)" za radno iskustvo van ove firme. Na ugovoru kliknite "↑ Auto X%" za automatski prijedlog.
⚠️ NAPOMENA: Radnik mora imati ugovor i poreznu karticu da bi bio uključen u obračun plate!

📄 Ugovor o radu

Radnici → Uredi → dugme "Ugovor"

Tip obračunaOpisUnos podataka
MiesečniFiksna bruto plataBruto ILI Neto — kalkulator preračunava
SatniSatnica × ostvareni satiSatnica (KM/h) + Norma sati/mj.
DnevniDnevnica × radni daniDnevnica (KM/dan) + Broj dana
🔄 Bidirekcijski kalkulator:
Unesite Bruto → sistem automatski izračunava Neto (i sve doprinose).
Unesite Neto → sistem pronalazi Bruto putem binary search algoritma.
Kalkulator prikazuje sve stavke u realnom vremenu po stopama entiteta firme.

💳 Porezna kartica

Radnici → Uredi → dugme "Por. kartica"

EntitetGodišnji odbitakMiesečni odbitak
FBiH3.600 KM300 KM × faktor
RS12.000 KM1.000 KM × faktor
Brčko Distrikt3.600 KM300 KM × faktor

📋 Obrasci za radnika

JS3100 — Prijava osiguranika

Radnici → dugme "JS3100"
Popunjava se automatski.
Mora se predati dan prije početka rada!

JS3120 — Odjava osiguranika

Radnici → dugme "JS3120"
(prikazuje se samo za neaktivne radnike)
Predaje se pri prestanku radnog odnosa.

Svi obrasci su printabilni, automatski popunjeni iz podataka radnika i ugovora. Sadrže linije za potpis i pečat.

🧮 Kreiranje obračuna plaća

Navigacija → Obračuni → odabir godine i mieseca → dugme "Kreiraj obračun"

1

Odabir perioda

Sistem provjeri da obračun za taj period ne postoji

2

Učitavanje radnika

Svi aktivni radnici zaposleni u odabranom periodu

3

Traženje ugovora

Za svakog radnika aktivan ugovor koji važi u periodu

4

Obračun stavki

Bruto, doprinosi, lični odbitak, porez, neto, trošak firme

⚠️ VAŽNO: Radnik bez aktivnog ugovora za dati period neće biti uključen u obračun! Status "Radna" = može se mijenjati. Status "Zaključan" = konačan, ne može se mijenjati.

📐 Formula obračuna (FBiH primjer — bruto 1.000 KM)

Bruto plata (osnova)1.000,00 KM
+ Minuli rad (npr. 0%)0,00 KM
= Bruto ukupno1.000,00 KM
− PIO/MIO radnik (MIP-1023) 17%170,00 KM
− Zdravstvo radnik 12.5%125,00 KM
− Nezaposlenost radnik 1.5%15,00 KM
= Prihod umanjen za doprinose690,00 KM
− Lični odbitak (kartica, 300 KM/mj.)300,00 KM
= Porezna osnovica390,00 KM
− Porez na dohodak 10%39,00 KM
✅ NETO ISPLATA RADNIKU651,00 KM
+ PIO/MIO poslodavac (GIP-1022) 6%60,00 KM
+ Zdravstvo poslodavac 4%40,00 KM
💼 UKUPNI TROŠAK FIRME1.100,00 KM

📝 Unos sihterice

Detalji obračuna → dugme "Unos sihterice"

💸 Virmani — platni nalozi

Detalji obračuna → dugme "Virmani"

Sistem automatski kreira platne naloge za sve obaveze:

VirmanFBiHRS
1. PIO/MIOMIP-1023 radnik 17% + GIP-1022 poslodavac 6%PIO radnik 18.5%
2. Zdravstvo kantonal89.8% od ukupnog zdravstvo (vrsta prih. 712112)
3. Zdravstvo federalni10.2% → Fond solidarnosti (vrsta prih. 712112)
4. Nezaposlenost kant.70% od nezaposlenosti (vrsta prih. 712113)
5. Nezaposlenost fed.30% → Federalni zavod (vrsta prih. 712113)
6. PorezPorez na dohodak → JRT trezor PUPorez na dohodak
7. Neto plateLista radnika sa IBAN brojevima

📊 Izvještaji i obrasci

IzvještajOpisPristup
Platna listaSvi radnici, bruto/neto, za štampuDetalji → Platna lista
SihtericaIndividualni isplatni listićDetalji → ikona po radniku
PMIP-1024 / MIP-1023Miesečni obrazac PU FBiHDetalji → MIP dugme
GIP-1022Godišnji obrazac PU FBiHIzvještaji → GIP-1022
Specifikacija 2001Uz isplatu plaća (za banku)Detalji → Spec.2001
Rekapitulacija plaćaZbirno po mjes. i radnikuIzvještaji → Rekapitulacija
Rekap. doprinosaPIO/ZDR/NEZ po šiframaIzvještaji → Rekap. dop.
Virmani / Platni naloziZa uplatu svih obavezaDetalji → Virmani
XML za PU FBiHUpload na portal Porezne upraveDetalji → PU Slanje
JS3100 PrijavaPrijava osiguranika u sistem PURadnici → JS3100 dugme
JS3120 OdjavaOdjava osiguranika iz sistema PURadnici → JS3120 dugme
Ugovor o raduPrintabilni, 4 primjerka, potpisiRadnici → 🖨️ ikona
Porezna karticaKartica sa izjavom radnikaRadnici → 🖨️ ikona

📑 MIP-1023 / GIP-1022 i XML export

🔧 Česti problemi i rješenja

ProblemUzrokRješenje
Zdravstvo/GIP prikazuje 0Kolone ostale INT umjesto DECIMALPokrenuti Fix_SVE_KOLONE.sql → restart aplikacije
Radnik se ne može otvoritiKolona PrethodniStazMjeseci nedostajePokrenuti Fix_SVE_KOLONE.sql
InvalidCastException Decimal/IntMismatch tipa kolone u DB i modelaFix_SVE_KOLONE.sql + Build → Clean
Obračun ne kreira stavkeRadnik nema ugovor za periodDodati ugovor koji važi u obračunskom periodu
Vrste prihoda prazna listaTabela VrstePrihoda praznaFix_SVE_KOLONE.sql automatski popunjava
Korisnik ne vidi firmuFirma nije dodijeljena korisnikuServis admin → Korisnici → Firme (zupčanik)
Greška pri snimanju radnikaNedostajuća kolona u DBFix_SVE_KOLONE.sql + Build → Clean → F5
Include greška u View-u@inject DbContext nema EF IncludePodaci se prenose iz Controllera via ViewBag — interna greška, javite
🔑 ZLATNO PRAVILO: Ako bilo šta pada ili prikazuje 0 — pokrenite Fix_SVE_KOLONE.sql u SSMS, zatim u Visual Studiju: Build → Clean Solution → Build → F5.

🗄️ SQL skriptovi

Konekcija: ELVIRPESTAW11\SQLE2017 | Baza: ESPlate

#SkriptaKadaOpis
1ESPlate_Baza.sqlJednom — inicijalnoKreira sve tabele, entitete, default doprinose
2TestPodaci.sqlJednom — testiranjeDemo firma, 4 radnika, korisnici
3Fix_SVE_KOLONE.sqlOBAVEZNO jednom!Dodaje sve nove kolone, popravlja INT→DECIMAL, seed-uje VrstePrihoda
4Fix_Doprinosi_RS_BD.sqlJednom — za RS/BDIspravne stope (RS: 31% radnik, 0% posl.; BD: ispravne stope)
5Fix_VirmanRacuni.sqlPo potrebiKreira tabelu virman računa
6Fix_BrojDana.sqlAko Decimal→Int greškaPopravlja BrojDana i SatiRad kolone
7Fix_ColumnTypes.sqlAko zdravstvo = 0Sve decimal kolone u ObracunStavke
Sve Fix_ skripte su idempotentne — mogu se pokrenuti više puta bez posljedica. Koriste IF NOT EXISTS i ne brišu postojeće podatke.