From 86a96decdb8892b10c5314eb916ef15a64204450 Mon Sep 17 00:00:00 2001 From: Joris Date: Sun, 13 Nov 2016 00:49:32 +0100 Subject: Send weekly activity at start of week about previous week --- src/server/Job/MonthlyPayment.hs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/server/Job/MonthlyPayment.hs (limited to 'src/server/Job/MonthlyPayment.hs') diff --git a/src/server/Job/MonthlyPayment.hs b/src/server/Job/MonthlyPayment.hs new file mode 100644 index 0000000..bac7062 --- /dev/null +++ b/src/server/Job/MonthlyPayment.hs @@ -0,0 +1,24 @@ +module Job.MonthlyPayment + ( monthlyPayment + ) where + +import Control.Monad.IO.Class (liftIO) + +import Data.Time.Clock (UTCTime, getCurrentTime) + +import Database.Persist (entityVal, insert) + +import Model.Database +import qualified Model.Payment as Payment +import Model.Frequency + +import Utils.Time (timeToDay) + +monthlyPayment :: Maybe UTCTime -> IO UTCTime +monthlyPayment _ = runDb $ do + monthlyPayments <- map entityVal <$> Payment.listMonthly + now <- liftIO $ getCurrentTime + actualDay <- liftIO $ timeToDay now + let punctualPayments = map (\p -> p { paymentFrequency = Punctual, paymentDate = actualDay, paymentCreatedAt = now }) monthlyPayments + _ <- sequence $ map insert punctualPayments + return now -- cgit v1.2.3