Klijenti: adresa (obavezna za pravna lica) + prikaz svih podataka klijenta u Novoj prodaji

Zakon o PDV (čl. 42, sadržaj računa) zahteva adresu kupca na fakturi za
pravna lica — polje 'Mesto' (grad) samo nije dovoljno. Dodata kolona
adresa u klijenti, novo polje na formi, obavezno kad je tip pravno.

Kartica izabranog klijenta u Novoj prodaji sad prikazuje PIB/JMBG
(zavisno od tipa), adresu, mesto, telefon i email — svako popunjeno
polje u svom redu, samo kad je klijent već izabran.
This commit is contained in:
2026-07-01 16:05:13 +02:00
parent a8da9be706
commit 046fcace8e
8 changed files with 85 additions and 37 deletions
+6
View File
@@ -336,6 +336,11 @@ func parseFormuKlijenta(r *http.Request) (model.Klijent, string) {
return model.Klijent{Tip: tip}, "Za pravno lice obavezan je naziv firme."
}
adresa := strings.TrimSpace(r.FormValue("adresa"))
if tip == "pravno" && adresa == "" {
return model.Klijent{Tip: tip}, "Za pravno lice obavezna je adresa (zakon o PDV zahteva adresu kupca na fakturi)."
}
email := strings.TrimSpace(r.FormValue("email"))
if email != "" && !strings.Contains(email, "@") {
return model.Klijent{Tip: tip}, "Adresa e-pošte nije ispravna."
@@ -365,6 +370,7 @@ func parseFormuKlijenta(r *http.Request) (model.Klijent, string) {
Telefon: strings.TrimSpace(r.FormValue("telefon")),
Email: email,
Mesto: strings.TrimSpace(r.FormValue("mesto")),
Adresa: adresa,
Napomena: strings.TrimSpace(r.FormValue("napomena")),
}, ""
}
+23 -11
View File
@@ -104,23 +104,35 @@ func artikalUJSONSaCenom(artikli []model.ArtikalSaKategorijom) template.JS {
return template.JS(b)
}
// klijentiUJSON pretvara listu klijenata u template.JS vrednost za pretragu na strani klijenta (naziv, tip)
// klijentiUJSON pretvara listu klijenata u template.JS vrednost za pretragu na strani klijenta
// (naziv, tip za filter/prikaz u listi) i pun prikaz podataka kad je klijent izabran
// (PIB/JMBG, mesto, telefon, email — u zavisnosti od pravno/fizičko lice).
func klijentiUJSON(klijenti []model.Klijent) template.JS {
type stavka struct {
ID int64 `json:"id"`
Naziv string `json:"naziv"`
Tip string `json:"tip"`
Mesto string `json:"mesto"`
Telefon string `json:"telefon"`
ID int64 `json:"id"`
Naziv string `json:"naziv"`
Tip string `json:"tip"`
Mesto string `json:"mesto"`
Adresa string `json:"adresa"`
Telefon string `json:"telefon"`
PIB string `json:"pib"`
JMBG string `json:"jmbg"`
TipIdentifikacije string `json:"tipIdentifikacije"`
Email string `json:"email"`
}
lista := make([]stavka, 0, len(klijenti))
for _, k := range klijenti {
lista = append(lista, stavka{
ID: k.ID,
Naziv: k.PunoIme(),
Tip: k.Tip,
Mesto: k.Mesto,
Telefon: k.Telefon,
ID: k.ID,
Naziv: k.PunoIme(),
Tip: k.Tip,
Mesto: k.Mesto,
Adresa: k.Adresa,
Telefon: k.Telefon,
PIB: k.PIB,
JMBG: k.JMBG,
TipIdentifikacije: k.TipIdentifikacije,
Email: k.Email,
})
}
b, _ := json.Marshal(lista)