public function requestAction($request) { if (strlen($request) < 1) { return false; } $_profit = $this->_di->get('config')->get('search')['profit']; $_config = $this->_di->get('config')->get('search')['provider']; $params = array(); $params["login"] = $_config['login']; $params["password"] = $_config['password']; $params["makeLogo"] = $_config['makeLogo']; $params["detailNum"] = $request; $params["deliveryRegionType"] = $_config['deliveryRegionType']; $params["substFilter"] = $_config['substFilter']; $params["substLevel"] = $_config['substLevel']; $result = null; try { @ini_set('default_socket_timeout', 5); $client = new \SoapClient("soap/emex.wsdl", array("trace" => 1, "exceptions" => 1, "connection_timeout" => 5)); $result = $client->FindDetailAdv3($params); } catch (\SoapFault $e) { $this->_di->get('builder')->assign('search_error', $e->getMessage()); } if (!is_object($result)) { return false; } $details = array(); foreach ($result->FindDetailAdv3Result->Details->SoapDetailItem as $detail) { $details[] = array("GroupId" => $detail->GroupId, "PriceGroup" => $detail->PriceGroup, "MakeLogo" => $detail->MakeLogo, "MakeName" => $detail->MakeName, "DetailNum" => $detail->DetailNum, "NewDetailNum" => isset($detail->NewDetailNum) ? $detail->NewDetailNum : null, "DetailNameRus" => $this->mb_ucfirst($detail->DetailNameRus), "PriceLogo" => $detail->PriceLogo, "DestinationLogo" => $detail->DestinationLogo, "PriceCountry" => $detail->PriceCountry, "LotQuantity" => $detail->LotQuantity, "Quantity" => $detail->Quantity, "DDPercent" => $detail->DDPercent, "ADDays" => $detail->ADDays, "DeliverTimeGuaranteed" => $detail->DeliverTimeGuaranteed, "ResultPrice" => ceil((double) $detail->ResultPrice * $_profit)); } $details = $this->_model->setData($details); $this->_di->get('builder')->assign('details', $details); $this->_di->get('builder')->assign('request', $request); }