summaryrefslogtreecommitdiff
path: root/src/services/waybills/WaybillPanel.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/services/waybills/WaybillPanel.tsx')
-rw-r--r--src/services/waybills/WaybillPanel.tsx42
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;