Skip to content

Commit

Permalink
Merge branch 'main' into maddylewis-patch-2
Browse files Browse the repository at this point in the history
  • Loading branch information
maddylewis authored Jul 18, 2024
2 parents c9d9cc6 + 74d9077 commit d1f2ca8
Show file tree
Hide file tree
Showing 132 changed files with 2,195 additions and 2,111 deletions.
13 changes: 11 additions & 2 deletions .github/scripts/createDocsRoutes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import type {ValueOf} from 'type-fest';
type Article = {
href: string;
title: string;
order?: number;
};

type Section = {
Expand Down Expand Up @@ -60,11 +61,12 @@ function toTitleCase(str: string): string {
/**
* @param filename - The name of the file
*/
function getArticleObj(filename: string): Article {
function getArticleObj(filename: string, order?: number): Article {
const href = filename.replace('.md', '');
return {
href,
title: toTitleCase(href.replaceAll('-', ' ')),
order,
};
}

Expand All @@ -90,6 +92,12 @@ function pushOrCreateEntry<TKey extends HubEntriesKey>(hubs: Hub[], hub: string,
}
}

function getOrderFromArticleFrontMatter(path: string): number | undefined {
const frontmatter = fs.readFileSync(path, 'utf8').split('---')[1];
const frontmatterObject = yaml.load(frontmatter) as Record<string, unknown>;
return frontmatterObject.order as number | undefined;
}

/**
* Add articles and sections to hubs
* @param hubs - The hubs inside docs/articles/ for a platform
Expand All @@ -113,7 +121,8 @@ function createHubsWithArticles(hubs: string[], platformName: ValueOf<typeof pla

// Each subfolder will be a section containing articles
fs.readdirSync(`${docsDir}/articles/${platformName}/${hub}/${section}`).forEach((subArticle) => {
articles.push(getArticleObj(subArticle));
const order = getOrderFromArticleFrontMatter(`${docsDir}/articles/${platformName}/${hub}/${section}/${subArticle}`);
articles.push(getArticleObj(subArticle, order));
});

pushOrCreateEntry(routeHubs, hub, 'sections', {
Expand Down
5 changes: 0 additions & 5 deletions .storybook/webpack.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,11 +100,6 @@ const webpackConfig = ({config}: {config: Configuration}) => {
}),
);

config.module.rules?.push({
test: /\.lottie$/,
type: 'asset/resource',
});

return config;
};

Expand Down
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 1009000803
versionName "9.0.8-3"
versionCode 1009000901
versionName "9.0.9-1"
// 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
4 changes: 2 additions & 2 deletions docs/_data/_routes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ platforms:
icon: /assets/images/handshake.svg
description: Discover the benefits of becoming an Expensify Partner.

- href: integrations
title: Integrations
- href: connections
title: Connections
icon: /assets/images/simple-illustration__monitor-remotesync.svg
description: Integrate with accounting or HR software to streamline expense approvals.

Expand Down
14 changes: 9 additions & 5 deletions docs/_includes/hub.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,17 @@ <h1 class="title">
{{ hub.description }}
</p>

{% assign sortedSectionsAndArticles = hub.sections | concat: hub.articles | sort: 'title' %}

<section>
<div class="cards-group">
{% for section in hub.sections %}
{% include section-card.html platform=activePlatform hub=hub.href section=section.href title=section.title %}
{% endfor %}
{% for article in hub.articles %}
{% include article-card.html hub=hub.href href=article.href title=article.title platform=activePlatform %}
{% for item in sortedSectionsAndArticles %}
<!-- The item is a section if it has articles inside it -->
{% if item.articles %}
{% include section-card.html platform=activePlatform hub=hub.href section=item.href title=item.title %}
{% else %}
{% include article-card.html hub=hub.href href=item.href title=item.title platform=activePlatform %}
{% endif %}
{% endfor %}
</div>
</section>
50 changes: 25 additions & 25 deletions docs/_includes/lhn-template.html
Original file line number Diff line number Diff line change
Expand Up @@ -33,31 +33,31 @@
<span>{{ hub.title }}</span>
</div>
<ul class="nested-treeview">
{% for section in hub.sections %}
<li>
{% if section.href == activeSection %}
<div class="icon-with-link selected">
<a href="/{{ activePlatform }}/hubs/{{ hub.href }}"><img src="/assets/images/down.svg" class="base-icon"></img></a>
<span>{{ section.title }}</span>
</div>
<ul>
{% for article in section.articles %}
{% assign article_href = section.href | append: '/' | append: article.href %}
{% include lhn-article-link.html platform=activePlatform hub=hub.href href=article_href title=article.title %}
{% endfor %}
</ul>
{% else %}
<a href="{{ section.href }}" class="icon-with-link link">
<img src="/assets/images/arrow-right.svg" class="base-icon"></img>
{{ section.title }}
</a>
{% endif %}

</li>
{% endfor %}

{% for article in hub.articles %}
{% include lhn-article-link.html platform=activePlatform hub=hub.href href=article.href title=article.title %}
{% assign sortedSectionsAndArticles = hub.sections | concat: hub.articles | sort: 'title' %}
{% for item in sortedSectionsAndArticles %}
{% if item.articles %}
<li>
{% if item.href == activeSection %}
<div class="icon-with-link selected">
<a href="/{{ activePlatform }}/hubs/{{ hub.href }}"><img src="/assets/images/down.svg" class="base-icon"></img></a>
<span>{{ item.title }}</span>
</div>
<ul>
{% for article in item.articles %}
{% assign article_href = item.href | append: '/' | append: article.href %}
{% include lhn-article-link.html platform=activePlatform hub=hub.href href=article_href title=article.title %}
{% endfor %}
</ul>
{% else %}
<a href="{{ item.href }}" class="icon-with-link link">
<img src="/assets/images/arrow-right.svg" class="base-icon"></img>
{{ item.title }}
</a>
{% endif %}
</li>
{% else %}
{% include lhn-article-link.html platform=activePlatform hub=hub.href href=item.href title=item.title %}
{% endif %}
{% endfor %}
</ul>
{% else %}
Expand Down
3 changes: 2 additions & 1 deletion docs/_includes/section.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ <h1 class="title">

<section>
<div class="cards-group">
{% for article in section.articles %}
{% assign sortedArticles = section.articles | sort: 'order', 'last' | default: 999 %}
{% for article in sortedArticles %}
{% assign article_href = section.href | append: '/' | append: article.href %}
{% include article-card.html hub=hub.href href=article_href title=article.title platform=activePlatform %}
{% endfor %}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: Accelo Troubleshooting
description: Accelo Troubleshooting
order: 3
---

# Coming soon
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: Configure Accelo
description: Configure Accelo
order: 2
---

# Coming soon
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Accelo
description: Help doc for Accelo integration
order: 1
---
<!-- The lines above are required by Jekyll to process the .md file -->

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Certinia Troubleshooting
description: Certinia Troubleshooting
---

# Coming soon
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: Configure Certinia
description: Configure Certinia
order: 2
---

# Coming soon
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Certinia
description: Guide to connecting Expensify and Certinia FFA and PSA/SRP (formerly known as FinancialForce)
order: 1
---
# Overview
[Cetinia](https://use.expensify.com/financialforce) (formerly known as FinancialForce) is a cloud-based software solution that provides a range of financial management and accounting applications built on the Salesforce platform. There are two versions: PSA/SRP and FFA and we support both.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Configure Netsuite
description: Configure Netsuite
---

# Coming soon
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: NetSuite
description: Connect and configure NetSuite directly to Expensify.
order: 1
---
# Overview
Expensify's seamless integration with NetSuite enables you to streamline your expense reporting process. This integration allows you to automate the export of reports, tailor your coding preferences, and tap into NetSuite's array of advanced features. By correctly configuring your NetSuite settings in Expensify, you can leverage the connection's settings to automate most of the tasks, making your workflow more efficient.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Netsuite Troubleshooting
description: Netsuite Troubleshooting
---

# Coming soon
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Configure Quickbooks Desktop
description: Configure Quickbooks Desktop
---

# Coming soon
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: QuickBooks Desktop
description: How to connect Expensify to QuickBooks Desktop and troubleshoot issues.
order: 1
---
# Overview
QuickBooks Desktop is an accounting package developed by Intuit. It is designed for small and medium-sized businesses to help them manage their financial and accounting tasks. You can connect Expensify to QuickBooks Desktop to make expense management seamless.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Quickbooks Desktop Troubleshooting
description: Quickbooks Desktop Troubleshooting
---

# Coming soon
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Configure Quickbooks Online
description: Configure Quickbooks Online
---

# Coming soon
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: QuickBooks Online
description: Everything you need to know about using Expensify's direct integration with QuickBooks Online.
order: 1
---
# Overview

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Quickbooks Online Troubleshooting
description: Quickbooks Online Troubleshooting
---

# Coming soon
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Configure Sage Intacct
description: Configure Sage Intacct
---

# Coming soon
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Sage Intacct
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.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Sage Intacct Troubleshooting
description: Sage Intacct Troubleshooting
---

# Coming soon
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Configure Xero
description: Configure Xero
---

# Coming soon
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: The Xero Integration
description: Everything you need to know about Expensify's direct integration with Xero
order: 1
---

# About
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Xero Troubleshooting
description: Xero Troubleshooting
---

# Coming soon
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
title: Configure Reimbursement Settings
description: Set up direct or indirect reimbursements for your workspace.
---
<!-- The lines above are required by Jekyll to process the .md file -->

Reimbursing employees in Expensify is quick, easy, and completely free. Let Expensify do the tedious work for you by taking advantage of the features available to automate employee reimbursement.

# Configure a Workspace's Reimbursement Settings
There are a few ways to reimburse employees in Expensify. The option that's best suited for you and your business will depend on a few different factors:
- **Direct Reimbursement**: For companies with a business bank account located in the US that reimburse employees within the US.
- **Indirect Reimbursement**: This option is available to all members, and connecting a bank account to Expensify is not required. Indirect reimbursement indicates that all reports are reimbursed outside of Expensify.
- **Global Reimbursement**: If your company’s business bank account is in the US, Canada, the UK, Europe, or Australia, you can reimburse employees directly in nearly any country worldwide.

## Set Up Direct Reimbursement

Once a [business bank account is connected to Expensify](https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/Business-Bank-Accounts-USD#how-to-add-a-verified-business-bank-account), a workspace admin can enable indirect reimbursement via **Settings > Workspaces > Workspace Name > Reimbursement > Direct**.

#### Additional features available with Direct Reimbursement:
- **Select a default reimburser for the Workspace from the dropdown menu**:
- The default reimburser will receive notifications to reimburse reports in Expensify.
- Any workspace admin who also has access to the business bank account can be added as a default reimburser.
- **Set a default withdrawal account for the Workspace**:
- The default bank account is used to reimburse all of the reports submitted on the corresponding workspace.
- **Set a manual reimbursement threshold to automate reimbursement**:
- If the total of a given report is less than the threshold set, reimbursement will occur automatically upon final approval.
- If the total of a given report is more than the threshold, it will need to be reimbursed manually.

## Set Up Indirect Reimbursement

A Workspace admin can enable indirect reimbursement via **Settings > Workspaces > Workspace Name > Reimbursement > Indirect**.

**Additional features under Reimbursement > Indirect:**
If you reimburse through a separate system or through payroll, Expensify can collect and export employee bank account details for you. Reach out to your Account Manager or Concierge to have the Reimbursement Details Export format added to the account.

## Set Up Global Reimbursement

Once [a business bank account is connected to Expensify](https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/Business-Bank-Accounts-USD#how-to-add-a-verified-business-bank-account), a workspace admin can enable indirect reimbursement via **Settings > Workspaces > Workspace Name > Reimbursement > Direct > Enable Global Reimbursements**.

More information on setting up global reimbursements can be found **[here](https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/Global-Reimbursements)**.

{% include faq-begin.md %}

## How do I export employee bank account details once the Reimbursement Details Export format is added to my account?

Employee bank account details can be exported from the Reports page by selecting the relevant Approved reports and then clicking **Export to > Reimbursement Details Export**.

## Is it possible to change the name of a verified business bank account in Expensify?

Bank account names can be updated by going to _**Settings > Accounts > Payments**_ and clicking the pencil icon next to the bank account name.

## What is the benefit of setting a default reimburser?

Setting a default reimburser on the Workspace ensures that all outstanding reports are reimbursed as this member will receive notifications alerting them to reports that require their action.
{% include faq-end.md %}
Loading

0 comments on commit d1f2ca8

Please sign in to comment.