Ammunitionslager
Hvad der er købt ind, solgt og brugt, pr. kaliber. Advarsel, før en kaliber løber tør.
Betalinger
Kontingent, ammunitionssalg og gæstegebyrer samlet ét sted, uanset om det er MobilePay, bank eller kontant.
CSV ind og ud
Eksport til kassererens regnskabsprogram og import af kontoudtog fra bank og MobilePay.
1Hvorfor
Systemet ved allerede, hvem der har skudt hvor meget i hvilken kaliber. Pengene og lageret lever i dag et andet sted, typisk i regneark og på papir.
2Sådan hænger det sammen
Økonomidelen bliver en ny fane i admin online. Banen registrerer salget, og kassereren henter og sender tal som CSV-filer. Der er ingen direkte kobling til regnskabsprogrammet.
3Ammunitionslager
Hver vare hører til en af de fire kaliberklasser, banen allerede bruger. Beholdningen beregnes ud fra alle bevægelser, så man altid kan se, hvordan tallet er opstået.
Bevægelser der påvirker lageret
| Type | Hvor | Effekt |
|---|---|---|
| 📥 Indkøb | Admin (eller CSV-import) | + |
| 🛒 Salg | Banen, salgsblokken på forsiden | − |
| 🎯 Klubbens eget forbrug | Banen (fx gæster, træning) | − |
| 🔢 Optælling | Admin, ved fysisk optælling | ± |
Kontroltal: solgt vs. skudt
Banen registrerer allerede skud pr. kaliberklasse. Det kan sammenholdes med salget og vise, om tallene hænger sammen.
| Sept. (eksempel) | Solgt | Skudt | |
|---|---|---|---|
| Klasse 1 · .22 | 4.000 | 4.120 | OK |
| Klasse 3 · 9 mm | 1.500 | 2.650 | Egen ammo? |
Mange skyder med egen ammunition, så tallet er kun en indikator og ikke en fejl. Det er et overblik pr. kaliber og måned, ikke pr. medlem.
4Salg på banen
Klubben sælger kun fire slags ammunition. Derfor er det nok med en lille blok nederst på banens forside med én linje pr. vare. Banekommandøren tæller op og trykker "Registrér". Der skal ikke vælges skytte, og der er ingen ekstra skærmbilleder.
Sådan virker blokken
- + / − tæller op og ned. Intet er gemt endnu, så en fejl kan rettes med det samme.
- Registrér salg gemmer det hele som ét salg og nulstiller tællerne. Totalen i kroner vises, så banekommandøren kan tage imod betalingen.
- "I dag: … solgt" viser dagens samlede salg, så man kan stemme af ved lukning.
- Et forkert salg rettes i admin med en modpostering.
- Blokken vises kun, når banen er åben. Skytter kan altså ikke registrere salg på egen hånd.
- Hvilke varer der vises, og deres priser, styres i admin. Vises en femte vare, er det bare én linje mere.
5Eksport til kassereren
Kassereren vælger en periode og får en CSV-fil, der kan læses direkte ind i regnskabsprogrammet eller åbnes i Excel.
| Dato | Bilag | Tekst | Konto | Beløb |
|---|---|---|---|---|
| 02-09-2026 | 1041 | Ammunitionssalg 02-09 (.22 LR 2 pk) | 1010 | 200,00 |
| 02-09-2026 | 1042 | Gæstegebyr prøveskydning | 1030 | 50,00 |
| 05-09-2026 | 1043 | Indkøb 9 mm, 2.000 stk | 2010 | −3.400,00 |
| 09-09-2026 | 1044 | Kontingent 2026 · medlem 667 | 1000 | 900,00 |
Dato;Bilag;Tekst;Konto;Beløb 02-09-2026;1041;Ammunitionssalg 02-09 (.22 LR 2 pk);1010;200,00 02-09-2026;1042;Gæstegebyr prøveskydning;1030;50,00
Det kan eksporteres
- Posteringer for en periode (salg, gebyrer, indkøb, kontingent)
- Lagerstatus på en bestemt dato, fx til årsafslutningen
- Kontingentliste: betalt / ikke betalt
Passer til kassererens program
- Kontonumre for hver type postering sættes op én gang
- Dansk format: semikolon, komma som decimaltegn, dd-mm-åååå
- Åbner korrekt i Excel med æ, ø og å
- Eksporterede posteringer markeres, så intet bogføres to gange
6Import fra bank og MobilePay
Kassereren uploader et kontoudtog, og systemet foreslår, hvilke indbetalinger der hører til hvilke medlemmer og salg. Intet gemmes, før kassereren har godkendt det.
| Dato | Fra | Besked | Beløb | Forslag |
|---|---|---|---|---|
| 02-09 | Medlem A | 22 ammo | 200,00 | ✓ Dagens salg 02-09 |
| 09-09 | Medlem B | kontingent | 900,00 | ✓ Kontingent, medlem 667 |
| 12-09 | Medlem C | — | 150,00 | ? Salg eller kontingent |
| 14-09 | Ukendt | tak for i dag | 50,00 | Ingen match |
7Adgang og sporbarhed
🔐 Ny rolle: kasserer
- Kassereren får adgang til fanen Økonomi, uden nødvendigvis at være fuld administrator.
- Banekommandører kan registrere salg og forbrug på banen, men ikke se økonomien.
- Fuld admin kan se det hele.
📋 Alt kan spores
- Hver bevægelse på lageret har dato, type og hvem der registrerede den.
- Rettelser sker med en modpostering, aldrig ved at slette.
- Hver eksport og import gemmes, så den kan findes igen.
For de tekniske: foreslået datamodel
Nye tabeller i den online database, med samme mønster som resten af systemet:
stock_products: vare, kaliberklasse (1–4), enhed (stk/pakke), stk pr. pakke, salgspris, minimumsbeholdningstock_movements: vare, type (indkøb/salg/forbrug/optælling), antal (+/−), dato, registreret af, evt. betalingpayments: type (kontingent/salg/gebyr), beløb, metode (MobilePay/kontant/bank/regning), medlem, status, eksport-batchfinance_accounts: kontonummer pr. posteringstype (opsætning af eksporten)finance_batches: hver eksport og import med periode, fil og hvem der lavede den
Salg og forbrug på banen gemmes lokalt og synkes op som nye tabeller i den
eksisterende synk-agent. Den eksisterende mobilepay_payments lægges ind i payments.
Banens forside har et skjult felt, der altid har fokus, så kortscanninger fanges. Knapperne i salgsblokken skal derfor give fokus tilbage efter hvert klik. Ellers går en scanning tabt, mens nogen står og tæller ammunition.
8Forslag til rækkefølge
Hver fase kan bruges for sig, så klubben får noget ud af det fra første fase.
Lager
- Varer og minimumsbeholdning
- Indkøb og optælling i admin
- Lageroversigt med advarsler
Salg på banen
- Salgsblok på banens forside
- Dagens salg til afstemning
- Kontroltal solgt vs. skudt
- Lager trækkes automatisk
CSV til kassereren
- Eksport af posteringer og lager
- Import af bank og MobilePay
- Kasserer-rolle
MobilePay direkte
- Betaling på skærmen ved banen
- Kræver erhvervsaftale