Add prohibited expense feature#56550
Conversation
|
@carlosmiceli Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
Looks great 😄 If I were to nitpick I'd say have sentence case for the toggles... |
|
+1! James will come after you if you don't sentence case it 😂 |
|
Agree with the previous comments, and wow this is a cool feature!! |
| alcohol: 'Alcohol', | ||
| hotelIncidentals: 'Hotel Incidentals', | ||
| gambling: 'Gambling', | ||
| tobacco: 'Tobacco', |
There was a problem hiding this comment.
on the backend we're doing drugsAndTobacco but could change it.
There was a problem hiding this comment.
(update - i just updated the BE to be just tobacco)
Reviewer Checklist
Screenshots/VideosAndroid: NativeAndroid: mWeb ChromeiOS: NativeiOS: mWeb SafariMacOS: Chrome / SafariMacOS: Desktop |
|
Web-E PR is in final review so we should be good to move on this one soon, thanks for your patience. |
|
web-e is merged, just waiting on deploy then I'll update the conflicts and we should be good to go! |
|
eyyy we're deployed. Will aim to fix this up for final review today |
|
Out of curiosity, are there issues for the below for this new feature?
|
|
@trjExpensify I think we're still a ways away from that so not yet, as far as I know. This is more for an internal demo to go along with the predesign @MitchExpensify is about to run |
|
fixed conflicts, retested. Looking good to me! |
Ah cool okay, so it's behind a beta and those items will be taken care of in a more formal project tracker at some point before removing said beta? 👍 |
|
yep, exactly! |
|
conflicts resolved - ready for a final look/merge @carlosmiceli, thanks! (I can't unassign myself as a reviewer for some reason but since I wrote part of this I can't review, it's all you!) |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
@AndrewGable If our QA team does not have a receipt with prohibited expense category, could you share any receipt? |
|
🚀 Deployed to staging by https://github.com/carlosmiceli in version: 9.1.17-0 🚀
|
|
@kavimuru I can take care of testing for this! Just waiting for the beta to register on my test account |
|
tests well @kavimuru! |
|
🚀 Deployed to production by https://github.com/cristipaval in version: 9.1.17-1 🚀
|
| return message; | ||
| }, | ||
| prohibitedExpense: ({prohibitedExpenseType}: ViolationsProhibitedExpenseParams) => { | ||
| const preMessage = 'Prohibited Expense: '; |
There was a problem hiding this comment.
Hi!, coming from #60216 (BugZero Checklist), the copy has capitalization errors.

Explanation of Change
held on https://github.com/Expensify/Web-Expensify/pull/45470
Adds the ability to configure prohibited expenses as a workspace rule.
Tests
NoneQA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)myBool && <MyComponent />.src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps./** comment above it */thisproperly so there are no scoping issues (i.e. foronClick={this.submit}the methodthis.submitshould be bound tothisin the constructor)thisare necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);ifthis.submitis never passed to a component event handler likeonClick)Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
MacOS: Desktop