Skip to content

Commit

Permalink
Merge branch 'main' into fix/28390/requestor-step-refs
Browse files Browse the repository at this point in the history
  • Loading branch information
kacper-mikolajczak committed Nov 6, 2023
2 parents 4e8f849 + 4089595 commit 245a43a
Show file tree
Hide file tree
Showing 128 changed files with 3,245 additions and 602 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/cherryPick.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ jobs:
token: ${{ secrets.OS_BOTIFY_TOKEN }}

- name: Set up git for OSBotify
id: setupGitForOSBotify
uses: Expensify/App/.github/actions/composite/setupGitForOSBotifyApp@8c19d6da4a3d7ce3b15c9cd89a802187d208ecab
with:
GPG_PASSPHRASE: ${{ secrets.LARGE_SECRET_PASSPHRASE }}
Expand Down Expand Up @@ -119,7 +120,7 @@ jobs:
**Important:** There may be conflicts that GitHub is not able to detect, so please _carefully_ review this pull request before approving."
gh pr edit --add-assignee "${{ github.actor }},${{ steps.getCPMergeCommit.outputs.MERGE_ACTOR }}"
env:
GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }}
GITHUB_TOKEN: ${{ steps.setupGitForOSBotify.outputs.OS_BOTIFY_API_TOKEN }}

- name: "Announces a CP failure in the #announce Slack room"
uses: 8398a7/action-slack@v3
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/finishReleaseCycle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,13 @@ jobs:
echo "IS_DEPLOYER=false" >> "$GITHUB_OUTPUT"
fi
env:
GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }}
GITHUB_TOKEN: ${{ steps.setupGitForOSBotify.outputs.OS_BOTIFY_API_TOKEN }}

- name: Reopen and comment on issue (not a team member)
if: ${{ !fromJSON(steps.isDeployer.outputs.IS_DEPLOYER) }}
uses: Expensify/App/.github/actions/javascript/reopenIssueWithComment@main
with:
GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }}
GITHUB_TOKEN: ${{ steps.setupGitForOSBotify.outputs.OS_BOTIFY_API_TOKEN }}
ISSUE_NUMBER: ${{ github.event.issue.number }}
COMMENT: |
Sorry, only members of @Expensify/Mobile-Deployers can close deploy checklists.
Expand All @@ -51,14 +51,14 @@ jobs:
id: checkDeployBlockers
uses: Expensify/App/.github/actions/javascript/checkDeployBlockers@main
with:
GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }}
GITHUB_TOKEN: ${{ steps.setupGitForOSBotify.outputs.OS_BOTIFY_API_TOKEN }}
ISSUE_NUMBER: ${{ github.event.issue.number }}

- name: Reopen and comment on issue (has blockers)
if: ${{ fromJSON(steps.isDeployer.outputs.IS_DEPLOYER) && fromJSON(steps.checkDeployBlockers.outputs.HAS_DEPLOY_BLOCKERS || 'false') }}
uses: Expensify/App/.github/actions/javascript/reopenIssueWithComment@main
with:
GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }}
GITHUB_TOKEN: ${{ steps.setupGitForOSBotify.outputs.OS_BOTIFY_API_TOKEN }}
ISSUE_NUMBER: ${{ github.event.issue.number }}
COMMENT: |
This issue either has unchecked items or has not yet been marked with the `:shipit:` emoji of approval.
Expand Down
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled rootProject.ext.multiDexEnabled
versionCode 1001039505
versionName "1.3.95-5"
versionCode 1001039507
versionName "1.3.95-7"
}

flavorDimensions "default"
Expand Down
2 changes: 1 addition & 1 deletion contributingGuides/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ Additionally if you want to discuss an idea with the open source community witho
- If you have made a change to your pull request and are ready for another review, leave a comment that says "Updated" on the pull request itself.
- Please keep the conversation in GitHub, and do not ping individual reviewers in Slack or Upwork to get their attention.
- Pull Request reviews can sometimes take a few days. If your pull request has not been addressed after four days please let us know via the #expensify-open-source Slack channel.
- On occasion, our engineers will need to focus on a feature release and choose to place a hold on the review of your PR. Depending on the hold length, our team will decide if a bonus will be applied to the job.
- On occasion, our engineers will need to focus on a feature release and choose to place a hold on the review of your PR.

