Expensify / App

Welcome to New Expensify: a complete re-imagination of financial collaboration, centered around chat. Help us build the next generation of Expensify by sharing feedback and contributing to the code.
https://new.expensify.com
MIT License
3.3k stars 2.74k forks source link

[HOLD for payment 2024-08-29] [QBO Export] [$250] Display QBO auto-sync errors and RBRs in NewDot #44016

Open arosiclair opened 2 months ago

arosiclair commented 2 months ago

Part of QBO Export and Error Handling in NewDot

Main issue: https://github.com/Expensify/Expensify/issues/350150 Doc section: https://docs.google.com/document/d/1aQl-AK_F6IqszWYG2aEllTsD5x3h4b8Zu0XEG0LuQ08/edit#heading=h.pmmx5zp5s75j Project: #wave-collect

Feature Description

As described in the doc, we need to display a RBR when there are errors in a policy connection’s last sync.

The RBR will show on the path to the integration connection settings (Avatar > Workspaces > [Workspace name] > Accounting > Connections):

When the error is a credentials error (policy.connection.lastSync.isAuthenticationError is true), we’ll replace the ‘Sync now’ option in the connection’s 3-dot menu with a ‘Reconnect’ option here. The option will restart the Quickbooks Auth flow as described in our initial QBO doc.

Manual Test Steps

Prerequisites

Steps

  1. Log into QBO and disconnect the Expensify app (Menu > Apps > Overview > Expensify 3-dot menu > Disconnect)
  2. Log into NewDot as the admin
  3. Verify there's a RBR on the path: Avatar > Workspaces > [Workspace name] > Accounting > QBO
  4. Verify a red error message appears on the connection explaining the issue
  5. Select QBO’s 3-dot menu
  6. Verify there’s a “Enter credentials” option
  7. Select “Enter credentials”
  8. Verify a new window opens to log into QBO

Automated Tests

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~01cc92666d46e99569
  • Upwork Job ID: 1803462924011290436
  • Last Price Increase: 2024-06-19
Issue OwnerCurrent Issue Owner: @muttmuure
melvin-bot[bot] commented 2 months ago

Job added to Upwork: https://www.upwork.com/jobs/~01cc92666d46e99569

melvin-bot[bot] commented 2 months ago

Triggered auto assignment to Contributor-plus team member for initial proposal review - @ishpaul777 (External)

melvin-bot[bot] commented 2 months ago

Triggered auto assignment to @puneetlath (NewFeature), see https://stackoverflowteams.com/c/expensify/questions/14418#:~:text=BugZero%20process%20steps%20for%20feature%20requests for more details. Please add this Feature request to a GH project, as outlined in the SO.

melvin-bot[bot] commented 2 months ago

:warning: It looks like this issue is labelled as a New Feature but not tied to any GitHub Project. Keep in mind that all new features should be tied to GitHub Projects in order to properly track external CAP software time :warning:

melvin-bot[bot] commented 2 months ago

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

ishpaul777 commented 2 months ago

weekly update: Still held on https://github.com/Expensify/App/issues/44015

lakchote commented 1 month ago

Not held on https://github.com/Expensify/App/issues/44015 anymore.

arosiclair commented 1 month ago

Everything's deployed so this should be all set

arosiclair commented 1 month ago

Woops wrong issue 😅

arosiclair commented 1 month ago

I posted https://github.com/Expensify/Integration-Server/pull/8040 to fix the issue with errors in manual sync jobs not getting pushed to NewDot. I also noticed another issue with successful sync data not getting pushed and posted https://github.com/Expensify/Auth/pull/11925 to fix it. Hopefully we can get these out in the next couple days.

melvin-bot[bot] commented 3 weeks ago

⚠️ Looks like this issue was linked to a Deploy Blocker here

If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.

If a regression has occurred and you are the assigned CM follow the instructions here.

If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.

arosiclair commented 2 weeks ago

https://github.com/Expensify/App/pull/45251 is merged and on its way to staging.

melvin-bot[bot] commented 2 weeks ago

Triggered auto assignment to @muttmuure (NewFeature), see https://stackoverflowteams.com/c/expensify/questions/14418#:~:text=BugZero%20process%20steps%20for%20feature%20requests for more details. Please add this Feature request to a GH project, as outlined in the SO.

arosiclair commented 2 weeks ago

I believe this will only need payment for @hungvu193's C+ reviews on these two PRs:

but that's after deploy and the regression period.

melvin-bot[bot] commented 2 weeks ago

The solution for this issue has been :rocket: deployed to production :rocket: in version 9.0.23-0 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

If no regressions arise, payment will be issued on 2024-08-29. :confetti_ball:

For reference, here are some details about the assignees on this issue:

melvin-bot[bot] commented 2 weeks ago

BugZero Checklist: The PR adding this new feature has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

melvin-bot[bot] commented 1 week ago

Payment Summary

Upwork Job

BugZero Checklist (@muttmuure)

hungvu193 commented 1 week ago

Regression test:

Prerequisites:

Steps:

  1. Log into QBO (Xero) and disconnect the Expensify app: Menu > Apps > Overview > Expensify 3-dot menu > Disconnect (Xero: 9 dots menu > Manage app connections -> Disconnect)
  2. Log into NewDot as the admin
  3. Verify there's an RBR on the path: Avatar > Workspaces > [Workspace name] > Accounting > QBO (Xero)
  4. Verify a red error message appears on the connection explaining the issue
  5. Select QBO's (Xero's) 3-dot menu
  6. Verify there’s a “Enter credentials” option
  7. Select “Enter credentials”
  8. Verify a new window opens to log into QBO (Xero)
  9. Enter the credentials and verify that you can connect to QBO (Xero) successfully.

Change integration:

  1. Go to Accounting settings.
  2. Open Other integrations.
  3. Press connect.
  4. Verify there is a confirmation modal.
  5. Verify the flow is running correctly after pressing Confirm.
  6. Verify new integration connection
  7. All Connect buttons and integration flows were refactored. Verify that it is possible to add each integration:
hungvu193 commented 1 week ago

Based on the scope that was added to https://github.com/Expensify/App/pull/45251, Can I request a raise for the bounty of this issue 😄 ?

melvin-bot[bot] commented 5 days ago

@arosiclair, @hungvu193, @muttmuure Huh... This is 4 days overdue. Who can take care of this?

muttmuure commented 4 days ago

reviewing this tomorrow

muttmuure commented 1 day ago

How many PRs did you review in total?

hungvu193 commented 1 day ago

We have 2 PRs:

The first one (https://github.com/Expensify/App/pull/45251) is a big PR, and we also added a lot of reactors to reuse the code.

muttmuure commented 5 hours ago

Would $750 be about right?

hungvu193 commented 5 hours ago

Yes. Lovely 💪