Files
GoNtech/web/templates/stranice/nabavka_detalji.html
T
Dasko d2f8153845 KPR: popunjavanje datum_placanja iz nabavke
Kolona datum_placanja je postojala u pdv_kpr tabeli ali se nikad nije
popunjavala za auto-upise iz nabavke — relevantno za gotovinski PDV odbitak.
Dodato polje Nabavka.DatumPlacanja (migracija 096, opciono polje u formi
nabavke, prikaz u detaljima), KprIzNabavke ga sada prosleđuje u KPR zapis.
2026-07-01 12:49:55 +02:00

211 lines
11 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{{template "base" .}}
{{define "naslov"}}Detalji nabavke — NTech{{end}}
{{define "dodatni-css"}}
<style>
/* prvi child .kolone je „Nazad" link, pa su kartice na pozicijama 24 */
.detalji-kartica:nth-child(2) { animation-delay: 0.04s; }
.detalji-kartica:nth-child(3) { animation-delay: 0.12s; }
.detalji-kartica:nth-child(4) { animation-delay: 0.20s; }
</style>
{{end}}
{{define "sadrzaj"}}
<div class="kolona" style="gap:16px;">
{{if .Sacuvano}}
<div class="poruka-uspeh poruka-animacija">Nabavka je uspešno sačuvana.</div>
{{end}}
{{if .Greska}}
<div class="poruka-greska greska-animacija">{{.Greska}}</div>
{{end}}
<!-- nazad dugme -->
<a href="/nabavke" class="nazad-link" hx-boost="true" hx-target="#glavni-sadrzaj" hx-select="#glavni-sadrzaj" hx-swap="outerHTML">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="15 18 9 12 15 6"/></svg>
Nazad na nabavke
</a>
<!-- zaglavlje nabavke -->
<div class="kartica detalji-kartica animiraj">
<div style="margin-bottom:16px;padding-bottom:14px;border-bottom:0.5px solid var(--ivica);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;">
<span style="display:flex;align-items:center;gap:12px;flex-wrap:wrap;">
<span style="font-size:16px;font-weight:500;color:var(--tekst-glavni);">Detalji nabavke</span>
{{if .Nabavka.Stornirano}}
<span style="display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:500;background:rgba(220,38,38,0.12);color:#dc2626;">
Stornirano
</span>
{{end}}
</span>
<span class="pomocni-tekst">{{.Nabavka.Datum.Format "02.01.2006. u 15:04"}}</span>
</div>
<div style="display:grid;grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));gap:16px;">
<div>
<div style="font-size:12px;color:var(--tekst-sporedni);margin-bottom:4px;">Dobavljač</div>
<div style="font-size:14px;font-weight:500;color:var(--tekst-glavni);">
{{if .DobavljacNaziv}}{{.DobavljacNaziv}}{{else}}—{{end}}
</div>
</div>
<div>
<div style="font-size:12px;color:var(--tekst-sporedni);margin-bottom:4px;">Broj računa</div>
<div style="font-size:14px;color:var(--tekst-glavni);">
{{if .Nabavka.BrojRacuna}}{{.Nabavka.BrojRacuna}}{{else}}—{{end}}
</div>
</div>
<div>
<div style="font-size:12px;color:var(--tekst-sporedni);margin-bottom:4px;">Datum računa</div>
<div style="font-size:14px;color:var(--tekst-glavni);">
{{if .Nabavka.DatumRacuna}}{{.Nabavka.DatumRacuna.Format "02.01.2006."}}{{else}}—{{end}}
</div>
</div>
<div>
<div style="font-size:12px;color:var(--tekst-sporedni);margin-bottom:4px;">Datum plaćanja</div>
<div style="font-size:14px;color:var(--tekst-glavni);">
{{if .Nabavka.DatumPlacanja}}{{.Nabavka.DatumPlacanja.Format "02.01.2006."}}{{else}}—{{end}}
</div>
</div>
<div>
<div style="font-size:12px;color:var(--tekst-sporedni);margin-bottom:4px;">Napomena</div>
<div style="font-size:14px;color:var(--tekst-glavni);">
{{if .Nabavka.Napomena}}{{.Nabavka.Napomena}}{{else}}—{{end}}
</div>
</div>
<div>
<div style="font-size:12px;color:var(--tekst-sporedni);margin-bottom:4px;">Ukupan iznos</div>
<div style="font-size:20px;font-weight:600;color:var(--sb-akcent);">
{{dinari .Nabavka.Ukupno}} din
</div>
</div>
{{if .Nabavka.RazlogStorniranja}}
<div style="grid-column:1/-1;">
<div style="font-size:12px;color:var(--tekst-sporedni);margin-bottom:4px;">Razlog storniranja</div>
<div style="font-size:13px;color:#dc2626;">{{.Nabavka.RazlogStorniranja}}</div>
</div>
{{end}}
</div>
</div>
<!-- stavke -->
<div class="kartica detalji-kartica animiraj" style="padding:0;overflow:hidden;">
<div style="padding:14px 16px;border-bottom:0.5px solid var(--ivica);">
<span style="font-size:15px;font-weight:500;color:var(--tekst-glavni);">Stavke nabavke</span>
</div>
<!-- desktop tabela -->
<div class="stavke-tabela-wrapper" style="overflow-x:auto;">
<table class="stavke-tabela tabela">
<thead>
<tr style="border-bottom:0.5px solid var(--ivica);">
<th style="padding:10px 16px;text-align:left;font-size:12px;font-weight:500;color:var(--tekst-sporedni);">Artikal</th>
<th style="padding:10px 16px;text-align:center;font-size:12px;font-weight:500;color:var(--tekst-sporedni);">Količina</th>
<th style="padding:10px 16px;text-align:right;font-size:12px;font-weight:500;color:var(--tekst-sporedni);">Cena/kom</th>
<th style="padding:10px 16px;text-align:right;font-size:12px;font-weight:500;color:var(--tekst-sporedni);">Ukupno</th>
</tr>
</thead>
<tbody>
{{range .Stavke}}
<tr class="animiraj red-tabele">
<td style="padding:10px 16px;font-size:14px;color:var(--tekst-glavni);">{{.ArtikalNaziv}}</td>
<td style="padding:10px 16px;text-align:center;font-size:14px;color:var(--tekst-glavni);">{{.Kolicina}}</td>
<td style="padding:10px 16px;text-align:right;font-size:14px;color:var(--tekst-sporedni);">{{dinari .CenaPoKomadu}} din</td>
<td style="padding:10px 16px;text-align:right;font-size:14px;font-weight:500;color:var(--tekst-glavni);">{{dinari .Ukupno}} din</td>
</tr>
{{else}}
<tr>
<td colspan="4" style="padding:24px;text-align:center;font-size:14px;color:var(--tekst-sporedni);">
Ova nabavka nema stavki.
</td>
</tr>
{{end}}
</tbody>
{{if .Stavke}}
<tfoot>
<tr style="border-top:0.5px solid var(--ivica);">
<td colspan="3" style="padding:10px 16px;text-align:right;font-size:13px;font-weight:500;color:var(--tekst-sporedni);">Ukupno:</td>
<td style="padding:10px 16px;text-align:right;font-size:15px;font-weight:600;color:var(--tekst-glavni);">{{dinari .Nabavka.Ukupno}} din</td>
</tr>
</tfoot>
{{end}}
</table>
</div>
<!-- mobilne kartice stavki -->
<div class="stavke-kartice" style="padding:12px;">
{{range .Stavke}}
<div style="border:0.5px solid var(--ivica);border-radius:8px;padding:12px;">
<div style="font-size:14px;font-weight:500;color:var(--tekst-glavni);margin-bottom:8px;">{{.ArtikalNaziv}}</div>
<div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;">
<div>
<div style="font-size:11px;color:var(--tekst-sporedni);">Količina</div>
<div style="font-size:14px;color:var(--tekst-glavni);">{{.Kolicina}}</div>
</div>
<div>
<div style="font-size:11px;color:var(--tekst-sporedni);">Cena/kom</div>
<div style="font-size:14px;color:var(--tekst-sporedni);">{{dinari .CenaPoKomadu}} din</div>
</div>
<div style="text-align:right;">
<div style="font-size:11px;color:var(--tekst-sporedni);">Ukupno</div>
<div style="font-size:14px;font-weight:500;color:var(--tekst-glavni);">{{dinari .Ukupno}} din</div>
</div>
</div>
</div>
{{end}}
{{if .Stavke}}
<div style="text-align:right;font-size:15px;font-weight:600;color:var(--tekst-glavni);padding:8px 4px;">
Ukupno: {{dinari .Nabavka.Ukupno}} din
</div>
{{end}}
</div>
</div>
<!-- zavisni troškovi -->
{{if .Troskovi}}
<div class="kartica detalji-kartica animiraj" style="padding:0;overflow:hidden;">
<div style="padding:14px 16px;border-bottom:0.5px solid var(--ivica);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;">
<span style="font-size:15px;font-weight:500;color:var(--tekst-glavni);">Zavisni troškovi</span>
<span class="pomocni-tekst">
Raspodela: {{if eq .Nabavka.MetodRaspodele "kolicina"}}po količini{{else}}po vrednosti stavke{{end}}
</span>
</div>
<div style="padding:8px 16px;">
{{range .Troskovi}}
<div style="display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:0.5px solid var(--ivica);">
<span style="font-size:14px;color:var(--tekst-glavni);">{{.Naziv}}</span>
<span style="font-size:14px;color:var(--tekst-sporedni);">{{dinari .Iznos}} din</span>
</div>
{{end}}
<div style="display:flex;justify-content:space-between;align-items:center;padding:10px 0;">
<span style="font-size:13px;font-weight:500;color:var(--tekst-sporedni);">Ukupno troškovi:</span>
<span style="font-size:15px;font-weight:600;color:var(--tekst-glavni);">{{dinari .UkupanTrosak}} din</span>
</div>
</div>
</div>
{{end}}
<!-- zona za storniranje -->
{{if and (index .Dozvole "nabavka.storno") (not .Nabavka.Stornirano)}}
<div class="kartica detalji-kartica animiraj" style="border-color:#dc262633;">
<div style="display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;">
<div style="flex:1;min-width:200px;">
<div style="font-size:14px;font-weight:500;color:#f97316;margin-bottom:4px;">Storniranje nabavke</div>
<div class="pomocni-tekst">
Storno vraća količine artikala na stanje u magacinu. Nabavka ostaje u evidenciji sa oznakom stornirana. Nabavna cena se ne menja.
</div>
</div>
<form method="POST" action="/nabavke/storno/{{.Nabavka.ID}}" data-full-reload style="display:flex;flex-direction:column;gap:8px;align-items:flex-end;">
<input type="hidden" name="_csrf" value="{{.CsrfToken}}">
<input type="text" name="razlog" placeholder="Razlog storniranja (opciono)" style="width:240px;">
<button type="submit" class="btn-upozorenje"
data-potvrda="Stornirati ovu nabavku? Količine artikala biće vraćene na stanje.">
Storniraj nabavku
</button>
</form>
</div>
</div>
{{end}}
</div>
{{end}}