Skip to content

[Certinia] R2 PSA: Import page (PSA branch) and CertiniaTagsMappingPage #89439

Closed

Description

@yuwenmemon

Parent: Expensify/Expensify#589894
Design doc: https://docs.google.com/document/d/1qQXU4EIij-OyCpk6z8idi0ch0rP4XtIQ0770STZeF5E/edit

Scope

Branch CertiniaImportPage to render PSA content when hasPSA === true, and create the new CertiniaTagsMappingPage reached from the new Tags push row.

Implementation notes (from design doc)

CertiniaImportPage.tsx — Add PSA conditional rendering

Read const hasPSA = policy?.connections?.financialForce?.config?.hasPSA. When hasPSA === true, render PSA content instead of FFA content:

  1. Expense Type GLA Mappings (locked): ToggleSettingOptionRow with isActive={true}, disabled={true}. Subtitle: "FinancialForce Expense Type GLA Mappings are imported into Expensify as categories."
  2. Tags: MenuItemWithTopDescription → POLICY_ACCOUNTING_CERTINIA_TAGS_MAPPING.getRoute(policyID). title = translated label for config?.coding?.parentTagMapping.
  3. Milestones: ToggleSettingOptionRow. isActive={!!config?.coding?.syncMilestones}. onToggle={(enabled) => updateFinancialForceSyncMilestones(policyID, enabled)}.

No Tax toggle for PSA.

src/pages/workspace/accounting/certinia/import/CertiniaTagsMappingPage.tsx — Create

SelectionScreen with RadioListItem. Three options:

  • 'PARENT_TAG_PROJECTS_AND_ASSIGNMENTS' → "Projects and Assignments"
  • 'PARENT_TAG_PROJECTS' → "Projects"
  • 'PARENT_TAG_ASSIGNMENTS' → "Assignments"

Active value: config?.coding?.parentTagMapping. Calls updateFinancialForceParentTagMapping(policyID, value).

Tests

  • PSA workspace (hasPSA === true): import page shows locked Expense Type GLA Mappings toggle, Tags push row, Milestones toggle — no Dimension rows, no Tax toggle.
  • FFA workspace: import page renders the original Release 1 content unchanged.
  • Tags Mapping page shows 3 radio options; selecting one updates the source page subtitle optimistically and reverts on simulated failure.
  • Milestones toggle fires the action with pending indicator and reverts on failure.
Issue OwnerCurrent Issue Owner: @ShridharGoel

Activity

  1. melvin-bot commented on May 2, 2026

    @melvin-bot

    Triggered auto assignment to Design team member for new feature review - @shawnborton (NewFeature)

  2. changed the title [-]R2 PSA: Import page (PSA branch) and CertiniaTagsMappingPage[/-] [+][Certinia] R2 PSA: Import page (PSA branch) and CertiniaTagsMappingPage[/+] on May 5, 2026
  3. melvin-bot commented on May 5, 2026

    @melvin-bot

    @ChavdaSachin Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

  4. melvin-bot commented on May 7, 2026

    @melvin-bot

    @ChavdaSachin Huh... This is 4 days overdue. Who can take care of this?

  5. melvin-bot commented on May 11, 2026

    @melvin-bot

    @ChavdaSachin 8 days overdue is a lot. Should this be a Weekly issue? If so, feel free to change it!

  6. melvin-bot commented on May 13, 2026

    @melvin-bot

    @ChavdaSachin 10 days overdue. Is anyone even seeing these? Hello?

  7. 34 remaining items

  8. melvin-bot commented on Jul 1, 2026

    @melvin-bot

    Payment Summary

    Upwork Job

    BugZero Checklist (@mallenexpensify)

    • I have verified the correct assignees and roles are listed above and updated the necessary manual offers
    • I have verified that there are no duplicate or incorrect contracts on Upwork for this job (https://www.upwork.com/ab/applicants//hired)
    • I have verified the PR was not reverted
    • I have applied any discounts due to bugs/regressions introduced by this PR
    • I have paid out the Upwork contracts or cancelled the ones that are incorrect
    • I have verified the payment summary above is correct
  9. changed the title [-][Due for payment 2026-07-02] [Certinia] R2 PSA: Import page (PSA branch) and CertiniaTagsMappingPage[/-] [+][Certinia] R2 PSA: Import page (PSA branch) and CertiniaTagsMappingPage[/+] on Jul 3, 2026
  10. removed their assignment
    on Jul 3, 2026
  11. added
    Skip PaymentSkips all the payment process steps for an issue. Use it for fixed-price projects.
    and removed
    Awaiting PaymentAuto-added when associated PR is deployed to production
    on Jul 3, 2026
  12. mallenexpensify commented on Jul 3, 2026

    @mallenexpensify
    Contributor

    Added Skip Payment label, please comment and tag me if/when payment is due, thx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

DailyKSv2EngineeringNewFeatureSomething to build that is a new item.Skip PaymentSkips all the payment process steps for an issue. Use it for fixed-price projects.

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions