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