/** * выгрузка для обновления цен имеющихся товаров по их артикулам */ 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; }
/** * Изменяет настройки. * @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; } }