chore(firm): various contributions towards #157
This commit is contained in:
parent
3dfc7f8c8b
commit
45bc5ca9f5
@ -7,7 +7,6 @@ FirmSuperForeign: Firmenfremde Ansprechpartner
|
||||
FirmSuperIrregular: Irreguläre Ansprechpartner
|
||||
FirmAssociates: Firmenangehörige
|
||||
FirmContact: Firmenkontakt
|
||||
FirmNoContact: Keine allgemeinen Kontaktinformationen bekannt.
|
||||
FirmEmail: Allgemeine Email
|
||||
FirmAddress: Postanschrift
|
||||
FirmDefaultPreferenceInfo: Diese Voreinstellungen gelten nur für neue Firmenangehörige
|
||||
|
||||
@ -7,7 +7,6 @@ FirmSuperForeign: External supervisor
|
||||
FirmSuperIrregular: Irregular supervisor
|
||||
FirmAssociates: Company associated users
|
||||
FirmContact: Company Contact
|
||||
FirmNoContact: No general contact information known.
|
||||
FirmEmail: General company email
|
||||
FirmAddress: Postal address
|
||||
FirmDefaultPreferenceInfo: Default setting for new company associates only
|
||||
|
||||
@ -83,6 +83,7 @@ TableCompanyNo: Firmennummer
|
||||
TableCompanyNos: Firmennummern
|
||||
TableCompanyUser: Firmenangehöriger
|
||||
TableCompanyNrUsers: Firmenangehörige
|
||||
TableCompanyNrSecondaryUsers: Sekundäre Firmenangehörige
|
||||
TableCompanyNrSupers: Ansprechpartner
|
||||
TableCompanyNrEmpSupervised: Firmenangehörige mit Ansprechpartner
|
||||
TableCompanyNrEmpRerouted: Firmenangehörige mit Umleitung
|
||||
|
||||
@ -83,6 +83,7 @@ TableCompanyNo: Company number
|
||||
TableCompanyNos: Company numbers
|
||||
TableCompanyUser: Associate
|
||||
TableCompanyNrUsers: Associates
|
||||
TableCompanyNrSecondaryUsers: Secondary Associates
|
||||
TableCompanyNrSupers: Supervisors
|
||||
TableCompanyNrEmpSupervised: Supervised employees
|
||||
TableCompanyNrEmpRerouted: Employees having reroute
|
||||
|
||||
@ -334,6 +334,26 @@ fromUserCompany mbFltr cmpy = do
|
||||
firmCountUsers :: E.SqlExpr (Entity Company) -> E.SqlExpr (E.Value Word64)
|
||||
firmCountUsers = E.subSelectCount . fromUserCompany Nothing
|
||||
|
||||
firmCountUsersPrimary :: E.SqlExpr (Entity Company) -> E.SqlExpr (E.Value Word64)
|
||||
firmCountUsersPrimary cmp = E.subSelectCount $ fromUserCompany (Just primFltr) cmp
|
||||
where
|
||||
primFltr usr = E.notExists (do
|
||||
othr <- E.from $ E.table @UserCompany
|
||||
E.where_ $ othr E.^. UserCompanyPriority E.>. usr E.^. UserCompanyPriority
|
||||
E.&&. othr E.^. UserCompanyUser E.==. usr E.^. UserCompanyUser
|
||||
E.&&. othr E.^. UserCompanyCompany E.!=. cmp E.^. CompanyId -- redundant due to > above, but likely performance improving
|
||||
)
|
||||
|
||||
firmCountUsersSecondary :: E.SqlExpr (Entity Company) -> E.SqlExpr (E.Value Word64)
|
||||
firmCountUsersSecondary cmp = E.subSelectCount $ fromUserCompany (Just primFltr) cmp
|
||||
where
|
||||
primFltr usr = E.exists (do
|
||||
othr <- E.from $ E.table @UserCompany
|
||||
E.where_ $ othr E.^. UserCompanyPriority E.>. usr E.^. UserCompanyPriority
|
||||
E.&&. othr E.^. UserCompanyUser E.==. usr E.^. UserCompanyUser
|
||||
E.&&. othr E.^. UserCompanyCompany E.!=. cmp E.^. CompanyId -- redundant due to > above, but likely performance improving
|
||||
)
|
||||
|
||||
firmCountSupervisors :: E.SqlExpr (Entity Company) -> E.SqlExpr (E.Value Word64)
|
||||
firmCountSupervisors = E.subSelectCount . fromUserCompany (Just (E.^. UserCompanySupervisor))
|
||||
-- firmCountSupervisors :: E.SqlExpr (Entity Company) -> E.SqlExpr (E.Value Word64)
|
||||
@ -445,7 +465,7 @@ type AllCompanyTableExpr = E.SqlExpr (Entity Company)
|
||||
queryAllCompany :: AllCompanyTableExpr -> E.SqlExpr (Entity Company)
|
||||
queryAllCompany = id
|
||||
|
||||
type AllCompanyTableData = DBRow (Entity Company, E.Value Word64, E.Value Bool, E.Value Bool)
|
||||
type AllCompanyTableData = DBRow (Entity Company, E.Value Word64, E.Value Bool, E.Value Bool, E.Value Word64)
|
||||
resultAllCompanyEntity :: Lens' AllCompanyTableData (Entity Company)
|
||||
resultAllCompanyEntity = _dbrOutput . _1
|
||||
|
||||
@ -461,6 +481,8 @@ resultAllCompanySupervisors = _dbrOutput . _3 . _unValue
|
||||
resultAllCompanyDefaultReroutes :: Lens' AllCompanyTableData Bool
|
||||
resultAllCompanyDefaultReroutes = _dbrOutput . _4 . _unValue
|
||||
|
||||
resultAllCompanyUsersSecondary :: Lens' AllCompanyTableData Word64
|
||||
resultAllCompanyUsersSecondary = _dbrOutput . _5 . _unValue
|
||||
|
||||
mkFirmAllTable :: Bool -> UserId -> DB (FormResult (FirmActionData, Set CompanyId), Widget)
|
||||
mkFirmAllTable isAdmin uid = do
|
||||
@ -483,12 +505,13 @@ mkFirmAllTable isAdmin uid = do
|
||||
, cmpy & firmCountUsers -- 2
|
||||
, cmpy & firmHasSupervisors -- 3
|
||||
, cmpy & firmHasDefaultReroutes -- 4
|
||||
-- , cmpy & firmCountEmployeeSupervised -- 4
|
||||
-- , cmpy & firmCountEmployeeRerouted -- 5
|
||||
-- , cmpy & firmCountEmployeeRerPost -- 6
|
||||
-- , cmpy & firmCountForeignSupervisors -- 7
|
||||
-- , cmpy & firmCountActiveReroutes -- 9
|
||||
-- , cmpy & firmCountActiveReroutes' -- 10
|
||||
, cmpy & firmCountUsersSecondary -- 5
|
||||
-- , cmpy & firmCountEmployeeSupervised
|
||||
-- , cmpy & firmCountEmployeeRerouted
|
||||
-- , cmpy & firmCountEmployeeRerPost
|
||||
-- , cmpy & firmCountForeignSupervisors
|
||||
-- , cmpy & firmCountActiveReroutes
|
||||
-- , cmpy & firmCountActiveReroutes'
|
||||
)
|
||||
dbtRowKey = (E.^. CompanyId)
|
||||
dbtProj = dbtProjFilteredPostId
|
||||
@ -501,6 +524,7 @@ mkFirmAllTable isAdmin uid = do
|
||||
in anchorCell (FirmSupersR fsh) $ toWgt fsh
|
||||
, sortable (Just "avsnr") (i18nCell MsgTableCompanyNo) $ \(view resultAllCompany -> firm) -> numCell $ companyAvsId firm
|
||||
, sortable (Just "users") (i18nCell MsgTableCompanyNrUsers) $ \(view resultAllCompanyUsers -> nr) -> wgtCell $ word2widget nr
|
||||
, sortable (Just "secondary") (i18nCell MsgTableCompanyNrSecondaryUsers) $ \(view resultAllCompanyUsersSecondary -> nr) -> wgtCell $ word2widget nr
|
||||
, sortable (Just "supervisors") (i18nCell MsgTableCompanyNrSupersDefault) $ \row ->
|
||||
anchorCell (FirmSupersR $ row ^. resultAllCompany . _companyShorthand) $ toWgt $ hasTickmark $ row ^. resultAllCompanySupervisors
|
||||
, sortable (Just "reroute-def") (i18nCell MsgTableCompanyNrRerouteDefault) $ \(view resultAllCompanyDefaultReroutes -> ok) -> tickmarkCell ok
|
||||
@ -518,6 +542,7 @@ mkFirmAllTable isAdmin uid = do
|
||||
, singletonMap "avsnr" $ SortColumn (E.^. CompanyAvsId)
|
||||
, singletonMap "postal-pref" $ SortColumn (E.^. CompanyPrefersPostal)
|
||||
, singletonMap "users" $ SortColumn firmCountUsers
|
||||
, singletonMap "secondary" $ SortColumn firmCountUsersSecondary
|
||||
, singletonMap "supervisors" $ SortColumn firmHasSupervisors
|
||||
-- , singletonMap "emp-supervised" $ SortColumn firmCountEmployeeSupervised
|
||||
-- , singletonMap "emp-rerouted" $ SortColumn firmCountEmployeeRerouted
|
||||
|
||||
@ -192,7 +192,7 @@ msgAdminProblem AdminProblemSupervisorNewCompany{adminProblemCompany=comp, admin
|
||||
msgAdminProblem AdminProblemSupervisorLeftCompany{adminProblemCompany=comp, adminProblemSupervisorReroute=rer} = return $
|
||||
SomeMessages [SomeMessage $ MsgAdminProblemSupervisorLeftCompany rer, text2message ": ", company2msg comp]
|
||||
msgAdminProblem AdminProblemCompanySuperiorChange{adminProblemCompany=comp} = return $
|
||||
SomeMessages [SomeMessage $ MsgAdminProblemCompanySuperiorChange, text2message ": ", company2msg comp]
|
||||
SomeMessages [SomeMessage MsgAdminProblemCompanySuperiorChange, text2message ": ", company2msg comp]
|
||||
msgAdminProblem AdminProblemNewlyUnsupervised{adminProblemCompanyOld=comp, adminProblemCompanyNew=newComp} = return $
|
||||
SomeMessages [SomeMessage MsgAdminProblemNewlyUnsupervised, text2message ": ", maybe (text2message "???") company2msg comp, text2message " -> ", company2msg newComp]
|
||||
msgAdminProblem AdminProblemUnknown{adminProblemText=err} = return $
|
||||
|
||||
@ -21,7 +21,7 @@ $# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#{iconLetterOrEmail True}
|
||||
<dd .deflist__dd>
|
||||
#{addr}
|
||||
$nothing
|
||||
$maybe _ <- companyEmail
|
||||
$nothing
|
||||
_{MsgFirmNoContact}
|
||||
<dt .deflist__dt>
|
||||
_{MsgTableCompanyNo}
|
||||
<dd .deflist__dd>
|
||||
#{companyAvsId}
|
||||
Reference in New Issue
Block a user