fix: sale receipt view.

This commit is contained in:
elforjani3
2020-12-19 18:48:57 +02:00
parent 5f8ecddd62
commit 74225ceea9
6 changed files with 48 additions and 52 deletions

View File

@@ -40,6 +40,9 @@ function ItemsViewsTabs({
useEffect(() => { useEffect(() => {
setTopbarEditView(customViewId); setTopbarEditView(customViewId);
changePageSubtitle(customViewId && viewItem ? viewItem.name : ''); changePageSubtitle(customViewId && viewItem ? viewItem.name : '');
addItemsTableQueries({
custom_view_id: customViewId || null,
});
}, [customViewId]); }, [customViewId]);
const handleClickNewView = () => {}; const handleClickNewView = () => {};

View File

@@ -37,12 +37,12 @@ function ReceiptActionsBar({
receiptview, receiptview,
//#withReceiptActions //#withReceiptActions
addReceiptsTableQueries, addReceiptsTableQueries,
changeReceiptView,
//#OWn Props //#OWn Props
onFilterChanged, onFilterChanged,
selectedRows = [], selectedRows = [],
}) { }) {
const { path } = useRouteMatch();
const history = useHistory(); const history = useHistory();
const [filterCount, setFilterCount] = useState(0); const [filterCount, setFilterCount] = useState(0);
const { formatMessage } = useIntl(); const { formatMessage } = useIntl();
@@ -51,6 +51,17 @@ function ReceiptActionsBar({
history.push('/receipts/new'); history.push('/receipts/new');
}, [history]); }, [history]);
const hasSelectedRows = useMemo(() => selectedRows.length > 0, [
selectedRows,
]);
const handleTabChange = (viewId) => {
changeReceiptView(viewId.id || -1);
addReceiptsTableQueries({
custom_view_id: viewId.id || null,
});
};
// const filterDropdown = FilterDropdown({ // const filterDropdown = FilterDropdown({
// initialCondition: { // initialCondition: {
// fieldKey: '', // fieldKey: '',
@@ -66,16 +77,13 @@ function ReceiptActionsBar({
// }, // },
// }); // });
const hasSelectedRows = useMemo(() => selectedRows.length > 0, [
selectedRows,
]);
return ( return (
<DashboardActionsBar> <DashboardActionsBar>
<NavbarGroup> <NavbarGroup>
<DashboardActionViewsList <DashboardActionViewsList
resourceName={'sales_receipts'} resourceName={'receipts'}
views={receiptview} views={receiptview}
onChange={handleTabChange}
/> />
<NavbarDivider /> <NavbarDivider />

View File

@@ -43,19 +43,15 @@ function ReceiptList({
const [closeReceipt, setCloseReceipt] = useState(false); const [closeReceipt, setCloseReceipt] = useState(false);
const [selectedRows, setSelectedRows] = useState([]); const [selectedRows, setSelectedRows] = useState([]);
const fetchReceipts = useQuery(['receipts-table', receiptTableQuery], () => const fetchReceipts = useQuery(
requestFetchReceiptsTable(), ['receipts-table', receiptTableQuery],
(key, query) => requestFetchReceiptsTable({ ...query }),
); );
// const fetchResourceViews = useQuery( const fetchResourceViews = useQuery(
// ['resource-views', 'sales_receipts'], ['resource-views', 'sale_receipt'],
// (key, resourceName) => requestFetchResourceViews(resourceName), (key, resourceName) => requestFetchResourceViews(resourceName),
// ); );
// const fetchResourceFields = useQuery(
// ['resource-fields', 'sales_receipts'],
// (key, resourceName) => requestFetchResourceFields(resourceName),
// );
useEffect(() => { useEffect(() => {
changePageTitle(formatMessage({ id: 'receipt_list' })); changePageTitle(formatMessage({ id: 'receipt_list' }));
@@ -150,7 +146,7 @@ function ReceiptList({
return ( return (
<DashboardInsider <DashboardInsider
name={'sales_receipts'} name={'sales_receipts'}
// loading={fetchResourceViews.isFetching || fetchResourceFields.isFetching} loading={fetchResourceViews.isFetching}
> >
<DashboardPageContent> <DashboardPageContent>
<ReceiptActionsBar <ReceiptActionsBar

View File

@@ -15,6 +15,9 @@ import withViewDetails from 'containers/Views/withViewDetails';
import { compose } from 'utils'; import { compose } from 'utils';
/**
* Receipt views tabs.
*/
function ReceiptViewTabs({ function ReceiptViewTabs({
//#withReceipts //#withReceipts
receiptview, receiptview,
@@ -37,55 +40,39 @@ function ReceiptViewTabs({
const { custom_view_id: customViewId = null } = useParams(); const { custom_view_id: customViewId = null } = useParams();
useEffect(() => { useEffect(() => {
changeReceiptView(customViewId || -1);
setTopbarEditView(customViewId); setTopbarEditView(customViewId);
changePageSubtitle(customViewId && viewItem ? viewItem.name : ''); changePageSubtitle(customViewId && viewItem ? viewItem.name : '');
// changeReceiptView(customViewId || -1);
// addReceiptsTableQueries({
// custom_view_id: customViewId || null,
// });
}, [customViewId, addReceiptsTableQueries]);
addReceiptsTableQueries({
custom_view_id: customViewId,
});
return () => {
setTopbarEditView(null);
changePageSubtitle('');
changeReceiptView(null);
};
}, [customViewId, addReceiptsTableQueries, changeReceiptView]);
useUpdateEffect(() => {
onViewChanged && onViewChanged(customViewId);
}, [customViewId]);
const debounceChangeHistory = useRef(
debounce((toUrl) => {
history.push(toUrl);
}, 250),
);
const handleTabsChange = (viewId) => {
const toPath = viewId ? `${viewId}/custom_view` : '';
debounceChangeHistory.current(`/receipts/${toPath}`);
setTopbarEditView(viewId);
};
const tabs = receiptview.map((view) => ({ const tabs = receiptview.map((view) => ({
...pick(view, ['name', 'id']), ...pick(view, ['name', 'id']),
})); }));
const handleTabsChange = (viewId) => {
changeReceiptView(viewId || -1);
addReceiptsTableQueries({
custom_view_id: viewId || null,
});
setTopbarEditView(viewId);
};
// Handle click a new view tab. // Handle click a new view tab.
const handleClickNewView = () => { const handleClickNewView = () => {
setTopbarEditView(null); setTopbarEditView(null);
history.push('/custom_views/receipts/new'); history.push('/custom_views/receipts/new');
}; };
console.log(receiptview, 'receiptview');
return ( return (
<Navbar className={'navbar--dashboard-views'}> <Navbar className={'navbar--dashboard-views'}>
<NavbarGroup align={Alignment.LEFT}> <NavbarGroup align={Alignment.LEFT}>
<DashboardViewsTabs <DashboardViewsTabs
initialViewId={customViewId} initialViewId={customViewId}
baseUrl={'/receipts'}
tabs={tabs} tabs={tabs}
onNewViewTabClick={handleClickNewView} resourceName={'receipts'}
onChange={handleTabsChange} onChange={handleTabsChange}
/> />
</NavbarGroup> </NavbarGroup>

View File

@@ -18,7 +18,7 @@ export default (mapState) => {
const mapped = { const mapped = {
receiptsCurrentPage: getReceiptsItems(state, props, tableQuery), receiptsCurrentPage: getReceiptsItems(state, props, tableQuery),
receiptview: getResourceViews(state, props, 'sales_receipts'), receiptview: getResourceViews(state, props, 'sale_receipt'),
receiptItems: state.salesReceipts.items, receiptItems: state.salesReceipts.items,
receiptTableQuery: tableQuery, receiptTableQuery: tableQuery,
receiptsPagination: getReceiptPaginationMeta(state, props, tableQuery), receiptsPagination: getReceiptPaginationMeta(state, props, tableQuery),

View File

@@ -87,7 +87,8 @@ export const fetchReceiptsTable = ({ query = {} }) => {
payload: { payload: {
sales_receipts: response.data.sale_receipts, sales_receipts: response.data.sale_receipts,
pagination: response.data.pagination, pagination: response.data.pagination,
customViewId: response.data.customViewId || -1, customViewId:
response.data?.filter_meta?.view?.custom_view_id || -1,
}, },
}); });
dispatch({ dispatch({
@@ -100,7 +101,8 @@ export const fetchReceiptsTable = ({ query = {} }) => {
type: t.RECEIPTS_PAGINATION_SET, type: t.RECEIPTS_PAGINATION_SET,
payload: { payload: {
pagination: response.data.pagination, pagination: response.data.pagination,
customViewId: response.data.customViewId || -1, customViewId:
response.data?.filter_meta?.view?.custom_view_id || -1,
}, },
}); });
dispatch({ dispatch({
@@ -119,4 +121,4 @@ export const fetchReceiptsTable = ({ query = {} }) => {
export const closeReceipt = ({ id }) => { export const closeReceipt = ({ id }) => {
return (dispatch) => ApiService.post(`sales/receipts/${id}/close`); return (dispatch) => ApiService.post(`sales/receipts/${id}/close`);
}; };