From 0b545e4d0adc86f0c28d643a737773c6a73c5a50 Mon Sep 17 00:00:00 2001 From: Steffen Jost Date: Fri, 24 Feb 2023 18:20:08 +0100 Subject: [PATCH] chore(sap): filter failed LDAP synchs for 3 months --- src/Handler/SAP.hs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Handler/SAP.hs b/src/Handler/SAP.hs index b96838bad..368baebbf 100644 --- a/src/Handler/SAP.hs +++ b/src/Handler/SAP.hs @@ -70,8 +70,12 @@ sapRes2csv l = [ res | (Ex.Value (Just persNo), Ex.Value firstHeld, Ex.Value val } ] +-- | Deliver all employess with a successful LDAP synch within the last 3 months getQualificationSAPDirectR :: Handler TypedContent getQualificationSAPDirectR = do + now <- liftIO getCurrentTime + fdate <- formatTime' "%Y%m%d_%H-%M" now + let ldap_cutoff = addDiffDaysRollOver (fromMonths $ -3) now qualUsers <- runDB $ Ex.select $ do (qual :& qualUser :& user) <- Ex.from $ Ex.table @Qualification @@ -81,15 +85,15 @@ getQualificationSAPDirectR = do `Ex.on` (\(_ :& qualUser :& user) -> qualUser Ex.^. QualificationUserUser Ex.==. user Ex.^. UserId) Ex.where_ $ E.isJust (qual Ex.^. QualificationSapId) Ex.&&. E.isJust (user Ex.^. UserCompanyPersonalNumber) + Ex.&&. E.isJust (user Ex.^. UserLastLdapSynchronisation) + Ex.&&. (E.justVal ldap_cutoff Ex.<=. user Ex.^. UserLastLdapSynchronisation) return ( user Ex.^. UserCompanyPersonalNumber , qualUser Ex.^. QualificationUserFirstHeld , qualUser Ex.^. QualificationUserValidUntil -- , qualUser Ex.^. QualificationUserBlockedDue , qual Ex.^. QualificationSapId - ) - now <- liftIO getCurrentTime - fdate <- formatTime' "%Y%m%d_%H-%M" now + ) let csvRendered = toCsvRendered sapUserTableCsvHeader $ sapRes2csv qualUsers fmtOpts = def { csvIncludeHeader = True , csvDelimiter = ','