Корзина покупок: Рассчитайте сумму налога, используя переменные налоговые ставки, после применения скидки с фиксированной стоимостью (10 долларов США) - PullRequest
0 голосов
/ 18 марта 2011

Я создал свой собственный класс корзины покупок, и в настоящее время я работаю над тем, как рассчитываются налоги, скидки и итоги.

Проблема, которая у меня возникла, основана на теории, а не на реальном коде.

Настройка

В корзину можно добавлять товары с разными ставками налога за товар.
Поскольку ставки налога на товары могут варьироваться, общую сумму налога на корзину нельзя просто рассчитать, например, выполнив:

Ставка налога составляет 20%, поэтому, если промежуточный итог составляет 100 долларов США, а мы добавляем налог в размере 20%, общая сумма налога составляет 20 долларов США.

Вместо этого переменная налоговая ставка для каждого товара рассчитывается по цене товара и добавляется к итоговой сумме налога.

Пока все работает нормально.

Проблема

Проблема возникает, если пользователь применяет купон на скидку, например - 10 долларов США от общей суммы.
Если общая сумма составляет 100 долларов, а я скидываю 10 долларов, общая сумма теперь составляет 90 долларов.

Тем не менее, каким должен быть общий налог?
Я не могу взять 10 долларов с общей суммы налога, поскольку это просто неверно, и я не могу взять процентную ставку глобального налога с 10 долларов, а затем убрать ее из общей суммы налога, поскольку у товаров в корзине могут быть переменные налоговые ставки.

Каково решение этого сценария?

...