diff --git a/app/panels/prj_jobs/lab_fact_rpt_dtl.js b/app/panels/prj_jobs/lab_fact_rpt_dtl.js
index 7716c3c..f443384 100644
--- a/app/panels/prj_jobs/lab_fact_rpt_dtl.js
+++ b/app/panels/prj_jobs/lab_fact_rpt_dtl.js
@@ -45,7 +45,7 @@ const LabFactRptDtl = ({ periodId, title, onHide }) => {
const loadFactRptDtl = useCallback(async () => {
if (factRptDtl.reload) {
const data = await executeStored({
- stored: "PKG_P8PANELS_PROJECTS.JB_PERIODS_LIST_FACT_RPT",
+ stored: "PKG_P8PANELS_PROJECTS.JB_PERIODS_FACT_RPT_LIST",
args: {
NJB_PERIODS: periodId,
CORDERS: { VALUE: object2Base64XML(factRptDtl.orders, { arrayNodeName: "orders" }), SDATA_TYPE: SERV_DATA_TYPE_CLOB },
diff --git a/app/panels/prj_jobs/lab_plan_fot_dtl.js b/app/panels/prj_jobs/lab_plan_fot_dtl.js
index 37027eb..520360b 100644
--- a/app/panels/prj_jobs/lab_plan_fot_dtl.js
+++ b/app/panels/prj_jobs/lab_plan_fot_dtl.js
@@ -44,7 +44,7 @@ const LabPlanFOTDtl = ({ periodId, title, onHide }) => {
const loadPlanFOTDtl = useCallback(async () => {
if (planFOTDtl.reload) {
const data = await executeStored({
- stored: "PKG_P8PANELS_PROJECTS.JB_PERIODS_LIST_PLAN_FOT",
+ stored: "PKG_P8PANELS_PROJECTS.JB_PERIODS_PLAN_FOT_LIST",
args: {
NJB_PERIODS: periodId,
CORDERS: { VALUE: object2Base64XML(planFOTDtl.orders, { arrayNodeName: "orders" }), SDATA_TYPE: SERV_DATA_TYPE_CLOB },
diff --git a/app/panels/prj_jobs/lab_plan_jobs_dtl.js b/app/panels/prj_jobs/lab_plan_jobs_dtl.js
index 1c77aa7..251dd68 100644
--- a/app/panels/prj_jobs/lab_plan_jobs_dtl.js
+++ b/app/panels/prj_jobs/lab_plan_jobs_dtl.js
@@ -49,7 +49,7 @@ const LabPlanJobsDtl = ({ periodId, title, onHide, onProjectClick }) => {
const loadPlanJobsDtl = useCallback(async () => {
if (planJobsDtl.reload) {
const data = await executeStored({
- stored: "PKG_P8PANELS_PROJECTS.JB_PERIODS_LIST_PLAN_JOBS",
+ stored: "PKG_P8PANELS_PROJECTS.JB_PERIODS_PLAN_JOBS_LIST",
args: {
NJB_PERIODS: periodId,
CORDERS: { VALUE: object2Base64XML(planJobsDtl.orders, { arrayNodeName: "orders" }), SDATA_TYPE: SERV_DATA_TYPE_CLOB },
diff --git a/app/panels/prj_jobs/prj_jobs.js b/app/panels/prj_jobs/prj_jobs.js
index f414caa..307e578 100644
--- a/app/panels/prj_jobs/prj_jobs.js
+++ b/app/panels/prj_jobs/prj_jobs.js
@@ -66,22 +66,12 @@ const STYLES = {
PERIODS_DRAWER: { width: "1200px", flexShrink: 0, [`& .MuiDrawer-paper`]: { width: "1200px", boxSizing: "border-box" } }
};
-//Единицы измерения длительности
-const DURATION_MEAS = {
- 0: "День",
- 1: "Неделя",
- 2: "Декада",
- 3: "Месяц",
- 4: "Квартал",
- 5: "Год"
-};
-
//------------------------------------
//Вспомогательные функции и компоненты
//------------------------------------
//Диалог параметров инициализации панели
-const InitDialog = ({ dateBegin, dateFact, onOk, onCancel }) => {
+const InitPrmsDialog = ({ dateBegin, dateFact, onOk, onCancel }) => {
//Собственное состояние - значения с-по
const [values, setValues] = useState({ dateBegin: formatDateJSONDateOnly(dateBegin), dateFact: formatDateJSONDateOnly(dateFact) });
@@ -130,13 +120,72 @@ const InitDialog = ({ dateBegin, dateFact, onOk, onCancel }) => {
};
//Контроль свойств - Диалог параметров инициализации панели
-InitDialog.propTypes = {
+InitPrmsDialog.propTypes = {
dateBegin: PropTypes.instanceOf(Date).isRequired,
dateFact: PropTypes.instanceOf(Date).isRequired,
onOk: PropTypes.func,
onCancel: PropTypes.func
};
+//Область параметров инициализации панели
+const InitPrmsArea = ({ dateBegin, dateFact, durationMeasCode, labMeasCode, onClick }) => {
+ return (
+
+
+
+ Начало:
+ {formatDateRF(dateBegin)}
+
+ Факт на:
+ {formatDateRF(dateFact)}
+
+ Длительность:
+ {durationMeasCode}
+
+ Трудоёмкость:
+ {labMeasCode}
+ >
+ }
+ />
+
+
+
+
+
+ );
+};
+
+//Контроль свойств - Область параметров инициализации панели
+InitPrmsArea.propTypes = {
+ dateBegin: PropTypes.instanceOf(Date),
+ dateFact: PropTypes.instanceOf(Date),
+ durationMeasCode: PropTypes.string,
+ labMeasCode: PropTypes.string,
+ onClick: PropTypes.func
+};
+
+//Область сохранения изменений
+const SaveChangesArea = ({ onClick }) => {
+ return (
+
+
+
+
+
+ );
+};
+
+//Контроль свойств - Область сохранения изменений
+SaveChangesArea.propTypes = {
+ onClick: PropTypes.func
+};
+
//Список проектов
const ProjectsList = ({ projects = [], selectedProject, onClick } = {}) => {
//Подключение к контексту сообщений
@@ -210,7 +259,9 @@ const PrjJobs = () => {
dateBegin: null,
dateFact: null,
durationMeas: null,
+ durationMeasCode: null,
labMeas: null,
+ labMeasCode: null,
resourceStatus: null,
ident: null,
projects: [],
@@ -270,12 +321,12 @@ const PrjJobs = () => {
//Изменение работы в графике
const modifyJob = useCallback(
- async (job, dateFrom, dateTo, dateBegin, dateFact, durationMeas) => {
+ async (job, dateFrom, dateTo) => {
let data = null;
try {
data = await executeStored({
stored: "PKG_P8PANELS_PROJECTS.JB_JOBS_MODIFY_PERIOD",
- args: { NJB_JOBS: job, DDATE_FROM: dateFrom, DDATE_TO: dateTo, DBEGIN: dateBegin, DFACT: dateFact, NDURATION_MEAS: durationMeas }
+ args: { NJB_JOBS: job, DDATE_FROM: dateFrom, DDATE_TO: dateTo }
});
if (data?.NRESOURCE_STATUS != -1) {
setState(pv => ({ ...pv, resourceStatus: data.NRESOURCE_STATUS, needSave: true }));
@@ -306,8 +357,6 @@ const PrjJobs = () => {
args: {
DBEGIN: state.dateBegin ? state.dateBegin : null,
DFACT: state.dateFact ? state.dateFact : null,
- NDURATION_MEAS: state.durationMeas,
- SLAB_MEAS: state.labMeas,
NIDENT: state.ident
}
});
@@ -318,12 +367,14 @@ const PrjJobs = () => {
dateBegin: new Date(data.DBEGIN),
dateFact: new Date(data.DFACT),
durationMeas: data.NDURATION_MEAS,
- labMeas: data.SLAB_MEAS,
+ durationMeasCode: data.SDURATION_MEAS,
+ labMeas: data.NLAB_MEAS,
+ labMeasCode: data.SLAB_MEAS,
resourceStatus: data.NRESOURCE_STATUS,
ident: data.NIDENT
}));
}
- }, [state.init, state.dateBegin, state.dateFact, state.durationMeas, state.labMeas, state.ident, executeStored]);
+ }, [state.init, state.dateBegin, state.dateFact, state.ident, executeStored]);
//Грузим список проектов при смене идентификатора процесса
useEffect(() => {
@@ -377,7 +428,7 @@ const PrjJobs = () => {
//Обработка измненения сроков задачи в диаграмме Гантта
const handleTaskDatesChange = ({ task, start, end, isMain }) => {
- if (isMain) modifyJob(task.rn, new Date(start), new Date(end), new Date(state.dateBegin), new Date(state.dateFact), state.durationMeas);
+ if (isMain) modifyJob(task.rn, new Date(start), new Date(end));
};
//Отработка нажатия на отображения диалога параметров инициализации панели
@@ -403,7 +454,7 @@ const PrjJobs = () => {
return (
{state.showInitDialog ? (
- {
>
{state.projectsLoaded ? (
<>
-
-
-
- Начало:
- {formatDateRF(state.dateBegin)}
-
- Факт на:
- {formatDateRF(state.dateFact)}
-
- Длительность:
- {DURATION_MEAS[state.durationMeas]}
-
- Трудоёмкость:
- {state.labMeas}
- >
- }
- />
-
-
-
-
-
+
{state.needSave ? (
<>
-
-
-
-
-
+
>
) : null}