Merge branch 'fradrive/company' into test
This commit is contained in:
commit
de19073e11
@ -4,4 +4,5 @@
|
|||||||
|
|
||||||
FirmAllActNotify: Mitteilung versenden
|
FirmAllActNotify: Mitteilung versenden
|
||||||
FirmAllActResetSupervision: Ansprechpartner für alle Firmenangehörigen zurücksetzen
|
FirmAllActResetSupervision: Ansprechpartner für alle Firmenangehörigen zurücksetzen
|
||||||
|
FirmUserActNotify: Mitteilung versenden
|
||||||
|
FirmUserActMkSuper: Zum Firmenansprechparnter ernennen
|
||||||
|
|||||||
@ -4,3 +4,5 @@
|
|||||||
|
|
||||||
FirmAllActNotify: Send message
|
FirmAllActNotify: Send message
|
||||||
FirmAllActResetSupervision: Reset supervisors for all company associates
|
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
|
MenuLmsReport: Ergebnisse E‑Learning
|
||||||
|
|
||||||
MenuFirms: Firmen
|
MenuFirms: Firmen
|
||||||
|
MenuFirmUsers: Angehörige
|
||||||
|
MenuFirmSupervisors: Ansprechpartner
|
||||||
|
|
||||||
MenuSap: SAP Schnittstelle
|
MenuSap: SAP Schnittstelle
|
||||||
|
|
||||||
|
|||||||
@ -135,6 +135,8 @@ MenuLmsLearners: E‑learning Users
|
|||||||
MenuLmsReport: E‑learning Results
|
MenuLmsReport: E‑learning Results
|
||||||
|
|
||||||
MenuFirms: Companies
|
MenuFirms: Companies
|
||||||
|
MenuFirmUsers: Associates
|
||||||
|
MenuFirmSupervisors: Supervisors
|
||||||
|
|
||||||
MenuSap: SAP Interface
|
MenuSap: SAP Interface
|
||||||
|
|
||||||
|
|||||||
@ -82,6 +82,9 @@ TableCompanyNo: Firmennummer
|
|||||||
TableCompanyNos: Firmennummern
|
TableCompanyNos: Firmennummern
|
||||||
TableCompanyNrUsers: Firmenangehörige
|
TableCompanyNrUsers: Firmenangehörige
|
||||||
TableCompanyNrSupers: Ansprechpartner
|
TableCompanyNrSupers: Ansprechpartner
|
||||||
|
TableCompanyNrEmpSupervised: Firmenangehörige mit Ansprechpartner
|
||||||
|
TableCompanyNrEmpRerouted: Firmenangehörige mit Umleitung
|
||||||
|
TableCompanyNrEmpRerPost: Firmenangehörige mit postalischer Umleitung
|
||||||
TableCompanyNrSupersActive: Mitarbeiter mit Ansprechpartner
|
TableCompanyNrSupersActive: Mitarbeiter mit Ansprechpartner
|
||||||
TableCompanyNrSupersDefault: Standard Ansprechpartner
|
TableCompanyNrSupersDefault: Standard Ansprechpartner
|
||||||
TableCompanyNrForeignSupers: Firmenfremde Ansprechpartner
|
TableCompanyNrForeignSupers: Firmenfremde Ansprechpartner
|
||||||
|
|||||||
@ -82,6 +82,9 @@ TableCompanyNo: Company number
|
|||||||
TableCompanyNos: Company numbers
|
TableCompanyNos: Company numbers
|
||||||
TableCompanyNrUsers: Associates
|
TableCompanyNrUsers: Associates
|
||||||
TableCompanyNrSupers: Supervisors
|
TableCompanyNrSupers: Supervisors
|
||||||
|
TableCompanyNrEmpSupervised: Supervsied employees
|
||||||
|
TableCompanyNrEmpRerouted: Employees having reroute
|
||||||
|
TableCompanyNrEmpRerPost: Employees having postal reroute
|
||||||
TableCompanyNrSupersActive: Associates having supervisors
|
TableCompanyNrSupersActive: Associates having supervisors
|
||||||
TableCompanyNrSupersDefault: Default supervisors
|
TableCompanyNrSupersDefault: Default supervisors
|
||||||
TableCompanyNrForeignSupers: External Supervisors
|
TableCompanyNrForeignSupers: External Supervisors
|
||||||
|
|||||||
@ -123,10 +123,10 @@ breadcrumb ProblemFbutNoR = i18nCrumb MsgProblemsRWithoutFHeading $ Just
|
|||||||
breadcrumb ProblemAvsSynchR = i18nCrumb MsgProblemsAvsSynchHeading $ Just AdminProblemsR
|
breadcrumb ProblemAvsSynchR = i18nCrumb MsgProblemsAvsSynchHeading $ Just AdminProblemsR
|
||||||
breadcrumb ProblemAvsErrorR = i18nCrumb MsgProblemsAvsErrorHeading $ Just ProblemAvsSynchR
|
breadcrumb ProblemAvsErrorR = i18nCrumb MsgProblemsAvsErrorHeading $ Just ProblemAvsSynchR
|
||||||
|
|
||||||
breadcrumb FirmAllR = i18nCrumb MsgMenuFirms Nothing
|
breadcrumb FirmAllR = i18nCrumb MsgMenuFirms Nothing
|
||||||
breadcrumb FirmR{} = i18nCrumb MsgMenuFirms $ Just FirmAllR
|
breadcrumb FirmR{} = i18nCrumb MsgMenuAdminHeading $ Just FirmAllR -- TODO: change heading or remove
|
||||||
breadcrumb FirmUsersR{} = i18nCrumb MsgMenuFirms $ Just FirmAllR
|
breadcrumb FirmUsersR{} = i18nCrumb MsgMenuFirmUsers $ Just FirmAllR
|
||||||
breadcrumb FirmSupersR{} = i18nCrumb MsgMenuFirms $ Just FirmAllR
|
breadcrumb (FirmSupersR fsh)= i18nCrumb MsgMenuFirmSupervisors $ Just $ FirmUsersR fsh
|
||||||
|
|
||||||
breadcrumb PrintCenterR = i18nCrumb MsgMenuApc Nothing
|
breadcrumb PrintCenterR = i18nCrumb MsgMenuApc Nothing
|
||||||
breadcrumb PrintSendR = i18nCrumb MsgMenuPrintSend $ Just PrintCenterR
|
breadcrumb PrintSendR = i18nCrumb MsgMenuPrintSend $ Just PrintCenterR
|
||||||
@ -2425,6 +2425,18 @@ pageActions (FirmR fsh) = return
|
|||||||
, navChildren = []
|
, 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
|
pageActions PrintCenterR = do
|
||||||
openDays <- useRunDB $ Ex.select $ do
|
openDays <- useRunDB $ Ex.select $ do
|
||||||
pj <- Ex.from $ Ex.table @PrintJob
|
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.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]
|
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
|
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
|
siteLayoutMsg (SomeMessage fsh) $ do
|
||||||
setTitle $ citext2Html fsh
|
setTitle $ citext2Html fsh
|
||||||
[whamlet|
|
[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)
|
<h3>#{length csuper} Company Default Supervisors (non-foreign only)
|
||||||
<ul>
|
<ul>
|
||||||
$forall u <- csuper
|
$forall u <- csuper
|
||||||
@ -72,8 +75,9 @@ postFirmR fsh = do
|
|||||||
|
|
||||||
<h3>#{length cactSuper} Active Supervisors for Employees
|
<h3>#{length cactSuper} Active Supervisors for Employees
|
||||||
<ul>
|
<ul>
|
||||||
$forall (E.Value _, E.Value dn, E.Value sn, E.Value mbCsh, E.Value nr) <- cactSuper
|
$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}
|
<li>#{nr} Employees supervised by ^{nameWidget dn sn} #
|
||||||
|
#{icon (bool IconAt IconLetter prefPost)} #
|
||||||
$maybe csh <- mbCsh
|
$maybe csh <- mbCsh
|
||||||
$if csh /= fshId
|
$if csh /= fshId
|
||||||
from foreign company #{unCompanyKey csh}
|
from foreign company #{unCompanyKey csh}
|
||||||
@ -111,30 +115,39 @@ type AllCompanyTableExpr = E.SqlExpr (Entity Company)
|
|||||||
queryCompany :: AllCompanyTableExpr -> E.SqlExpr (Entity Company)
|
queryCompany :: AllCompanyTableExpr -> E.SqlExpr (Entity Company)
|
||||||
queryCompany = id
|
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 :: Lens' AllCompanyTableData (Entity Company)
|
||||||
resultAllCompanyEntity = _dbrOutput . _1
|
resultAllCompanyEntity = _dbrOutput . _1
|
||||||
|
|
||||||
resultAllCompany :: Lens' AllCompanyTableData Company
|
resultAllCompany :: Lens' AllCompanyTableData Company
|
||||||
resultAllCompany = resultAllCompanyEntity . _entityVal
|
resultAllCompany = resultAllCompanyEntity . _entityVal
|
||||||
|
|
||||||
resultAllCompanyUsers :: Lens' AllCompanyTableData Word64
|
resultAllCompanyUsers :: Lens' AllCompanyTableData Word64
|
||||||
resultAllCompanyUsers = _dbrOutput . _2 . _unValue
|
resultAllCompanyUsers = _dbrOutput . _2 . _unValue
|
||||||
|
|
||||||
resultAllCompanySupervisors :: Lens' AllCompanyTableData Word64
|
resultAllCompanySupervisors :: Lens' AllCompanyTableData Word64
|
||||||
resultAllCompanySupervisors = _dbrOutput . _3 . _unValue
|
resultAllCompanySupervisors = _dbrOutput . _3 . _unValue
|
||||||
|
|
||||||
resultAllCompanyForeignSupers :: Lens' AllCompanyTableData Word64
|
resultAllCompanyEmployeeSupervised :: Lens' AllCompanyTableData Word64
|
||||||
resultAllCompanyForeignSupers = _dbrOutput . _4 . _unValue
|
resultAllCompanyEmployeeSupervised = _dbrOutput . _4 . _unValue
|
||||||
|
|
||||||
resultAllCompanyDefaultReroutes :: Lens' AllCompanyTableData Word64
|
resultAllCompanyEmployeeRerouted :: Lens' AllCompanyTableData Word64
|
||||||
resultAllCompanyDefaultReroutes = _dbrOutput . _5 . _unValue
|
resultAllCompanyEmployeeRerouted = _dbrOutput . _5 . _unValue
|
||||||
|
|
||||||
resultAllCompanyActiveReroutes :: Lens' AllCompanyTableData Word64
|
resultAllCompanyEmpRerPost :: Lens' AllCompanyTableData Word64
|
||||||
resultAllCompanyActiveReroutes = _dbrOutput . _6 . _unValue
|
resultAllCompanyEmpRerPost = _dbrOutput . _6 . _unValue
|
||||||
|
|
||||||
resultAllCompanyActiveReroutes' :: Lens' AllCompanyTableData Word64
|
resultAllCompanyForeignSupers :: Lens' AllCompanyTableData Word64
|
||||||
resultAllCompanyActiveReroutes' = _dbrOutput . _7 . _unValue
|
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 :: Maybe (E.SqlExpr (Entity UserCompany) -> E.SqlExpr (E.Value Bool)) -> E.SqlExpr (Entity Company) -> E.SqlQuery ()
|
||||||
fromUserCompany mbFltr cmpy = do
|
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.SqlExpr (Entity Company) -> E.SqlExpr (E.Value Word64)
|
||||||
firmCountDefaultReroutes = E.subSelectCount . fromUserCompany (Just (\uc -> uc E.^. UserCompanySupervisor E.&&. uc E.^. UserCompanySupervisorReroute))
|
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 :: E.SqlExpr (Entity Company) -> E.SqlExpr (E.Value Word64)
|
||||||
-- firmCountForeignSupervisors cmpy = E.coalesceDefault
|
-- firmCountForeignSupervisors cmpy = E.coalesceDefault
|
||||||
-- [E.subSelect $ do
|
-- [E.subSelect $ do
|
||||||
@ -199,13 +242,16 @@ mkFirmAllTable isAdmin uid = do
|
|||||||
usrCmpy <- E.from $ E.table @UserCompany
|
usrCmpy <- E.from $ E.table @UserCompany
|
||||||
E.where_ $ usrCmpy E.^. UserCompanyCompany E.==. cmpy E.^. CompanyId
|
E.where_ $ usrCmpy E.^. UserCompanyCompany E.==. cmpy E.^. CompanyId
|
||||||
E.&&. usrCmpy E.^. UserCompanyUser E.==. E.val uid
|
E.&&. usrCmpy E.^. UserCompanyUser E.==. E.val uid
|
||||||
return ( cmpy
|
return ( cmpy -- 1
|
||||||
, cmpy & firmCountUsers
|
, cmpy & firmCountUsers -- 2
|
||||||
, cmpy & firmCountSupervisors
|
, cmpy & firmCountSupervisors -- 3
|
||||||
, cmpy & firmCountForeignSupervisors
|
, cmpy & firmCountEmployeeSupervised -- 4
|
||||||
, cmpy & firmCountDefaultReroutes
|
, cmpy & firmCountEmployeeRerouted -- 5
|
||||||
, cmpy & firmCountActiveReroutes
|
, cmpy & firmCountEmployeeRerPost -- 6
|
||||||
, cmpy & firmCountActiveReroutes'
|
, cmpy & firmCountForeignSupervisors -- 7
|
||||||
|
, cmpy & firmCountDefaultReroutes -- 8
|
||||||
|
, cmpy & firmCountActiveReroutes -- 9
|
||||||
|
, cmpy & firmCountActiveReroutes' -- 10
|
||||||
)
|
)
|
||||||
dbtRowKey = (E.^. CompanyId)
|
dbtRowKey = (E.^. CompanyId)
|
||||||
dbtProj = dbtProjId
|
dbtProj = dbtProjId
|
||||||
@ -214,29 +260,36 @@ mkFirmAllTable isAdmin uid = do
|
|||||||
[ if not isAdmin then mempty else -- guardOnM idAdmin $
|
[ if not isAdmin then mempty else -- guardOnM idAdmin $
|
||||||
dbSelect (applying _2) id (return . view (resultAllCompanyEntity . _entityKey))
|
dbSelect (applying _2) id (return . view (resultAllCompanyEntity . _entityKey))
|
||||||
, sortable (Just "name") (i18nCell MsgTableCompany) $ \(view resultAllCompany -> firm) ->
|
, 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) ->
|
, sortable (Just "short") (i18nCell MsgTableCompanyShort) $ \(view resultAllCompany -> firm) ->
|
||||||
let fsh = companyShorthand 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) ->
|
, sortable (Just "avsnr") (i18nCell MsgTableCompanyNo) $ \(view resultAllCompany -> firm) ->
|
||||||
anchorCell (FirmR $ companyShorthand firm) $ toWgt $ companyAvsId firm
|
anchorCell (FirmR $ companyShorthand firm) $ toWgt $ companyAvsId firm
|
||||||
, sortable (Just "users") (i18nCell MsgTableCompanyNrUsers) $ \(view resultAllCompanyUsers -> nr) -> wgtCell $ word2widget nr
|
, sortable (Just "users") (i18nCell MsgTableCompanyNrUsers) $ \(view resultAllCompanyUsers -> nr) -> wgtCell $ word2widget nr
|
||||||
, sortable (Just "supervisors") (i18nCell MsgTableCompanyNrSupersDefault) $ \(view resultAllCompanySupervisors -> nr) -> wgtCell $ word2widget nr
|
, sortable (Just "supervisors") (i18nCell MsgTableCompanyNrSupersDefault) $ \row ->
|
||||||
, sortable (Just "reroute-def") (i18nCell MsgTableCompanyNrRerouteDefault) $ \(view resultAllCompanyDefaultReroutes -> nr) -> wgtCell $ word2widget nr
|
anchorCell (FirmSupersR $ row ^. resultAllCompany . _companyShorthand) $ word2widget $ row ^. resultAllCompanySupervisors
|
||||||
, sortable (Just "foreigners") (i18nCell MsgTableCompanyNrForeignSupers) $ \(view resultAllCompanyForeignSupers -> nr) -> wgtCell $ word2widget nr
|
, sortable (Just "reroute-def") (i18nCell MsgTableCompanyNrRerouteDefault) $ \(view resultAllCompanyDefaultReroutes -> nr) -> wgtCell $ word2widget nr
|
||||||
, sortable (Just "reroute-act") (i18nCell MsgTableCompanyNrRerouteActive) $ \(view resultAllCompanyActiveReroutes -> nr) -> wgtCell $ word2widget nr
|
, sortable (Just "emp-supervised")(i18nCell MsgTableCompanyNrEmpSupervised) $ \(view resultAllCompanyEmployeeSupervised -> nr) -> wgtCell $ word2widget nr
|
||||||
, sortable (Just "reroute-all") (i18nCell MsgTableCompanyNrRerouteActive) $ \(view resultAllCompanyActiveReroutes' -> 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
|
dbtSorting = mconcat
|
||||||
[ singletonMap "name" $ SortColumn (E.^. CompanyName)
|
[ singletonMap "name" $ SortColumn (E.^. CompanyName)
|
||||||
, singletonMap "short" $ SortColumn (E.^. CompanyShorthand)
|
, singletonMap "short" $ SortColumn (E.^. CompanyShorthand)
|
||||||
, singletonMap "avsnr" $ SortColumn (E.^. CompanyAvsId)
|
, singletonMap "avsnr" $ SortColumn (E.^. CompanyAvsId)
|
||||||
, singletonMap "users" $ SortColumn firmCountUsers
|
, singletonMap "users" $ SortColumn firmCountUsers
|
||||||
, singletonMap "supervisors" $ SortColumn firmCountSupervisors
|
, singletonMap "supervisors" $ SortColumn firmCountSupervisors
|
||||||
, singletonMap "reroute-def" $ SortColumn firmCountDefaultReroutes
|
, singletonMap "emp-supervised" $ SortColumn firmCountEmployeeSupervised
|
||||||
, singletonMap "foreigners" $ SortColumn firmCountForeignSupervisors
|
, singletonMap "emp-rerouted" $ SortColumn firmCountEmployeeRerouted
|
||||||
, singletonMap "reroute-act" $ SortColumn firmCountActiveReroutes
|
, singletonMap "emp-rer-post" $ SortColumn firmCountEmployeeRerPost
|
||||||
, singletonMap "reroute-all" $ SortColumn firmCountActiveReroutes'
|
, singletonMap "reroute-def" $ SortColumn firmCountDefaultReroutes
|
||||||
|
, singletonMap "foreigners" $ SortColumn firmCountForeignSupervisors
|
||||||
|
, singletonMap "reroute-act" $ SortColumn firmCountActiveReroutes
|
||||||
|
, singletonMap "reroute-all" $ SortColumn firmCountActiveReroutes'
|
||||||
]
|
]
|
||||||
dbtFilter = mconcat
|
dbtFilter = mconcat
|
||||||
[ single $ fltrCompanyNameNr queryCompany
|
[ single $ fltrCompanyNameNr queryCompany
|
||||||
@ -255,7 +308,7 @@ mkFirmAllTable isAdmin uid = do
|
|||||||
[ fltrCompanyNameNrUI mPrev
|
[ fltrCompanyNameNrUI mPrev
|
||||||
, prismAForm (singletonFilter "is-supervisor") mPrev $ aopt textField (fslI MsgTableSupervisor)
|
, prismAForm (singletonFilter "is-supervisor") mPrev $ aopt textField (fslI MsgTableSupervisor)
|
||||||
]
|
]
|
||||||
dbtStyle = def -- { dbsFilterLayout = defaultDBSFilterLayout }
|
dbtStyle = def { dbsFilterLayout = defaultDBSFilterLayout }
|
||||||
acts :: Map FirmAllAction (AForm Handler FirmAllActionData)
|
acts :: Map FirmAllAction (AForm Handler FirmAllActionData)
|
||||||
acts = mconcat
|
acts = mconcat
|
||||||
[ singletonMap FirmAllActNotify $ pure FirmAllActNotifyData
|
[ singletonMap FirmAllActNotify $ pure FirmAllActNotifyData
|
||||||
@ -303,22 +356,50 @@ postFirmAllR = do
|
|||||||
(FirmAllActResetSupervisionData, fids) -> addMessage Info $ text2Html $ "Reset " <> tshow (length fids) <> " companies. TODO"
|
(FirmAllActResetSupervisionData, fids) -> addMessage Info $ text2Html $ "Reset " <> tshow (length fids) <> " companies. TODO"
|
||||||
siteLayoutMsg MsgMenuFirms $ do
|
siteLayoutMsg MsgMenuFirms $ do
|
||||||
setTitleI MsgMenuFirms
|
setTitleI MsgMenuFirms
|
||||||
-- $(widgetFile "firm-all")
|
$(i18nWidgetFile "firm-all")
|
||||||
[whamlet|!!!STUB!!!TO DO!!!
|
|
||||||
^{firmTable}
|
|
||||||
|]
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
-- Firm Users Table
|
-- 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 :: CompanyShorthand -> Handler Html
|
||||||
getFirmUsersR = postFirmUsersR
|
getFirmUsersR = postFirmUsersR
|
||||||
postFirmUsersR fsh = do
|
postFirmUsersR fsh = do
|
||||||
let _fshId = CompanyKey fsh
|
let fshId = CompanyKey fsh
|
||||||
siteLayout (citext2widget fsh) $ do
|
Company{..} <- runDB $ get404 fshId
|
||||||
setTitle $ citext2Html fsh
|
siteLayout (citext2widget companyName) $ do
|
||||||
[whamlet|!!!STUB!!!TO 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
|
IconSFTHint -> "life-ring" -- for SheetFileType only
|
||||||
IconSFTSolution -> "exclamation-circle" -- for SheetFileType only
|
IconSFTSolution -> "exclamation-circle" -- for SheetFileType only
|
||||||
IconSFTMarking -> "check-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"
|
IconRegisterTemplate -> "file-alt"
|
||||||
IconNoCorrectors -> "user-slash"
|
IconNoCorrectors -> "user-slash"
|
||||||
IconRemoveUser -> "user-slash"
|
IconRemoveUser -> "user-slash"
|
||||||
@ -199,7 +199,7 @@ iconText = \case
|
|||||||
IconCertificate -> "badge-check"
|
IconCertificate -> "badge-check"
|
||||||
IconPrintCenter -> "mail-bulk" -- From fontawesome v6 onwards: "envelope-bulk"
|
IconPrintCenter -> "mail-bulk" -- From fontawesome v6 onwards: "envelope-bulk"
|
||||||
IconLetter -> "mail-bulk" -- Problem "envelope" already used for email as well
|
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
|
IconSupervisor -> "head-side" -- must be notably different to user
|
||||||
-- IconWaitingForUser -> "user-cog" -- Waiting on a user to do something
|
-- IconWaitingForUser -> "user-cog" -- Waiting on a user to do something
|
||||||
IconExpired -> "hourglass-end"
|
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.
|
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
|
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 False Nothing -- TODO: better testcases
|
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 Nothing
|
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
|
ffacil <- insert' $ Company "Fraport Facility Services GmbH" "GCS" 44 False Nothing
|
||||||
bpol <- insert' $ Company "Bundespolizeidirektion Flughafen Frankfurt am Main" "BPol" 5555 False Nothing
|
bpol <- insert' $ Company "Bundespolizeidirektion Flughafen Frankfurt am Main" "BPol" 5555 False Nothing
|
||||||
void . insert' $ UserCompany jost fraportAg True True
|
void . insert' $ UserCompany jost fraportAg True True
|
||||||
|
|||||||
Reference in New Issue
Block a user