Beispiel #1
0
 /**
  * выгрузка для обновления цен имеющихся товаров по их артикулам
  */
 public function formateMogutaCMSUpdate($data)
 {
     $itemsIn = array('price' => trim(MG::numberDeFormat($data[1])), 'old_price' => trim(MG::numberDeFormat($data[2])), 'count' => trim($data[3]), 'activity' => trim($data[4]));
     if (count($data) < count($itemsIn) + 1 && count($data) > 1) {
         $this->validError = 'Нарушена целостность строки!';
         return false;
     }
     DB::query('
   UPDATE `' . PREFIX . 'product`
   SET ' . DB::buildPartQuery($itemsIn) . '
   WHERE code = ' . DB::quote($data[0]));
     DB::query('
   UPDATE `' . PREFIX . 'product_variant`
   SET ' . DB::buildPartQuery($itemsIn) . '
   WHERE code = ' . DB::quote($data[0]));
     $model = new Models_Product();
     $currencyShopIso = MG::getSetting('currencyShopIso');
     $res = DB::query('
   SELECT id
   FROM `' . PREFIX . 'product`
   WHERE code = ' . DB::quote($data[0]));
     if ($row = DB::fetchAssoc($res)) {
         $model->updatePriceCourse($currencyShopIso, array($row['id']));
     }
     return true;
 }
Beispiel #2
0
 /**
  * Изменяет настройки.
  * @return boolean
  */
 public function editSettings()
 {
     $this->messageSucces = $this->lang['ACT_SAVE_SETNG'];
     Storage::clear();
     if (!empty($_POST['options'])) {
         // если произошла смена валюты магазина, то пересчитываем курсы
         $currencyShopIso = MG::getSetting('currencyShopIso');
         if ($_POST['options']['currencyShopIso'] != MG::getSetting('currencyShopIso')) {
             $currencyRate = MG::getSetting('currencyRate');
             $currencyShort = MG::getSetting('currencyShort');
             $product = new Models_Product();
             $product->updatePriceCourse($_POST['options']['currencyShopIso']);
             //  $currencyRate[$currencyShopIso] = 1/$currencyRate[$_POST['options']['currencyShopIso']];
             $rate = $currencyRate[$_POST['options']['currencyShopIso']];
             $currencyRate[$_POST['options']['currencyShopIso']] = 1;
             foreach ($currencyRate as $iso => $value) {
                 if ($iso != $_POST['options']['currencyShopIso']) {
                     if (!empty($rate)) {
                         $currencyRate[$iso] = $value / $rate;
                     }
                 }
             }
             DB::query("UPDATE `" . PREFIX . "delivery` SET cost = cost * " . $currencyRate[$currencyShopIso] . " , free = free * " . $currencyRate[$currencyShopIso]);
             MG::setOption(array('option' => 'currencyRate', 'value' => addslashes(serialize($currencyRate))));
             // echo $_POST['options']['currencyShopIso'];
         }
         $errorMemcache = false;
         foreach ($_POST['options'] as $option => $value) {
             if ($value == 'MEMCACHE' && !class_exists('Memcache')) {
                 $value = 'DB';
                 $this->messageError = 'Невозможно использовать кэширование MEMCACHE';
                 $errorMemcache = true;
             }
             if (!DB::query("UPDATE `" . PREFIX . "setting` SET `value`=" . DB::quote($value) . " WHERE `option`=" . DB::quote($option) . "")) {
                 return false;
             }
         }
         if ($errorMemcache) {
             return false;
         }
         return true;
     }
 }