/*
Парус 8 - Панели мониторинга - ПУП - Работы проектов
Панель мониторинга: Описание макета (пользовательская инструкция)
*/
//---------------------
//Подключение библиотек
//---------------------
import React, { useContext, useState } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента
import {
Box,
Grid,
Typography,
Link,
List,
ListItem,
ListItemButton,
ListItemText,
Divider,
Table,
TableHead,
TableRow,
TableCell,
TableBody,
Fab,
Icon
} from "@mui/material"; //Интерфейсные элементы
import { BUTTONS } from "../../../app.text"; //Текстовые ресурсы
import { ApplicationСtx } from "../../context/application"; //Контекст приложения
import img211 from "./img/211.png"; //Изображение
import img212 from "./img/212.png"; //Изображение
import img213 from "./img/213.png"; //Изображение
import img214 from "./img/214.png"; //Изображение
import img215 from "./img/215.png"; //Изображение
import img221 from "./img/221.png"; //Изображение
import img222 from "./img/222.png"; //Изображение
import img223 from "./img/223.png"; //Изображение
import img231 from "./img/231.png"; //Изображение
import img232 from "./img/232.png"; //Изображение
import img241 from "./img/241.png"; //Изображение
import img242 from "./img/242.png"; //Изображение
import img243 from "./img/243.png"; //Изображение
import img244 from "./img/244.png"; //Изображение
import img245 from "./img/245.png"; //Изображение
import img31 from "./img/31.png"; //Изображение
import img32 from "./img/32.png"; //Изображение
import img33 from "./img/33.png"; //Изображение
import img34 from "./img/34.png"; //Изображение
import img35 from "./img/35.png"; //Изображение
import img36 from "./img/36.png"; //Изображение
import img411 from "./img/411.png"; //Изображение
import img412 from "./img/412.png"; //Изображение
import img421 from "./img/421.png"; //Изображение
import img422 from "./img/422.png"; //Изображение
import img431 from "./img/431.png"; //Изображение
import img432 from "./img/432.png"; //Изображение
import img433 from "./img/433.png"; //Изображение
import img434 from "./img/434.png"; //Изображение
import img441 from "./img/441.png"; //Изображение
import img442 from "./img/442.png"; //Изображение
import img443 from "./img/443.png"; //Изображение
import img444 from "./img/444.png"; //Изображение
import img451 from "./img/451.png"; //Изображение
import img461 from "./img/461.png"; //Изображение
import img471 from "./img/471.png"; //Изображение
import img711 from "./img/711.png"; //Изображение
import img721 from "./img/721.png"; //Изображение
import img722 from "./img/722.png"; //Изображение
import img723 from "./img/723.png"; //Изображение
import img741 from "./img/741.png"; //Изображение
//---------
//Константы
//---------
//Оглавление
const CONTENT = [
{ id: "prg1", caption: "1. Назначение документа" },
{ id: "prg2", caption: "2. Инициация проекта" },
{ id: "prg3", caption: "3. Планирование" },
{ id: "prg4", caption: "4. Исполнение" },
{ id: "prg5", caption: "5. Мониторинг и контроль" },
{ id: "prg6", caption: "6. Корректировка планов" },
{ id: "prg7", caption: "7. Завершение проекта" }
];
//Стили
const STYLES = {
IMG_CONT: { textAlign: "center", padding: "10px" },
IMG: { maxWidth: "100%", height: "auto" },
PRGF_TABLE: { paddingTop: "20px", paddingBottom: "20px", display: "flex", justifyContent: "center" },
TABLE: { width: "80%" },
TABLE_TITLE: { backgroundColor: "lightgray" },
TABLE_SUBTITLE: { textAlign: "center", backgroundColor: "#f3eded", fontWeight: "bold" },
FAB_BACK: { position: "absolute", right: "20px", marginTop: "20px" }
};
//--------------------------------
//Вспомогательные функции и классы
//--------------------------------
//Переход к элементу страницы
const scrollToElement = id => document.getElementById(id).scrollIntoView();
//Заголовок первого уровня
const Hdr1 = ({ id, children }) => (
{children}
);
//Контроль свойств - Заголовок первого уровня
Hdr1.propTypes = {
id: PropTypes.string,
children: PropTypes.any
};
//Заголовок второго уровня
const Hdr2 = ({ id, children }) => (
{children}
);
//Контроль свойств - Заголовок второго уровня
Hdr2.propTypes = {
id: PropTypes.string,
children: PropTypes.any
};
//Заголовок третьего уровня
const Hdr3 = ({ id, children }) => (
{children}
);
//Контроль свойств - Заголовок третьего уровня
Hdr3.propTypes = {
id: PropTypes.string,
children: PropTypes.any
};
//Параграф
const Prgf = ({ style, children }) => (
{children}
);
//Контроль свойств - Параграф
Prgf.propTypes = {
style: PropTypes.object,
children: PropTypes.any
};
//Изображение
const Img = ({ src }) => (
);
//Контроль свойств - Изображение
Img.propTypes = {
src: PropTypes.string.isRequired
};
//Ссылка на раздел Системы
const UnitLink = ({ unitCode, children }) => {
//Подключение к контексту приложения
const { pOnlineShowUnit } = useContext(ApplicationСtx);
//Генерация содержимого
return (
pOnlineShowUnit({ unitCode })}>
{children}
);
};
//Контроль свойств - Ссылка на раздел Системы
UnitLink.propTypes = {
unitCode: PropTypes.string.isRequired,
children: PropTypes.any
};
//Ссылка на главу инструкции
const ChapterLink = ({ id, dstId, onClick, children }) => {
//Генерация содержимого
return (
{
scrollToElement(dstId);
if (onClick && id) onClick(id);
}}
>
{children}
);
};
//Контроль свойств - Ссылка на главу инструкции
ChapterLink.propTypes = {
id: PropTypes.string,
dstId: PropTypes.string.isRequired,
onClick: PropTypes.func,
children: PropTypes.any
};
//Ссылка на информационную панель
const PanelLink = ({ panelName, children }) => {
//Подключение к контексту приложения
const { configUrlBase, findPanelByName, pOnlineShowTab } = useContext(ApplicationСtx);
//Генерация содержимого
return (
{
const panel = findPanelByName(panelName);
if (panel) pOnlineShowTab({ id: panel.name, url: `${configUrlBase}${panel.url}`, caption: panel.caption });
}}
>
{children}
);
};
//Контроль свойств - Ссылка на информационную панель
PanelLink.propTypes = {
panelName: PropTypes.string.isRequired,
children: PropTypes.any
};
//-----------
//Тело модуля
//-----------
//Корневая панель работ проектов
const PrjHelp = () => {
//Собственное состояние
const [navStack, setNavStack] = useState([]);
//Переход по оглавлению
const handleTitleClick = id => {
scrollToElement(id);
setNavStack([]);
};
//Обработка на нажатие ссылки на раздел
const handleChapterLinkClick = backId => {
const tmp = [...navStack];
tmp.push(backId);
setNavStack(tmp);
};
//Обработка нажатия на кнопку "Назад"
const handleBackClick = () => {
if (navStack.length > 0) {
const tmp = [...navStack];
const backId = tmp.pop();
scrollToElement(backId);
setNavStack(tmp);
}
};
//Генерация содержимого
return (
{navStack.length > 0 ? (
arrow_back_ios
{BUTTONS.NAVIGATE_BACK}
) : null}
Управление экономикой проектов
{CONTENT.map((c, i) => (
handleTitleClick(c.id)}>
))}
Управление экономикой проектов1. Назначение документа
Документ предназначен для ответственного экономиста по проекту НИОКР и содержит описание порядка применения средств
автоматизации на базе ПП “ПАРУС-Предприятие 8” при исполнении процесса управления экономикой проектов НИОКР на каждых его
этапах:
1) Инициация проекта
2) Планирование
3) Исполнение
4) Мониторинг и контроль
5) Корректировка планов
6) Завершение проекта
2. Инициация проекта2.1. Регистрация информации о проекте
В момент инициации проекта требуется зарегистрировать запись в соответствующем учетном регистре системы, доступ к которому
осуществляется из главного меню Учет > Проекты.
Система визуализирует окно параметров отбора проектов. При необходимости можно установить нужные фильтры и нажать кнопку
ОК.
В открывшемся регистре требуется вызвать контекстное меню правой кнопкой мыши и выбрать пункт “Добавить”.Система визуализирует окно параметров действия.Требуется заполнить реквизиты проекта согласно правилам, приведенным ниже в таблице и нажать кнопку ОК.
№ п/пНаименование реквизитаПравила заполнения
Проект
1МнемокодВнутренний код проекта (номер заказа, шифр работ)2НаименованиеПолное наименование проекта3Условное наименованиеСогласованный с заказчиком код проекта4Ожидаемые результатыЗаполнить при необходимости5Идентификатор государственного контрактаВыбрать из словаря ИГК в том случае, если проекта выполняется в рамках ГОЗ6Документ-основание
Указать номер договора с заказчиком, номер внутриорганизационного приказа либо иного документа инициации
проекта
7ТипВыбрать из словаря подходящий тип проекта8Внешний заказчикВыбрать из словаря в том случае, если проект инициирован внешним заказчиком9Подразделение-заказчик
Выбрать из словаря в том случае, если проект является внутренним (например, НИОКР для собственных нужд,
инвестиционные проекты …)
10ОтветственныйВыбрать из словаря ответственного сотрудника за исполнение проектных работ11Подразделение-ответственныйВыбрать из словаря ответственное подразделение-исполнитель проектных работ12Дата начала планУказать плановую дату начала выполнения проектных работ13Дата окончания планУказать плановую дату окончания выполнения проектных работ
Суммы, трудоемкость
14СтоимостьЗадать плановую стоимость проекта15ЕИ трудоемкостиВыбрать из словаря единицу измерения трудоемкости проекта
Настройки
16Схема калькуляцииВыбрать из словаря подходящую структуру плановой калькуляции по проекту
При начале выполнения проектных работ требуется перевести проект в состояние “Открыт” посредством соответствующего
действия контекстного меню раздела.
2.2. Регистрация этапов проектаДалее необходимо выполнить регистрацию этапов проекта.
В подчиненной таблице “Этапы проекта” требуется вызвать контекстное меню правой кнопкой мыши и выбрать пункт “Добавить”.
Система визуализирует окно параметров действия.Требуется заполнить реквизиты этапа проекта согласно правилам, приведенным ниже в таблице и нажать кнопку ОК.
№ п/пНаименование реквизитаПравила заполнения
Этап проекта
1НомерУказать номер этапа проекта п/п2НаименованиеПолное наименование этапа проекта3Ожидаемые результатыЗаполнить при необходимости4Дата начала планУказать плановую дату начала выполнения этапа проектных работ5Дата окончания планУказать плановую дату окончания выполнения этапа проектных работ
Суммы, трудоемкость
6Стоимость этапаЗадать плановую стоимость этапа проекта
При начале выполнения проектных работ по этапу требуется перевести этап проекта проект в состояние “Открыт” посредством
соответствующего действия контекстного меню раздела.
2.3. Формирование шифра затрат
После регистрации этапа проекта требуется выделить запись этапа, вызвать правой кнопкой мыши контекстное меню и выбрать
пункт “ЦИТК. Указать шифр затрат”.
Система визуализирует окно параметров действия.
Номер шифра затрат система генерирует автоматически. При необходимости его можно исправить. Далее необходимо нажать копку
ОК.
2.4. Регистрация договора с заказчиком
После заключения договора с заказчиком необходимо выделить законтрактованные этапы проекта, вызвать правой кнопкой мыши
контекстное меню и выбрать пункт Формирование > Договор с внешним заказчиком.
Система визуализирует окно параметров действия.Необходимо заполнить параметры действия и нажать кнопку ОК.
Система сформирует договор с заказчиком в соответствующем регистре системы.
Договор связан с записью регистра “Проекты” посредством штатного механизма взаимосвязей документов.
Запись в регистре “Договоры” может быть отредактирована посредством штатных действий “Исправить” контекстного меню
заголовка раздела. Также может быть отредактирован каждый этап договора.
В момент двустороннего подписания договора требуется перевести документ в состояние “Утвержден” посредством
соответствующего действия контекстного меню раздела.
В момент перехода к двустороннему исполнению этапа договора требуется перевести этап в состояние “Открыт” посредством
соответствующего действия контекстного меню раздела.
3. Планирование
При получении плановой калькуляции по этапу от службы ценообразования требуется зарегистрировать данный документ в
соответствующем регистре системы.
Система визуализирует окно параметров действия.Необходимо заполнить реквизиты плановой калькуляции и нажать кнопку ОК.
Далее необходимо сформировать перечень статей калькуляции посредством одноименного действия контекстного меню раздела.
Далее необходимо указать плановые суммы прямых статей затрат посредством штатного действия “Исправить” контекстного меню.
Затем необходимо выполнить расчет косвенных статей затрат посредством одноименного действия контекстного меню раздела.
В момент двустороннегго согласования плановой калькуляции необходимо утвердить документ посредством одноименного действия
контекстного меню раздела.
Затем документ необходимо пометить как действующий.4. Исполнение4.1. Формирование авансового счета по договору с заказчиком
Необходимо отобрать договор с заказчиком в одноименном штатном регистре системы,
выбрать этап, вызвать контекстное меню и выбрать пункт Формирование > Счет на оплату.
Система визуализирует окно реквизитов счета на оплату.Необходимо заполнить реквизиты счета и нажать кнопку ОК.
Система зарегистрирует документ в{" "}
соответствующем документарном регистре системы.
4.2. Регистрация договоров с соисполнителями / поставщиками / подрядчиками
После заключения договора с соисполнителем / поставщиком / подрядчиком необходимо выбрать этап проекта, в рамках которого
был заключен договор, вызвать правой кнопкой мыши контекстное меню и выбрать пункт Формирование > Договор с внешним
исполнителем.
Система визуализирует окно параметров действия.Необходимо заполнить параметры действия и нажать кнопку ОК.
Система сформирует договор с исполнителем в соответствующем регистре системы.
Запись в регистре “Договоры” может быть отредактирована посредством штатных действий “Исправить” контекстного меню
заголовка раздела. Также может быть отредактирован каждый этап договора.
В момент двустороннего подписания договора требуется перевести документ в состояние “Утвержден” посредством
соответствующего действия контекстного меню раздела аналогично тому, как это выполняется и для договора с заказчиком (см.
выше{" "}
раздел 2.4
{" "}
настоящей Инструкции).
В момент перехода к двустороннему исполнению этапа договора требуется перевести этап в состояние “Открыт” посредством
соответствующего действия контекстного меню раздела аналогично тому, как это выполняется и для договора с заказчиком (см.
выше{" "}
раздел 2.4
{" "}
настоящей Инструкции).
4.3. Регистрация счета по договору с исполнителем
При поступлении счета от исполнителя необходимо отобрать договор с исполнителем в{" "}
одноименном штатном регистре системы, выбрать этап, вызвать контекстное меню и
выбрать пункт Формирование > Входящий счет на оплату.
Система визуализирует окно параметров действия.Необходимо заполнить параметры и нажать кнопку ОК.Система визуализирует окно реквизитов счета на оплату.Необходимо заполнить реквизиты счета и нажать кнопку ОК.
Система зарегистрирует документ в{" "}
соответствующем документарном регистре системы.
Далее документ может быть отредактирован посредством штатных действий “Исправить” контекстного меню заголовка раздела.
Также может быть отредактирована спецификация документа.
По окончании редактирования счета документ подлежит утверждению посредством соответствующего действия контекстного меню
раздела.
4.4. Регистрация актов и товарных накладных по договору с исполнителем
При поступлении акта/товарной накладной от исполнителя необходимо отобрать договор с исполнителем в{" "}
одноименном штатном регистре системы, выбрать этап, вызвать контекстное меню и
выбрать пункт Формирование > Приходная накладная.
Система визуализирует окно параметров действия.Необходимо заполнить параметры и нажать кнопку ОК.Система визуализирует буфер формирования документа.Необходимо нажать кнопку ОК.
Система зарегистрирует документ в{" "}
соответствующем документарном регистре системы.
Далее документ может быть отредактирован посредством штатных действий “Исправить” контекстного меню заголовка раздела.
Также может быть отредактирована спецификация документа.
По окончании редактирования документ подлежит утверждению посредством соответствующего действия контекстного меню раздела.
4.5. Ведение реестра финансовых документов по проекту
Система позволяет получить доступ ко всем документам по данному этапу проекта с возможностью перехода в соответствующие
документарные регистры системы:
1) Счета на оплату
2) Расходные накладные на отпуск потребителям
3) Входящие счета на оплату
4) Приходные накладные
4.6. Учет фактической оплаты
Система позволяет получить доступ к фактически проведенным платежным поручениям по данному этапу проекта с возможностью
перехода в соответствующий учетный регистр системы.
4.7. Учет фактических затрат
Система позволяет получить доступ к фактическим затратам по данному этапу проекта с возможностью перехода в{" "}
соответствующий учетный регистр системы.
5. Мониторинг и контроль
В информационной панели Экономика проектов система обеспечивает мониторинг
исполнения проекта по следующим основным объектам контроля:
1) Финансирование
2) Контрактация
3) Договоры с соисполнителями
4) Сроки
5) Затраты
6) Актирование
6. Корректировка планов
Система обеспечивает возможность корректировки экономической структуры проекта в том числе и в процессе его исполнения (с
сохранением истории изменений):
1) Изменение стоимости этапов проекта (например, при увеличении/уменьшении объема работ)
2) Корректировку сроков этапов проекта (например, при изменении требований заказчика)
3) Добавление новых этапов проекта
4) Разделение этапов проекта
5) Объединение этапов проекта
6) Корректировку плановой калькуляции путем регистрации новой версии документа (например, в результате подписания
протокола согласования фиксированной цены этапа проектных работ) – порядок регистрации документа описан выше в разделе
3 настоящей Инструкции
В случае изменения структуры этапов проекта (разделение либо объединение этапов проекта) в процессе его исполнения
обеспечивается возможность:
1) Изменить привязку внешнего исполнителя (перенести с одного этапа на другой)
2) Выполнить переброску финансирования (как входящего, так и исходящего)
7. Завершение проекта7.1. Закрытие этапа проекта
По окончании выполнения проектных работ по этапу требуется перевести этап проекта в состояние “Закрыт” посредством
соответствующего действия контекстного меню раздела.
7.2. Формирование акта выполненных работ по договору с заказчиком
Необходимо отобрать договор с заказчиком в одноименном штатном регистре системы,
выбрать этап, вызвать контекстное меню и выбрать пункт Формирование > Расходная накладная на отпуск потребителям.
Система визуализирует буфер формирования документа. Необходимо нажать кнопку ОК.
Система зарегистрирует документ в{" "}
соответствующем документарном регистре системы.
Далее документ может быть отредактирован посредством штатных действий “Исправить” контекстного меню заголовка раздела.
Также может быть отредактирована спецификация документа.
По окончании редактирования документ подлежит утверждению посредством соответствующего действия контекстного меню раздела.
7.3. Формирование счета на окончательный расчет с заказчиком
Порядок формирования счета на окончательный расчет полностью аналогичен порядку формирования авансового счета, подробно
описанному выше в{" "}
разделе 4.1
{" "}
настоящей Инструкции.
7.4. Закрытие проекта
По окончании выполнения проектных работ по всем этапам требуется перевести проект в состояние “Закрыт” посредством
соответствующего действия контекстного меню раздела.
);
};
//----------------
//Интерфейс модуля
//----------------
export { PrjHelp };