snelstart-import-1.0.0: src/SnelstartImport/Convert.hs
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE RecordWildCards #-}
-- | Go from various formats to snelstart (ing)
module SnelstartImport.Convert
( n26ToING,
sepaDirectCoreSchemeToING
)
where
import SnelstartImport.ING
import SnelstartImport.N26
import Data.Text(Text)
import SnelstartImport.SepaDirectCoreScheme (SepaDirectCoreScheme(..))
import Data.Time
sepaDirectCoreSchemeToING :: Text -> SepaDirectCoreScheme -> ING
sepaDirectCoreSchemeToING ownAccoun SepaDirectCoreScheme{..} = ING{
datum = UTCTime{ utctDay = dtOfSgntr, utctDayTime = 0},
naamBescrhijving = dbtr,
rekening = ownAccoun,
tegenRekening = dbtrAcct,
mutatieSoort = Overschijving, -- TODO how can we figure this out?
bijAf = Af, -- TODO looks like it only deducts from the account, is this right?
bedragEur = instdAmt ,
mededeling = ""
}
n26ToING :: Text -> N26 -> ING
n26ToING ownAccoun N26{..} = ING {
datum = unDate date,
naamBescrhijving = payee,
rekening = ownAccoun,
tegenRekening = accountNumber,
mutatieSoort = toType transactionType , -- eg ook voor code
bijAf = if amountEur < 0 then Af else Bij,
bedragEur = abs amountEur ,
mededeling = paymentReference
}
toType :: TransactionType -> MutatieSoort
toType = \case
MastercardPayment -> Diversen
OutgoingTransfer -> Overschijving
Income -> Overschijving
N26Referal -> Diversen
DirectDebit -> Overschijving