Есть три переменные:
$user_bonus - бонусный баланс клиента
$order_bonus - сумма бонусов оплаченная за заказ
$post_bonus - сумма которую указала администрация при редактирование заказа
Переменные не могут быть только больше нуля.
История записывается в отдельную таблицу в которой учитывается: user_id, order_id, summa, type
Тип - это название операции может быть:
1 - начислено за покупку
2 - списано за покупку
3 - начислено Администрацией
4 - списано Администрацией
5 - списано за отмененный заказ
6 - возврат бонусов
Уже голову сломал чтобы построить логику учитывающую все возможные исходы...
Вот пример суждений:
if($order_bonus == 0 && $user_bonus >= $post_bonus)
// Спишем с баланса клиента $post_bonus
// Запишем в историю сумму $post_bonus списано за покупку
// Запишем в заказ сколько оплачено $post_bonus
if($order_bonus == 0 && $user_bonus < $post_bonus)
// Запишем в историю сумму $post_bonus-$user_bonus начислено Администрацией
// Запишем в историю сумму $post_bonus списано за покупку
// Cпишем с баланса клиента $post_bonus
// Запишем в заказ сколько оплачено $post_bonus
Такой подход считаю не реальным...
Уважаемые, как это правильно делается???
Если не хватает исходных данных буду дополнять. Просто уже голова кругом! :huh: