Repository navigation
Conversation
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
Replace two separate API calls with the new SetPolicyCategoryReceiptsAndItemizedReceiptRequired command when: - Receipt Required is set to Never (cascades itemized to Never) - Itemized Receipt Required is set to Always (cascades receipt to Always)
…pt-itemized-receipt-interaction
Tests both cascading directions of the joint API command: - Receipt Required → Never cascades Itemized Receipt → Never - Itemized Receipt Required → Always cascades Receipt Required → Always
|
@ShridharGoel 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] |
…pt-itemized-receipt-interaction
|
@abzokhattab Is this ready for review? Asking since title still mentions "WIP" |
…pt-itemized-receipt-interaction
|
now its ready for review |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2026-03-04.at.1.07.02.AM.movAndroid: mWeb ChromeScreen.Recording.2026-03-04.at.1.09.47.AM.moviOS: HybridAppScreen.Recording.2026-03-04.at.1.05.32.AM.moviOS: mWeb SafariScreen.Recording.2026-03-04.at.1.08.47.AM.movMacOS: Chrome / SafariScreen.Recording.2026-03-04.at.12.56.31.AM.mov |
|
@heyjennahay I'm going to switch you on for this PR as it's your project. 👍 |
…-category-receipt-itemized-receipt-interaction # Conflicts: # src/libs/API/parameters/index.ts
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚧 @dangrous has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/dangrous in version: 9.3.36-0 🚀
|
|
🚀 Deployed to production by https://github.com/luacmartins in version: 9.3.36-10 🚀
|
Explanation of Change
This PR refines the interaction between the "Receipt Required" and "Itemized Receipt Required" category rule settings by introducing cascading logic:
A new joint API command
SetPolicyCategoryReceiptsAndItemizedReceiptRequiredis used for these two cascading cases to update both settings in a single call (maintaining the 1:1:1 pattern). All other non-cascading selections continue to use the existing individual commands. Policy-level receipt settings are not affected.Fixed Issues
$ #81713
PROPOSAL:
Tests
Cascade: Receipt Required → Never also sets Itemized Receipt to Never
Cascade: Itemized Receipt Required → Always also sets Receipt Required to Always
No cascade for other selections
Offline tests
Same as Tests
QA Steps
Same as Tests
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)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.Screenshots/Videos
Android: Native
Screen.Recording.2026-03-03.at.18.32.24.mov
Android: mWeb Chrome
Screen.Recording.2026-03-03.at.18.39.08.mov
iOS: Native
Screen.Recording.2026-03-03.at.18.27.25.mov
iOS: mWeb Safari
Screen.Recording.2026-03-03.at.18.29.47.mov
MacOS: Chrome / Safari
Screen.Recording.2026-03-03.at.18.22.11.mov
Screen.Recording.2026-03-03.at.18.25.22.mov