diff options
Diffstat (limited to 'src/services/waybills/WaybillPanel.tsx')
-rw-r--r-- | src/services/waybills/WaybillPanel.tsx | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/services/waybills/WaybillPanel.tsx b/src/services/waybills/WaybillPanel.tsx new file mode 100644 index 0000000..101a871 --- /dev/null +++ b/src/services/waybills/WaybillPanel.tsx @@ -0,0 +1,42 @@ +import React from 'react'; +import { useHistory } from 'react-router-dom'; +import Button from '../../components/Button'; +import { patch, baseURL } from '../../requests'; +import { PanelProps } from '../../containers/Service/ServiceContext'; + + +const WaybillPanel: React.FC<PanelProps> = ({ item, mutate }) => { + const history = useHistory(); + + const handleChangeStatus = (status: any) => patch(`/waybills/${item._id}`, { status }) + .then(() => { + history.push('/waybills'); + mutate({ ...item, status }); + }); + + const handlePrint = () => window.open(`${baseURL}/spreadsheets/${item._id}`, '_blank'); + + const handleExecute = () => handleChangeStatus('executed'); + const handleCancel = () => handleChangeStatus('cancelled'); + + const executed = item.status === 'executed'; + + return ( + <div className="lg:m-4 p-4 flex flex-col lg:pl-16 lg:border-l"> + <div className="grid lg:grid-cols-2"> + <Button route={`/contractors/${item.contractorId}`} variant="outlined"> + Перейти к контрагенту + </Button> + <Button onClick={handlePrint} variant="outlined"> + Печать + </Button> + <span className="text-lg text-center mt-4">Итоговая сумма: ${item.total}</span> + <Button onClick={executed ? handleCancel : handleExecute} size="lg"> + {executed ? 'Откатить' : 'Провести'} + </Button> + </div> + </div> + ); +}; + +export default WaybillPanel; |