diff --git a/src/common/modalChargeOptions.tsx b/src/common/modalChargeOptions.tsx
index 05b737877..fd832c48e 100644
--- a/src/common/modalChargeOptions.tsx
+++ b/src/common/modalChargeOptions.tsx
@@ -12,6 +12,6 @@ export const expenseChargeOption = [
value: '% markup',
},
{ name: intl.get('expenses.dialog.pass_cost_on'), value: 'Pass cost on' },
- { name: intl.get('expemses.dialog.custom_price'), value: 'Custom Pirce' },
+ { name: intl.get('expenses.dialog.custom_pirce'), value: 'Custom Pirce' },
{ name: intl.get('expenses.dialog.non_chargeable'), value: 'Non-chargeable' },
];
diff --git a/src/containers/Projects/components/FInputGroupComponent.tsx b/src/containers/Projects/components/FInputGroupComponent.tsx
new file mode 100644
index 000000000..dff4aaea4
--- /dev/null
+++ b/src/containers/Projects/components/FInputGroupComponent.tsx
@@ -0,0 +1,20 @@
+//@ts-nocheck
+import React from 'react';
+import { FInputGroup } from 'components';
+import { useFormikContext } from 'formik';
+
+export function FInputGroupComponent({ toField, ...props }) {
+ const { values, setFieldValue } = useFormikContext();
+ const { expenseQuantity, expenseUnitPrice } = values;
+ const total = expenseQuantity * expenseUnitPrice;
+
+ const handleBlur = () => {
+ setFieldValue(toField, total);
+ };
+
+ const inputGroupProps = {
+ onBlur: handleBlur,
+ ...props,
+ };
+ return ;
+}
diff --git a/src/containers/Projects/components/index.ts b/src/containers/Projects/components/index.ts
index 8a79d463f..1e12c7b83 100644
--- a/src/containers/Projects/components/index.ts
+++ b/src/containers/Projects/components/index.ts
@@ -1,2 +1,3 @@
export * from './ExpenseSelect';
export * from './ChargeSelect';
+export * from './FInputGroupComponent'
diff --git a/src/containers/Projects/containers/EstimatedExpenseFormDialog/EstimatedExpense.schema.tsx b/src/containers/Projects/containers/EstimatedExpenseFormDialog/EstimatedExpense.schema.tsx
index 2aada093e..148f7460b 100644
--- a/src/containers/Projects/containers/EstimatedExpenseFormDialog/EstimatedExpense.schema.tsx
+++ b/src/containers/Projects/containers/EstimatedExpenseFormDialog/EstimatedExpense.schema.tsx
@@ -12,7 +12,7 @@ const Schema = Yup.object().shape({
unitPrice: Yup.number().label(
intl.get('estimated_expense.schema.label.unit_price'),
),
- total: Yup.number(),
+ expenseTotal: Yup.number(),
charge: Yup.string(),
});
diff --git a/src/containers/Projects/containers/EstimatedExpenseFormDialog/EstimatedExpenseFormFields.tsx b/src/containers/Projects/containers/EstimatedExpenseFormDialog/EstimatedExpenseFormFields.tsx
index 975903ca2..a9c525ea8 100644
--- a/src/containers/Projects/containers/EstimatedExpenseFormDialog/EstimatedExpenseFormFields.tsx
+++ b/src/containers/Projects/containers/EstimatedExpenseFormDialog/EstimatedExpenseFormFields.tsx
@@ -10,7 +10,7 @@ import {
FormattedMessage as T,
FieldRequiredHint,
} from 'components';
-import { ExpenseSelect } from '../../components';
+import { ExpenseSelect, FInputGroupComponent } from '../../components';
import { useEstimatedExpenseFormContext } from './EstimatedExpenseFormProvider';
import EstimatedExpenseFormChargeFields from './EstimatedExpenseFormChargeFields';
import { ChargeSelect } from '../../components';
@@ -41,27 +41,31 @@ export default function EstimatedExpenseFormFields() {
label={intl.get('estimated_expenses.dialog.quantity')}
name={'quantity'}
>
-
+
- Cost to you
+
+
+
{/*------------ Unit Price -----------*/}
-
+
-
+
- What you'll charge
+
+
+
{/*------------ Charge -----------*/}
-
+
- Cost to you
+
+
+
{/*------------ Unit Price -----------*/}
-
+
- What you'll charge
+
+
+
{/*------------ Charge -----------*/}
- $100000
+ 0.00
@@ -75,8 +75,9 @@ export default TaskFormFields;
const EstimatedAmountBase = styled.div`
display: flex;
justify-content: flex-end;
- font-size: 12px;
- /* opacity: 0.7; */
+ font-size: 14px;
+ line-height: 1.5rem;
+ opacity: 0.75;
`;
const EstimatedAmountContent = styled.span`
@@ -85,7 +86,7 @@ const EstimatedAmountContent = styled.span`
`;
const EstimateAmount = styled.span`
- font-size: 13px;
+ font-size: 15px;
font-weight: 700;
margin-left: 10px;
`;
diff --git a/src/lang/en/index.json b/src/lang/en/index.json
index ee5168c64..867d706de 100644
--- a/src/lang/en/index.json
+++ b/src/lang/en/index.json
@@ -2115,6 +2115,8 @@
"expenses.dialog.pass_cost_on": "Pass cost on",
"expenses.dialog.custom_pirce": "Custom Pirce",
"expenses.dialog.non_chargeable": "Non-chargeable",
+ "expenses.dialog.cost_to_you":"Cost to you",
+ "expenses.dialog.what_you_ll_charge":"What you'll charge",
"expense.schema.label.expense_name": "Expense name",
"expense.schema.label.estimated_expense": "Estimated expense",
"expense.schema.label.quantity": "Quantity",
@@ -2128,6 +2130,8 @@
"estimated_expenses.dialog.charge": "Charge",
"estimated_expenses.dialog.percentage": "Percentage",
"estimated_expenses.dialog.estimated_amount": "Estimated Amount:",
+ "estimated_expenses.dialog.cost_to_you":"Cost to you",
+ "estimated_expenses.dialog.what_you_ll_charge":"What you'll charge",
"estimated_expense.schema.label.estimated_expense": "Estimated expense name",
"estimated_expense.schema.label.quantity": "Quantity",
"estimated_expense.schema.label.unit_price": "Unit price",