Files
GoNtech/web/templates/stranice/pdv_obracun.html
T
Dasko f29e76612e Servis forma, animacije, hover efekti i pojačane senke
Servis:
- Nova polja: ostecenja, pin_uredjaja, pribor (migracija 051)
- Default garancija iz podešavanja, svič "Bez garancije" u formi
- Podešavanja → Servis: konfigurabilan rok garancije (migracija 052)
- Default datum prijema = danas; datum_prijema se eksplicitno upisuje
- Sidebar link za Servis podešavanja

PDV/Nivelacije:
- Default raspon datuma = početak/kraj tekućeg meseca (KIR, KPR, Nivelacije)
- Dodata class="tabela" na tabele bez klase (KIR, KPR, Obračun, Nivelacije)

Animacije (Moj profil → Tema):
- Korisnik bira vrstu animacije: bez, fadeInUp, fadeIn, scaleIn, slideLeft
- Čuva se po korisniku u korisnici.lokalna_animacija (migracija 053)
- CSS [data-animacija] radi na body (globalno) i na preview wrapperima (izolovano)
- Preview animacije izolovan: data-animacija na #anim-preview-wrap, ne na body
- Mobilne kartice se animiraju kad korisnik odabere stil (podrazumevano ne)
- Animacija primenjena direktno na .tabela tbody tr (bez potrebe za .animiraj)

Hover efekti (Moj profil → Tema):
- Opcije: podrazumevano, bez, podizanje, svetlost, zoom, boja
- Čuva se po korisniku u korisnici.lokalni_hover (migracija 054)
- CSS [data-hover] radi izolovano; preview menja samo #hover-preview-wrap
- Pojačane senke u oba teme (--senka i nova --senka-hover promenljiva)
- Transition dodat za transform i background na karticama

Grafikon (Izveštaji): toggle zamenjen globalnim .toggl/.toggl-klizac svičom
2026-06-18 02:21:06 +02:00

