module Handler.Wallet where
import Import
import Data.Time.Clock
getWalletR :: Handler Html
getWalletR = getWalletDetailsR 6 7
getWalletDetailsR :: Int64 -> Int64 -> Handler Html
getWalletDetailsR hrs days = loginOrDo (\(uid,user) -> do
now <- liftIO getCurrentTime
trans <- runDB $ selectList [TransactionDateTime >. (addUTCTime ((fromIntegral $ -(hrs*3600)) :: NominalDiffTime) now)] [Desc TransactionDateTime]
defaultLayout $ [whamlet|
show last 7 days
Transactions in the last #{hrs} hours
Time | Price | Name | Profit $forall Entity _ t <- trans |
---|---|---|---|
#{show $ transactionDateTime t} | #{transactionPriceCents t} | #{transactionClientName t} |
$maybe profit <- transRealProfit t
#{profit}
$nothing
-
Statistices for the last #{days} days |] ) transRealProfit :: Transaction -> Maybe Int64 transRealProfit t = (\a b c -> a - b - c) <$> transactionProfit t <*> transactionFee t <*> transactionTax t |