This commit is contained in:
James Cole
2018-03-19 09:09:02 +01:00
parent e06361d5d7
commit 082b5ba895
2 changed files with 19 additions and 10 deletions

View File

@@ -28,8 +28,8 @@ use FireflyIII\Import\Specifics\SpecificInterface;
use FireflyIII\Models\ImportJob;
use FireflyIII\Repositories\ImportJob\ImportJobRepositoryInterface;
use Illuminate\Support\Collection;
use Iterator;
use League\Csv\Reader;
use League\Csv\Statement;
use Log;
/**
@@ -200,29 +200,35 @@ class CsvProcessor implements FileProcessorInterface
}
/**
* @return Iterator
* @return array
*
* @throws \League\Csv\Exception
* @throws \League\Csv\Exception
*/
private function getImportArray(): Iterator
private function getImportArray(): array
{
$content = $this->repository->uploadFileContents($this->job);
$config = $this->getConfig();
$reader = Reader::createFromString($content);
$delimiter = $config['delimiter'] ?? ',';
$hasHeaders = isset($config['has-headers']) ? $config['has-headers'] : false;
$offset = 0;
if ('tab' === $delimiter) {
$delimiter = "\t"; // @codeCoverageIgnore
}
$reader->setDelimiter($delimiter);
if ($hasHeaders) {
$reader->setHeaderOffset(0); // @codeCoverageIgnore
$offset = 1;
}
$stmt = (new Statement)->offset($offset);
$records = $stmt->process($reader);
$return = [];
foreach ($records as $record) {
$return[] = $record;
}
$results = $reader->getRecords();
Log::debug('Created a CSV reader.');
return $results;
return $return;
}
/**