🧾 План оплат
Таблица на схеме

Схема основных связанных сущностей

📅 Задачи yougile
- 🔵🟢 Реализовать ITR-447
✏️ Общее описание
После утверждения суммы заказа и дат заказа формируется план оплат. По плану оплат в дальнейшем создаются счета на оплату.
🔎 Уточнить
🖊️ Общие особенности
- Начальник может создать дополнительные оплаты, которые не были предусмотрены первоначально и изменить сумму платежей
- Менеджер и помощник может создать и пересоздать план платежей
- Менеджер и помощник может изменять даты платежей, формировать счета на оплату
- План оплат можно пересоздать в следующих случаях:
- если счета ещё не созданы
- если все созданные счета имеют статус «Отменён»
- при этом значения счетов, находящихся в статусе, отличном от «Отменён», не изменяются
- % на оплату - целое число, но если необходимо ввести определённую сумму, то можно отредактировать значение в плане оплат. Автоматический пересчёт % и суммы специально убран (только для начальника, т.к. такие ситуации крайне редкие. Обычно проценты указываются с шагом в 10%)
📋 Предзаполненные данные
🔐 Доступ
- Менеджер по продажам (просмотр своих и редактирование своих)
- Помощник менеджера по продажам (просмотр и редактирование заказов, которые относятся к менеджеру по по продажам с которым он связан)
- Начальник менеджеров по продажам (просмотр, редактирование, выгрузка отчёта)
- Бухгалтер (получение)
💻 Веб интерфейс
https://orders.regina.fvds.ru/buyer-orders/00000000-0000-0000-0000-000000000000/edit
Вкладка план платежей
Таблица в заказе покупателя
Кнопка - сформировать план платежей (Менеджер по продажам или Помощник)
Функционал создания (пересоздания) плана платежей:
- Проверить идёт создание плана (планируемые оплаты для данного заказа ещё не созданы) или пересоздание (планируемые оплаты есть, но их можно обновить - они не затрагивают выставленные счета)
- Основываясь на данных в оплате заказа создать план платежей по предоплате, оплате перед отправкой и финальной оплатой
- предоплата - если в заказе заполнено поле Предоплата %. Сумма = Сумма заказа * Предоплата %; % оплаты = Предоплата %; Дата = Дата запуска план; Этап оплаты = Предоплата; Заказ покупателя = текущий; Комментарий = null. Если Дата запуска план не заполнено, то выдвать ошибку с просьбой заполнить
- Перед отгрузкой - если в заказе заполнено поле Перед отгрузкой %. Сумма = Сумма заказа * Перед отгрузкой %; % оплаты = Перед отгрузкой %; Дата = Дата отгрузки план; Этап оплаты = Перед отгрузкой; Заказ покупателя = текущий; Комментарий = null. Если Дата отгрузки план не заполнено, то выдвать ошибку с просьбой заполнить
- Окончательная - если в заказе Предоплата % + Перед отгрузкой % < 100. Сумма = Сумма заказа - сумма предоплаты - сумма перед отгрузкой; % оплаты = 100 - Предоплата % - Перед отгрузкой %; Дата = Дата запуска план + Срок поставки в днях (учитывать тип дней); Этап оплаты = Окончательная; Заказ покупателя = текущий; Комментарий = null. Если Срок поставки в днях не заполнено, то выдвать ошибку с просьбой заполнить
Колонки в таблице (два уровня заголовков):
- Оплата
- (id)
- (isEditable - true если есть роль менеджера или помощника и статус Создан или Отправлен)
- Сумма
- % (оплаты)
- Дата
- Этап (оплаты)
- Заказ
- Ответственный
- Коментарий (узкая колонка на пару слов)
- Счёт
- (id)
- (isEditable - false если хоть один привязанный счёт имеет статус Оплачен)
- Номер
- Дата
- Статус
- Автор
- Оплачено
- Есть ошибки
- Действия
- Создать счёт (видна только Менеджеру по продажам или Помощнику. Доступна если Оплата.isEditable=true)
- Редактировать планируемую оплату (видна всем. Менеджер по продажам или Помощник могут изменить дату или комментарий, Начальник может вручную корректировать данные по оплате. Доступна если Оплата.isEditable=true)
- Редактировать счёт (видна только Менеджер по продажам или Помощник. Доступна если есть счёт и Счёт.isEditable=true)
- Просмотр счёта (видна всем. Доступна если есть счёт)
Есть возможность развернуть строку для счетов с оплатой и посмотреть таблицу платежей по этому счёту
при разворачивании отправляется запрос получения данных об оплатах для этого счёта
Колонки
- (id)
- Номер платежа
- Дата
- Сумма (на этот счёт)
- Ошибка
Таблица в основном меню (План оплат)
Кнопка - выгрузить оплаты (Начальник менеджеров по продажам) Кнопка - выгрузить платежный календарь (Начальник менеджеров по продажам)
Колонки в таблице (два уровня заголовков):
- Оплата
- (id)
- (isEditable - true если есть роль менеджера или помощника и статус Создан или Отправлен)
- Сумма
- % (оплаты)
- Дата
- Этап (оплаты)
- Заказ
- Ответственный
- Коментарий (узкая колонка на пару слов)
- Счёт
- (id)
- (isEditable - false если хоть один привязанный счёт имеет статус Оплачен)
- Номер
- Дата
- Статус
- Автор
- Оплачено
- Есть ошибки
- Действия
- Создать счёт (видна только Менеджеру по продажам или Помощнику. Доступна если Оплата.isEditable=true)
- Редактировать планируемую оплату (видна всем. Менеджер по продажам или Помощник могут изменить дату или комментарий, Начальник может вручную корректировать данные по оплате. Доступна если Оплата.isEditable=true)
- Редактировать счёт (видна только Менеджер по продажам или Помощник. Доступна если есть счёт и Счёт.isEditable=true)
- Просмотр счёта (видна всем. Доступна если есть счёт)
Есть возможность развернуть строку для счетов с оплатой и посмотреть таблицу платежей по этому счёту
при разворачивании отправляется запрос получения данных об оплатах для этого счёта
Колонки
- (id)
- Номер платежа
- Дата
- Сумма (на этот счёт)
- Ошибка
Просмотр
- модальное окно
Редактирование
Выгрузка платёжного календаря
Открыват модальное окно в котором можно указать диапазон дат и скачать выгрузку при нажатии на кнопку. Дипапазон по умолчанию - от текущей даты плюч месяц
Доступно только начальнику из меню План оплат
Скачивает файл xlsx с колонками:
(Планируемая оплата:) дата, сумма, (Заказ покупателя:) сумма заказа, сумма РРЦ, вероятность, номер заказа, наименование контрагента (имя контрагента через контактное лицо), ФИО менеджера, руководитель (первый с должностью начальник менеджеров по продажам)
Выгрузка Оплат
Открыват модальное окно в котором можно указать диапазон дат и скачать выгрузку при нажатии на кнопку. Дипапазон по умолчанию - от текущей даты плюч месяц
Доступно только начальнику из меню План оплат
Скачивает файл xlsx с колонками:
(Планируемая оплата:) дата, сумма, (Заказ покупателя:) сумма заказа, сумма РРЦ, вероятность, номер заказа, наименование контрагента (имя контрагента через контактное лицо), ФИО менеджера (Ответственный), руководитель (первый с должностью начальник менеджеров по продажам)
(Планируемая оплата:) дата, сумма, (Заказ покупателя:) сумма заказа, сумма РРЦ, сумма доставки, менеджер по продажам (Ответственный), заказ покупателя (Номер), покупатель
🔗 Связанные сущности
🧾 Счет на оплату 📕 Этап оплаты
👨🏽💻 API
/Order/PaymentSchedule/ - Swagger - Order API