Перейти к содержимому

Согласование закупок

Внутреннее приложение, через которое сотрудники подают заявки на закупку, закупщики их разбирают, а руководители и финансовая служба согласуют. Сервис покрывает путь от появления потребности до одобренной заявки; дальше по ней оформляется заказ поставщику.

Без такого сервиса заявки приходят по почте, в мессенджере и в таблицах, и никто не знает реальной длины очереди. Закупщики каждое утро по полчаса выясняют, что срочно, а что ждёт уже две недели. Согласующие держат заявки по неделе, потому что маршрут существует только в голове у одного сотрудника. Владелец бюджета подписывает закупку, не видя, сколько квартального лимита уже обещано. Выбор поставщика обсуждают в личной переписке, а при подготовке к аудиту неделями восстанавливают, кто и когда что одобрил.

  • Приём заявок. Сотрудник подаёт заявку через простую форму с категорией, оценкой суммы, обоснованием и желаемой датой; все заявки попадают в одну очередь с автором, временем и приоритетом.
  • Распределяет заявки по закупщикам. Правила назначают ответственного по категории, сумме или подразделению, а очередь сортируется по оставшемуся сроку.
  • Направляет заявку нужным согласующим. Цепочка строится по сумме, подразделению и категории, после каждого решения заявка переходит к следующему участнику автоматически.
  • Показывает остаток бюджета при решении. На экране согласования видны лимит центра затрат, уже обещанные суммы и остаток после этой закупки.
  • Фиксирует выбор поставщика. Сравнение предложений и причина выбора сохраняются в заявке структурированными полями.
  • Ведёт журнал для аудита. Каждая подача, правка, решение и эскалация записывается с автором, временем и комментарием и выгружается целиком.
  • Неполная заявка не уходит в работу. Категория, оценка суммы и обоснование обязательны до отправки, а счёт или коммерческое предложение — до перехода дальше статуса «Подана».
  • Приоритет по правилам, а не по желанию. Уровни срочности задаются объективными критериями: сумма, влияние на производство, окончание действующего договора. Иначе все заявки быстро становятся срочными.
  • Маршрут записан в системе. Пороги сумм и цепочки согласующих хранятся в таблице правил и привязаны к ролям, а не к конкретным людям. Сколько уровней нужно, решает регламент компании.
  • Срок без эскалации не работает. У каждого шага есть срок; после него заявка переходит заместителю или администратору финансов, а напоминание уходит через 48 часов бездействия.
  • Общий справочник поставщиков. Заявки ссылаются на единую таблицу поставщиков, поэтому закупщик видит, что с этим же поставщиком уже ведутся переговоры по другой заявке.
  • Заявитель видит только своё. Форма подачи и список «Мои заявки» доступны всем сотрудникам, полная очередь — закупщикам и финансам. Ограничение действует на сервере, включая выгрузки.
  • Бюджет берут из существующей системы. Лимиты и факт читают из ERP или бюджетного сервиса через API, а не ведут вручную. Если модуль закупок ERP уже даёт форму заявки и маршрут, достаточно доработать его.

Промпты рассчитаны на AI-агента (Claude Code, Cursor и аналоги) в Laravel-проекте с установленным Filament 4.x. Отправляйте их по одному: каждый шаг даёт результат, который можно проверить до перехода к следующему.

Создай модели и миграции для согласования закупок: Vendor, CostCenter
(лимит на квартал), PurchaseRequest (заявитель, центр затрат,
категория, оценка суммы, обоснование, приоритет, желаемая дата, статус,
закупщик, выбранный поставщик, причина выбора, срок), VendorQuote
(заявка, поставщик, сумма, файл предложения), ApprovalRule (порог,
подразделение, категория, упорядоченные роли), ApprovalStep (заявка,
роль, исполнитель, решение, комментарий, время). Добавь фабрики.
Сгенерируй Filament-ресурс для PurchaseRequest. Обычный сотрудник видит
только форму подачи и свои заявки. Категория, оценка суммы и
обоснование обязательны. Для закупщиков сделай очередь с сортировкой по
оставшемуся сроку, фильтрами по категории и приоритету и назначением
закупщика по правилам категории и суммы.

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

Сделай сервис, который при отправке строит цепочку ApprovalStep по
ApprovalRule. Добавь страницу «Мои согласования» с действиями «Одобрить»,
«Вернуть на доработку» и «Отклонить» с обязательным комментарием. На
экране решения покажи лимит центра затрат, обещанные суммы по
одобренным заявкам и остаток после этой закупки.
Добавь в карточку заявки relation manager для VendorQuote и
обязательное поле причины выбора при указании поставщика. Покажи
предупреждение, если у поставщика есть другие открытые заявки. Сделай
фоновую задачу: напоминание согласующему через 48 часов бездействия и
переход к заместителю после срока шага, с уведомлением в панели.
Записывай каждое изменение статуса, правку и решение в журнал с автором
и временем. Добавь виджеты длины очереди, среднего срока согласования и
просроченных шагов, а также экспорт журнала и заявок за период в CSV
для аудита. Ограничь доступ к журналу ролями финансов и аудитора.