Помочь исправить ошибку в коде для Битрикс

1 руб. за проект
21 апреля 2021, 15:48 • 3 отклика • 35 просмотров
Есть код в init.php на БУС, в нем вешаемся на событие OnSaleOrderBeforeSaved, далее в текущем заказе обнуляем доставку и распределяем стоимость доставки по товарам, в алгоритме используется округление и по этому распределиться может больше чем всего. Поэтому алгоритм предусматривает изменение стоимости позиции у позиции с количеством 1 или если таковой нет то разбиение любой позиции с кол-вом более 1 на две, с кол-вам = 1 и кол-вом = старое кол-во - 1. Код отрабатывает, обнуляет доставку, обновляет цены у позиций, создает новую позицию с кол-вом 1 и скорректированной ценой, НО не уменьшает кол-во в позиции доноре. Просьба откликаться только опытных разработчиков, которые понимают ньюансы и знают в чем может быть дело, так как перепробовано уже куча вариантов и нет моральных сил доделать эту задачу и просто нужен свежий взгляд на проблему. Для работы предоставлю проблемный код и вам нужно будет у себя на локалке выяснить в чем причина, я расскажу как смоделировать проблемную ситуацию, у вас должен быть БУС с интернет магазином. Пишите 3 - 1 + 1 = ? , примерную стоимость и свою телегу.