Add support for group income (= negative expenses) (#158)

* Allow negative amount for expenses to be entered

- an expense becomes an income
- this does not affect calculations, i.e. an income can be split just like an expense

* Incomes should not be reimbursements

when entering a negative number
- deselect 'isReimbursement'
- hide reimbursement checkbox

* Change captions when entering a negative number

- "expense" becomes "income"
- "paid" becomes "received"

* Format incomes on expense list

- replace "paid by" with "received by"

* Format incomes on "Stats" tab

- a group's or participants balance might be negative
- in this case "spendings" will be "earnings" (display accordingly)
- always display positive numbers
- for active user: highlight spendings/earnings in red/green

* Fix typo

---------

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
This commit is contained in:
Stefan Hynst
2024-05-30 04:20:04 +02:00
committed by GitHub
parent 3887efd9ee
commit 0c05499107
6 changed files with 75 additions and 55 deletions

View File

@@ -6,11 +6,12 @@ type Props = {
}
export function TotalsGroupSpending({ totalGroupSpendings, currency }: Props) {
const balance = totalGroupSpendings < 0 ? 'earnings' : 'spendings'
return (
<div>
<div className="text-muted-foreground">Total group spendings</div>
<div className="text-muted-foreground">Total group {balance}</div>
<div className="text-lg">
{formatCurrency(currency, totalGroupSpendings)}
{formatCurrency(currency, Math.abs(totalGroupSpendings))}
</div>
</div>
)