Просмотров: 4625
Дата последнего изменения: 02.05.2017
В данном уроке будет рассмотрен пример создания сервиса сбора и размещения заявок на закупку согласно ТЗ на портале.
ТЗ по размещению заявок на закупку на портале
|
- Общие требования к функционалу
- Требуется создать область для размещения, обработки и хранения заявок на закупку. Заявка на закупку представляет собой карточку, состоящую из набора именованных полей определенного типа. Заявка на закупку также может содержать неограниченное количество файлов (а может и не содержать ни одного).
- Любой пользователь (входящий в определенную группу доступа) может создать заявку на закупку. Данный пользователь в дальнейшем рассматривается как автор заявки.
- В дальнейшем, никакой программной обработки заявок не производится.
- Требования к работе с данными
- Заявка состоит из следующих полей (символом ‘*’ отмечены поля, обязательные к заполнению):
- Тип закупки* (выбор из списка: «менее 100.000 руб», «100.000 руб и более»)
- Предмет закупки* (строка)
- Стоимость, руб (целое число)
- Обоснование* (многострочное поле)
- Выбранный поставщик* (строка)
- Потенциальные поставщики* (многострочное поле)
- Статус закупки* (выбор из списка: «на согласовании», «одобрена», «отклонена»).
- Инициатор* (автор заявки)
Желательно, чтобы это поле заполнялось автоматически при вводе заявки.
- Непосредственный руководитель* (выбор из списка пользователей)
Желательно, чтобы это поле заполнялось автоматически при вводе заявки.
- Бюджетный контролер* (выбор из списка пользователей)
Желательно, чтобы выбор производился из ограниченного списка пользователей
- Юрист* (выбор из списка пользователей)
Желательно, чтобы выбор производился из ограниченного списка пользователей
- Главный бухгалтер* (выбор из списка пользователей)
Желательно, чтобы это поле заполнялось автоматически при вводе заявки.
- Финансовый директор* (выбор из списка пользователей)
Желательно, чтобы это поле заполнялось автоматически при вводе заявки.
- Пользователи должны иметь возможность редактировать свои (и, в отдельных случаях, чужие) заявки. При этом в системе должны сохраняться: дата и время создания, дата и время изменения, автор и автор последнего изменения.
- Любой пользователь (п 1.2) должен иметь доступ к списку заявок, автором которых он является. Доступ к списку заявок, созданных другими пользователями, должен быть предоставлен только пользователям – членам определенной группы (как на чтение, так и на редактирование). Допускается разделение доступа на уровне интерфейса
- Область просмотра заявок должна представлять собой таблицу. Колонки таблицы соответствуют полям заявки.
- В рамках области просмотра должны быть представлены следующие поля (в указанном порядке)
- Дата создания
- Тип закупки
- Предмет закупки
- Стоимость, руб
- Инициатор
- Выбранный поставщик
- В таблице должна быть представлена группировка/сортировка по статусу закупки.
- Интерфейс должен предоставлять фильтрацию по значению полей заявок (как минимум: выбор значения фильтра из списка возможных значений), по любому полю, если его тип отличен от «многострочный текст».
- Дополнительные требования (желательно). Пользователь с правами конфигуратора системы должен иметь возможность (не прибегая к средствами разработки PHP):
- Создавать другие представления данных, подходящие под описание п. 2.4, с произвольным набором полей, сортировок, группировок, фильтров.
- Проводить массовые операции с заявками (например – удаление всех заявок, отвечающих критериям определенного фильтра).
- Создавать новые типы закупки и настраивать доступность полей в зависимости от типа.
- Редактировать состав полей заявки.
- Прочие требования
- Необходимо предусмотреть функционал оповещений – пользователи, входящие в определенную группу, должны получать оповещения внесении любых изменений в какую-либо заявку. Оповещение должно содержать значения всех полей заявки.
- В качестве групп пользователей, упомянутых в данных требованиях, должна быть возможность использовать ранее созданные группы портала (которые используются для предоставления доступа к другим ресурсам).
|
Согласно условиям ТЗ наиболее подходящим под задачу функционалом будут штатные списки.
Перед прочтением урока желательно ознакомиться с работой и особенностью универсальных списков, которые располагаются в разделе левого меню Компания.