blob: 0d1eb35dcbd3623d13635ac428c854e6e15e452b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
module Job.WeeklyReport
( weeklyReport
) where
import Data.Time.Clock (UTCTime, getCurrentTime)
import Model.Database (runDb)
import qualified Model.Payment as Payment
import qualified Model.Income as Income
import Model.User (getUsers)
import SendMail
import Conf (Conf)
import View.Mail.WeeklyReport (mail)
weeklyReport :: Conf -> Maybe UTCTime -> IO UTCTime
weeklyReport conf mbLastExecution = do
now <- getCurrentTime
case mbLastExecution of
Nothing -> return ()
Just lastExecution -> do
(payments, incomes, users) <- runDb $
(,,) <$>
Payment.modifiedDuring lastExecution now <*>
Income.modifiedDuring lastExecution now <*>
getUsers
_ <- sendMail (mail conf users payments incomes lastExecution now)
return ()
return now
|