Merge branch 'fradrive/company' into test
This commit is contained in:
commit
de19073e11
@ -4,4 +4,5 @@
|
||||
|
||||
FirmAllActNotify: Mitteilung versenden
|
||||
FirmAllActResetSupervision: Ansprechpartner für alle Firmenangehörigen zurücksetzen
|
||||
|
||||
FirmUserActNotify: Mitteilung versenden
|
||||
FirmUserActMkSuper: Zum Firmenansprechparnter ernennen
|
||||
|
||||
@ -4,3 +4,5 @@
|
||||
|
||||
FirmAllActNotify: Send message
|
||||
FirmAllActResetSupervision: Reset supervisors for all company associates
|
||||
FirmUserActNotify: Send message
|
||||
FirmUserActMkSuper: Mark as company supervisor
|
||||
@ -134,6 +134,8 @@ MenuLmsLearners: Export Benutzer E‑Learning
|
||||
MenuLmsReport: Ergebnisse E‑Learning
|
||||
|
||||
MenuFirms: Firmen
|
||||
MenuFirmUsers: Angehörige
|
||||
MenuFirmSupervisors: Ansprechpartner
|
||||
|
||||
MenuSap: SAP Schnittstelle
|
||||
|
||||
|
||||
@ -135,6 +135,8 @@ MenuLmsLearners: E‑learning Users
|
||||
MenuLmsReport: E‑learning Results
|
||||
|
||||
MenuFirms: Companies
|
||||
MenuFirmUsers: Associates
|
||||
MenuFirmSupervisors: Supervisors
|
||||
|
||||
MenuSap: SAP Interface
|
||||
|
||||
|
||||
@ -82,6 +82,9 @@ TableCompanyNo: Firmennummer
|
||||
TableCompanyNos: Firmennummern
|
||||
TableCompanyNrUsers: Firmenangehörige
|
||||
TableCompanyNrSupers: Ansprechpartner
|
||||
TableCompanyNrEmpSupervised: Firmenangehörige mit Ansprechpartner
|
||||
TableCompanyNrEmpRerouted: Firmenangehörige mit Umleitung
|
||||
TableCompanyNrEmpRerPost: Firmenangehörige mit postalischer Umleitung
|
||||
TableCompanyNrSupersActive: Mitarbeiter mit Ansprechpartner
|
||||
TableCompanyNrSupersDefault: Standard Ansprechpartner
|
||||
TableCompanyNrForeignSupers: Firmenfremde Ansprechpartner
|
||||
|
||||
@ -82,6 +82,9 @@ TableCompanyNo: Company number
|
||||
TableCompanyNos: Company numbers
|
||||
TableCompanyNrUsers: Associates
|
||||
TableCompanyNrSupers: Supervisors
|
||||
TableCompanyNrEmpSupervised: Supervsied employees
|
||||
TableCompanyNrEmpRerouted: Employees having reroute
|
||||
TableCompanyNrEmpRerPost: Employees having postal reroute
|
||||
TableCompanyNrSupersActive: Associates having supervisors
|
||||
TableCompanyNrSupersDefault: Default supervisors
|
||||
TableCompanyNrForeignSupers: External Supervisors
|
||||
|
||||
@ -123,10 +123,10 @@ breadcrumb ProblemFbutNoR = i18nCrumb MsgProblemsRWithoutFHeading $ Just
|
||||
breadcrumb ProblemAvsSynchR = i18nCrumb MsgProblemsAvsSynchHeading $ Just AdminProblemsR
|
||||
breadcrumb ProblemAvsErrorR = i18nCrumb MsgProblemsAvsErrorHeading $ Just ProblemAvsSynchR
|
||||
|
||||
breadcrumb FirmAllR = i18nCrumb MsgMenuFirms Nothing
|
||||
breadcrumb FirmR{} = i18nCrumb MsgMenuFirms $ Just FirmAllR
|
||||
breadcrumb FirmUsersR{} = i18nCrumb MsgMenuFirms $ Just FirmAllR
|
||||
breadcrumb FirmSupersR{} = i18nCrumb MsgMenuFirms $ Just FirmAllR
|
||||
breadcrumb FirmAllR = i18nCrumb MsgMenuFirms Nothing
|
||||
breadcrumb FirmR{} = i18nCrumb MsgMenuAdminHeading $ Just FirmAllR -- TODO: change heading or remove
|
||||
breadcrumb FirmUsersR{} = i18nCrumb MsgMenuFirmUsers $ Just FirmAllR
|
||||
breadcrumb (FirmSupersR fsh)= i18nCrumb MsgMenuFirmSupervisors $ Just $ FirmUsersR fsh
|
||||
|
||||
breadcrumb PrintCenterR = i18nCrumb MsgMenuApc Nothing
|
||||
breadcrumb PrintSendR = i18nCrumb MsgMenuPrintSend $ Just PrintCenterR
|
||||
@ -2425,6 +2425,18 @@ pageActions (FirmR fsh) = return
|
||||
, navChildren = []
|
||||
}
|
||||
]
|
||||
pageActions (FirmUsersR fsh) = return
|
||||
[ NavPageActionPrimary
|
||||
{ navLink = defNavLink MsgTableCompanyNrSupers $ FirmSupersR fsh
|
||||
, navChildren = []
|
||||
}
|
||||
]
|
||||
pageActions (FirmSupersR fsh) = return
|
||||
[ NavPageActionPrimary
|
||||
{ navLink = defNavLink MsgTableCompanyNrUsers $ FirmUsersR fsh
|
||||
, navChildren = []
|
||||
}
|
||||
]
|
||||
pageActions PrintCenterR = do
|
||||
openDays <- useRunDB $ Ex.select $ do
|
||||
pj <- Ex.from $ Ex.table @PrintJob
|
||||
|
||||
@ -60,11 +60,14 @@ postFirmR fsh = do
|
||||
E.groupBy (usr E.^. UserId, usr E.^. UserDisplayName, usr E.^. UserSurname, scmpy E.?. UserCompanyCompany)
|
||||
E.orderBy [E.asc $ usr E.^. UserId, E.asc $ usr E.^. UserDisplayName, E.asc $ usr E.^. UserSurname, E.asc $ scmpy E.?. UserCompanyCompany]
|
||||
let countRows' :: E.SqlExpr (E.Value Int64) = E.countRows
|
||||
return (usr E.^. UserId, usr E.^. UserDisplayName, usr E.^. UserSurname, scmpy E.?. UserCompanyCompany, countRows')
|
||||
return (usr E.^. UserId, usr E.^. UserDisplayName, usr E.^. UserSurname, scmpy E.?. UserCompanyCompany, countRows', usr E.^. UserPrefersPostal)
|
||||
|
||||
siteLayoutMsg (SomeMessage fsh) $ do
|
||||
setTitle $ citext2Html fsh
|
||||
[whamlet|
|
||||
<h2>PROVISORISCHE DEBUG SEITE
|
||||
<p>Diese Seite wird in der finalen Version nicht mehr enthalten sein.
|
||||
|
||||
<h3>#{length csuper} Company Default Supervisors (non-foreign only)
|
||||
<ul>
|
||||
$forall u <- csuper
|
||||
@ -72,8 +75,9 @@ postFirmR fsh = do
|
||||
|
||||
<h3>#{length cactSuper} Active Supervisors for Employees
|
||||
<ul>
|
||||
$forall (E.Value _, E.Value dn, E.Value sn, E.Value mbCsh, E.Value nr) <- cactSuper
|
||||
<li>#{nr} Employees supervised by ^{nameWidget dn sn}
|
||||
$forall (E.Value _, E.Value dn, E.Value sn, E.Value mbCsh, E.Value nr, E.Value prefPost) <- cactSuper
|
||||
<li>#{nr} Employees supervised by ^{nameWidget dn sn} #
|
||||
#{icon (bool IconAt IconLetter prefPost)} #
|
||||
$maybe csh <- mbCsh
|
||||
$if csh /= fshId
|
||||
from foreign company #{unCompanyKey csh}
|
||||
@ -111,30 +115,39 @@ type AllCompanyTableExpr = E.SqlExpr (Entity Company)
|
||||
queryCompany :: AllCompanyTableExpr -> E.SqlExpr (Entity Company)
|
||||
queryCompany = id
|
||||
|
||||
type AllCompanyTableData = DBRow (Entity Company, E.Value Word64, E.Value Word64, E.Value Word64, E.Value Word64, E.Value Word64, E.Value Word64)
|
||||
type AllCompanyTableData = DBRow (Entity Company, E.Value Word64, E.Value Word64, E.Value Word64, E.Value Word64, E.Value Word64, E.Value Word64, E.Value Word64, E.Value Word64, E.Value Word64)
|
||||
resultAllCompanyEntity :: Lens' AllCompanyTableData (Entity Company)
|
||||
resultAllCompanyEntity = _dbrOutput . _1
|
||||
|
||||
resultAllCompany :: Lens' AllCompanyTableData Company
|
||||
resultAllCompany = resultAllCompanyEntity . _entityVal
|
||||
resultAllCompany :: Lens' AllCompanyTableData Company
|
||||
resultAllCompany = resultAllCompanyEntity . _entityVal
|
||||
|
||||
resultAllCompanyUsers :: Lens' AllCompanyTableData Word64
|
||||
resultAllCompanyUsers = _dbrOutput . _2 . _unValue
|
||||
resultAllCompanyUsers :: Lens' AllCompanyTableData Word64
|
||||
resultAllCompanyUsers = _dbrOutput . _2 . _unValue
|
||||
|
||||
resultAllCompanySupervisors :: Lens' AllCompanyTableData Word64
|
||||
resultAllCompanySupervisors = _dbrOutput . _3 . _unValue
|
||||
resultAllCompanySupervisors :: Lens' AllCompanyTableData Word64
|
||||
resultAllCompanySupervisors = _dbrOutput . _3 . _unValue
|
||||
|
||||
resultAllCompanyForeignSupers :: Lens' AllCompanyTableData Word64
|
||||
resultAllCompanyForeignSupers = _dbrOutput . _4 . _unValue
|
||||
resultAllCompanyEmployeeSupervised :: Lens' AllCompanyTableData Word64
|
||||
resultAllCompanyEmployeeSupervised = _dbrOutput . _4 . _unValue
|
||||
|
||||
resultAllCompanyDefaultReroutes :: Lens' AllCompanyTableData Word64
|
||||
resultAllCompanyDefaultReroutes = _dbrOutput . _5 . _unValue
|
||||
resultAllCompanyEmployeeRerouted :: Lens' AllCompanyTableData Word64
|
||||
resultAllCompanyEmployeeRerouted = _dbrOutput . _5 . _unValue
|
||||
|
||||
resultAllCompanyActiveReroutes :: Lens' AllCompanyTableData Word64
|
||||
resultAllCompanyActiveReroutes = _dbrOutput . _6 . _unValue
|
||||
resultAllCompanyEmpRerPost :: Lens' AllCompanyTableData Word64
|
||||
resultAllCompanyEmpRerPost = _dbrOutput . _6 . _unValue
|
||||
|
||||
resultAllCompanyActiveReroutes' :: Lens' AllCompanyTableData Word64
|
||||
resultAllCompanyActiveReroutes' = _dbrOutput . _7 . _unValue
|
||||
resultAllCompanyForeignSupers :: Lens' AllCompanyTableData Word64
|
||||
resultAllCompanyForeignSupers = _dbrOutput . _7 . _unValue
|
||||
|
||||
resultAllCompanyDefaultReroutes :: Lens' AllCompanyTableData Word64
|
||||
resultAllCompanyDefaultReroutes = _dbrOutput . _8 . _unValue
|
||||
|
||||
resultAllCompanyActiveReroutes :: Lens' AllCompanyTableData Word64
|
||||
resultAllCompanyActiveReroutes = _dbrOutput . _9 . _unValue
|
||||
|
||||
resultAllCompanyActiveReroutes' :: Lens' AllCompanyTableData Word64
|
||||
resultAllCompanyActiveReroutes' = _dbrOutput . _10 . _unValue
|
||||
|
||||
fromUserCompany :: Maybe (E.SqlExpr (Entity UserCompany) -> E.SqlExpr (E.Value Bool)) -> E.SqlExpr (Entity Company) -> E.SqlQuery ()
|
||||
fromUserCompany mbFltr cmpy = do
|
||||
@ -157,6 +170,36 @@ firmCountSupervisors = E.subSelectCount . fromUserCompany (Just (E.^. UserCompa
|
||||
firmCountDefaultReroutes :: E.SqlExpr (Entity Company) -> E.SqlExpr (E.Value Word64)
|
||||
firmCountDefaultReroutes = E.subSelectCount . fromUserCompany (Just (\uc -> uc E.^. UserCompanySupervisor E.&&. uc E.^. UserCompanySupervisorReroute))
|
||||
|
||||
firmCountEmployeeSupervised :: E.SqlExpr (Entity Company) -> E.SqlExpr (E.Value Word64)
|
||||
firmCountEmployeeSupervised = E.subSelectCount . fromUserCompany (Just fltr)
|
||||
where
|
||||
fltr :: E.SqlExpr (Entity UserCompany) -> E.SqlExpr (E.Value Bool)
|
||||
fltr usrc = E.exists $ do
|
||||
usrSuper <- E.from $ E.table @UserSupervisor
|
||||
E.where_ $ usrSuper E.^. UserSupervisorUser E.==. usrc E.^. UserCompanyUser
|
||||
|
||||
firmCountEmployeeRerouted :: E.SqlExpr (Entity Company) -> E.SqlExpr (E.Value Word64)
|
||||
firmCountEmployeeRerouted = E.subSelectCount . fromUserCompany (Just fltr)
|
||||
where
|
||||
fltr usrc = E.exists $ do
|
||||
usrSuper <- E.from $ E.table @UserSupervisor
|
||||
E.where_ $ usrSuper E.^. UserSupervisorUser E.==. usrc E.^. UserCompanyUser
|
||||
E.&&. usrSuper E.^. UserSupervisorRerouteNotifications
|
||||
|
||||
firmCountEmployeeRerPost :: E.SqlExpr (Entity Company) -> E.SqlExpr (E.Value Word64)
|
||||
firmCountEmployeeRerPost = E.subSelectCount . fromUserCompany (Just fltr)
|
||||
where
|
||||
fltr usrc = E.exists $ do
|
||||
(usrSuper :& usr) <-
|
||||
E.from $ E.table @UserSupervisor
|
||||
`E.innerJoin` E.table @User
|
||||
`E.on` (\(usrSuper :& usr) -> usrSuper E.^. UserSupervisorSupervisor E.==. usr E.^. UserId)
|
||||
E.where_ $ usrSuper E.^. UserSupervisorUser E.==. usrc E.^. UserCompanyUser
|
||||
E.&&. usrSuper E.^. UserSupervisorRerouteNotifications
|
||||
E.&&. usr E.^. UserPrefersPostal
|
||||
E.&&. E.isJust (usr E.^. UserPostAddress)
|
||||
|
||||
|
||||
-- firmCountForeignSupervisors :: E.SqlExpr (Entity Company) -> E.SqlExpr (E.Value Word64)
|
||||
-- firmCountForeignSupervisors cmpy = E.coalesceDefault
|
||||
-- [E.subSelect $ do
|
||||
@ -199,13 +242,16 @@ mkFirmAllTable isAdmin uid = do
|
||||
usrCmpy <- E.from $ E.table @UserCompany
|
||||
E.where_ $ usrCmpy E.^. UserCompanyCompany E.==. cmpy E.^. CompanyId
|
||||
E.&&. usrCmpy E.^. UserCompanyUser E.==. E.val uid
|
||||
return ( cmpy
|
||||
, cmpy & firmCountUsers
|
||||
, cmpy & firmCountSupervisors
|
||||
, cmpy & firmCountForeignSupervisors
|
||||
, cmpy & firmCountDefaultReroutes
|
||||
, cmpy & firmCountActiveReroutes
|
||||
, cmpy & firmCountActiveReroutes'
|
||||
return ( cmpy -- 1
|
||||
, cmpy & firmCountUsers -- 2
|
||||
, cmpy & firmCountSupervisors -- 3
|
||||
, cmpy & firmCountEmployeeSupervised -- 4
|
||||
, cmpy & firmCountEmployeeRerouted -- 5
|
||||
, cmpy & firmCountEmployeeRerPost -- 6
|
||||
, cmpy & firmCountForeignSupervisors -- 7
|
||||
, cmpy & firmCountDefaultReroutes -- 8
|
||||
, cmpy & firmCountActiveReroutes -- 9
|
||||
, cmpy & firmCountActiveReroutes' -- 10
|
||||
)
|
||||
dbtRowKey = (E.^. CompanyId)
|
||||
dbtProj = dbtProjId
|
||||
@ -214,29 +260,36 @@ mkFirmAllTable isAdmin uid = do
|
||||
[ if not isAdmin then mempty else -- guardOnM idAdmin $
|
||||
dbSelect (applying _2) id (return . view (resultAllCompanyEntity . _entityKey))
|
||||
, sortable (Just "name") (i18nCell MsgTableCompany) $ \(view resultAllCompany -> firm) ->
|
||||
anchorCell (FirmR $ companyShorthand firm) . toWgt $ companyName firm
|
||||
anchorCell (FirmUsersR $ companyShorthand firm) . toWgt $ companyName firm
|
||||
, sortable (Just "short") (i18nCell MsgTableCompanyShort) $ \(view resultAllCompany -> firm) ->
|
||||
let fsh = companyShorthand firm
|
||||
in anchorCell (FirmR fsh) $ toWgt fsh
|
||||
in anchorCell (FirmUsersR fsh) $ toWgt fsh
|
||||
, sortable (Just "avsnr") (i18nCell MsgTableCompanyNo) $ \(view resultAllCompany -> firm) ->
|
||||
anchorCell (FirmR $ companyShorthand firm) $ toWgt $ companyAvsId firm
|
||||
, sortable (Just "users") (i18nCell MsgTableCompanyNrUsers) $ \(view resultAllCompanyUsers -> nr) -> wgtCell $ word2widget nr
|
||||
, sortable (Just "supervisors") (i18nCell MsgTableCompanyNrSupersDefault) $ \(view resultAllCompanySupervisors -> nr) -> wgtCell $ word2widget nr
|
||||
, sortable (Just "reroute-def") (i18nCell MsgTableCompanyNrRerouteDefault) $ \(view resultAllCompanyDefaultReroutes -> nr) -> wgtCell $ word2widget nr
|
||||
, sortable (Just "foreigners") (i18nCell MsgTableCompanyNrForeignSupers) $ \(view resultAllCompanyForeignSupers -> nr) -> wgtCell $ word2widget nr
|
||||
, sortable (Just "reroute-act") (i18nCell MsgTableCompanyNrRerouteActive) $ \(view resultAllCompanyActiveReroutes -> nr) -> wgtCell $ word2widget nr
|
||||
, sortable (Just "reroute-all") (i18nCell MsgTableCompanyNrRerouteActive) $ \(view resultAllCompanyActiveReroutes' -> nr) -> wgtCell $ word2widget nr
|
||||
, sortable (Just "users") (i18nCell MsgTableCompanyNrUsers) $ \(view resultAllCompanyUsers -> nr) -> wgtCell $ word2widget nr
|
||||
, sortable (Just "supervisors") (i18nCell MsgTableCompanyNrSupersDefault) $ \row ->
|
||||
anchorCell (FirmSupersR $ row ^. resultAllCompany . _companyShorthand) $ word2widget $ row ^. resultAllCompanySupervisors
|
||||
, sortable (Just "reroute-def") (i18nCell MsgTableCompanyNrRerouteDefault) $ \(view resultAllCompanyDefaultReroutes -> nr) -> wgtCell $ word2widget nr
|
||||
, sortable (Just "emp-supervised")(i18nCell MsgTableCompanyNrEmpSupervised) $ \(view resultAllCompanyEmployeeSupervised -> nr) -> wgtCell $ word2widget nr
|
||||
, sortable (Just "emp-rerouted") (i18nCell MsgTableCompanyNrEmpRerouted) $ \(view resultAllCompanyEmployeeRerouted -> nr) -> wgtCell $ word2widget nr
|
||||
, sortable (Just "emp-rer-post") (i18nCell MsgTableCompanyNrEmpRerPost) $ \(view resultAllCompanyEmpRerPost -> nr) -> wgtCell $ word2widget nr
|
||||
, sortable (Just "foreigners") (i18nCell MsgTableCompanyNrForeignSupers) $ \(view resultAllCompanyForeignSupers -> nr) -> wgtCell $ word2widget nr
|
||||
, sortable (Just "reroute-act") (i18nCell MsgTableCompanyNrRerouteActive) $ \(view resultAllCompanyActiveReroutes -> nr) -> wgtCell $ word2widget nr
|
||||
, sortable (Just "reroute-all") (i18nCell MsgTableCompanyNrRerouteActive) $ \(view resultAllCompanyActiveReroutes' -> nr) -> wgtCell $ word2widget nr
|
||||
]
|
||||
dbtSorting = mconcat
|
||||
[ singletonMap "name" $ SortColumn (E.^. CompanyName)
|
||||
, singletonMap "short" $ SortColumn (E.^. CompanyShorthand)
|
||||
, singletonMap "avsnr" $ SortColumn (E.^. CompanyAvsId)
|
||||
, singletonMap "users" $ SortColumn firmCountUsers
|
||||
, singletonMap "supervisors" $ SortColumn firmCountSupervisors
|
||||
, singletonMap "reroute-def" $ SortColumn firmCountDefaultReroutes
|
||||
, singletonMap "foreigners" $ SortColumn firmCountForeignSupervisors
|
||||
, singletonMap "reroute-act" $ SortColumn firmCountActiveReroutes
|
||||
, singletonMap "reroute-all" $ SortColumn firmCountActiveReroutes'
|
||||
[ singletonMap "name" $ SortColumn (E.^. CompanyName)
|
||||
, singletonMap "short" $ SortColumn (E.^. CompanyShorthand)
|
||||
, singletonMap "avsnr" $ SortColumn (E.^. CompanyAvsId)
|
||||
, singletonMap "users" $ SortColumn firmCountUsers
|
||||
, singletonMap "supervisors" $ SortColumn firmCountSupervisors
|
||||
, singletonMap "emp-supervised" $ SortColumn firmCountEmployeeSupervised
|
||||
, singletonMap "emp-rerouted" $ SortColumn firmCountEmployeeRerouted
|
||||
, singletonMap "emp-rer-post" $ SortColumn firmCountEmployeeRerPost
|
||||
, singletonMap "reroute-def" $ SortColumn firmCountDefaultReroutes
|
||||
, singletonMap "foreigners" $ SortColumn firmCountForeignSupervisors
|
||||
, singletonMap "reroute-act" $ SortColumn firmCountActiveReroutes
|
||||
, singletonMap "reroute-all" $ SortColumn firmCountActiveReroutes'
|
||||
]
|
||||
dbtFilter = mconcat
|
||||
[ single $ fltrCompanyNameNr queryCompany
|
||||
@ -255,7 +308,7 @@ mkFirmAllTable isAdmin uid = do
|
||||
[ fltrCompanyNameNrUI mPrev
|
||||
, prismAForm (singletonFilter "is-supervisor") mPrev $ aopt textField (fslI MsgTableSupervisor)
|
||||
]
|
||||
dbtStyle = def -- { dbsFilterLayout = defaultDBSFilterLayout }
|
||||
dbtStyle = def { dbsFilterLayout = defaultDBSFilterLayout }
|
||||
acts :: Map FirmAllAction (AForm Handler FirmAllActionData)
|
||||
acts = mconcat
|
||||
[ singletonMap FirmAllActNotify $ pure FirmAllActNotifyData
|
||||
@ -303,22 +356,50 @@ postFirmAllR = do
|
||||
(FirmAllActResetSupervisionData, fids) -> addMessage Info $ text2Html $ "Reset " <> tshow (length fids) <> " companies. TODO"
|
||||
siteLayoutMsg MsgMenuFirms $ do
|
||||
setTitleI MsgMenuFirms
|
||||
-- $(widgetFile "firm-all")
|
||||
[whamlet|!!!STUB!!!TO DO!!!
|
||||
^{firmTable}
|
||||
|]
|
||||
$(i18nWidgetFile "firm-all")
|
||||
|
||||
|
||||
-----------------------
|
||||
-- Firm Users Table
|
||||
|
||||
data FirmUserAction = FirmUserActNotify
|
||||
| FirmUserActMkSuper
|
||||
deriving (Eq, Ord, Enum, Bounded, Read, Show, Generic)
|
||||
deriving anyclass (Universe, Finite)
|
||||
|
||||
nullaryPathPiece ''FirmUserAction $ camelToPathPiece' 3
|
||||
embedRenderMessage ''UniWorX ''FirmUserAction id
|
||||
|
||||
data FirmUserActionData = FirmUserActNotifyData
|
||||
| FirmUserActMkSuperData
|
||||
deriving (Eq, Ord, Enum, Bounded, Read, Show, Generic)
|
||||
|
||||
|
||||
|
||||
getFirmUsersR, postFirmUsersR :: CompanyShorthand -> Handler Html
|
||||
getFirmUsersR = postFirmUsersR
|
||||
postFirmUsersR fsh = do
|
||||
let _fshId = CompanyKey fsh
|
||||
siteLayout (citext2widget fsh) $ do
|
||||
setTitle $ citext2Html fsh
|
||||
[whamlet|!!!STUB!!!TO DO!!!|]
|
||||
let fshId = CompanyKey fsh
|
||||
Company{..} <- runDB $ get404 fshId
|
||||
siteLayout (citext2widget companyName) $ do
|
||||
setTitle $ citext2Html companyShorthand
|
||||
[whamlet|
|
||||
<p>
|
||||
#{companyPostAddress}
|
||||
<p>
|
||||
Für neue Firmangehörige ist Benachrichtigungs-Voreinstellung:
|
||||
$if companyPrefersPostal
|
||||
#{icon IconLetter} Briefversand
|
||||
$else
|
||||
#{icon IconAt} Email
|
||||
<p>
|
||||
AVS Nummer #{companyAvsId}
|
||||
|
||||
<h1>
|
||||
!!!STUB!!!TO DO!!!
|
||||
<p>
|
||||
Table showing all company associated users
|
||||
|]
|
||||
|
||||
|
||||
-----------------------------
|
||||
|
||||
@ -153,7 +153,7 @@ iconText = \case
|
||||
IconSFTHint -> "life-ring" -- for SheetFileType only
|
||||
IconSFTSolution -> "exclamation-circle" -- for SheetFileType only
|
||||
IconSFTMarking -> "check-circle" -- for SheetFileType only
|
||||
IconEmail -> "envelope" -- envelope is no longer unamibuous
|
||||
IconEmail -> "envelope" -- envelope is no longer unamibuous, use IconAt or IconLetter if email and postal need to be distinguished
|
||||
IconRegisterTemplate -> "file-alt"
|
||||
IconNoCorrectors -> "user-slash"
|
||||
IconRemoveUser -> "user-slash"
|
||||
@ -199,7 +199,7 @@ iconText = \case
|
||||
IconCertificate -> "badge-check"
|
||||
IconPrintCenter -> "mail-bulk" -- From fontawesome v6 onwards: "envelope-bulk"
|
||||
IconLetter -> "mail-bulk" -- Problem "envelope" already used for email as well
|
||||
IconAt -> "at"
|
||||
IconAt -> "at" -- alternative for IconEmail to distinguish from IconLetter
|
||||
IconSupervisor -> "head-side" -- must be notably different to user
|
||||
-- IconWaitingForUser -> "user-cog" -- Waiting on a user to do something
|
||||
IconExpired -> "hourglass-end"
|
||||
|
||||
42
templates/i18n/firm-all/de-de-formal.hamlet
Normal file
42
templates/i18n/firm-all/de-de-formal.hamlet
Normal file
@ -0,0 +1,42 @@
|
||||
$newline never
|
||||
|
||||
$# SPDX-FileCopyrightText: 2023 Steffen Jost <s.jost@fraport.de>
|
||||
$#
|
||||
$# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
<section>
|
||||
|
||||
|
||||
<p>
|
||||
Die Daten der Firmen wurden aus dem Ausweisverwaltungssystem (AVS) der Fraport AG
|
||||
importiert und werden regelmäßig aktualisiert,
|
||||
wenn Fahrlizenzinhaber oder deren Verwalter über das AVS einer Firma zugeordnet wurden.
|
||||
<p>
|
||||
^{firmTable}
|
||||
|
||||
<h3> Hinweis zur Entwicklungsversion
|
||||
<p>
|
||||
Die Spalten zeigen derzeit folgende Informationen
|
||||
<ol>
|
||||
<li> Firmenname
|
||||
<li> Firmenkürzel
|
||||
<li> AVS Firmennummer
|
||||
<li> Anzahl der derzeit zugeordneten Firmenangehörigen. Eine Personen kann mehreren Firmen gleichzeitig angehören.
|
||||
<li> Anzahl der Standard Ansprechpartner, welche einer neu in FRADrive eingetragnen Person dieser Firma derzeit zugeordnet werden. Eine Person kann beliebig viele Ansprechpartner haben. Wirkt sich nicht auf vorhandene Firmenangehörige aus.
|
||||
<li> Anzahl der Standard Ansprechpartner der Firma mit Benachrichtigungsumleitung. Hat eine Person mehrere Ansprechpartner mit Umleitung, so wird ein Brief oder Email an alle Ansprechpartner verschickt. #
|
||||
Ein Person kann auch ihr eigener Ansprechpartner sein, um eine Benachrichtigung sowohl an die Person selbst als auch an einen Ansprechpartner zu senden. #
|
||||
Wirkt sich nicht auf vorhandene Firmenangehörige aus, sondern nur auf neu in FRADrive hinzukommende Firmenangehörige.
|
||||
<li> Anzahl Firmenangehörige, für die derzeit mindestens ein Ansprechpartner eingetragen ist. Ansprechpartner müssen nicht notwendigerweise der gleichen Firma angehören!
|
||||
<li> Anzahl Firmenangehörige, für die derzeit mindestens eine Benachrichtigungsumleitung an einen Ansprechpartner eingetragen ist. Ansprechpartner müssen nicht notwendigerweise der gleichen Firma angehören!
|
||||
<li> Anzahl Firmenangehörige, für die derzeit mindestens eine Benachrichtigungsumleitung an einen Ansprechpartner eingetragen ist, welcher den Versand per Briefpost bevorzugt. #
|
||||
Ob ein Ansprechpartner Email oder Briefpost wünscht ist eine individuelle Einstellung des Ansprechpartners und gilt für alle Benachrichtigungen an diesen Ansprechpartner.
|
||||
<li> Anzahl der firmenfremden Ansprechpartner, welche mindestens einen Firmenangehörigen betreuen. Bei manchen Firmen ist es normal, dass die Ansprechpartner einer anderen Firma angehören, aber oft ist nur ein Fehler durch Firmenwechsel.
|
||||
<li> Anzahl der Ansprechpartner mit derzeit aktiver Benachrichtigungsumleitung, egal ob Brief oder Email.
|
||||
<li> Gesamtzahl der Brief und Emails, welche bei Benachrichtigung aller Firmenangehörigen derzeit verschickt würden.
|
||||
<p>
|
||||
Dies ist also die Gesamtzahl aller derzeit aktiven Benachrichtigungsumleitungen.
|
||||
<p>
|
||||
<em>
|
||||
Beispiel: Für eine Firma mit 2 Angehörigen, für die ein Mitarbeiter 1 Ansprechpartner mit aktiver Umleitung und einen Mitarbeiter mit 3 Ansprechpartnern mit aktiver Umleitung hätte, #
|
||||
würde hier die Zahl 4 stehen, da bei einer Benachrichtigung an beide Mitarbeiter insgesamt 4 Briefe oder Emails versendet würden.
|
||||
|
||||
43
templates/i18n/firm-all/en-eu.hamlet
Normal file
43
templates/i18n/firm-all/en-eu.hamlet
Normal file
@ -0,0 +1,43 @@
|
||||
$newline never
|
||||
|
||||
$# SPDX-FileCopyrightText: 2023 Steffen Jost <s.jost@fraport.de>
|
||||
$#
|
||||
$# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
<section>
|
||||
|
||||
|
||||
<p>
|
||||
Data of all companies that were taken from the id card management system (AVS) of Fraport AG.
|
||||
A company is importet and regularly update if a driving licence holder or their supervisor
|
||||
are associated with that company through the AVS.
|
||||
|
||||
<p>
|
||||
^{firmTable}
|
||||
|
||||
<h3>Development Version Notes (TODO: translated paragraph)
|
||||
<p>
|
||||
Die Spalten zeigen derzeit folgende Informationen
|
||||
<ol>
|
||||
<li> Firmenname
|
||||
<li> Firmenkürzel
|
||||
<li> AVS Firmennummer
|
||||
<li> Anzahl der derzeit zugeordneten Firmenangehörigen. Eine Personen kann mehreren Firmen gleichzeitig angehören.
|
||||
<li> Anzahl der Standard Ansprechpartner, welche einer neu in FRADrive eingetragnen Person dieser Firma derzeit zugeordnet werden. Eine Person kann beliebig viele Ansprechpartner haben. Wirkt sich nicht auf vorhandene Firmenangehörige aus.
|
||||
<li> Anzahl der Standard Ansprechpartner der Firma mit Benachrichtigungsumleitung. Hat eine Person mehrere Ansprechpartner mit Umleitung, so wird ein Brief oder Email an alle Ansprechpartner verschickt. #
|
||||
Ein Person kann auch ihr eigener Ansprechpartner sein, um eine Benachrichtigung sowohl an die Person selbst als auch an einen Ansprechpartner zu senden. #
|
||||
Wirkt sich nicht auf vorhandene Firmenangehörige aus, sondern nur auf neu in FRADrive hinzukommende Firmenangehörige.
|
||||
<li> Anzahl Firmenangehörige, für die derzeit mindestens ein Ansprechpartner eingetragen ist. Ansprechpartner müssen nicht notwendigerweise der gleichen Firma angehören!
|
||||
<li> Anzahl Firmenangehörige, für die derzeit mindestens eine Benachrichtigungsumleitung an einen Ansprechpartner eingetragen ist. Ansprechpartner müssen nicht notwendigerweise der gleichen Firma angehören!
|
||||
<li> Anzahl Firmenangehörige, für die derzeit mindestens eine Benachrichtigungsumleitung an einen Ansprechpartner eingetragen ist, welcher den Versand per Briefpost bevorzugt. #
|
||||
Ob ein Ansprechpartner Email oder Briefpost wünscht ist eine individuelle Einstellung des Ansprechpartners und gilt für alle Benachrichtigungen an diesen Ansprechpartner.
|
||||
<li> Anzahl der firmenfremden Ansprechpartner, welche mindestens einen Firmenangehörigen betreuen. Bei manchen Firmen ist es normal, dass die Ansprechpartner einer anderen Firma angehören, aber oft ist nur ein Fehler durch Firmenwechsel.
|
||||
<li> Anzahl der Ansprechpartner mit derzeit aktiver Benachrichtigungsumleitung, egal ob Brief oder Email.
|
||||
<li> Gesamtzahl der Brief und Emails, welche bei Benachrichtigung aller Firmenangehörigen derzeit verschickt würden.
|
||||
<p>
|
||||
Dies ist also die Gesamtzahl aller derzeit aktiven Benachrichtigungsumleitungen.
|
||||
<p>
|
||||
<em>
|
||||
Beispiel: Für eine Firma mit 2 Angehörigen, für die ein Mitarbeiter 1 Ansprechpartner mit aktiver Umleitung und einen Mitarbeiter mit 3 Ansprechpartnern mit aktiver Umleitung hätte, #
|
||||
würde hier die Zahl 4 stehen, da bei einer Benachrichtigung an beide Mitarbeiter insgesamt 4 Briefe oder Emails versendet würden.
|
||||
|
||||
@ -624,9 +624,9 @@ fillDb = do
|
||||
I am aware that violations in the form plagiarism or collaboration with third parties will lead to expulsion from the course.
|
||||
|]
|
||||
}
|
||||
fraportAg <- insert' $ Company "Fraport AG" "Fraport" 1 False Nothing
|
||||
fraGround <- insert' $ Company "Fraport Ground Handling Professionals GmbH" "FraGround" 2 False Nothing -- TODO: better testcases
|
||||
nice <- insert' $ Company "N*ICE Aircraft Services & Support GmbH" "N*ICE" 33 False Nothing
|
||||
fraportAg <- insert' $ Company "Fraport AG" "Fraport" 1 True $ Just $ markdownToStoredMarkup ("Frankfurt Airport Services Worldwide\n60547 Frankfurt am Main"::Text)
|
||||
fraGround <- insert' $ Company "Fraport Ground Handling Professionals GmbH" "FraGround" 2 True $ Just $ markdownToStoredMarkup ("Sauerbierstraße 772 \nBürokomplex 80/C/1\n112233 Nieder-Tupfing-Hohen-Kreisingen\nTöpferbezirk"::Text)
|
||||
nice <- insert' $ Company "N*ICE Aircraft Services & Support GmbH" "N*ICE" 33 False $ Just $ markdownToStoredMarkup ("69 Nevermore Blvd.\nHarlaemn\nNew York\nUSA"::Text)
|
||||
ffacil <- insert' $ Company "Fraport Facility Services GmbH" "GCS" 44 False Nothing
|
||||
bpol <- insert' $ Company "Bundespolizeidirektion Flughafen Frankfurt am Main" "BPol" 5555 False Nothing
|
||||
void . insert' $ UserCompany jost fraportAg True True
|
||||
|
||||
Loading…
Reference in New Issue
Block a user