;dev:Timeclock: indentation

This commit is contained in:
Simon Michael 2025-08-31 16:20:58 +01:00
parent e6dbe5d231
commit 539a876e7a

View File

@ -97,31 +97,30 @@ findInForOut o ([], activeins) =
pairClockEntries :: [TimeclockEntry] -> [TimeclockEntry] -> [Session] -> Sessions pairClockEntries :: [TimeclockEntry] -> [TimeclockEntry] -> [Session] -> Sessions
pairClockEntries [] actives sessions = Sessions {completed = sessions, active = actives} pairClockEntries [] actives sessions = Sessions {completed = sessions, active = actives}
pairClockEntries (entry : rest) actives sessions pairClockEntries (entry : rest) actives sessions
| tlcode entry == In = pairClockEntries rest inentries sessions | tlcode entry == In = pairClockEntries rest inentries sessions
| tlcode entry == Out = pairClockEntries rest' actives' sessions' | tlcode entry == Out = pairClockEntries rest' actives' sessions'
| otherwise = pairClockEntries rest actives sessions | otherwise = pairClockEntries rest actives sessions
where where
(inentry, newactive) = findInForOut entry (partition (\e -> tlaccount e == tlaccount entry) actives) (inentry, newactive) = findInForOut entry (partition (\e -> tlaccount e == tlaccount entry) actives)
(itime, otime) = (tldatetime inentry, tldatetime entry) (itime, otime) = (tldatetime inentry, tldatetime entry)
(idate, odate) = (localDay itime, localDay otime) (idate, odate) = (localDay itime, localDay otime)
omidnight = entry {tldatetime = itime {localDay = idate, localTimeOfDay = TimeOfDay 23 59 59}} omidnight = entry {tldatetime = itime {localDay = idate, localTimeOfDay = TimeOfDay 23 59 59}}
imidnight = inentry {tldatetime = itime {localDay = addDays 1 idate, localTimeOfDay = midnight}} imidnight = inentry {tldatetime = itime {localDay = addDays 1 idate, localTimeOfDay = midnight}}
(sessions', actives', rest') = if odate > idate then (sessions', actives', rest') =
(Session {in' = inentry, out = omidnight} : sessions, imidnight : newactive, entry : rest) if odate > idate
else then (Session {in' = inentry, out = omidnight} : sessions, imidnight : newactive, entry : rest)
(Session {in' = inentry, out = entry} : sessions, newactive, rest) else (Session {in' = inentry, out = entry} : sessions, newactive, rest)
l = show $ unPos $ sourceLine $ tlsourcepos entry l = show $ unPos $ sourceLine $ tlsourcepos entry
c = unPos $ sourceColumn $ tlsourcepos entry c = unPos $ sourceColumn $ tlsourcepos entry
inentries = inentries =
if any (\e -> tlaccount e == tlaccount entry) actives if any (\e -> tlaccount e == tlaccount entry) actives
then error' $ then error' $ printf
printf "%s:\n%s\n%s\n\nEncountered clockin entry for session \"%s\" that is already active."
"%s:\n%s\n%s\n\nEncountered clockin entry for session \"%s\" that is already active." (sourcePosPretty $ tlsourcepos entry)
(sourcePosPretty $ tlsourcepos entry) (l ++ " | " ++ show entry)
(l ++ " | " ++ show entry) (replicate (length l) ' ' ++ " |" ++ replicate c ' ' ++ "^")
(replicate (length l) ' ' ++ " |" ++ replicate c ' ' ++ "^") (tlaccount entry)
(tlaccount entry) else entry : actives
else entry : actives
-- | Convert time log entries to journal transactions, allowing multiple clocked-in sessions at once. -- | Convert time log entries to journal transactions, allowing multiple clocked-in sessions at once.
-- This is the new, default behaviour. -- This is the new, default behaviour.