Profil firme: preduzetnik_knjige pokriven u modulima + informativna tabela
ModulKpo sada obuhvata i preduzetnik_knjige (proste knjige) Dodata tabela sa pregledom svih kombinacija pravnog oblika, PDV-a, fiskalizacije, KPO i dvojnog Napomene: PDV prag 8M, paušalni limit 6M, fiskalizacija obavezna za sve
This commit is contained in:
+21
-11
@@ -16,10 +16,10 @@ const (
|
|||||||
|
|
||||||
// Nazivi modula koje program pali/gasi prema profilu firme.
|
// Nazivi modula koje program pali/gasi prema profilu firme.
|
||||||
const (
|
const (
|
||||||
ModulPdv = "pdv"
|
ModulPdv = "pdv" // KIR/KPR evidencija, PDV obračun
|
||||||
ModulFiskalizacija = "fiskalizacija"
|
ModulFiskalizacija = "fiskalizacija" // Teron L-PFR, fiskalni računi
|
||||||
ModulKpo = "kpo"
|
ModulKpo = "kpo" // Knjiga o ostvarenom prometu (paušalci)
|
||||||
ModulDvojno = "dvojno"
|
ModulDvojno = "dvojno" // Dvojno knjigovodstvo (DOO, preduzetnici koji ga vode)
|
||||||
)
|
)
|
||||||
|
|
||||||
// ModulUkljucen vraća da li je dati zakonski modul aktivan za firmu, na osnovu
|
// ModulUkljucen vraća da li je dati zakonski modul aktivan za firmu, na osnovu
|
||||||
@@ -36,20 +36,30 @@ func ModulUkljucen(podesavanja map[string]string, modul string) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pravniOblik := podesavanja[KljucPravniOblik]
|
||||||
|
|
||||||
switch modul {
|
switch modul {
|
||||||
case ModulFiskalizacija:
|
case ModulFiskalizacija:
|
||||||
// fiskalizacija je nezavisna od pravnog oblika — zaseban prekidač
|
// Fiskalizacija je obavezna za SVE koji izdaju račune građanima (maloprodaja),
|
||||||
// „izdaje li račune građanima" (Project.md §3, napomena *).
|
// bez obzira na pravni oblik. Nezavisan prekidač.
|
||||||
return podesavanja[KljucFiskalizacija] == "da"
|
return podesavanja[KljucFiskalizacija] == "da"
|
||||||
|
|
||||||
case ModulPdv:
|
case ModulPdv:
|
||||||
// PDV evidencija se vodi kad je firma u sistemu PDV-a.
|
// PDV evidencija se vodi kad je firma u sistemu PDV-a (obavezno preko 8M,
|
||||||
|
// ili dobrovoljno). Dostupno svim pravnim oblicima.
|
||||||
return podesavanja[KljucPdvObveznik] == "da"
|
return podesavanja[KljucPdvObveznik] == "da"
|
||||||
|
|
||||||
case ModulKpo:
|
case ModulKpo:
|
||||||
// KPO (knjiga o ostvarenom prometu) je samo za paušalce.
|
// KPO (knjiga o ostvarenom prometu) vode paušalci i preduzetnici
|
||||||
return podesavanja[KljucPravniOblik] == "pausalac"
|
// koji vode proste poslovne knjige (ne dvojno).
|
||||||
|
return pravniOblik == "pausalac" || pravniOblik == "preduzetnik_knjige"
|
||||||
|
|
||||||
case ModulDvojno:
|
case ModulDvojno:
|
||||||
// dvojno knjigovodstvo je za DOO (za preduzetnike je buduća podela, Project.md §8).
|
// Dvojno knjigovodstvo je obavezno za DOO. Preduzetnici koji vode
|
||||||
return podesavanja[KljucPravniOblik] == "doo"
|
// knjige mogu birati prosto ili dvojno — dvojno je opciono
|
||||||
|
// (budući toggle: firma_knjigovodstvo = "dvojno").
|
||||||
|
return pravniOblik == "doo"
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,12 +44,12 @@ func TestModulUkljucen(t *testing.T) {
|
|||||||
{"pun + obveznik da", pun, ModulPdv, true},
|
{"pun + obveznik da", pun, ModulPdv, true},
|
||||||
{"pun + obveznik ne (čak i doo)", izmeni(pun, KljucPdvObveznik, "ne"), ModulPdv, false},
|
{"pun + obveznik ne (čak i doo)", izmeni(pun, KljucPdvObveznik, "ne"), ModulPdv, false},
|
||||||
|
|
||||||
// kpo — samo paušalac
|
// kpo — paušalac i preduzetnik knjigaš (proste knjige)
|
||||||
{"pun + paušalac → kpo", izmeni(pun, KljucPravniOblik, "pausalac"), ModulKpo, true},
|
{"pun + paušalac → kpo", izmeni(pun, KljucPravniOblik, "pausalac"), ModulKpo, true},
|
||||||
{"pun + doo → nema kpo", pun, ModulKpo, false},
|
{"pun + doo → nema kpo", pun, ModulKpo, false},
|
||||||
{"pun + preduzetnik → nema kpo", izmeni(pun, KljucPravniOblik, "preduzetnik_knjige"), ModulKpo, false},
|
{"pun + preduzetnik → kpo", izmeni(pun, KljucPravniOblik, "preduzetnik_knjige"), ModulKpo, true},
|
||||||
|
|
||||||
// dvojno — samo doo
|
// dvojno — doo uvek, preduzetnik opciono (budući toggle)
|
||||||
{"pun + doo → dvojno", pun, ModulDvojno, true},
|
{"pun + doo → dvojno", pun, ModulDvojno, true},
|
||||||
{"pun + paušalac → nema dvojno", izmeni(pun, KljucPravniOblik, "pausalac"), ModulDvojno, false},
|
{"pun + paušalac → nema dvojno", izmeni(pun, KljucPravniOblik, "pausalac"), ModulDvojno, false},
|
||||||
{"pun + preduzetnik → nema dvojno (buduća podela)", izmeni(pun, KljucPravniOblik, "preduzetnik_knjige"), ModulDvojno, false},
|
{"pun + preduzetnik → nema dvojno (buduća podela)", izmeni(pun, KljucPravniOblik, "preduzetnik_knjige"), ModulDvojno, false},
|
||||||
|
|||||||
@@ -246,6 +246,60 @@
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
<!-- informativna tabela: koji moduli se pale po profilu -->
|
||||||
|
<div class="kartica animiraj" style="margin-bottom:16px;">
|
||||||
|
<div style="display:flex;align-items:center;gap:10px;margin-bottom:16px;padding-bottom:12px;border-bottom:0.5px solid var(--ivica);">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--sb-akcent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>
|
||||||
|
<span style="font-size:15px;font-weight:500;color:var(--tekst-glavni);">Pregled — šta se pali po profilu</span>
|
||||||
|
</div>
|
||||||
|
<div style="overflow-x:auto;">
|
||||||
|
<table style="width:100%;border-collapse:collapse;font-size:13px;">
|
||||||
|
<thead>
|
||||||
|
<tr style="border-bottom:0.5px solid var(--ivica);">
|
||||||
|
<th style="text-align:left;padding:8px 12px;color:var(--tekst-sporedni);font-weight:500;">Pravni oblik</th>
|
||||||
|
<th style="text-align:center;padding:8px 12px;color:var(--tekst-sporedni);font-weight:500;">PDV evidencija</th>
|
||||||
|
<th style="text-align:center;padding:8px 12px;color:var(--tekst-sporedni);font-weight:500;">Fiskalizacija</th>
|
||||||
|
<th style="text-align:center;padding:8px 12px;color:var(--tekst-sporedni);font-weight:500;">KPO</th>
|
||||||
|
<th style="text-align:center;padding:8px 12px;color:var(--tekst-sporedni);font-weight:500;">Dvojno knjig.</th>
|
||||||
|
<th style="text-align:right;padding:8px 12px;color:var(--tekst-sporedni);font-weight:500;">Limit prihoda</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr style="border-bottom:0.5px solid var(--ivica);">
|
||||||
|
<td style="padding:10px 12px;font-weight:500;color:var(--tekst-glavni);">Paušalac</td>
|
||||||
|
<td style="text-align:center;padding:10px 12px;color:var(--tekst-sporedni);font-size:12px;">opciono *</td>
|
||||||
|
<td style="text-align:center;padding:10px 12px;color:var(--zelena);">✔ obavezno</td>
|
||||||
|
<td style="text-align:center;padding:10px 12px;color:var(--zelena);">✔</td>
|
||||||
|
<td style="text-align:center;padding:10px 12px;color:var(--crvena);">—</td>
|
||||||
|
<td style="text-align:right;padding:10px 12px;color:var(--tekst-sporedni);">6.000.000 RSD</td>
|
||||||
|
</tr>
|
||||||
|
<tr style="border-bottom:0.5px solid var(--ivica);">
|
||||||
|
<td style="padding:10px 12px;font-weight:500;color:var(--tekst-glavni);">Preduzetnik (knjige)</td>
|
||||||
|
<td style="text-align:center;padding:10px 12px;color:var(--tekst-sporedni);font-size:12px;">preko 8M</td>
|
||||||
|
<td style="text-align:center;padding:10px 12px;color:var(--zelena);">✔ obavezno</td>
|
||||||
|
<td style="text-align:center;padding:10px 12px;color:var(--zelena);">✔</td>
|
||||||
|
<td style="text-align:center;padding:10px 12px;color:var(--tekst-sporedni);font-size:12px;">opciono **</td>
|
||||||
|
<td style="text-align:right;padding:10px 12px;color:var(--tekst-sporedni);">bez limita</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="padding:10px 12px;font-weight:500;color:var(--tekst-glavni);">DOO</td>
|
||||||
|
<td style="text-align:center;padding:10px 12px;color:var(--tekst-sporedni);font-size:12px;">preko 8M</td>
|
||||||
|
<td style="text-align:center;padding:10px 12px;color:var(--zelena);">✔ obavezno</td>
|
||||||
|
<td style="text-align:center;padding:10px 12px;color:var(--crvena);">—</td>
|
||||||
|
<td style="text-align:center;padding:10px 12px;color:var(--zelena);">✔ obavezno</td>
|
||||||
|
<td style="text-align:right;padding:10px 12px;color:var(--tekst-sporedni);">bez limita</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div style="margin-top:12px;padding-top:10px;border-top:0.5px solid var(--ivica);font-size:11px;color:var(--tekst-sporedni);line-height:1.6;">
|
||||||
|
* Paušalac može dobrovoljno ući u PDV. Preko 8M — obavezno izlazi iz paušala i ulazi u PDV.<br>
|
||||||
|
** Preduzetnik koji vodi knjige može birati prosto ili dvojno knjigovodstvo.<br>
|
||||||
|
Fiskalizacija je obavezna za sve koji izdaju račune građanima (maloprodaja) — bez obzira na pravni oblik.<br>
|
||||||
|
PDV prag: 8.000.000 RSD u prethodnih 12 meseci (Zakon o PDV-u, čl. 33). Paušalni limit: 6.000.000 RSD (Zakon o porezu na dohodak građana, čl. 40).
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{if .LogoGreska}}
|
{{if .LogoGreska}}
|
||||||
|
|||||||
Reference in New Issue
Block a user