diff options
author | eug-vs <eug-vs@keemail.me> | 2021-03-20 00:20:42 +0300 |
---|---|---|
committer | eug-vs <eug-vs@keemail.me> | 2021-03-20 00:20:42 +0300 |
commit | 839c9ccc0e12b7d15611df72baf9acaea19e8480 (patch) | |
tree | 913e84b1b1f12a76a32b0e50cb8b554be0c7d36e | |
parent | 746c0191380aef770f711bcfebc3cbd919c61b7d (diff) | |
download | commercel-ui-839c9ccc0e12b7d15611df72baf9acaea19e8480.tar.gz |
feat: add Transers section
-rw-r--r-- | src/containers/ProductForm.tsx | 1 | ||||
-rw-r--r-- | src/containers/TransferForm.tsx | 44 | ||||
-rw-r--r-- | src/containers/WaybillPanel.tsx | 3 | ||||
-rw-r--r-- | src/index.tsx | 2 | ||||
-rw-r--r-- | src/services.js | 15 |
5 files changed, 62 insertions, 3 deletions
diff --git a/src/containers/ProductForm.tsx b/src/containers/ProductForm.tsx index f458372..060fbbb 100644 --- a/src/containers/ProductForm.tsx +++ b/src/containers/ProductForm.tsx @@ -1,7 +1,6 @@ import React from 'react'; import { Form } from 'formik'; import Input from '../components/Input'; -import DatePicker from '../components/DatePicker'; const ProductForm: React.FC = () => { diff --git a/src/containers/TransferForm.tsx b/src/containers/TransferForm.tsx new file mode 100644 index 0000000..afb2dff --- /dev/null +++ b/src/containers/TransferForm.tsx @@ -0,0 +1,44 @@ +import React from 'react'; +import { Form, FormikProps } from 'formik'; +import moment from 'moment'; +import Input from '../components/Input'; +import Select from '../components/Select'; +import hooks from '../hooks/useAPIClient'; + + +const mapper = (item: any) => ({ key: item._id, label: item.name }); + + +const TransferForm: React.FC<FormikProps> = ({ setFieldValue, values }) => { + const { data: contractors } = hooks.contractors.useList(); + + if (!values.date) setFieldValue('date', moment().format('YYYY-MM-DD')); + if (!values.contractorId && contractors) setFieldValue('contractorId', contractors[0]._id); + + return ( + <Form id="form"> + <div className="grid grid-cols-2"> + <Select + name="contractorId" + label="Контрагент" + options={contractors?.map(mapper)} + required + /> + <Input name="date" type="date" label="Дата" required /> + </div> + <div className="grid grid-cols-2"> + <Select + name="operation" + label="Операция" + options={[ + { key: 'in', label: 'Приход' }, + { key: 'out', label: 'Расход' }, + ]} + /> + <Input name="amount" type="number" label="Сумма" required /> + </div> + </Form> + ); +}; + +export default TransferForm; diff --git a/src/containers/WaybillPanel.tsx b/src/containers/WaybillPanel.tsx index d74ef1e..b90447e 100644 --- a/src/containers/WaybillPanel.tsx +++ b/src/containers/WaybillPanel.tsx @@ -1,8 +1,7 @@ import React from 'react'; import { useHistory } from 'react-router-dom'; -import Input from '../components/Input'; import Button from '../components/Button'; -import { patch, get, baseURL } from '../requests'; +import { patch, baseURL } from '../requests'; import { PanelProps } from './Service/ServiceContext'; diff --git a/src/index.tsx b/src/index.tsx index 68f3222..af5ca5a 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -15,11 +15,13 @@ import WaybillForm from './containers/WaybillForm'; import WaybillPanel from './containers/WaybillPanel'; import ContractorForm from './containers/ContractorForm'; import ProductForm from './containers/ProductForm'; +import TransferForm from './containers/TransferForm'; services[0].Form = ProductForm; services[1].Form = ContractorForm; services[2].Form = WaybillForm; services[2].Panel = WaybillPanel; +services[3].Form = TransferForm; const navigation = [ diff --git a/src/services.js b/src/services.js index 2e219ed..a21c5b9 100644 --- a/src/services.js +++ b/src/services.js @@ -58,6 +58,21 @@ const services: ServiceParams[] = [ records: [], }, }, + { + route: 'transfers', + name: 'Переводы', + nameSingular: 'Перевод', + tableFields: [ + { key: 'date', label: 'Дата', transform: date => new Date(date).toLocaleDateString() }, + { key: 'contractor.name', label: 'Контрагент' }, + { key: 'operation', label: 'Операция', transform: op => operationNames[op] }, + { key: 'amount', label: 'Сумма' }, + ], + default: { + operation: 'in', + records: [], + }, + }, ]; export default services; |