Prodaja: popust se pravilno primenjuje u PDV obračunu (KIR, cena_bez_pdv, fiskalizacija)
KirIzProdaje je za B2B fakture upisivao pun (nediskontovan) iznos u KIR, ignorišući popust_procenat — PDV evidencija je bila precenjena za stavke sa popustom. Isti propust je postojao u ProdajaRepo.Kreiraj (cena_bez_pdv/pdv_iznos po stavci računati bez popusta, dok je ukupno polje popust uračunavalo). fiskal.NapraviZahtev je to slučajno kompenzovao ponovnim primenjivanjem popusta nad već (pogrešno) nediskontovanom vrednošću iz baze — sad bi to duplo diskontovalo, pa je uklonjeno. Usput ispravljena i dva zastarela testa koja su pogrešno pretpostavljala da je CenaPoKomadu bruto cena (aktuelna semantika, potvrđena i u ntech.js, jeste neto).
This commit is contained in:
@@ -62,13 +62,14 @@ func NapraviZahtev(
|
||||
if s.PdvStopa > 0 {
|
||||
stopa = s.PdvStopa
|
||||
}
|
||||
// CenaPoKomadu je neto cena — konvertujemo u bruto; popust umanjuje neto cenu pre PDV-a
|
||||
// CenaBezPdv iz baze je već diskontovana (popust primenjen pri kreiranju naloga);
|
||||
// popust se ponovo primenjuje samo u fallback grani kad CenaBezPdv nije popunjena.
|
||||
netoCena := s.CenaBezPdv
|
||||
if netoCena == 0 {
|
||||
netoCena = s.CenaPoKomadu
|
||||
}
|
||||
if s.PopustProcenat > 0 {
|
||||
netoCena = math.Round(netoCena*(1-s.PopustProcenat/100)*100) / 100
|
||||
if s.PopustProcenat > 0 {
|
||||
netoCena = math.Round(netoCena*(1-s.PopustProcenat/100)*100) / 100
|
||||
}
|
||||
}
|
||||
brutoCena := BrutoCena(netoCena, stopa)
|
||||
brutoTotal := math.Round(brutoCena*float64(s.Kolicina)*100) / 100
|
||||
|
||||
Reference in New Issue
Block a user