Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into fix/45851-archive-ws
Browse files Browse the repository at this point in the history
  • Loading branch information
dominictb committed Aug 1, 2024
2 parents 195691e + 73f97c9 commit fc18140
Show file tree
Hide file tree
Showing 131 changed files with 1,839 additions and 876 deletions.
3 changes: 3 additions & 0 deletions .github/actions/javascript/getReleaseBody/action.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
name: 'Get Release Body'
description: 'Generate the body of a production release'
inputs:
GITHUB_TOKEN:
description: Auth token for New Expensify Github
required: true
PR_LIST:
description: JSON array of pull request numbers (string)
required: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/createNewVersion.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:

steps:
- name: Run turnstyle
uses: softprops/turnstyle@ca99add00ff0c9cbc697d22631d2992f377e5bd5
uses: softprops/turnstyle@49108bdfa571e62371bd2c3094893c547ab3fc03
with:
poll-interval-seconds: 10
env:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ jobs:
id: getReleaseBody
uses: ./.github/actions/javascript/getReleaseBody
with:
GITHUB_TOKEN: ${{ github.token }}
PR_LIST: ${{ steps.getReleasePRList.outputs.PR_LIST }}

- name: 🚀 Create release to trigger production deploy 🚀
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/preDeploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Run turnstyle
uses: softprops/turnstyle@ca99add00ff0c9cbc697d22631d2992f377e5bd5
uses: softprops/turnstyle@49108bdfa571e62371bd2c3094893c547ab3fc03
with:
poll-interval-seconds: 10
env:
Expand Down
12 changes: 6 additions & 6 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ GEM
escape (0.0.4)
ethon (0.16.0)
ffi (>= 1.15.0)
excon (0.110.0)
excon (0.111.0)
faraday (1.10.3)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
Expand All @@ -111,15 +111,15 @@ GEM
faraday-httpclient (1.0.1)
faraday-multipart (1.0.4)
multipart-post (~> 2)
faraday-net_http (1.0.1)
faraday-net_http (1.0.2)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
faraday-retry (1.0.3)
faraday_middleware (1.2.0)
faraday (~> 1.0)
fastimage (2.3.1)
fastlane (2.221.1)
fastlane (2.222.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
Expand Down Expand Up @@ -167,7 +167,7 @@ GEM
ffi (1.17.0)
ffi (1.17.0-arm64-darwin)
ffi (1.17.0-x86_64-darwin)
ffi (1.17.0-x86_64-linux-gnu)
ffi (1.17.0-x86_64-linux)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
Expand Down Expand Up @@ -220,7 +220,7 @@ GEM
mime-types (3.5.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2023.1003)
mini_magick (4.13.1)
mini_magick (4.13.2)
mini_mime (1.1.5)
minitest (5.24.0)
molinillo (0.8.0)
Expand Down Expand Up @@ -294,7 +294,7 @@ PLATFORMS
DEPENDENCIES
activesupport (>= 6.1.7.3, < 7.1.0)
cocoapods (= 1.15.2)
fastlane (~> 2)
fastlane (~> 2, >= 2.222.0)
fastlane-plugin-aws_s3
xcpretty (~> 0)

Expand Down
3 changes: 2 additions & 1 deletion __mocks__/@react-native-firebase/crashlytics.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type {FirebaseCrashlyticsTypes} from '@react-native-firebase/crashlytics';

type CrashlyticsModule = Pick<FirebaseCrashlyticsTypes.Module, 'log' | 'recordError' | 'setCrashlyticsCollectionEnabled'>;
type CrashlyticsModule = Pick<FirebaseCrashlyticsTypes.Module, 'log' | 'recordError' | 'setCrashlyticsCollectionEnabled' | 'setUserId'>;

type CrashlyticsMock = () => CrashlyticsModule;

Expand All @@ -10,6 +10,7 @@ const crashlyticsMock: CrashlyticsMock = () => ({
log: jest.fn(),
recordError: jest.fn(),
setCrashlyticsCollectionEnabled: jest.fn(),
setUserId: jest.fn(),
});

export default crashlyticsMock;
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled rootProject.ext.multiDexEnabled
versionCode 1009001405
versionName "9.0.14-5"
versionCode 1009001504
versionName "9.0.15-4"
// Supported language variants must be declared here to avoid from being removed during the compilation.
// This also helps us to not include unnecessary language variants in the APK.
resConfigs "en", "es"
Expand Down
1 change: 1 addition & 0 deletions assets/images/integrationicons/qbo-icon-circle.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions assets/images/integrationicons/xero-icon-circle.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,15 @@ description: Connect your Expensify workspace with Sage Intacct
order: 1
---
# Overview

Expensify’s seamless integration with Sage Intacct allows you to connect using either Role-based permissions or User-based permissions.

Once connected to Intacct you’re able to automate report exports, customize your coding preferences, and utilize Sage Intacct’s advanced features. When you’ve configured these settings in Expensify correctly, you can use the integration's settings to automate many tasks, streamlining your workflow for increased efficiency.

{% include info.html %}
The Sage Intacct integration is only available on the Control plan.
{% include end-info.html %}

# How to connect to Sage Intacct
We support setting up Sage Intacct with both User-based permissions and Role-based permissions for Expense Reports and Vendor Bills.
- User-based Permissions - Expense Reports
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Xero Troubleshooting

# Overview of Xero Troubleshooting

Synchronizing and exporting data between Expensify and NetSuite can streamline your financial processes, but occasionally, users may encounter errors that prevent a smooth integration. These errors often arise from discrepancies in settings, missing data, or configuration issues within NetSuite or Expensify.
Synchronizing and exporting data between Expensify and Xero can streamline your financial processes, but occasionally, users may encounter errors that prevent a smooth integration. These errors often arise from discrepancies in settings, missing data, or configuration issues within Xero or Expensify.

This troubleshooting guide aims to help you identify and resolve common sync and export errors, ensuring a seamless connection between your financial management systems. By following the step-by-step solutions provided for each specific error, you can quickly address issues and maintain accurate and efficient expense reporting and data management.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ description: Customize the fields that appear on a report or an invoice
---
<div id="expensify-classic" markdown="1">

Workspace Admins can add additional required fields to a report to include selections for project names, locations, trip information, and more.
Workspace Admins can add additional required report fields which allow you to specify header-level details like specific project names, business trip information, locations, and more.

{% include info.html %}
You cannot create these report fields directly in Expensify if you are connected to an accounting integration (QuickBooks Online, QuickBooks Desktop, Intacct, Xero, or NetSuite). Please refer to the relevant article for instructions on creating fields within that system.
Report fields are only available on the Control plan. You cannot create these report fields directly in Expensify if you are connected to an accounting integration (QuickBooks Online, QuickBooks Desktop, Intacct, Xero, or NetSuite). Please refer to the relevant article for instructions on creating fields within that system.
{% include end-info.html %}

To create a custom field for a report,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ Expensify allows Workspace Admins to create workflows and automations that deter
5. Select an approval mode.
- **Submit and Close**: No approval is required. Once a report is submitted, it will be automatically approved and closed. This option may be useful if your expense approvals occur in another system or if the submitter and approver are the same person.
- **Submit and Approve**: All reports go to one person that you assign as the approver. Once a report is submitted, it is sent to the approver. This is the default option.
- **Advanced Approval**: Allows for more complex workflows, like assigning different approvers for different employees or requiring secondary approvals for expenses that exceed a set limit.
- **Advanced Approval**: This workflow feature is for companies that require more than one person to approve a report before it can be reimbursed.
Advanced Approval is only available on the Control plan.


To add to your approval workflow, you can also set up approval rules for specific categories and tags.

Expand Down
68 changes: 68 additions & 0 deletions docs/articles/expensify-classic/travel/Approve-travel-expenses.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,40 @@ Travel expenses follow the same approval workflow as other expenses. Admins can
3. Click the **Program** tab at the top and select **Policies**.
4. Under General, select approval methods for Flights, Hotels, Cars and Rail.

![Screenshot of Expensify Travel policy approval settings](https://help.expensify.com/assets/images/Travel_Policy.png){:width="100%"}

# Approve travel

![Screenshot of Expensify Travel approval email](https://help.expensify.com/assets/images/Travel_Email.png){:width="100%"}

## Soft approval

Once an employee has booked a trip, their approver will receive an email notifying them of the booking with a prompt to decline it if needed.

- To approve the booking, no action is required.
- To decline the booking, click **Decline booking** within 24 hours. Then click **Deny Booking**.

## Hard approval

Once an employee has booked a trip, their approver will receive an email notifying them of the booking with a prompt to accept or decline the booking.

To approve the booking, click **Approve booking**. Then click **Approve**.
To decline the booking, click **Decline booking**. Then click **Deny**.

# FAQs

## Are extended approval windows given for trips booked over the weekend or during company holidays?

No, the approval window will always be 24 hours from when the trip is booked.

## How does Expensify Travel handle approvals when the assigned approver is out of office?

It is recommended to have multiple approvers for travel, as there is no delegated approval for out-of-office approvers.

## Can travelers upload a document when submitting a trip for approval?

Travelers are unable to add a document when submitting a trip for approval, but the company can add a ‘reason code’ in the Out of Policy rules that the traveler can complete at checkout. The traveler can then add the document to the expense report in Expensify when submitting the report.

</div>

<div id="new-expensify" markdown="1">
Expand All @@ -34,4 +68,38 @@ Travel expenses follow the same approval workflow as other expenses. Admins can
3. Click the **Program** tab at the top and select **Policies**.
4. Under General, select approval methods for Flights, Hotels, Cars and Rail.

![Screenshot of Expensify Travel policy approval settings](https://help.expensify.com/assets/images/Travel_Policy.png){:width="100%"}

# Approve travel

![Screenshot of Expensify Travel approval email](https://help.expensify.com/assets/images/Travel_Email.png){:width="100%"}

## Soft approval

Once an employee has booked a trip, their approver will receive an email notifying them of the booking with a prompt to decline it if needed.

- To approve the booking, no action is required.
- To decline the booking, click **Decline booking** within 24 hours. Then click **Deny Booking**.

## Hard approval

Once an employee has booked a trip, their approver will receive an email notifying them of the booking with a prompt to accept or decline the booking.

To approve the booking, click **Approve booking**. Then click **Approve**.
To decline the booking, click **Decline booking**. Then click **Deny**.

# FAQs

## Are extended approval windows given for trips booked over the weekend or during company holidays?

No, the approval window will always be 24 hours from when the trip is booked.

## How does Expensify Travel handle approvals when the assigned approver is out of office?

It is recommended to have multiple approvers for travel, as there is no delegated approval for out-of-office approvers.

## Can travelers upload a document when submitting a trip for approval?

Travelers are unable to add a document when submitting a trip for approval, but the company can add a ‘reason code’ in the Out of Policy rules that the traveler can complete at checkout. The traveler can then add the document to the expense report in Expensify when submitting the report.

</div>
Loading

0 comments on commit fc18140

Please sign in to comment.