Ispravka: Usluge/Troškovi se nisu učitavali (regresija iz DatumUnosa time.Time izmene)
usluge.datum_unosa i troskovi.datum_unosa su TEXT kolone (ne DATETIME) — modernc.org/sqlite driver za njih vraća string, ne time.Time, pa je Scan direktno u *time.Time pucao sa "unsupported Scan ... string into *time.Time". Dodat parseDatumUnosa helper (ručni time.Parse), koriste ga skenirajUslugu/skenirajTrosak umesto oslanjanja na driver auto-konverziju.
This commit is contained in:
@@ -26,11 +26,15 @@ func skenirajTrosak(s interface {
|
||||
var t model.Trosak
|
||||
var sifra sql.NullString
|
||||
var arhiviran int
|
||||
if err := s.Scan(&t.ID, &sifra, &t.Naziv, &t.Cena, &t.Opis, &arhiviran, &t.DatumUnosa); err != nil {
|
||||
var datumUnosa string
|
||||
if err := s.Scan(&t.ID, &sifra, &t.Naziv, &t.Cena, &t.Opis, &arhiviran, &datumUnosa); err != nil {
|
||||
return t, err
|
||||
}
|
||||
t.Sifra = sifra.String
|
||||
t.Arhiviran = arhiviran == 1
|
||||
if parsed, err := parseDatumUnosa(datumUnosa); err == nil {
|
||||
t.DatumUnosa = parsed
|
||||
}
|
||||
return t, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -26,11 +26,15 @@ func skenirajUslugu(s interface {
|
||||
var u model.Usluga
|
||||
var sifra sql.NullString
|
||||
var arhiviran int
|
||||
if err := s.Scan(&u.ID, &sifra, &u.Naziv, &u.Kategorija, &u.JedinicaMere, &u.Cena, &u.PdvStopa, &u.Opis, &arhiviran, &u.DatumUnosa); err != nil {
|
||||
var datumUnosa string
|
||||
if err := s.Scan(&u.ID, &sifra, &u.Naziv, &u.Kategorija, &u.JedinicaMere, &u.Cena, &u.PdvStopa, &u.Opis, &arhiviran, &datumUnosa); err != nil {
|
||||
return u, err
|
||||
}
|
||||
u.Sifra = sifra.String
|
||||
u.Arhiviran = arhiviran == 1
|
||||
if t, err := parseDatumUnosa(datumUnosa); err == nil {
|
||||
u.DatumUnosa = t
|
||||
}
|
||||
return u, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -55,3 +55,11 @@ func nullDateString(v *time.Time) sql.NullString {
|
||||
}
|
||||
return sql.NullString{String: v.Format("2006-01-02"), Valid: true}
|
||||
}
|
||||
|
||||
// parseDatumUnosa parsira "YYYY-MM-DD HH:MM:SS" iz kolone deklarisane kao TEXT
|
||||
// (npr. usluge/troskovi.datum_unosa, `DEFAULT (datetime('now'))`). Driver
|
||||
// vraća string umesto time.Time za TEXT kolone (za razliku od DATETIME kolona
|
||||
// koje driver sam parsira), pa Scan ne može direktno u *time.Time.
|
||||
func parseDatumUnosa(s string) (time.Time, error) {
|
||||
return time.ParseInLocation("2006-01-02 15:04:05", s, time.UTC)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user