\subsection{Документ <<Выработка по переработке>>}
\label{doc:ProductionLine}



\subsubsection{Описание предметной области}

Документ существует в СИСТЕМЕ, необходимо добавить новую функциональность.
Документ участвует в процессе <<Выпуск готовой продукции и полуфабрикатов>>.



\subsubsection{Атрибуты}

Добавить новые атрибуты.

В шапке документа добавить поле <<Старший машинист>>, ссылка на справочник ФизическиеЛица.
%\pc
%\begin{longtable}{|p{4cm}|p{4cm}|p{8cm}|}
%\hline
%{\bf Наименование} & {\bf Тип данных} &  {\bf Комментарий} \endhead
%    \hline
%    Количество поддонов & Число (5,0) & Количество поддонов по факту.\\
    %\hline
    %Приладка, шт & Число целое & Количество входящих заготовок, которое было использовано на приладку. Вносится пользователем вручную, не входит в объем отбракованных заготовок.\\
%    \hline
%  \caption{Новые поля документа <<Выработка по переработке>>. Таблица <<Выработка>>}
% \label{tab:ProductionLine}
%\end{longtable}
%
%

В табличной части <<Сотрудники>> внести следующие изменения.

\pc
\begin{longtable}{|p{4cm}|p{4cm}|p{8cm}|}
\hline
{\bf Наименование} & {\bf Тип данных} &  {\bf Комментарий} \endhead
    \hline 
    Должность & Справочник <<Должности>> & Должность сотрудника. \\
    \hline 
    Рабочее место & Справочник <<Рабочие места>> & Рабочее место. Привязано к оборудования. \\
    \hline
    \caption{Новые поля документа <<Выработка по переработке>>. Таблица <<Сотрудники>>}
  \label{tab:productionLineFields_workers}
\end{longtable}
\FloatBarrier



\pc
\begin{longtable}{|p{4cm}|p{4cm}|p{8cm}|}
\hline
{\bf Наименование} & {\bf Тип данных} &  {\bf Комментарий} \endhead
    \hline 
    Количество, шт. & Целое число & Заполняется на основании информации, внесенной машинистом (в штуках, суммарно по всем видам брака / причинам возникновения брака и типам брака) \\
    \hline 
    Количество, кв.м & Число (10,1) & Заполняется на основании информации, внесенной машинистом и информации в ТК (в кв.метрах, суммарно по всем видам и типам брака)\\
    %\hline
    % Количество, \% & Число (3,1) & Порядок расчета: КоличествоБрак / КоличествоПлан \\
    \hline
    \caption{Новые поля таблицы <<Брак>>.}
  \label{tab:productionlineFields_waste}
\end{longtable}
\FloatBarrier



% При закрытии формы <<Выработка>> вызывать форму <<Дефектная ведомость>>, тип вносимых данных Строка, с дублированием внесенных данных на форму <<Выработка>>, запретить закрытие формы <<Выработка>> без внесения данных. По умолчанию на форме <<Дефектная ведомость>> выводить <<Без замечаний>>. 

\subsubsection{Функциональные требования}

%\point{Печатать внутренней бирки}

%Внутренняя бирка на заготовки должна печататься из СИСТЕМЫ.
%Добавить возможность печати бирок из СИСТЕМЫ.
%За основу необходимо взять печатную форму СИСТЕМЫ и внести правки.
%привести к тому виду, который сейчас используется на ПРЕДПРИЯТИИ. 
%Внешний вид внутренней бирки для заготовок после линий переработки представлен на рис.\ref{pic:a1}.

% Бирка должна содержать следующие поля:
% \begin{itemize}
%     \item Номер заказа в СИСТЕМЕ;
%     \item Наименование заготовки;
%     \item Размеры заготовки;
%     \item Контрагент;
%     \item Дата производства, время начала выполнения заказа;
%     \item Оборудование (в примере это поле ''Линия рилевки'');
%     \item Номер смены;
%     \item Количество на паллете;
%     \item Марка + Профиль + Цвет.
% \end{itemize}



