Final straw
Ночью во сне вспомнил, что у меня в обслуживаемых и необслуживаемых софтах еще есть пару мест, задеваемых изменением ставки НДС.
Ну, то что необслуживаемое - там вообще 3.14здец и ад, устаревшая десять лет назад чужая система, с собственным скриптовым ad-hoc говноязыком, на нем написан модуль, в который, если я не ошибаюсь, жестко прошита ставка НДС 18%. Там еще много можно вспоминать, сколько и какого говна следует только из-за того, что в 1995 году ошиблись в выборе поставщика бухгалтерской системы, а потом вместо того чтобы признаться в ошибке и выкинуть ее нахер, попросили ее обслуживать меня, из-за чего она существует до сих пор.
А вот в обслуживаемой системе моей разработки, в таком же модуле, оказалось, что я полтора или больше года назад, когда ни сном ни духом про изменение НДС никто не говорил, убив в N раз больше времени, чем следовало, но все таки сделал алгоритм, корректно работающий с любыми ставками НДС. Конкретно в данном случае - это любимый белорусский алгоритм "подгонка результата под округленный до 10 рублей ответ". Оно считает ставку НДС исходя из общей суммы и суммы налога, а затем округляет ее до ближайшего целого и считает снова сумму НДС, округляет до 10 и проверяет, получилась ли такая же сумма, как в исходном варианте. Если получилась - ставка остается округленной и считается кошерной, иначе остается дробной и помечается как некошерная для изучения бухгалтером.
"Отсюда мораль: хорошая мина при плохой игре" съешь с одной стороны - подрастешь, нет, я не это хотел сказать, я хотел сказать, что еще немного давления на мозг в таком плане и я внезапно положу хер вообще на все, и сяду делать висящие сейчас проекты не "срочно", а правильно. Если они от этого загнутся - ну и хер с ними, глаза б их не видели.
Ну, то что необслуживаемое - там вообще 3.14здец и ад, устаревшая десять лет назад чужая система, с собственным скриптовым ad-hoc говноязыком, на нем написан модуль, в который, если я не ошибаюсь, жестко прошита ставка НДС 18%. Там еще много можно вспоминать, сколько и какого говна следует только из-за того, что в 1995 году ошиблись в выборе поставщика бухгалтерской системы, а потом вместо того чтобы признаться в ошибке и выкинуть ее нахер, попросили ее обслуживать меня, из-за чего она существует до сих пор.
А вот в обслуживаемой системе моей разработки, в таком же модуле, оказалось, что я полтора или больше года назад, когда ни сном ни духом про изменение НДС никто не говорил, убив в N раз больше времени, чем следовало, но все таки сделал алгоритм, корректно работающий с любыми ставками НДС. Конкретно в данном случае - это любимый белорусский алгоритм "подгонка результата под округленный до 10 рублей ответ". Оно считает ставку НДС исходя из общей суммы и суммы налога, а затем округляет ее до ближайшего целого и считает снова сумму НДС, округляет до 10 и проверяет, получилась ли такая же сумма, как в исходном варианте. Если получилась - ставка остается округленной и считается кошерной, иначе остается дробной и помечается как некошерная для изучения бухгалтером.