Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Событие на оформление заказа
- $event = Main\EventManager::getInstance()->addEventHandler(
- 'sale',
- 'OnSaleOrderBeforeSaved',
- 'writeOffBonus'
- );
- function writeOffBonus(Main\Event $event)
- {
- if ($_SESSION['order_bonus']) { // Проверяем, новый заказ ли и используются ли бонусы?
- $order = $event->getParameter('ENTITY');
- $order_id = $order->getField('ACCOUNT_NUMBER');
- $order_bonus = $_SESSION['order_bonus'];
- $paymentCollection = $order->getPaymentCollection();
- // Добавление нового платежа
- $service = PaySystem\Manager::getObjectById(PAYMENT_BONUS_ID);
- if ($service) {
- $payment = $paymentCollection->createItem($service);
- $payment->setField('SUM', $order_bonus);
- $payment->setPaid("Y");
- // Списание бонусов внутри магазина
- changeBonusLocalUser($order_id, $order_bonus);
- // Списание бонуса в сервисе
- changeBonusExternalUser($order_bonus);
- }
- // Редактирование первого платежа
- $fields = array();
- $payment = $paymentCollection[0];
- if($payment) {
- $fields = $payment->getFieldValues();
- $sum = $fields['SUM'] - $order_bonus;
- $payment->setField('SUM', $sum);
- }
- // Уничтожаем сессию которая больше не нужна
- unset($_SESSION['order_bonus']);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement