Tok rada: Životni ciklus imovine
Uključeni moduli: Imovina (Grupe · Lokacije · Dodeljivanje · Akcije · Amortizacija) · Zaposleni · Klijenti (portal)
Ko ga koristi: IT/Admin · HR · Finansije · Rukovodstvo
Tipično trajanje: Kontinuirano — od nabavke do rashodovanja/otpisa
Pregled
Modul Imovina upravlja inventarom fizičke imovine kompanije (laptopi, telefoni, oprema, nameštaj, itd.) tokom kompletnog životnog ciklusa: nabavka, dodeljivanje zaposlenima, prijava štete, garantni popravci, gubici i rashodovanje/otpis. Amortizacija se izračunava u realnom vremenu pri pregledu — ne postoji zakazani posao.
Nema toka odobravanja. Sve akcije (dodeljivanje, oduzimanje, gubitak, rashodovanje) se izvršavaju odmah pri POST-u — nema stanja čekanja niti odobravanja rukovodioca.
Nema veze sa modulom Flota niti sa modulom Troškovi/Narudžbenice nabavke. Trošak nabavke se čuva direktno u zapisu imovine (
unit_price); ne generiše automatski trošak niti fakturu nabavke.
Status imovine nije eksplicitno polje — izvodi se iz brojača (
total_allocation,total_lost,total_damages, itd.). Kartice u interfejsu filtriraju na osnovu ovih brojača.
Dijagram toka
[PODEŠAVANJE — admin, jednom]
│
├── Grupe imovine (kategorije: IT, Nameštaj, Vozila, itd.)
├── Tipovi jedinica (jedinice mere: komad, set, kg)
└── Lokacije imovine (fizičke lokacije — samo admin)
│
↓
[1. NABAVKA / KREIRANJE IMOVINE]
│
├── Imovina → Nova imovina
├── Polja: assets_code, assets_name, amount (količina), unit_price, date_buy
│ warranty_period (meseci), depreciation (meseci), asset_group, asset_location
├── Dobavljač: supplier_name, supplier_address, supplier_phone
├── Prilozi (fakture, sertifikati, fotografije)
└── inventory_history: acction='add_new', begin=0, end=amount
│
↓
[2. DOPUNA ZALIHA (opciono, ako se nabavljaju dodatne jedinice)]
│
├── acction_2: type='additional'
├── amount += dodate jedinice
└── inventory_history: acction='additional'
│
↓
[3. DODELJIVANJE ZAPOSLENOM]
│
├── acction_1: type='allocation', acction_to=staffid
├── Polja: amount (količina), acction_location (lokacija predaje), acction_reason
├── total_allocation += amount
├── Raspoložive zalihe = amount - total_allocation
└── inventory_history: acction='allocation'
│
↓
[4. U UPOTREBI — imovina dodeljena]
│
├── Kartica "U upotrebi": total_allocation > 0
├── Zaposleni vidi svoju imovinu (ako dozvole to dozvoljavaju)
└── Klijent može videti svoju imovinu u portalu (ako visible_to_client=1 + belongs_to)
│
↓
[5. DOGAĐAJI TOKOM VREMENA (bilo koji, bilo kojim redosledom)]
│
├── [A] OŠTEĆENO: type='broken' → total_damages += amount (količina se NE smanjuje)
│
├── [B] GARANCIJA/POPRAVKA (iz štete):
│ type='warranty' → total_warranty += amount, total_damages -= amount
│ cost = trošak popravke
│ Maks = total_damages - total_warranty (neto nepopravljene jedinice)
│
├── [C] IZGUBLJENO: type='lost' → amount -= amount, total_lost += amount
│ (trajno uklanjanje iz inventara)
│
└── [D] ODUZIMANJE (vraćanje od zaposlenog):
type='revoke', acction_to=staffid
total_allocation -= amount
Sistem proverava neto dodeljivanje po zaposlenom pre oduzimanja
│
↓
[6. RASHODOVANJE / OTPIS (kraj životnog veka)]
│
├── type='liquidation'
├── amount -= rashodovana količina, total_liquidation += količina
├── cost = vrednost oporavka/prodaje pri rashodovanju
└── inventory_history: acction='liquidation'
│
↓
[IZVEŠTAJ O AMORTIZACIJI]
│
├── Imovina → Izveštaji → Amortizacija
├── PHP izračunavanje u realnom vremenu (bez tabele amortizacije):
│ meseci_proteklo = (danas - date_buy) / 31 dana
│ mesečna_amortizacija = (unit_price × amount) / meseci_amortizacije
│ akumulirana_amortizacija = meseci_proteklo × mesečna_amortizacija
│ ostatak_vrednosti = (unit_price × amount) - akumulirana_amortizacija
└── Može se filtrirati po grupi imovine ili pojedinačnoj imovini
[IMOVINA RASHODOVANA ✓ · INVENTAR AŽURIRAN ✓]
Korak po korak
1. Početna konfiguracija
1a. Grupe imovine
Gde: /admin/assets → Podešavanja → Grupe imovine → Dodaj grupu
Kategorije imovine (npr.: "IT oprema", "Nameštaj", "Vozila"). Barem jedna grupa je obavezna.
1b. Tipovi jedinica
Gde: /admin/assets → Podešavanja → Tipovi jedinica
Jedinice mere za količinu (npr.: "Komad", "Set", "Kg"). Prilagođene jedinice se mogu dodati sa unit_code, unit_name, unit_symbol.
1c. Lokacije imovine
Gde: /admin/assets → Podešavanja → Lokacije imovine (samo admin — is_admin())
Fizičke lokacije imovine (npr.: "Beograd kancelarija", "Magacin", "Novi Sad sedište"). Dostupno isključivo adminima.
2. Kreiranje imovine
Gde: /admin/assets → Nova imovina
Obavezna polja:
| Polje | Opis |
|---|---|
assets_code |
Jedinstveni kod (AJAX provera u realnom vremenu) |
assets_name |
Naziv imovine |
amount |
Ukupna količina |
unit |
FK → tblware_unit_type |
asset_group |
FK → tblassets_group |
asset_location |
FK → tblasset_location |
Finansijska polja:
| Polje | Opis |
|---|---|
unit_price |
Cena po jedinici (DECIMAL 15,2) |
date_buy |
Datum nabavke |
warranty_period |
Period garancije u mesecima |
depreciation |
Korisni vek u mesecima (za izračunavanje amortizacije) |
Polja dobavljača: supplier_name, supplier_address, supplier_phone — čuvaju se inline, bez veze sa modulom Nabavka/Dobavljači.
Portal klijenta:
visible_to_client = 1— imovina se pojavljuje u portalu klijentabelongs_to— ID-ovi klijenata koji mogu videti imovinu (CSV)- Kontakt mora imati dozvolu
asset(permission_id = 7)
3. Akcije nad imovinom (kartice u interfejsu)
3a. Dodeljivanje
Gde: zapis imovine → dugme Dodeli
| Polje | Opis |
|---|---|
acction_to |
Zaposleni koji prima imovinu |
amount |
Dodeljena količina (maks = raspoložive zalihe) |
acction_location |
Lokacija predaje |
acction_reason |
Razlog dodeljivanja |
Raspoložive zalihe nakon dodeljivanja = amount - total_allocation.
3b. Oduzimanje
Gde: zapis imovine → dugme Oduzmi
Sistem AJAX proverava neto dodeljenu količinu za odabrani staffid. Ne možete oduzeti više nego što zaposleni ima dodeljeno.
3c. Oštećeno
Gde: zapis imovine → dugme Oštećeno
Označava jedinice kao oštećene. Ukupna količina se NE smanjuje — oštećene jedinice ostaju u inventaru dok se ne poprave ili rashoduju.
total_damages += amount → imovina se pojavljuje u kartici "Oštećeno".
3d. Garancija/Popravka
Gde: zapis imovine → dugme Garancija
Konvertuje oštećene jedinice → popravljene.
| Polje | Opis |
|---|---|
amount |
Popravljene jedinice (maks = total_damages - total_warranty) |
cost |
Trošak popravke (čuva se u acction_2, ne u Troškovima) |
total_warranty += amount, total_damages -= amount.
3e. Izgubljeno
Gde: zapis imovine → dugme Izgubljeno
Trajno uklanjanje iz inventara. amount -= amount, total_lost += amount.
3f. Rashodovanje / Otpis (Likvidacija)
Gde: zapis imovine → dugme Likvidacija
| Polje | Opis |
|---|---|
amount |
Rashodovane jedinice |
cost |
Vrednost oporavka/prodaje pri rashodovanju |
amount -= amount, total_liquidation += amount.
3g. Dodavanje zaliha (Dopuna)
Gde: zapis imovine → dugme Dopuna
Povećava inventar novim jedinicama (npr.: dodatna nabavka istog tipa). amount += amount, trošak = unit_price × dodate_količine.
4. Kartice za filtriranje (izvode se iz brojača)
| Kartica | Uslov |
|---|---|
| Sva imovina | bez filtera |
| Nije dodeljeno | total_allocation = 0 |
| U upotrebi | total_allocation > 0 |
| Likvidacija | total_liquidation > 0 |
| Garancija | total_warranty > 0 |
| Izgubljeno | total_lost > 0 |
| Oštećeno | total_damages > 0 |
5. Izveštaj o amortizaciji
Gde: /admin/assets/depreciation
Može se filtrirati po grupi i po pojedinačnoj imovini. Izračunavanje u realnom vremenu:
meseci_proteklo = (danas - date_buy) / (60×60×24×31)
mesečna_amortizacija = (unit_price × amount) / depreciation
ukupna_amortizacija = meseci_proteklo × mesečna_amortizacija
ostatak_vrednosti = (unit_price × amount) - ukupna_amortizacija
Ne generišu se automatski računovodstveni unosi — izveštaj je informativan.
Potrebne dozvole
| Dozvola | Pristup |
|---|---|
assets → view |
Pregled lista, detalja, izveštaja |
assets → create |
Kreiranje nove imovine |
assets → edit |
Sve akcije životnog ciklusa (dodeljivanje, oduzimanje, oštećeno, garancija, izgubljeno, likvidacija, dopuna) |
assets → delete |
Brisanje imovine + brisanje priloženog fajla |
| Podešavanja lokacija imovine | Isključivo is_admin() |
Česte greške
| Problem | Uzrok | Rešenje |
|---|---|---|
| Ne može se dodeliti — polje amount je 0 | Raspoložive zalihe = amount - total_allocation = 0 |
Dodajte nove zalihe (Dopuna) ili oduzmite od drugog zaposlenog |
| Popravka "Garancija" se ne pojavljuje | total_damages = 0 ili total_damages <= total_warranty |
Prvo prijavite jedinice kao Oštećeno |
| Rashodovanje (Likvidacija) smanjuje količinu | Ispravno ponašanje — Likvidacija trajno smanjuje amount |
Koristite Oštećeno (ne Likvidaciju) ako nameravate da popravite |
| Amortizacija prikazuje negativnu vrednost | depreciation = 0 ili amount = 0 u zapisu |
Postavite depreciation (meseci) pri kreiranju |
| Imovina se ne pojavljuje u portalu klijenta | visible_to_client = 0 ili klijent nije u belongs_to |
Postavite oba polja u zapisu imovine |
| Ne može se obrisati lokacija | Lokacija se koristi na postojećoj imovini | Prvo rasporedite imovinu na drugu lokaciju |
Reference modula
- Upravljanje flotom — vozila (odvojeni modul, bez veze sa Imovinom)
- Troškovi — troškovi (ne generišu se automatski iz Imovine)
- HR — Zaposleni — zaposleni kojima se dodeljuje imovina