fix :default currency in make journal form.

This commit is contained in:
elforjani3
2020-11-15 19:03:26 +02:00
parent e7bded2e6a
commit 9d1cb8791f
3 changed files with 56 additions and 9 deletions

View File

@@ -126,6 +126,7 @@ function MakeJournalEntriesForm({
date: Yup.date()
.required()
.label(formatMessage({ id: 'date' })),
currency_code: Yup.string(),
reference: Yup.string().min(1).max(255),
description: Yup.string().min(1).max(1024),
entries: Yup.array().of(
@@ -172,6 +173,7 @@ function MakeJournalEntriesForm({
date: moment(new Date()).format('YYYY-MM-DD'),
description: '',
reference: '',
currency_code: '',
entries: [...repeatValue(defaultEntry, 4)],
}),
[defaultEntry, journalNumber],
@@ -442,11 +444,12 @@ function MakeJournalEntriesForm({
},
[changePageSubtitle],
);
console.log(values, 'Val');
return (
<div class="make-journal-entries">
<form onSubmit={handleSubmit}>
<MakeJournalEntriesHeader
manualJournal={manualJournalId}
errors={errors}
touched={touched}
values={values}

View File

@@ -1,4 +1,4 @@
import React, { useMemo, useCallback } from 'react';
import React, { useMemo, useState, useCallback } from 'react';
import {
InputGroup,
FormGroup,
@@ -15,16 +15,18 @@ import classNames from 'classnames';
import { CLASSES } from 'common/classes';
import { momentFormatter, tansformDateValue, saveInvoke } from 'utils';
import {
CurrenciesSelectList,
ErrorMessage,
Hint,
FieldHint,
FieldRequiredHint,
Icon,
InputPrependButton,
CurrencySelectList,
} from 'components';
import withDialogActions from 'containers/Dialog/withDialogActions';
import withCurrencies from 'containers/Currencies/withCurrencies';
import withSettings from 'containers/Settings/withSettings';
import { compose } from 'utils';
@@ -36,11 +38,20 @@ function MakeJournalEntriesHeader({
getFieldProps,
// #ownProps
manualJournal,
onJournalNumberChanged,
// #withSettings
baseCurrency,
// #withCurrencies
currenciesList,
// #withDialog
openDialog,
}) {
const [selectedItems, setSelectedItems] = useState({});
const handleDateChange = useCallback(
(date) => {
const formatted = moment(date).format('YYYY-MM-DD');
@@ -57,6 +68,19 @@ function MakeJournalEntriesHeader({
saveInvoke(onJournalNumberChanged, event.currentTarget.value);
};
const onItemsSelect = useCallback(
(filedName) => {
return (filed) => {
setSelectedItems({
...selectedItems,
[filedName]: filed,
});
setFieldValue(filedName, filed.currency_code);
};
},
[setFieldValue, selectedItems],
);
return (
<div class="make-journal-entries__header">
<Row>
@@ -197,7 +221,12 @@ function MakeJournalEntriesHeader({
CLASSES.FILL,
)}
>
<CurrenciesSelectList />
<CurrencySelectList
currenciesList={currenciesList}
selectedCurrencyCode={values.currency_code}
onCurrencySelected={onItemsSelect('currency_code')}
defaultSelectText={baseCurrency}
/>
</FormGroup>
</Col>
</Row>
@@ -205,4 +234,12 @@ function MakeJournalEntriesHeader({
);
}
export default compose(withDialogActions)(MakeJournalEntriesHeader);
export default compose(
withDialogActions,
withSettings(({ organizationSettings }) => ({
baseCurrency: organizationSettings?.baseCurrency,
})),
withCurrencies(({ currenciesList }) => ({
currenciesList,
})),
)(MakeJournalEntriesHeader);

View File

@@ -8,6 +8,7 @@ import DashboardInsider from 'components/Dashboard/DashboardInsider';
import withCustomersActions from 'containers/Customers/withCustomersActions';
import withAccountsActions from 'containers/Accounts/withAccountsActions';
import withManualJournalsActions from 'containers/Accounting/withManualJournalsActions';
import withCurrenciesActions from 'containers/Currencies/withCurrenciesActions';
import withSettingsActions from 'containers/Settings/withSettingsActions';
import { compose } from 'utils';
@@ -22,6 +23,9 @@ function MakeJournalEntriesPage({
// #withManualJournalActions
requestFetchManualJournal,
// #wihtCurrenciesActions
requestFetchCurrencies,
// #withSettingsActions
requestFetchOptions,
}) {
@@ -36,11 +40,12 @@ function MakeJournalEntriesPage({
requestFetchCustomers(),
);
const fetchSettings = useQuery(
['settings'],
() => requestFetchOptions({}),
const fetchCurrencies = useQuery('currencies', () =>
requestFetchCurrencies(),
);
const fetchSettings = useQuery(['settings'], () => requestFetchOptions({}));
const fetchJournal = useQuery(
['manual-journal', id],
(key, journalId) => requestFetchManualJournal(journalId),
@@ -63,6 +68,7 @@ function MakeJournalEntriesPage({
loading={
fetchJournal.isFetching ||
fetchAccounts.isFetching ||
fetchCurrencies.isFetching ||
fetchCustomers.isFetching
}
name={'make-journal-page'}
@@ -80,5 +86,6 @@ export default compose(
withAccountsActions,
withCustomersActions,
withManualJournalsActions,
withSettingsActions
withCurrenciesActions,
withSettingsActions,
)(MakeJournalEntriesPage);