Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/wbs24.ozonexport/lib/ |
Upload File : |
<?php namespace Wbs24\Ozonexport; trait PackagingRatio { public function setProperties($props, $productType, $parentProps = []) { $this->props = $props; $this->productType = $productType; $this->parentProps = $parentProps; } public function getPriceWithPackagingRatio($price) { $finalPrice = $price; $packageRatioPropName = ($this->productType == 'simpleProduct') ? 'packageRatioProduct' : 'packageRatioOffer' ; $packageRatioPropId = (int) $this->param[$packageRatioPropName]; if ($packageRatioPropId) { if ($this->productType == 'offer') { if (array_key_exists($packageRatioPropId, $this->props)) { $packagingRatioPropValue = $this->preparePackageRatioValue( $this->props[$packageRatioPropId]['VALUE'] ); } else { $packagingRatioPropValue = $this->preparePackageRatioValue( $this->parentProps[$packageRatioPropId]['VALUE'] ); } } else { $packagingRatioPropValue = $this->preparePackageRatioValue( $this->props[$packageRatioPropId]['VALUE'] ); } if ( !$packagingRatioPropValue || ($packagingRatioPropValue < 0) ) { $packagingRatioPropValue = 1; } $finalPrice = $price * $packagingRatioPropValue; } return round($finalPrice); } public function getStockWithPackagingRatio($stock) { $stock = (int) $stock; $finalStock = $stock; $packageRatioPropName = ($this->productType == 'simpleProduct') ? 'packageRatioProduct' : 'packageRatioOffer' ; $packageRatioPropId = (int) $this->param[$packageRatioPropName]; if ($packageRatioPropId) { if ($this->productType == 'offer') { if (array_key_exists($packageRatioPropId, $this->props)) { $packagingRatioPropValue = $this->preparePackageRatioValue( $this->props[$packageRatioPropId]['VALUE'] ); } else { $packagingRatioPropValue = $this->preparePackageRatioValue( $this->parentProps[$packageRatioPropId]['VALUE'] ); } } else { $packagingRatioPropValue = $this->preparePackageRatioValue( $this->props[$packageRatioPropId]['VALUE'] ); } if ( !$packagingRatioPropValue || ($packagingRatioPropValue < 0) ) { $packagingRatioPropValue = 1; } $finalStock = floor($stock / $packagingRatioPropValue); } return $finalStock; } protected function preparePackageRatioValue($packageRatioValue) { $usePackagingRatioFloat = $this->param['usePackagingRatioFloat']; if ($usePackagingRatioFloat) { if (gettype($packageRatioValue) == 'string') { $packageRatioValue = str_replace(',', '.', $packageRatioValue); } $preparedPackageRatioValue = (float) $packageRatioValue; } else { $preparedPackageRatioValue = (int) $packageRatioValue; } return $preparedPackageRatioValue; } }