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
|
KalkulacijaMarza string
|
||||||
ServisGarancijaMeseci string
|
ServisGarancijaMeseci string
|
||||||
PredracunRokDana string
|
PredracunRokDana string
|
||||||
|
PredvidjenRokDana string
|
||||||
LoginPozadina string
|
LoginPozadina string
|
||||||
LoginPozadinaOpacity string
|
LoginPozadinaOpacity string
|
||||||
LoginPozadinaBlurPozadine 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)
|
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"),
|
KalkulacijaMarza: vrednostIliDefault(podesavanja, "kalkulacija_marza", "20"),
|
||||||
ServisGarancijaMeseci: vrednostIliDefault(podesavanja, "servis_garancija_meseci", "2"),
|
ServisGarancijaMeseci: vrednostIliDefault(podesavanja, "servis_garancija_meseci", "2"),
|
||||||
PredracunRokDana: vrednostIliDefault(podesavanja, "predracun_rok_dana", "7"),
|
PredracunRokDana: vrednostIliDefault(podesavanja, "predracun_rok_dana", "7"),
|
||||||
|
PredvidjenRokDana: vrednostIliDefault(podesavanja, "predvidjen_rok_dana", "15"),
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -451,6 +451,10 @@ func (h *Handler) DetaljiNaloga(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
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 := ""
|
klijentNaziv := ""
|
||||||
if nalog.KlijentID != nil {
|
if nalog.KlijentID != nil {
|
||||||
klijent, err := h.KlijentiRepo.DohvatiID(r.Context(), *nalog.KlijentID)
|
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
|
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
|
// parseOpcionuCenu pretvara string u *float64 — prazno polje ili neispravna vrednost vraća nil
|
||||||
func parseOpcionuCenu(s string) *float64 {
|
func parseOpcionuCenu(s string) *float64 {
|
||||||
s = strings.TrimSpace(s)
|
s = strings.TrimSpace(s)
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ type ServisniNalog struct {
|
|||||||
Napomena string
|
Napomena string
|
||||||
GarancijaDo *time.Time
|
GarancijaDo *time.Time
|
||||||
DatumPrijema time.Time
|
DatumPrijema time.Time
|
||||||
|
PredvidjenDatum *time.Time
|
||||||
DatumZavrsetka *time.Time
|
DatumZavrsetka *time.Time
|
||||||
Ostecenja string
|
Ostecenja string
|
||||||
PinUredjaja string
|
PinUredjaja string
|
||||||
|
|||||||
@@ -45,6 +45,18 @@
|
|||||||
</div>
|
</div>
|
||||||
</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>
|
||||||
|
|
||||||
<div style="display:flex;justify-content:flex-end;margin-top:20px;">
|
<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: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 style="font-size:14px;color:var(--tekst-glavni);">{{.Nalog.DatumPrijema.Format "02.01.2006. u 15:04"}}</div>
|
||||||
</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}}
|
{{if .Nalog.DatumZavrsetka}}
|
||||||
<div>
|
<div>
|
||||||
<div style="font-size:12px;color:var(--tekst-sporedni);margin-bottom:4px;">Datum završetka</div>
|
<div style="font-size:12px;color:var(--tekst-sporedni);margin-bottom:4px;">Datum završetka</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user