Migracija 092: popust_procenat na stavke_prodaje. Model: PopustProcenat u StavkaProdaje, KategorijaNaziv u StavkaProdajeSaArtiklom. Repo: pretraga prodaje proširena na klijenta i napomenu. DohvatiStavke dodaje popust i kategoriju. Kreiraj primenjuje popust na ukupno. Handler: artikalUJSONSaCenom proširen sa sifra, barkod, cena_sa_pdv, kategorija_naziv. parseFormuProdaje parsira popust. ObrisiProdaju sada koristi storno (zabrana fizičkog brisanja). JS: prodajaForma ažurirana — pretraga artikala po nazivu/šifri/barkodu, popust polje, kategorija, kalkulacija sa popustom. Forma: pretraga artikala, popust kolona, kategorija, PDV režim (cena/cena_sa_pdv). Responsive desktop+mobilne kartice. Detalji: kategorija ispod naziva, popust kolona, 'Ukloni nalog' (storno) umesto 'Obriši'.
50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
package model
|
||
|
||
import "time"
|
||
|
||
// ProdajniNalog predstavlja zaglavlje jedne prodaje
|
||
type ProdajniNalog struct {
|
||
ID int64
|
||
KlijentID *int64
|
||
BrojNaloga string
|
||
Napomena string
|
||
Ukupno float64
|
||
NacinPlacanja string
|
||
Stornirano bool
|
||
RazlogStorniranja string
|
||
Datum time.Time
|
||
}
|
||
|
||
// StavkaProdaje predstavlja jednu liniju (artikal) unutar prodaje
|
||
type StavkaProdaje struct {
|
||
ID int64
|
||
NalogID int64
|
||
ArtikalID int64
|
||
Kolicina int
|
||
CenaPoKomadu float64
|
||
PopustProcenat float64 // rabat u procentima (npr. 10 = 10% popusta)
|
||
Ukupno float64
|
||
PdvStopa float64
|
||
PdvIznos float64
|
||
CenaBezPdv float64
|
||
}
|
||
|
||
// UkupnoBezPdv vraća ukupno bez PDV-a za stavku (CenaBezPdv × količina)
|
||
func (s StavkaProdaje) UkupnoBezPdv() float64 {
|
||
return s.CenaBezPdv * float64(s.Kolicina)
|
||
}
|
||
|
||
// ProdajniNalogSaDetaljem je nalog sa nazivom klijenta — za prikaz u listi
|
||
type ProdajniNalogSaDetaljem struct {
|
||
ProdajniNalog
|
||
KlijentNaziv string
|
||
}
|
||
|
||
// StavkaProdajeSaArtiklom je stavka prodaje sa nazivom artikla — za prikaz u detaljima
|
||
type StavkaProdajeSaArtiklom struct {
|
||
StavkaProdaje
|
||
ArtikalNaziv string
|
||
JedinicaMere string
|
||
KategorijaNaziv string
|
||
}
|