diff --git a/internal/handler/servis.go b/internal/handler/servis.go
index 7ec5d60..36245ab 100644
--- a/internal/handler/servis.go
+++ b/internal/handler/servis.go
@@ -2147,6 +2147,60 @@ func (h *Handler) fiskalizujServis(ctx context.Context, servisID int64, klijent
slog.Error("greška pri čuvanju fiskalnog računa za servis", "servis_id", servisID, "error", err)
}
}
+func (h *Handler) StampaFiskalnog(w http.ResponseWriter, r *http.Request) {
+ id, err := parseID(chi.URLParam(r, "id"))
+ if err != nil {
+ http.Error(w, "Neispravan ID", http.StatusBadRequest)
+ return
+ }
+ fr, err := h.FiskalRepo.DohvatiPoServisu(r.Context(), id)
+ if err != nil || fr == nil {
+ http.Error(w, "Fiskalni račun nije pronađen", http.StatusNotFound)
+ return
+ }
+ nalog, _ := h.ServisRepo.DohvatiID(r.Context(), id)
+ w.Header().Set("Content-Type", "text/html; charset=utf-8")
+ fmt.Fprint(w, `
Fiskalni račun
+`)
+
+ journal := ""
+ if fr.SiroviOdgovor != "" {
+ var raw map[string]any
+ if json.Unmarshal([]byte(fr.SiroviOdgovor), &raw) == nil {
+ if j, ok := raw["journal"].(string); ok {
+ journal = j
+ }
+ }
+ }
+
+ // zameni QR placeholder pravim QR kodom
+ if fr.QRKod != "" && strings.Contains(journal, "{{{{QR-KOD}}}}") {
+ qrImg := `
`
+ journal = strings.ReplaceAll(journal, "{{{{QR-KOD}}}}", qrImg)
+ }
+
+ // zameni mock podatke firme stvarnim iz podešavanja
+ podesavanja, _ := sqlite.DohvatiSvaPodesavanja(r.Context(), h.DB)
+ naziv := podesavanja["naziv_firme"]
+ adresa := podesavanja["adresa"]
+ mesto := podesavanja["mesto"]
+ if naziv != "" {
+ journal = strings.ReplaceAll(journal, "Test Company DOO", naziv)
+ }
+ if adresa != "" {
+ journal = strings.ReplaceAll(journal, "Test Address 1", adresa)
+ }
+ if mesto != "" {
+ journal = strings.ReplaceAll(journal, "Savski Venac", mesto)
+ }
+
+ fmt.Fprint(w, journal)
+ if nalog != nil {
+ fmt.Fprintf(w, "\n\n--- NTech servisni nalog: %s ---\n", nalog.BrojNaloga)
+ }
+ fmt.Fprint(w, ``)
+}
func (h *Handler) AzurirajGaranciju(w http.ResponseWriter, r *http.Request) {
if _, ok := h.zahtevajDozvolu(w, r, "servis.izmeni"); !ok {
return