Compacted the kosten with only the contractual variable visible.
This commit is contained in:
132
Pages/Home.razor
132
Pages/Home.razor
@@ -143,96 +143,100 @@
|
|||||||
<div class="box-content">
|
<div class="box-content">
|
||||||
<div class="box-content-inner">
|
<div class="box-content-inner">
|
||||||
<p class="box-description">Vergelijk kosten met en zonder batterij</p>
|
<p class="box-description">Vergelijk kosten met en zonder batterij</p>
|
||||||
|
|
||||||
<!-- Vaste Kosten -->
|
<!-- Contractuele Kosten -->
|
||||||
<div style="margin-bottom: 1.5rem;">
|
<div style="margin-bottom: 1.5rem;">
|
||||||
<h4 style="color: var(--green-clr); margin-bottom: 0.75rem; border-bottom: 1px solid var(--border-clr); padding-bottom: 0.5rem;">
|
<h4 style="color: var(--green-clr); margin-bottom: 0.75rem; border-bottom: 1px solid var(--border-clr); padding-bottom: 0.5rem;">
|
||||||
Vaste Kosten
|
Contractuele Kosten
|
||||||
</h4>
|
</h4>
|
||||||
<div style="display: flex; gap: 1rem; flex-wrap: wrap;">
|
<div style="display: flex; gap: 1rem; flex-wrap: wrap;">
|
||||||
<div class="input-group" style="flex: 1;">
|
<div class="input-group" style="flex: 1;">
|
||||||
<label>Vaste vergoeding (€/jaar):</label>
|
<label>Vaste vergoeding (€/jaar):</label>
|
||||||
<InputNumber @bind-value="calculator.BasePayment" T="double" min="0" step="1"/>
|
<InputNumber @bind-value="calculator.BasePayment" T="double" min="0" step="1"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="input-group" style=" flex: 1;">
|
<div class="input-group" style="flex: 1;">
|
||||||
<label>Databeheer tarief (€/jaar):</label>
|
<label>Databeheer tarief (€/jaar):</label>
|
||||||
<InputNumber @bind-value="calculator.DataManagementCost" T="double" min="0" step="0.01"/>
|
<InputNumber @bind-value="calculator.DataManagementCost" T="double" min="0" step="0.01"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="input-group" style=" flex: 1;">
|
|
||||||
<label>Vlaamse energieheffing (€/jaar):</label>
|
|
||||||
<InputNumber @bind-value="calculator.FlemishEnergyTariff" T="double" min="0" step="0.01"/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Vaste Kosten Subbox (Collapsed by Default) -->
|
||||||
|
<details class="collapsible-section" style="margin-top: 1rem;">
|
||||||
|
<summary class="collapsible-header">Vaste Kosten</summary>
|
||||||
|
<div class="collapsible-content">
|
||||||
|
<div style="display: flex; gap: 1rem; flex-wrap: wrap;">
|
||||||
|
<!-- Vlaamse energieheffing (moved here) -->
|
||||||
|
<div class="input-group" style="flex: 1;">
|
||||||
|
<label>Vlaamse energieheffing (€/jaar):</label>
|
||||||
|
<InputNumber @bind-value="calculator.FlemishEnergyTariff" T="double" min="0" step="0.01"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Heffingen Groene Stroom -->
|
||||||
|
<div style="margin-top: 1rem;">
|
||||||
|
<h5 style="color: var(--green-clr); margin-bottom: 0.5rem;">Heffingen Groene Stroom</h5>
|
||||||
|
<div style="display: flex; gap: 1rem; flex-wrap: wrap;">
|
||||||
|
<div class="input-group" style="flex: 1;">
|
||||||
|
<label>Groene stroomcertificaten (c€/kWh):</label>
|
||||||
|
<InputNumber @bind-value="calculator.GreenCertificateCost" T="double" min="0" step="0.0001"/>
|
||||||
|
</div>
|
||||||
|
<div class="input-group" style="flex: 1;">
|
||||||
|
<label>Warmtekracht certificaten (c€/kWh):</label>
|
||||||
|
<InputNumber @bind-value="calculator.HeatingCertificateCost" T="double" min="0" step="0.0001"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Net- en distributiekosten -->
|
||||||
|
<div style="margin-top: 1rem;">
|
||||||
|
<h5 style="color: var(--green-clr); margin-bottom: 0.5rem;">Net- en distributiekosten</h5>
|
||||||
|
<div style="display: flex; gap: 1rem; flex-wrap: wrap;">
|
||||||
|
<div class="input-group" style="flex: 1;">
|
||||||
|
<label>Capaciteitstarief (€/kWh/jaar):</label>
|
||||||
|
<InputNumber @bind-value="calculator.CapacityCost" T="double" min="0" step="0.01"/>
|
||||||
|
</div>
|
||||||
|
<div class="input-group" style="flex: 1;">
|
||||||
|
<label>Afnametarief (c€/kWh):</label>
|
||||||
|
<InputNumber @bind-value="calculator.UsageTariff" T="double" min="0" step="0.0001"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Heffingen en Toeslagen -->
|
||||||
|
<div style="margin-top: 1rem;">
|
||||||
|
<h5 style="color: var(--green-clr); margin-bottom: 0.5rem;">Heffingen en Toeslagen</h5>
|
||||||
|
<div style="display: flex; gap: 1rem; flex-wrap: wrap;">
|
||||||
|
<div class="input-group" style="flex: 1;">
|
||||||
|
<label>Energiebijdrage (c€/kWh):</label>
|
||||||
|
<InputNumber @bind-value="calculator.EnergyContribution" T="double" min="0" step="0.0001"/>
|
||||||
|
</div>
|
||||||
|
<div class="input-group" style="flex: 1;">
|
||||||
|
<label>Bijzondere accijns (c€/kWh):</label>
|
||||||
|
<InputNumber @bind-value="calculator.SpecialTariffs" T="double" min="0" step="0.0001"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</details>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Energiekosten -->
|
<!-- Energiekosten -->
|
||||||
<div style="margin-bottom: 1.5rem;">
|
<div style="margin-bottom: 1.5rem;">
|
||||||
<h4 style="color: var(--green-clr); margin-bottom: 0.75rem; border-bottom: 1px solid var(--border-clr); padding-bottom: 0.5rem;">
|
<h4 style="color: var(--green-clr); margin-bottom: 0.75rem; border-bottom: 1px solid var(--border-clr); padding-bottom: 0.5rem;">
|
||||||
Energiekosten
|
Energiekosten
|
||||||
</h4>
|
</h4>
|
||||||
<div style="display: flex; gap: 1rem; flex-wrap: wrap;">
|
<div style="display: flex; gap: 1rem; flex-wrap: wrap;">
|
||||||
<div class="input-group" style=" flex: 1;">
|
<div class="input-group" style="flex: 1;">
|
||||||
<label>Energiekost (c€/kWh):</label>
|
<label>Energiekost (c€/kWh):</label>
|
||||||
<InputNumber @bind-value="calculator.EnergyCost" T="double" min="0" step="0.0001"/>
|
<InputNumber @bind-value="calculator.EnergyCost" T="double" min="0" step="0.0001"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="input-group" style=" flex: 1;">
|
<div class="input-group" style="flex: 1;">
|
||||||
<label>Terugleveringsvergoeding (c€/kWh):</label>
|
<label>Terugleveringsvergoeding (c€/kWh):</label>
|
||||||
<InputNumber @bind-value="calculator.ReturnCost" T="double" min="0" step="0.0001"/>
|
<InputNumber @bind-value="calculator.ReturnCost" T="double" min="0" step="0.0001"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Heffingen Groene Stroom -->
|
|
||||||
<div style="margin-bottom: 1.5rem;">
|
|
||||||
<h4 style="color: var(--green-clr); margin-bottom: 0.75rem; border-bottom: 1px solid var(--border-clr); padding-bottom: 0.5rem;">
|
|
||||||
Heffingen Groene Stroom
|
|
||||||
</h4>
|
|
||||||
<div style="display: flex; gap: 1rem; flex-wrap: wrap;">
|
|
||||||
<div class="input-group" style=" flex: 1;">
|
|
||||||
<label>Groene stroomcertificaten (c€/kWh):</label>
|
|
||||||
<InputNumber @bind-value="calculator.GreenCertificateCost" T="double" min="0" step="0.0001"/>
|
|
||||||
</div>
|
|
||||||
<div class="input-group" style=" flex: 1;">
|
|
||||||
<label>Warmtekracht certificaten (c€/kWh):</label>
|
|
||||||
<InputNumber @bind-value="calculator.HeatingCertificateCost" T="double" min="0" step="0.0001"/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Net- en distributiekosten -->
|
|
||||||
<div style="margin-bottom: 1.5rem;">
|
|
||||||
<h4 style="color: var(--green-clr); margin-bottom: 0.75rem; border-bottom: 1px solid var(--border-clr); padding-bottom: 0.5rem;">
|
|
||||||
Net- en distributiekosten
|
|
||||||
</h4>
|
|
||||||
<div style="display: flex; gap: 1rem; flex-wrap: wrap;">
|
|
||||||
<div class="input-group" style=" flex: 1;">
|
|
||||||
<label>Capaciteitstarief (€/kWh/jaar):</label>
|
|
||||||
<InputNumber @bind-value="calculator.CapacityCost" T="double" min="0" step="0.01"/>
|
|
||||||
</div>
|
|
||||||
<div class="input-group" style=" flex: 1;">
|
|
||||||
<label>Afnametarief (c€/kWh):</label>
|
|
||||||
<InputNumber @bind-value="calculator.UsageTariff" T="double" min="0" step="0.0001"/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Heffingen en Toeslagen -->
|
|
||||||
<div style="margin-bottom: 1.5rem;">
|
|
||||||
<h4 style="color: var(--green-clr); margin-bottom: 0.75rem; border-bottom: 1px solid var(--border-clr); padding-bottom: 0.5rem;">
|
|
||||||
Heffingen en Toeslagen
|
|
||||||
</h4>
|
|
||||||
<div style="display: flex; gap: 1rem; flex-wrap: wrap;">
|
|
||||||
<div class="input-group" style=" flex: 1;">
|
|
||||||
<label>Energiebijdrage (c€/kWh):</label>
|
|
||||||
<InputNumber @bind-value="calculator.EnergyContribution" T="double" min="0" step="0.0001"/>
|
|
||||||
</div>
|
|
||||||
<div class="input-group" style=" flex: 1;">
|
|
||||||
<label>Bijzondere accijns (c€/kWh):</label>
|
|
||||||
<InputNumber @bind-value="calculator.SpecialTariffs" T="double" min="0" step="0.0001"/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div style="display: flex; justify-content: center; margin-top: 1.5rem;">
|
<div style="display: flex; justify-content: center; margin-top: 1.5rem;">
|
||||||
<button @onclick="Calculate" @onclick:stopPropagation disabled="@(StepData[2].isProcessing || SimulationData.Length == 0)">
|
<button @onclick="Calculate" @onclick:stopPropagation disabled="@(StepData[2].isProcessing || SimulationData.Length == 0)">
|
||||||
@if (StepData[2].isProcessing)
|
@if (StepData[2].isProcessing)
|
||||||
@@ -245,7 +249,7 @@
|
|||||||
}
|
}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if (StepData[2].Completed)
|
@if (StepData[2].Completed)
|
||||||
{
|
{
|
||||||
<div class="results">
|
<div class="results">
|
||||||
|
|||||||
@@ -13,17 +13,22 @@ namespace BattSim.Services
|
|||||||
{
|
{
|
||||||
public class EnergyCostCalculator
|
public class EnergyCostCalculator
|
||||||
{
|
{
|
||||||
|
// Base cost
|
||||||
public double BasePayment { get; set; } = 35;
|
public double BasePayment { get; set; } = 35;
|
||||||
|
public double DataManagementCost { get; set; } = 18.77;
|
||||||
|
public double FlemishEnergyTariff { get; set; } = 118.56;
|
||||||
|
// Energy cost
|
||||||
public double EnergyCost { get; set; } = 0.1364;
|
public double EnergyCost { get; set; } = 0.1364;
|
||||||
public double ReturnCost { get; set; } = 0.0266;
|
public double ReturnCost { get; set; } = 0.0266;
|
||||||
|
// Green energy cost
|
||||||
public double GreenCertificateCost { get; set; } = 0.01172;
|
public double GreenCertificateCost { get; set; } = 0.01172;
|
||||||
public double HeatingCertificateCost { get; set; } = 0.00415;
|
public double HeatingCertificateCost { get; set; } = 0.00415;
|
||||||
public double DataManagementCost { get; set; } = 18.77;
|
// Net and distributino ocsts
|
||||||
public double CapacityCost { get; set; } = 58.20;
|
public double CapacityCost { get; set; } = 58.20;
|
||||||
public double UsageTariff { get; set; } = 0.0637;
|
public double UsageTariff { get; set; } = 0.0637;
|
||||||
|
// Tax
|
||||||
public double EnergyContribution { get; set; } = 0.00205;
|
public double EnergyContribution { get; set; } = 0.00205;
|
||||||
public double SpecialTariffs { get; set; } = 0.0502;
|
public double SpecialTariffs { get; set; } = 0.0502;
|
||||||
public double FlemishEnergyTariff { get; set; } = 118.56;
|
|
||||||
|
|
||||||
public double CalculateCostOfEnergyUsage(EnergyData[] energyData, bool print = false) {
|
public double CalculateCostOfEnergyUsage(EnergyData[] energyData, bool print = false) {
|
||||||
int amountOfDays = energyData.Last().Time.Subtract(energyData.First().Time).Days;
|
int amountOfDays = energyData.Last().Time.Subtract(energyData.First().Time).Days;
|
||||||
|
|||||||
50297
data/Verbruikshistoriek_7aug.csv
Normal file
50297
data/Verbruikshistoriek_7aug.csv
Normal file
File diff suppressed because it is too large
Load Diff
@@ -396,6 +396,33 @@ a:hover {
|
|||||||
margin-top: 1rem;
|
margin-top: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Foldable container */
|
||||||
|
.collapsible-section {
|
||||||
|
border: 1px solid var(--border-clr);
|
||||||
|
border-radius: 0.5rem;
|
||||||
|
padding: 0.5rem;
|
||||||
|
background: var(--bg-secondary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.collapsible-header {
|
||||||
|
cursor: pointer;
|
||||||
|
font-weight: bold;
|
||||||
|
padding: 0.5rem;
|
||||||
|
margin: -0.5rem;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
color: var(--green-clr);
|
||||||
|
}
|
||||||
|
|
||||||
|
.collapsible-header:hover {
|
||||||
|
background: var(--bg-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
.collapsible-content {
|
||||||
|
padding: 0.5rem;
|
||||||
|
display: grid;
|
||||||
|
gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
/* Results Display */
|
/* Results Display */
|
||||||
.pipeline-box .results {
|
.pipeline-box .results {
|
||||||
margin-top: 1.5rem;
|
margin-top: 1.5rem;
|
||||||
|
|||||||
Reference in New Issue
Block a user