diff --git a/internal/db/sqlite/trosak.go b/internal/db/sqlite/trosak.go index cbed94f..93cb340 100644 --- a/internal/db/sqlite/trosak.go +++ b/internal/db/sqlite/trosak.go @@ -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 } diff --git a/internal/db/sqlite/usluga.go b/internal/db/sqlite/usluga.go index 8db77c6..e421431 100644 --- a/internal/db/sqlite/usluga.go +++ b/internal/db/sqlite/usluga.go @@ -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 } diff --git a/internal/db/sqlite/utils.go b/internal/db/sqlite/utils.go index 4f058ab..77ec141 100644 --- a/internal/db/sqlite/utils.go +++ b/internal/db/sqlite/utils.go @@ -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) +}