diff --git a/src/App.svelte b/src/App.svelte index 4a847810f0d907ab558ea970422fb1838eda40a3..521a36d7fb06ecafbea978ee588f01f7d036772e 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -36,7 +36,7 @@ import type { WorkPackage } from "./estimator"; {#each workPackages as workPackage, i (i)} <RowWorkItem bind:a={workPackage.a} bind:b={workPackage.b} bind:c={workPackage.c} u={u} r={r}></RowWorkItem> {/each} - <SumRow {workPackages}></SumRow> + <SumRow {workPackages} u={u} r={r}></SumRow> </tbody> </table> <details> diff --git a/src/SumRow.svelte b/src/SumRow.svelte index 0f6b015f84ed536ed6188bfc9ad2fbd9e9cb3e47..7c76aa6ea5e710af655bdb4bcfca5e4fa2f86525 100644 --- a/src/SumRow.svelte +++ b/src/SumRow.svelte @@ -1,6 +1,6 @@ <script lang="ts"> import type { WorkPackage } from "./estimator"; - import { calculateSSum, calculateESum } from './estimator'; + import { calculateSSum, calculateESum, calculateVSum } from './estimator'; import { roundOne, sumIgnoreNonNumbers } from "./utils"; export let workPackages: WorkPackage[] @@ -26,5 +26,6 @@ <td class="tg-0lax"> </td> <td class="tg-0lax"> + ∑ {roundOne(calculateVSum(workPackages, u))} </td> </tr> \ No newline at end of file diff --git a/src/estimator.ts b/src/estimator.ts index e11e4bf5ac9b140a9633368131953cdf29a099e8..82ae259e7e6442ef36e2be116b662c1b0dc41587 100644 --- a/src/estimator.ts +++ b/src/estimator.ts @@ -66,3 +66,11 @@ export function calculateESum(workPackages: WorkPackage[], r: number): number { .map((workPackage) => calculateE(workPackage, r)) ); } + +export function calculateVSum(workPackages: WorkPackage[], u: number): number { + return sumIgnoreNonNumbers( + workPackages + .filter(({ a, b }) => typeof a === "number" && typeof b === "number") + .map((workPackage) => calculateV(workPackage, u)) + ); +}