Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Исправить и доработать скрипт discount.php: https://gist.github.com/sergous/e3e1e0d46fd6a78f712a

Если это трудно, править вариант скрипта без классов discount2.php.

Оба варианта скрипта не выполняют условие парности продуктов A-B, если их разное количество.

Описание:

Есть продукты A, B, C, D, E, F, G, H, I, J, K, L, M. Каждый продукт стоит определенную сумму.

Есть набор правил расчета итоговой суммы:

1. Если одновременно выбраны А и B, то их суммарная стоимость уменьшается на 10% (для каждой пары А и B)

2. Если одновременно выбраны D и E, то их суммарная стоимость уменьшается на 5% (для каждой пары D и E)

3. Если одновременно выбраны E,F,G, то их суммарная стоимость уменьшается на 5% (для каждой тройки E,F,G)

4. Если одновременно выбраны А и один из [K,L,M], то стоимость выбранного продукта уменьшается на 5%

5. Если пользователь выбрал одновременно 3 продукта, он получает скидку 5% от суммы заказа

6. Если пользователь выбрал одновременно 4 продукта, он получает скидку 10% от суммы заказа

7. Если пользователь выбрал одновременно 5 продуктов, он получает скидку 20% от суммы заказа

8. Описанные скидки 5,6,7 не суммируются, применяется только одна из них

9. Продукты A и C не участвуют в скидках 5,6,7

10. Каждый товар может участвовать только в одной скидке. Скидки применяются последовательно в порядке описанном выше.

Обязательные требования:

Необходимо написать программу на PHP, которая, имея на входе набор продуктов (один продукт может встречаться несколько раз) рассчитывала суммарную их стоимость.

Программу необходимо написать максимально просто и максимально гибко. Учесть, что список продуктов практически не будет меняться, также как и типы скидок. В то время как правила скидок (какие типы скидок к каим продуктам) будут меняться регулярно.

Все параметры задаются в программе статически (пользовательский ввод обрабатывать не нужно). Оценивается подход к решению задачи. Тщательное тестирование решения проводить не требуется.

Скрипт обязательно должен выполнять принципы SOLID.

Хорошая статья об применении SOLID в PHP - http://habrahabr.ru/post/208442/.

10 лет назад
tigrbz
Сергей 
41 годРоссия
10 лет в сервисе
Был
10 лет назад
Выбранный исполнитель
dmitro_o_v
32 годаУкраина
10 лет в сервисе
Был
месяц назад
10 лет назад
$15
1 день
профессионал, рекомендую!
Должным образом поставлена задача с быстрой оплатой.