/** * Singleton method * * @return PlentymarketsExportWizard */ public static function getInstance() { if (!self::$Instance instanceof self) { self::$Instance = new self(); } return self::$Instance; }
/** * Announces an export */ public function handleExportAction() { $params = $this->Request()->getParams(); if (PlentymarketsExportWizard::getInstance()->isActive()) { return $this->View()->assign(array('success' => true, 'message' => 'Aktion kann nicht ausgeführt werden, da der automatische Export aktiv ist')); } try { if ($params['doAction'] == 'reset') { PlentymarketsExportController::getInstance()->reset($params['name']); PlentymarketsLogger::getInstance()->message('Export:Initial:' . ucfirst($params['name']), 'Resetted'); $message = 'Export-Status zurückgesetzt'; } else { if ($params['doAction'] == 'erase') { PlentymarketsExportController::getInstance()->erase($params['name']); PlentymarketsLogger::getInstance()->message('Export:Initial:' . ucfirst($params['name']), 'Completely erased'); $message = 'Export komplett zurückgesetzt'; } else { if ($params['doAction'] == 'start') { PlentymarketsExportController::getInstance()->announce($params['name']); PlentymarketsLogger::getInstance()->message('Export:Initial:' . ucfirst($params['name']), 'Announced'); $message = 'Export vorgemerkt'; } } } $success = true; } catch (PlentymarketsExportException $E) { $success = false; $message = $E->getMessage(); $method = sprintf('set%sExportStatus', $params['name']); PlentymarketsConfig::getInstance()->{$method}('error'); $method = sprintf('set%sExportLastErrorMessage', $params['name']); PlentymarketsConfig::getInstance()->{$method}($message); PlentymarketsLogger::getInstance()->error('Export:Initial:' . ucfirst($params['name']), $message, $E->getCode()); } $settings = $this->getExportStatusList(); $this->View()->assign(array('success' => $success, 'message' => $message, 'data' => $settings[$params['name']])); }
/** * Returns the overview for the use in the view * * @return array */ public function getOverview() { $wizardIsActive = PlentymarketsExportWizard::getInstance()->isActive(); $overview = array(); /** @var PlentymarketsExportStatus $Status */ foreach ($this->Status as $position => $Status) { $overview[$Status->getName()] = array('position' => $position, 'name' => $Status->getName(), 'status' => $Status->getStatus(), 'error' => htmlspecialchars($Status->getError()), 'start' => $Status->getStart(), 'finished' => $Status->getFinished(), 'mayAnnounce' => !$wizardIsActive && $this->mayAnnounce() && $Status->mayAnnounce(), 'mayReset' => !$wizardIsActive && $Status->mayReset(), 'mayErase' => !$wizardIsActive && $Status->mayErase(), 'isOverdue' => $Status->isOverdue(), 'needsDependency' => !$wizardIsActive && $Status->needsDependency() && !$Status->isFinished()); } return $overview; }
/** * Runs the export cronjob. * * @param Shopware_Components_Cron_CronJob $Job */ public function runExport(Shopware_Components_Cron_CronJob $Job) { try { PlentymarketsExportController::getInstance()->export(); } catch (PlentymarketsExportException $E) { PlentymarketsLogger::getInstance()->error('Cron:Export', $E->getMessage(), $E->getCode()); } catch (Exception $E) { PlentymarketsLogger::getInstance()->error('Cron:Export', $E->getMessage(), 1000); PlentymarketsLogger::getInstance()->error('Cron:Export', get_class($E), 1000); PlentymarketsLogger::getInstance()->error('Cron:Export', $E->getTraceAsString(), 1000); } $PlentymarketsExportWizard = PlentymarketsExportWizard::getInstance(); $PlentymarketsExportWizard->conjure(); }