Skip to content

Commit

Permalink
fix merge main
Browse files Browse the repository at this point in the history
  • Loading branch information
DylanDylann committed Dec 6, 2023
2 parents f931e04 + 2feaac8 commit 4a24eb1
Show file tree
Hide file tree
Showing 223 changed files with 3,487 additions and 2,406 deletions.
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ This is a checklist for PR authors. Please make sure to complete all tasks and c
- [ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory
- [ ] If a new CSS style is added I verified that:
- [ ] A similar style doesn't already exist
- [ ] The style can't be created with an existing [StyleUtils](https://github.com/Expensify/App/blob/main/src/styles/StyleUtils.js) function (i.e. `StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)`)
- [ ] The style can't be created with an existing [StyleUtils](https://github.com/Expensify/App/blob/main/src/styles/StyleUtils.js) function (i.e. `StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)`)
- [ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
- [ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like `Avatar` is modified, I verified that `Avatar` is working as expected in all cases)
- [ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
Expand Down
2 changes: 1 addition & 1 deletion __mocks__/@ua/react-native-airship.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ const Airship = {
},
contact: {
identify: jest.fn(),
getNamedUserId: jest.fn(),
getNamedUserId: () => Promise.resolve(undefined),
reset: jest.fn(),
},
};
Expand Down
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled rootProject.ext.multiDexEnabled
versionCode 1001040800
versionName "1.4.8-0"
versionCode 1001040801
versionName "1.4.8-1"
}

flavorDimensions "default"
Expand Down
10 changes: 5 additions & 5 deletions contributingGuides/NAVIGATION.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Overview

The navigation in the App consists of a top-level Stack Navigator (called `RootStack`) with each of its `Screen` components handling different high-level flow. All those flows can be seen in `AuthScreens.js` file.
The navigation in the App consists of a top-level Stack Navigator (called `RootStack`) with each of its `Screen` components handling different high-level flow. All those flows can be seen in `AuthScreens.tsx` file.

## Terminology

Expand All @@ -20,11 +20,11 @@ Navigation Actions - User actions correspond to resulting navigation actions tha

## Adding RHP flows

Most of the time, if you want to add some of the flows concerning one of your reports, e.g. `Money Request` from a user, you will most probably use `RightModalNavigator.js` and `ModalStackNavigators.js` file:
Most of the time, if you want to add some of the flows concerning one of your reports, e.g. `Money Request` from a user, you will most probably use `RightModalNavigator.tsx` and `ModalStackNavigators.tsx` file:

- Since each of those flows is kind of a modal stack, if you want to add a page to the existing flow, you should just add a page to the correct stack in `ModalStackNavigators.js`.
- Since each of those flows is kind of a modal stack, if you want to add a page to the existing flow, you should just add a page to the correct stack in `ModalStackNavigators.tsx`.

- If you want to create new flow, add a `Screen` in `RightModalNavigator.js` and make new modal in `ModalStackNavigators.js` with chosen pages.
- If you want to create new flow, add a `Screen` in `RightModalNavigator.tsx` and make new modal in `ModalStackNavigators.tsx` with chosen pages.

When creating RHP flows, you have to remember a couple things:

Expand Down Expand Up @@ -196,4 +196,4 @@ The action for the first step created with `getMinimalAction` looks like this:
```

### Deeplinking
There is no minimal action for deeplinking directly to the `Profile` screen. But because the `Settings_root` is not on the stack, pressing UP will reset the params for navigators to the correct ones.
There is no minimal action for deeplinking directly to the `Profile` screen. But because the `Settings_root` is not on the stack, pressing UP will reset the params for navigators to the correct ones.
2 changes: 1 addition & 1 deletion contributingGuides/REVIEWER_CHECKLIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
- [ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory
- [ ] If a new CSS style is added I verified that:
- [ ] A similar style doesn't already exist
- [ ] The style can't be created with an existing [StyleUtils](https://github.com/Expensify/App/blob/main/src/styles/StyleUtils.js) function (i.e. `StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG`)
- [ ] The style can't be created with an existing [StyleUtils](https://github.com/Expensify/App/blob/main/src/styles/StyleUtils.js) function (i.e. `StyleUtils.getBackgroundAndBorderStyle(theme.componentBG`)
- [ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
- [ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like `Avatar` is modified, I verified that `Avatar` is working as expected in all cases)
- [ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
Expand Down
5 changes: 0 additions & 5 deletions docs/_data/_routes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,11 +112,6 @@ platforms:
title: Expensify Card
icon: /assets/images/hand-card.svg
description: Explore how the Expensify Card combines convenience and security to enhance everyday business transactions. Discover how to apply for, oversee, and maximize your card perks here.

- href: expensify-partner-program
title: Expensify Partner Program
icon: /assets/images/handshake.svg
description: Discover how to get the most out of Expensify as an ExpensifyApproved! accountant partner. Learn how to set up your clients, receive CPE credits, and take advantage of your partner discount.

- href: get-paid-back
title: Get Paid Back
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Company-Card-Settings.md
description: Company card settings
description: Once you connect your cards, customize the configuration using company card settings.
---
# Overview
Once you’ve imported your company cards via commercial card feed, direct bank feed, or CSV import, the next step is to configure the cards’ settings.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
---
title: Partner Billing Guide
description: Understand how Expensify bills partners and their clients
---

# Overview

The ExpensifyApproved! Partner Program offers exclusive billing rates and features tailored for accountants to ensure seamless client management. If you are an accountant or consultant who recommends spend management solutions to your clients, becoming an ExpensifyApproved! Accountant may be a great certification for you. This guide will walk you through the unique billing perks available to ExpensifyApproved! partners, emphasizing the importance of understanding and managing client billing effectively. To learn what perks partners receive, check out the ExpensifyApproved! program details here.

# Get exclusive partner pricing

All ExpensifyApproved! Partners are automatically eligible for a special rate of $9/seat monthly, without an annual commitment when they adopt the Expensify Card. This provides flexibility as active users can vary. Here are the specifics on pricing for our Approved! Partners’ clients:
- **Bundled pricing:** US Clients using the Expensify Card get up to a 50% discount, bringing their monthly bill to $9/seat. Reach out to your Partner Manager to discuss exclusive international pricing discount.
- **Unbundled pricing (or pay-per-use pricing):** Clients not using the Expensify Card are billed at $18/seat monthly.
- **No annual commitment:** Partners pay only for what they use, with no annual subscriptions required.
- **Expensify Card revenue share:** All partners receive a 0.5% revenue share on Expensify Card transactions made by clients. This revenue share can be passed back to the client for an additional discount to offset their Expensify bill.

# Understanding the billing process

Expensify bills the owner of the expense workspace for the activity on that workspace. If accountants retain ownership of client workspaces, they receive the bill and can then re-bill their clients based on individual agreements.

Each month, Expensify will send a consolidated bill detailing:
- **Pay-per-use seats:** This is the number of active clients and their users for the month.
- **Expensify Card discount**: This amount reflects how much spend is put on your card, which then determines the discount for that month.
- **Total monthly price:** This amount is the overall price of Expensify when using the Expensify Card discount to offset the cost of the pay-per-use seats.
- **Workspace list:** This is an overview of all client workspaces with their respective active seats.

## Consolidated Domain Billing

If your firm wishes to consolidate all Expensify billing to a single account, the Consolidated Domain Billing feature is your go-to tool. It centralizes payment for all group workspaces owned by any domain member of your firm.

### Activating Consolidated Domain Billing:
1. Claim and verify your firm’s domain.
2. Navigate to **Settings > Domains > [Domain Name] > Domain Admins** and set a **"Primary Domain Admin"** by using the drop down toggle to select an email address.
3. Enable **Consolidated Domain Billing** in the same section.

The Consolidated Domain Billing tool ensures that billing takes place under a single Expensify account associated with your firm. This eliminates the need to add multiple payment cards across various accounts to cover payments for multiple clients.

## Maintaining a Console of all clients:

If your firm wants to have a console view of all client workspaces and domains, you will want to create a single, centralized login to manage all client workspaces and domains, such as [email protected].

1. Create a dedicated email address that will act as the universal workspace owner, for example, [email protected].
2. Register this email with Expensify or your chosen platform and ensure it is verified and secured.
3. Within each client workspace settings, add your centralized email (e.g. [email protected]) as a workspace admin.
4. Do the same with each client domain.

## Applying Client IDs to a bill

Using client IDs for Optimized Billing in Expensify: A unique identifier feature for ExpensifyApproved! accountants. Streamline client Workspace recognition and make your billing process more efficient.

# How to assign a client ID to a workspace
1. Log in to your account: Ensure you’re using an Approved! accountant account.
2. Navigate to the desired Workspace: Go to **Settings > Workspaces > [Workspace Name] > Overview**.
3. Input the identifier: Here, you can input an alphanumeric unique identifier for each client workspace.
**Note:** If a client has multiple workspaces, ensure each workspace has a consistent client ID.

# How to access and download billing receipts
- Accessing Billing: **Settings: Go to Settings > Your Account > Payments > Billing History.**
- Download the Receipt: Click on **"Download Receipt CSV".**

# Deep Dive
- Using client IDs for all Workspaces: It's beneficial to use client IDs for all Workspaces to ensure each one is easily recognizable.
- Benefits of itemized billing receipts: Employing client IDs offers itemized billing by client, with each itemization detailing unique active users.

# FAQ

**Do I automatically get the special billing rate as an ExpensifyApproved! Partner?**
- Yes, when you join the ExpensifyApproved! program, you will automatically get the special billing rate. To join the ExpensifyApproved! Program, you need to enroll in ExpensifyApproved! University.

**How can I check my billing details?**
- To check your billing details, be on the lookout for your detailed billing statement sent out at the end of each month.

**Can I pass the bill to my clients?**
- Yes, you can pass the bill on to your clients. If you retain ownership of client workspaces in Expensify, you can re-bill your clients. If you’d like the client to own the billing of the Expensify, they can take over billing.

**What if I don't want to use the Expensify Card?**
- If you prefer not to use the Expensify Card, your clients will be billed at $18/seat monthly.

**Why use client IDs?**
- Client IDs provide a streamlined method to identify and manage workspaces, especially beneficial when a client has multiple workspaces.

**Do I need a client ID for each Workspace?**
- Yes, if you want to ensure seamless identification and billing processes.

**Where can I see the Billing Receipts?**
- All billing owners receive an emailed PDF of their monthly billing receipt, but a CSV version can also be downloaded from the platform.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Your Expensify Partner Manager
title: Expensify Partner Support
description: Understanding support for our partners
---

Expand All @@ -10,23 +10,47 @@ Our well-rounded support methodology is designed to provide comprehensive assist

## 1. ExpensifyApproved! University
**Purpose:** Equip your team with a comprehensive understanding of Expensify.

**Benefits:**
- Foundation-level knowledge about the platform.
- 3 CPE credits upon successful completion (US-only).
- Unlock exclusive partner perks, including tickets to ExpensiCon!
- Visit university.Expensify.com to access our comprehensive training program.

## 2. Partner Manager
**Role:** A designated liaison for your firm.
**Role:**
A Partner Manager is a dedicated point of contact for your firm Partner Managers support our accounting partners by providing recommendations for client’s accounts, assisting with firm-wide training, and ensuring partners receive the full benefits of our partnership program. They will actively monitor open technical issues and be proactive with recommendations to increase efficiency.


**Key Responsibilities:**
- Handle any escalations promptly.
- Organize firm-wide training sessions.
- Assist with strategic planning and the introduction of new features.
- Once you've completed the ExpensifyApproved! University, log in to your Expensify account. Click on the "Support" option to connect with your dedicated Partner Manager.

**How do I know if I have a Partner Manager?**

For your firm to be assigned a Partner Manager, you must complete the ExpensifyApproved! University training course. Every external accountant or bookkeeper who completes the training is automatically enrolled in our program and receives all the benefits, including access to the Partner Manager. So everyone at your firm must complete the training to receive the maximum benefit.

You can check to see if you’ve completed the course and enrolled in the ExpensifyApproved! Accountants program simply by logging into your Expensify account. In the bottom left-hand corner of the website, you will see the ExpensifyApproved! logo.

**How do I contact my Partner Manager?**
1. Signing in to new.expensify.com and searching for your Partner Manager
2. Replying to or clicking the chat link on any email you get from your Partner Manager

**How do I know if my Partner Manager is online?**

You will be able to see if they are online via their status in new.expensify.com, which will either say “online” or have their working hours.

**Can I get on a call with my Partner Manager?**

Of course! You can ask your Partner Manager to schedule a call whenever you think one might be helpful. Partner Managers can discuss client onboarding strategies, firm-wide training, and client setups.

We recommend continuing to work with Concierge for general support questions, as this team is always online and available to help immediately.

## 3. Client Setup Specialist
**Purpose:** Ensure smooth onboarding for every client you refer.

**Duties:**
- Comprehensive assistance with setting up Expensify.
- Help with configuring accounting integrations.
Expand All @@ -35,13 +59,15 @@ Our well-rounded support methodology is designed to provide comprehensive assist

## 4. Client Account Manager
**Role:** Dedicated support for ongoing client needs.

**Responsibilities:**
- Address day-to-day product inquiries.
- Assist clients in navigating and optimizing their use of Expensify.
- After logging into Expensify, click on the "Support" option in the left-hand navigation pane. This will connect you directly to your assigned Account Manager.

## 5. Concierge chat support
**Availability:** Real-time support for any urgent inquiries.

**Features:**
- Immediate assistance with an average response time of under two minutes.
- Available to both accountants and clients for all product-related questions.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
---
title: Creating Per Diem Expenses
title: Per-Diem-Expenses
description: How to create Per Diem expenses on mobile and web.
---
# Overview

What are Per Diems? Per diems, short for "per diem allowance" or "daily allowance," are fixed daily payments provided by your employer to cover expenses incurred during business or work-related travel. These allowances simplify expense tracking and reimbursement for meals, lodging, and incidental expenses during a trip. Per Diems can be masterfully tracked in Expensify!

## How To create per diem expenses
## How to create per diem expenses

To add per diem expenses, you need three pieces of information:
1. Where did you go? - Specify your travel destination.
2. How long were you away? - Define the period you're claiming for.
3. Which rate did you use? - Select the appropriate per diem rate.
3. Which rate did you use? - Select the appropriate per diem rate (this is set by your employer).

### Step 1: On either the web or mobile app, click New Expense and choose Per Diem

Expand All @@ -31,15 +31,15 @@ Finally, submit your Per Diem expense for approval, and you'll be on your way to

# FAQ

## Can I Edit My Per Diems?
## Can I edit my per diem expenses?
Per Diems cannot be amended. To make changes, delete the expense and recreate it as needed.

## What If My Admin Requires Daily Per Diems?
## What if my admin requires daily per diems?
No problem! Create a separate Per Diem expense for each day of your trip.

## I Have Questions About the Amount I'm Due
## I have questions about the amount I'm due
Reach out to your internal Admin team, as they've configured the rates in your policy to meet specific requirements.

## Can I Add Start and End Times to a Per Diem?
## Can I add start and end times to per diems?
Unfortunately, you cannot add start and end times to Per Diems in Expensify.
By following these steps, you can efficiently create and manage your Per Diem expenses in Expensify, making the process of tracking and getting reimbursed hassle-free.
5 changes: 0 additions & 5 deletions docs/articles/expensify-classic/get-paid-back/Per-Diem.md

This file was deleted.

Loading

0 comments on commit 4a24eb1

Please sign in to comment.