diff --git a/dist/p8-panels.js b/dist/p8-panels.js index 61f16c9..ab023cd 100644 --- a/dist/p8-panels.js +++ b/dist/p8-panels.js @@ -554,7 +554,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCostJobs: () => (/* binding */ useCostJobs),\n/* harmony export */ useCostJobsSpecs: () => (/* binding */ useCostJobsSpecs),\n/* harmony export */ useCostJobsWorkers: () => (/* binding */ useCostJobsWorkers)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _context_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/navigation */ \"./app/context/navigation.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/*\r\n Парус 8 - Панели мониторинга - ПУП - Выдача сменного задания на участок\r\n Кастомные хуки\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контекст взаимодействия с сервером\n //Контекст навигации\n //Вспомогательные функции\n\n//---------\n//Константы\n//---------\n\n//Размер страницы данных\nconst DATA_GRID_PAGE_SIZE = 50;\n\n//---------------------------------------------\n//Вспомогательные функции форматирования данных\n//---------------------------------------------\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук для основной таблицы\nconst useCostJobs = () => {\n //Собственное состояние - таблица данных\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: false,\n loaded: false,\n jobInfo: {},\n haveNote: false,\n coeff: \"1.0\"\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n //Подключение к контексту навигации\n const {\n getNavigationSearch\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_navigation__WEBPACK_IMPORTED_MODULE_2__.NavigationCtx);\n\n //При подключении компонента к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const initJob = async fcJob => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBS_MP_INIT\",\n args: {\n NFCJOBS: parseInt(fcJob)\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => [\"NHAVE_NOTE\"].includes(name) ? val == 1 : val\n });\n setState(pv => ({\n ...pv,\n init: true,\n jobInfo: data.XFCJOBS ? data.XFCJOBS : {},\n loaded: true\n }));\n };\n if (!state.init) {\n //Считаем параметры, переданные из действия\n const actionPrms = getNavigationSearch();\n //Иницализируем сменное задание\n initJob(actionPrms.NRN);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return [state, setState];\n};\n\n//Хук для таблицы операций\nconst useCostJobsSpecs = task => {\n //Собственное состояние - таблица данных\n const [costJobsSpecs, setCostJobsSpecs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n task: null,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRow: {},\n reload: true,\n pageNumber: 1,\n morePages: true\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored,\n SERV_DATA_TYPE_CLOB\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //Выдача задания\n const issueCostJobsSpecs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_MP_ISSUE\",\n args: {\n NFCJOBS: prms.NFCJOBS,\n NCOEFF: parseFloat(prms.NCOEFF)\n }\n });\n } catch (e) {\n throw new Error(e.message);\n }\n }, [executeStored]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если изменилось сменное задание - обновляем состояние\n if (costJobsSpecs.dataLoaded && costJobsSpecs.task !== task) {\n setCostJobsSpecs(pv => ({\n ...pv,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRow: {},\n reload: true,\n pageNumber: 1,\n morePages: true\n }));\n }\n //Если необходимо перезагрузить\n if (costJobsSpecs.reload && task) {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_MP_DG_GET\",\n args: {\n NFCJOBS: task,\n NPAGE_NUMBER: costJobsSpecs.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_3__.object2Base64XML)(costJobsSpecs.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NINCLUDE_DEF: costJobsSpecs.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => name === \"NSELECT\" ? val === 1 : name === \"SWORKERS_LIST\" ? val ? val.split(\",\").map(Number) : [] : val\n });\n setCostJobsSpecs(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n task: task,\n columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,\n rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],\n dataLoaded: true,\n reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE\n }));\n };\n loadData();\n }\n }, [SERV_DATA_TYPE_CLOB, costJobsSpecs.dataLoaded, costJobsSpecs.orders, costJobsSpecs.pageNumber, costJobsSpecs.reload, costJobsSpecs.task, executeStored, task]);\n return [costJobsSpecs, setCostJobsSpecs, issueCostJobsSpecs];\n};\n\n//Хук для рабочих\nconst useCostJobsWorkers = task => {\n //Собственное состояние - таблица данных\n const [costJobsWorkers, setCostJobsWorkers] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n task: null,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored,\n SERV_DATA_TYPE_CLOB\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //Включение рабочего в строку сменного задания\n const includeWorker = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_MP_INC_PERFORM\",\n args: {\n NFCJOBSSP: prms.NFCJOBSSP,\n SPERFORM_LIST: {\n VALUE: Array.isArray(prms.SELECTED_WORKERS) ? prms.SELECTED_WORKERS.join(\";\") : prms.SELECTED_WORKERS,\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NQUANT_PLAN: prms.NQUANT_PLAN\n }\n });\n } catch (e) {\n throw new Error(e.message);\n }\n }, [SERV_DATA_TYPE_CLOB, executeStored]);\n\n //Исключение рабочего из строки сменного задания\n const excludeWorker = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_MP_EXC_PERFORM\",\n args: {\n NFCJOBSSP: prms.NFCJOBSSP\n }\n });\n } catch (e) {\n throw new Error(e.message);\n }\n }, [executeStored]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если изменилось сменное задание - обновляем состояние\n if (costJobsWorkers.dataLoaded && costJobsWorkers.task !== task) {\n setCostJobsWorkers(pv => ({\n ...pv,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\n }));\n }\n //Если необходимо перезагрузить\n if (costJobsWorkers.reload && task) {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.WORKERS_MP_DG_GET\",\n args: {\n NFCJOBS: task,\n NPAGE_NUMBER: costJobsWorkers.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_3__.object2Base64XML)(costJobsWorkers.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NINCLUDE_DEF: costJobsWorkers.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => [\"NSELECT\"].includes(name) ? val === 1 : val\n });\n setCostJobsWorkers(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n task: task,\n columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,\n rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],\n dataLoaded: true,\n reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE\n }));\n };\n loadData();\n }\n }, [SERV_DATA_TYPE_CLOB, costJobsWorkers.dataLoaded, costJobsWorkers.orders, costJobsWorkers.pageNumber, costJobsWorkers.reload, costJobsWorkers.task, executeStored, task]);\n return [costJobsWorkers, setCostJobsWorkers, includeWorker, excludeWorker];\n};\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_cost_jobs_manage_mp/hooks.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCostJobs: () => (/* binding */ useCostJobs),\n/* harmony export */ useCostJobsSpecs: () => (/* binding */ useCostJobsSpecs),\n/* harmony export */ useCostJobsWorkers: () => (/* binding */ useCostJobsWorkers)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _context_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/navigation */ \"./app/context/navigation.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/*\r\n Парус 8 - Панели мониторинга - ПУП - Выдача сменного задания на участок\r\n Кастомные хуки\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контекст взаимодействия с сервером\n //Контекст навигации\n //Вспомогательные функции\n\n//---------\n//Константы\n//---------\n\n//Размер страницы данных\nconst DATA_GRID_PAGE_SIZE = 50;\n\n//---------------------------------------------\n//Вспомогательные функции форматирования данных\n//---------------------------------------------\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук для основной таблицы\nconst useCostJobs = () => {\n //Собственное состояние - таблица данных\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: false,\n loaded: false,\n jobInfo: {},\n haveNote: false,\n coeff: \"1.0\"\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n //Подключение к контексту навигации\n const {\n getNavigationSearch\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_navigation__WEBPACK_IMPORTED_MODULE_2__.NavigationCtx);\n\n //При подключении компонента к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const initJob = async fcJob => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBS_MP_INIT\",\n args: {\n NFCJOBS: parseInt(fcJob)\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => [\"NHAVE_NOTE\"].includes(name) ? val == 1 : val\n });\n setState(pv => ({\n ...pv,\n init: true,\n jobInfo: data.XFCJOBS ? data.XFCJOBS : {},\n loaded: true\n }));\n };\n if (!state.init) {\n //Считаем параметры, переданные из действия\n const actionPrms = getNavigationSearch();\n //Иницализируем сменное задание\n initJob(actionPrms.NRN);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return [state, setState];\n};\n\n//Хук для таблицы операций\nconst useCostJobsSpecs = task => {\n //Собственное состояние - таблица данных\n const [costJobsSpecs, setCostJobsSpecs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n task: null,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRow: {},\n reload: true,\n pageNumber: 1,\n morePages: true,\n fixedHeader: false,\n fixedColumns: 0\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored,\n SERV_DATA_TYPE_CLOB\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //Выдача задания\n const issueCostJobsSpecs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_MP_ISSUE\",\n args: {\n NFCJOBS: prms.NFCJOBS,\n NCOEFF: parseFloat(prms.NCOEFF)\n }\n });\n } catch (e) {\n throw new Error(e.message);\n }\n }, [executeStored]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если изменилось сменное задание - обновляем состояние\n if (costJobsSpecs.dataLoaded && costJobsSpecs.task !== task) {\n setCostJobsSpecs(pv => ({\n ...pv,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRow: {},\n reload: true,\n pageNumber: 1,\n morePages: true\n }));\n }\n //Если необходимо перезагрузить\n if (costJobsSpecs.reload && task) {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_MP_DG_GET\",\n args: {\n NFCJOBS: task,\n NPAGE_NUMBER: costJobsSpecs.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_3__.object2Base64XML)(costJobsSpecs.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NINCLUDE_DEF: costJobsSpecs.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => name === \"NSELECT\" ? val === 1 : name === \"SWORKERS_LIST\" ? val ? val.split(\",\").map(Number) : [] : val\n });\n setCostJobsSpecs(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n task: task,\n columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,\n rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],\n dataLoaded: true,\n reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE\n }));\n };\n loadData();\n }\n }, [SERV_DATA_TYPE_CLOB, costJobsSpecs.dataLoaded, costJobsSpecs.orders, costJobsSpecs.pageNumber, costJobsSpecs.reload, costJobsSpecs.task, executeStored, task]);\n return [costJobsSpecs, setCostJobsSpecs, issueCostJobsSpecs];\n};\n\n//Хук для рабочих\nconst useCostJobsWorkers = task => {\n //Собственное состояние - таблица данных\n const [costJobsWorkers, setCostJobsWorkers] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n task: null,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored,\n SERV_DATA_TYPE_CLOB\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //Включение рабочего в строку сменного задания\n const includeWorker = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_MP_INC_PERFORM\",\n args: {\n NFCJOBSSP: prms.NFCJOBSSP,\n SPERFORM_LIST: {\n VALUE: Array.isArray(prms.SELECTED_WORKERS) ? prms.SELECTED_WORKERS.join(\";\") : prms.SELECTED_WORKERS,\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NQUANT_PLAN: prms.NQUANT_PLAN\n }\n });\n } catch (e) {\n throw new Error(e.message);\n }\n }, [SERV_DATA_TYPE_CLOB, executeStored]);\n\n //Исключение рабочего из строки сменного задания\n const excludeWorker = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_MP_EXC_PERFORM\",\n args: {\n NFCJOBSSP: prms.NFCJOBSSP\n }\n });\n } catch (e) {\n throw new Error(e.message);\n }\n }, [executeStored]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если изменилось сменное задание - обновляем состояние\n if (costJobsWorkers.dataLoaded && costJobsWorkers.task !== task) {\n setCostJobsWorkers(pv => ({\n ...pv,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\n }));\n }\n //Если необходимо перезагрузить\n if (costJobsWorkers.reload && task) {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.WORKERS_MP_DG_GET\",\n args: {\n NFCJOBS: task,\n NPAGE_NUMBER: costJobsWorkers.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_3__.object2Base64XML)(costJobsWorkers.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NINCLUDE_DEF: costJobsWorkers.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => [\"NSELECT\"].includes(name) ? val === 1 : val\n });\n setCostJobsWorkers(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n task: task,\n columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,\n rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],\n dataLoaded: true,\n reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE\n }));\n };\n loadData();\n }\n }, [SERV_DATA_TYPE_CLOB, costJobsWorkers.dataLoaded, costJobsWorkers.orders, costJobsWorkers.pageNumber, costJobsWorkers.reload, costJobsWorkers.task, executeStored, task]);\n return [costJobsWorkers, setCostJobsWorkers, includeWorker, excludeWorker];\n};\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_cost_jobs_manage_mp/hooks.js?"); /***/ }), @@ -576,7 +576,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MechRecCostJobs: () => (/* binding */ MechRecCostJobs),\n/* harmony export */ headCellRender: () => (/* binding */ headCellRender)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Checkbox/Checkbox.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Grid/Grid.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Tooltip/Tooltip.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/p8p_app_workspace */ \"./app/components/p8p_app_workspace.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../app.styles */ \"./app.styles.js\");\n/* harmony import */ var _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/p8p_data_grid */ \"./app/components/p8p_data_grid.js\");\n/* harmony import */ var _config_wrapper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../config_wrapper */ \"./app/config_wrapper.js\");\n/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./hooks */ \"./app/panels/mech_rec_cost_jobs_manage_mp/hooks.js\");\n/* harmony import */ var _worker_include_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./worker_include_dialog */ \"./app/panels/mech_rec_cost_jobs_manage_mp/worker_include_dialog.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\r\n Парус 8 - Панели мониторинга - ПУП - Выдача сменного задания на участок\r\n Панель мониторинга: Корневая панель выдачи сменного задания на участок\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Интерфейсные элементы\n //Заголовок страницы\n //Типовые стили\n //Таблица данных\n //Подключение компонентов к настройкам приложения\n //Вспомогательные хуки\n //Компонент диалога включения в задание\n //Вспомогательные функции\n\n//---------\n//Константы\n//---------\n\n//Мнемокод раздела операций\nconst UNIT_COST_JOBS_SPECS = \"CostJobsSpecs\";\n\n//Мнемокод раздела исполнений должности\nconst UNIT_WORKERS = \"ClientPostPerform\";\n\n//Высота основного заголовка\nconst MAIN_HEADER_HEIGHT = \"35px\";\n\n//Высота подзаголовка\nconst SUB_HEADER_HEIGHT = \"35px\";\n\n//Высота заголовка таблицы\nconst TABLE_HEADER_HEIGHT = \"35px\";\n\n//Высота панели кнопок таблицы\nconst TABLE_BUTTONS_HEIGHT = \"35px\";\n\n//Отступ таблицы\nconst TABLE_PADDING_TOP = \"15px\";\n\n//Формат для коэффициент выполнения норм\nconst issueCoeffFormat = /^(?!.*\\..*\\.)[0-9]{0,3}(\\.[0-9]{0,1})?$/;\n\n//Стили\nconst STYLES = {\n MAIN_HEADER: {\n height: MAIN_HEADER_HEIGHT,\n overflow: \"hidden\"\n },\n SUB_HEADER: {\n height: SUB_HEADER_HEIGHT,\n overflow: \"hidden\"\n },\n CONTAINER: {\n textAlign: \"center\"\n },\n TABLE: {\n paddingTop: TABLE_PADDING_TOP\n },\n TABLE_HEADER: {\n height: TABLE_HEADER_HEIGHT,\n overflow: \"hidden\"\n },\n TABLE_BUTTONS: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n height: TABLE_BUTTONS_HEIGHT,\n overflow: \"hidden\",\n alignItems: \"flex-end\"\n },\n DATA_GRID_CONTAINER: morePages => ({\n height: `calc(100vh - ${_components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_1__.APP_BAR_HEIGHT} - ${MAIN_HEADER_HEIGHT} - ${SUB_HEADER_HEIGHT} - ${TABLE_HEADER_HEIGHT} - ${TABLE_BUTTONS_HEIGHT} - ${TABLE_PADDING_TOP} - 32px - ${morePages ? _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_3__.P8P_DATA_GRID_MORE_HEIGHT : \"0px\"})`,\n ..._app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_STYLES.SCROLL\n })\n};\n\n//Цвета\nconst colors = {\n LINKED: \"#bce0de\",\n UNAVAILABLE: \"#949494\",\n WITH_WORKER: \"#82df83\"\n};\n\n//------------------------------------\n//Вспомогательные функции и компоненты\n//------------------------------------\n\n//Проверка правильности значения коэффициент выполнения норм\nconst isValidIssueCoeff = value => {\n return issueCoeffFormat.test(value);\n};\n\n//Форматирование значения ячейки\nconst dataCellRender = ({\n row,\n columnDef,\n handleSelectChange,\n sUnit,\n selectedWorkerRows = [],\n selectedJobSpec\n}) => {\n //Стиль\n let cellStyle = {};\n //Если это рабочие\n if (sUnit === UNIT_WORKERS) {\n //Признак недоступности\n let disabled = true;\n //Если в выбранной строке смены указан исполнитель факт\n if (selectedJobSpec.NPERFORM_FACT) {\n //Если это текущей исполнитель\n if (selectedJobSpec.SWORKERS_LIST.includes(row[\"NRN\"])) {\n //Подсвечиваем строку рабочего\n cellStyle = {\n backgroundColor: colors.LINKED\n };\n }\n } else {\n //Если выбрана строка смены\n if (selectedJobSpec.NRN) {\n //Если текущий рабочий может принять задание\n if (row[\"NLOADING\"] < 100) {\n //Подсвечиваем строку рабочего\n cellStyle = {\n backgroundColor: colors.LINKED\n };\n disabled = false;\n }\n }\n }\n //Если уже выбрано достаточное количество рабочих и текущий рабочий не отмечен\n if (selectedJobSpec.NRESOURCE_NUMB === selectedWorkerRows.length && !selectedWorkerRows.includes(row[\"NRN\"])) {\n //Устанавливаем признак недоступности\n disabled = true;\n }\n //Если загрузка рабочего больше 100\n if (row[\"NLOADING\"] >= 100) {\n //Если поле не поле выбора\n if (columnDef.name !== \"NSELECT\") {\n //Указываем, что рабочее место недоступно\n cellStyle = {\n ...cellStyle,\n color: colors.UNAVAILABLE\n };\n }\n }\n //Для колонки выбора\n if (columnDef.name === \"NSELECT\") {\n return {\n cellStyle,\n data: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n disabled: disabled,\n checked: selectedWorkerRows.includes(row[\"NRN\"]),\n onChange: () => handleSelectChange({\n NRN: row[\"NRN\"],\n SUNIT: sUnit,\n BFULL_LOADED: row[\"NLOADING\"] >= 100\n })\n }))\n };\n }\n //Отформатированная колонка\n return {\n cellStyle,\n data: row[columnDef.name]\n };\n }\n //Если это сменное задание\n if (sUnit === UNIT_COST_JOBS_SPECS) {\n //Если указан исполнитель факт\n if (row[\"NPERFORM_FACT\"]) {\n //Подсвечиваем сменное задание зеленым\n cellStyle = {\n ...cellStyle,\n backgroundColor: colors.WITH_WORKER\n };\n }\n //Для колонки выбора\n if (columnDef.name === \"NSELECT\") {\n return {\n cellStyle,\n data: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n disabled: row[\"DBEG_FACT\"] ? true : false,\n checked: row[\"NRN\"] === selectedJobSpec.NRN,\n onChange: () => handleSelectChange({\n NRN: row[\"NRN\"],\n SUNIT: sUnit,\n NPERFORM_FACT: row[\"NPERFORM_FACT\"],\n NRESOURCE_NUMB: row[\"NRESOURCE_NUMB\"],\n NQUANT_PLAN: row[\"NQUANT_PLAN\"],\n SWORKERS_LIST: row[\"SWORKERS_LIST\"]\n })\n }))\n };\n }\n //Отформатированная колонка\n return {\n cellStyle,\n data: row[columnDef.name]\n };\n }\n //Необрабатываемый раздел\n return {\n data: row[columnDef.name]\n };\n};\n\n//Генерация представления ячейки заголовка группы\nconst headCellRender = ({\n columnDef\n}) => {\n if (columnDef.name === \"NSELECT\") {\n return {\n stackStyle: {\n padding: \"2px\",\n justifyContent: \"space-around\"\n },\n data: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, \"done\")\n };\n } else {\n return {\n stackStyle: {\n padding: \"2px\"\n },\n data: columnDef.caption\n };\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Корневая панель выдачи сменного задания на участок\nconst MechRecCostJobs = () => {\n //Состояние диалога включения в задание\n const [showInclude, setShowInclude] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Состояние информации о сменном задании\n const [state, setState] = (0,_hooks__WEBPACK_IMPORTED_MODULE_5__.useCostJobs)();\n\n //Состояние таблицы сменных заданий\n const [costJobsSpecs, setCostJobsSpecs, issueCostJobsSpecs] = (0,_hooks__WEBPACK_IMPORTED_MODULE_5__.useCostJobsSpecs)(state.jobInfo.NRN);\n\n //Состояние таблицы рабочих\n const [costJobsWorkers, setCostJobsWorkers, includeWorker, excludeWorker] = (0,_hooks__WEBPACK_IMPORTED_MODULE_5__.useCostJobsWorkers)(state.jobInfo.NRN);\n\n //При изменении состояния сортировки операций\n const handleCostJobsSpecOrderChanged = ({\n orders\n }) => setCostJobsSpecs(pv => ({\n ...pv,\n orders: [...orders],\n pageNumber: 1,\n reload: true\n }));\n\n //При изменении количества отображаемых страниц операций\n const handleCostJobsSpecPagesCountChanged = () => setCostJobsSpecs(pv => ({\n ...pv,\n pageNumber: pv.pageNumber + 1,\n reload: true\n }));\n\n //При изменении состояния сортировки рабочих\n const handleCostJobsWorkersOrderChanged = ({\n orders\n }) => setCostJobsWorkers(pv => ({\n ...pv,\n orders: [...orders],\n pageNumber: 1,\n reload: true\n }));\n\n //При изменении количества отображаемых страниц рабочих\n const handleCostJobsWorkersPagesCountChanged = () => setCostJobsWorkers(pv => ({\n ...pv,\n pageNumber: pv.pageNumber + 1,\n reload: true\n }));\n\n //При исключении рабочих из строки сменного задания\n const handleCostJobsSpecExcludeWorker = () => {\n //Делаем асинхронно, чтобы при ошибке ничего не обновлять\n const excludeAsync = async () => {\n //Исключаем рабочего из строки сменного задания\n try {\n await excludeWorker({\n NFCJOBSSP: costJobsSpecs.selectedRow.NRN\n });\n //Необходимо обновить данные\n setCostJobsSpecs(pv => ({\n ...pv,\n selectedRow: {},\n pageNumber: 1,\n reload: true\n }));\n setCostJobsWorkers(pv => ({\n ...pv,\n selectedRows: [],\n pageNumber: 1,\n reload: true\n }));\n } catch (e) {\n throw new Error(e.message);\n }\n };\n //Исключаем рабочего асинхронно\n excludeAsync();\n };\n\n //Выдача задания операции\n const handleCostJobsSpecIssue = () => {\n //Делаем асинхронно, чтобы при ошибке ничего не обновлять\n const issueAsync = async () => {\n //Включаем рабочих в операции\n try {\n await issueCostJobsSpecs({\n NFCJOBS: state.jobInfo.NRN,\n NCOEFF: state.coeff\n });\n //Необходимо обновить данные\n setCostJobsSpecs(pv => ({\n ...pv,\n selectedRow: {},\n pageNumber: 1,\n reload: true\n }));\n setCostJobsWorkers(pv => ({\n ...pv,\n selectedRows: [],\n pageNumber: 1,\n reload: true\n }));\n } catch (e) {\n throw new Error(e.message);\n }\n };\n //Выдаем задание асинхронно\n issueAsync();\n };\n\n //При изменение состояния выбора\n const handleSelectChange = prms => {\n //Выбранный элемент\n let selectedRow = null;\n //Буфер для выбранных рабочих\n let selectedWorkers = [];\n //Индекс рабочего в списке выбранных\n let workerIndex = null;\n //Исходим от раздела\n switch (prms.SUNIT) {\n //Сменное задание\n case UNIT_COST_JOBS_SPECS:\n //Определяем это новое отмеченное сменное задание или сброс старого\n selectedRow = costJobsSpecs.selectedRow.NRN ? costJobsSpecs.selectedRow.NRN === prms.NRN ? null : prms.NRN : prms.NRN;\n //Актуализируем строки\n setCostJobsSpecs(pv => ({\n ...pv,\n selectedRow: selectedRow ? {\n NRN: selectedRow,\n NPERFORM_FACT: prms.NPERFORM_FACT,\n NRESOURCE_NUMB: prms.NRESOURCE_NUMB,\n NQUANT_PLAN: prms.NQUANT_PLAN,\n SWORKERS_LIST: prms.SWORKERS_LIST\n } : {\n NRN: null,\n NPERFORM_FACT: null,\n NRESOURCE_NUMB: null,\n NQUANT_PLAN: null,\n SWORKERS_LIST: []\n }\n }));\n //Выходим\n break;\n //Рабочие центры\n case UNIT_WORKERS:\n //Инициализируем рабочими центрами\n selectedWorkers = costJobsWorkers.selectedRows || [];\n //Определяем индекс элемента в массиве\n workerIndex = selectedWorkers.indexOf(prms.NRN);\n //Если такого рег. номера нет в списке - добавляем, иначе удаляем\n workerIndex > -1 ? selectedWorkers.splice(workerIndex, 1) : selectedWorkers.push(prms.NRN);\n //Актуализируем строки\n setCostJobsWorkers(pv => ({\n ...pv,\n selectedRows: selectedWorkers\n }));\n //Выходим\n break;\n default:\n return;\n }\n };\n\n //При открытии/закрытии диалога добавления\n const handleShowIncludeChange = needShow => setShowInclude(needShow);\n\n //При изменении коэффициент выполнения норм\n const handleIssueCoeffChange = e => {\n isValidIssueCoeff(e.target.value) ? setState(pv => ({\n ...pv,\n coeff: e.target.value\n })) : null;\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n p: 2\n }, state.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: STYLES.MAIN_HEADER,\n variant: \"h6\"\n }, `Сменное задание №${state.jobInfo.SDOC_NUMB} на ${state.jobInfo.SPERIOD}`), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: STYLES.SUB_HEADER,\n variant: \"h6\"\n }, `${state.jobInfo.SSUBDIV}`), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n container: true,\n spacing: 2\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n item: true,\n sx: STYLES.CONTAINER,\n xs: 6\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: STYLES.TABLE_HEADER,\n variant: \"h6\",\n color: \"text.secondary\"\n }, \"\\u0421\\u043C\\u0435\\u043D\\u043D\\u043E\\u0435 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0435\"), costJobsWorkers.dataLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.TABLE_BUTTONS\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n direction: \"row\",\n spacing: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n title: state.jobInfo.NHAVE_NOTE ? \"Сменное задание имеет строку с примечанием\" : \"Коэффициент выполнения норм\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n name: \"editIssueValue\",\n variant: \"outlined\",\n sx: {\n width: \"68px\"\n },\n inputProps: {\n sx: {\n padding: \"4.2px 14px\"\n }\n },\n size: \"small\",\n value: state.coeff,\n onChange: handleIssueCoeffChange,\n disabled: state.jobInfo.NHAVE_NOTE\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n title: state.jobInfo.NHAVE_NOTE ? \"Сменное задание имеет строку с примечанием\" : !(0,_core_utils__WEBPACK_IMPORTED_MODULE_7__.hasValue)(state.coeff) ? \"Не указано значение коэффициент выполнения норм\" : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n variant: \"contained\",\n size: \"small\",\n disabled: state.jobInfo.NHAVE_NOTE || !(0,_core_utils__WEBPACK_IMPORTED_MODULE_7__.hasValue)(state.coeff),\n onClick: handleCostJobsSpecIssue\n }, \"\\u0412\\u044B\\u0434\\u0430\\u0442\\u044C \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F\"))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.TABLE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_3__.P8PDataGrid, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_CONFIG_PROPS, {\n containerComponentProps: {\n sx: STYLES.DATA_GRID_CONTAINER(costJobsSpecs.morePages),\n elevation: 1\n },\n columnsDef: costJobsSpecs.columnsDef,\n rows: costJobsSpecs.rows,\n size: _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_3__.P8P_DATA_GRID_SIZE.SMALL,\n morePages: costJobsSpecs.morePages,\n reloading: costJobsSpecs.reload,\n onOrderChanged: handleCostJobsSpecOrderChanged,\n onPagesCountChanged: handleCostJobsSpecPagesCountChanged,\n dataCellRender: prms => dataCellRender({\n ...prms,\n handleSelectChange,\n sUnit: UNIT_COST_JOBS_SPECS,\n selectedJobSpec: costJobsSpecs.selectedRow\n }),\n headCellRender: prms => headCellRender({\n ...prms\n }),\n fixedHeader: true\n })))) : null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n item: true,\n sx: STYLES.CONTAINER,\n xs: 6\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: STYLES.TABLE_HEADER,\n variant: \"h6\",\n color: \"text.secondary\"\n }, \"\\u0420\\u0430\\u0431\\u043E\\u0447\\u0438\\u0435\"), costJobsWorkers.dataLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.TABLE_BUTTONS\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n direction: \"row\",\n spacing: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n variant: \"contained\",\n size: \"small\",\n disabled: !(costJobsSpecs.selectedRow.NRESOURCE_NUMB === costJobsWorkers.selectedRows.length),\n onClick: () => handleShowIncludeChange(true)\n }, \"\\u0412\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u044C \\u0432 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n variant: \"contained\",\n size: \"small\",\n disabled: !costJobsSpecs.selectedRow.NRN || !costJobsSpecs.selectedRow.NPERFORM_FACT,\n onClick: handleCostJobsSpecExcludeWorker\n }, \"\\u0418\\u0441\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u044C \\u0438\\u0437 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.TABLE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_3__.P8PDataGrid, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_CONFIG_PROPS, {\n containerComponentProps: {\n sx: STYLES.DATA_GRID_CONTAINER(costJobsWorkers.morePages),\n elevation: 1\n },\n columnsDef: costJobsWorkers.columnsDef,\n rows: costJobsWorkers.rows,\n size: _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_3__.P8P_DATA_GRID_SIZE.SMALL,\n morePages: costJobsWorkers.morePages,\n reloading: costJobsWorkers.reload,\n onOrderChanged: handleCostJobsWorkersOrderChanged,\n onPagesCountChanged: handleCostJobsWorkersPagesCountChanged,\n dataCellRender: prms => dataCellRender({\n ...prms,\n handleSelectChange,\n sUnit: UNIT_WORKERS,\n selectedWorkerRows: costJobsWorkers.selectedRows,\n selectedJobSpec: costJobsSpecs.selectedRow\n }),\n headCellRender: prms => headCellRender({\n ...prms\n }),\n fixedHeader: true\n })))) : null)))) : null, showInclude ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_worker_include_dialog__WEBPACK_IMPORTED_MODULE_6__.CostJobsSpecsInclude, {\n includePrms: {\n NFCJOBSSP: costJobsSpecs.selectedRow.NRN,\n SELECTED_WORKERS: costJobsWorkers.selectedRows,\n NQUANT_PLAN: costJobsSpecs.selectedRow.NQUANT_PLAN\n },\n setShowInclude: setShowInclude,\n setCostJobsSpecs: setCostJobsSpecs,\n setCostJobsWorkers: setCostJobsWorkers,\n includeWorker: includeWorker\n }) : null);\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_cost_jobs_manage_mp/mech_rec_cost_jobs_manage_mp.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MechRecCostJobs: () => (/* binding */ MechRecCostJobs),\n/* harmony export */ headCellRender: () => (/* binding */ headCellRender)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Checkbox/Checkbox.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Grid/Grid.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Tooltip/Tooltip.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/p8p_app_workspace */ \"./app/components/p8p_app_workspace.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../app.styles */ \"./app.styles.js\");\n/* harmony import */ var _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/p8p_data_grid */ \"./app/components/p8p_data_grid.js\");\n/* harmony import */ var _config_wrapper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../config_wrapper */ \"./app/config_wrapper.js\");\n/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./hooks */ \"./app/panels/mech_rec_cost_jobs_manage_mp/hooks.js\");\n/* harmony import */ var _worker_include_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./worker_include_dialog */ \"./app/panels/mech_rec_cost_jobs_manage_mp/worker_include_dialog.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\r\n Парус 8 - Панели мониторинга - ПУП - Выдача сменного задания на участок\r\n Панель мониторинга: Корневая панель выдачи сменного задания на участок\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Интерфейсные элементы\n //Заголовок страницы\n //Типовые стили\n //Таблица данных\n //Подключение компонентов к настройкам приложения\n //Вспомогательные хуки\n //Компонент диалога включения в задание\n //Вспомогательные функции\n\n//---------\n//Константы\n//---------\n\n//Мнемокод раздела операций\nconst UNIT_COST_JOBS_SPECS = \"CostJobsSpecs\";\n\n//Мнемокод раздела исполнений должности\nconst UNIT_WORKERS = \"ClientPostPerform\";\n\n//Высота основного заголовка\nconst MAIN_HEADER_HEIGHT = \"35px\";\n\n//Высота подзаголовка\nconst SUB_HEADER_HEIGHT = \"35px\";\n\n//Высота заголовка таблицы\nconst TABLE_HEADER_HEIGHT = \"35px\";\n\n//Высота панели кнопок таблицы\nconst TABLE_BUTTONS_HEIGHT = \"35px\";\n\n//Отступ таблицы\nconst TABLE_PADDING_TOP = \"15px\";\n\n//Формат для коэффициент выполнения норм\nconst issueCoeffFormat = /^(?!.*\\..*\\.)[0-9]{0,3}(\\.[0-9]{0,1})?$/;\n\n//Стили\nconst STYLES = {\n MAIN_HEADER: {\n height: MAIN_HEADER_HEIGHT,\n overflow: \"hidden\"\n },\n SUB_HEADER: {\n height: SUB_HEADER_HEIGHT,\n overflow: \"hidden\"\n },\n CONTAINER: {\n textAlign: \"center\"\n },\n TABLE: {\n paddingTop: TABLE_PADDING_TOP\n },\n TABLE_HEADER: {\n height: TABLE_HEADER_HEIGHT,\n overflow: \"hidden\"\n },\n TABLE_BUTTONS: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n height: TABLE_BUTTONS_HEIGHT,\n overflow: \"hidden\",\n alignItems: \"flex-end\"\n },\n DATA_GRID_CONTAINER: morePages => ({\n height: `calc(100vh - ${_components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_1__.APP_BAR_HEIGHT} - ${MAIN_HEADER_HEIGHT} - ${SUB_HEADER_HEIGHT} - ${TABLE_HEADER_HEIGHT} - ${TABLE_BUTTONS_HEIGHT} - ${TABLE_PADDING_TOP} - 32px - ${morePages ? _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_3__.P8P_DATA_GRID_MORE_HEIGHT : \"0px\"})`,\n ..._app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_STYLES.SCROLL\n })\n};\n\n//Цвета\nconst colors = {\n LINKED: \"#bce0de\",\n UNAVAILABLE: \"#949494\",\n WITH_WORKER: \"#82df83\"\n};\n\n//------------------------------------\n//Вспомогательные функции и компоненты\n//------------------------------------\n\n//Проверка правильности значения коэффициент выполнения норм\nconst isValidIssueCoeff = value => {\n return issueCoeffFormat.test(value);\n};\n\n//Форматирование значения ячейки\nconst dataCellRender = ({\n row,\n columnDef,\n handleSelectChange,\n sUnit,\n selectedWorkerRows = [],\n selectedJobSpec\n}) => {\n //Стиль\n let cellStyle = {};\n //Если это рабочие\n if (sUnit === UNIT_WORKERS) {\n //Признак недоступности\n let disabled = true;\n //Если в выбранной строке смены указан исполнитель факт\n if (selectedJobSpec.NPERFORM_FACT) {\n //Если это текущей исполнитель\n if (selectedJobSpec.SWORKERS_LIST.includes(row[\"NRN\"])) {\n //Подсвечиваем строку рабочего\n cellStyle = {\n backgroundColor: colors.LINKED\n };\n }\n } else {\n //Если выбрана строка смены\n if (selectedJobSpec.NRN) {\n //Если текущий рабочий может принять задание\n if (row[\"NLOADING\"] < 100) {\n //Подсвечиваем строку рабочего\n cellStyle = {\n backgroundColor: colors.LINKED\n };\n disabled = false;\n }\n }\n }\n //Если уже выбрано достаточное количество рабочих и текущий рабочий не отмечен\n if (selectedJobSpec.NRESOURCE_NUMB === selectedWorkerRows.length && !selectedWorkerRows.includes(row[\"NRN\"])) {\n //Устанавливаем признак недоступности\n disabled = true;\n }\n //Если загрузка рабочего больше 100\n if (row[\"NLOADING\"] >= 100) {\n //Если поле не поле выбора\n if (columnDef.name !== \"NSELECT\") {\n //Указываем, что рабочее место недоступно\n cellStyle = {\n ...cellStyle,\n color: colors.UNAVAILABLE\n };\n }\n }\n //Для колонки выбора\n if (columnDef.name === \"NSELECT\") {\n return {\n cellStyle,\n data: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n disabled: disabled,\n checked: selectedWorkerRows.includes(row[\"NRN\"]),\n onChange: () => handleSelectChange({\n NRN: row[\"NRN\"],\n SUNIT: sUnit,\n BFULL_LOADED: row[\"NLOADING\"] >= 100\n })\n }))\n };\n }\n //Отформатированная колонка\n return {\n cellStyle,\n data: row[columnDef.name]\n };\n }\n //Если это сменное задание\n if (sUnit === UNIT_COST_JOBS_SPECS) {\n //Если указан исполнитель факт\n if (row[\"NPERFORM_FACT\"]) {\n //Подсвечиваем сменное задание зеленым\n cellStyle = {\n ...cellStyle,\n backgroundColor: colors.WITH_WORKER\n };\n }\n //Для колонки выбора\n if (columnDef.name === \"NSELECT\") {\n return {\n cellStyle,\n data: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n disabled: row[\"DBEG_FACT\"] ? true : false,\n checked: row[\"NRN\"] === selectedJobSpec.NRN,\n onChange: () => handleSelectChange({\n NRN: row[\"NRN\"],\n SUNIT: sUnit,\n NPERFORM_FACT: row[\"NPERFORM_FACT\"],\n NRESOURCE_NUMB: row[\"NRESOURCE_NUMB\"],\n NQUANT_PLAN: row[\"NQUANT_PLAN\"],\n SWORKERS_LIST: row[\"SWORKERS_LIST\"]\n })\n }))\n };\n }\n //Отформатированная колонка\n return {\n cellStyle,\n data: row[columnDef.name]\n };\n }\n //Необрабатываемый раздел\n return {\n data: row[columnDef.name]\n };\n};\n\n//Генерация представления ячейки заголовка группы\nconst headCellRender = ({\n columnDef\n}) => {\n if (columnDef.name === \"NSELECT\") {\n return {\n stackStyle: {\n padding: \"2px\",\n justifyContent: \"space-around\"\n },\n data: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, \"done\")\n };\n } else {\n return {\n stackStyle: {\n padding: \"2px\"\n },\n data: columnDef.caption\n };\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Корневая панель выдачи сменного задания на участок\nconst MechRecCostJobs = () => {\n //Состояние диалога включения в задание\n const [showInclude, setShowInclude] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Состояние информации о сменном задании\n const [state, setState] = (0,_hooks__WEBPACK_IMPORTED_MODULE_5__.useCostJobs)();\n\n //Состояние таблицы сменных заданий\n const [costJobsSpecs, setCostJobsSpecs, issueCostJobsSpecs] = (0,_hooks__WEBPACK_IMPORTED_MODULE_5__.useCostJobsSpecs)(state.jobInfo.NRN);\n\n //Состояние таблицы рабочих\n const [costJobsWorkers, setCostJobsWorkers, includeWorker, excludeWorker] = (0,_hooks__WEBPACK_IMPORTED_MODULE_5__.useCostJobsWorkers)(state.jobInfo.NRN);\n\n //При изменении состояния сортировки операций\n const handleCostJobsSpecOrderChanged = ({\n orders\n }) => setCostJobsSpecs(pv => ({\n ...pv,\n orders: [...orders],\n pageNumber: 1,\n reload: true\n }));\n\n //При изменении количества отображаемых страниц операций\n const handleCostJobsSpecPagesCountChanged = () => setCostJobsSpecs(pv => ({\n ...pv,\n pageNumber: pv.pageNumber + 1,\n reload: true\n }));\n\n //При изменении состояния сортировки рабочих\n const handleCostJobsWorkersOrderChanged = ({\n orders\n }) => setCostJobsWorkers(pv => ({\n ...pv,\n orders: [...orders],\n pageNumber: 1,\n reload: true\n }));\n\n //При изменении количества отображаемых страниц рабочих\n const handleCostJobsWorkersPagesCountChanged = () => setCostJobsWorkers(pv => ({\n ...pv,\n pageNumber: pv.pageNumber + 1,\n reload: true\n }));\n\n //При исключении рабочих из строки сменного задания\n const handleCostJobsSpecExcludeWorker = () => {\n //Делаем асинхронно, чтобы при ошибке ничего не обновлять\n const excludeAsync = async () => {\n //Исключаем рабочего из строки сменного задания\n try {\n await excludeWorker({\n NFCJOBSSP: costJobsSpecs.selectedRow.NRN\n });\n //Необходимо обновить данные\n setCostJobsSpecs(pv => ({\n ...pv,\n selectedRow: {},\n pageNumber: 1,\n reload: true\n }));\n setCostJobsWorkers(pv => ({\n ...pv,\n selectedRows: [],\n pageNumber: 1,\n reload: true\n }));\n } catch (e) {\n throw new Error(e.message);\n }\n };\n //Исключаем рабочего асинхронно\n excludeAsync();\n };\n\n //Выдача задания операции\n const handleCostJobsSpecIssue = () => {\n //Делаем асинхронно, чтобы при ошибке ничего не обновлять\n const issueAsync = async () => {\n //Включаем рабочих в операции\n try {\n await issueCostJobsSpecs({\n NFCJOBS: state.jobInfo.NRN,\n NCOEFF: state.coeff\n });\n //Необходимо обновить данные\n setCostJobsSpecs(pv => ({\n ...pv,\n selectedRow: {},\n pageNumber: 1,\n reload: true\n }));\n setCostJobsWorkers(pv => ({\n ...pv,\n selectedRows: [],\n pageNumber: 1,\n reload: true\n }));\n } catch (e) {\n throw new Error(e.message);\n }\n };\n //Выдаем задание асинхронно\n issueAsync();\n };\n\n //При изменение состояния выбора\n const handleSelectChange = prms => {\n //Выбранный элемент\n let selectedRow = null;\n //Буфер для выбранных рабочих\n let selectedWorkers = [];\n //Индекс рабочего в списке выбранных\n let workerIndex = null;\n //Исходим от раздела\n switch (prms.SUNIT) {\n //Сменное задание\n case UNIT_COST_JOBS_SPECS:\n //Определяем это новое отмеченное сменное задание или сброс старого\n selectedRow = costJobsSpecs.selectedRow.NRN ? costJobsSpecs.selectedRow.NRN === prms.NRN ? null : prms.NRN : prms.NRN;\n //Актуализируем строки\n setCostJobsSpecs(pv => ({\n ...pv,\n selectedRow: selectedRow ? {\n NRN: selectedRow,\n NPERFORM_FACT: prms.NPERFORM_FACT,\n NRESOURCE_NUMB: prms.NRESOURCE_NUMB,\n NQUANT_PLAN: prms.NQUANT_PLAN,\n SWORKERS_LIST: prms.SWORKERS_LIST\n } : {\n NRN: null,\n NPERFORM_FACT: null,\n NRESOURCE_NUMB: null,\n NQUANT_PLAN: null,\n SWORKERS_LIST: []\n }\n }));\n //Выходим\n break;\n //Рабочие центры\n case UNIT_WORKERS:\n //Инициализируем рабочими центрами\n selectedWorkers = costJobsWorkers.selectedRows || [];\n //Определяем индекс элемента в массиве\n workerIndex = selectedWorkers.indexOf(prms.NRN);\n //Если такого рег. номера нет в списке - добавляем, иначе удаляем\n workerIndex > -1 ? selectedWorkers.splice(workerIndex, 1) : selectedWorkers.push(prms.NRN);\n //Актуализируем строки\n setCostJobsWorkers(pv => ({\n ...pv,\n selectedRows: selectedWorkers\n }));\n //Выходим\n break;\n default:\n return;\n }\n };\n\n //При открытии/закрытии диалога добавления\n const handleShowIncludeChange = needShow => setShowInclude(needShow);\n\n //При изменении коэффициент выполнения норм\n const handleIssueCoeffChange = e => {\n isValidIssueCoeff(e.target.value) ? setState(pv => ({\n ...pv,\n coeff: e.target.value\n })) : null;\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n p: 2\n }, state.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: STYLES.MAIN_HEADER,\n variant: \"h6\"\n }, `Сменное задание №${state.jobInfo.SDOC_NUMB} на ${state.jobInfo.SPERIOD}`), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: STYLES.SUB_HEADER,\n variant: \"h6\"\n }, `${state.jobInfo.SSUBDIV}`), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n container: true,\n spacing: 2\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n item: true,\n sx: STYLES.CONTAINER,\n xs: 6\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: STYLES.TABLE_HEADER,\n variant: \"h6\",\n color: \"text.secondary\"\n }, \"\\u0421\\u043C\\u0435\\u043D\\u043D\\u043E\\u0435 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0435\"), costJobsWorkers.dataLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.TABLE_BUTTONS\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n direction: \"row\",\n spacing: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n title: state.jobInfo.NHAVE_NOTE ? \"Сменное задание имеет строку с примечанием\" : \"Коэффициент выполнения норм\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n name: \"editIssueValue\",\n variant: \"outlined\",\n sx: {\n width: \"68px\"\n },\n inputProps: {\n sx: {\n padding: \"4.2px 14px\"\n }\n },\n size: \"small\",\n value: state.coeff,\n onChange: handleIssueCoeffChange,\n disabled: state.jobInfo.NHAVE_NOTE\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n title: state.jobInfo.NHAVE_NOTE ? \"Сменное задание имеет строку с примечанием\" : !(0,_core_utils__WEBPACK_IMPORTED_MODULE_7__.hasValue)(state.coeff) ? \"Не указано значение коэффициент выполнения норм\" : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n variant: \"contained\",\n size: \"small\",\n disabled: state.jobInfo.NHAVE_NOTE || !(0,_core_utils__WEBPACK_IMPORTED_MODULE_7__.hasValue)(state.coeff),\n onClick: handleCostJobsSpecIssue\n }, \"\\u0412\\u044B\\u0434\\u0430\\u0442\\u044C \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F\"))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.TABLE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_3__.P8PDataGrid, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_CONFIG_PROPS, {\n containerComponentProps: {\n sx: STYLES.DATA_GRID_CONTAINER(costJobsSpecs.morePages),\n elevation: 4\n },\n columnsDef: costJobsSpecs.columnsDef,\n rows: costJobsSpecs.rows,\n size: _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_3__.P8P_DATA_GRID_SIZE.SMALL,\n morePages: costJobsSpecs.morePages,\n reloading: costJobsSpecs.reload,\n onOrderChanged: handleCostJobsSpecOrderChanged,\n onPagesCountChanged: handleCostJobsSpecPagesCountChanged,\n dataCellRender: prms => dataCellRender({\n ...prms,\n handleSelectChange,\n sUnit: UNIT_COST_JOBS_SPECS,\n selectedJobSpec: costJobsSpecs.selectedRow\n }),\n headCellRender: prms => headCellRender({\n ...prms\n }),\n fixedHeader: costJobsSpecs.fixedHeader,\n fixedColumns: costJobsSpecs.fixedColumns\n })))) : null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n item: true,\n sx: STYLES.CONTAINER,\n xs: 6\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: STYLES.TABLE_HEADER,\n variant: \"h6\",\n color: \"text.secondary\"\n }, \"\\u0420\\u0430\\u0431\\u043E\\u0447\\u0438\\u0435\"), costJobsWorkers.dataLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.TABLE_BUTTONS\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n direction: \"row\",\n spacing: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n variant: \"contained\",\n size: \"small\",\n disabled: !(costJobsSpecs.selectedRow.NRESOURCE_NUMB === costJobsWorkers.selectedRows.length),\n onClick: () => handleShowIncludeChange(true)\n }, \"\\u0412\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u044C \\u0432 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n variant: \"contained\",\n size: \"small\",\n disabled: !costJobsSpecs.selectedRow.NRN || !costJobsSpecs.selectedRow.NPERFORM_FACT,\n onClick: handleCostJobsSpecExcludeWorker\n }, \"\\u0418\\u0441\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u044C \\u0438\\u0437 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.TABLE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_3__.P8PDataGrid, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_CONFIG_PROPS, {\n containerComponentProps: {\n sx: STYLES.DATA_GRID_CONTAINER(costJobsWorkers.morePages),\n elevation: 4\n },\n columnsDef: costJobsWorkers.columnsDef,\n rows: costJobsWorkers.rows,\n size: _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_3__.P8P_DATA_GRID_SIZE.SMALL,\n morePages: costJobsWorkers.morePages,\n reloading: costJobsWorkers.reload,\n onOrderChanged: handleCostJobsWorkersOrderChanged,\n onPagesCountChanged: handleCostJobsWorkersPagesCountChanged,\n dataCellRender: prms => dataCellRender({\n ...prms,\n handleSelectChange,\n sUnit: UNIT_WORKERS,\n selectedWorkerRows: costJobsWorkers.selectedRows,\n selectedJobSpec: costJobsSpecs.selectedRow\n }),\n headCellRender: prms => headCellRender({\n ...prms\n }),\n fixedHeader: true\n })))) : null)))) : null, showInclude ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_worker_include_dialog__WEBPACK_IMPORTED_MODULE_6__.CostJobsSpecsInclude, {\n includePrms: {\n NFCJOBSSP: costJobsSpecs.selectedRow.NRN,\n SELECTED_WORKERS: costJobsWorkers.selectedRows,\n NQUANT_PLAN: costJobsSpecs.selectedRow.NQUANT_PLAN\n },\n setShowInclude: setShowInclude,\n setCostJobsSpecs: setCostJobsSpecs,\n setCostJobsWorkers: setCostJobsWorkers,\n includeWorker: includeWorker\n }) : null);\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_cost_jobs_manage_mp/mech_rec_cost_jobs_manage_mp.js?"); /***/ }),