public function saveSettings($settings = array())
 {
     $address = array_merge(array('country' => 'rus'), $settings);
     if (!$this->findTo($address)) {
         throw new waException('Указанный адрес пункта отправления не найден в списке поддерживаемых API службы «EMS Почта России».');
     }
     if (isset($settings['surcharge'])) {
         if (strpos($settings['surcharge'], ',')) {
             $settings['surcharge'] = str_replace(',', '.', $settings['surcharge']);
         }
         $settings['surcharge'] = max(0, doubleval($settings['surcharge']));
     }
     return parent::saveSettings($settings);
 }
 /**
  * Несмотря на название это, видимо, валидатор сохраняемых значений
  * конфигурации. Во всяком случае то, что он возвращает сохраняется
  * в БД.
  *
  * Название ПВЗ не можеь быть пустым. Потомушта.
  *
  * @todo Проверять, чтоб страна и регион были указаны
  *
  * @param array $settings
  * @return array
  * @throws waException Если данные не прошли проверку
  */
 public function saveSettings($settings = array())
 {
     foreach ($settings['rate'] as $index => $item) {
         if (!isset($item['location']) || empty($item['location'])) {
             throw new waException(_w('Pick-up point name cannot be empty'));
         }
         $settings['rate'][$index]['cost'] = isset($item['cost']) ? str_replace(',', '.', floatval($item['cost'])) : "0";
         $settings['rate'][$index]['maxweight'] = isset($item['maxweight']) ? str_replace(',', '.', floatval($item['maxweight'])) : "0";
         $settings['rate'][$index]['free'] = isset($item['free']) ? str_replace(',', '.', floatval($item['free'])) : "0";
     }
     return parent::saveSettings($settings);
 }
 /**
  * Предварительная подготовка данных для сохранения настроек с помощью метода saveSettings() базового класса waSystemPlugin.
  * 
  * @see waSystemPlugin::saveSettings()
  */
 public function saveSettings($settings = array())
 {
     $fields = array('halfkilocost', 'overhalfkilocost');
     foreach ($fields as $field) {
         if (ifempty($settings[$field])) {
             foreach ($settings[$field] as &$value) {
                 if (strpos($value, ',') !== false) {
                     $value = str_replace(',', '.', $value);
                 }
                 $value = str_replace(',', '.', (double) $value);
             }
             unset($value);
         }
     }
     return parent::saveSettings($settings);
 }