%PDF- %PDF-
Direktori : /proc/self/root/home/bitrix/www/bitrix/modules/sale/lib/location/migration/ |
Current File : //proc/self/root/home/bitrix/www/bitrix/modules/sale/lib/location/migration/migration.php |
<? /** * This class is for internal use only, not a part of public API. * It can be changed at any time without notification. * * @access private */ namespace Bitrix\Sale\Location\Migration; use Bitrix\Main; use Bitrix\Sale\Location; include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/lib/location/migration/migrate.php"); final class MigrationProcess extends Location\Util\Process { const SESS_KEY = 'location_migration'; const NOTIF_TAG = 'SALE_LOCATIONPRO_PLZ_MIGRATE'; private $migrator = null; public function __construct() { parent::__construct(); $this->addStage(array( 'PERCENT' => 10, 'CODE' => 'CREATE_TYPES', 'CALLBACK' => 'stageCreateTypes' )); $this->addStage(array( 'PERCENT' => 30, 'CODE' => 'CONVERT_TREE', 'CALLBACK' => 'stageConvertTree' )); $this->addStage(array( 'PERCENT' => 50, 'CODE' => 'CONVERT_ZONES', 'CALLBACK' => 'stageConvertZones' )); $this->addStage(array( 'PERCENT' => 70, 'CODE' => 'CONVERT_LINKS', 'CALLBACK' => 'stageConvertLinks' )); $this->addStage(array( 'PERCENT' => 90, 'STEP_SIZE' => 1, 'CODE' => 'COPY_DEFAULT_LOCATIONS', 'CALLBACK' => 'stageCopyDefaultLocations' )); $this->addStage(array( 'PERCENT' => 100, 'STEP_SIZE' => 1, 'CODE' => 'COPY_ZIP_CODES', 'CALLBACK' => 'stageCopyZipCodes' )); } public function onBeforePerformIteration() { if(\CSaleLocation::isLocationProMigrated()) throw new Main\SystemException('Already migrated'); if(!isset($this->data['migrator_data'])) $this->migrator = new CUpdaterLocationPro(); else $this->migrator = unserialize($this->data['migrator_data']); } public function onAfterPerformIteration() { $this->data['migrator_data'] = serialize($this->migrator); if($this->getPercent() == 100) { \CSaleLocation::locationProSetMigrated(); \CSaleLocation::locationProEnable(); } } protected function stageCreateTypes() { $this->migrator->createTypes(); $this->nextStage(); } protected function stageConvertTree() { if($this->getStep() == 0) { $this->migrator->convertTree(); $this->nextStep(); } else { $this->migrator->resetLegacyPath(); $this->nextStage(); } } protected function stageConvertZones() { $this->migrator->convertSalesZones(); $this->nextStage(); } protected function stageConvertLinks() { $this->migrator->convertGroupLocationLinks(); $this->migrator->convertDeliveryLocationLinks(); $this->migrator->convertTaxRateLocationLinks(); $this->nextStage(); } protected function stageCopyDefaultLocations() { $this->migrator->copyDefaultLocations(); $this->nextStage(); } protected function stageCopyZipCodes() { $this->migrator->copyZipCodes(); $this->nextStage(); } public function hideNotifier() { \CAdminNotify::DeleteByTag( self::NOTIF_TAG ); } }