Servis detalji: radovi (usluge) na nalogu + UX popravke

Nova sekcija Radovi: biraš uslugu iz cenovnika (pretraživ datalist combobox),
cena se predloži ali je možeš izmeniti, količina; zbir radova = cena rada,
ukupno = radovi + delovi. Tabela servis_radovi + repo + handleri.
Combobox pretraga i za artikle (delovi). Skinuta kartica Cene sa detalja.
Dodavanje/brisanje rada i dela osvežava samo svoju tabelu (data-refresh) bez
skoka na vrh i treptaja; data-potvrda sada koristi requestSubmit da prolazi kroz
AJAX logiku. Popravljen CSRF (_csrf) i tip kolone datum kod radova.
This commit is contained in:
2026-06-22 00:17:12 +02:00
parent 9a8e9a00cf
commit 1637f65f95
9 changed files with 361 additions and 88 deletions
+17
View File
@@ -70,6 +70,23 @@ type ServisniDeoSaArtiklom struct {
ArtikalNaziv string
}
// ServisniRad predstavlja jednu stavku rada (uslugu) na servisnom nalogu.
// Naziv i cena su snapshot iz cenovnika usluga; cena se može menjati po nalogu.
type ServisniRad struct {
ID int64
NalogID int64
UslugaID int64 // 0 ako je usluga u međuvremenu obrisana iz cenovnika
Naziv string
Kolicina float64
CenaKomada float64
Datum string
}
// Ukupno vraća ukupnu vrednost rada (kolicina × cena)
func (r ServisniRad) Ukupno() float64 {
return r.Kolicina * r.CenaKomada
}
// ServisniNalogSaKlijentom proširuje ServisniNalog sa nazivom klijenta za prikaz u listi
type ServisniNalogSaKlijentom struct {
ServisniNalog