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)
|
||||
|
||||
@@ -41,6 +41,7 @@ type ServisniNalog struct {
|
||||
Napomena string
|
||||
GarancijaDo *time.Time
|
||||
DatumPrijema time.Time
|
||||
PredvidjenDatum *time.Time
|
||||
DatumZavrsetka *time.Time
|
||||
Ostecenja string
|
||||
PinUredjaja string
|
||||
|
||||
@@ -45,6 +45,18 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="max-width:280px;">
|
||||
<label for="predvidjen_rok_dana" class="polje-labela">
|
||||
Predviđen rok popravke (dana)
|
||||
</label>
|
||||
<input type="number" id="predvidjen_rok_dana" name="predvidjen_rok_dana"
|
||||
min="1" max="365" value="{{.PredvidjenRokDana}}"
|
||||
style="width:100%;">
|
||||
<div class="pomocni-tekst" style="margin-top:6px;">
|
||||
Automatski se upisuje pri prijemu (datum prijema + ovaj broj dana). Možeš ga promeniti na svakom nalogu.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div style="display:flex;justify-content:flex-end;margin-top:20px;">
|
||||
|
||||
@@ -86,6 +86,12 @@
|
||||
<div style="font-size:12px;color:var(--tekst-sporedni);margin-bottom:4px;">Datum prijema</div>
|
||||
<div style="font-size:14px;color:var(--tekst-glavni);">{{.Nalog.DatumPrijema.Format "02.01.2006. u 15:04"}}</div>
|
||||
</div>
|
||||
{{if .Nalog.PredvidjenDatum}}
|
||||
<div>
|
||||
<div style="font-size:12px;color:var(--tekst-sporedni);margin-bottom:4px;">Predviđen datum popravke</div>
|
||||
<div style="font-size:14px;color:var(--tekst-glavni);">{{.Nalog.PredvidjenDatum.Format "02.01.2006."}}</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{if .Nalog.DatumZavrsetka}}
|
||||
<div>
|
||||
<div style="font-size:12px;color:var(--tekst-sporedni);margin-bottom:4px;">Datum završetka</div>
|
||||
|
||||
Reference in New Issue
Block a user