static function createPriceListForCurrency( $currencyCode ) { $db = eZDB::instance(); $dataList = false; $insertSql = 'INSERT INTO ezmultipricedata(contentobject_attr_id, contentobject_attr_version, currency_code, type)'; $fetchCount = self::FETCH_DATA_LIST_LIMIT; $db->begin(); while( $fetchCount === self::FETCH_DATA_LIST_LIMIT ) { $dataList = eZMultiPriceData::fetchDataListWithoutPriceInCurrency( $currencyCode, $fetchCount ); $fetchCount = count( $dataList ); $currencyCode = $db->escapeString( $currencyCode ); foreach ( $dataList as $data ) { $sql = $insertSql . " VALUES( {$data['contentobject_attr_id']}, {$data['contentobject_attr_version']}, '$currencyCode', " . self::VALUE_TYPE_AUTO . " )"; $db->query( $sql ); } } $db->commit(); }
function createPrice($currencyCode, $value, $type) { if (is_object($this->ContentObjectAttribute) && $this->currencyByCode($currencyCode)) { return eZMultiPriceData::create($this->ContentObjectAttribute->attribute('id'), $this->ContentObjectAttribute->attribute('version'), $currencyCode, $value, $type); } return false; }
static function updateAutoprices() { return eZMultiPriceData::updateAutoprices(); }
} } $cli->output('.', false); ++$convertedObjectsCount; } } $cli->output(' '); } } // create/update autoprices. if (is_array($currencyList)) { $cli->output("Updating autoprices."); foreach ($currencyList as $currencyCode => $currency) { eZMultiPriceData::createPriceListForCurrency($currencyCode); } eZMultiPriceData::updateAutoprices(); } $db->commit(); eZContentCacheManager::clearAllContentCache(); $cli->output("Total converted objects: {$convertedObjectsCount}"); $cli->output("Done."); $script->shutdown(0); function currencyForLocale($localeString = false) { global $cli; global $currencyList; $currency = false; if ($currencyList === false) { $currencyList = eZCurrencyData::fetchList(); } $locale = eZLocale::instance($localeString);