Files
GoNtech/internal/model/servis.go
T

91 lines
2.0 KiB
Go

package model
import (
"fmt"
"time"
)
// Statusi servisnog naloga
const (
StatusPrimljeno = "Primljeno"
StatusDijagnostika = "U dijagnostici"
StatusCekaDelove = "Čeka delove"
StatusUPopravci = "U popravci"
StatusZavrseno = "Završeno"
StatusPreuzeto = "Preuzeto"
)
// SviStatusi je uređena lista statusa za prikaz u dropdownu
var SviStatusi = []string{
StatusPrimljeno,
StatusDijagnostika,
StatusCekaDelove,
StatusUPopravci,
StatusZavrseno,
StatusPreuzeto,
}
// ServisniNalog predstavlja jedan servisni nalog
type ServisniNalog struct {
ID int64
KlijentID *int64
BrojNaloga string
Uredjaj string
SerijskiBroj string
OpisKvara string
Status string
CenaOd *float64
CenaDo *float64
CenaKonacna *float64
Avans *float64
Napomena string
DatumPrijema time.Time
DatumZavrsetka *time.Time
}
// ServisniNalogSaKlijentom proširuje ServisniNalog sa nazivom klijenta za prikaz u listi
type ServisniNalogSaKlijentom struct {
ServisniNalog
KlijentNaziv string
}
// KlijentIDVrednost vraća vrednost KlijentID pointera, ili 0 ako je nil
func (n ServisniNalog) KlijentIDVrednost() int64 {
if n.KlijentID == nil {
return 0
}
return *n.KlijentID
}
// 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)
}