diff --git a/app/panels/mech_rec_cost_prod_plans/datagrids/backend_dg.js b/app/panels/mech_rec_cost_prod_plans/datagrids/backend_dg.js
index b913052..3f7be4e 100644
--- a/app/panels/mech_rec_cost_prod_plans/datagrids/backend_dg.js
+++ b/app/panels/mech_rec_cost_prod_plans/datagrids/backend_dg.js
@@ -48,7 +48,8 @@ const useCostRouteLists = (task, taskType) => {
NPAGE_SIZE: DATA_GRID_PAGE_SIZE,
NINCLUDE_DEF: costRouteLists.dataLoaded ? 0 : 1
},
- attributeValueProcessor: (name, val) => (["DEXEC_DATE", "DREL_DATE"].includes(name) ? formatDateRF(val) : val),
+ attributeValueProcessor: (name, val) =>
+ ["DEXEC_DATE", "DREL_DATE"].includes(name) ? formatDateRF(val) : ["SDOCPREF", "SDOCNUMB"].includes(name) ? undefined : val,
respArg: "COUT"
});
setCostRouteLists(pv => ({
diff --git a/app/panels/mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js b/app/panels/mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js
index 8c009b2..13c6940 100644
--- a/app/panels/mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js
+++ b/app/panels/mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js
@@ -84,7 +84,26 @@ const STYLES = {
TASK_DIALOG_ACTION_CONTAINER: { border: 1, borderColor: "text.primary", borderRadius: "5px", width: "100%" },
FILTERS: { display: "table", float: "right" },
FILTERS_DATE: { display: "table-cell", verticalAlign: "middle" },
- FILTERS_LEVEL: { display: "table-cell", verticalAlign: "middle", paddingLeft: "15px" }
+ FILTERS_LEVEL: { display: "table-cell", verticalAlign: "middle", paddingLeft: "15px" },
+ FILTERS_LEVEL_CAPTION: { display: "flex", alignItems: "center" },
+ FILTERS_LEVEL_LIMIT_ICON: { padding: "0px 8px", color: "#9f9c9c" },
+ FILTERS_LIMIT_SELECT: nOutOfLimit => {
+ return nOutOfLimit === 1
+ ? {
+ ".MuiOutlinedInput-notchedOutline": {
+ borderColor: "#e9863c"
+ },
+ "&:hover .MuiOutlinedInput-notchedOutline": {
+ borderColor: "#e9863c",
+ borderWidth: "0.15rem"
+ },
+ "&.Mui-focused .MuiOutlinedInput-notchedOutline": {
+ borderColor: "#e9863c",
+ borderWidth: "0.15rem"
+ }
+ }
+ : {};
+ }
};
//------------------------------------
@@ -236,6 +255,7 @@ const MechRecCostProdPlans = () => {
selectedPlanCtlg: null,
selectedPlanCtlgMaxLevel: null,
selectedPlanCtlgLevel: null,
+ selectedPlanCtlgOutOfLimit: 0,
selectedPlanCtlgSort: null,
selectedPlanCtlgMenuItems: null,
gantt: {},
@@ -258,6 +278,9 @@ const MechRecCostProdPlans = () => {
//Подключение к контексту навигации
const { getNavigationSearch } = useContext(NavigationCtx);
+ //Подключение к контексту сообщений
+ const { showMsgInfo } = useContext(MessagingСtx);
+
//Инициализация каталогов планов
const initPlanCtlgs = useCallback(async () => {
if (!state.init) {
@@ -280,6 +303,7 @@ const MechRecCostProdPlans = () => {
selectedPlanCtlgSpecsLoaded: false,
selectedPlanCtlgMaxLevel: null,
selectedPlanCtlgLevel: null,
+ selectedPlanCtlgOutOfLimit: 0,
selectedPlanCtlgSort: null,
selectedPlanCtlgMenuItems: null,
gantt: {},
@@ -297,6 +321,7 @@ const MechRecCostProdPlans = () => {
selectedPlanCtlg: null,
selectedPlanCtlgMaxLevel: null,
selectedPlanCtlgLevel: null,
+ selectedPlanCtlgOutOfLimit: 0,
selectedPlanCtlgSort: null,
selectedPlanCtlgMenuItems: null,
gantt: {},
@@ -317,6 +342,7 @@ const MechRecCostProdPlans = () => {
...pv,
selectedPlanCtlgMaxLevel: data.NMAX_LEVEL,
selectedPlanCtlgLevel: level || level === 0 ? level : data.NMAX_LEVEL,
+ selectedPlanCtlgOutOfLimit: data.NOUT_OF_LIMIT,
selectedPlanCtlgSort: sort,
selectedPlanCtlgMenuItems: state.selectedPlanCtlgMenuItems
? state.selectedPlanCtlgMenuItems
@@ -370,6 +396,17 @@ const MechRecCostProdPlans = () => {
setState(pv => ({ ...pv, selectedTaskDetail: taskRn, selectedTaskDetailType: taskType }));
};
+ //При открытии окна информации об ограничении уровня
+ const handleLevelLimitInfoOpen = () => {
+ //Отображаем информацию
+ showMsgInfo(
+ `Размер производственной программы превышает предельно допустимый для одновременного отображения в виде диаграммы Ганта.
+ Доступные для просмотра уровни вложенности ограничены.
+ Вы можете просматривать производственную программу частями, используя действие "Открытие панели Производственная программа" в спецификации "Выпуск"
+ раздела "Планы и отчеты производства изделий".`
+ );
+ };
+
//Генерация содержимого
return (
@@ -434,8 +471,16 @@ const MechRecCostProdPlans = () => {
- До уровня
+
+ До уровня
+ {state.selectedPlanCtlgOutOfLimit === 1 ? (
+
+ info
+
+ ) : null}
+