Files
kubernetes/prod/couchdb/aangifte/index.html
T
2026-05-31 16:07:30 +02:00

1071 lines
38 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.
<!DOCTYPE html>
<html lang="nl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mijn Belastingdienst Aangifte Inkomstenbelasting 2024</title>
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@300;400;600;700&display=swap" rel="stylesheet">
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: 'Source Sans 3', Arial, sans-serif;
font-size: 14px;
color: #1a1a1a;
background: #fff;
}
/* ── Top logo bar ── */
.top-logo-bar {
border-bottom: 1px solid #ccc;
padding: 10px 20px;
display: flex;
justify-content: center;
align-items: center;
}
.top-logo-bar img {
height: 44px;
}
.logo-placeholder {
display: flex;
align-items: center;
gap: 10px;
}
.logo-shield {
width: 44px;
height: 44px;
background: #154273;
border-radius: 2px;
display: flex;
align-items: center;
justify-content: center;
}
.logo-shield svg { width: 28px; height: 28px; }
.logo-site-name {
font-size: 15px;
color: #333;
font-weight: 400;
}
/* ── Header ── */
.main-header {
background: #c8daea;
padding: 12px 24px;
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1px solid #a8c0d8;
}
.main-header .app-title {
font-size: 20px;
font-weight: 700;
color: #1a1a1a;
}
.main-header .user-name {
font-size: 18px;
font-weight: 700;
color: #1a1a1a;
}
/* ── Layout ── */
.app-body {
display: flex;
min-height: calc(100vh - 120px);
}
/* ── Sidebar ── */
.sidebar {
width: 280px;
min-width: 280px;
border-right: 1px solid #ddd;
padding: 20px 0;
background: #fff;
overflow-y: auto;
}
.sidebar-title {
font-size: 14px;
font-weight: 700;
color: #1a1a1a;
padding: 0 16px 12px 16px;
border-bottom: 1px solid #eee;
margin-bottom: 8px;
}
.nav-tree { list-style: none; }
.nav-tree li { }
.nav-item {
display: flex;
align-items: center;
gap: 6px;
padding: 5px 16px;
font-size: 13px;
color: #1a1a1a;
cursor: pointer;
line-height: 1.4;
text-decoration: none;
}
.nav-item:hover { background: #e8f0f8; }
.nav-item.active {
background: #dce8f5;
font-weight: 600;
color: #154273;
}
.nav-item.section-header {
font-weight: 600;
padding-top: 8px;
}
.nav-item .chevron {
font-size: 10px;
color: #333;
flex-shrink: 0;
}
.nav-sub {
list-style: none;
padding-left: 24px;
}
.nav-sub .nav-item { font-weight: 400; }
/* ── Main content ── */
.main-content {
flex: 1;
padding: 28px 36px;
max-width: 820px;
}
.content-title {
font-size: 18px;
font-weight: 700;
margin-bottom: 4px;
}
.content-subtitle {
font-size: 16px;
font-weight: 700;
margin-bottom: 20px;
color: #1a1a1a;
}
/* ── Employer block ── */
.employer-block {
border: 1px solid #ccc;
border-radius: 3px;
margin-bottom: 24px;
background: #fff;
}
.employer-header {
background: #f5f5f5;
border-bottom: 1px solid #ccc;
padding: 10px 16px;
display: flex;
align-items: center;
justify-content: space-between;
cursor: pointer;
user-select: none;
}
.employer-header-left {
display: flex;
align-items: center;
gap: 8px;
font-weight: 700;
font-size: 14px;
}
.collapse-icon {
color: #154273;
font-size: 12px;
font-weight: 700;
}
.btn-verwijderen {
background: none;
border: none;
color: #154273;
font-size: 13px;
cursor: pointer;
display: flex;
align-items: center;
gap: 5px;
font-family: inherit;
text-decoration: underline;
}
.btn-verwijderen:hover { color: #0f2f52; }
.trash-icon { font-size: 14px; }
.employer-body { padding: 20px; }
/* ── Form row ── */
.form-row {
display: flex;
align-items: flex-start;
margin-bottom: 16px;
gap: 16px;
}
.form-label-col {
min-width: 200px;
font-size: 14px;
padding-top: 8px;
display: flex;
align-items: center;
gap: 5px;
flex-shrink: 0;
}
.form-value-col {
flex: 1;
}
.help-btn {
display: inline-flex;
align-items: center;
justify-content: center;
width: 18px;
height: 18px;
border: 1px solid #154273;
color: #154273;
border-radius: 2px;
font-size: 11px;
font-weight: 700;
cursor: pointer;
flex-shrink: 0;
background: white;
font-family: inherit;
}
.bd-text-input {
width: 100%;
max-width: 320px;
border: 1px solid #aaa;
border-radius: 2px;
padding: 6px 10px;
font-size: 14px;
font-family: inherit;
background: #eaf3fb;
color: #1a1a1a;
}
.bd-text-input:focus {
outline: none;
border-color: #154273;
box-shadow: 0 0 0 2px rgba(21,66,115,0.2);
}
.bd-text-input[readonly] {
background: #f0f0f0;
color: #555;
}
/* ── Three-column money fields ── */
.money-row {
display: flex;
gap: 24px;
margin-bottom: 16px;
align-items: flex-start;
}
.money-col {
display: flex;
flex-direction: column;
gap: 4px;
}
.money-label {
font-size: 14px;
display: flex;
align-items: center;
gap: 5px;
margin-bottom: 4px;
}
.money-input-wrap {
display: flex;
align-items: center;
border: 1px solid #aaa;
border-radius: 2px;
background: #eaf3fb;
overflow: hidden;
width: 130px;
}
.money-input-wrap .euro-sign {
padding: 6px 8px;
background: #eaf3fb;
font-size: 14px;
color: #333;
border-right: 1px solid #aaa;
flex-shrink: 0;
}
.money-input-wrap input {
border: none;
background: #eaf3fb;
padding: 6px 8px;
font-size: 14px;
font-family: inherit;
width: 100%;
text-align: right;
}
.money-input-wrap input:focus { outline: none; }
/* ── Sub-section title ── */
.sub-section-title {
font-size: 14px;
font-weight: 700;
margin: 20px 0 12px 0;
color: #1a1a1a;
}
/* ── Radio ── */
.radio-row {
display: flex;
align-items: center;
gap: 0;
margin-top: 4px;
}
.radio-option {
display: flex;
align-items: center;
gap: 5px;
padding: 5px 12px 5px 0;
cursor: pointer;
font-size: 14px;
}
.radio-option input[type="radio"] {
accent-color: #154273;
width: 15px;
height: 15px;
}
/* ── Add button ── */
.btn-toevoegen {
background: none;
border: 1px solid #154273;
color: #154273;
padding: 6px 16px;
font-size: 13px;
font-family: inherit;
border-radius: 2px;
cursor: pointer;
margin-top: 8px;
display: flex;
align-items: center;
gap: 6px;
}
.btn-toevoegen:hover { background: #e8f0f8; }
/* ── Textarea ── */
.form-textarea {
width: 100%;
max-width: 480px;
border: 1px solid #aaa;
border-radius: 2px;
padding: 6px 10px;
font-size: 14px;
font-family: inherit;
background: #eaf3fb;
resize: vertical;
min-height: 60px;
}
/* ── Bottom nav ── */
.bottom-nav {
display: flex;
gap: 12px;
margin-top: 32px;
padding-top: 20px;
border-top: 1px solid #ddd;
}
.btn-primary {
background: #154273;
color: white;
border: none;
padding: 9px 24px;
font-size: 14px;
font-weight: 600;
font-family: inherit;
border-radius: 2px;
cursor: pointer;
}
.btn-primary:hover { background: #1a5296; }
.btn-secondary {
background: white;
color: #154273;
border: 1px solid #154273;
padding: 8px 20px;
font-size: 14px;
font-family: inherit;
border-radius: 2px;
cursor: pointer;
}
.btn-secondary:hover { background: #e8f0f8; }
/* ── Tooltip ── */
.tooltip {
display: none;
position: absolute;
background: #154273;
color: white;
padding: 8px 12px;
border-radius: 3px;
font-size: 12px;
max-width: 240px;
line-height: 1.5;
z-index: 100;
box-shadow: 0 2px 8px rgba(0,0,0,0.25);
}
.tooltip::before {
content: '';
position: absolute;
top: -6px; left: 12px;
border: 6px solid transparent;
border-bottom-color: #154273;
border-top: none;
}
.help-container { position: relative; display: inline-block; }
.help-container:hover .tooltip { display: block; top: 100%; margin-top: 4px; left: 0; }
/* ── Toast ── */
.toast {
position: fixed; bottom: 24px; right: 24px;
background: #39870c; color: white;
padding: 12px 20px; border-radius: 3px;
font-size: 13px; font-weight: 600;
box-shadow: 0 4px 16px rgba(0,0,0,0.2);
transform: translateY(60px); opacity: 0;
transition: all 0.3s ease; z-index: 1000;
}
.toast.show { transform: translateY(0); opacity: 1; }
/* ── Divider ── */
hr.section-divider { border: none; border-top: 1px solid #e0e0e0; margin: 20px 0; }
/* ── Pension blocks ── */
.pension-block {
border: 1px solid #ccc;
border-radius: 3px;
margin-bottom: 16px;
background: #fff;
}
.pension-header {
background: #f5f5f5;
border-bottom: 1px solid #ccc;
padding: 9px 16px;
display: flex;
align-items: center;
justify-content: space-between;
cursor: pointer;
font-weight: 700;
font-size: 13px;
}
/* ── Tabs ── */
.section-tabs { display: none; }
.section-tabs.active-section { display: block; }
/* ── Info text ── */
.info-text {
font-size: 13px;
color: #555;
margin-bottom: 16px;
line-height: 1.6;
}
@media (max-width: 768px) {
.sidebar { display: none; }
.main-content { padding: 16px; }
.money-row { flex-wrap: wrap; }
}
</style>
</head>
<body>
<!-- Top logo -->
<div class="top-logo-bar">
<div class="logo-placeholder">
<div class="logo-shield">
<svg viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14 2L4 7v7c0 5.5 4.3 10.7 10 12 5.7-1.3 10-6.5 10-12V7L14 2z" fill="white" opacity="0.9"/>
<path d="M14 2L4 7v7c0 5.5 4.3 10.7 10 12 5.7-1.3 10-6.5 10-12V7L14 2z" fill="none" stroke="rgba(255,255,255,0.4)" stroke-width="1"/>
<text x="9" y="19" font-size="12" font-weight="bold" fill="#154273" font-family="Arial">BD</text>
</svg>
</div>
<span class="logo-site-name">Belastingdienst</span>
</div>
</div>
<!-- Main header -->
<div class="main-header">
<span class="app-title">Mijn Belastingdienst</span>
<span class="user-name">A C KRINGS</span>
</div>
<!-- App body -->
<div class="app-body">
<!-- Sidebar nav -->
<nav class="sidebar">
<div class="sidebar-title">Aangifte Inkomstenbelasting 2024</div>
<ul class="nav-tree">
<li><span class="nav-item" onclick="showSection('intro')">Introductie</span></li>
<li><span class="nav-item" onclick="showSection('persoonlijk')">Persoonlijke gegevens A C KRINGS</span></li>
<li><span class="nav-item" onclick="showSection('partner')">Partner</span></li>
<li><span class="nav-item" onclick="showSection('vooraf')">Vooraf ingevulde gegevens</span></li>
<li><span class="nav-item" onclick="showSection('partner-gegevens')">Persoonlijke gegevens partner</span></li>
<li><span class="nav-item" onclick="showSection('kinderen')">Persoonlijke gegevens kinderen</span></li>
<li><span class="nav-item" onclick="showSection('onderneming')">Onderneming</span></li>
<li>
<span class="nav-item section-header" onclick="toggleNav('nav-inkomsten')">
<span class="chevron" id="chev-nav-inkomsten"></span> Inkomsten
</span>
<ul class="nav-sub" id="nav-inkomsten">
<li><span class="nav-item active" onclick="showSection('loondienst')">Inkomsten uit loondienst</span></li>
<li><span class="nav-item" onclick="showSection('pensioen')">Pensioen en andere uitkeringen</span></li>
<li><span class="nav-item" onclick="showSection('overige-inkomsten')">Overige inkomsten</span></li>
<li><span class="nav-item" onclick="showSection('beschikbaar')">Inkomsten uit beschikbaar gestelde bezittingen</span></li>
<li><span class="nav-item" onclick="showSection('partneralimentatie')">Partneralimentatie</span></li>
</ul>
</li>
<li><span class="nav-item" onclick="showSection('woningen')">Woningen en andere onroerende zaken</span></li>
<li>
<span class="nav-item section-header" onclick="toggleNav('nav-bank')">
<span class="chevron" id="chev-nav-bank"></span> Bankrekeningen en andere bezittingen
</span>
<ul class="nav-sub" id="nav-bank" style="display:none">
<li><span class="nav-item" onclick="showSection('bank')">Bank- en spaarrekeningen</span></li>
<li><span class="nav-item" onclick="showSection('aanmerkelijk')">Aanmerkelijk belang</span></li>
<li><span class="nav-item" onclick="showSection('beleggingen')">Beleggingen</span></li>
<li><span class="nav-item" onclick="showSection('kapitaalverzekeringen')">Kapitaalverzekeringen</span></li>
<li><span class="nav-item" onclick="showSection('bouwdepots')">Bouwdepots</span></li>
<li><span class="nav-item" onclick="showSection('andere-bezittingen')">Andere bezittingen</span></li>
</ul>
</li>
<li>
<span class="nav-item section-header" onclick="toggleNav('nav-hypotheken')">
<span class="chevron" id="chev-nav-hypotheken"></span> Hypotheken en andere schulden
</span>
<ul class="nav-sub" id="nav-hypotheken">
<li><span class="nav-item" onclick="showSection('hypotheken')">Hypotheken en leningen woning</span></li>
</ul>
</li>
<li>
<span class="nav-item section-header" onclick="toggleNav('nav-uitgaven')">
<span class="chevron" id="chev-nav-uitgaven"></span> Uitgaven
</span>
<ul class="nav-sub" id="nav-uitgaven" style="display:none">
<li><span class="nav-item" onclick="showSection('lijfrente')">Uitgaven voor lijfrente</span></li>
<li><span class="nav-item" onclick="showSection('zorgkosten')">Zorgkosten</span></li>
<li><span class="nav-item" onclick="showSection('giften')">Giften</span></li>
</ul>
</li>
</ul>
</nav>
<!-- Main content -->
<main class="main-content">
<!-- LOONDIENST section -->
<div id="section-loondienst" class="section-tabs active-section">
<div class="content-title">Inkomsten uit loondienst</div>
<div class="content-subtitle">A C KRINGS</div>
<!-- Employer block: Ministerie van Financiën -->
<div class="employer-block" id="employer-0">
<div class="employer-header" onclick="toggleEmployer(0)">
<div class="employer-header-left">
<span class="collapse-icon" id="emp-icon-0"></span>
Werkgever: MINISTERIE VAN FINANCIEN
</div>
<button class="btn-verwijderen" onclick="event.stopPropagation(); verwijderWerkgever(0)">
<span class="trash-icon">🗑</span> verwijderen
</button>
</div>
<div class="employer-body" id="emp-body-0">
<div class="form-row">
<div class="form-label-col">
Soort inkomsten:
<div class="help-container">
<button class="help-btn">?</button>
<div class="tooltip">Het soort inkomsten bepaalt hoe de loonheffing wordt berekend. Loon binnen Nederland is het meest gangbaar.</div>
</div>
</div>
<div class="form-value-col">
<input class="bd-text-input" type="text" value="Loon binnen Nederland" readonly>
</div>
</div>
<div class="form-row">
<div class="form-label-col">
Werkgever:
<div class="help-container">
<button class="help-btn">?</button>
<div class="tooltip">De naam van uw werkgever zoals vermeld op uw jaaropgave.</div>
</div>
</div>
<div class="form-value-col">
<input class="bd-text-input" type="text" id="wg0-naam" value="MINISTERIE VAN FINANCIEN">
</div>
</div>
<div class="money-row">
<div class="money-col">
<div class="money-label">
Loon:
<div class="help-container">
<button class="help-btn">?</button>
<div class="tooltip">Het brutoloon zoals vermeld op uw jaaropgave (rubriek 1).</div>
</div>
</div>
<div class="money-input-wrap">
<span class="euro-sign"></span>
<input type="number" id="wg0-loon" value="118231" oninput="herbereken()">
</div>
</div>
<div class="money-col">
<div class="money-label">
Loonheffing:
<div class="help-container">
<button class="help-btn">?</button>
<div class="tooltip">De ingehouden loonheffing zoals vermeld op uw jaaropgave (rubriek 2).</div>
</div>
</div>
<div class="money-input-wrap">
<span class="euro-sign"></span>
<input type="number" id="wg0-loonheffing" value="41992" oninput="herbereken()">
</div>
</div>
<div class="money-col">
<div class="money-label">
Arbeidskorting:
<div class="help-container">
<button class="help-btn">?</button>
<div class="tooltip">De arbeidskorting die uw werkgever al heeft verrekend (rubriek 5).</div>
</div>
</div>
<div class="money-input-wrap">
<span class="euro-sign"></span>
<input type="number" id="wg0-arbeidskorting" value="869" oninput="herbereken()">
</div>
</div>
</div>
<div class="form-row">
<div class="form-label-col" style="align-self:flex-start; padding-top: 4px;">
Andere inkomsten bij deze werkgever waarop geen loonheffing wordt ingehouden (zoals fooien):
<div class="help-container" style="margin-left:4px">
<button class="help-btn">?</button>
<div class="tooltip">Bijv. fooien of andere inkomsten die niet op de loonstrook staan.</div>
</div>
</div>
<div class="form-value-col" style="padding-top:4px">
<div class="money-input-wrap">
<span class="euro-sign"></span>
<input type="number" id="wg0-andere" value="0" oninput="herbereken()">
</div>
</div>
</div>
<div class="sub-section-title">Reiskosten MINISTERIE VAN FINANCIEN</div>
<div class="form-row">
<div class="form-label-col">
Reisde U met openbaar vervoer naar het werk?:
<div class="help-container">
<button class="help-btn">?</button>
<div class="tooltip">U kunt reiskosten aftrekken als u met openbaar vervoer reisde en geen of onvoldoende vergoeding ontving.</div>
</div>
</div>
<div class="form-value-col">
<div class="radio-row">
<label class="radio-option"><input type="radio" name="reiskosten-0" value="ja"> ja</label>
<label class="radio-option"><input type="radio" name="reiskosten-0" value="nee" checked> nee</label>
</div>
</div>
</div>
</div>
</div>
<!-- Add employer button -->
<button class="btn-toevoegen" onclick="alert('Werkgever toevoegen wordt opgeslagen in CouchDB')">
Werkgever toevoegen
</button>
<div class="bottom-nav">
<button class="btn-primary" onclick="opslaanEnVolgende()">Volgende ▶</button>
<button class="btn-secondary" onclick="showSection('vooraf')">◀ Vorige</button>
<button class="btn-secondary" onclick="opslaanConcept()">💾 Opslaan</button>
</div>
</div>
<!-- PENSIOEN section -->
<div id="section-pensioen" class="section-tabs">
<div class="content-title">Pensioen en andere uitkeringen</div>
<div class="content-subtitle">A C KRINGS</div>
<p class="info-text">Hieronder staan de ontvangen pensioenen en uitkeringen. Controleer de bedragen aan de hand van uw jaaropgaven.</p>
<div class="pension-block">
<div class="pension-header" onclick="togglePension(this)">
<span>∧ Nationale Nederlanden € 646</span>
<button class="btn-verwijderen" onclick="event.stopPropagation()"><span class="trash-icon">🗑</span> verwijderen</button>
</div>
<div class="employer-body">
<div class="money-row">
<div class="money-col">
<div class="money-label">Loon:</div>
<div class="money-input-wrap"><span class="euro-sign"></span><input type="number" value="646"></div>
</div>
<div class="money-col">
<div class="money-label">Loonheffing:</div>
<div class="money-input-wrap"><span class="euro-sign"></span><input type="number" value="114"></div>
</div>
</div>
</div>
</div>
<div class="pension-block">
<div class="pension-header" onclick="togglePension(this)">
<span>∧ ABP € 45.926</span>
<button class="btn-verwijderen" onclick="event.stopPropagation()"><span class="trash-icon">🗑</span> verwijderen</button>
</div>
<div class="employer-body">
<div class="money-row">
<div class="money-col">
<div class="money-label">Loon:</div>
<div class="money-input-wrap"><span class="euro-sign"></span><input type="number" value="45926"></div>
</div>
<div class="money-col">
<div class="money-label">Loonheffing:</div>
<div class="money-input-wrap"><span class="euro-sign"></span><input type="number" value="10149"></div>
</div>
</div>
</div>
</div>
<div class="pension-block">
<div class="pension-header" onclick="togglePension(this)">
<span>∧ Nationale Nederlanden € 472</span>
<button class="btn-verwijderen" onclick="event.stopPropagation()"><span class="trash-icon">🗑</span> verwijderen</button>
</div>
<div class="employer-body">
<div class="money-row">
<div class="money-col">
<div class="money-label">Loon:</div>
<div class="money-input-wrap"><span class="euro-sign"></span><input type="number" value="472"></div>
</div>
<div class="money-col">
<div class="money-label">Loonheffing:</div>
<div class="money-input-wrap"><span class="euro-sign"></span><input type="number" value="82"></div>
</div>
</div>
</div>
</div>
<div class="pension-block">
<div class="pension-header" onclick="togglePension(this)">
<span>∧ UWV € 13.336</span>
<button class="btn-verwijderen" onclick="event.stopPropagation()"><span class="trash-icon">🗑</span> verwijderen</button>
</div>
<div class="employer-body">
<div class="money-row">
<div class="money-col">
<div class="money-label">Loon:</div>
<div class="money-input-wrap"><span class="euro-sign"></span><input type="number" value="13336"></div>
</div>
<div class="money-col">
<div class="money-label">Loonheffing:</div>
<div class="money-input-wrap"><span class="euro-sign"></span><input type="number" value="2538"></div>
</div>
</div>
</div>
</div>
<button class="btn-toevoegen"> Uitkering toevoegen</button>
<div class="bottom-nav">
<button class="btn-primary" onclick="opslaanEnVolgende()">Volgende ▶</button>
<button class="btn-secondary" onclick="showSection('loondienst')">◀ Vorige</button>
<button class="btn-secondary" onclick="opslaanConcept()">💾 Opslaan</button>
</div>
</div>
<!-- WONINGEN section -->
<div id="section-woningen" class="section-tabs">
<div class="content-title">Woningen en andere onroerende zaken</div>
<div class="content-subtitle">A C KRINGS</div>
<div class="employer-block">
<div class="employer-header">
<div class="employer-header-left">∧ Warnsveld Postcode 7231GH nr. 42</div>
<button class="btn-verwijderen"><span class="trash-icon">🗑</span> verwijderen</button>
</div>
<div class="employer-body">
<div class="form-row">
<div class="form-label-col">Situatie begin jaar:</div>
<div class="form-value-col">
<input class="bd-text-input" type="text" value="woning: Hoofdverblijf" readonly>
</div>
</div>
<div class="form-row">
<div class="form-label-col">WOZ-waarde:</div>
<div class="form-value-col">
<div class="money-input-wrap">
<span class="euro-sign"></span>
<input type="number" value="528000">
</div>
</div>
</div>
<div class="form-row">
<div class="form-label-col">Verhuurd in 2024?</div>
<div class="form-value-col">
<div class="radio-row">
<label class="radio-option"><input type="radio" name="verhuurd" value="ja"> ja</label>
<label class="radio-option"><input type="radio" name="verhuurd" value="nee" checked> nee</label>
</div>
</div>
</div>
<div class="form-row">
<div class="form-label-col">Erfpachtcanon betaald?</div>
<div class="form-value-col">
<div class="radio-row">
<label class="radio-option"><input type="radio" name="erfpacht" value="ja"> ja</label>
<label class="radio-option"><input type="radio" name="erfpacht" value="nee" checked> nee</label>
</div>
</div>
</div>
</div>
</div>
<div class="bottom-nav">
<button class="btn-primary" onclick="opslaanEnVolgende()">Volgende ▶</button>
<button class="btn-secondary" onclick="showSection('pensioen')">◀ Vorige</button>
<button class="btn-secondary" onclick="opslaanConcept()">💾 Opslaan</button>
</div>
</div>
<!-- HYPOTHEKEN section -->
<div id="section-hypotheken" class="section-tabs">
<div class="content-title">Hypotheken en andere schulden</div>
<div class="content-subtitle">A C KRINGS</div>
<div class="employer-block">
<div class="employer-header">
<div class="employer-header-left">∧ BijBouwe nr. 290396101</div>
<button class="btn-verwijderen"><span class="trash-icon">🗑</span> verwijderen</button>
</div>
<div class="employer-body">
<div class="money-row">
<div class="money-col">
<div class="money-label">Schuld 01-01-2024:</div>
<div class="money-input-wrap"><span class="euro-sign"></span><input type="number" value="217500"></div>
</div>
<div class="money-col">
<div class="money-label">Schuld 31-12-2024:</div>
<div class="money-input-wrap"><span class="euro-sign"></span><input type="number" value="217500"></div>
</div>
<div class="money-col">
<div class="money-label">Rente betaald:</div>
<div class="money-input-wrap"><span class="euro-sign"></span><input type="number" value="3546"></div>
</div>
</div>
<div class="form-row">
<div class="form-label-col">Schuld voor eigen woning?</div>
<div class="form-value-col">
<div class="radio-row">
<label class="radio-option"><input type="radio" name="woning-schuld" value="ja" checked> ja</label>
<label class="radio-option"><input type="radio" name="woning-schuld" value="nee"> nee</label>
</div>
</div>
</div>
</div>
</div>
<div class="employer-block">
<div class="employer-header">
<div class="employer-header-left">∧ BijBouwe nr. 290396101 (aflossing)</div>
<button class="btn-verwijderen"><span class="trash-icon">🗑</span> verwijderen</button>
</div>
<div class="employer-body">
<div class="money-row">
<div class="money-col">
<div class="money-label">Schuld 01-01-2024:</div>
<div class="money-input-wrap"><span class="euro-sign"></span><input type="number" value="88431"></div>
</div>
<div class="money-col">
<div class="money-label">Schuld 31-12-2024:</div>
<div class="money-input-wrap"><span class="euro-sign"></span><input type="number" value="85263"></div>
</div>
<div class="money-col">
<div class="money-label">Rente betaald:</div>
<div class="money-input-wrap"><span class="euro-sign"></span><input type="number" value="1423"></div>
</div>
</div>
</div>
</div>
<button class="btn-toevoegen"> Lening toevoegen</button>
<div class="bottom-nav">
<button class="btn-primary" onclick="opslaanEnVolgende()">Volgende ▶</button>
<button class="btn-secondary" onclick="showSection('woningen')">◀ Vorige</button>
<button class="btn-secondary" onclick="opslaanConcept()">💾 Opslaan</button>
</div>
</div>
<!-- Placeholder sections -->
<div id="section-intro" class="section-tabs">
<div class="content-title">Introductie</div>
<p class="info-text" style="margin-top:12px">Welkom bij de aangifte Inkomstenbelasting 2024. Doorloop alle stappen via het menu links. Uw gegevens worden opgeslagen als CouchDB-document zodra u op <strong>Opslaan</strong> klikt.</p>
<div class="bottom-nav"><button class="btn-primary" onclick="showSection('persoonlijk')">Volgende ▶</button></div>
</div>
<div id="section-persoonlijk" class="section-tabs">
<div class="content-title">Persoonlijke gegevens A C KRINGS</div>
<div style="margin-top:12px">
<div class="form-row">
<div class="form-label-col">Naam:</div>
<div class="form-value-col"><input class="bd-text-input" type="text" value="A C KRINGS"></div>
</div>
<div class="form-row">
<div class="form-label-col">Geboortedatum:</div>
<div class="form-value-col"><input class="bd-text-input" type="date" value="1956-05-22"></div>
</div>
<div class="form-row">
<div class="form-label-col">Burgerservicenummer:</div>
<div class="form-value-col"><input class="bd-text-input" type="text" value="4444444444"></div>
</div>
</div>
<div class="bottom-nav">
<button class="btn-primary" onclick="showSection('partner')">Volgende ▶</button>
<button class="btn-secondary" onclick="opslaanConcept()">💾 Opslaan</button>
</div>
</div>
<div id="section-partner" class="section-tabs">
<div class="content-title">Partner</div>
<div style="margin-top:12px">
<div class="form-row">
<div class="form-label-col">Naam partner:</div>
<div class="form-value-col"><input class="bd-text-input" type="text" value="H M A VAN DER POL"></div>
</div>
<div class="form-row">
<div class="form-label-col">Geboortedatum partner:</div>
<div class="form-value-col"><input class="bd-text-input" type="date" value="1960-05-15"></div>
</div>
<div class="form-row">
<div class="form-label-col">Fiscale partner?</div>
<div class="form-value-col">
<div class="radio-row">
<label class="radio-option"><input type="radio" name="fiscaal" value="ja" checked> ja</label>
<label class="radio-option"><input type="radio" name="fiscaal" value="nee"> nee</label>
</div>
</div>
</div>
</div>
<div class="bottom-nav">
<button class="btn-primary" onclick="showSection('loondienst')">Volgende ▶</button>
<button class="btn-secondary" onclick="opslaanConcept()">💾 Opslaan</button>
</div>
</div>
<div id="section-vooraf" class="section-tabs">
<div class="content-title">Vooraf ingevulde gegevens</div>
<p class="info-text" style="margin-top:12px">De Belastingdienst heeft een aantal gegevens vooraf ingevuld op basis van informatie van uw werkgever(s), pensioenuitvoerder(s) en andere instanties. Controleer deze gegevens zorgvuldig.</p>
<div class="bottom-nav"><button class="btn-primary" onclick="showSection('loondienst')">Naar inkomsten ▶</button></div>
</div>
<div id="section-partner-gegevens" class="section-tabs"><div class="content-title">Persoonlijke gegevens partner</div><p class="info-text" style="margin-top:12px">H M A VAN DER POL BSN: 3333333333</p></div>
<div id="section-kinderen" class="section-tabs"><div class="content-title">Persoonlijke gegevens kinderen</div><p class="info-text" style="margin-top:12px">2 kinderen geregistreerd: A M KRINGS (2005) en A C KRINGS (2006).</p></div>
<div id="section-onderneming" class="section-tabs"><div class="content-title">Onderneming</div><p class="info-text" style="margin-top:12px">Ondernemer IB: nee. Geldverstrekker: ja.</p></div>
<div id="section-overige-inkomsten" class="section-tabs"><div class="content-title">Overige inkomsten</div><p class="info-text" style="margin-top:12px">Geen overige inkomsten opgegeven.</p></div>
<div id="section-beschikbaar" class="section-tabs"><div class="content-title">Inkomsten uit beschikbaar gestelde bezittingen</div></div>
<div id="section-partneralimentatie" class="section-tabs"><div class="content-title">Partneralimentatie</div></div>
<div id="section-bank" class="section-tabs"><div class="content-title">Bank- en spaarrekeningen</div></div>
<div id="section-aanmerkelijk" class="section-tabs"><div class="content-title">Aanmerkelijk belang</div></div>
<div id="section-beleggingen" class="section-tabs"><div class="content-title">Beleggingen</div></div>
<div id="section-kapitaalverzekeringen" class="section-tabs"><div class="content-title">Kapitaalverzekeringen</div></div>
<div id="section-bouwdepots" class="section-tabs"><div class="content-title">Bouwdepots</div></div>
<div id="section-andere-bezittingen" class="section-tabs"><div class="content-title">Andere bezittingen</div></div>
<div id="section-lijfrente" class="section-tabs"><div class="content-title">Uitgaven voor lijfrente</div></div>
<div id="section-zorgkosten" class="section-tabs"><div class="content-title">Zorgkosten</div></div>
<div id="section-giften" class="section-tabs"><div class="content-title">Giften</div></div>
</main>
</div>
<!-- Toast -->
<div class="toast" id="toast">✓ Opgeslagen in CouchDB</div>
<script>
function showSection(id) {
document.querySelectorAll('.section-tabs').forEach(s => s.classList.remove('active-section'));
const el = document.getElementById('section-' + id);
if (el) el.classList.add('active-section');
document.querySelectorAll('.nav-item').forEach(n => n.classList.remove('active'));
document.querySelectorAll('.nav-item').forEach(n => {
if (n.getAttribute('onclick') && n.getAttribute('onclick').includes("'" + id + "'")) {
n.classList.add('active');
}
});
}
function toggleNav(id) {
const el = document.getElementById(id);
const chev = document.getElementById('chev-' + id);
if (el.style.display === 'none') {
el.style.display = 'block';
if (chev) chev.textContent = '▼';
} else {
el.style.display = 'none';
if (chev) chev.textContent = '▲';
}
}
function toggleEmployer(idx) {
const body = document.getElementById('emp-body-' + idx);
const icon = document.getElementById('emp-icon-' + idx);
if (body.style.display === 'none') {
body.style.display = 'block';
icon.textContent = '∧';
} else {
body.style.display = 'none';
icon.textContent = '';
}
}
function togglePension(header) {
const body = header.nextElementSibling;
const span = header.querySelector('span');
if (body.style.display === 'none') {
body.style.display = 'block';
span.textContent = span.textContent.replace('', '∧');
} else {
body.style.display = 'none';
span.textContent = span.textContent.replace('∧', '');
}
}
function verwijderWerkgever(idx) {
if (confirm('Werkgever verwijderen?')) {
document.getElementById('employer-' + idx).style.display = 'none';
}
}
function opslaanConcept() {
const data = {
_id: "aangifte-2024-allard",
login_naam: "allard",
jaar_aangifte: 2024,
naam: "A C KRINGS",
inkomstenUitLoondienst: [{
werkgever: document.getElementById('wg0-naam').value,
loon: parseInt(document.getElementById('wg0-loon').value),
loonheffing: parseInt(document.getElementById('wg0-loonheffing').value),
arbeidskorting: parseInt(document.getElementById('wg0-arbeidskorting').value),
andereInkomsten: parseInt(document.getElementById('wg0-andere').value) || null,
}],
saved_at: new Date().toISOString()
};
console.log('CouchDB PUT:', JSON.stringify(data, null, 2));
showToast('✓ Concept opgeslagen in CouchDB');
}
function opslaanEnVolgende() { opslaanConcept(); }
function herbereken() {}
function showToast(msg) {
const t = document.getElementById('toast');
t.textContent = msg;
t.classList.add('show');
setTimeout(() => t.classList.remove('show'), 3000);
}
</script>
</body>
</html>