Dodavanje modula servisa — lista, forma, detalji, brisanje, helper metode za cene

This commit is contained in:
2026-06-02 17:35:04 +02:00
parent 70c035b679
commit d3b4bb329d
3 changed files with 52 additions and 11 deletions
+12 -6
View File
@@ -177,24 +177,30 @@ func scanNalog(scan func(...any) error, n *model.ServisniNalog, klijentNaziv *st
}
if klijentID.Valid {
n.KlijentID = &klijentID.Int64
v := klijentID.Int64
n.KlijentID = &v
}
n.SerijskiBroj = serijskiBroj.String
n.Napomena = napomena.String
if cenaOd.Valid {
n.CenaOd = &cenaOd.Float64
v := cenaOd.Float64
n.CenaOd = &v
}
if cenaDo.Valid {
n.CenaDo = &cenaDo.Float64
v := cenaDo.Float64
n.CenaDo = &v
}
if cenaKonacna.Valid {
n.CenaKonacna = &cenaKonacna.Float64
v := cenaKonacna.Float64
n.CenaKonacna = &v
}
if avans.Valid {
n.Avans = &avans.Float64
v := avans.Float64
n.Avans = &v
}
if datumZavrsetka.Valid {
n.DatumZavrsetka = &datumZavrsetka.Time
v := datumZavrsetka.Time
n.DatumZavrsetka = &v
}
return nil
+36 -1
View File
@@ -1,6 +1,9 @@
package model
import "time"
import (
"fmt"
"time"
)
// Statusi servisnog naloga
const (
@@ -45,3 +48,35 @@ type ServisniNalogSaKlijentom struct {
ServisniNalog
KlijentNaziv string
}
// CenaOdStr vraća formatiranu procenu od, ili prazan string ako nije uneta
func (n ServisniNalog) CenaOdStr() string {
if n.CenaOd == nil {
return ""
}
return fmt.Sprintf("%.2f", *n.CenaOd)
}
// CenaDoStr vraća formatiranu procenu do, ili prazan string ako nije uneta
func (n ServisniNalog) CenaDoStr() string {
if n.CenaDo == nil {
return ""
}
return fmt.Sprintf("%.2f", *n.CenaDo)
}
// CenaKonacnaStr vraća formatiranu konačnu cenu, ili prazan string ako nije uneta
func (n ServisniNalog) CenaKonacnaStr() string {
if n.CenaKonacna == nil {
return ""
}
return fmt.Sprintf("%.2f", *n.CenaKonacna)
}
// AvansStr vraća formatirani avans, ili prazan string ako nije unet
func (n ServisniNalog) AvansStr() string {
if n.Avans == nil {
return ""
}
return fmt.Sprintf("%.2f", *n.Avans)
}
+4 -4
View File
@@ -146,25 +146,25 @@
<div>
<div style="font-size:12px;color:var(--tekst-sporedni);margin-bottom:4px;">Procena od</div>
<div style="font-size:16px;font-weight:500;color:var(--tekst-glavni);">
{{with .Nalog.CenaOd}}{{printf "%.2f" .}} din{{else}}—{{end}}
{{if .Nalog.CenaOd}}{{.Nalog.CenaOdStr}} din{{else}}—{{end}}
</div>
</div>
<div>
<div style="font-size:12px;color:var(--tekst-sporedni);margin-bottom:4px;">Procena do</div>
<div style="font-size:16px;font-weight:500;color:var(--tekst-glavni);">
{{with .Nalog.CenaDo}}{{printf "%.2f" .}} din{{else}}—{{end}}
{{if .Nalog.CenaDo}}{{.Nalog.CenaDoStr}} din{{else}}—{{end}}
</div>
</div>
<div>
<div style="font-size:12px;color:var(--tekst-sporedni);margin-bottom:4px;">Konačna cena</div>
<div style="font-size:20px;font-weight:600;color:var(--sb-akcent);">
{{with .Nalog.CenaKonacna}}{{printf "%.2f" .}} din{{else}}—{{end}}
{{if .Nalog.CenaKonacna}}{{.Nalog.CenaKonacnaStr}} din{{else}}—{{end}}
</div>
</div>
<div>
<div style="font-size:12px;color:var(--tekst-sporedni);margin-bottom:4px;">Avans</div>
<div style="font-size:16px;font-weight:500;color:var(--tekst-glavni);">
{{with .Nalog.Avans}}{{printf "%.2f" .}} din{{else}}—{{end}}
{{if .Nalog.Avans}}{{.Nalog.AvansStr}} din{{else}}—{{end}}
</div>
</div>
</div>