From ee8a1e3ffb188541d04cec0cb2b21e27956d9c57 Mon Sep 17 00:00:00 2001 From: Niklas Meinzer Date: Sun, 29 Sep 2024 09:45:09 +0200 Subject: [PATCH] Add more rent info --- src/App.js | 5 +++-- src/Data.js | 8 ++++---- src/Solimieten.js | 40 ++++++++++++++++++++++++++++++++++------ 3 files changed, 41 insertions(+), 12 deletions(-) diff --git a/src/App.js b/src/App.js index 31c327c..e018745 100644 --- a/src/App.js +++ b/src/App.js @@ -23,6 +23,7 @@ function App() { const [selectedFlat, setSelectedFlat] = useState(); const [selectedRoom, setSelectedRoom] = useState(); + const [numAdults, setNumAdults] = useState(1); const [rent, setRent] = useState(0); @@ -73,8 +74,8 @@ function App() { Wohnung - - + + Selbsteinschätzung diff --git a/src/Data.js b/src/Data.js index 77a66e9..0e4e065 100644 --- a/src/Data.js +++ b/src/Data.js @@ -59,7 +59,7 @@ class Room { export const flatData = { "north": { 0: [ - new Flat("W 0.1", 4, 84.834, false, false, [ + new Flat("W 0.1 (WG)", 4, 84.834, false, false, [ new Room("0.1 02", 12.523), new Room("0.1 03", 12.102), new Room("0.1 04", 14.746) ]), new Flat("W 0.2", 2, 53.453, true), @@ -68,21 +68,21 @@ export const flatData = { 1: [ new Flat("W 1.1", 4, 84.794, true), new Flat("W 1.2", 1, 36.469, true), - new Flat("W 1.3", 4, 63.128, true, false, [ + new Flat("W 1.3 (WG)", 4, 63.128, true, false, [ new Room("1.3 02", 11.434), new Room("1.3 03", 11.245), new Room("1.3 04", 11.77) ]) ], 2: [ new Flat("W 2.1", 4, 84.794, true), new Flat("W 2.2", 2, 46.261, true), - new Flat("W 2.3", 5, 154.196, true, true, [ + new Flat("W 2.3 (Cluster)", 5, 154.196, true, true, [ new Room("1 Person", 28.774), new Room("2 Personen", 46.32, 2), new Room("1 Person (rollstuhlgerecht)", 41.814) ]), new Flat("W 2.4", 2, 64.265, true, true) ], 3: [ new Flat("W 3.1", 4, 84.794), - new Flat("W 3.2", 5, 154.97, true, true, [ + new Flat("W 3.2 (Cluster)", 5, 154.97, true, true, [ new Room("1 Person", 28.531), new Room("2 Personen", 47.146, 2), new Room("1 Person (rollstuhlgerecht)", 44.036) ]), new Flat("W 3.3", 3, 63.128, true) diff --git a/src/Solimieten.js b/src/Solimieten.js index 289324e..c8ce940 100644 --- a/src/Solimieten.js +++ b/src/Solimieten.js @@ -27,7 +27,7 @@ import { import { flatData, minRent, maxRent } from './Data'; -export function FlatSelectionCard({ setSelectedFlat, onRoomSelected }) { +export function FlatSelectionCard({ setSelectedFlat, onRoomSelected, onNumAdultsSelected }) { const [levelOptions, setLevelOption] = useState([{ value: 0, label: "EG" }, { value: 1, label: "1. OG" }, { value: 2, label: "2. OG" }, { value: 3, label: "3. OG" }]); const [flatOptions, setFlatOptions] = useState([]); const [roomOptions, setRoomOptions] = useState([]); @@ -64,6 +64,9 @@ export function FlatSelectionCard({ setSelectedFlat, onRoomSelected }) { onRoomSelected(roomOptions[e.target.value]); } + function numAdultsSelected(e) { + onNumAdultsSelected(e.target.value); + } return Wohnungsauswahl @@ -83,22 +86,29 @@ export function FlatSelectionCard({ setSelectedFlat, onRoomSelected }) { {roomOptions.length > 0 ? () : null} + - + } -export function FlatDetailsCard({ flat, room }) { +export function FlatDetailsCard({ flat, room, numAdults }) { var body = Bitte auswählen ; var badges = ""; + var kitchenCost = 50; + var commonAreaShare = 60 * numAdults; if (flat && (room || flat.wgRoomList.length === 0)) { var sizePrivate = flat.sizePrivate; if (room) { sizePrivate = room.size; + kitchenCost = kitchenCost / flat.wgRoomList.length; } var sizeSharedBox = null; @@ -155,9 +165,27 @@ export function FlatDetailsCard({ flat, room }) { Mindestmiete - Die Mindestmiete ergibt sich aus dem WBS Satz für die private Fläche (4,45 €/m²), den Nebenkosten (1,20 €/m²) und der Küchen-Nutzungspauschale von 50€ pro Küche - - {((sizePrivate + internalAreaShare) * minRent + 50).toFixed(2)} € + Die Mindestmiete ergibt sich aus dem WBS Satz für die private Fläche (4,45 €/m²), den Nebenkosten (1,20 €/m²) und der Küchen-Nutzungspauschale von 50€ pro Küche (in Clustern und WGs auf Parteien aufgeteilt) + + {((sizePrivate + internalAreaShare) * minRent + kitchenCost).toFixed(2)} € + + + + + Deckungsmiete WBS + + Die Deckungsmiete beinhaltet einen Beitrag von 60 € pro erwachsener Person für die Gemeinschaftsflächen + + {((sizePrivate + internalAreaShare) * minRent + kitchenCost + commonAreaShare).toFixed(2)} € + + + + + Deckungsmiete freifinanziert {flat.isWbs ? "(zum Vergleich)" : ""} + + Das ist die Miete, die für diese Wohnung ohne solidarischen Ausgleich anfallen würde{flat.isWbs ? ", wenn Sie frei finanziert wäre." : "."} + + {((sizePrivate + internalAreaShare) * maxRent + kitchenCost + commonAreaShare).toFixed(2)} €