/* Účtovníček — Daňová evidencia (SZČO): pohľadávky, príjmy, výpočet dane. * Rozloženie stĺpcov kopíruje zošit Mirky (Pohľadávky RRRR / Príjmy RRRR). */ function useTaxYear(route) { const years = uctStore.tax.years(); const fromRoute = +((route || '').split(':')[1] || 0); const [year, setYear] = React.useState(() => fromRoute || (years.includes(new Date().getFullYear()) ? new Date().getFullYear() : (years[0] || new Date().getFullYear()))); return [year, setYear, years.length ? years : [year]]; } function YearPicker({ year, setYear, years }) { const list = years.includes(year) ? years : [year, ...years]; return ( ); } function PaidBadge({ s }) { const m = { A: ['paidA', 'A · uhradená'], 'Č': ['paidC', 'Č · čiastočne'], N: ['paidN', 'N · neuhradená'] }[s]; if (!m) return {s}; return {m[1]}; } /* --- Pohľadávky --- */ function PageTaxReceivables({ go, route }) { const [year, setYear, years] = useTaxYear(route); const [rows, setRows] = React.useState(null); const [edit, setEdit] = React.useState(null); const [err, setErr] = React.useState(null); const [setToast, Toast] = useToast(); const load = () => uctStore.tax.receivables(year).then(setRows).catch(e => setErr(e.message)); React.useEffect(() => { setRows(null); load(); }, [year]); const sum = (k) => (rows || []).filter(r => r.status !== 'storno').reduce((a, r) => a + (k(r) || 0), 0); return (
| P.č. | Číslo dokladu | Odberateľ | Dátum | Q | Autorský zákon (§ 6 ods. 2 písm. a) | Živnosť | § 8 ostatné | § 7a DPH | POZD | Na účet podn. | Uhradené | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Vystavenia | Dodania | Splatnosti | Hodnota | LF % | LF € | Na účet | Hodnota | Hodnota | Hodnota | Hodnota | Hodnota | ||||||
| {i + 1} | {r.number}{r.unclassified && r.status !== 'storno' && ?} | {r.partnerName} | {fmt.date(r.issueDate)} | {fmt.date(r.deliveryDate)} | {fmt.date(r.dueDate)} | {r.quarter} | {fmt.num(r.tax.autorsky)} | {fmt.num(r.tax.lfPct * 100, 0)} % | {fmt.num(r.lfEur)} | {fmt.num(r.autorskyNet)} | {fmt.num(r.tax.zivnost)} | {fmt.num(r.tax.ostatne)} | {r.tax.par7a ? fmt.num(r.tax.par7a) : '—'} | {fmt.num(r.pozd)} | {fmt.num(r.naUcet)} | {fmt.num(r.paidSum)} z {fmt.num(r.naUcet)} } |
|
V roku {year} nie sú pohľadávkyVystav faktúru alebo načítaj dáta v Nastaveniach. | |||||||||||||||||
| spolu {rows.length} | {fmt.num(sum(r => r.tax.autorsky))} | {fmt.num(sum(r => r.lfEur))} | {fmt.num(sum(r => r.autorskyNet))} | {fmt.num(sum(r => r.tax.zivnost))} | {fmt.num(sum(r => r.tax.ostatne))} | {fmt.num(sum(r => r.tax.par7a))} | {fmt.num(sum(r => r.pozd))} | {fmt.num(sum(r => r.naUcet))} | |||||||||
Rozdeľ sumu faktúry podľa druhu príjmu. Súčet (POZD) má sedieť so sumou faktúry.
| P.č. | Účet | Doklad | Pohľadávka | Odberateľ | Dátum úhrady | Autorský zákon | Živnosť | § 8 | § 7a | PNZD | POZD | Na účet | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Hodnota | LF % | LF € | Na účet | Hodnota | Hodnota | Hodnota | Hodnota | Hodnota | Medzisúčet | Hodnota | |||||||
| {i + 1} | {r.account} | {r.doc} | {r.invoiceNumber || —} | {r.partnerName} | {fmt.date(r.date)} | {fmt.num(r.autorsky)} | {fmt.num(r.lfPct * 100, 0)} % | {fmt.num(r.lfEur)} | {fmt.num(r.autorskyNet)} | {fmt.num(r.zivnost)} | {fmt.num(r.ostatne)} | {r.par7a ? fmt.num(r.par7a) : '—'} | {r.pnzd ? fmt.num(r.pnzd) : '—'} | {fmt.num(r.pozd)} | {fmt.num(running)} | {fmt.num(r.naUcet)} | |
V roku {year} nie sú príjmyZapíš úhradu tlačidlom Nový príjem. | |||||||||||||||||
| spolu {rows.length} | {fmt.num(sum('autorsky'))} | {fmt.num(sum('lfEur'))} | {fmt.num(sum('autorskyNet'))} | {fmt.num(sum('zivnost'))} | {fmt.num(sum('ostatne'))} | {fmt.num(sum('par7a'))} | {fmt.num(sum('pnzd'))} | {fmt.num(sum('pozd'))} | {fmt.num(sum('naUcet'))} | ||||||||
| Mesiac | POZD | PNZD | 12 mesiacov |
|---|---|---|---|
| {m.month} | {fmt.num(m.pozd)} | {m.pnzd ? fmt.num(m.pnzd) : '—'} | = limitYear ? {color:'var(--danger)', fontWeight:600} : undefined}>{fmt.num(m.sum12)} |