Skip to content

Commit 2e42831

Browse files
committed
fix: resolve conflicts
2 parents 7d09097 + 1503058 commit 2e42831

92 files changed

Lines changed: 1257 additions & 1384 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/actionlint.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ self-hosted-runner:
1010
paths:
1111
'**/*':
1212
ignore:
13-
# This is meant to be a temporary workaround for a bug in actionslint. Upstream:
13+
# This is meant to be a temporary workaround for a bug in actionlint. Upstream:
1414
# - issue: https://github.com/rhysd/actionlint/issues/511
1515
# - PR: https://github.com/rhysd/actionlint/pull/513
1616
- '"env" is not allowed in "runs" section because .* is a Composite action.*'

.github/actions/javascript/postTestBuildComment/index.js

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11515,11 +11515,21 @@ function getTestBuildMessage(appPr, mobileExpensifyPr) {
1151511515
acc[platform] = { link: 'N/A', qrCode: 'N/A' };
1151611516
return acc;
1151711517
}
11518-
const isSuccess = input === 'success';
11519-
const link = isSuccess ? core.getInput(`${platform}_LINK`) : '❌ FAILED ❌';
11520-
const qrCode = isSuccess
11521-
? `![${names[platform]}](https://api.qrserver.com/v1/create-qr-code/?size=120x120&data=${link})`
11522-
: `The QR code can't be generated, because the ${names[platform]} build failed`;
11518+
let link = '';
11519+
let qrCode = '';
11520+
switch (input) {
11521+
case 'success':
11522+
link = core.getInput(`${platform}_LINK`);
11523+
qrCode = `![${names[platform]}](https://api.qrserver.com/v1/create-qr-code/?size=120x120&data=${link})`;
11524+
break;
11525+
case 'skipped':
11526+
link = '⏩ SKIPPED ⏩';
11527+
qrCode = `The build for ${names[platform]} was skipped`;
11528+
break;
11529+
default:
11530+
link = '❌ FAILED ❌';
11531+
qrCode = `The QR code can't be generated, because the ${names[platform]} build failed`;
11532+
}
1152311533
acc[platform] = {
1152411534
link,
1152511535
qrCode,
@@ -11532,12 +11542,12 @@ Built from${appPr ? ` App PR Expensify/App#${appPr}` : ''}${mobileExpensifyPr ?
1153211542
| ------------- | ------------- |
1153311543
| ${result.ANDROID.link} | ${result.IOS.link} |
1153411544
| ${result.ANDROID.qrCode} | ${result.IOS.qrCode} |
11535-
${appPr
11536-
? `\n| Desktop :computer: | Web :spider_web: |
11545+
11546+
| Desktop :computer: | Web :spider_web: |
1153711547
| ------------- | ------------- |
1153811548
| ${result.DESKTOP.link} | ${result.WEB.link} |
11539-
| ${result.DESKTOP.qrCode} | ${result.WEB.qrCode} |\n`
11540-
: ''}
11549+
| ${result.DESKTOP.qrCode} | ${result.WEB.qrCode} |
11550+
1154111551
---
1154211552

1154311553
:eyes: [View the workflow run that generated this build](https://github.com/${github_1.context.repo.owner}/${github_1.context.repo.repo}/actions/runs/${github_1.context.runId}) :eyes:

.github/actions/javascript/postTestBuildComment/postTestBuildComment.ts

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,21 @@ function getTestBuildMessage(appPr?: number, mobileExpensifyPr?: number): string
2222
return acc;
2323
}
2424

25-
const isSuccess = input === 'success';
26-
27-
const link = isSuccess ? core.getInput(`${platform}_LINK`) : '❌ FAILED ❌';
28-
const qrCode = isSuccess
29-
? `![${names[platform]}](https://api.qrserver.com/v1/create-qr-code/?size=120x120&data=${link})`
30-
: `The QR code can't be generated, because the ${names[platform]} build failed`;
25+
let link = '';
26+
let qrCode = '';
27+
switch (input) {
28+
case 'success':
29+
link = core.getInput(`${platform}_LINK`);
30+
qrCode = `![${names[platform]}](https://api.qrserver.com/v1/create-qr-code/?size=120x120&data=${link})`;
31+
break;
32+
case 'skipped':
33+
link = '⏩ SKIPPED ⏩';
34+
qrCode = `The build for ${names[platform]} was skipped`;
35+
break;
36+
default:
37+
link = '❌ FAILED ❌';
38+
qrCode = `The QR code can't be generated, because the ${names[platform]} build failed`;
39+
}
3140

3241
acc[platform] = {
3342
link,
@@ -44,14 +53,12 @@ Built from${appPr ? ` App PR Expensify/App#${appPr}` : ''}${mobileExpensifyPr ?
4453
| ------------- | ------------- |
4554
| ${result.ANDROID.link} | ${result.IOS.link} |
4655
| ${result.ANDROID.qrCode} | ${result.IOS.qrCode} |
47-
${
48-
appPr
49-
? `\n| Desktop :computer: | Web :spider_web: |
56+
57+
| Desktop :computer: | Web :spider_web: |
5058
| ------------- | ------------- |
5159
| ${result.DESKTOP.link} | ${result.WEB.link} |
52-
| ${result.DESKTOP.qrCode} | ${result.WEB.qrCode} |\n`
53-
: ''
54-
}
60+
| ${result.DESKTOP.qrCode} | ${result.WEB.qrCode} |
61+
5562
---
5663
5764
:eyes: [View the workflow run that generated this build](https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}) :eyes:

.github/workflows/deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ jobs:
273273
attachments: [{
274274
color: "#DB4545",
275275
pretext: `<!subteam^S4TJJ3PSL>`,
276-
text: `💥 Android HybridApp production <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|deploy run> failed. Please <https://stackoverflowteams.com/c/expensify/questions/5738|manually submit> ${{ needs.prep.outputs.APP_VERSION }} in the <https://play.google.com/console/u/0/developers/8765590895836334604/app/4974129597497161901/releases/overview|Google Play Store>. 💥 But first check the workflow, it's likely that the release was successful and <https://github.com/Expensify/Expensify/issues/488492|this error> is occuring)`,
276+
text: `💥 Android HybridApp production <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|deploy run> failed. Please <https://stackoverflowteams.com/c/expensify/questions/5738|manually submit> ${{ needs.prep.outputs.APP_VERSION }} in the <https://play.google.com/console/u/0/developers/8765590895836334604/app/4974129597497161901/releases/overview|Google Play Store> 💥`,
277277
}]
278278
}
279279
env:

.github/workflows/testBuild.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ jobs:
8080
outputs:
8181
MOBILE_EXPENSIFY_PR: ${{ steps.mobileExpensifyPR.outputs.result }}
8282
steps:
83-
- name: Check if author specifed Expensify/Mobile-Expensify PR
83+
- name: Check if author specified Expensify/Mobile-Expensify PR
8484
id: mobileExpensifyPR
8585
# v7
8686
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea

Mobile-Expensify

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,8 @@ android {
114114
minSdkVersion rootProject.ext.minSdkVersion
115115
targetSdkVersion rootProject.ext.targetSdkVersion
116116
multiDexEnabled rootProject.ext.multiDexEnabled
117-
versionCode 1009016200
118-
versionName "9.1.62-0"
117+
versionCode 1009016301
118+
versionName "9.1.63-1"
119119
// Supported language variants must be declared here to avoid from being removed during the compilation.
120120
// This also helps us to not include unnecessary language variants in the APK.
121121
resConfigs "en", "es"

config/webpack/webpack.common.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ const includeModules = [
4343
'expo-av',
4444
'expo-image-manipulator',
4545
'expo-modules-core',
46-
'react-native-webrtc-web-shim',
4746
].join('|');
4847

4948
const environmentToLogoSuffixMap: Record<string, string> = {

cspell.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -644,6 +644,7 @@
644644
"xdescribe",
645645
"xero",
646646
"Xfermode",
647+
"xlarge",
647648
"xlink",
648649
"xmlgateway",
649650
"Xours",
Lines changed: 78 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,107 @@
11
---
22
title: Configure QuickBooks Online
33
description: Configure your QuickBooks Online connection with Expensify.
4-
keywords: [QuickBooks Online, Expensify integration, accounting settings, import settings, export settings]
4+
keywords: [New Expensify, QuickBooks Online, Expensify integration, accounting settings, import settings, export settings]
55
---
66

7-
Connecting QuickBooks Online to Expensify optimizes expense tracking and reporting for employees and admins alike. This guide walks you through configuring your import, export, and advanced settings for optimal performance.
7+
<div id="new-expensify" markdown="1">
8+
9+
Connecting QuickBooks Online to Expensify helps streamline expense tracking and financial reporting for admins and employees. This guide walks you through how to configure import, export, and advanced settings for the QuickBooks Online integration.
810

911
---
1012

1113
# Step 1: Configure Import Settings
1214

13-
The following steps help you determine how data will be imported from QuickBooks Online to Expensify.
15+
To choose how data is imported from QuickBooks Online to Expensify:
16+
17+
1. From the left-hand menu, go to **Workspaces > [Workspace Name] > Accounting > QuickBooks Online**
18+
2. Click **Import** under the QuickBooks Online connection
19+
3. Review and adjust each of the following:
20+
21+
- **Chart of accounts**: Automatically imported as categories. This setting cannot be changed.
22+
- **Classes**: Import as tags to allow expense-level coding.
23+
- **Customers/Projects**: Import as tags for expense-level coding.
24+
- **Locations**: Import as tags.
25+
- Note: If you import locations, you won’t be able to export as vendor bills or checks unless you upgrade to the **Control** plan.
26+
- **Taxes**: Import tax rates and defaults.
27+
28+
## How to Turn Imported Accounts and Tags Off
1429

15-
1. Under the **Accounting settings** for your workspace, click **Import** under the QuickBooks Online connection.
16-
2. Review each of the following import settings:
17-
- **Chart of Accounts**: Imported automatically as categories. This cannot be amended.
18-
- **Classes**: Import classes as tags for expense-level coding.
19-
- **Customers/Projects**: Import customers/projects as tags for expense-level coding.
20-
- **Locations**: Import locations as tags for expense-level coding
21-
- **Note:** Locations are only configurable as tags, so you cannot export expense reports as vendor bills or checks. To unlock these options, disable locations import or upgrade to the Control Plan.
22-
- **Taxes**: Import tax rates and defaults.
23-
3. **Disable Imported Accounts and Tags** (if needed):
24-
- Toggle individual items on/off using the switch on the right side of each row.
25-
- To disable multiple items at once, select multiple checkboxes and click **Disable** at the top of the page.
30+
- Use the toggle on each row to disable individual items
31+
- To disable multiple items at once, select them using checkboxes and click **Disable** at the top
32+
33+
---
2634

2735
# Step 2: Configure Export Settings
2836

29-
The following steps help you determine how data will be exported from Expensify to QuickBooks Online.
30-
31-
1. Under the **Accounting settings** for your workspace, click **Export** under the QuickBooks Online connection.
32-
2. Review each of the following export settings:
33-
- **Preferred Exporter**: Assign a **Workspace Admin** to automate report exports.
34-
- **Note:** Other Workspace Admins can still export to QuickBooks Online. If you set different export accounts for company cards under domain settings, the Preferred Exporter must be a **Domain Admin**.
35-
- **Date**: Please use the date of the last expense, export date, or submitted date.
36-
- **Export Out-of-Pocket Expenses as**: Select check, journal entry, or vendor bill.
37-
- If tax is **not** enabled, select an **Accounts Payable/AP**.
38-
- If tax **is** enabled, exporting as journal entries is not available. If enabled later, an error message will appear until the export setting is changed to **vendor bill** or **check**.
39-
- **Invoices**: Select the QuickBooks Online invoice account where invoices will be exported.
40-
- **Export Company Cards**: Export as **credit card** (default), **debit card**, or **vendor bill**. If selecting **vendor bill**:
41-
- Choose the **accounts payable account** that vendor bills will be created from.
42-
- Optionally, set a **default vendor** for credit card transactions.
37+
To choose how data is exported from Expensify to QuickBooks Online:
38+
39+
1. From the left-hand menu, go to **Workspaces > [Workspace Name] > Accounting > QuickBooks Online**
40+
2. Click **Export** under the QuickBooks Online connection
41+
3. Configure the following settings:
42+
43+
- **Preferred exporter**: Select a workspace admin for automatic exports
44+
- Note: If card exports are controlled by domain settings, the preferred exporter must be a **Domain Admin**
45+
- **Export date**: Choose from:
46+
- Date of last expense
47+
- Submitted date
48+
- Export date
49+
- **Export out-of-pocket expenses as**:
50+
- Check
51+
- Vendor bill
52+
- Journal entry
53+
- If **tax is not enabled**, you must select an **Accounts Payable (AP)** account
54+
- If **tax is enabled**, journal entry exports will not be allowed. You must use check or vendor bill
55+
- **Invoices**: Choose the QuickBooks invoice account to use
56+
- **Export company card expenses as**:
57+
- Credit card (default)
58+
- Debit card
59+
- Vendor bill
60+
- If exporting as vendor bills, select the AP account and optionally a default vendor
61+
62+
---
4363

4464
# Step 3: Configure Advanced Settings
4565

46-
These steps help you determine additional connection settings like auto-sync and employee invitation settings.
66+
To manage automation and other connection preferences:
67+
68+
1. From the left-hand menu, go to **Workspaces > [Workspace Name] > Accounting > QuickBooks Online**
69+
2. Click **Advanced** under the QuickBooks Online connection
70+
3. Configure the following:
4771

48-
1. Under the **Accounting settings** for your workspace, click **Advanced** under the QuickBooks Online connection.
49-
2. Select an option for each of the following settings:
50-
- **Auto-Sync**: Enable automatic updates between QuickBooks Online and Expensify.
51-
- **Invite Employees**: Allow Expensify to import and invite employees from QuickBooks Online.
52-
- **Automatically Create Entities**: Enable Expensify to create vendors/customers in QuickBooks Online if a match does not exist.
53-
- **Sync Reimbursed Reports**: If enabled, reports marked as **Paid** in QuickBooks Online will also be marked as **Paid** in Expensify.
54-
- **Invoice Collection Account**: Select the invoice collection account where invoices will be stored once marked as paid.
72+
- **Auto-sync**: Automatically updates data between QuickBooks Online and Expensify
73+
- **Invite employees**: Imports and invites employees from QuickBooks Online
74+
- **Automatically create entities**: If a vendor/customer doesn’t exist, Expensify will create one
75+
- **Sync reimbursed reports**:
76+
- If marked as paid in QuickBooks Online, the report will show as reimbursed in Expensify
77+
- If reimbursed via ACH in Expensify, the status will sync to paid in QuickBooks
78+
- **Invoice collection account**: Select where paid invoices are stored
5579

5680
---
5781

5882
# FAQ
5983

60-
## How do I know if a report is successfully exported to QuickBooks Online?
84+
# How do I know if a report is exported successfully?
85+
86+
A message confirming the export will be posted in the chat for the corresponding report.
87+
88+
# What if I manually export a report that was already exported?
89+
90+
Expensify will alert you before re-exporting. If you choose to proceed, a duplicate report will appear in QuickBooks Online.
91+
92+
# Will enabling Auto Sync affect existing reports?
6193

62-
When a report exports successfully, a message is posted in the expense’s related chat room:
94+
No. Only newly approved reports will auto-export. Any old reports must be manually exported.
6395

64-
![Confirmation message posted in the expense chat room](https://help.expensify.com/assets/images/QBO_help_01.png){:width="100%"}
96+
# What happens when reimbursed reports are synced?
6597

66-
## What happens if I manually export a report that has already been exported?
98+
- Reports reimbursed via ACH in Expensify will show as **Paid** in QuickBooks Online
99+
- Reports marked **Paid** in QuickBooks Online will update to **Reimbursed** in Expensify during the next sync
67100

68-
Expensify will notify you if the report has already been exported. Re-exporting will create a duplicate report in QuickBooks Online.
101+
# Why can't I export reports as vendor bills or checks?
69102

70-
## What happens to existing approved and reimbursed reports if I enable Auto Sync?
103+
This is likely due to the **Locations** import setting. Locations can only be used as tags. To unlock vendor bill and check exports:
104+
- Turn off location imports
105+
- Or upgrade to the **Control** plan
71106

72-
- If **Auto Sync was disabled** when linking QuickBooks Online, enabling it won’t impact existing reports that haven’t been exported.
73-
- If a report has been exported and **reimbursed via ACH**, it will be marked as **Paid** in QuickBooks Online during the next sync.
74-
- If a report has been exported and **marked as Paid** in QuickBooks Online, it will be marked as **Reimbursed** in Expensify during the next sync.
75-
- Reports that have not yet been exported **will not** be automatically exported when enabling Auto Sync.
107+
</div>

0 commit comments

Comments
 (0)