chore(avs): prepare superior update shortcircuit for future
This commit is contained in:
parent
7e5c256b4c
commit
1e896da4a3
@ -646,7 +646,7 @@ upsertAvsCompany newAvsFirmInfo mbOldAvsFirmInfo = do
|
|||||||
|
|
||||||
-- upsert company supervisor from AvsFirmEMailSuperior
|
-- upsert company supervisor from AvsFirmEMailSuperior
|
||||||
upsertCompanySuperior :: Entity Company -> AvsFirmInfo -> Maybe AvsFirmInfo -> DB () -- (Maybe UserId) possibly return superior, but currently not needed
|
upsertCompanySuperior :: Entity Company -> AvsFirmInfo -> Maybe AvsFirmInfo -> DB () -- (Maybe UserId) possibly return superior, but currently not needed
|
||||||
upsertCompanySuperior Entity{entityKey=cid, entityVal=Company{}} newAfi oldAfi = do
|
upsertCompanySuperior Entity{entityKey=cid, entityVal=Company{}} newAfi oldAfi =
|
||||||
let reasonSuperior = Just $ tshow SupervisorReasonAvsSuperior
|
let reasonSuperior = Just $ tshow SupervisorReasonAvsSuperior
|
||||||
getInsertUid eml = altM (guessUserByEmail $ stripCI eml) (catchAll2log' $ Just . entityKey <$> ldapLookupAndUpsert eml)
|
getInsertUid eml = altM (guessUserByEmail $ stripCI eml) (catchAll2log' $ Just . entityKey <$> ldapLookupAndUpsert eml)
|
||||||
newAvsNo = newAfi ^. _avsFirmFirmNo
|
newAvsNo = newAfi ^. _avsFirmFirmNo
|
||||||
@ -657,6 +657,10 @@ upsertCompanySuperior Entity{entityKey=cid, entityVal=Company{}} newAfi oldAfi =
|
|||||||
getOldId = (guessUserByEmail . stripCI) `traverseJoin` mbOldEmail
|
getOldId = (guessUserByEmail . stripCI) `traverseJoin` mbOldEmail
|
||||||
unchangedCompany = oldAvsNo == Just newAvsNo
|
unchangedCompany = oldAvsNo == Just newAvsNo
|
||||||
changedSuperior = mbSupEmail /= mbOldEmail -- beware, both could be Nothing
|
changedSuperior = mbSupEmail /= mbOldEmail -- beware, both could be Nothing
|
||||||
|
-- 1. not unchangedCompany: do not delete, but ensure that superior supervision is set, since it could be a just a single user company change
|
||||||
|
-- 2. unchangedCompany && not changedSuperior: superior must already been set, short-circuit
|
||||||
|
-- 3. unchangedCompany && changedSuperior: update superior for all users
|
||||||
|
in unless (unchangedCompany && not changedSuperior && False) $ do -- TODO: from 2025 onwards, once superiors are sufficently update, do nothing if (unchangedCompany && not changedSuperior).
|
||||||
mbSupId <- getSupId
|
mbSupId <- getSupId
|
||||||
-- delete old superiors, if any
|
-- delete old superiors, if any
|
||||||
when (unchangedCompany && changedSuperior) $
|
when (unchangedCompany && changedSuperior) $
|
||||||
|
|||||||
Reference in New Issue
Block a user