/** * Execute the console command. * * @return mixed */ public function handle() { $jobKey = $this->argument('key'); $job = ImportJob::whereKey($jobKey)->first(); if (!$this->isValid($job)) { return; } $this->line('Going to import job with key "' . $job->key . '" of type ' . $job->file_type); $monolog = Log::getMonolog(); $handler = new CommandHandler($this); $monolog->pushHandler($handler); $result = ImportProcedure::runImport($job); /** * @var int $index * @var TransactionJournal $journal */ foreach ($result as $index => $journal) { if (!is_null($journal->id)) { $this->line(sprintf('Line #%d has been imported as transaction #%d.', $index, $journal->id)); continue; } $this->error(sprintf('Could not store line #%d', $index)); } $this->line('The import has completed.'); // get any errors from the importer: $extendedStatus = $job->extended_status; if (isset($extendedStatus['errors']) && count($extendedStatus['errors']) > 0) { $this->line(sprintf('The following %d error(s) occured during the import:', count($extendedStatus['errors']))); foreach ($extendedStatus['errors'] as $error) { $this->error($error); } } return; }
/** * @param ImportJob $job */ public function start(ImportJob $job) { set_time_limit(0); if ($job->status == 'settings_complete') { ImportProcedure::runImport($job); } }