При изменении количества процедур важно сохранить цену и скидку, которые уже согласовали с пациентом. В приложении для клиники Ратинова мы изменили синхронизацию плана с товарами сделки: существующие строки обновляются по отдельности, без полной замены списка.
Доработка вошла в сентябрьское развитие системы планов лечения. Само заполнение товаров из плана работало и раньше. Новая задача заключалась в сохранении условий уже созданных строк при последующих изменениях курса.
Что происходит при изменении плана
Врач выбирает услуги и дни в таблице. По этим назначениям приложение рассчитывает количество процедур и сопоставляет его с товарами сделки.
Раньше подход с полной заменой списка мог затронуть свойства строк, которые появились уже после первоначального заполнения. Например, сотрудник мог согласовать индивидуальную цену. Теперь приложение сохраняет существующую строку и меняет нужное количество в ней.

Какие условия сохраняются
Для существующей товарной строки сохраняются её идентификатор, цена, скидка и налоговые параметры. Это важно, когда условия продажи отличаются от текущих значений в каталоге.
Если в плане появляется новая услуга, приложение добавляет для неё строку с ценой из каталога. Если ранее включённая строка больше не нужна по плану, синхронизация обрабатывает её удаление. Добавление, изменение количества и исключение услуги остаются разными операциями.
| Действие в плане | Что делает синхронизация |
|---|---|
| Изменилось количество существующей услуги | Обновляет количество, сохраняя условия строки |
| Добавлена новая услуга | Создаёт строку с ценой из каталога |
| Услуга исключена из плана | Обрабатывает удаление соответствующей строки |
Этот механизм описывает связь плана с товарами сделки. Он не означает автоматический возврат денег пациенту или изменение уже проведённых финансовых документов.
Пример с согласованной ценой
Допустим, в сделке есть пять процедур по индивидуальной цене. Врач увеличил количество до семи. Ожидаемое поведение: в той же строке становится семь единиц, а цена и скидка остаются прежними.
Это условный пример для объяснения логики, а не сведения о конкретном пациенте. Проверять такой сценарий нужно на тестовой карточке: сравнить строку до изменения и после него, включая сумму, скидку и налоги.
Если план сохранился, а товары не обновились
Сохранение плана и обновление товаров выполняются последовательно. Сначала сохраняются назначения, затем приложение синхронизирует товарные строки. Это не одна неделимая операция.
Если второй шаг завершился ошибкой, пользователь получает сообщение о том, что план уже сохранён, а синхронизация товаров не прошла. В такой ситуации нужно проверить товары сделки и устранить причину ошибки. Нельзя считать, что повторное открытие сохранённого плана автоматически подтверждает правильность финансовой части.
Как принимать такую доработку
Проверка должна включать услугу с индивидуальной ценой и скидкой, добавление новой позиции и исключение прежней. Отдельный сценарий нужен для ошибки обновления товаров: сотрудник должен понимать, какая часть действия завершилась.
Сохранение условий строк делает дальнейшее редактирование курса предсказуемее для администратора. Связь плана, оплаты и выполнения целиком разобрана в кейсе клиники Ратинова.