#### Important note about JavaScript Style
- Read our official [JavaScript and React style guide](https://github.com/Expensify/App/blob/main/contributingGuides/STYLE.md). Please refer to our Style Guide before asking for a review.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
title: Personal Cards
description: Connect your credit card directly to Expensify to easily track your personal finances.
---
## Resource Coming Soon!

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,101 @@
---
title: CSV Import
description: CSV Import
title: Import and assign company cards from CSV file
description: uploading a CSV file containing your company card transactions
---
## Resource Coming Soon!

# Overview
Expensify offers a convenient CSV import feature for managing company card expenses when direct connections or commercial card feeds aren't available. This feature allows you to upload a CSV file containing your company card transactions and assign them to cardholders within your Expensify domain.
This feature is available on Group Workspaces and requires Domain Admin access.

# How to import company cards via CSV
1. Download a CSV of transactions from your bank by logging into their website and finding the relevant statement.
2. Format the CSV for upload using [this template](https://s3-us-west-1.amazonaws.com/concierge-responses-expensify-com/uploads%2F1594908368712-Best+Example+CSV+for+Domains.csv) as a guide.
- At a minimum, your file must include the following columns:
- **Card Number** - each number in this column should display at least the last four digits, and you can obscure up to 12 characters
(e.g., 543212XXXXXX12334).
- **Posted Date** - use the YYYY-MM-DD format in this column (and any other date column in your spreadsheet).
- **Merchant** - the name of the individual or business that provided goods or services for the transaction. This is a free-text field.
- **Posted Amount** - use the number format in this column, and indicate negative amounts with parentheses (e.g., (335.98) for -$335.98).
- **Posted Currency** - use currency codes (e.g., USD, GBP, EUR) to indicate the currency of the posted transactions.
- You can also add mapping for Categories and Tags, but those parameters are optional.
3. Log into Expensify on your web browser.
4. Head to Settings > Domains > Domain Name > Company Cards
5. Click Manage/Import CSV
6. Create a Company Card Layout Name for your spreadsheet
7. Click Upload CSV
8. Review the mapping of your spreadsheet to ensure that the Card Number, Date, Merchant, Amount, and Currency match your data.
9. Double-check the Output Preview for any errors and, if needed, refer to the common error solutions listed in the FAQ below.
10. Once the mapping is correct, click Submit Spreadsheet to complete the import.
11. After submitting the spreadsheet, click I'll wait a minute. Then, wait about 1-2 minutes for the import to process. The domain page will refresh once the upload is complete.

# How to assign new cards
If you're assigning cards via CSV upload for the first time:
1. Head to **Settings > Domains > Domain Name > Company Cards**
2. Find the new CSV feed in the drop-down list underneath **Imported Cards**
3. Click **Assign New Cards**
4. Under **Assign a Card**, enter the relevant info
5. Click **Assign**
From there, transactions will be imported to the cardholder's account, where they can add receipts, code the expenses, and submit them for review and approval.

# How to upload new expenses for existing assigned cards
There's no need to create a new upload layout for subsequent CSV uploads. Instead, add new expenses to the existing CSV:
1. Head to **Settings > Domains > Domain Name > Company Cards**
2. Click **Manage/Import CSV**
3. Select the saved layout from the drop-down list
4. Click **Upload CSV**
5. After uploading the more recent CSV, click **Update All Cards** to retrieve the new expenses for the assigned cards.

# Deep dive
If the CSV upload isn't formatted correctly, it will cause issues when you try to import or assign cards. Let's go over some common issues and how to fix them.

## Error: "Attribute value mapping is missing"
If you encounter an error that says "Attribute-value mapping is missing," the spreadsheet likely lacks critical details like Card Number, Date, Merchant, Amount, or Currency. To resolve:
1. Click the **X** at the top of the page to close the mapping window
2. Confirm what's missing from the spreadsheet
3. Add a new column to your spreadsheet and add the missing detail
4. Upload the revised spreadsheet by clicking **Manage Spreadsheet**
5. Enter a **Company Card Layout Name** for the contents of your spreadsheet
6. Click **Upload CSV**

## Error: "We've detected an error while processing your spreadsheet feed"
This error usually occurs when there's an upload issue.
To troubleshoot this:
1. Head to **Settings > Domains > Domain Name > Company Cards** and click **Manage/Import CSV**
2. In the **Upload Company Card transactions for** dropdown list, look for the layout name you previously created.
3. If the layout is listed, wait at least one hour and then sync the cards to see if new transactions are imported.
4. If the layout isn't listed, create a new **Company Card Layout Name** and upload the spreadsheet again.

## Error: "An unexpected error occurred, and we could not retrieve the list of cards"
This error occurs when there's an issue uploading the spreadsheet or the upload fails.
To troubleshoot this:
1. Head to **Settings > Domains > Domain Name > Company Cards** and click **Manage/Import CSV**
2. In the **Upload Company Card transactions for** dropdown list, look for the layout name you previously created.
3. If the layout is listed, wait at least one hour and then sync the cards to see if new transactions are imported.
4. If the layout isn't listed, create a new **Company Card Layout Name** and upload the spreadsheet again.


## I added a new parameter to an existing spreadsheet, but the data isn't showing in Expensify after the upload completes. What's going on?
If you added a new card to an existing spreadsheet and imported it via a saved layout, but it isn't showing up for assignment, this suggests that the modification may have caused an issue.
The next step in troubleshooting this issue is to compare the number of rows on the revised spreadsheet to the Output Preview to ensure the row count matches the revised spreadsheet.
To check this:
1. Head to **Settings > Domains > Domain Name > Company Cards** and click **Manage/Import CSV**
2. Select your saved layout in the dropdown list
3. Click **Upload CSV** and select the revised spreadsheet
4. Compare the Output Preview row count to your revised spreadsheet to ensure they match


If they don't match, you'll need to revise the spreadsheet by following the CSV formatting guidelines in step 2 of "How to import company cards via CSV" above.
Once you do that, save the revised spreadsheet with a new layout name.
Then, try to upload the revised spreadsheet again:

1. Click **Upload CSV**
2. Upload the revised file
3. Check the row count again on the Output Preview to confirm it matches the spreadsheet
4. Click **Submit Spreadsheet**

# FAQ
## Why can't I see my CSV transactions immediately after uploading them?
Don't worry! You'll typically need to wait 1-2 minutes after clicking **I understand, I'll wait!**

## I'm trying to import a credit. Why isn't it uploading?
Negative expenses shouldn't include a minus sign. Instead, they should just be wrapped in parentheses. For example, to indicate "-335.98," you'll want to make sure it's formatted as "(335.98)."
Original file line number Diff line number Diff line change
@@ -1,5 +1,73 @@
---
title: The Expenses Page
description: The Expenses Page
description: Details on Expenses Page filters
---
## Resource Coming Soon!
# Overview

The Expenses page allows you to see all of your personal expenses. If you are an admin, you can view all submitter’s expenses on the Expensify page. The Expenses page can be filtered in several ways to give you spending visibility, find expenses to submit and export to a spreadsheet (CSV).

## Expense filters
Here are the available filters you can use on the Expenses Page:

- **Date Range:** Find expenses within a specific time frame.
- **Merchant Name:** Search for expenses from a particular merchant. (Partial search terms also work if you need clarification on the exact name match.)
- **Workspace:** Locate specific Group/Individual Workspace expenses.
- **Categories:** Group expenses by category or identify those without a category.
- **Tags:** Filter expenses with specific tags.
- **Submitters:** Narrow expenses by submitter (employee or vendor).
- **Personal Expenses:** Find all expenses yet to be included in a report. A Workspace admin can see these expenses once they are on a Processing, Approved, or Reimbursed report.
- **Open:** Display expenses on reports that still need to be submitted (not submitted).
- **Processing, Approved, Reimbursed:** See expenses on reports at various stages – processing, approved, or reimbursed.
- **Closed:** View expenses on closed reports (not submitted for approval).

Here's how to make the most of these filters:

1. Log into your web account
2. Go to the **Expenses** page
3. At the top of the page, click on **Show Filters**
4. Adjust the filters to match your specific needs

Note, you might notice that not all expense filters are always visible. They adapt based on the data you're currently filtering and persist from the last time you logged in. For instance, you won't see the deleted filter if there are no **Deleted** expenses to filter out.

If you are not seeing what you expected, you may have too many filters applied. Click **Reset** at the top to clear your filters.


# How to add an expense to a report from the Expenses Page
The submitter (and their copilot) can add expenses to a report from the Expenses page.

Note, when expenses aren’t on a report, they are **personal expenses**. So you’ll want to make sure you haven’t filtered out **personal expenses** expenses, or you won’t be able to see them.

1. Find the expense you want to add. (Hint: Use the filters to sort expenses by the desired date range if it is not a recent expense.)
2. Then, select the expense you want to add to a report. You can click Select All to select multiple expenses.
3. Click **Add to Report** in the upper right corner, and choose either an existing report or create a new one.

# How to code expenses from the Expenses Page
To code expenses from the Expenses page, do the following:

1. Look for the **Tag**, **Category**, and **Description** columns on the **Expenses** page.
2. Click on the relevant field for a specific expense and add or update the **Category**, **Tag**, or **Description**.

Note, you can also open up individual expenses by clicking on them to see a detailed look, but coding the expenses from the Expense list is even faster and more convenient!

# How to export expenses to a CSV file or spreadsheet
If you want to export multiple expenses, run through the below steps:
Select the expenses you want to export by checking the box to the left of each expense.
Then, click **Export To** in the upper right corner of the page, and choose our default CSV format or create your own custom CSV template.


# FAQ

## Can I use the filters and analytics features on the mobile app?
The various features on the Expenses Page are only available while logged into your web account.

## As a Workspace admin, what submitter expenses can you see?
A Workspace admin can see Processing, Approved, and Reimbursed expenses as long as they were submitted on the workspace that you are an admin.

If employees submit expense reports on a workspace where you are not an admin, you will not have visibility into those expenses. Additionally, if an expense is left unreported, a workspace admin will not be able to see that expense until it’s been added to a report.

A Workspace admin can edit the tags and categories on an expense, but if they want to edit the amount, date, or merchant name, the expense will need to be in a Processing state or rejected back to the submitter for changes.
We have more about company card expense reconciliation in this support article.

## Can I edit multiple expenses at once?
Yes! Select the expenses you want to edit and click **Edit Multiple**.

This file was deleted.

Loading

0 comments on commit 245a43a

Please sign in to comment.