diff --git a/frontend/package.json b/frontend/package.json
index eecda49..7c445c8 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -5,7 +5,7 @@
"proxy1": "http://18.185.65.50/",
"proxy": "http://localhost:5000/",
"dependencies": {
- "@date-io/moment": "2.11.0",
+ "@date-io/moment": "^2.13.1",
"@emotion/react": "^11.6.0",
"@emotion/styled": "^11.6.0",
"@material-ui/core": "^4.11.4",
@@ -13,6 +13,8 @@
"@material-ui/pickers": "^3.3.10",
"@mui/icons-material": "^5.2.5",
"@mui/material": "^5.1.1",
+ "@mui/x-date-pickers": "^5.0.0-alpha.2",
+ "@mui/x-date-pickers-pro": "^5.0.0-alpha.2",
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^12.1.2",
"@testing-library/user-event": "^13.5.0",
diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
index 715b667..642d77e 100644
--- a/frontend/src/App.tsx
+++ b/frontend/src/App.tsx
@@ -24,6 +24,8 @@ import OrderEdit from './pages/orders/OrderEdit';
import PaidOuts from './pages/PaidOuts';
import Settings from './pages/administration/Settings';
import Cash from './pages/administration/Cash';
+import { RequestPage } from '@mui/icons-material';
+import RequestsReport from './pages/reports/RequestsReport';
const App = () => {
const dispatch = useDispatch();
@@ -97,6 +99,9 @@ const App = () => {
+
+
+
{(userRole === 'ADMIN' || userRole === 'SUPER_ADMIN') && (
<>
diff --git a/frontend/src/components/Appbar/Appbar.tsx b/frontend/src/components/Appbar/Appbar.tsx
index 0e9b099..8edffea 100644
--- a/frontend/src/components/Appbar/Appbar.tsx
+++ b/frontend/src/components/Appbar/Appbar.tsx
@@ -21,7 +21,7 @@ import { changeDrawer } from '../../store/actions/mainActions';
import { StoreModel } from '../../models/storeModel';
import PeopleAltOutlinedIcon from '@material-ui/icons/PeopleAltOutlined';
import { useHistory, useLocation } from 'react-router';
-import { adminRoutes, routes } from '../../utils/routes';
+import { adminRoutes, reportsRoutes, routes } from '../../utils/routes';
import ExpandLess from '@material-ui/icons/ExpandLess';
import ExpandMore from '@material-ui/icons/ExpandMore';
import { useState } from 'react';
@@ -35,6 +35,7 @@ import PlaylistAddCheckIcon from '@material-ui/icons/PlaylistAddCheck';
import EmojiPeopleIcon from '@material-ui/icons/EmojiPeople';
import AttachMoneyIcon from '@material-ui/icons/AttachMoney';
import PointOfSaleIcon from '@mui/icons-material/PointOfSale';
+import AssessmentIcon from '@mui/icons-material/Assessment';
const Appbar = () => {
const open = useSelector((state: StoreModel) => state.mainStore.isDrawerOpen);
@@ -45,11 +46,16 @@ const Appbar = () => {
const history = useHistory();
const location = useLocation();
const [openSubMenu, setOpenSubMenu] = useState(false);
+ const [openReports, setOpenReports] = useState(false);
const handleOpenSubmenu = () => {
setOpenSubMenu(!openSubMenu);
};
+ const handleReportsMenu = () => {
+ setOpenReports(!openReports);
+ };
+
const handleChange = () => {
dispatch(changeDrawer(!open));
};
@@ -127,9 +133,56 @@ const Appbar = () => {
))}
+
+
+
+
+
+ {openReports ? : }
+
+
+
+
+ {reportsRoutes.map((route, index) => (
+ navigateTo(route.path)}
+ selected={location.pathname === route.path}
+ className={
+ location.pathname === route.path
+ ? 'menu__item menu__item_selected'
+ : 'menu__item'
+ }
+ >
+
+ {route.code === 'requestsReport' && }
+
+
+
+ ))}
+
+
+
{(userRoleCode === 'ADMIN' || userRoleCode === 'SUPER_ADMIN') && (
<>
-
+
diff --git a/frontend/src/pages/reports/RequestsReport/RequestsReport.scss b/frontend/src/pages/reports/RequestsReport/RequestsReport.scss
new file mode 100644
index 0000000..0b4757e
--- /dev/null
+++ b/frontend/src/pages/reports/RequestsReport/RequestsReport.scss
@@ -0,0 +1,3 @@
+.filters {
+ padding: 12px;
+}
\ No newline at end of file
diff --git a/frontend/src/pages/reports/RequestsReport/RequestsReport.tsx b/frontend/src/pages/reports/RequestsReport/RequestsReport.tsx
new file mode 100644
index 0000000..8f9e323
--- /dev/null
+++ b/frontend/src/pages/reports/RequestsReport/RequestsReport.tsx
@@ -0,0 +1,537 @@
+import {
+ Paper,
+ Table,
+ TableBody,
+ TableCell,
+ TableContainer,
+ TableHead,
+ TableRow,
+} from '@material-ui/core';
+import { useState } from 'react';
+import { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment';
+import { DatePicker, LocalizationProvider } from '@mui/x-date-pickers';
+import { TextField } from '@mui/material';
+import moment, { Moment } from 'moment';
+
+const RequestsReport = () => {
+ const [selectedDate, setSelectedDate] = useState(moment(new Date()));
+
+ const onChangeDates = (date: any) => {
+ setSelectedDate(date);
+ };
+
+ return (
+ <>
+
+
Отчет по заявкам
+
+
+
+
+ }
+ />
+
+
+
+
+
+
+
+ Комментарий
+ 123
+
+
+
+ {mockData.map((order) => (
+
+ {order.id}
+ 321
+
+ ))}
+
+
+
+ >
+ );
+};
+
+const mockData = [
+ {
+ id: 125,
+ address: 'Ерминсай переулок 7 д 27',
+ createdDate: '2022-05-05T06:04:08.813Z',
+ updatedDate: '2022-05-05T07:05:01.083Z',
+ comment: 'Не включается',
+ customerId: 119,
+ serviceManId: 41,
+ createdBy: {
+ login: 'tech@z-star.kz',
+ fullName: 'Игорь Мачехин',
+ phone: '+7 (777) 055-60-09',
+ },
+ phone: '+7 (701) 755-69-48',
+ statusName: 'В работе',
+ statusCode: 'IN_PROGRESS',
+ fullName: ' Неиз',
+ boilerSerial: '06053',
+ serviceManFullName: 'Илья Мачехин',
+ boilerName: 'FAF2.20',
+ jobs: [],
+ parts: [],
+ customer: {
+ id: 119,
+ address: 'Ерминсай переулок 7 д 27',
+ email: '',
+ createdDate: '2022-05-05T06:03:28.019Z',
+ updatedDate: '2022-05-05T06:03:28.019Z',
+ createdBy: 42,
+ fullName: ' Неиз',
+ phone: '+7 (701) 755-69-48',
+ phone2: '',
+ isActive: true,
+ boilerSerial: '06053',
+ boilerId: 16,
+ purchaseDate: '2022-10-12T00:00:00.000Z',
+ },
+ serviceMan: {
+ id: 41,
+ login: 'ilya@z-star.kz',
+ phone: '+7 (771) 766-70-04',
+ fullName: 'Илья Мачехин',
+ percentFromJob: 0,
+ percentFromParts: 0,
+ percentFromVisit: 0,
+ },
+ },
+ {
+ id: 124,
+ address: 'Казцик токтарова 1а',
+ createdDate: '2022-05-05T06:02:01.180Z',
+ updatedDate: '2022-05-05T06:02:01.180Z',
+ comment: 'Течёт с котла три года нужна профилактика',
+ customerId: 118,
+ serviceManId: 36,
+ createdBy: {
+ login: 'tech@z-star.kz',
+ fullName: 'Игорь Мачехин',
+ phone: '+7 (777) 055-60-09',
+ },
+ phone: '+7 (777) 822-50-27',
+ statusName: 'Создан',
+ statusCode: 'CREATED',
+ fullName: ' Неиз',
+ boilerSerial: '06052',
+ serviceManFullName: 'Ярослав Мацюк',
+ boilerName: 'FAF2.20',
+ jobs: [],
+ parts: [],
+ customer: {
+ id: 118,
+ address: 'Казцик токтарова 1а',
+ email: '',
+ createdDate: '2022-05-05T06:00:56.124Z',
+ updatedDate: '2022-05-05T06:00:56.124Z',
+ createdBy: 42,
+ fullName: ' Неиз',
+ phone: '+7 (777) 822-50-27',
+ phone2: '',
+ isActive: true,
+ boilerSerial: '06052',
+ boilerId: 16,
+ purchaseDate: '2022-10-12T00:00:00.000Z',
+ },
+ serviceMan: {
+ id: 36,
+ login: 'yarik@z-star.kz',
+ phone: '+7 (771) 766-70-01',
+ fullName: 'Ярослав Мацюк',
+ percentFromJob: 50,
+ percentFromParts: 30,
+ percentFromVisit: 100,
+ },
+ },
+ {
+ id: 123,
+ address: 'Шугла дала 120',
+ createdDate: '2022-05-05T02:54:17.084Z',
+ updatedDate: '2022-05-05T02:54:17.084Z',
+ comment: 'А4 уточнить по гарантии и профилактику ',
+ customerId: 117,
+ serviceManId: 41,
+ createdBy: {
+ login: 'tech@z-star.kz',
+ fullName: 'Игорь Мачехин',
+ phone: '+7 (777) 055-60-09',
+ },
+ phone: '+7 (707) 701-17-75',
+ statusName: 'Создан',
+ statusCode: 'CREATED',
+ fullName: ' Неиз',
+ boilerSerial: '06051',
+ serviceManFullName: 'Илья Мачехин',
+ boilerName: 'FAF2.20',
+ jobs: [],
+ parts: [],
+ customer: {
+ id: 117,
+ address: 'Шугла дала 120',
+ email: '',
+ createdDate: '2022-05-05T02:52:29.516Z',
+ updatedDate: '2022-05-05T02:52:29.516Z',
+ createdBy: 42,
+ fullName: ' Неиз',
+ phone: '+7 (707) 701-17-75',
+ phone2: '',
+ isActive: true,
+ boilerSerial: '06051',
+ boilerId: 16,
+ purchaseDate: '2022-10-12T00:00:00.000Z',
+ },
+ serviceMan: {
+ id: 41,
+ login: 'ilya@z-star.kz',
+ phone: '+7 (771) 766-70-04',
+ fullName: 'Илья Мачехин',
+ percentFromJob: 0,
+ percentFromParts: 0,
+ percentFromVisit: 0,
+ },
+ },
+ {
+ id: 122,
+ address: 'Ну алатау 8я улица 15',
+ createdDate: '2022-05-05T01:51:40.607Z',
+ updatedDate: '2022-05-05T01:51:40.607Z',
+ comment: 'Замена котла део на део 15000 с утра можно к 9.00а',
+ customerId: 116,
+ serviceManId: 36,
+ createdBy: {
+ login: 'tech@z-star.kz',
+ fullName: 'Игорь Мачехин',
+ phone: '+7 (777) 055-60-09',
+ },
+ phone: '+7 (777) 248-02-04',
+ statusName: 'Создан',
+ statusCode: 'CREATED',
+ fullName: ' Мадина',
+ boilerSerial: '0605',
+ serviceManFullName: 'Ярослав Мацюк',
+ boilerName: 'FAF2.20',
+ jobs: [],
+ parts: [],
+ customer: {
+ id: 116,
+ address: 'Ну алатау 8я улица 15',
+ email: '',
+ createdDate: '2022-05-05T01:49:22.440Z',
+ updatedDate: '2022-05-05T01:49:22.440Z',
+ createdBy: 42,
+ fullName: ' Мадина',
+ phone: '+7 (777) 248-02-04',
+ phone2: '',
+ isActive: true,
+ boilerSerial: '0605',
+ boilerId: 16,
+ purchaseDate: '2022-10-12T00:00:00.000Z',
+ },
+ serviceMan: {
+ id: 36,
+ login: 'yarik@z-star.kz',
+ phone: '+7 (771) 766-70-01',
+ fullName: 'Ярослав Мацюк',
+ percentFromJob: 50,
+ percentFromParts: 30,
+ percentFromVisit: 100,
+ },
+ },
+ {
+ id: 121,
+ address: 'Кыргаулды енбекши 11/1',
+ createdDate: '2022-05-04T10:28:15.245Z',
+ updatedDate: '2022-05-04T10:28:15.245Z',
+ comment: 'Нет гвс просит в пятницу ',
+ customerId: 115,
+ serviceManId: 41,
+ createdBy: {
+ login: 'tech@z-star.kz',
+ fullName: 'Игорь Мачехин',
+ phone: '+7 (777) 055-60-09',
+ },
+ phone: '+7 (777) 384-81-24',
+ statusName: 'Создан',
+ statusCode: 'CREATED',
+ fullName: ' Неизв',
+ boilerSerial: '05068',
+ serviceManFullName: 'Илья Мачехин',
+ boilerName: 'FAF2.20',
+ jobs: [],
+ parts: [],
+ customer: {
+ id: 115,
+ address: 'Кыргаулды енбекши 11/1',
+ email: '',
+ createdDate: '2022-05-04T10:27:21.786Z',
+ updatedDate: '2022-05-04T10:27:21.786Z',
+ createdBy: 42,
+ fullName: ' Неизв',
+ phone: '+7 (777) 384-81-24',
+ phone2: '',
+ isActive: true,
+ boilerSerial: '05068',
+ boilerId: 16,
+ purchaseDate: '2022-10-12T00:00:00.000Z',
+ },
+ serviceMan: {
+ id: 41,
+ login: 'ilya@z-star.kz',
+ phone: '+7 (771) 766-70-04',
+ fullName: 'Илья Мачехин',
+ percentFromJob: 0,
+ percentFromParts: 0,
+ percentFromVisit: 0,
+ },
+ },
+ {
+ id: 120,
+ address: 'Суюнбая 571',
+ createdDate: '2022-05-04T10:24:44.425Z',
+ updatedDate: '2022-05-04T13:12:03.068Z',
+ comment: 'Сеул течёт с котла ',
+ customerId: 114,
+ serviceManId: 36,
+ createdBy: {
+ login: 'tech@z-star.kz',
+ fullName: 'Игорь Мачехин',
+ phone: '+7 (777) 055-60-09',
+ },
+ phone: '+7 (776) 832-74-04',
+ statusName: 'Выполнен',
+ statusCode: 'SERVICE_DONE',
+ fullName: ' Нуржанар',
+ boilerSerial: '05067',
+ serviceManFullName: 'Ярослав Мацюк',
+ boilerName: 'FAF2.13',
+ jobs: [],
+ parts: [],
+ customer: {
+ id: 114,
+ address: 'Суюнбая 571',
+ email: '',
+ createdDate: '2022-05-04T10:24:07.733Z',
+ updatedDate: '2022-05-04T10:24:07.733Z',
+ createdBy: 42,
+ fullName: ' Нуржанар',
+ phone: '+7 (776) 832-74-04',
+ phone2: '',
+ isActive: true,
+ boilerSerial: '05067',
+ boilerId: 15,
+ purchaseDate: '2022-10-12T00:00:00.000Z',
+ },
+ serviceMan: {
+ id: 36,
+ login: 'yarik@z-star.kz',
+ phone: '+7 (771) 766-70-01',
+ fullName: 'Ярослав Мацюк',
+ percentFromJob: 50,
+ percentFromParts: 30,
+ percentFromVisit: 100,
+ },
+ },
+ {
+ id: 119,
+ address: 'Пока не знаю',
+ createdDate: '2022-05-04T10:03:30.141Z',
+ updatedDate: '2022-05-04T10:06:05.348Z',
+ comment: 'Тест уведомления',
+ customerId: 113,
+ serviceManId: 39,
+ createdBy: {
+ login: 'info@z-star.kz',
+ fullName: 'Сергей Ним',
+ phone: '+7 (777) 005-31-36',
+ },
+ phone: '+7 (771) 815-19-47',
+ statusName: 'Выполнен',
+ statusCode: 'SERVICE_DONE',
+ fullName: 'Жалгас',
+ boilerSerial: '1111111',
+ serviceManFullName: 'Виктор Пен',
+ boilerName: 'Ariston Alteas XC 24',
+ jobs: [],
+ parts: [],
+ customer: {
+ id: 113,
+ address: 'Пока не знаю',
+ email: '',
+ createdDate: '2022-05-04T08:24:26.128Z',
+ updatedDate: '2022-05-04T08:24:26.128Z',
+ createdBy: 32,
+ fullName: 'Жалгас',
+ phone: '+7 (771) 815-19-47',
+ phone2: '',
+ isActive: true,
+ boilerSerial: '1111111',
+ boilerId: 27,
+ purchaseDate: '2011-11-11T00:00:00.000Z',
+ },
+ serviceMan: {
+ id: 39,
+ login: 'vitya@z-star.kz',
+ phone: '+7 (771) 766-70-02',
+ fullName: 'Виктор Пен',
+ percentFromJob: 10,
+ percentFromParts: 10,
+ percentFromVisit: 100,
+ },
+ },
+ {
+ id: 118,
+ address: 'Пока не знаю',
+ createdDate: '2022-05-04T08:25:00.642Z',
+ updatedDate: '2022-05-04T09:57:44.463Z',
+ comment: 'Не могут включить ГВС',
+ customerId: 113,
+ serviceManId: 39,
+ createdBy: {
+ login: 'info@z-star.kz',
+ fullName: 'Сергей Ним',
+ phone: '+7 (777) 005-31-36',
+ },
+ phone: '+7 (771) 815-19-47',
+ statusName: 'Выполнен',
+ statusCode: 'SERVICE_DONE',
+ fullName: 'Жалгас',
+ boilerSerial: '1111111',
+ serviceManFullName: 'Виктор Пен',
+ boilerName: 'Ariston Alteas XC 24',
+ jobs: [],
+ parts: [],
+ customer: {
+ id: 113,
+ address: 'Пока не знаю',
+ email: '',
+ createdDate: '2022-05-04T08:24:26.128Z',
+ updatedDate: '2022-05-04T08:24:26.128Z',
+ createdBy: 32,
+ fullName: 'Жалгас',
+ phone: '+7 (771) 815-19-47',
+ phone2: '',
+ isActive: true,
+ boilerSerial: '1111111',
+ boilerId: 27,
+ purchaseDate: '2011-11-11T00:00:00.000Z',
+ },
+ serviceMan: {
+ id: 39,
+ login: 'vitya@z-star.kz',
+ phone: '+7 (771) 766-70-02',
+ fullName: 'Виктор Пен',
+ percentFromJob: 10,
+ percentFromParts: 10,
+ percentFromVisit: 100,
+ },
+ },
+ {
+ id: 114,
+ address: 'Варшавский переулок 22',
+ createdDate: '2022-05-03T13:36:16.691Z',
+ updatedDate: '2022-05-04T13:11:01.560Z',
+ comment: 'Утром Ринай замена насоса есть второй котёл ',
+ customerId: 112,
+ serviceManId: 36,
+ createdBy: {
+ login: 'tech@z-star.kz',
+ fullName: 'Игорь Мачехин',
+ phone: '+7 (777) 055-60-09',
+ },
+ phone: '+7 (701) 575-77-47',
+ statusName: 'Выполнен',
+ statusCode: 'SERVICE_DONE',
+ fullName: 'Руслан',
+ boilerSerial: '03058',
+ serviceManFullName: 'Ярослав Мацюк',
+ boilerName: 'FAF2.13',
+ jobs: [],
+ parts: [],
+ customer: {
+ id: 112,
+ address: 'Варшавский переулок 22',
+ email: '',
+ createdDate: '2022-05-03T13:34:41.605Z',
+ updatedDate: '2022-05-03T13:34:41.605Z',
+ createdBy: 42,
+ fullName: 'Руслан',
+ phone: '+7 (701) 575-77-47',
+ phone2: '',
+ isActive: true,
+ boilerSerial: '03058',
+ boilerId: 15,
+ purchaseDate: '2020-10-12T00:00:00.000Z',
+ },
+ serviceMan: {
+ id: 36,
+ login: 'yarik@z-star.kz',
+ phone: '+7 (771) 766-70-01',
+ fullName: 'Ярослав Мацюк',
+ percentFromJob: 50,
+ percentFromParts: 30,
+ percentFromVisit: 100,
+ },
+ },
+ {
+ id: 113,
+ address: 'Каскелен',
+ createdDate: '2022-05-03T06:24:15.799Z',
+ updatedDate: '2022-05-03T08:39:20.244Z',
+ comment: '6р1',
+ customerId: 111,
+ serviceManId: 39,
+ createdBy: {
+ login: 'tech@z-star.kz',
+ fullName: 'Игорь Мачехин',
+ phone: '+7 (777) 055-60-09',
+ },
+ phone: '+7 (775) 336-77-21',
+ statusName: 'Выполнен',
+ statusCode: 'SERVICE_DONE',
+ fullName: 'Бахтияр',
+ boilerSerial: '05036',
+ serviceManFullName: 'Виктор Пен',
+ boilerName: 'Ariston CLAS XC 24',
+ jobs: [],
+ parts: [],
+ customer: {
+ id: 111,
+ address: 'Каскелен',
+ email: '',
+ createdDate: '2022-05-03T06:23:30.273Z',
+ updatedDate: '2022-05-03T06:23:30.273Z',
+ createdBy: 42,
+ fullName: 'Бахтияр',
+ phone: '+7 (775) 336-77-21',
+ phone2: '',
+ isActive: true,
+ boilerSerial: '05036',
+ boilerId: 30,
+ purchaseDate: '2020-12-21T00:00:00.000Z',
+ },
+ serviceMan: {
+ id: 39,
+ login: 'vitya@z-star.kz',
+ phone: '+7 (771) 766-70-02',
+ fullName: 'Виктор Пен',
+ percentFromJob: 10,
+ percentFromParts: 10,
+ percentFromVisit: 100,
+ },
+ },
+];
+
+export default RequestsReport;
diff --git a/frontend/src/pages/reports/RequestsReport/index.ts b/frontend/src/pages/reports/RequestsReport/index.ts
new file mode 100644
index 0000000..13afe09
--- /dev/null
+++ b/frontend/src/pages/reports/RequestsReport/index.ts
@@ -0,0 +1,4 @@
+import RequestsReport from './RequestsReport';
+import './RequestsReport.scss';
+
+export default RequestsReport;
diff --git a/frontend/src/utils/routes.ts b/frontend/src/utils/routes.ts
index d277e3d..479da52 100644
--- a/frontend/src/utils/routes.ts
+++ b/frontend/src/utils/routes.ts
@@ -63,3 +63,11 @@ export const adminRoutes = [
name: 'Касса',
},
];
+
+export const reportsRoutes = [
+ {
+ path: '/reports/requests-report',
+ code: 'requestsReport',
+ name: 'Отчет по заявкам',
+ },
+];
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 108310e..31fc375 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -1172,6 +1172,13 @@
dependencies:
regenerator-runtime "^0.13.4"
+"@babel/runtime@^7.17.2":
+ version "7.17.9"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72"
+ integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==
+ dependencies:
+ regenerator-runtime "^0.13.4"
+
"@babel/template@^7.10.4", "@babel/template@^7.16.0", "@babel/template@^7.3.3":
version "7.16.0"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6"
@@ -1232,17 +1239,38 @@
resolved "https://registry.yarnpkg.com/@date-io/core/-/core-1.3.13.tgz#90c71da493f20204b7a972929cc5c482d078b3fa"
integrity sha512-AlEKV7TxjeK+jxWVKcCFrfYAk8spX9aCyiToFIiLPtfQbsjmRGLIhb5VZgptQcJdHtLXo7+m0DuurwFgUToQuA==
-"@date-io/core@^2.11.0":
- version "2.11.0"
- resolved "https://registry.yarnpkg.com/@date-io/core/-/core-2.11.0.tgz#28580cda1c8228ab2c7ed6aee673ef0495f913e6"
- integrity sha512-DvPBnNoeuLaoSJZaxgpu54qzRhRKjSYVyQjhznTFrllKuDpm0sDFjHo6lvNLCM/cfMx2gb2PM2zY2kc9C8nmuw==
+"@date-io/core@^2.13.1":
+ version "2.13.1"
+ resolved "https://registry.yarnpkg.com/@date-io/core/-/core-2.13.1.tgz#f041765aff5c55fbc7e37fdd75fc1792733426d6"
+ integrity sha512-pVI9nfkf2qClb2Cxdq0Q4zJhdawMG4ybWZUVGifT78FDwzRMX2SwXBb55s5NRJk0HcIicDuxktmCtemZqMH1Zg==
-"@date-io/moment@2.11.0":
- version "2.11.0"
- resolved "https://registry.yarnpkg.com/@date-io/moment/-/moment-2.11.0.tgz#850f8dd090d401845b39276d034dbabe20224ef5"
- integrity sha512-QSL+83qezQ9Ty0dtFgAkk6eC0GMl/lgYfDajeVUDB3zVA2A038hzczRLBg29ifnBGhQMPABxuOafgWwhDjlarg==
+"@date-io/date-fns@^2.11.0":
+ version "2.13.1"
+ resolved "https://registry.yarnpkg.com/@date-io/date-fns/-/date-fns-2.13.1.tgz#19d8a245dab61c03c95ba492d679d98d2b0b4af5"
+ integrity sha512-8fmfwjiLMpFLD+t4NBwDx0eblWnNcgt4NgfT/uiiQTGI81fnPu9tpBMYdAcuWxaV7LLpXgzLBx1SYWAMDVUDQQ==
dependencies:
- "@date-io/core" "^2.11.0"
+ "@date-io/core" "^2.13.1"
+
+"@date-io/dayjs@^2.11.0":
+ version "2.13.1"
+ resolved "https://registry.yarnpkg.com/@date-io/dayjs/-/dayjs-2.13.1.tgz#98461d22ee98179b9f2dca3b36f1b618704ae593"
+ integrity sha512-5bL4WWWmlI4uGZVScANhHJV7Mjp93ec2gNeUHDqqLaMZhp51S0NgD25oqj/k0LqBn1cdU2MvzNpk/ObMmVv5cQ==
+ dependencies:
+ "@date-io/core" "^2.13.1"
+
+"@date-io/luxon@^2.11.1":
+ version "2.13.1"
+ resolved "https://registry.yarnpkg.com/@date-io/luxon/-/luxon-2.13.1.tgz#3701b3cabfffda5102af302979aa6e58acfda91a"
+ integrity sha512-yG+uM7lXfwLyKKEwjvP8oZ7qblpmfl9gxQYae55ifbwiTs0CoCTkYkxEaQHGkYtTqGTzLqcb0O9Pzx6vgWg+yg==
+ dependencies:
+ "@date-io/core" "^2.13.1"
+
+"@date-io/moment@^2.11.0", "@date-io/moment@^2.13.1":
+ version "2.13.1"
+ resolved "https://registry.yarnpkg.com/@date-io/moment/-/moment-2.13.1.tgz#122a51e4bdedf71ff3babb264427737dc022c1e6"
+ integrity sha512-XX1X/Tlvl3TdqQy2j0ZUtEJV6Rl8tOyc5WOS3ki52He28Uzme4Ro/JuPWTMBDH63weSWIZDlbR7zBgp3ZA2y1A==
+ dependencies:
+ "@date-io/core" "^2.13.1"
"@emotion/babel-plugin@^11.3.0":
version "11.3.0"
@@ -1778,6 +1806,58 @@
prop-types "^15.7.2"
react-is "^17.0.2"
+"@mui/utils@^5.6.1":
+ version "5.6.1"
+ resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.6.1.tgz#4ab79a21bd481555d9a588f4b18061b3c28ea5db"
+ integrity sha512-CPrzrkiBusCZBLWu0Sg5MJvR3fKJyK3gKecLVX012LULyqg2U64Oz04BKhfkbtBrPBbSQxM+DWW9B1c9hmV9nQ==
+ dependencies:
+ "@babel/runtime" "^7.17.2"
+ "@types/prop-types" "^15.7.4"
+ "@types/react-is" "^16.7.1 || ^17.0.0"
+ prop-types "^15.7.2"
+ react-is "^17.0.2"
+
+"@mui/x-date-pickers-pro@^5.0.0-alpha.2":
+ version "5.0.0-alpha.2"
+ resolved "https://registry.yarnpkg.com/@mui/x-date-pickers-pro/-/x-date-pickers-pro-5.0.0-alpha.2.tgz#5ce1819c0cfbda8f9aa594bbbec986f3395a5adc"
+ integrity sha512-cz9Bl6Zl5g1qeKIKG+Qq5VDd4QwQQu6e4wMKmQgVdDR29iTM7yIQpgsRUEbNjhvMbH62rL3UuCukZwF42khhsw==
+ dependencies:
+ "@date-io/date-fns" "^2.11.0"
+ "@date-io/dayjs" "^2.11.0"
+ "@date-io/luxon" "^2.11.1"
+ "@date-io/moment" "^2.11.0"
+ "@mui/utils" "^5.6.1"
+ "@mui/x-date-pickers" "5.0.0-alpha.2"
+ "@mui/x-license-pro" "5.10.0"
+ clsx "^1.1.1"
+ prop-types "^15.7.2"
+ react-transition-group "^4.4.2"
+ rifm "^0.12.1"
+
+"@mui/x-date-pickers@5.0.0-alpha.2", "@mui/x-date-pickers@^5.0.0-alpha.2":
+ version "5.0.0-alpha.2"
+ resolved "https://registry.yarnpkg.com/@mui/x-date-pickers/-/x-date-pickers-5.0.0-alpha.2.tgz#cb8beedd86f7514e7e4fc117e7465c3f29e4e38e"
+ integrity sha512-K2Pl4q0kxkcKOjJ/BAfbM5Dko9Ojogii363Fjlpth3ETTB7vwQaQBPW+SyYjCyf0TPqbwyRV7uaQ8q9twnWwHA==
+ dependencies:
+ "@date-io/date-fns" "^2.11.0"
+ "@date-io/dayjs" "^2.11.0"
+ "@date-io/luxon" "^2.11.1"
+ "@date-io/moment" "^2.11.0"
+ "@mui/utils" "^5.6.1"
+ clsx "^1.1.1"
+ prop-types "^15.7.2"
+ react-transition-group "^4.4.2"
+ rifm "^0.12.1"
+
+"@mui/x-license-pro@5.10.0":
+ version "5.10.0"
+ resolved "https://registry.yarnpkg.com/@mui/x-license-pro/-/x-license-pro-5.10.0.tgz#a34599b2a97be3fb903c70b1c847a7b788bd8de2"
+ integrity sha512-F+jKunpdvL8eRjcK3kKnTJKdmIVvAL2+Y6OSv4nT/PHnc7ILe1SIYESqERqNI/fvlNh4fh320xTablf1p3556g==
+ dependencies:
+ "@mui/utils" "^5.6.1"
+ esm "^3.2.25"
+ yargs "^17.4.1"
+
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
@@ -3854,6 +3934,15 @@ cliui@^6.0.0:
strip-ansi "^6.0.0"
wrap-ansi "^6.2.0"
+cliui@^7.0.2:
+ version "7.0.4"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
+ integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.0"
+ wrap-ansi "^7.0.0"
+
clsx@^1.0.2, clsx@^1.0.4, clsx@^1.1.0, clsx@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188"
@@ -5293,6 +5382,11 @@ eslint@^7.11.0:
text-table "^0.2.0"
v8-compile-cache "^2.0.3"
+esm@^3.2.25:
+ version "3.2.25"
+ resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10"
+ integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==
+
espree@^7.3.0, espree@^7.3.1:
version "7.3.1"
resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"
@@ -5874,7 +5968,7 @@ gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2:
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
-get-caller-file@^2.0.1:
+get-caller-file@^2.0.1, get-caller-file@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
@@ -10661,6 +10755,11 @@ rgba-regex@^1.0.0:
resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
+rifm@^0.12.1:
+ version "0.12.1"
+ resolved "https://registry.yarnpkg.com/rifm/-/rifm-0.12.1.tgz#8fa77f45b7f1cda2a0068787ac821f0593967ac4"
+ integrity sha512-OGA1Bitg/dSJtI/c4dh90svzaUPt228kzFsUkJbtA2c964IqEAwWXeL9ZJi86xWv3j5SMqRvGULl7bA6cK0Bvg==
+
rifm@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/rifm/-/rifm-0.7.0.tgz#debe951a9c83549ca6b33e5919f716044c2230be"
@@ -12703,6 +12802,15 @@ wrap-ansi@^6.2.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
+wrap-ansi@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
@@ -12750,6 +12858,11 @@ y18n@^4.0.0:
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
+y18n@^5.0.5:
+ version "5.0.8"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
+ integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+
yallist@^3.0.2:
version "3.1.1"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
@@ -12786,6 +12899,11 @@ yargs-parser@^20.2.3:
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
+yargs-parser@^21.0.0:
+ version "21.0.1"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35"
+ integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==
+
yargs@^13.3.2:
version "13.3.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
@@ -12819,6 +12937,19 @@ yargs@^15.4.1:
y18n "^4.0.0"
yargs-parser "^18.1.2"
+yargs@^17.4.1:
+ version "17.4.1"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.4.1.tgz#ebe23284207bb75cee7c408c33e722bfb27b5284"
+ integrity sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==
+ dependencies:
+ cliui "^7.0.2"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.3"
+ y18n "^5.0.5"
+ yargs-parser "^21.0.0"
+
yocto-queue@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
diff --git a/package.json b/package.json
index 7796f5d..69a7b05 100644
--- a/package.json
+++ b/package.json
@@ -4,10 +4,10 @@
"description": "CRM for service industry",
"main": "server.ts",
"scripts": {
- "server": "concurrently \"nodemon ./backend/server.ts\" \"npm run bot\"",
- "back": "nodemon ./backend/server.ts",
- "client": "npm start --prefix ./frontend",
+ "server": "nodemon ./backend/server.ts",
"bot": "nodemon ./tg-bot/index.js",
+ "client": "npm start --prefix ./frontend",
+ "backend": "concurrently \"npm run server\" \"npm run bot\"",
"start:dev": "concurrently \"npm run server\" \"npm run client\""
},
"repository": {
diff --git a/start.sh b/start.sh
new file mode 100644
index 0000000..a1193f9
--- /dev/null
+++ b/start.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+yarn --cwd /var/server/service-crm/ backend