mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-23 08:10:32 +00:00
feat(qucikpayment):add exchange rate muted & branch.
This commit is contained in:
@@ -5,30 +5,17 @@ import 'style/pages/PaymentReceive/QuickPaymentReceiveDialog.scss';
|
|||||||
import { QuickPaymentMadeFormProvider } from './QuickPaymentMadeFormProvider';
|
import { QuickPaymentMadeFormProvider } from './QuickPaymentMadeFormProvider';
|
||||||
import QuickPaymentMadeForm from './QuickPaymentMadeForm';
|
import QuickPaymentMadeForm from './QuickPaymentMadeForm';
|
||||||
|
|
||||||
import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
|
|
||||||
import { compose } from 'utils';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Quick payment made form dialog content.
|
* Quick payment made form dialog content.
|
||||||
*/
|
*/
|
||||||
function QuickPaymentMadeFormDialogContent({
|
export default function QuickPaymentMadeFormDialogContent({
|
||||||
// #ownProps
|
// #ownProps
|
||||||
dialogName,
|
dialogName,
|
||||||
bill,
|
bill,
|
||||||
// #withCurrentOrganization
|
|
||||||
organization: { base_currency },
|
|
||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<QuickPaymentMadeFormProvider
|
<QuickPaymentMadeFormProvider billId={bill} dialogName={dialogName}>
|
||||||
billId={bill}
|
|
||||||
baseCurrency={base_currency}
|
|
||||||
dialogName={dialogName}
|
|
||||||
>
|
|
||||||
<QuickPaymentMadeForm />
|
<QuickPaymentMadeForm />
|
||||||
</QuickPaymentMadeFormProvider>
|
</QuickPaymentMadeFormProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default compose(withCurrentOrganization())(
|
|
||||||
QuickPaymentMadeFormDialogContent,
|
|
||||||
);
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import React from 'react';
|
|||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { FastField, ErrorMessage, useFormikContext } from 'formik';
|
import { FastField, ErrorMessage, useFormikContext } from 'formik';
|
||||||
import { FormattedMessage as T } from 'components';
|
import { FormattedMessage as T } from 'components';
|
||||||
|
import { isEqual } from 'lodash';
|
||||||
import intl from 'react-intl-universal';
|
import intl from 'react-intl-universal';
|
||||||
import {
|
import {
|
||||||
Classes,
|
Classes,
|
||||||
@@ -38,12 +39,17 @@ import {
|
|||||||
import { useSetPrimaryBranchToForm, useForeignAccount } from './utils';
|
import { useSetPrimaryBranchToForm, useForeignAccount } from './utils';
|
||||||
import { useQuickPaymentMadeContext } from './QuickPaymentMadeFormProvider';
|
import { useQuickPaymentMadeContext } from './QuickPaymentMadeFormProvider';
|
||||||
|
|
||||||
|
import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
|
||||||
|
import { compose } from 'utils';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Quick payment made form fields.
|
* Quick payment made form fields.
|
||||||
*/
|
*/
|
||||||
export default function QuickPaymentMadeFormFields() {
|
function QuickPaymentMadeFormFields({
|
||||||
|
// #withCurrentOrganization
|
||||||
|
organization: { base_currency },
|
||||||
|
}) {
|
||||||
const { accounts, branches, baseCurrency } = useQuickPaymentMadeContext();
|
const { accounts, branches, baseCurrency } = useQuickPaymentMadeContext();
|
||||||
const isForeigAccount = useForeignAccount();
|
|
||||||
|
|
||||||
// Intl context.
|
// Intl context.
|
||||||
const { values } = useFormikContext();
|
const { values } = useFormikContext();
|
||||||
@@ -145,7 +151,8 @@ export default function QuickPaymentMadeFormFields() {
|
|||||||
</FormGroup>
|
</FormGroup>
|
||||||
)}
|
)}
|
||||||
</FastField>
|
</FastField>
|
||||||
<If condition={isForeigAccount}>
|
|
||||||
|
<If condition={!isEqual(base_currency, values.currency_code)}>
|
||||||
{/*------------ exchange rate -----------*/}
|
{/*------------ exchange rate -----------*/}
|
||||||
<ExchangeRateMutedField
|
<ExchangeRateMutedField
|
||||||
name={'exchange_rate'}
|
name={'exchange_rate'}
|
||||||
@@ -249,6 +256,8 @@ export default function QuickPaymentMadeFormFields() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export default compose(withCurrentOrganization())(QuickPaymentMadeFormFields);
|
||||||
|
|
||||||
export const BranchRowDivider = styled.div`
|
export const BranchRowDivider = styled.div`
|
||||||
height: 1px;
|
height: 1px;
|
||||||
background: #ebf1f6;
|
background: #ebf1f6;
|
||||||
|
|||||||
@@ -14,12 +14,7 @@ const QuickPaymentMadeContext = React.createContext();
|
|||||||
/**
|
/**
|
||||||
* Quick payment made dialog provider.
|
* Quick payment made dialog provider.
|
||||||
*/
|
*/
|
||||||
function QuickPaymentMadeFormProvider({
|
function QuickPaymentMadeFormProvider({ billId, dialogName, ...props }) {
|
||||||
billId,
|
|
||||||
baseCurrency,
|
|
||||||
dialogName,
|
|
||||||
...props
|
|
||||||
}) {
|
|
||||||
// Handle fetch bill details.
|
// Handle fetch bill details.
|
||||||
const { isLoading: isBillLoading, data: bill } = useBill(billId, {
|
const { isLoading: isBillLoading, data: bill } = useBill(billId, {
|
||||||
enabled: !!billId,
|
enabled: !!billId,
|
||||||
@@ -48,7 +43,6 @@ function QuickPaymentMadeFormProvider({
|
|||||||
accounts,
|
accounts,
|
||||||
branches,
|
branches,
|
||||||
dialogName,
|
dialogName,
|
||||||
baseCurrency,
|
|
||||||
createPaymentMadeMutate,
|
createPaymentMadeMutate,
|
||||||
isBranchesSuccess,
|
isBranchesSuccess,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -47,10 +47,3 @@ export const useSetPrimaryBranchToForm = () => {
|
|||||||
}
|
}
|
||||||
}, [isBranchesSuccess, setFieldValue, branches]);
|
}, [isBranchesSuccess, setFieldValue, branches]);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const useForeignAccount = () => {
|
|
||||||
const { values } = useFormikContext();
|
|
||||||
const { baseCurrency } = useQuickPaymentMadeContext();
|
|
||||||
|
|
||||||
return !isEqual(baseCurrency, values.currency_code);
|
|
||||||
};
|
|
||||||
|
|||||||
@@ -2,32 +2,23 @@ import React from 'react';
|
|||||||
|
|
||||||
import 'style/pages/PaymentReceive/QuickPaymentReceiveDialog.scss';
|
import 'style/pages/PaymentReceive/QuickPaymentReceiveDialog.scss';
|
||||||
|
|
||||||
import QuickPaymentReceiveForm from './QuickPaymentReceiveForm';
|
|
||||||
import { QuickPaymentReceiveFormProvider } from './QuickPaymentReceiveFormProvider';
|
import { QuickPaymentReceiveFormProvider } from './QuickPaymentReceiveFormProvider';
|
||||||
|
import QuickPaymentReceiveForm from './QuickPaymentReceiveForm';
|
||||||
import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
|
|
||||||
import { compose } from 'utils';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Quick payment receive form dialog content.
|
* Quick payment receive form dialog content.
|
||||||
*/
|
*/
|
||||||
function QuickPaymentReceiveFormDialogContent({
|
export default function QuickPaymentReceiveFormDialogContent({
|
||||||
// #ownProps
|
// #ownProps
|
||||||
dialogName,
|
dialogName,
|
||||||
invoice,
|
invoice,
|
||||||
// #withCurrentOrganization
|
|
||||||
organization: { base_currency },
|
|
||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<QuickPaymentReceiveFormProvider
|
<QuickPaymentReceiveFormProvider
|
||||||
invoiceId={invoice}
|
invoiceId={invoice}
|
||||||
dialogName={dialogName}
|
dialogName={dialogName}
|
||||||
baseCurrency={base_currency}
|
|
||||||
>
|
>
|
||||||
<QuickPaymentReceiveForm />
|
<QuickPaymentReceiveForm />
|
||||||
</QuickPaymentReceiveFormProvider>
|
</QuickPaymentReceiveFormProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
export default compose(withCurrentOrganization())(
|
|
||||||
QuickPaymentReceiveFormDialogContent,
|
|
||||||
);
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { FastField, ErrorMessage, useFormikContext } from 'formik';
|
|||||||
import { FormattedMessage as T } from 'components';
|
import { FormattedMessage as T } from 'components';
|
||||||
import intl from 'react-intl-universal';
|
import intl from 'react-intl-universal';
|
||||||
import { useAutofocus } from 'hooks';
|
import { useAutofocus } from 'hooks';
|
||||||
|
import { isEqual } from 'lodash';
|
||||||
import {
|
import {
|
||||||
Classes,
|
Classes,
|
||||||
FormGroup,
|
FormGroup,
|
||||||
@@ -36,17 +37,22 @@ import {
|
|||||||
handleDateChange,
|
handleDateChange,
|
||||||
compose,
|
compose,
|
||||||
} from 'utils';
|
} from 'utils';
|
||||||
import { useSetPrimaryBranchToForm, useForeignAccount } from './utils';
|
import { useSetPrimaryBranchToForm } from './utils';
|
||||||
import { useQuickPaymentReceiveContext } from './QuickPaymentReceiveFormProvider';
|
import { useQuickPaymentReceiveContext } from './QuickPaymentReceiveFormProvider';
|
||||||
|
|
||||||
|
import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
|
||||||
import withSettings from 'containers/Settings/withSettings';
|
import withSettings from 'containers/Settings/withSettings';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Quick payment receive form fields.
|
* Quick payment receive form fields.
|
||||||
*/
|
*/
|
||||||
function QuickPaymentReceiveFormFields({ paymentReceiveAutoIncrement }) {
|
function QuickPaymentReceiveFormFields({
|
||||||
const { accounts, branches, baseCurrency } = useQuickPaymentReceiveContext();
|
paymentReceiveAutoIncrement,
|
||||||
|
|
||||||
const isForeigAccount = useForeignAccount();
|
// #withCurrentOrganization
|
||||||
|
organization: { base_currency },
|
||||||
|
}) {
|
||||||
|
const { accounts, branches, baseCurrency } = useQuickPaymentReceiveContext();
|
||||||
|
|
||||||
// Intl context.
|
// Intl context.
|
||||||
const { values } = useFormikContext();
|
const { values } = useFormikContext();
|
||||||
@@ -151,7 +157,7 @@ function QuickPaymentReceiveFormFields({ paymentReceiveAutoIncrement }) {
|
|||||||
)}
|
)}
|
||||||
</FastField>
|
</FastField>
|
||||||
|
|
||||||
<If condition={isForeigAccount}>
|
<If condition={!isEqual(base_currency, values.currency_code)}>
|
||||||
{/*------------ exchange rate -----------*/}
|
{/*------------ exchange rate -----------*/}
|
||||||
<ExchangeRateMutedField
|
<ExchangeRateMutedField
|
||||||
name={'exchange_rate'}
|
name={'exchange_rate'}
|
||||||
@@ -242,6 +248,7 @@ function QuickPaymentReceiveFormFields({ paymentReceiveAutoIncrement }) {
|
|||||||
</FormGroup>
|
</FormGroup>
|
||||||
)}
|
)}
|
||||||
</FastField>
|
</FastField>
|
||||||
|
|
||||||
{/* --------- Statement --------- */}
|
{/* --------- Statement --------- */}
|
||||||
<FastField name={'statement'}>
|
<FastField name={'statement'}>
|
||||||
{({ form, field, meta: { error, touched } }) => (
|
{({ form, field, meta: { error, touched } }) => (
|
||||||
@@ -261,6 +268,7 @@ export default compose(
|
|||||||
withSettings(({ paymentReceiveSettings }) => ({
|
withSettings(({ paymentReceiveSettings }) => ({
|
||||||
paymentReceiveAutoIncrement: paymentReceiveSettings?.autoIncrement,
|
paymentReceiveAutoIncrement: paymentReceiveSettings?.autoIncrement,
|
||||||
})),
|
})),
|
||||||
|
withCurrentOrganization(),
|
||||||
)(QuickPaymentReceiveFormFields);
|
)(QuickPaymentReceiveFormFields);
|
||||||
|
|
||||||
export const BranchRowDivider = styled.div`
|
export const BranchRowDivider = styled.div`
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
import intl from 'react-intl-universal';
|
import intl from 'react-intl-universal';
|
||||||
import { first, isEqual } from 'lodash';
|
import { first } from 'lodash';
|
||||||
|
|
||||||
import { useFormikContext } from 'formik';
|
import { useFormikContext } from 'formik';
|
||||||
import { useQuickPaymentReceiveContext } from './QuickPaymentReceiveFormProvider';
|
import { useQuickPaymentReceiveContext } from './QuickPaymentReceiveFormProvider';
|
||||||
@@ -55,10 +55,3 @@ export const useSetPrimaryBranchToForm = () => {
|
|||||||
}
|
}
|
||||||
}, [isBranchesSuccess, setFieldValue, branches]);
|
}, [isBranchesSuccess, setFieldValue, branches]);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const useForeignAccount = () => {
|
|
||||||
const { values } = useFormikContext();
|
|
||||||
const { baseCurrency } = useQuickPaymentReceiveContext();
|
|
||||||
|
|
||||||
return !isEqual(baseCurrency, values.currency_code);
|
|
||||||
};
|
|
||||||
|
|||||||
Reference in New Issue
Block a user