forked from Expensify/App
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into @chrispader/theme-styles-consistent-naming
- Loading branch information
Showing
32 changed files
with
583 additions
and
241 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
45 changes: 45 additions & 0 deletions
45
docs/articles/expensify-classic/get-paid-back/Per-Diem-Expenses.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
--- | ||
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 | ||
|
||
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 (this is set by your employer). | ||
|
||
### Step 1: On either the web or mobile app, click New Expense and choose Per Diem | ||
|
||
### Step 2: Select your travel destination from the Destination dropdown | ||
If your trip involves multiple stops, create a separate Per Diem expense for each destination. Remember, the times are relative to your home city. | ||
|
||
### Step 3: Select your Start date, End date, Start time, and End time | ||
Expensify will automatically calculate the duration of your trip. We'll show you a breakdown of your days: the time between departure and midnight on the first day, the total days in between, and the time between midnight and your return time on the last day. | ||
|
||
### Step 4: Select a Subrate based on the trip duration from the dropdown list | ||
You can include meal deductions or overnight lodging costs if your jurisdiction permits. | ||
|
||
### Step 5: Enter any other required coding and click “Save” | ||
|
||
### Step 6: Submit for Approval | ||
Finally, submit your Per Diem expense for approval, and you'll be on your way to getting reimbursed! | ||
|
||
# FAQ | ||
|
||
## 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? | ||
No problem! Create a separate Per Diem expense for each day of your trip. | ||
|
||
## 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 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. |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
44 changes: 16 additions & 28 deletions
44
src/components/ConfirmationPage.js → src/components/ConfirmationPage.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,75 +1,63 @@ | ||
import PropTypes from 'prop-types'; | ||
import React from 'react'; | ||
import {View} from 'react-native'; | ||
import useThemeStyles from '@styles/useThemeStyles'; | ||
import Button from './Button'; | ||
import FixedFooter from './FixedFooter'; | ||
import Lottie from './Lottie'; | ||
import LottieAnimations from './LottieAnimations'; | ||
import DotLottieAnimation from './LottieAnimations/types'; | ||
import Text from './Text'; | ||
|
||
const propTypes = { | ||
type ConfirmationPageProps = { | ||
/** The asset to render */ | ||
// eslint-disable-next-line react/forbid-prop-types | ||
animation: PropTypes.object, | ||
animation?: DotLottieAnimation; | ||
|
||
/** Heading of the confirmation page */ | ||
heading: PropTypes.string, | ||
heading: string; | ||
|
||
/** Description of the confirmation page */ | ||
description: PropTypes.string, | ||
description: string; | ||
|
||
/** The text for the button label */ | ||
buttonText: PropTypes.string, | ||
buttonText?: string; | ||
|
||
/** A function that is called when the button is clicked on */ | ||
onButtonPress: PropTypes.func, | ||
onButtonPress?: () => void; | ||
|
||
/** Whether we should show a confirmation button */ | ||
shouldShowButton: PropTypes.bool, | ||
shouldShowButton?: boolean; | ||
}; | ||
|
||
const defaultProps = { | ||
animation: LottieAnimations.Fireworks, | ||
heading: '', | ||
description: '', | ||
buttonText: '', | ||
onButtonPress: () => {}, | ||
shouldShowButton: false, | ||
}; | ||
|
||
function ConfirmationPage(props) { | ||
function ConfirmationPage({animation = LottieAnimations.Fireworks, heading, description, buttonText = '', onButtonPress = () => {}, shouldShowButton = false}: ConfirmationPageProps) { | ||
const styles = useThemeStyles(); | ||
|
||
return ( | ||
<> | ||
<View style={[styles.screenCenteredContainer, styles.alignItemsCenter]}> | ||
<Lottie | ||
source={props.animation} | ||
source={animation} | ||
autoPlay | ||
loop | ||
style={styles.confirmationAnimation} | ||
webStyle={styles.confirmationAnimationWeb} | ||
/> | ||
<Text style={[styles.textHeadline, styles.textAlignCenter, styles.mv2]}>{props.heading}</Text> | ||
<Text style={styles.textAlignCenter}>{props.description}</Text> | ||
<Text style={[styles.textHeadline, styles.textAlignCenter, styles.mv2]}>{heading}</Text> | ||
<Text style={styles.textAlignCenter}>{description}</Text> | ||
</View> | ||
{props.shouldShowButton && ( | ||
{shouldShowButton && ( | ||
<FixedFooter> | ||
<Button | ||
success | ||
text={props.buttonText} | ||
text={buttonText} | ||
style={styles.mt6} | ||
pressOnEnter | ||
onPress={props.onButtonPress} | ||
onPress={onButtonPress} | ||
/> | ||
</FixedFooter> | ||
)} | ||
</> | ||
); | ||
} | ||
|
||
ConfirmationPage.propTypes = propTypes; | ||
ConfirmationPage.defaultProps = defaultProps; | ||
ConfirmationPage.displayName = 'ConfirmationPage'; | ||
|
||
export default ConfirmationPage; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.