public function getBusinessValue($mapping) { $value = null; if (is_array($mapping) && isset($mapping['PROVIDER_NAME'], $mapping['PROVIDER_FIELD'])) { switch ($mapping['PROVIDER_NAME']) { case 'SHIPMENT': $value = $this->getField($mapping['PROVIDER_FIELD']); break; case 'COMPANY': if ($companyId = $this->getField('COMPANY_ID')) { if (substr($mapping['PROVIDER_FIELD'], 0, 3) == 'UF_') { global $USER_FIELD_MANAGER; $value = $USER_FIELD_MANAGER->GetUserFieldValue(Internals\CompanyTable::getUfId(), $mapping['PROVIDER_FIELD'], $companyId) ?: null; } elseif ($company = Internals\CompanyTable::getById($companyId)->fetch()) { $value = $company[$mapping['PROVIDER_FIELD']]; } } break; default: /** @var ShipmentCollection $collection */ $value = ($collection = $this->getCollection()) && ($order = $collection->getOrder()) ? $order->getBusinessValue($mapping) : BusinessValue::getValueFromMapping($mapping); } } return $value; }