diff --git a/src/components/Warehouses/WarehouseMultiSelect.js b/src/components/Warehouses/WarehouseMultiSelect.js new file mode 100644 index 000000000..e39651e94 --- /dev/null +++ b/src/components/Warehouses/WarehouseMultiSelect.js @@ -0,0 +1,74 @@ +import React from 'react'; +import intl from 'react-intl-universal'; +import { MenuItem } from '@blueprintjs/core'; +import { FMultiSelect } from '../Forms'; + +/** + * + * @param {*} query + * @param {*} warehouse + * @param {*} _index + * @param {*} exactMatch + * @returns + */ +const warehouseItemPredicate = (query, warehouse, _index, exactMatch) => { + const normalizedTitle = warehouse.name.toLowerCase(); + const normalizedQuery = query.toLowerCase(); + + if (exactMatch) { + return normalizedTitle === normalizedQuery; + } else { + return ( + `${warehouse.code}. ${normalizedTitle}`.indexOf(normalizedQuery) >= 0 + ); + } +}; + +/** + * + * @param {*} branch + * @param {*} param1 + * @returns + */ +const warehouseItemRenderer = ( + warehouse, + { handleClick, modifiers, query }, + { isSelected }, +) => { + return ( + + ); +}; + +const warehouseSelectProps = { + itemPredicate: warehouseItemPredicate, + itemRenderer: warehouseItemRenderer, + valueAccessor: (item) => item.id, + labelAccessor: (item) => item.label, + tagRenderer: (item) => item.name, +}; + +/** + * warehouses mulit select. + * @param {*} param0 + * @returns + */ +export function WarehouseMultiSelect({ warehouses, ...rest }) { + return ( + + ); +} diff --git a/src/components/Warehouses/index.js b/src/components/Warehouses/index.js index 3b38eb9e6..6975b2230 100644 --- a/src/components/Warehouses/index.js +++ b/src/components/Warehouses/index.js @@ -1 +1,2 @@ -export * from './WarehouseSelect'; \ No newline at end of file +export * from './WarehouseSelect'; +export * from './WarehouseMultiSelect'; diff --git a/src/containers/FinancialStatements/BalanceSheet/BalanceSheetHeaderDimensionsProvider.js b/src/containers/FinancialStatements/BalanceSheet/BalanceSheetHeaderDimensionsProvider.js index a3ea4de19..183f22fdf 100644 --- a/src/containers/FinancialStatements/BalanceSheet/BalanceSheetHeaderDimensionsProvider.js +++ b/src/containers/FinancialStatements/BalanceSheet/BalanceSheetHeaderDimensionsProvider.js @@ -3,7 +3,7 @@ import React from 'react'; import { useBranches } from 'hooks/query'; import { FinancialHeaderLoadingSkeleton } from '../FinancialHeaderLoadingSkeleton'; -const BalanceSheetHeaderDimensionsPanelConext = React.createContext(); +const BalanceSheetHeaderDimensionsPanelContext = React.createContext(); /** * BL sheet header provider. @@ -22,11 +22,17 @@ function BalanceSheetHeaderDimensionsProvider({ ...props }) { return isBranchesLoading ? ( ) : ( - + ); } const useBalanceSheetHeaderDimensionsPanelContext = () => - React.useContext(BalanceSheetHeaderDimensionsPanelConext); + React.useContext(BalanceSheetHeaderDimensionsPanelContext); -export { BalanceSheetHeaderDimensionsProvider, useBalanceSheetHeaderDimensionsPanelContext }; +export { + BalanceSheetHeaderDimensionsProvider, + useBalanceSheetHeaderDimensionsPanelContext, +}; diff --git a/src/containers/FinancialStatements/InventoryItemDetails/InventoryItemDetailsHeader.js b/src/containers/FinancialStatements/InventoryItemDetails/InventoryItemDetailsHeader.js index 5f7a2d2a2..0e3db74d5 100644 --- a/src/containers/FinancialStatements/InventoryItemDetails/InventoryItemDetailsHeader.js +++ b/src/containers/FinancialStatements/InventoryItemDetails/InventoryItemDetailsHeader.js @@ -8,6 +8,7 @@ import intl from 'react-intl-universal'; import FinancialStatementHeader from 'containers/FinancialStatements/FinancialStatementHeader'; import InventoryItemDetailsHeaderGeneralPanel from './InventoryItemDetailsHeaderGeneralPanel'; +import InventoryItemDetailsHeaderDimensionsPanel from './InventoryItemDetailsHeaderDimensionsPanel'; import withInventoryItemDetails from './withInventoryItemDetails'; import withInventoryItemDetailsActions from './withInventoryItemDetailsActions'; @@ -32,27 +33,28 @@ function InventoryItemDetailsHeader({ fromDate: moment().toDate(), toDate: moment().toDate(), itemsIds: [], + warehousesIds: [], }; // Filter form initial values. - const initialValues = transformToForm({ - ...pageFilter, - fromDate: moment(pageFilter.fromDate).toDate(), - toDate: moment(pageFilter.toDate).toDate(), - }, defaultValues); + const initialValues = transformToForm( + { + ...pageFilter, + fromDate: moment(pageFilter.fromDate).toDate(), + toDate: moment(pageFilter.toDate).toDate(), + warehousesIds: [], + }, + defaultValues, + ); // Validation schema. const validationSchema = Yup.object().shape({ - fromDate: Yup.date() - .required() - .label(intl.get('fromDate')), + fromDate: Yup.date().required().label(intl.get('fromDate')), toDate: Yup.date() .min(Yup.ref('fromDate')) .required() .label(intl.get('toDate')), }); -; - // Handle form submit. const handleSubmit = (values, { setSubmitting }) => { onSubmitFilter(values); @@ -61,8 +63,10 @@ function InventoryItemDetailsHeader({ }; // Handle drawer close action. - const handleDrawerClose = () => { toggleFilterDrawer(false); }; - + const handleDrawerClose = () => { + toggleFilterDrawer(false); + }; + return ( } panel={} /> + } + />