diff --git a/src/components/AgileCalculator.tsx b/src/components/AgileCalculator.tsx index 232ef29..b9c10d4 100644 --- a/src/components/AgileCalculator.tsx +++ b/src/components/AgileCalculator.tsx @@ -13,14 +13,19 @@ const AgileCalculator: Component = () => { singlePrice: 10.0, hoursPerPoint: 1, }); - const calculatorQuantity = createMemo(() => + const hours = createMemo(() => calculateAgileQuantity( - 1, + agileCalculator.hoursPerPoint, new Big(agileCalculator.risk).div(100).toNumber(), agileCalculator.minPoints, agileCalculator.maxPoints ) ); + const quantity = createMemo(() => + agileCalculator.hoursPerPoint > 0 + ? new Big(hours()).div(agileCalculator.hoursPerPoint).toNumber() + : hours() + ); return (
@@ -41,35 +46,36 @@ const AgileCalculator: Component = () => { /> !Number.isNaN(e.currentTarget.valueAsNumber) && - setAgileCalculator("hoursPerPoint", e.currentTarget.valueAsNumber) + setAgileCalculator("minPoints", e.currentTarget.valueAsNumber) } /> !Number.isNaN(e.currentTarget.valueAsNumber) && - setAgileCalculator("minPoints", e.currentTarget.valueAsNumber) + setAgileCalculator("maxPoints", e.currentTarget.valueAsNumber) } /> !Number.isNaN(e.currentTarget.valueAsNumber) && - setAgileCalculator("maxPoints", e.currentTarget.valueAsNumber) + setAgileCalculator("hoursPerPoint", e.currentTarget.valueAsNumber) } /> { } />
-
+
{"("} {new Big(-100).plus(agileCalculator.risk).abs().toNumber()}% @@ -107,37 +113,40 @@ const AgileCalculator: Component = () => { {")"} =
-
-
- Gewichtete Story Points: - {calculatorQuantity()} SP -
+
+ Gewichtete Story Points: + {quantity()} SP
-
+
- {calculatorQuantity()} SP + {quantity()} SP {" "} *{" "} {agileCalculator.hoursPerPoint} h {" "} + = +
+
+ Menge: + {hours()} h +
+
+ + {hours()} h + {" "} *{" "} {agileCalculator.singlePrice} CHF {" "} =
-
-
- Gesamtpreis: - {formatAmount( - new Big(calculatorQuantity()) - .mul(agileCalculator.hoursPerPoint) - .mul(agileCalculator.singlePrice) - .toNumber() - )}{" "} - CHF -
+
+ Gesamtpreis: + {formatAmount( + new Big(hours()).mul(agileCalculator.singlePrice).toNumber() + )}{" "} + CHF