feat(nabavka): kalkulacija — formiranje prodajne cene pri nabavci (Faza B)
Po stavci nabavke: marža% (predpopunjena globalnom iz podešavanja, kalkulacija_marza) i prodajna cena = nabavna × (1+marža/100) × (1+PDV/100), živo računato u Alpine, izmenjivo. Na čuvanje se ažurira nabavna+prodajna cena artikla (ArtikalRepo.AzurirajCene) i upiše nivelacija 'kalkulacija'; prazna/nulta prodajna se preskače. ArtikliJSON nosi pdv_stopa. Postavka podrazumevane marže u Podešavanja → Sistem.
This commit is contained in:
@@ -42,6 +42,7 @@ type PodaciPodesavanja struct {
|
||||
Backupi []BackupInfo
|
||||
BackupIntervalSati string
|
||||
BackupBrojKopija string
|
||||
KalkulacijaMarza string
|
||||
LoginPozadina string
|
||||
LoginPozadinaOpacity string
|
||||
LoginPozadinaBlurPozadine string
|
||||
@@ -288,6 +289,20 @@ func (h *Handler) SacuvajPodesavanja(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
}
|
||||
|
||||
// podrazumevana marža za kalkulaciju (procenat, 0–1000)
|
||||
if v := strings.TrimSpace(r.FormValue("kalkulacija_marza")); v != "" {
|
||||
marza, err := strconv.ParseFloat(strings.Replace(v, ",", ".", 1), 64)
|
||||
if err != nil || marza < 0 || marza > 1000 {
|
||||
middleware.SetFlash(w, r, h.DB, "greska", "Marža mora biti broj između 0 i 1000.")
|
||||
http.Redirect(w, r, sledeci, http.StatusSeeOther)
|
||||
return
|
||||
}
|
||||
if err := ntechsqlite.SacuvajPodesavanje(r.Context(), h.DB, "kalkulacija_marza", strconv.FormatFloat(marza, 'f', -1, 64)); err != nil {
|
||||
http.Error(w, "Greška pri čuvanju podešavanja", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
http.Redirect(w, r, sledeci+"?sacuvano=1", http.StatusSeeOther)
|
||||
}
|
||||
|
||||
@@ -627,6 +642,7 @@ func (h *Handler) napuniPodaciPodesavanja(r *http.Request, naslov string) (Podac
|
||||
LoginPozadinaZatamnjenjeKartice: vrednostIliDefault(podesavanja, "login_pozadina_zatamnjenje_kartice", "0"),
|
||||
BackupIntervalSati: vrednostIliDefault(podesavanja, "backup_interval_sati", "24"),
|
||||
BackupBrojKopija: vrednostIliDefault(podesavanja, "backup_broj_kopija", "7"),
|
||||
KalkulacijaMarza: vrednostIliDefault(podesavanja, "kalkulacija_marza", "20"),
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user