на экране сумма одна, на печати — другая) корзина при этом открывается и вроде считает
Корзина живая, бланк врёт
Настольная корзина магазина открывается. Минус и плюс меняют количество. Итог на экране пересчитывается. Кажется, что заказ можно отдавать.
Потом печать. На бланке цена со скидкой не равна сумме в корзине. Страница не падает. Пустую корзину не показывает. Две цифры просто разные.
Проверка «открылась или нет» эту дыру не ловит. Кнопки показывают, что блок жив. Совпадение сумм показывает, что экран и печать считают одно и то же.
Где разошлась цена со скидкой
Я правил настольную корзину. Сначала нужны были минус и плюс, удаление товара на нуле и больше места под название. Потом пришли скриншоты уже про кнопки и печать.
На экране скидка сидела в итоге. На бланке строка цены со скидкой жила отдельно и с этим итогом не сходилась.
Пока лист и экран спорят, неважно, какая цифра выглядит ровнее. Перед вами две версии одного заказа. Какую считать верной, уже гадание.
Что поправил в форме и в корзине
Поправил печатную форму. Цена со скидкой и итог бланка берутся из того же расчёта, что сумма на экране. После правки бланк показывает ту же сумму, что корзина.
Заодно убрал то, что мешало сверять экран с листом. Постоянную кнопку пересчёта снял: сумма и так обновлялась, лишняя кнопка только путала. Печать и очистку поставил по центру. В количестве и в печатной сумме разделил тысячи. Иначе длинное число читается как каша и на экране, и на листе.
Название товара расширил. Узкая колонка прятала, что именно в заказе.
Это не новая корзина с нуля. Экран уже умел считать. Бланк брал цену со скидкой отдельно.
Удаление при нуле оставил здесь же. Дошли до нуля — товар уходит, а не висит с нулём и старой ценой. Иначе печать снова может утащить строку, которой в заказе уже нет.
Когда этой проверки мало
Один лист, который сошёлся, не ловит нулевое количество, длинное число и узкое окно.
Прогнал 46 тестов. Прошли 46 из 46. Плюс 7 сценариев вывода бланка и 10 ширин экрана, чтобы вёрстка печати и кнопок не разъехалась, когда окно не на весь монитор. Печать с корзиной сошлась, отчёт отправил.
Около 6 часов работы, 8–9 сентября.
Проверьте у себя
Сверьте экран и бланк на одном и том же составе.
- Добавьте товар со скидкой в настольную корзину.
- Поменяйте количество плюсом и минусом. Итог на экране пересчитался.
- Если кнопку «пересчитать» уже убрали, сумма меняется без неё.
- Дойдите количеством до нуля. Товар удаляется, а не остаётся с нулём и старой ценой.
- Нажмите печать. Строка цены со скидкой и итог бланка равны итогу на экране. Не «примерно».
- Тысячи и в корзине, и на бумаге разбиты одинаково.
- Название на бланке не обрезано до бессмыслицы.
- Повторите в узком окне, не только на весь экран. Кнопки печати и очистки на месте.
Расхождение поймали — в работу идёт бланк и расчёт, не перерисовка корзины целиком, пока не ясно, где именно врёт цифра.
Частые вопросы
Если корзина открывается, печать можно не смотреть?
Нет. Пока лист не лежит рядом с экраном, скидка может остаться только в итоге на мониторе.
Скидка на строке и скидка в итоге — это одно?
Не всегда. На экране итог уже со скидкой. На бумаге строка «цена со скидкой» может считаться своим куском.
Это та же поломка, что кнопки в телефоне?
Нет. На телефоне мешали плюс, минус и удаление. Здесь не сходилась печатная цена со скидкой и итог корзины. Чинить надо свой стык.
Если хотите, чтобы я посмотрел ваш случай, напишите мне в тг @botvinov.
