Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.42 KB | None | 0 0
  1. // Событие на оформление заказа
  2. $event = Main\EventManager::getInstance()->addEventHandler(
  3.     'sale',
  4.     'OnSaleOrderBeforeSaved',
  5.     'writeOffBonus'
  6. );
  7.  
  8. function writeOffBonus(Main\Event $event)
  9. {
  10.     if ($_SESSION['order_bonus']) { // Проверяем, новый заказ ли и используются ли бонусы?
  11.         $order = $event->getParameter('ENTITY');
  12.         $order_id = $order->getField('ACCOUNT_NUMBER');
  13.         $order_bonus = $_SESSION['order_bonus'];
  14.  
  15.         $paymentCollection = $order->getPaymentCollection();
  16.  
  17.         // Добавление нового платежа
  18.         $service = PaySystem\Manager::getObjectById(PAYMENT_BONUS_ID);
  19.         if ($service) {
  20.             $payment = $paymentCollection->createItem($service);
  21.             $payment->setField('SUM', $order_bonus);
  22.             $payment->setPaid("Y");
  23.  
  24.             // Списание бонусов внутри магазина
  25.             changeBonusLocalUser($order_id, $order_bonus);
  26.  
  27.             // Списание бонуса в сервисе
  28.             changeBonusExternalUser($order_bonus);
  29.         }
  30.  
  31.         // Редактирование первого платежа
  32.         $fields = array();
  33.         $payment = $paymentCollection[0];
  34.         if($payment) {
  35.             $fields = $payment->getFieldValues();
  36.             $sum = $fields['SUM'] - $order_bonus;
  37.             $payment->setField('SUM', $sum);
  38.         }
  39.  
  40.         // Уничтожаем сессию которая больше не нужна
  41.         unset($_SESSION['order_bonus']);
  42.     }
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement