Skip to content

Commit 55e9a41

Browse files
committed
Merge branch 'main' into remove-cache-eviction-code
2 parents c7d5997 + 675c669 commit 55e9a41

348 files changed

Lines changed: 8950 additions & 3283 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.

Mobile-Expensify

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ android {
111111
minSdkVersion rootProject.ext.minSdkVersion
112112
targetSdkVersion rootProject.ext.targetSdkVersion
113113
multiDexEnabled rootProject.ext.multiDexEnabled
114-
versionCode 1009034202
115-
versionName "9.3.42-2"
114+
versionCode 1009034302
115+
versionName "9.3.43-2"
116116
// Supported language variants must be declared here to avoid from being removed during the compilation.
117117
// This also helps us to not include unnecessary language variants in the APK.
118118
resConfigs "en", "es"
816 Bytes
Binary file not shown.

contributingGuides/OBSERVABILITY.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ This sends spans to the real Sentry project instead of the local console.
8484

8585
Defined in `src/CONST/index.ts` under `CONST.TELEMETRY`:
8686
- Span names: `SPAN_OPEN_REPORT`, `SPAN_SEND_MESSAGE`
87-
- Tag names: `TAG_ACTIVE_POLICY`, `TAG_AUTHENTICATION_ERROR_TYPE`
87+
- Tag names: `TAGS.ACTIVE_POLICY`, `TAGS.AUTHENTICATION_ERROR_TYPE`
8888
- Attribute names: `ATTRIBUTE_REPORT_ID`, `ATTRIBUTE_MESSAGE_LENGTH`
8989
- Configuration: `CONFIG.SKELETON_MIN_DURATION`
9090

@@ -163,7 +163,9 @@ Add span name, tags, and attributes to `src/CONST/index.ts`:
163163
```typescript
164164
TELEMETRY: {
165165
SPAN_YOUR_OPERATION: 'ManualYourOperation',
166-
TAG_YOUR_TAG: 'your_tag',
166+
TAGS: {
167+
YOUR_TAG: 'your_tag',
168+
},
167169
ATTRIBUTE_YOUR_ATTR: 'your_attr'
168170
}
169171
```
@@ -182,7 +184,7 @@ startSpan(spanId, {
182184
```typescript
183185
const span = getSpan(spanId);
184186
span?.setAttribute(CONST.TELEMETRY.ATTRIBUTE_YOUR_ATTR, value);
185-
span?.setTag(CONST.TELEMETRY.TAG_YOUR_TAG, value);
187+
span?.setTag(CONST.TELEMETRY.TAGS.YOUR_TAG, value);
186188
```
187189

188190
#### 5. Finish Span

contributingGuides/OBSERVABILITY_METRICS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ This document lists all implemented telemetry metrics in the Expensify App.
137137

138138
### Authentication Failures
139139

140-
**Constants**: `CONST.TELEMETRY.TAG_AUTHENTICATION_FUNCTION`, `CONST.TELEMETRY.TAG_AUTHENTICATION_ERROR_TYPE`, `CONST.TELEMETRY.TAG_AUTHENTICATION_JSON_CODE` ([`src/CONST/index.ts`](https://github.com/Expensify/App/blob/8f123f449f1a4533830b18a1040c9a5f1949821d/src/CONST/index.ts#L1700-L1702))
140+
**Constants**: `CONST.TELEMETRY.TAGS.AUTHENTICATION_FUNCTION`, `CONST.TELEMETRY.TAGS.AUTHENTICATION_ERROR_TYPE`, `CONST.TELEMETRY.TAGS.AUTHENTICATION_JSON_CODE` ([`src/CONST/index.ts`](https://github.com/Expensify/App/blob/8f123f449f1a4533830b18a1040c9a5f1949821d/src/CONST/index.ts#L1700-L1702))
141141
**What's Measured**: Number of authentication failures tracked via `Sentry.captureException()` using [`trackAuthenticationError()`](https://github.com/Expensify/App/blob/8f123f449f1a4533830b18a1040c9a5f1949821d/src/libs/telemetry/trackAuthenticationError.ts#L23)
142142
**Error Types**:
143143
- `missing_params`: Missing required auth parameters ([`Authentication.ts:66`](https://github.com/Expensify/App/blob/8f123f449f1a4533830b18a1040c9a5f1949821d/src/libs/Authentication.ts#L66))

docs/articles/new-expensify/concierge-ai/Expense-Assistant.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ Some expense actions are not currently supported in chat, but may be added in th
9999
- Attaching a receipt to an existing transaction via chat
100100
- Tagging expenses based on past behavior
101101

102-
If you request these actions, Concierge will notify you that the feature is not yet available."
102+
If you request these actions, Concierge will notify you that the feature is not yet available.
103103

104104
---
105105

docs/articles/new-expensify/reports-and-expenses/Attach-and-edit-receipts-on-expenses.md

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
---
22
title: Attach and edit receipts on expenses
33
description: Learn how to properly attach, verify, and troubleshoot receipts on expenses in New Expensify for audits and accounting.
4-
keywords: [attach receipt, verify receipt, missing receipt, expense attachments, audit trail, New Expensify, receipt not showing]
4+
keywords: [New Expensify,attach receipt, verify receipt, missing receipt, expense attachments, audit trail, New Expensify, receipt not showing, crop receipt, rotate receipt, trim receipt]
5+
internalScope: Audience is Expensify members and Workspace Admins. Covers attaching, replacing, and cropping receipts on expenses. Does not cover SmartScan configuration or receipt forwarding via email.
56
---
67

78
<div id="new-expensify" markdown="1">
@@ -41,15 +42,20 @@ Attaching receipts in the report comment thread does **not** link them to any ex
4142

4243
## How to replace an existing receipt
4344

44-
**On web:**
45-
1. Open the expense and click on the receipt image.
46-
2. Click the three dots > **Replace**.
47-
3. Click **Choose file** to add the receipt image file.
45+
1. Open the expense and click on the receipt image.
46+
2. Click **Replace**.
47+
3. Take a photo or upload a receipt image file from your device.
4848

49-
**On mobile:**
50-
1. Open the expense and tap the receipt image.
51-
2. Tap the three dots > **Replace**.
52-
3. Take a photo or upload a file from your device image gallery.
49+
## How to crop a receipt image
50+
51+
You can crop a receipt image to remove unnecessary areas or focus on specific details.
52+
53+
1. Open the expense and click on the receipt image.
54+
2. Click **Crop**.
55+
3. Drag the corners or edges of the crop rectangle to select the area you want to keep.
56+
4. Click **Save**.
57+
58+
The cropped image will replace the original receipt on the expense.
5359

5460
---
5561

@@ -105,5 +111,8 @@ Only the expense creator or a Workspace Admin can attach a receipt an expense.
105111
## Will auditors see receipts added in report comments?
106112
No. Receipts in the comments section are considered supplemental and are not included in audits, exports, or downloadable reports.
107113

114+
## Can I crop or rotate an eReceipt?
115+
No. The **Crop** and **Rotate** buttons are only available for image receipts that you uploaded or scanned. eReceipts cannot be cropped or rotated.
116+
108117
## Can I attach both the card and itemized restaurant receipts?
109118
Yes. Attach the **card receipt** to the expense itself, and upload the **itemized receipt** in the report comments as supporting documentation.

docs/articles/new-expensify/reports-and-expenses/Delete-Expenses.md

Lines changed: 0 additions & 77 deletions
This file was deleted.

docs/articles/new-expensify/reports-and-expenses/Duplicate-Detection.md

Lines changed: 0 additions & 41 deletions
This file was deleted.
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
---
2+
title: How to Delete Expenses
3+
description: Learn how to delete expenses in New Expensify, including how to remove expenses from reports, when you need to retract a report, and why some expenses can’t be deleted.
4+
keywords: [New Expensify, delete expenses, remove expense, delete expense report, company card expense delete, retract report delete expense, cannot delete expense Expensify]
5+
internalScope: Audience includes all members. Covers deleting individual expenses, deleting expenses from reports, retracting reports to enable deletion, company card deletion rules. Does not cover editing expenses, reimbursement workflows, expense approvals beyond deletion requirements.
6+
---
7+
8+
# How to delete expenses
9+
10+
Deleting an expense depends on the expense type and the report status.
11+
12+
Most expenses can be deleted directly. If an expense is on a submitted report or comes from a company card, you may need to take additional steps first.
13+
14+
---
15+
16+
## How to delete a single expense
17+
18+
1. Open the expense you want to delete.
19+
2. From the expense, choose **More**.
20+
3. Choose **Delete**.
21+
22+
---
23+
24+
## How to delete multiple expenses
25+
26+
1. In the navigation tabs (on the left on web, on the bottom on mobile) select **Reports** > **Expenses**.
27+
2. Select the expenses you want to delete.
28+
3. Choose **Selected**, then **Delete**.
29+
30+
**Note:** You can only delete your own Unreported, Draft, and Outstanding expenses. You can’t delete expenses created by other members.
31+
32+
---
33+
34+
## How to delete an expense from a report
35+
36+
1. In the navigation tabs (on the left on web, on the bottom on mobile) select **Reports** > **Expenses**.
37+
2. Open the report that contains the expense.
38+
3. Select the expense you want to delete.
39+
4. Choose **Selected**, then **Delete**.
40+
41+
**Note:** You can only delete expenses from your own Unreported, Draft, and Outstanding reports. If the report is Approved, Done or Paid, it will need to be retracted first before deleting the expense. [Learn how to retract a report](https://help.expensify.com/articles/new-expensify/reports-and-expenses/Edit-Expense-Reports).
42+
43+
---
44+
45+
## Why you can’t delete an expense
46+
47+
Expenses can only be deleted when certain conditions are met.
48+
49+
<!-- ADD LINK:
50+
link helpdot page explaining expense icons and what they mean
51+
https://github.com/Expensify/Expensify/issues/614406
52+
-->
53+
54+
**Cash expenses can be deleted when:**
55+
56+
- The expense was created by you.
57+
- The expense is a manual cash expense, distance expense, or SmartScanned receipt.
58+
- The expense is Unreported or on a Draft or Outstanding report.
59+
60+
**Imported company card expenses can be deleted when:**
61+
62+
- The workspace setting **Allow deleting transactions** was enabled at the time the expense was imported
63+
- The expense is Unreported or on a Draft or Outstanding report
64+
65+
If an expense can't be deleted, you can [remove the expense from the report](https://help.expensify.com/articles/new-expensify/reports-and-expenses/Managing-Expenses-in-a-Report#how-to-move-or-remove-expenses-from-a-report) and move it to your personal space instead.
66+
67+
---
68+
69+
# FAQ
70+
71+
## How can I delete another member's expenses?
72+
73+
You can only delete expenses in your own account.
74+
75+
If you need access to another member’s expenses, ask them to [add you as a Copilot](https://help.expensify.com/articles/new-expensify/settings/Copilot-Access). This allows you to manage expenses on their behalf.
76+
77+
## How can a Workspace Admin allow members to delete company card expenses?
78+
79+
Workspace Admins can allow deletion of future imported company card expenses by enabling **Allow deleting transactions**.
80+
81+
To enable this setting on a Workspace feed:
82+
83+
1. In the navigation tabs (on the left on web, on the bottom on mobile), select **Workspaces > [Workspace Name] > Company cards**.
84+
2. Click **Settings**.
85+
3. Enable **Allow deleting transactions**.
86+
87+
**Note:** This setting only applies to expenses imported after it’s enabled.
88+
89+
## How can a Workspace Admin delete company card expenses imported after a certain date?
90+
91+
Workspace Admins can remove certain imported expenses by unassigning a card.
92+
93+
To unassign a company card on a workspace feed:
94+
95+
1. In the navigation tabs (on the left on web, on the bottom on mobile) select **Workspaces > [Workspace Name] > Company cards**.
96+
2. Select the card.
97+
3. Click **Unassign Card**.
98+
99+
**Note:** This permanently deletes all Unreported and Draft expenses on that card. Expenses on Outstanding, Approved, Done, or Paid reports aren’t deleted.

0 commit comments

Comments
 (0)