Servis: predviđen datum popravke (prijem + rok iz podešavanja, readonly)
This commit is contained in:
@@ -51,6 +51,7 @@ type PodaciPodesavanja struct {
|
||||
KalkulacijaMarza string
|
||||
ServisGarancijaMeseci string
|
||||
PredracunRokDana string
|
||||
PredvidjenRokDana string
|
||||
LoginPozadina string
|
||||
LoginPozadinaOpacity string
|
||||
LoginPozadinaBlurPozadine string
|
||||
@@ -393,6 +394,19 @@ func (h *Handler) SacuvajPodesavanja(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
}
|
||||
|
||||
if v := strings.TrimSpace(r.FormValue("predvidjen_rok_dana")); v != "" {
|
||||
n, err := strconv.Atoi(v)
|
||||
if err != nil || n < 1 || n > 365 {
|
||||
middleware.SetFlash(w, r, h.DB, "greska", "Predviđen rok popravke mora biti broj između 1 i 365 dana.")
|
||||
http.Redirect(w, r, sledeci, http.StatusSeeOther)
|
||||
return
|
||||
}
|
||||
if err := ntechsqlite.SacuvajPodesavanje(r.Context(), h.DB, "predvidjen_rok_dana", strconv.Itoa(n)); err != nil {
|
||||
http.Error(w, "Greška pri čuvanju podešavanja", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
http.Redirect(w, r, sledeci+"?sacuvano=1", http.StatusSeeOther)
|
||||
}
|
||||
|
||||
@@ -767,6 +781,7 @@ func (h *Handler) napuniPodaciPodesavanja(r *http.Request, naslov string) (Podac
|
||||
KalkulacijaMarza: vrednostIliDefault(podesavanja, "kalkulacija_marza", "20"),
|
||||
ServisGarancijaMeseci: vrednostIliDefault(podesavanja, "servis_garancija_meseci", "2"),
|
||||
PredracunRokDana: vrednostIliDefault(podesavanja, "predracun_rok_dana", "7"),
|
||||
PredvidjenRokDana: vrednostIliDefault(podesavanja, "predvidjen_rok_dana", "15"),
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -451,6 +451,10 @@ func (h *Handler) DetaljiNaloga(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
// predviđen datum popravke je izvedena vrednost (samo prikaz):
|
||||
// datum prijema + broj dana iz podešavanja (predvidjen_rok_dana)
|
||||
nalog.PredvidjenDatum = defaultPredvidjenDatum(nalog.DatumPrijema, podesavanja)
|
||||
|
||||
klijentNaziv := ""
|
||||
if nalog.KlijentID != nil {
|
||||
klijent, err := h.KlijentiRepo.DohvatiID(r.Context(), *nalog.KlijentID)
|
||||
@@ -908,6 +912,17 @@ func defaultGarancija(datumPrijema time.Time, podesavanja map[string]string) *ti
|
||||
return &t
|
||||
}
|
||||
|
||||
// defaultPredvidjenDatum računa predviđen rok popravke kao datum prijema + broj
|
||||
// dana iz podešavanja (predvidjen_rok_dana, podrazumevano 15)
|
||||
func defaultPredvidjenDatum(datumPrijema time.Time, podesavanja map[string]string) *time.Time {
|
||||
dana, err := strconv.Atoi(vrednostIliDefault(podesavanja, "predvidjen_rok_dana", "15"))
|
||||
if err != nil || dana <= 0 {
|
||||
return nil
|
||||
}
|
||||
t := datumPrijema.AddDate(0, 0, dana)
|
||||
return &t
|
||||
}
|
||||
|
||||
// parseOpcionuCenu pretvara string u *float64 — prazno polje ili neispravna vrednost vraća nil
|
||||
func parseOpcionuCenu(s string) *float64 {
|
||||
s = strings.TrimSpace(s)
|
||||
|
||||
Reference in New Issue
Block a user