CRMconnect Azuvio · Docs

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 adminis_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 klijenta
  • belongs_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