Merge remote-tracking branch 'origin/task_expense_journal'

This commit is contained in:
Ahmed Bouhuolia
2020-07-06 21:52:52 +02:00
11 changed files with 144 additions and 72 deletions

View File

@@ -34,6 +34,7 @@ const ERROR = {
VENDORS_NOT_WITH_PAYABLE_ACCOUNT: 'VENDORS.NOT.WITH.PAYABLE.ACCOUNT',
PAYABLE_ENTRIES_HAS_NO_VENDORS: 'PAYABLE.ENTRIES.HAS.NO.VENDORS',
RECEIVABLE_ENTRIES_HAS_NO_CUSTOMERS: 'RECEIVABLE.ENTRIES.HAS.NO.CUSTOMERS',
CREDIT_DEBIT_SUMATION_SHOULD_NOT_EQUAL_ZERO:'CREDIT.DEBIT.SUMATION.SHOULD.NOT.EQUAL.ZERO'
};
/**
@@ -57,6 +58,7 @@ function MakeJournalEntriesForm({
onFormSubmit,
onCancelForm,
}) {
const { formatMessage } = useIntl();
const {
setFiles,
@@ -68,10 +70,12 @@ function MakeJournalEntriesForm({
saveCallback: requestSubmitMedia,
deleteCallback: requestDeleteMedia,
});
const handleDropFiles = useCallback((_files) => {
setFiles(_files.filter((file) => file.uploaded === false));
}, []);
const savedMediaIds = useRef([]);
const clearSavedMediaIds = () => {
savedMediaIds.current = [];
@@ -238,12 +242,15 @@ function MakeJournalEntriesForm({
);
}
setErrors({ ...newErrors });
AppToaster.show({
message: toastMessages.map((message) => {
return <div>- {message}</div>;
}),
intent: Intent.DANGER,
});
if (toastMessages.length > 0) {
AppToaster.show({
message: toastMessages.map((message) => {
return <div>- {message}</div>;
}),
intent: Intent.DANGER,
});
}
};
const formik = useFormik({

View File

@@ -46,7 +46,7 @@ function MakeJournalEntriesPage({
);
const handleCancel = useCallback(() => {
history.push('/manual-journals');
history.goBack();
}, [history]);
return (

View File

@@ -41,7 +41,7 @@ function ManualJournalActionsBar({
addManualJournalsTableQueries,
onFilterChanged,
selectedRows,
selectedRows = [],
onBulkDelete,
}) {
const { path } = useRouteMatch();
@@ -73,9 +73,9 @@ function ManualJournalActionsBar({
onFilterChanged && onFilterChanged(filterConditions);
},
});
const hasSelectedRows = useMemo(() => selectedRows.length > 0, [
selectedRows,
]);
const hasSelectedRows = useMemo(
() => selectedRows.length > 0,
[selectedRows]);
// Handle delete button click.
const handleBulkDelete = useCallback(() => {

View File

@@ -23,9 +23,9 @@ import withManualJournals from 'containers/Accounting/withManualJournals';
import withManualJournalsActions from 'containers/Accounting/withManualJournalsActions';
/**
* Status column accessor.
* Status column accessor.
*/
function StatusAccessor(row) {
const StatusAccessor = (row) => {
return (
<Choose>
<Choose.When condition={!!row.status}>
@@ -41,7 +41,7 @@ function StatusAccessor(row) {
</Choose.Otherwise>
</Choose>
);
}
};
/**
* Note column accessor.
@@ -115,12 +115,12 @@ function ManualJournalsDataTable({
<Menu>
<MenuItem text={formatMessage({ id: 'view_details' })} />
<MenuDivider />
{!journal.status && (
<If condition={!journal.status}>
<MenuItem
text={formatMessage({ id: 'publish_journal' })}
onClick={handlePublishJournal(journal)}
/>
)}
</If>
<MenuItem
text={formatMessage({ id: 'edit_journal' })}
onClick={handleEditJournal(journal)}
@@ -230,20 +230,29 @@ function ManualJournalsDataTable({
},
[onSelectedRowsChange],
);
const selectionColumn = useMemo(
() => ({
minWidth: 40,
width: 40,
maxWidth: 40,
}),
[],
);
return (
<DataTable
noInitialFetch={true}
columns={columns}
data={manualJournalsCurrentPage}
onFetchData={handleDataTableFetchData}
manualSortBy={true}
selectionColumn={true}
noInitialFetch={true}
selectionColumn={selectionColumn}
expandable={true}
sticky={true}
loading={manualJournalsLoading && !isMounted}
onSelectedRowsChange={handleSelectedRowsChange}
pagination={true}
loading={manualJournalsLoading && !isMounted}
rowContextMenu={onRowContextMenu}
pagination={true}
pagesCount={manualJournalsPagination.pagesCount}
initialPageSize={manualJournalsTableQuery.page_size}
initialPageIndex={manualJournalsTableQuery.page - 1}

View File

@@ -3,7 +3,11 @@ import { Route, Switch, useHistory, withRouter } from 'react-router-dom';
import { useQuery } from 'react-query';
import { Alert, Intent } from '@blueprintjs/core';
import AppToaster from 'components/AppToaster';
import { FormattedMessage as T, useIntl } from 'react-intl';
import {
FormattedMessage as T,
useIntl,
FormattedHTMLMessage,
} from 'react-intl';
import DashboardPageContent from 'components/Dashboard/DashboardPageContent';
import DashboardInsider from 'components/Dashboard/DashboardInsider';
@@ -114,6 +118,7 @@ function ManualJournalsTable({
const handleConfirmBulkDelete = useCallback(() => {
requestDeleteBulkManualJournals(bulkDelete)
.then(() => {
setBulkDelete(false);
AppToaster.show({
message: formatMessage(
{ id: 'the_journals_has_been_successfully_deleted' },
@@ -121,7 +126,6 @@ function ManualJournalsTable({
),
intent: Intent.SUCCESS,
});
setBulkDelete(false);
})
.catch((error) => {
setBulkDelete(false);
@@ -181,6 +185,7 @@ function ManualJournalsTable({
message: formatMessage({
id: 'the_manual_journal_id_has_been_published',
}),
intent: Intent.SUCCESS,
});
});
},
@@ -237,11 +242,7 @@ function ManualJournalsTable({
onConfirm={handleConfirmManualJournalDelete}
>
<p>
<T
id={
'once_delete_this_journal_category_you_will_able_to_restore_it'
}
/>
<T id={'once_delete_this_journal_you_will_able_to_restore_it'} />
</p>
</Alert>
@@ -258,7 +259,7 @@ function ManualJournalsTable({
>
<p>
<T
id={'once_delete_these_journalss_you_will_not_able_restore_them'}
id={'once_delete_these_journals_you_will_not_able_restore_them'}
/>
</p>
</Alert>