% % Штрих-код содержит 12 символов как номер заказа, где знак ''.'' заменен знаком ''0'' для заказа, тип изделия в технологической карте которого указан как ''Гофролист'', знак ''1'' во всех остальных случаях.




% \begin{figure*}[!htb]
% \centering
%   \includegraphics[width=140mm, height=220mm, keepaspectratio]{50_Pics/pic_innerlabel.jpg}
% \caption{Пример внутренней бирки}
% \label{pic:InnerLabel_2}
% \end{figure*} 
% \FloatBarrier



%\point{Печать бирки на готовую продукцию}


%Бирка на готовую продукцию должна печататься из СИСТЕМЫ.
% %Добавить возможность печати бирок из СИСТЕМЫ.
% При печати бирок на готовую продукцию необходимо печатную форму привести к тому виду, который сейчас используется на ПРЕДПРИЯТИИ.

%Пример бирки на готовую продукцию представлен на рис.\ref{pic:a2}.


\point{Печать стикеров}

В информационную часть (для машиниста) на рабочей форме документа <<Выработка>> вывести информацию о необходимости вывода на печать стикеров (стикер: Да/Нет).

В командную панель добавить кнопку <<Печать стикеров>>. Печатная форма вызывается при выделении задания в табличной части и нажатии кнопки <<Печать стикеров>>.

Количество листов для запечатывания определять в соответствии с правилом: 

Если признак <<Стикер>> в ТК активен, то Количество изделий факт / Количество штук в пачке / Количество стикеров на листе. Полученное значение округляется до целого числа в большую сторону.
Если признак <<Стикер>> в ТК неактивен выводить информационное сообщение <<Стикер не задан>>.

Количетво штук в пачке - информация из ТК, вкладка <<Упаковка>>.
Количество стикеров на листе - информация из ТК, вкладка <<Бирка>>.
Тип стикера - - информация указанная в ТК, вкладка <<Бирка>>.

%\point{Загрузка заказов из НП}

%Добавить ограничение по загрузке заказов машинистом. 
%Желательно, чтобы машинист брал в работу задания в том порядке, как указал плановик. Если порядок меняется, то машинист обязан указать причину.

%В форме <<Дозагрузка заказов из НП>> добавить кнопки <<Выбрать все/убрать все>>.
%Дата окончания в отборе должна быть определена как дата/время окончания смены (свойство документа).


%Если при добавлении из НП оператор забрал не первую строку, то в строке заказа установить признак <<Изменен Порядок>>, при этом выводится сообщение с указанием причины изменения порядка загрузки, тип вносимых данных: Справочник ''Причины изменения порядка''.

%Реализовать проверку при попытке изменения статуса документа. Если есть строчки в табличной части заказов с признаком <<ИзмененПорядок>>, требовать заполнить поле “ПричинаЗамены”. Добавить проверку наличия событий в журнале работы оборудования с типом <<Причина не определена>>. При наличии таких записей выдавать сообщение пользователю и не давать установить статус <<Одобрено мастером>>.

% В НП выводить колонку с признаком <<Изменен порядок>>.


%\point{Статусы проверки документа}

%При формировании документа принять установить следующие Статусы:

%\pc
%\begin{longtable}{|p{4cm}|p{12cm}|}
%\hline
%{\bf Значение} & {\bf Комментарий} \endhead
%    \hline 
%    Статус = Новый & При создании документа.\\
%    \hline 
%    Статус = Одобрено мастером & При установке заполняется автоматически реквизит «Сменный мастер». При изменении на <<Новый>>, <<Сменный мастер>> очищается.\\
%    \hline 
%    Проверено = Истина & Документ был проверен начальником производства. Блокировка документа для изменений. Проверенные документы разрешено редактировать только пользователям с правом <<Проверка выработки>>.\\
%    \hline
%    \caption{Статусы в документе <<Выработка по переработке>>}
%  \label{tab:productionLineStatus}
%\end{longtable}
%\FloatBarrier


\point{Учет выработки, учет брака}

