Prodaja: skener barkoda, prilagodjeni dropdown artikala, ispravka cena sa/bez PDV-a po rezimu

This commit is contained in:
2026-07-01 19:16:34 +02:00
parent fedd4b5d60
commit 8730acc599
6 changed files with 208 additions and 60 deletions
+9 -7
View File
@@ -81,7 +81,8 @@ func TestProdajaKreiraj_NedovoljnoStanja(t *testing.T) {
}
// TestProdajaKreiraj_PdvAutoKalkulacija: kada CenaBezPdv=0 a PdvStopa>0,
// cena_bez_pdv i pdv_iznos se automatski računaju iz neto cene (CenaPoKomadu je neto).
// cena_bez_pdv i pdv_iznos se automatski izdvajaju naniže iz bruto cene
// (CenaPoKomadu je kod punog PDV obveznika cena za naplatu, sa PDV-om).
func TestProdajaKreiraj_PdvAutoKalkulacija(t *testing.T) {
ctx := context.Background()
baza := testDB(t)
@@ -92,13 +93,14 @@ func TestProdajaKreiraj_PdvAutoKalkulacija(t *testing.T) {
Naziv: "Tastatura", Tip: model.TipProizvod, Kolicina: 10,
})
// neto cena 1000, PDV 20% → pdv_iznos = 200
_, err := prodRepo.Kreiraj(ctx, &model.ProdajniNalog{
BrojNaloga: "PR-PDV-001", Ukupno: 1000, NacinPlacanja: "gotovina", Datum: time.Now(),
}, []model.StavkaProdaje{
{ArtikalID: artID, Kolicina: 1, CenaPoKomadu: 1000, PdvStopa: 20},
// bruto cena 1200, PDV 20% → cena_bez_pdv = 1000, pdv_iznos = 200
stavke := []model.StavkaProdaje{
{ArtikalID: artID, Kolicina: 1, CenaPoKomadu: 1200, PdvStopa: 20},
// CenaBezPdv=0 namerno — treba da se auto-izračuna
}, nil)
}
_, err := prodRepo.Kreiraj(ctx, &model.ProdajniNalog{
BrojNaloga: "PR-PDV-001", Ukupno: 1200, NacinPlacanja: "gotovina", Datum: time.Now(),
}, stavke, nil)
if err != nil {
t.Fatalf("Kreiraj: %v", err)
}