Compare commits

...

2 Commits

Author SHA1 Message Date
672addb270
Korjaa vientien suunta Kitsaaseen tuodessa
Kululaskut.fi kertoo maksettavan määrän ja Kitsas odottaa pankkitilille
tulevaa määrää, joten viennit menivät väärin päin. Kuluista siirtyi
rahaa pankkitilille ja tuloista pois sieltä. Tällä muutoksella kootut
CSV-tiedostot ovat Kitsaan odottamassa muodossa.
2025-01-11 21:56:33 +02:00
3fc5eb8ef8
Lisää README 2025-01-11 21:56:33 +02:00
2 changed files with 70 additions and 1 deletions

63
README.md Normal file
View File

@ -0,0 +1,63 @@
# Kululaskusilppuri
Kululaskusilppuri pilkkoo ja siistii [kululaskut.fi](https://kululaskut.fi):n
tuottamia CSV-tiedostoja OMS:n kirjanpitoon helpommin tuotavaan muotoon. Se
poistaa tiedoista käyttämättömät kentät, siistii loput
[Kitsaalla](https://kitsas.fi) luettavaan muotoon ja pilkkoo rivit erillisiin
tiedostoihin maksupäivien perusteella.
## Asentaminen
Lisää tämä git-tietovaranto [Guixin kanavalistaan][guix-channels]
seuraavankaltaisella pätkällä:
[guix-channels]: https://guix.gnu.org/manual/devel/en/guix.html#Specifying-Additional-Channels
```lisp
(channel
(name 'kululaskusilppuri)
(url "https://git.olarinmaensamoojat.fi/OMS/kululaskusilppuri")
(branch "main")
(introduction
(make-channel-introduction
"4a4d0add212aab3554689adb7971bc0b0db32d13"
(openpgp-fingerprint
"A0C9 1947 734F 076F 5F08 E9FF 257D 284A 2A1D 3A32"))))
```
Tämän jälkeen Kululaskusilppuri on saatavilla `kululaskusilppuri`-nimisenä
pakettina kaikkialla Guixissa. Voit esimerkiksi ottaa sen käyttöön
komentotulkkisessioosi komennolla `guix shell kululaskusilppuri`.
## Ajaminen
Yleensä kululaskusilppurin käyttö etenee seuraavasti:
1. Lataa uudet kululaskut CSV-tiedostona osoitteesta
<https://hallinta.kululaskut.fi>
2. Aja `kululaskusilppuri`
3. Vie Kululaskusilppurin luomat CSV-tiedostot Kitsaaseen
Jokaiselle komennolle tarvitsee määrittää oikeat asetukset komentorivillä
annettavilla valitsimilla. Mahdolliset valitsimet voi listata kirjoittamalla
komennon perään `--help`-valitsimen.
## Kehittäminen
Kehitysympäristön saat helposti Guixilla ajamalla komennon [`guix
shell`][guix-shell] tässä hakemistossa. Muutoksia, vikailmoituksia ja
kehitysideoita voi jättää Giteassa tai sähköpostilla osoitteeseen
<saku@laesvuori.fi>. Tarkista, että kululaskusilppuri kääntyy vielä muutostesi
jälkeen ajamalla komento `guix time-machine -C channels.scm -- build -f
guix.scm`.
[guix-shell]: https://guix.gnu.org/manual/devel/en/guix.html#Invoking-guix-shell
## Kopioiminen
Laskutin on [GNU AGPL lisenssin version kolme](COPYING.md), tai valintasi
mukaan minkä tahansa myöhemmän [Free Software Foundationin julkaiseman
version][fsf-agpl], alainen vapaa ohjelma, eli se kunniottaa käyttäjiensä
vapautta päättää itse omasta tietojenkäsittelystään ja auttaa toisiaan.
[fsf-agpl]: https://www.gnu.org/licenses/agpl-3.0.html

View File

@ -36,10 +36,16 @@ instance ToNamedRecord Kululasku where
toNamedRecord Kululasku {..} = namedRecord
[ referenceField .= referenceNumber
, submitterField .= submitter
, amountField .= amount
-- Kitsas reads this as money to our bank account and kululaskut.fi
-- reports what we need to pay. Negating it makes them understand each other
, amountField .= negateBS amount
, descriptionField .= description
, dateField .= paymentDate
]
where negateBS bs = case BS.head bs of
-- 45 is the - character in ASCII/UTF-8
45 -> BS.tail bs
_ -> BS.cons 45 bs
instance DefaultOrdered Kululasku where
headerOrder _ = header [dateField, referenceField, submitterField, amountField, descriptionField]