%Необходимо реализовать проверку двух ситуаций:
%\begin{enumerate}
%    \item выполнение строки задания в объеме меньшем, чем запланировано; 
 %   \item несовпадение объемов выпущенных заготовок на предыдущем шаге и переработанных на текущем.
%\end{enumerate}

%\textbf{Ситуация А}

%В строке выработки добавить новое текстовое поле ''Комментарий по недовыпуску''.

%Если пользователь в строке задания указывает факт такой, что сумма факта хороших и бракованных изделий отличается от объема указанного в задании плановиком, тогда он должен указать текстовый комментарий в поле ''Комментарий по недовыпуску''.
%При попытке установить статус документу ''Одобрено мастером'' СИСТЕМА должна проверять, что для всех строк, где есть выработка, либо указана причина недовыпуска, либо объем близок к плановому -- если проверка не выполняется хоть для одной строки, то запрещать устанавливать данный статус.

%\textbf{Ситуация Б}

%В документ необходимо добавить колонку <<Остаток, шт>> в  табличную часть <<Выработка>>.

 %Значение колонки должно заполняться автоматически. Требуется выводить количество штук полуфабрикатов, которое осталось после переработки на данном шаге. Значение должно рассчитываться по следующей формуле: <<Количество полуфабрикатов с предыдущего шага>> – <<Количество переработанных заготовок текущего шага (по всем выработкам включая текущую)>> – <<Брак текущего шага (по всем выработкам включая текущую)>>. Если значение в колонке больше 0, то необходимо подсвечивать зеленым цветом, если меньше 0 - оранжевым.
 
 %Значение в данной колонке должно обновляться при открытии формы, при изменении полей <<Количество переработанных заготовок текущего шага по данной выработке>> и <<Брак текущего шага по данной выработке>> и при попытке установить статус ''Одобрено мастером''.
 
%При этом значения полей <<Количество полуфабрикатов с предыдущего шага>>, <<Количество переработанных заготовок текущего шага по другим выработкам>>, <<Брак текущего шага по другим выработкам>> требуется обновлять ТОЛЬКО при открытии формы, при нажатии на кнопку <<Обновить значение выработки и склада>> и при попытке установить статус ''Одобрено мастером''.
 

%При установке статуса ''Одобрено мастером'' или ''Проверено'', Система должна обновить значение колонки <<Остаток>> для всех заданий, и, если значение будет отрицательным (с учетом допуска по дельте) хоть для одной позиции, тогда выдать пользователю соответствующее предпреждение.   


%Добавить на основной форме колонку <<Расчетное число брака>>. Заполнение по правилу ВыработкаГА - ВыработкаНаТекущемШаге.


В табличной части <<Брак>> внести следующие изменения.

Добавить разделение брака по причинам возникновения (вид брака) и типам брака (два варианта: до линии и после линии). 
Форма представлена на рис. \ref{pic:a6}.

%\todo[inline]{Картинка не та или подпись}

\begin{figure*}[!htb]
\centering
  \includegraphics[width=140mm, height=220mm, keepaspectratio]{50_Pics/a6.png}
\caption{Форма табличной части <<Брак>>}
\label{pic:a6}
\end{figure*} 







% -------------------------------- ИНТЕГРАЦИЯ ---------------------------------------




% \subpoint{Форма документа. Исправить таблицу ''Выработка''}

% Существующую колонку {\bf При наладке, заг} основной таблицы документа выработки линии переименовать в {\bf При наладке, изд}. Таким образом в основной таблице будет три колонки с браком:
% \begin{enumerate}
%     \item {\bfНа входе, заг} – количество брака, выявленного перед обработкой на линии. Измеряется в заготовках на входе.
%     \item {\bfПри наладке, изд} – количество брака, выявленного в процессе наладки. Измеряется в выходящих заготовках/изделиях.
%     \item {\bfНа выходе, изд} – количество брака, выявленного в процессе работы после наладки. Измеряется в выходящих заготовках/изделиях.
% \end{enumerate}

% \subpoint{Форма документа. Добавить вкладки}

% На форме документа выработки линии под основной таблицей необходимо добавить две вкладки. 