201 lines
14 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"}}PDV obračun — NTech{{end}}
{{define "sadrzaj"}}
<div class="stranica-stack" style="width:100%;max-width:100%;">
<!-- izbor perioda -->
<div class="kartica animiraj" style="margin-bottom:16px;">
<form method="GET" action="/pdv/obracun" style="display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;">
<div>
<label class="polje-labela">Od datuma</label>
<input type="date" name="od" value="{{.Od}}" style="padding:8px 10px;border:0.5px solid var(--ivica);border-radius:8px;font-size:13px;background:var(--pozadina);color:var(--tekst-glavni);outline:none;">
</div>
<div>
<label class="polje-labela">Do datuma</label>
<input type="date" name="do" value="{{.Do}}" style="padding:8px 10px;border:0.5px solid var(--ivica);border-radius:8px;font-size:13px;background:var(--pozadina);color:var(--tekst-glavni);outline:none;">
</div>
<button type="submit" style="padding:8px 16px;background:var(--sb-aktivan);color:var(--tekst-jak);border:0.5px solid var(--ivica);border-radius:8px;font-size:13px;cursor:pointer;">Prikaži</button>
</form>
</div>
<!-- obračun po stopama -->
<div class="kartica animiraj" style="padding:0;overflow:hidden;margin-bottom:16px;">
<div style="overflow-x:auto;">
<table class="tabela" style="width:100%;border-collapse:collapse;font-size:13px;min-width:560px;">
<thead>
<tr style="text-align:left;color:var(--tekst-sporedni);border-bottom:0.5px solid var(--ivica);">
<th style="padding:10px 12px;"></th>
<th style="padding:10px 12px;text-align:right;">Osnovica</th>
<th style="padding:10px 12px;text-align:right;">PDV</th>
</tr>
</thead>
<tbody>
<!-- izlazni (dugovani) PDV — iz KIR -->
<tr style="border-bottom:0.5px solid var(--ivica);">
<td style="padding:10px 12px;font-weight:500;" colspan="3">Izlazni (dugovani) PDV — KIR</td>
</tr>
<tr style="border-bottom:0.5px solid var(--ivica);">
<td style="padding:10px 12px;padding-left:24px;">Opšta stopa (20%)</td>
<td style="padding:10px 12px;text-align:right;">{{printf "%.2f" .KirSume.OsnovicaOpsta}}</td>
<td style="padding:10px 12px;text-align:right;">{{printf "%.2f" .Obracun.IzlazniPdvOpsta}}</td>
</tr>
<tr style="border-bottom:0.5px solid var(--ivica);">
<td style="padding:10px 12px;padding-left:24px;">Posebna stopa (10%)</td>
<td style="padding:10px 12px;text-align:right;">{{printf "%.2f" .KirSume.OsnovicaPosebna}}</td>
<td style="padding:10px 12px;text-align:right;">{{printf "%.2f" .Obracun.IzlazniPdvPosebna}}</td>
</tr>
<tr style="border-bottom:0.5px solid var(--ivica);">
<td style="padding:10px 12px;padding-left:24px;color:var(--tekst-sporedni);">Oslobođen promet</td>
<td style="padding:10px 12px;text-align:right;color:var(--tekst-sporedni);">{{printf "%.2f" .KirSume.OslobodenUkupno}}</td>
<td style="padding:10px 12px;text-align:right;color:var(--tekst-sporedni);"></td>
</tr>
<tr style="border-bottom:0.5px solid var(--ivica);font-weight:500;background:var(--pozadina);">
<td style="padding:10px 12px;">Ukupno izlazni PDV</td>
<td style="padding:10px 12px;"></td>
<td style="padding:10px 12px;text-align:right;">{{printf "%.2f" .Obracun.IzlazniPdvUkupno}}</td>
</tr>
<!-- odbitni (prethodni) PDV — iz KPR -->
<tr style="border-bottom:0.5px solid var(--ivica);">
<td style="padding:10px 12px;font-weight:500;padding-top:18px;" colspan="3">Odbitni (prethodni) PDV — KPR</td>
</tr>
<tr style="border-bottom:0.5px solid var(--ivica);">
<td style="padding:10px 12px;padding-left:24px;">Opšta stopa (20%)</td>
<td style="padding:10px 12px;text-align:right;">{{printf "%.2f" .KprSume.OsnovicaOpsta}}</td>
<td style="padding:10px 12px;text-align:right;">{{printf "%.2f" .Obracun.OdbitniPdvOpsta}}</td>
</tr>
<tr style="border-bottom:0.5px solid var(--ivica);">
<td style="padding:10px 12px;padding-left:24px;">Posebna stopa (10%)</td>
<td style="padding:10px 12px;text-align:right;">{{printf "%.2f" .KprSume.OsnovicaPosebna}}</td>
<td style="padding:10px 12px;text-align:right;">{{printf "%.2f" .Obracun.OdbitniPdvPosebna}}</td>
</tr>
<tr style="border-bottom:0.5px solid var(--ivica);">
<td style="padding:10px 12px;padding-left:24px;color:var(--tekst-sporedni);">PDV bez prava na odbitak</td>
<td style="padding:10px 12px;text-align:right;color:var(--tekst-sporedni);"></td>
<td style="padding:10px 12px;text-align:right;color:var(--tekst-sporedni);">{{printf "%.2f" .KprSume.PdvBezOdbitka}}</td>
</tr>
<tr style="font-weight:500;background:var(--pozadina);">
<td style="padding:10px 12px;">Ukupno odbitni PDV</td>
<td style="padding:10px 12px;"></td>
<td style="padding:10px 12px;text-align:right;">{{printf "%.2f" .Obracun.OdbitniPdvUkupno}}</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- rezultat: obaveza za uplatu / povraćaj -->
<div class="kartica animiraj" style="display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
border-left:4px solid {{if .Obracun.ZaUplatu}}var(--greska){{else}}var(--uspeh){{end}};">
<div>
<div style="font-size:13px;color:var(--tekst-sporedni);">
{{if .Obracun.ZaUplatu}}PDV obaveza za uplatu{{else}}PDV za povraćaj / prenos u naredni period{{end}}
</div>
<div style="font-size:12px;color:var(--tekst-sporedni);margin-top:2px;">izlazni odbitni PDV</div>
</div>
<div style="font-size:24px;font-weight:600;color:{{if .Obracun.ZaUplatu}}var(--greska){{else}}var(--uspeh){{end}};white-space:nowrap;">
{{printf "%.2f" .Obracun.ObavezaApsolutna}} RSD
</div>
</div>
<!-- PPPDV — prikaz polja zvanične poreske prijave PDV -->
<div class="kartica animiraj" style="padding:0;overflow:hidden;">
<div style="padding:16px 16px 0;">
<div style="font-size:15px;font-weight:600;color:var(--tekst-glavni);">PPPDV — poreska prijava PDV</div>
<div style="font-size:12px;color:var(--tekst-sporedni);margin-top:4px;">
Prikaz polja obrasca za izabrani period, u celim dinarima.
⚠ Uvoz (006/106) i PDV nadoknada poljoprivredniku (007/107) se ne vode zasebno u programu.
</div>
</div>
<div style="overflow-x:auto;margin-top:12px;">
<table class="tabela" style="width:100%;border-collapse:collapse;font-size:13px;min-width:560px;">
<thead>
<tr style="text-align:left;color:var(--tekst-sporedni);border-bottom:0.5px solid var(--ivica);">
<th style="padding:10px 12px;width:48px;">Polje</th>
<th style="padding:10px 12px;">Opis</th>
<th style="padding:10px 12px;text-align:right;">Naknada bez PDV</th>
<th style="padding:10px 12px;text-align:right;">PDV</th>
</tr>
</thead>
<tbody>
<tr style="border-bottom:0.5px solid var(--ivica);"><td style="padding:8px 12px;font-weight:500;" colspan="4">I. Promet dobara i usluga</td></tr>
<tr style="border-bottom:0.5px solid var(--ivica);">
<td style="padding:8px 12px;color:var(--tekst-sporedni);">001</td>
<td style="padding:8px 12px;">Oslobođen sa pravom na odbitak</td>
<td style="padding:8px 12px;text-align:right;">{{.PPPDV.Polje001}}</td>
<td style="padding:8px 12px;text-align:right;color:var(--tekst-sporedni);"></td>
</tr>
<tr style="border-bottom:0.5px solid var(--ivica);">
<td style="padding:8px 12px;color:var(--tekst-sporedni);">002</td>
<td style="padding:8px 12px;">Oslobođen bez prava na odbitak</td>
<td style="padding:8px 12px;text-align:right;">{{.PPPDV.Polje002}}</td>
<td style="padding:8px 12px;text-align:right;color:var(--tekst-sporedni);"></td>
</tr>
<tr style="border-bottom:0.5px solid var(--ivica);">
<td style="padding:8px 12px;color:var(--tekst-sporedni);">003<div style="font-size:11px;">103</div></td>
<td style="padding:8px 12px;">Promet po opštoj stopi (20%)</td>
<td style="padding:8px 12px;text-align:right;">{{.PPPDV.Polje003}}</td>
<td style="padding:8px 12px;text-align:right;">{{.PPPDV.Polje103}}</td>
</tr>
<tr style="border-bottom:0.5px solid var(--ivica);">
<td style="padding:8px 12px;color:var(--tekst-sporedni);">004<div style="font-size:11px;">104</div></td>
<td style="padding:8px 12px;">Promet po posebnoj stopi (10%)</td>
<td style="padding:8px 12px;text-align:right;">{{.PPPDV.Polje004}}</td>
<td style="padding:8px 12px;text-align:right;">{{.PPPDV.Polje104}}</td>
</tr>
<tr style="border-bottom:0.5px solid var(--ivica);font-weight:500;background:var(--pozadina);">
<td style="padding:8px 12px;">005<div style="font-size:11px;">105</div></td>
<td style="padding:8px 12px;">ZBIR (1+2+3+4)</td>
<td style="padding:8px 12px;text-align:right;">{{.PPPDV.Polje005}}</td>
<td style="padding:8px 12px;text-align:right;">{{.PPPDV.Polje105}}</td>
</tr>
<tr style="border-bottom:0.5px solid var(--ivica);"><td style="padding:8px 12px;font-weight:500;padding-top:14px;" colspan="4">II. Prethodni porez</td></tr>
<tr style="border-bottom:0.5px solid var(--ivica);color:var(--tekst-sporedni);">
<td style="padding:8px 12px;">006<div style="font-size:11px;">106</div></td>
<td style="padding:8px 12px;">Prethodni porez pri uvozu</td>
<td style="padding:8px 12px;text-align:right;">{{.PPPDV.Polje006}}</td>
<td style="padding:8px 12px;text-align:right;">{{.PPPDV.Polje106}}</td>
</tr>
<tr style="border-bottom:0.5px solid var(--ivica);color:var(--tekst-sporedni);">
<td style="padding:8px 12px;">007<div style="font-size:11px;">107</div></td>
<td style="padding:8px 12px;">PDV nadoknada poljoprivredniku</td>
<td style="padding:8px 12px;text-align:right;">{{.PPPDV.Polje007}}</td>
<td style="padding:8px 12px;text-align:right;">{{.PPPDV.Polje107}}</td>
</tr>
<tr style="border-bottom:0.5px solid var(--ivica);">
<td style="padding:8px 12px;color:var(--tekst-sporedni);">008<div style="font-size:11px;">108</div></td>
<td style="padding:8px 12px;">Ostali prethodni porez (domaće nabavke)</td>
<td style="padding:8px 12px;text-align:right;">{{.PPPDV.Polje008}}</td>
<td style="padding:8px 12px;text-align:right;">{{.PPPDV.Polje108}}</td>
</tr>
<tr style="font-weight:500;background:var(--pozadina);">
<td style="padding:8px 12px;">009<div style="font-size:11px;">109</div></td>
<td style="padding:8px 12px;">ZBIR (6+7+8)</td>
<td style="padding:8px 12px;text-align:right;">{{.PPPDV.Polje009}}</td>
<td style="padding:8px 12px;text-align:right;">{{.PPPDV.Polje109}}</td>
</tr>
</tbody>
<tfoot>
<tr style="border-top:0.5px solid var(--ivica);font-weight:600;">
<td style="padding:10px 12px;">110</td>
<td style="padding:10px 12px;" colspan="2">
Iznos PDV u periodu (105 109)
{{if .PPPDV.Povracaj}}<span style="color:var(--uspeh);"> — za povraćaj</span>{{else}}<span style="color:var(--greska);"> — za uplatu</span>{{end}}
</td>
<td style="padding:10px 12px;text-align:right;color:{{if .PPPDV.Povracaj}}var(--uspeh){{else}}var(--greska){{end}};">{{.PPPDV.Polje110Apsolutno}}</td>
</tr>
<tr>
<td style="padding:8px 12px;color:var(--tekst-sporedni);">11</td>
<td style="padding:8px 12px;" colspan="3">Povraćaj: <strong>{{if .PPPDV.Povracaj}}DA{{else}}NE{{end}}</strong></td>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
{{end}}