PDV pravilo na štampanim dokumentima + fiksni layout + QR popravka

- PDV uslovi (Moduli.pdv) na: predračun, otpremnica, garantni list, prodaja_stampa
- Modal za preuzimanje: jedna cena (sa/bez PDV), ne duplo
- Javna status stranica: PDV uslovi za cene, predlog, checkbox-ove
- Svi print templejti: viewport=device-width+min-width, bez responsive
- JavniToken generisan za postojeće naloge bez tokena (QR popravka)
- UkupnoSaPdv() metode na ServisniRad i ServisniDeoSaArtiklom
- UkupnoBezPdv() na StavkaProdaje
This commit is contained in:
2026-06-27 02:06:18 +02:00
parent 8c6fc7e717
commit ff59c3edcf
15 changed files with 335 additions and 183 deletions
+3 -2
View File
@@ -22,7 +22,7 @@ func NoviServisniRadoviRepo(baza *sql.DB) *ServisniRadoviRepo {
func (r *ServisniRadoviRepo) DohvatiZaNalog(ctx context.Context, nalogID int64) ([]model.ServisniRad, error) {
redovi, err := r.db.QueryContext(ctx, `
SELECT sr.id, sr.nalog_id, COALESCE(sr.usluga_id, 0), sr.naziv, sr.kolicina, sr.cena_komada, sr.datum, sr.predlozeno,
COALESCE(u.sifra, '')
COALESCE(u.sifra, ''), COALESCE(u.pdv_stopa, 20.0)
FROM servis_radovi sr
LEFT JOIN usluge u ON u.id = sr.usluga_id
WHERE sr.nalog_id = ? ORDER BY sr.id`, nalogID)
@@ -34,9 +34,10 @@ func (r *ServisniRadoviRepo) DohvatiZaNalog(ctx context.Context, nalogID int64)
var radovi []model.ServisniRad
for redovi.Next() {
var rad model.ServisniRad
if err := redovi.Scan(&rad.ID, &rad.NalogID, &rad.UslugaID, &rad.Naziv, &rad.Kolicina, &rad.CenaKomada, &rad.Datum, &rad.Predlozeno, &rad.Sifra); err != nil {
if err := redovi.Scan(&rad.ID, &rad.NalogID, &rad.UslugaID, &rad.Naziv, &rad.Kolicina, &rad.CenaKomada, &rad.Datum, &rad.Predlozeno, &rad.Sifra, &rad.PdvStopa); err != nil {
return nil, fmt.Errorf("ntech: ServisniRadoviRepo.DohvatiZaNalog: %w", err)
}
rad.CenaSaPdv = rad.CenaKomada * (1 + rad.PdvStopa/100)
radovi = append(radovi, rad)
}
return radovi, redovi.Err()