% На первой вкладке должна быть расположена новая таблица {\bf Брак}, а на второй вкладке должна быть расположена информация, которая сейчас располагается под основной таблицей.

% Новая таблица {\bf Брак} должна быть подчинена основной таблице, и в ней должна отображаться информация по браку только для выделенной строки основной таблицы. 

% При добавлении строки в основную таблицу таблица с браком должна автоматически заполняться причинами брака из справочника {\bf Причины брака}, у которых новый реквизит {\bf Тип оборудования} равен {\bf Линия}, а также включен новый флажок {\bf Отображать по умолчанию}.

% Причины должны быть расположены в порядке возрастания нового реквизита {\bf Порядок}. После ввода количества брака в одну из трех колонок с браком новой таблицы в основной таблице соответствующая колонка с браком должна пересчитываться, как сумма по всем строкам для этой колонки.

% В основной таблице колонки {\bf На входе, заг}, {\bf При наладке, изд}, {\bf На выходе, изд} сделать недоступными для редактирования, так как количество брака будет указываться только через новую таблицу {\bf Брак}.


\point{Форма документа. Добавить команды управления }

%Добавить панель управления датчиками со следующими кнопками \ref{pic:Doc_ProductionLine}.

%\begin{figure*}[!htb]
%\centering
%  \includegraphics[width=140mm, height=220mm, keepaspectratio]{50_Pics/Doc_ProductionLine.jpg}
%\caption{Панель управления датчиками}
%\label{pic:Doc_ProductionLine}
%\end{figure*} 
%\FloatBarrier

Добавить кнопку и команду {\bf Начало переналадки}.

При нажатии на кнопку система должна выполнить действия, которые происходят при нажатии на кнопку {\bf Завершить смену} (если есть текущий заказ), после чего  система должна найти первый незакрытый заказ в таблице заказов, зафиксировать время начала его наладки в колонке {\bf Начало перестановки} (колонка уже есть в документе).
% и начать считывать показания счетчика заготовок с OPC сервера. Первое считанное показание должно быть записано в колонку с начальным показанием датчика. При следующем считывании система должна будет вычислять значение колонки с показанием счетчика как разницу текущего значения счетчика и начального значения счетчика. Все количество заготовок, что система насчитает до нажатия на кнопку {\bf Начать заказ}, будет занесено в новую таблицу брака в колонку {\bf При наладке, изд} той строки, у которой причина брака равна причине, указанной в параметре системы {\bf Причина брака «Расход заготовок на пусконаладку»}. 

Также при нажатии на кнопку {\bf Начало переналадки} система в журнале работы оборудования должна создать событие останова с причиной из параметра системы {\bf Причина останова «Настройка оборудования»}.

Добавить кнопку и команду {\bf Начать заказ}.

При нажатии на кнопку система для текущего заказа зафиксирует время окончания его переналадки в колонке {\bf Окончание перестановки} (колонка уже есть в документе), а также время начала его выполнения в колонке {\bf Начало}.
% , и дальнейшее считываемое количество заготовок будет заноситься в колонку {\bf Заготовок факт}. 
В журнале работы оборудования система создаст событие начала работы над заказом.


Добавить кнопку и команду {\bf Продолжить заказ}.

При нажатии на кнопку система найдет первый незакрытый заказ в таблице заказов и запишет время продолжения работы.
% продолжит по нему считывать количество заготовок. 
Кнопка используется в том случае, если закрыли документ в процессе работы над заказом.


Добавить кнопку и команду {\bf Завершить смену}.

При нажатии на кнопку система завершит считывание количества заготовок по текущему заказу, в строке заказа установит флажок {\bf Закрыт}, а также зафиксирует время окончания выполнения заказа в колонке {\bf Окончание}. В журнале работы оборудования система создаст событие ожидания.


Добавить кнопку и команду {\bf Стоп}.

 
При нажатии на кнопку система должна записать время останова в журнал работы.
% остановит считывание количества заготовок. Также останов произойдет, если показания счетчика не будет меняться в течение 180 секунд (или другого времени, которое указано в настройках оборудования). После останова система должна открыть форму для выбора причины останова \ref{pic:Doc_ProductionLine2}.

