Files
2026-08-19 20:59:23 +02:00

77 lines
1.9 KiB
Markdown

# Bo hemma-avi med Swish-QR
En enkel Docker-app som:
- läser kostnadsposter från `config.json`
- visar underlaget på en webbsida
- låter användaren mata in månadens nettoinkomst
- räknar fram `min(kostnadsandel, nettoinkomst * income_ratio, eventuell max_amount)`
- genererar en Swish-QR-kod med förifyllt belopp och meddelande
## Starta
```bash
docker compose up --build
```
Öppna sedan:
```text
http://localhost:8000
```
## Konfiguration
Exempel:
```json
{
"title": "Bo hemma-avi",
"currency": "SEK",
"swish": {
"payee": "46701234567",
"message_prefix": "Bohemma",
"lock_mask": 0
},
"payment": {
"income_ratio": 0.30,
"max_amount": null,
"round_to": 1
},
"items": [
{
"post": "hushållsel",
"amount": 1000,
"period": "month",
"ratio": 0.2,
"comment": "20 % av uppskattad månadskostnad"
},
{
"post": "hemförsäkring",
"amount": 5000,
"period": "year",
"ratio": 0.2,
"comment": "20 % av årskostnad, omräknad till månad"
}
]
}
```
### Fält
| Fält | Betydelse |
|---|---|
| `swish.payee` | Swishnummer, t.ex. `46701234567` |
| `swish.message_prefix` | Prefix i meddelandet, appen lägger till aktuell period, t.ex. `Bohemma 2026-07` |
| `swish.lock_mask` | `0` låser mottagare, belopp och meddelande |
| `payment.income_ratio` | Andel av nettoinkomst som är tak, t.ex. `0.30` |
| `payment.max_amount` | Extra absolut maxbelopp, eller `null` |
| `payment.round_to` | Avrundning uppåt, t.ex. `1`, `10`, `50` eller `100` |
| `items[].amount` | Kostnad, per månad eller år beroende på `period` |
| `items[].period` | `month` eller `year` |
| `items[].ratio` | Andel dottern ska bära, t.ex. `0.2` eller `1` |
## Viktigt
Appen genomför ingen betalning. QR-koden förifyller betalningen i Swish, men betalaren måste själv granska och godkänna betalningen.