Skip to content

Commit 4b4fe76

Browse files
authored
Merge pull request Expensify#90710 from Krishna2323/krishna/trinet-scaffolding-pr1
[No QA] feat: Add TriNet (Zenefits) scaffolding — constants, types, routes, navigation, API params
2 parents 9c30c6b + c0cb397 commit 4b4fe76

17 files changed

Lines changed: 160 additions & 3 deletions

File tree

src/CONST/index.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -888,6 +888,7 @@ const CONST = {
888888
PAY_INVOICE_VIA_EXPENSIFY: 'payInvoiceViaExpensify',
889889
SUGGESTED_FOLLOWUPS: 'suggestedFollowups',
890890
GUSTO: 'gustoNewDot',
891+
ZENEFITS: 'zenefitsNewDot',
891892
BULK_EDIT: 'bulkEdit',
892893
NEW_MANUAL_EXPENSE_FLOW: 'newManualExpenseFlow',
893894
SUBMIT_2026: 'submit2026',
@@ -2786,6 +2787,14 @@ const CONST = {
27862787
},
27872788
},
27882789

2790+
ZENEFITS: {
2791+
APPROVAL_MODE: {
2792+
BASIC: 'basic',
2793+
MANAGER: 'manager',
2794+
CUSTOM: 'custom',
2795+
},
2796+
},
2797+
27892798
QUICKBOOKS_REIMBURSABLE_ACCOUNT_TYPE: {
27902799
VENDOR_BILL: 'bill',
27912800
CHECK: 'check',
@@ -3721,6 +3730,7 @@ const CONST = {
37213730
SAGE_INTACCT: 'intacct',
37223731
CERTINIA: 'certinia',
37233732
GUSTO: 'gusto',
3733+
ZENEFITS: 'zenefits',
37243734
},
37253735
SUPPORTED_ONLY_ON_OLDDOT: {
37263736
FINANCIALFORCE: 'financialForce',
@@ -3736,6 +3746,7 @@ const CONST = {
37363746
QBD: 'quickbooks-desktop',
37373747
CERTINIA: 'certinia',
37383748
GUSTO: 'gusto',
3749+
ZENEFITS: 'zenefits',
37393750
},
37403751
NAME_USER_FRIENDLY: {
37413752
netsuite: 'NetSuite',
@@ -3747,7 +3758,7 @@ const CONST = {
37473758
certinia: 'Certinia',
37483759
gusto: 'Gusto',
37493760
billCom: 'Bill.com',
3750-
zenefits: 'Zenefits',
3761+
zenefits: 'TriNet',
37513762
sap: 'SAP',
37523763
oracle: 'Oracle',
37533764
microsoftDynamics: 'Microsoft Dynamics',
@@ -3757,7 +3768,7 @@ const CONST = {
37573768
return [this.NAME.QBO, this.NAME.QBD, this.NAME.XERO, this.NAME.NETSUITE, this.NAME.SAGE_INTACCT, this.NAME.CERTINIA] as const;
37583769
},
37593770
get HR_CONNECTION_NAMES() {
3760-
return [this.NAME.GUSTO] as const;
3771+
return [this.NAME.GUSTO, this.NAME.ZENEFITS] as const;
37613772
},
37623773
get EXPORTED_TO_INTEGRATION_DISPLAY_NAMES(): string[] {
37633774
return this.ACCOUNTING_CONNECTION_NAMES.map((name) => this.NAME_USER_FRIENDLY[name as keyof typeof this.NAME_USER_FRIENDLY]);
@@ -3841,6 +3852,9 @@ const CONST = {
38413852
GUSTO_SYNC_TITLE: 'gustoSyncTitle',
38423853
GUSTO_SYNC_LOAD_DATA: 'gustoSyncLoadData',
38433854
GUSTO_SYNC_PROVISIONING: 'gustoSyncProvisioning',
3855+
ZENEFITS_SYNC_TITLE: 'zenefitsSyncTitle',
3856+
ZENEFITS_SYNC_LOAD_DATA: 'zenefitsSyncLoadData',
3857+
ZENEFITS_SYNC_PROVISIONING: 'zenefitsSyncProvisioning',
38443858
},
38453859
SYNC_STAGE_TIMEOUT_MINUTES: 20,
38463860
},

src/ROUTES.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2508,6 +2508,24 @@ const ROUTES = {
25082508
return `workspaces/${policyID}/hr/gusto/final-approver` as const;
25092509
},
25102510
},
2511+
WORKSPACE_HR_ZENEFITS_APPROVAL_MODE: {
2512+
route: 'workspaces/:policyID/hr/zenefits/approval-mode',
2513+
getRoute: (policyID: string | undefined) => {
2514+
if (!policyID) {
2515+
Log.warn('Invalid policyID is used to build the WORKSPACE_HR_ZENEFITS_APPROVAL_MODE route');
2516+
}
2517+
return `workspaces/${policyID}/hr/zenefits/approval-mode` as const;
2518+
},
2519+
},
2520+
WORKSPACE_HR_ZENEFITS_FINAL_APPROVER: {
2521+
route: 'workspaces/:policyID/hr/zenefits/final-approver',
2522+
getRoute: (policyID: string | undefined) => {
2523+
if (!policyID) {
2524+
Log.warn('Invalid policyID is used to build the WORKSPACE_HR_ZENEFITS_FINAL_APPROVER route');
2525+
}
2526+
return `workspaces/${policyID}/hr/zenefits/final-approver` as const;
2527+
},
2528+
},
25112529
WORKSPACE_TAGS: {
25122530
route: 'workspaces/:policyID/tags',
25132531
getRoute: (policyID: string | undefined) => {

src/SCREENS.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -690,6 +690,8 @@ const SCREENS = {
690690
HR: 'Workspace_HR',
691691
HR_GUSTO_APPROVAL_MODE: 'Workspace_HR_Gusto_Approval_Mode',
692692
HR_GUSTO_FINAL_APPROVER: 'Workspace_HR_Gusto_Final_Approver',
693+
HR_ZENEFITS_APPROVAL_MODE: 'Workspace_HR_Zenefits_Approval_Mode',
694+
HR_ZENEFITS_FINAL_APPROVER: 'Workspace_HR_Zenefits_Final_Approver',
693695
COMPANY_CARDS: 'Workspace_CompanyCards',
694696
COMPANY_CARDS_BROKEN_CARD_FEED_CONNECTION: 'Workspace_CompanyCards_BrokenCardFeedConnection',
695697
COMPANY_CARDS_REFRESH_CARD_FEED_CONNECTION: 'Workspace_CompanyCards_RefreshCardFeedConnection',
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
type ConnectPolicyToZenefitsParams = {
2+
policyID: string;
3+
};
4+
5+
export default ConnectPolicyToZenefitsParams;
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
type SyncPolicyToZenefitsParams = {
2+
policyID: string;
3+
idempotencyKey: string;
4+
};
5+
6+
export default SyncPolicyToZenefitsParams;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import type {ValueOf} from 'type-fest';
2+
import type CONST from '@src/CONST';
3+
4+
type UpdateZenefitsApprovalModeParams = {
5+
policyID: string;
6+
approvalMode: ValueOf<typeof CONST.ZENEFITS.APPROVAL_MODE>;
7+
};
8+
9+
export default UpdateZenefitsApprovalModeParams;
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
type UpdateZenefitsFinalApproverParams = {
2+
policyID: string;
3+
finalApprover: string | null;
4+
};
5+
6+
export default UpdateZenefitsFinalApproverParams;

src/libs/API/parameters/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,11 @@ export type {default as ConnectBankAccountParams} from './ConnectBankAccountPara
2323
export type {default as OpenDuplicatePolicyPageParams} from './OpenDuplicatePolicyPageParams';
2424
export type {default as ConnectPolicyToAccountingIntegrationParams} from './ConnectPolicyToAccountingIntegrationParams';
2525
export type {default as ConnectPolicyToGustoParams} from './ConnectPolicyToGustoParams';
26+
export type {default as ConnectPolicyToZenefitsParams} from './ConnectPolicyToZenefitsParams';
2627
export type {default as OpenPolicyProfilePageParams} from './OpenPolicyProfilePageParams';
2728
export type {default as OpenPolicyInitialPageParams} from './OpenPolicyInitialPageParams';
2829
export type {default as SyncPolicyToGustoParams} from './SyncPolicyToGustoParams';
30+
export type {default as SyncPolicyToZenefitsParams} from './SyncPolicyToZenefitsParams';
2931
export type {default as SyncPolicyToQuickbooksOnlineParams} from './SyncPolicyToQuickbooksOnlineParams';
3032
export type {default as SyncPolicyToXeroParams} from './SyncPolicyToXeroParams';
3133
export type {default as SyncPolicyToNetSuiteParams} from './SyncPolicyToNetSuiteParams';
@@ -250,6 +252,8 @@ export type {default as EnablePolicyReportFieldsParams} from './EnablePolicyRepo
250252
export type {default as EnablePolicyExpensifyCardsParams} from './EnablePolicyExpensifyCardsParams';
251253
export type {default as UpdateGustoApprovalModeParams} from './UpdateGustoApprovalModeParams';
252254
export type {default as UpdateGustoFinalApproverParams} from './UpdateGustoFinalApproverParams';
255+
export type {default as UpdateZenefitsApprovalModeParams} from './UpdateZenefitsApprovalModeParams';
256+
export type {default as UpdateZenefitsFinalApproverParams} from './UpdateZenefitsFinalApproverParams';
253257
export type {default as AcceptJoinRequestParams} from './AcceptJoinRequest';
254258
export type {default as DeclineJoinRequestParams} from './DeclineJoinRequest';
255259
export type {default as JoinPolicyInviteLinkParams} from './JoinPolicyInviteLink';

src/libs/API/types.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,8 @@ const WRITE_COMMANDS = {
387387
UPGRADE_TO_CORPORATE: 'UpgradeToCorporate',
388388
UPDATE_GUSTO_APPROVAL_MODE: 'UpdateGustoApprovalMode',
389389
UPDATE_GUSTO_FINAL_APPROVER: 'UpdateGustoFinalApprover',
390+
UPDATE_ZENEFITS_APPROVAL_MODE: 'UpdateZenefitsApprovalMode',
391+
UPDATE_ZENEFITS_FINAL_APPROVER: 'UpdateZenefitsFinalApprover',
390392
DOWNGRADE_TO_TEAM: 'Policy_DowngradeToTeam',
391393
REJECT_MONEY_REQUEST_IN_BULK: 'RejectMoneyRequestInBulk',
392394
APPROVE_MONEY_REQUEST_ON_SEARCH: 'ApproveMoneyRequestOnSearch',
@@ -995,6 +997,8 @@ type WriteCommandParameters = {
995997
[WRITE_COMMANDS.SET_PROMO_CODE]: Parameters.SetPromoCodeParams;
996998
[WRITE_COMMANDS.UPDATE_GUSTO_APPROVAL_MODE]: Parameters.UpdateGustoApprovalModeParams;
997999
[WRITE_COMMANDS.UPDATE_GUSTO_FINAL_APPROVER]: Parameters.UpdateGustoFinalApproverParams;
1000+
[WRITE_COMMANDS.UPDATE_ZENEFITS_APPROVAL_MODE]: Parameters.UpdateZenefitsApprovalModeParams;
1001+
[WRITE_COMMANDS.UPDATE_ZENEFITS_FINAL_APPROVER]: Parameters.UpdateZenefitsFinalApproverParams;
9981002
[WRITE_COMMANDS.REQUEST_TAX_EXEMPTION]: null;
9991003
[WRITE_COMMANDS.GET_CORPAY_BANK_ACCOUNT_FIELDS]: Parameters.GetCorpayBankAccountFieldsParams;
10001004
[WRITE_COMMANDS.SAVE_CORPAY_ONBOARDING_BENEFICIAL_OWNER]: Parameters.SaveCorpayOnboardingBeneficialOwnerParams;
@@ -1216,12 +1220,14 @@ const READ_COMMANDS = {
12161220
CONNECT_POLICY_TO_QUICKBOOKS_ONLINE: 'ConnectPolicyToQuickbooksOnline',
12171221
CONNECT_POLICY_TO_XERO: 'ConnectPolicyToXero',
12181222
CONNECT_POLICY_TO_GUSTO: 'ConnectPolicyToGusto',
1223+
CONNECT_POLICY_TO_ZENEFITS: 'ConnectPolicyToZenefits',
12191224
SYNC_POLICY_TO_QUICKBOOKS_ONLINE: 'SyncPolicyToQuickbooksOnline',
12201225
SYNC_POLICY_TO_XERO: 'SyncPolicyToXero',
12211226
SYNC_POLICY_TO_NETSUITE: 'SyncPolicyToNetSuite',
12221227
SYNC_POLICY_TO_SAGE_INTACCT: 'SyncPolicyToSageIntacct',
12231228
SYNC_POLICY_TO_QUICKBOOKS_DESKTOP: 'SyncPolicyToQuickbooksDesktop',
12241229
SYNC_POLICY_TO_GUSTO: 'SyncPolicyToGusto',
1230+
SYNC_POLICY_TO_ZENEFITS: 'SyncPolicyToZenefits',
12251231
OPEN_REIMBURSEMENT_ACCOUNT_PAGE: 'OpenReimbursementAccountPage',
12261232
OPEN_WORKSPACE_VIEW: 'OpenWorkspaceView',
12271233
GET_MAPBOX_ACCESS_TOKEN: 'GetMapboxAccessToken',
@@ -1312,12 +1318,14 @@ type ReadCommandParameters = {
13121318
[READ_COMMANDS.CONNECT_POLICY_TO_QUICKBOOKS_ONLINE]: Parameters.ConnectPolicyToAccountingIntegrationParams;
13131319
[READ_COMMANDS.CONNECT_POLICY_TO_XERO]: Parameters.ConnectPolicyToAccountingIntegrationParams;
13141320
[READ_COMMANDS.CONNECT_POLICY_TO_GUSTO]: Parameters.ConnectPolicyToGustoParams;
1321+
[READ_COMMANDS.CONNECT_POLICY_TO_ZENEFITS]: Parameters.ConnectPolicyToZenefitsParams;
13151322
[READ_COMMANDS.SYNC_POLICY_TO_QUICKBOOKS_ONLINE]: Parameters.SyncPolicyToQuickbooksOnlineParams;
13161323
[READ_COMMANDS.SYNC_POLICY_TO_XERO]: Parameters.SyncPolicyToXeroParams;
13171324
[READ_COMMANDS.SYNC_POLICY_TO_NETSUITE]: Parameters.SyncPolicyToNetSuiteParams;
13181325
[READ_COMMANDS.SYNC_POLICY_TO_SAGE_INTACCT]: Parameters.SyncPolicyToNetSuiteParams;
13191326
[READ_COMMANDS.SYNC_POLICY_TO_QUICKBOOKS_DESKTOP]: Parameters.SyncPolicyToQuickbooksDesktopParams;
13201327
[READ_COMMANDS.SYNC_POLICY_TO_GUSTO]: Parameters.SyncPolicyToGustoParams;
1328+
[READ_COMMANDS.SYNC_POLICY_TO_ZENEFITS]: Parameters.SyncPolicyToZenefitsParams;
13211329
[READ_COMMANDS.OPEN_REIMBURSEMENT_ACCOUNT_PAGE]: Parameters.OpenReimbursementAccountPageParams;
13221330
[READ_COMMANDS.OPEN_WORKSPACE_VIEW]: Parameters.OpenWorkspaceViewParams;
13231331
[READ_COMMANDS.GET_MAPBOX_ACCESS_TOKEN]: null;

src/libs/AccountingUtils.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const ROUTE_NAME_MAPPING = {
1010
[CONST.POLICY.CONNECTIONS.ROUTE.QBD]: CONST.POLICY.CONNECTIONS.NAME.QBD,
1111
[CONST.POLICY.CONNECTIONS.ROUTE.CERTINIA]: CONST.POLICY.CONNECTIONS.NAME.CERTINIA,
1212
[CONST.POLICY.CONNECTIONS.ROUTE.GUSTO]: CONST.POLICY.CONNECTIONS.NAME.GUSTO,
13+
[CONST.POLICY.CONNECTIONS.ROUTE.ZENEFITS]: CONST.POLICY.CONNECTIONS.NAME.ZENEFITS,
1314
};
1415

1516
const NAME_ROUTE_MAPPING = {
@@ -20,6 +21,7 @@ const NAME_ROUTE_MAPPING = {
2021
[CONST.POLICY.CONNECTIONS.NAME.QBD]: CONST.POLICY.CONNECTIONS.ROUTE.QBD,
2122
[CONST.POLICY.CONNECTIONS.NAME.CERTINIA]: CONST.POLICY.CONNECTIONS.ROUTE.CERTINIA,
2223
[CONST.POLICY.CONNECTIONS.NAME.GUSTO]: CONST.POLICY.CONNECTIONS.ROUTE.GUSTO,
24+
[CONST.POLICY.CONNECTIONS.NAME.ZENEFITS]: CONST.POLICY.CONNECTIONS.ROUTE.ZENEFITS,
2325
};
2426

2527
const STANDARD_EXPORT_TEMPLATE_NAME_MAPPING = {

0 commit comments

Comments
 (0)