\begin{figure*}[!htb]
\centering
  \includegraphics[width=140mm, height=220mm, keepaspectratio]{50_Pics/Doc_ProductionLine2.jpg}
\caption{Окно с выбором причины останова}
\label{pic:Doc_ProductionLine2}
\end{figure*} 
\FloatBarrier

Пользователь должен выбрать причину и нажать кнопку {\bf ОК}. Если пользователь не укажет причину и нажмет кнопку {\bf ОК}, тогда в качестве причины будет выбрана причина из параметра системы {\bf Причина останова «Производство»}, а если и она не указана, тогда будет выбрана причина «Не определена». Система должна создать событие останова с выбранной причиной в журнале работы оборудования. На форме документа кнопка {\bf Стоп} изменится на кнопку {\bf Продолжить} %\ref{pic:Doc_ProductionLine3}.

%\begin{figure*}[!htb]
%\centering
%  \includegraphics[width=140mm, height=220mm, keepaspectratio]{50_Pics/Doc_ProductionLine3.jpg}
%\caption{Панель управления датчиками при останове}
%\label{pic:Doc_ProductionLine3}
%\end{figure*} 
%\FloatBarrier

Добавить кнопку и команду {\bf Продолжить}.

При нажатии на кнопку система продолжит считывать количество заготовок, а также создаст событие о продолжения работы в журнале работы оборудования. 
% Такие же действия система автоматически выполнит, если значения счетчика начнет меняться.

% \point{Записывать показания счетчика в регистр пробега}

% При считывании значения счетчика система должна записывать в регистре пробега оборудования текущие показания счетчика и скорость выпуска заготовок с интервалом, задаваемым параметром системы {\bf Период записи текущей скорости и пробега оборудования}. Данные из этого регистра, а также из журнала работы оборудования должны использоваться для вывода информации в окне состояния оборудования на рабочем столе системы.


% \point{Таблица ''Выработки''. Автоматически вычислять значение колонки ''Факт''}

% При считывании значения счетчика система автоматически должна вычислять значение колонки с фактическим количеством заготовок по заказу как разность между значением счетчика и количеством брака, который был зафиксирован по заказу в процессе наладки и выполнения (брак до линии не участвует при расчете):

% {\bf Заготовок факт} = {\bf Счетчик факт} – ({\bf При наладке, изд} + {\bf На выходе, изд}) / {\bf Кратность},

% где {\bf Кратность} = количеству изделий на штампе из заготовки, если на текущем шаге выполняется разрезание (количество входящих заготовок не равно количеству выходящих), иначе {\bf Кратность} = 1.


% При изменении количества брака в колонках {\bf При наладке, изд} и {\bf На выходе, изд} в новой таблице {\bf Брак} фактическое количество заготовок также должно пересчитываться по вышеприведенной формуле, но только в том случае, если значение колонки {\bf Счетчик факт} не равно 0 %(так как остаются линии, которые не будут подключены к датчикам).


\point{Журнал регистрации изменений в документе выработки по переработке}

Создать регистр изменений в документе ''Выработка по переработке'' по аналогии с регистратором изменений в справочнике <<Технологическая rарта>>. Историю  изменений в документе производить только в случае, когда признак Проверен = Истина (документ был проверен, проставлен признак <<Проверен>>, документ был проведен.

Блокировать возможность изменения документа ''Выработка по переработке'' с проставленным признаком <<Проверен>> для пользователей без наличия специальных прав.

%Создать регистр изменений в документе ВыработкаПоПереработке по аналогии с регистратором изменений в документе ТехнологическаяКарта.

%Проверено = Истина (документ был проверен начальником производства, блокировка документа для изменений). Проверенные документы разрешено редактировать только пользователям с правом <<Проверка выработки>>. Фиксацию изменений в документе ВыработкаПоПереработке производить только в случае когда признак Проверено = Истина.

%\clearpage
