diff --git a/app.vue b/app.vue index 32ef7bc..e8aa8ad 100644 --- a/app.vue +++ b/app.vue @@ -91,7 +91,7 @@ const isCoopBuilderSection = computed( route.path === "/dashboard" || route.path === "/mix" || route.path === "/budget" || - route.path === "/runway-lite" || + route.path === "/cash-flow" || route.path === "/settings" || route.path === "/glossary" ); diff --git a/components/AnnualBudget.vue b/components/AnnualBudget.vue index 8d04e2e..0e8c844 100644 --- a/components/AnnualBudget.vue +++ b/components/AnnualBudget.vue @@ -3,13 +3,18 @@
| Category | -Planned | ++ Category + | ++ Planned + | % | |
|---|---|---|---|---|---|
| REVENUE | |||||
| {{ category.name }} | +|||||
| + {{ category.name }} + | {{ formatCurrency(category.planned) }} | -- {{ category.percentage }}% - | +{{ category.percentage }}% | ||
| Total Revenue | +Total Revenue | {{ formatCurrency(totalRevenuePlanned) }} | @@ -47,14 +53,15 @@
{{ diversificationGuidance }} -- Consider developing: {{ suggestedCategories.join(', ') }} + + Consider developing: {{ suggestedCategories.join(", ") }}
- |
||
| - | |||||
| EXPENSES | |||||
| {{ category.name }} | +|||||
| + {{ category.name }} + | {{ formatCurrency(category.planned) }} | -- {{ category.percentage }}% - | +{{ category.percentage }}% | ||
| Total Expenses | +Total Expenses | {{ formatCurrency(totalExpensesPlanned) }} | @@ -96,8 +99,10 @@|||
| NET TOTAL | +|||||
| NET TOTAL | {{ formatCurrency(netTotal) }} | @@ -107,7 +112,6 @@||||
- Complete the Setup Wizard to see your runway projection -
-+ Weekly cash flow analysis with one-off transactions +
++ {{ alert.description }} +
++ 💡 {{ alert.suggestion }} +
+| Week | +Dates | +Inflow | +Outflow | +Net Flow | +Balance | +Transactions | +
|---|---|---|---|---|---|---|
| + Week {{ week.number }} + | ++ {{ formatDate(week.weekStart) }} - {{ formatDate(week.weekEnd) }} + | ++ {{ formatCurrency(week.inflow) }} + | ++ {{ formatCurrency(week.outflow) }} + | ++ {{ week.net >= 0 ? '+' : '' }}{{ formatCurrency(week.net) }} + | ++ {{ formatCurrency(week.balance) }} + | +
+
+
+ —
+
+ {{ event.name }} ({{ formatCurrency(event.amount) }})
+
+ |
+
- Your budget is empty. Complete the setup wizard to add your revenue streams, team members, and expenses. + Your budget is empty. Complete the setup wizard to add your revenue + streams, team members, and expenses.
| + class="border-r-1 border-black px-4 py-3 text-left font-bold min-w-[250px] sticky left-0 bg-white z-10"> Item | + class="border-r border-gray-400 px-2 py-3 text-center font-medium min-w-[80px] last:border-r-0"> {{ month.label }} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| + class="px-4 py-1 font-semibold sticky left-0 bg-zinc-100 z-10 border-black" + :colspan="monthlyHeaders.length + 1"> {{ categoryName }} |
+ class="border-r-1 border-zinc-200 px-4 py-2 sticky left-0 bg-white z-10">
@@ -154,10 +135,8 @@
size="xs"
variant="ghost"
:ui="{
- base:
- 'text-red-600 hover:bg-red-100 opacity-0 group-hover:opacity-100 transition-none',
- }"
- >
+ base: 'text-red-600 hover:bg-red-100 opacity-0 group-hover:opacity-100 transition-none',
+ }">
×
@@ -165,44 +144,39 @@
+ class="border-r border-gray-200 px-1 py-1 last:border-r-0">
+ 'bg-zinc-50': !item.monthlyValues?.[month.key],
+ }" />
|
-
+ class="border-r-1 border-black px-4 py-2 sticky left-0 bg-zinc-100 z-10">
TOTAL REVENUE
|
+ class="border-r border-black px-2 py-2 text-right last:border-r-0">
{{ formatCurrency(monthlyTotals[month.key]?.revenue || 0) }}
|
- |
@@ -212,9 +186,8 @@
@click="showAddExpenseModal = true"
size="xs"
:ui="{
- base: 'bg-white text-black hover:bg-gray-200 transition-none',
- }"
- >
+ base: 'bg-white text-black hover:bg-zinc-200 transition-none',
+ }">
+ Add
@@ -225,13 +198,11 @@
+ :key="`expense-${categoryName}`">
|
+ class="px-4 py-1 font-semibold sticky left-0 bg-zinc-100 z-10"
+ :colspan="monthlyHeaders.length + 1">
{{ categoryName }}
|
+ class="border-r-1 border-zinc-200 px-4 py-2 sticky left-0 bg-white z-10">
|
-
-
-
- {{ item.name }}
-
+
+
+
{{ item.subcategory }}
-
-
-
+
+
+ class="border-r border-gray-200 px-1 py-1 last:border-r-0">
+ :title="
+ isPayrollItem(item.id)
+ ? 'Calculated from compensation settings - edit on Compensation page'
+ : ''
+ " />
|
+ class="border-r-1 border-black px-4 py-2 sticky left-0 bg-zinc-100 z-10">
TOTAL EXPENSES
|
+ class="border-r border-gray-400 px-2 py-2 text-right last:border-r-0">
{{ formatCurrency(monthlyTotals[month.key]?.expenses || 0) }}
|
+ |
NET INCOME
|
+ :class="
+ getNetIncomeClass(monthlyTotals[month.key]?.net || 0)
+ ">
{{ formatCurrency(monthlyTotals[month.key]?.net || 0) }}
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Create a new revenue stream for your budget -
-- This will divide ${{ newRevenue.annualAmount || 0 }} equally across all 12 months - (${{ newRevenue.annualAmount ? Math.round(newRevenue.annualAmount / 12) : 0 }} per month) -
-- This will set ${{ newRevenue.monthlyAmount || 0 }} for all months + equally across all 12 months (${{ + newRevenue.annualAmount + ? Math.round(newRevenue.annualAmount / 12) + : 0 + }} + per month)
- The revenue item will be created with no initial values. You can fill them in later. + This will set + ${{ newRevenue.monthlyAmount || 0 }} + for all 12 months
+ The revenue item will be created with no initial values. You + can fill them in later directly in the budget table. +
+Create a new expense for your budget
-- This will divide ${{ newExpense.annualAmount || 0 }} equally across all 12 months - (${{ newExpense.annualAmount ? Math.round(newExpense.annualAmount / 12) : 0 }} per month) -
-- This will set ${{ newExpense.monthlyAmount || 0 }} for all months -
-- The expense item will be created with no initial values. You can fill them in later. -
-+ This will divide + ${{ newExpense.annualAmount || 0 }} + equally across all 12 months (${{ + newExpense.annualAmount + ? Math.round(newExpense.annualAmount / 12) + : 0 + }} + per month) +
++ This will set + ${{ newExpense.monthlyAmount || 0 }} + for all 12 months +
++ The expense item will be created with no initial values. You + can fill them in later directly in the budget table. +
+