Srednji prioritet iz pregleda koda: konzistentnost, refaktor, sitne popravke
- konstantno-vremensko poređenje CSRF tokena i kartica-PIN-a
- CSRF grupa proširena na /prijava, /prijava/totp, /setup
- router-level dozvola na svim /admin/podesavanja/* i modul("fiskalizacija")
na fiskal.pazar rutama
- KlijentRepo.Pronadji razlikuje sql.ErrNoRows od stvarnih DB grešaka
- izdvojen zajednički vratiStavkeNaStanje umesto 4 duplirana bloka
(ProdajaRepo/ServisRepo Storno/Obrisi)
- datumi u KIR/KPR sada se upisuju/porede kao "2006-01-02", usklađeno sa KPO
- ArtikalRepo.DohvatiVise (batch dohvat) — ukida N+1 upite u SacuvajNabavku
- KategorijaRepo.Obrisi umesto direktnog SQL-a u handleru, sa
ErrKategorijaUUpotrebi porukom
- KolicinMin -> KolicinaMin (tipfeler), Trosak/Usluga.DatumUnosa string -> time.Time
- dedup OznakaPoreskogBroja (KIR/KPR)
- inicijali() template funkcija (rune, ne bajtovi) za avatar inicijale
This commit is contained in:
@@ -20,7 +20,7 @@ type Artikal struct {
|
||||
Tip string // proizvod | usluga | trosak
|
||||
JedinicaMere string // kom, sat, set, m, l, kg ...
|
||||
Kolicina int
|
||||
KolicinMin int
|
||||
KolicinaMin int
|
||||
Lokacija string
|
||||
NabavnaCena float64
|
||||
ProdajnaCena float64
|
||||
|
||||
@@ -78,7 +78,7 @@ type StanjeZalihaRed struct {
|
||||
Sifra string
|
||||
Kategorija string
|
||||
Kolicina int
|
||||
KolicinMin int
|
||||
KolicinaMin int
|
||||
NabavnaCena float64
|
||||
ProdajnaCena float64
|
||||
CenaSaPdv float64
|
||||
|
||||
@@ -37,8 +37,14 @@ func (k PdvKir) OslobodenUkupno() float64 {
|
||||
// OznakaPoreskogBroja vraća „JMBG" ako uneti broj ima 13 cifara (fizičko lice),
|
||||
// inače „PIB" (pravno lice / preduzetnik — PIB ima 9 cifara).
|
||||
func (k PdvKir) OznakaPoreskogBroja() string {
|
||||
return oznakaPoreskogBroja(k.KupacPib)
|
||||
}
|
||||
|
||||
// oznakaPoreskogBroja broji cifre u poreskom broju i vraća „JMBG" (13 cifara)
|
||||
// ili „PIB" (ostalo) — zajednička logika za KIR (kupac) i KPR (dobavljač).
|
||||
func oznakaPoreskogBroja(poreskiBroj string) string {
|
||||
cifre := 0
|
||||
for _, r := range k.KupacPib {
|
||||
for _, r := range poreskiBroj {
|
||||
if r >= '0' && r <= '9' {
|
||||
cifre++
|
||||
}
|
||||
@@ -244,16 +250,7 @@ func KprStorno(original PdvKpr, razlog string, datumStorna time.Time) PdvKpr {
|
||||
|
||||
// OznakaPoreskogBroja vraća „JMBG" za 13-cifreni broj, inače „PIB" (dobavljači su obično firme).
|
||||
func (k PdvKpr) OznakaPoreskogBroja() string {
|
||||
cifre := 0
|
||||
for _, r := range k.DobavljacPib {
|
||||
if r >= '0' && r <= '9' {
|
||||
cifre++
|
||||
}
|
||||
}
|
||||
if cifre == 13 {
|
||||
return "JMBG"
|
||||
}
|
||||
return "PIB"
|
||||
return oznakaPoreskogBroja(k.DobavljacPib)
|
||||
}
|
||||
|
||||
// PdvKprSume su zbirovi kolona KPR-a (za red „ukupno" u pregledu knjige).
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package model
|
||||
|
||||
import "time"
|
||||
|
||||
// Trosak je stavka šifrarnika vrsta troškova (npr. Prevoz, Carina, Ambalaža).
|
||||
// To je katalog dodatnih troškova koji se vezuju za radni nalog i ulaze u cenu
|
||||
// koštanja. NIJE evidencija rashoda firme (struja, kirija) — to je poseban modul.
|
||||
@@ -10,5 +12,5 @@ type Trosak struct {
|
||||
Cena float64
|
||||
Opis string
|
||||
Arhiviran bool
|
||||
DatumUnosa string
|
||||
DatumUnosa time.Time
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package model
|
||||
|
||||
import "time"
|
||||
|
||||
// Usluga je stavka cenovnika usluga (npr. čišćenje laptopa, zamena ventilatora).
|
||||
// Za razliku od artikla, usluga ne prati lager i nema nabavnu cenu ni dobavljače —
|
||||
// ima samo cenu usluge i PDV stopu. Kategorija je tekstualna oznaka.
|
||||
@@ -13,7 +15,7 @@ type Usluga struct {
|
||||
PdvStopa float64
|
||||
Opis string
|
||||
Arhiviran bool
|
||||
DatumUnosa string
|
||||
DatumUnosa time.Time
|
||||
}
|
||||
|
||||
func (u Usluga) CenaSaPdv() float64 {
|
||||
|
||||
Reference in New Issue
Block a user