mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
Refactoring of code for #1159
This commit is contained in:
parent
7ac439fd0e
commit
6f70791239
35
app/Import/JobConfiguration/FinTSConfigurationSteps.php
Normal file
35
app/Import/JobConfiguration/FinTSConfigurationSteps.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
/**
|
||||
* FinTSConfigurationSteps.php
|
||||
* Copyright (c) 2018 https://github.com/bnw
|
||||
*
|
||||
* This file is part of Firefly III.
|
||||
*
|
||||
* Firefly III is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Firefly III is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace FireflyIII\Import\JobConfiguration;
|
||||
|
||||
/**
|
||||
*
|
||||
* Class FinTSConfigurationSteps
|
||||
*/
|
||||
abstract class FinTSConfigurationSteps
|
||||
{
|
||||
public const NEW = 'new';
|
||||
public const CHOOSE_ACCOUNT = 'choose_account';
|
||||
public const GO_FOR_IMPORT = 'go-for-import';
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/**
|
||||
* FinTSJobConfiguration.php
|
||||
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
||||
* Copyright (c) 2018 https://github.com/bnw
|
||||
*
|
||||
* This file is part of Firefly III.
|
||||
*
|
||||
@ -29,13 +29,10 @@ use FireflyIII\Support\Import\JobConfiguration\FinTS\FinTSConfigurationInterface
|
||||
use FireflyIII\Support\Import\JobConfiguration\FinTS\NewFinTSJobHandler;
|
||||
use Illuminate\Support\MessageBag;
|
||||
|
||||
abstract class FinTSConfigurationSteps
|
||||
{
|
||||
const NEW = 'new';
|
||||
const CHOOSE_ACCOUNT = 'choose_account';
|
||||
const GO_FOR_IMPORT = 'go-for-import';
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Class FinTSJobConfiguration
|
||||
*/
|
||||
class FinTSJobConfiguration implements JobConfigurationInterface
|
||||
{
|
||||
/** @var ImportJob */
|
||||
@ -48,7 +45,7 @@ class FinTSJobConfiguration implements JobConfigurationInterface
|
||||
*/
|
||||
public function configurationComplete(): bool
|
||||
{
|
||||
return $this->importJob->stage == FinTSConfigurationSteps::GO_FOR_IMPORT;
|
||||
return $this->importJob->stage === FinTSConfigurationSteps::GO_FOR_IMPORT;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/**
|
||||
* FinTSRoutine.php
|
||||
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
||||
* Copyright (c) 2017 https://github.com/bnw
|
||||
*
|
||||
* This file is part of Firefly III.
|
||||
*
|
||||
@ -30,6 +30,10 @@ use FireflyIII\Repositories\ImportJob\ImportJobRepositoryInterface;
|
||||
use FireflyIII\Support\Import\Routine\FinTS\StageImportDataHandler;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
/**
|
||||
*
|
||||
* Class FinTSRoutine
|
||||
*/
|
||||
class FinTSRoutine implements RoutineInterface
|
||||
{
|
||||
/** @var ImportJob */
|
||||
|
@ -1,5 +1,24 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* FinTS.php
|
||||
* Copyright (c) 2018 https://github.com/bnw
|
||||
*
|
||||
* This file is part of Firefly III.
|
||||
*
|
||||
* Firefly III is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Firefly III is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace FireflyIII\Support\FinTS;
|
||||
|
||||
@ -7,6 +26,10 @@ use Fhp\Model\SEPAAccount;
|
||||
use FireflyIII\Exceptions\FireflyException;
|
||||
use Illuminate\Support\Facades\Crypt;
|
||||
|
||||
/**
|
||||
*
|
||||
* Class FinTS
|
||||
*/
|
||||
class FinTS
|
||||
{
|
||||
/** @var \Fhp\FinTs */
|
||||
@ -14,19 +37,14 @@ class FinTS
|
||||
|
||||
/**
|
||||
* @param array $config
|
||||
*
|
||||
* @throws FireflyException
|
||||
*/
|
||||
public function __construct(array $config)
|
||||
{
|
||||
if (
|
||||
!isset($config['fints_url']) or
|
||||
!isset($config['fints_port']) or
|
||||
!isset($config['fints_bank_code']) or
|
||||
!isset($config['fints_username']) or
|
||||
!isset($config['fints_password']))
|
||||
throw new FireflyException(
|
||||
"Constructed FinTS with incomplete config."
|
||||
);
|
||||
if (!isset($config['fints_url'], $config['fints_port'], $config['fints_bank_code'], $config['fints_username'], $config['fints_password'])) {
|
||||
throw new FireflyException('Constructed FinTS with incomplete config.');
|
||||
}
|
||||
$this->finTS = new \Fhp\FinTs(
|
||||
$config['fints_url'],
|
||||
$config['fints_port'],
|
||||
@ -36,16 +54,41 @@ class FinTS
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool|string
|
||||
*/
|
||||
public function checkConnection()
|
||||
{
|
||||
try {
|
||||
$this->finTS->getSEPAAccounts();
|
||||
|
||||
return true;
|
||||
} catch (\Exception $exception) {
|
||||
return $exception->getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $accountNumber
|
||||
*
|
||||
* @return SEPAAccount
|
||||
* @throws FireflyException
|
||||
*/
|
||||
public function getAccount(string $accountNumber)
|
||||
{
|
||||
$accounts = $this->getAccounts();
|
||||
$filteredAccounts = array_filter(
|
||||
$accounts, function (SEPAAccount $account) use ($accountNumber) {
|
||||
return $account->getAccountNumber() === $accountNumber;
|
||||
}
|
||||
);
|
||||
if (count($filteredAccounts) != 1) {
|
||||
throw new FireflyException("Cannot find account with number " . $accountNumber);
|
||||
}
|
||||
|
||||
return reset($filteredAccounts);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return SEPAAccount[]
|
||||
* @throws FireflyException
|
||||
@ -59,27 +102,11 @@ class FinTS
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $accountNumber
|
||||
* @return SEPAAccount
|
||||
* @throws FireflyException
|
||||
*/
|
||||
public function getAccount(string $accountNumber)
|
||||
{
|
||||
$accounts = $this->getAccounts();
|
||||
$filteredAccounts = array_filter($accounts, function (SEPAAccount $account) use ($accountNumber) {
|
||||
return $account->getAccountNumber() == $accountNumber;
|
||||
});
|
||||
if (count($filteredAccounts) != 1) {
|
||||
throw new FireflyException("Cannot find account with number " . $accountNumber);
|
||||
}
|
||||
return reset($filteredAccounts);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param SEPAAccount $account
|
||||
* @param \DateTime $from
|
||||
* @param \DateTIme $to
|
||||
* @param \DateTime $from
|
||||
* @param \DateTIme $to
|
||||
*
|
||||
* @return \Fhp\Model\StatementOfAccount\StatementOfAccount|null
|
||||
* @throws FireflyException
|
||||
*/
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/**
|
||||
* ChooseAccountHandler.php
|
||||
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
||||
* Copyright (c) 2018 https://github.com/bnw
|
||||
*
|
||||
* This file is part of Firefly III.
|
||||
*
|
||||
@ -28,19 +28,23 @@ use FireflyIII\Exceptions\FireflyException;
|
||||
use FireflyIII\Import\JobConfiguration\FinTSConfigurationSteps;
|
||||
use FireflyIII\Models\AccountType;
|
||||
use FireflyIII\Models\ImportJob;
|
||||
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
||||
use FireflyIII\Repositories\ImportJob\ImportJobRepositoryInterface;
|
||||
use FireflyIII\Support\FinTS\FinTS;
|
||||
use Illuminate\Support\MessageBag;
|
||||
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
||||
|
||||
/**
|
||||
*
|
||||
* Class ChooseAccountHandler
|
||||
*/
|
||||
class ChooseAccountHandler implements FinTSConfigurationInterface
|
||||
{
|
||||
/** @var AccountRepositoryInterface */
|
||||
private $accountRepository;
|
||||
/** @var ImportJob */
|
||||
private $importJob;
|
||||
/** @var ImportJobRepositoryInterface */
|
||||
private $repository;
|
||||
/** @var AccountRepositoryInterface */
|
||||
private $accountRepository;
|
||||
|
||||
/**
|
||||
* Store data associated with current stage.
|
||||
@ -51,7 +55,7 @@ class ChooseAccountHandler implements FinTSConfigurationInterface
|
||||
*/
|
||||
public function configureJob(array $data): MessageBag
|
||||
{
|
||||
$config = $this->importJob->configuration;
|
||||
$config = $this->repository->getConfiguration($this->importJob);
|
||||
$config['fints_account'] = (string)($data['fints_account'] ?? '');
|
||||
$config['local_account'] = (string)($data['local_account'] ?? '');
|
||||
$config['from_date'] = (string)($data['from_date'] ?? '');
|
||||
@ -59,7 +63,7 @@ class ChooseAccountHandler implements FinTSConfigurationInterface
|
||||
$this->repository->setConfiguration($this->importJob, $config);
|
||||
|
||||
try {
|
||||
$finTS = app(FinTS::class, ['config' => $this->importJob->configuration]);
|
||||
$finTS = app(FinTS::class, ['config' => $config]);
|
||||
$finTS->getAccount($config['fints_account']);
|
||||
} catch (FireflyException $e) {
|
||||
return new MessageBag([$e->getMessage()]);
|
||||
@ -89,19 +93,20 @@ class ChooseAccountHandler implements FinTSConfigurationInterface
|
||||
foreach ($this->accountRepository->getAccountsByType([AccountType::ASSET]) as $localAccount) {
|
||||
$display_name = $localAccount->name;
|
||||
if ($localAccount->iban) {
|
||||
$display_name .= " - $localAccount->iban";
|
||||
$display_name .= sprintf(' - %s', $localAccount->iban);
|
||||
}
|
||||
$localAccounts[$localAccount->id] = $display_name;
|
||||
}
|
||||
|
||||
$data = [
|
||||
'fints_accounts' => $finTSAccountsData,
|
||||
'fints_account' => $this->importJob->configuration['fints_account'] ?? null,
|
||||
'fints_account' => $this->importJob->configuration['fints_account'] ?? null,
|
||||
'local_accounts' => $localAccounts,
|
||||
'local_account' => $this->importJob->configuration['local_account'] ?? null,
|
||||
'from_date' => $this->importJob->configuration['from_date'] ?? (new Carbon('now - 1 month'))->format('Y-m-d'),
|
||||
'to_date' => $this->importJob->configuration['to_date'] ?? (new Carbon('now'))->format('Y-m-d')
|
||||
'local_account' => $this->importJob->configuration['local_account'] ?? null,
|
||||
'from_date' => $this->importJob->configuration['from_date'] ?? (new Carbon('now - 1 month'))->format('Y-m-d'),
|
||||
'to_date' => $this->importJob->configuration['to_date'] ?? (new Carbon('now'))->format('Y-m-d'),
|
||||
];
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
@ -115,6 +120,4 @@ class ChooseAccountHandler implements FinTSConfigurationInterface
|
||||
$this->accountRepository = app(AccountRepositoryInterface::class);
|
||||
$this->repository->setUser($importJob->user);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/**
|
||||
* FinTSConfigurationInterface.php
|
||||
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
||||
* Copyright (c) 2018 https://github.com/bnw
|
||||
*
|
||||
* This file is part of Firefly III.
|
||||
*
|
||||
@ -25,6 +25,9 @@ namespace FireflyIII\Support\Import\JobConfiguration\FinTS;
|
||||
use FireflyIII\Models\ImportJob;
|
||||
use Illuminate\Support\MessageBag;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
interface FinTSConfigurationInterface
|
||||
{
|
||||
/**
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/**
|
||||
* NewFinTSJobHandler.php
|
||||
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
||||
* Copyright (c) 2018 https://github.com/bnw
|
||||
*
|
||||
* This file is part of Firefly III.
|
||||
*
|
||||
@ -31,6 +31,10 @@ use FireflyIII\Support\FinTS\FinTS;
|
||||
use Illuminate\Support\Facades\Crypt;
|
||||
use Illuminate\Support\MessageBag;
|
||||
|
||||
/**
|
||||
*
|
||||
* Class NewFinTSJobHandler
|
||||
*/
|
||||
class NewFinTSJobHandler implements FinTSConfigurationInterface
|
||||
{
|
||||
/** @var ImportJob */
|
||||
@ -60,14 +64,14 @@ class NewFinTSJobHandler implements FinTSConfigurationInterface
|
||||
|
||||
$incomplete = false;
|
||||
foreach ($config as $value) {
|
||||
$incomplete = $value === '' or $incomplete;
|
||||
$incomplete = '' === $value or $incomplete;
|
||||
}
|
||||
if ($incomplete) {
|
||||
return new MessageBag([trans('import.incomplete_fints_form')]);
|
||||
}
|
||||
|
||||
$finTS = app(FinTS::class, ['config' => $this->importJob->configuration]);
|
||||
if (($checkConnection = $finTS->checkConnection()) !== true) {
|
||||
if (true !== ($checkConnection = $finTS->checkConnection())) {
|
||||
return new MessageBag([trans('import.fints_connection_failed', ['originalError' => $checkConnection])]);
|
||||
}
|
||||
|
||||
@ -84,11 +88,12 @@ class NewFinTSJobHandler implements FinTSConfigurationInterface
|
||||
public function getNextData(): array
|
||||
{
|
||||
$config = $this->importJob->configuration;
|
||||
|
||||
return [
|
||||
'fints_url' => $config['fints_url'] ?? '',
|
||||
'fints_port' => $config['fints_port'] ?? '443',
|
||||
'fints_url' => $config['fints_url'] ?? '',
|
||||
'fints_port' => $config['fints_port'] ?? '443',
|
||||
'fints_bank_code' => $config['fints_bank_code'] ?? '',
|
||||
'fints_username' => $config['fints_username'] ?? ''
|
||||
'fints_username' => $config['fints_username'] ?? '',
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -1,34 +1,92 @@
|
||||
<?php
|
||||
/**
|
||||
* StageImportDataHandler.php
|
||||
* Copyright (c) 2018 https://github.com/bnw
|
||||
*
|
||||
* This file is part of Firefly III.
|
||||
*
|
||||
* Firefly III is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Firefly III is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace FireflyIII\Support\Import\Routine\FinTS;
|
||||
|
||||
|
||||
use Fhp\Model\StatementOfAccount\Transaction as FinTSTransaction;
|
||||
use Fhp\Model\StatementOfAccount\Transaction;
|
||||
use Fhp\Model\StatementOfAccount\Transaction as FinTSTransaction;
|
||||
use FireflyIII\Exceptions\FireflyException;
|
||||
use FireflyIII\Models\Account as LocalAccount;
|
||||
use FireflyIII\Models\AccountType;
|
||||
use FireflyIII\Models\ImportJob;
|
||||
use FireflyIII\Models\TransactionType;
|
||||
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
||||
use FireflyIII\Repositories\ImportJob\ImportJobRepositoryInterface;
|
||||
use FireflyIII\Support\FinTS\FinTS;
|
||||
use FireflyIII\Models\Account as LocalAccount;
|
||||
use FireflyIII\Support\Import\Routine\File\OpposingAccountMapper;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
/**
|
||||
*
|
||||
* Class StageImportDataHandler
|
||||
*/
|
||||
class StageImportDataHandler
|
||||
{
|
||||
/** @var AccountRepositoryInterface */
|
||||
private $accountRepository;
|
||||
/** @var ImportJob */
|
||||
private $importJob;
|
||||
/** @var OpposingAccountMapper */
|
||||
private $mapper;
|
||||
/** @var ImportJobRepositoryInterface */
|
||||
private $repository;
|
||||
/** @var array */
|
||||
private $transactions;
|
||||
/** @var OpposingAccountMapper */
|
||||
private $mapper;
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getTransactions(): array
|
||||
{
|
||||
return $this->transactions;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws FireflyException
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
Log::debug('Now in StageImportDataHandler::run()');
|
||||
|
||||
$localAccount = $this->accountRepository->findNull($this->importJob->configuration['local_account']);
|
||||
if (null === $localAccount) {
|
||||
throw new FireflyException(sprintf('Cannot find Firefly account with id #%d ' , $this->importJob->configuration['local_account']));
|
||||
}
|
||||
$finTS = app(FinTS::class, ['config' => $this->importJob->configuration]);
|
||||
$fintTSAccount = $finTS->getAccount($this->importJob->configuration['fints_account']);
|
||||
$statementOfAccount = $finTS->getStatementOfAccount(
|
||||
$fintTSAccount, new \DateTime($this->importJob->configuration['from_date']), new \DateTime($this->importJob->configuration['to_date'])
|
||||
);
|
||||
$collection = [];
|
||||
foreach ($statementOfAccount->getStatements() as $statement) {
|
||||
foreach ($statement->getTransactions() as $transaction) {
|
||||
$collection[] = $this->convertTransaction($transaction, $localAccount);
|
||||
}
|
||||
}
|
||||
|
||||
$this->transactions = $collection;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ImportJob $importJob
|
||||
@ -48,40 +106,23 @@ class StageImportDataHandler
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws FireflyException
|
||||
* @param FinTSTransaction $transaction
|
||||
* @param LocalAccount $source
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
Log::debug('Now in StageImportDataHandler::run()');
|
||||
|
||||
$localAccount = $this->accountRepository->findNull($this->importJob->configuration['local_account']);
|
||||
if ($localAccount === null) {
|
||||
throw new FireflyException('Cannot find Firefly account with id ' . $this->importJob->configuration['local_account']);
|
||||
}
|
||||
$finTS = app(FinTS::class, ['config' => $this->importJob->configuration]);
|
||||
$fintTSAccount = $finTS->getAccount($this->importJob->configuration['fints_account']);
|
||||
$statementOfAccount = $finTS->getStatementOfAccount($fintTSAccount, new \DateTime($this->importJob->configuration['from_date']), new \DateTime($this->importJob->configuration['to_date']));
|
||||
$collection = [];
|
||||
foreach ($statementOfAccount->getStatements() as $statement) {
|
||||
foreach ($statement->getTransactions() as $transaction) {
|
||||
$collection[] = $this->convertTransaction($transaction, $localAccount);
|
||||
}
|
||||
}
|
||||
|
||||
$this->transactions = $collection;
|
||||
}
|
||||
|
||||
private function convertTransaction(FinTSTransaction $transaction, LocalAccount $source): array
|
||||
{
|
||||
Log::debug(sprintf('Start converting transaction %s', $transaction->getDescription1()));
|
||||
|
||||
$amount = (string) $transaction->getAmount();
|
||||
$amount = (string)$transaction->getAmount();
|
||||
$debitOrCredit = $transaction->getCreditDebit();
|
||||
|
||||
// assume deposit.
|
||||
$type = TransactionType::DEPOSIT;
|
||||
Log::debug(sprintf('Amount is %s', $amount));
|
||||
if ($debitOrCredit == Transaction::CD_CREDIT) {
|
||||
$type = TransactionType::DEPOSIT;
|
||||
} else {
|
||||
|
||||
// inverse if not.
|
||||
if ($debitOrCredit !== Transaction::CD_CREDIT) {
|
||||
$type = TransactionType::WITHDRAWAL;
|
||||
$amount = bcmul($amount, '-1');
|
||||
}
|
||||
@ -91,7 +132,7 @@ class StageImportDataHandler
|
||||
$amount,
|
||||
['iban' => $transaction->getAccountNumber(), 'name' => $transaction->getName()]
|
||||
);
|
||||
if ($debitOrCredit == Transaction::CD_CREDIT) {
|
||||
if ($debitOrCredit === Transaction::CD_CREDIT) {
|
||||
[$source, $destination] = [$destination, $source];
|
||||
}
|
||||
|
||||
@ -101,52 +142,44 @@ class StageImportDataHandler
|
||||
}
|
||||
|
||||
$storeData = [
|
||||
'user' => $this->importJob->user_id,
|
||||
'type' => $type,
|
||||
'date' => $transaction->getValutaDate()->format('Y-m-d'),
|
||||
'description' => $transaction->getDescription1(),
|
||||
'piggy_bank_id' => null,
|
||||
'piggy_bank_name' => null,
|
||||
'bill_id' => null,
|
||||
'bill_name' => null,
|
||||
'tags' => [],
|
||||
'user' => $this->importJob->user_id,
|
||||
'type' => $type,
|
||||
'date' => $transaction->getValutaDate()->format('Y-m-d'),
|
||||
'description' => $transaction->getDescription1(),
|
||||
'piggy_bank_id' => null,
|
||||
'piggy_bank_name' => null,
|
||||
'bill_id' => null,
|
||||
'bill_name' => null,
|
||||
'tags' => [],
|
||||
'internal_reference' => null,
|
||||
'external_id' => null,
|
||||
'notes' => null,
|
||||
'bunq_payment_id' => null,
|
||||
'original-source' => sprintf('fints-v%s', config('firefly.version')),
|
||||
'transactions' => [
|
||||
'external_id' => null,
|
||||
'notes' => null,
|
||||
'bunq_payment_id' => null,
|
||||
'original-source' => sprintf('fints-v%s', config('firefly.version')),
|
||||
'transactions' => [
|
||||
// single transaction:
|
||||
[
|
||||
'description' => null,
|
||||
'amount' => $amount,
|
||||
'currency_id' => null,
|
||||
'currency_code' => 'EUR',
|
||||
'foreign_amount' => null,
|
||||
'foreign_currency_id' => null,
|
||||
'description' => null,
|
||||
'amount' => $amount,
|
||||
'currency_id' => null,
|
||||
'currency_code' => 'EUR',
|
||||
'foreign_amount' => null,
|
||||
'foreign_currency_id' => null,
|
||||
'foreign_currency_code' => null,
|
||||
'budget_id' => null,
|
||||
'budget_name' => null,
|
||||
'category_id' => null,
|
||||
'category_name' => null,
|
||||
'source_id' => $source->id,
|
||||
'source_name' => null,
|
||||
'destination_id' => $destination->id,
|
||||
'destination_name' => null,
|
||||
'reconciled' => false,
|
||||
'identifier' => 0,
|
||||
'budget_id' => null,
|
||||
'budget_name' => null,
|
||||
'category_id' => null,
|
||||
'category_name' => null,
|
||||
'source_id' => $source->id,
|
||||
'source_name' => null,
|
||||
'destination_id' => $destination->id,
|
||||
'destination_name' => null,
|
||||
'reconciled' => false,
|
||||
'identifier' => 0,
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
return $storeData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getTransactions(): array
|
||||
{
|
||||
return $this->transactions;
|
||||
}
|
||||
}
|
305
composer.lock
generated
305
composer.lock
generated
@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "9297702ac3c2fc200aac5fc68821bdd6",
|
||||
"content-hash": "a15b5b4991745824880345223530fa9e",
|
||||
"packages": [
|
||||
{
|
||||
"name": "bacon/bacon-qr-code",
|
||||
@ -1022,16 +1022,16 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/framework",
|
||||
"version": "v5.7.6",
|
||||
"version": "v5.7.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/framework.git",
|
||||
"reference": "93e761bb5367166ce98ba908d5eb0edd6be76792"
|
||||
"reference": "763b64a43ebb6042e463aab4214d4cc9722147be"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/93e761bb5367166ce98ba908d5eb0edd6be76792",
|
||||
"reference": "93e761bb5367166ce98ba908d5eb0edd6be76792",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/763b64a43ebb6042e463aab4214d4cc9722147be",
|
||||
"reference": "763b64a43ebb6042e463aab4214d4cc9722147be",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -1043,6 +1043,7 @@
|
||||
"league/flysystem": "^1.0.8",
|
||||
"monolog/monolog": "^1.12",
|
||||
"nesbot/carbon": "^1.26.3",
|
||||
"opis/closure": "^3.1",
|
||||
"php": "^7.1.3",
|
||||
"psr/container": "^1.0",
|
||||
"psr/simple-cache": "^1.0",
|
||||
@ -1159,7 +1160,7 @@
|
||||
"framework",
|
||||
"laravel"
|
||||
],
|
||||
"time": "2018-09-25T14:29:00+00:00"
|
||||
"time": "2018-10-04T14:47:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/passport",
|
||||
@ -1838,6 +1839,41 @@
|
||||
],
|
||||
"time": "2017-06-19T01:22:40+00:00"
|
||||
},
|
||||
{
|
||||
"name": "mschindler83/fints-hbci-php",
|
||||
"version": "1.0.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/mschindler83/fints-hbci-php.git",
|
||||
"reference": "e58cb825c178d4c39a8974a9dd93abbc8094551f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/mschindler83/fints-hbci-php/zipball/e58cb825c178d4c39a8974a9dd93abbc8094551f",
|
||||
"reference": "e58cb825c178d4c39a8974a9dd93abbc8094551f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.2",
|
||||
"psr/log": "~1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"monolog/monolog": "Allow sending log messages to a variety of different handlers"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Fhp": "lib/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "PHP Library for the protocols fints and hbci",
|
||||
"homepage": "http://fints-hbci-php.markus-schindler.de",
|
||||
"time": "2017-02-15T13:48:21+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nesbot/carbon",
|
||||
"version": "1.34.0",
|
||||
@ -1893,6 +1929,67 @@
|
||||
],
|
||||
"time": "2018-09-20T19:36:25+00:00"
|
||||
},
|
||||
{
|
||||
"name": "opis/closure",
|
||||
"version": "3.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/opis/closure.git",
|
||||
"reference": "d3209e46ad6c69a969b705df0738fd0dbe26ef9e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/opis/closure/zipball/d3209e46ad6c69a969b705df0738fd0dbe26ef9e",
|
||||
"reference": "d3209e46ad6c69a969b705df0738fd0dbe26ef9e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.4 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"jeremeamia/superclosure": "^2.0",
|
||||
"phpunit/phpunit": "^4.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Opis\\Closure\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"functions.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Marius Sarca",
|
||||
"email": "marius.sarca@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Sorin Sarca",
|
||||
"email": "sarca_sorin@hotmail.com"
|
||||
}
|
||||
],
|
||||
"description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.",
|
||||
"homepage": "https://opis.io/closure",
|
||||
"keywords": [
|
||||
"anonymous functions",
|
||||
"closure",
|
||||
"function",
|
||||
"serializable",
|
||||
"serialization",
|
||||
"serialize"
|
||||
],
|
||||
"time": "2018-10-02T13:36:53+00:00"
|
||||
},
|
||||
{
|
||||
"name": "paragonie/constant_time_encoding",
|
||||
"version": "v2.2.2",
|
||||
@ -2633,16 +2730,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/console",
|
||||
"version": "v4.1.4",
|
||||
"version": "v4.1.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/console.git",
|
||||
"reference": "ca80b8ced97cf07390078b29773dc384c39eee1f"
|
||||
"reference": "dc7122fe5f6113cfaba3b3de575d31112c9aa60b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/ca80b8ced97cf07390078b29773dc384c39eee1f",
|
||||
"reference": "ca80b8ced97cf07390078b29773dc384c39eee1f",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/dc7122fe5f6113cfaba3b3de575d31112c9aa60b",
|
||||
"reference": "dc7122fe5f6113cfaba3b3de575d31112c9aa60b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -2697,20 +2794,20 @@
|
||||
],
|
||||
"description": "Symfony Console Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-07-26T11:24:31+00:00"
|
||||
"time": "2018-10-03T08:15:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/css-selector",
|
||||
"version": "v4.1.4",
|
||||
"version": "v4.1.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/css-selector.git",
|
||||
"reference": "2a4df7618f869b456f9096781e78c57b509d76c7"
|
||||
"reference": "d67de79a70a27d93c92c47f37ece958bf8de4d8a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/css-selector/zipball/2a4df7618f869b456f9096781e78c57b509d76c7",
|
||||
"reference": "2a4df7618f869b456f9096781e78c57b509d76c7",
|
||||
"url": "https://api.github.com/repos/symfony/css-selector/zipball/d67de79a70a27d93c92c47f37ece958bf8de4d8a",
|
||||
"reference": "d67de79a70a27d93c92c47f37ece958bf8de4d8a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -2750,20 +2847,20 @@
|
||||
],
|
||||
"description": "Symfony CssSelector Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-07-26T09:10:45+00:00"
|
||||
"time": "2018-10-02T16:36:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/debug",
|
||||
"version": "v4.1.4",
|
||||
"version": "v4.1.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/debug.git",
|
||||
"reference": "47ead688f1f2877f3f14219670f52e4722ee7052"
|
||||
"reference": "e3f76ce6198f81994e019bb2b4e533e9de1b9b90"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/debug/zipball/47ead688f1f2877f3f14219670f52e4722ee7052",
|
||||
"reference": "47ead688f1f2877f3f14219670f52e4722ee7052",
|
||||
"url": "https://api.github.com/repos/symfony/debug/zipball/e3f76ce6198f81994e019bb2b4e533e9de1b9b90",
|
||||
"reference": "e3f76ce6198f81994e019bb2b4e533e9de1b9b90",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -2806,11 +2903,11 @@
|
||||
],
|
||||
"description": "Symfony Debug Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-08-03T11:13:38+00:00"
|
||||
"time": "2018-10-02T16:36:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher",
|
||||
"version": "v4.1.4",
|
||||
"version": "v4.1.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/event-dispatcher.git",
|
||||
@ -2873,16 +2970,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/finder",
|
||||
"version": "v4.1.4",
|
||||
"version": "v4.1.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/finder.git",
|
||||
"reference": "e162f1df3102d0b7472805a5a9d5db9fcf0a8068"
|
||||
"reference": "1f17195b44543017a9c9b2d437c670627e96ad06"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/e162f1df3102d0b7472805a5a9d5db9fcf0a8068",
|
||||
"reference": "e162f1df3102d0b7472805a5a9d5db9fcf0a8068",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/1f17195b44543017a9c9b2d437c670627e96ad06",
|
||||
"reference": "1f17195b44543017a9c9b2d437c670627e96ad06",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -2918,20 +3015,20 @@
|
||||
],
|
||||
"description": "Symfony Finder Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-07-26T11:24:31+00:00"
|
||||
"time": "2018-10-03T08:47:56+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-foundation",
|
||||
"version": "v4.1.4",
|
||||
"version": "v4.1.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-foundation.git",
|
||||
"reference": "3a5c91e133b220bb882b3cd773ba91bf39989345"
|
||||
"reference": "d528136617ff24f530e70df9605acc1b788b08d4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/3a5c91e133b220bb882b3cd773ba91bf39989345",
|
||||
"reference": "3a5c91e133b220bb882b3cd773ba91bf39989345",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/d528136617ff24f530e70df9605acc1b788b08d4",
|
||||
"reference": "d528136617ff24f530e70df9605acc1b788b08d4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -2972,20 +3069,20 @@
|
||||
],
|
||||
"description": "Symfony HttpFoundation Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-08-27T17:47:02+00:00"
|
||||
"time": "2018-10-03T08:48:45+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-kernel",
|
||||
"version": "v4.1.4",
|
||||
"version": "v4.1.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-kernel.git",
|
||||
"reference": "33de0a1ff2e1720096189e3ced682d7a4e8f5e35"
|
||||
"reference": "f5e7c15a5d010be0e16ce798594c5960451d4220"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/33de0a1ff2e1720096189e3ced682d7a4e8f5e35",
|
||||
"reference": "33de0a1ff2e1720096189e3ced682d7a4e8f5e35",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/f5e7c15a5d010be0e16ce798594c5960451d4220",
|
||||
"reference": "f5e7c15a5d010be0e16ce798594c5960451d4220",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -3059,7 +3156,7 @@
|
||||
],
|
||||
"description": "Symfony HttpKernel Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-08-28T06:17:42+00:00"
|
||||
"time": "2018-10-03T12:53:38+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
@ -3343,16 +3440,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/process",
|
||||
"version": "v4.1.4",
|
||||
"version": "v4.1.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/process.git",
|
||||
"reference": "86cdb930a6a855b0ab35fb60c1504cb36184f843"
|
||||
"reference": "ee33c0322a8fee0855afcc11fff81e6b1011b529"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/process/zipball/86cdb930a6a855b0ab35fb60c1504cb36184f843",
|
||||
"reference": "86cdb930a6a855b0ab35fb60c1504cb36184f843",
|
||||
"url": "https://api.github.com/repos/symfony/process/zipball/ee33c0322a8fee0855afcc11fff81e6b1011b529",
|
||||
"reference": "ee33c0322a8fee0855afcc11fff81e6b1011b529",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -3388,7 +3485,7 @@
|
||||
],
|
||||
"description": "Symfony Process Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-08-03T11:13:38+00:00"
|
||||
"time": "2018-10-02T12:40:59+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/psr-http-message-bridge",
|
||||
@ -3453,16 +3550,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/routing",
|
||||
"version": "v4.1.4",
|
||||
"version": "v4.1.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/routing.git",
|
||||
"reference": "a5784c2ec4168018c87b38f0e4f39d2278499f51"
|
||||
"reference": "537803f0bdfede36b9acef052d2e4d447d9fa0e9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/routing/zipball/a5784c2ec4168018c87b38f0e4f39d2278499f51",
|
||||
"reference": "a5784c2ec4168018c87b38f0e4f39d2278499f51",
|
||||
"url": "https://api.github.com/repos/symfony/routing/zipball/537803f0bdfede36b9acef052d2e4d447d9fa0e9",
|
||||
"reference": "537803f0bdfede36b9acef052d2e4d447d9fa0e9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -3526,20 +3623,20 @@
|
||||
"uri",
|
||||
"url"
|
||||
],
|
||||
"time": "2018-08-03T07:58:40+00:00"
|
||||
"time": "2018-10-02T12:40:59+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation",
|
||||
"version": "v4.1.4",
|
||||
"version": "v4.1.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/translation.git",
|
||||
"reference": "fa2182669f7983b7aa5f1a770d053f79f0ef144f"
|
||||
"reference": "9f0b61e339160a466ebcde167a6c5521c810e304"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/fa2182669f7983b7aa5f1a770d053f79f0ef144f",
|
||||
"reference": "fa2182669f7983b7aa5f1a770d053f79f0ef144f",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/9f0b61e339160a466ebcde167a6c5521c810e304",
|
||||
"reference": "9f0b61e339160a466ebcde167a6c5521c810e304",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -3595,20 +3692,20 @@
|
||||
],
|
||||
"description": "Symfony Translation Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-08-07T12:45:11+00:00"
|
||||
"time": "2018-10-02T16:36:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/var-dumper",
|
||||
"version": "v4.1.4",
|
||||
"version": "v4.1.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/var-dumper.git",
|
||||
"reference": "a05426e27294bba7b0226ffc17dd01a3c6ef9777"
|
||||
"reference": "60319b45653580b0cdacca499344577d87732f16"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/a05426e27294bba7b0226ffc17dd01a3c6ef9777",
|
||||
"reference": "a05426e27294bba7b0226ffc17dd01a3c6ef9777",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/60319b45653580b0cdacca499344577d87732f16",
|
||||
"reference": "60319b45653580b0cdacca499344577d87732f16",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -3670,7 +3767,7 @@
|
||||
"debug",
|
||||
"dump"
|
||||
],
|
||||
"time": "2018-08-02T09:24:26+00:00"
|
||||
"time": "2018-10-02T16:36:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "tijsverkoyen/css-to-inline-styles",
|
||||
@ -4656,16 +4753,16 @@
|
||||
},
|
||||
{
|
||||
"name": "mockery/mockery",
|
||||
"version": "1.1.0",
|
||||
"version": "1.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/mockery/mockery.git",
|
||||
"reference": "99e29d3596b16dabe4982548527d5ddf90232e99"
|
||||
"reference": "100633629bf76d57430b86b7098cd6beb996a35a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/mockery/mockery/zipball/99e29d3596b16dabe4982548527d5ddf90232e99",
|
||||
"reference": "99e29d3596b16dabe4982548527d5ddf90232e99",
|
||||
"url": "https://api.github.com/repos/mockery/mockery/zipball/100633629bf76d57430b86b7098cd6beb996a35a",
|
||||
"reference": "100633629bf76d57430b86b7098cd6beb996a35a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -4674,8 +4771,7 @@
|
||||
"php": ">=5.6.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpdocumentor/phpdocumentor": "^2.9",
|
||||
"phpunit/phpunit": "~5.7.10|~6.5"
|
||||
"phpunit/phpunit": "~5.7.10|~6.5|~7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@ -4718,7 +4814,7 @@
|
||||
"test double",
|
||||
"testing"
|
||||
],
|
||||
"time": "2018-05-08T08:54:48+00:00"
|
||||
"time": "2018-10-02T21:52:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "myclabs/deep-copy",
|
||||
@ -5170,16 +5266,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-code-coverage",
|
||||
"version": "6.0.7",
|
||||
"version": "6.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
||||
"reference": "865662550c384bc1db7e51d29aeda1c2c161d69a"
|
||||
"reference": "848f78b3309780fef7ec8c4666b7ab4e6b09b22f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/865662550c384bc1db7e51d29aeda1c2c161d69a",
|
||||
"reference": "865662550c384bc1db7e51d29aeda1c2c161d69a",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/848f78b3309780fef7ec8c4666b7ab4e6b09b22f",
|
||||
"reference": "848f78b3309780fef7ec8c4666b7ab4e6b09b22f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -5229,7 +5325,7 @@
|
||||
"testing",
|
||||
"xunit"
|
||||
],
|
||||
"time": "2018-06-01T07:51:50+00:00"
|
||||
"time": "2018-10-04T03:41:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-file-iterator",
|
||||
@ -5422,16 +5518,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit",
|
||||
"version": "7.3.5",
|
||||
"version": "7.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||
"reference": "7b331efabbb628c518c408fdfcaf571156775de2"
|
||||
"reference": "f3837fa1e07758057ae06e8ddec6d06ba183f126"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/7b331efabbb628c518c408fdfcaf571156775de2",
|
||||
"reference": "7b331efabbb628c518c408fdfcaf571156775de2",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f3837fa1e07758057ae06e8ddec6d06ba183f126",
|
||||
"reference": "f3837fa1e07758057ae06e8ddec6d06ba183f126",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -5456,7 +5552,7 @@
|
||||
"sebastian/exporter": "^3.1",
|
||||
"sebastian/global-state": "^2.0",
|
||||
"sebastian/object-enumerator": "^3.0.3",
|
||||
"sebastian/resource-operations": "^1.0",
|
||||
"sebastian/resource-operations": "^2.0",
|
||||
"sebastian/version": "^2.0.1"
|
||||
},
|
||||
"conflict": {
|
||||
@ -5476,7 +5572,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "7.3-dev"
|
||||
"dev-master": "7.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -5502,7 +5598,7 @@
|
||||
"testing",
|
||||
"xunit"
|
||||
],
|
||||
"time": "2018-09-08T15:14:29+00:00"
|
||||
"time": "2018-10-05T04:05:24+00:00"
|
||||
},
|
||||
{
|
||||
"name": "roave/security-advisories",
|
||||
@ -5510,6 +5606,7 @@
|
||||
"conflict": {
|
||||
"3f/pygmentize": "<1.2",
|
||||
"adodb/adodb-php": "<5.20.12",
|
||||
"alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1",
|
||||
"amphp/artax": "<1.0.6|>=2,<2.0.6",
|
||||
"amphp/http": "<1.0.1",
|
||||
"asymmetricrypt/asymmetricrypt": ">=0,<9.9.99",
|
||||
@ -5677,7 +5774,7 @@
|
||||
}
|
||||
],
|
||||
"description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it",
|
||||
"time": "2018-09-17T20:20:31+00:00"
|
||||
"time": "2018-10-02T16:19:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/code-unit-reverse-lookup",
|
||||
@ -6159,25 +6256,25 @@
|
||||
},
|
||||
{
|
||||
"name": "sebastian/resource-operations",
|
||||
"version": "1.0.0",
|
||||
"version": "2.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/resource-operations.git",
|
||||
"reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
|
||||
"reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
|
||||
"reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
|
||||
"reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.6.0"
|
||||
"php": "^7.1"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
"dev-master": "2.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -6197,7 +6294,7 @@
|
||||
],
|
||||
"description": "Provides a list of PHP built-in functions that operate on resources",
|
||||
"homepage": "https://www.github.com/sebastianbergmann/resource-operations",
|
||||
"time": "2015-07-28T20:34:47+00:00"
|
||||
"time": "2018-10-04T04:07:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/version",
|
||||
@ -6337,16 +6434,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/config",
|
||||
"version": "v4.1.4",
|
||||
"version": "v4.1.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/config.git",
|
||||
"reference": "76015a3cc372b14d00040ff58e18e29f69eba717"
|
||||
"reference": "b3d4d7b567d7a49e6dfafb6d4760abc921177c96"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/config/zipball/76015a3cc372b14d00040ff58e18e29f69eba717",
|
||||
"reference": "76015a3cc372b14d00040ff58e18e29f69eba717",
|
||||
"url": "https://api.github.com/repos/symfony/config/zipball/b3d4d7b567d7a49e6dfafb6d4760abc921177c96",
|
||||
"reference": "b3d4d7b567d7a49e6dfafb6d4760abc921177c96",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -6396,20 +6493,20 @@
|
||||
],
|
||||
"description": "Symfony Config Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-08-08T06:37:38+00:00"
|
||||
"time": "2018-09-08T13:24:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/filesystem",
|
||||
"version": "v4.1.4",
|
||||
"version": "v4.1.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/filesystem.git",
|
||||
"reference": "c0f5f62db218fa72195b8b8700e4b9b9cf52eb5e"
|
||||
"reference": "596d12b40624055c300c8b619755b748ca5cf0b5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/c0f5f62db218fa72195b8b8700e4b9b9cf52eb5e",
|
||||
"reference": "c0f5f62db218fa72195b8b8700e4b9b9cf52eb5e",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/596d12b40624055c300c8b619755b748ca5cf0b5",
|
||||
"reference": "596d12b40624055c300c8b619755b748ca5cf0b5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -6446,20 +6543,20 @@
|
||||
],
|
||||
"description": "Symfony Filesystem Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-08-18T16:52:46+00:00"
|
||||
"time": "2018-10-02T12:40:59+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/stopwatch",
|
||||
"version": "v4.1.4",
|
||||
"version": "v4.1.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/stopwatch.git",
|
||||
"reference": "966c982df3cca41324253dc0c7ffe76b6076b705"
|
||||
"reference": "5bfc064125b73ff81229e19381ce1c34d3416f4b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/stopwatch/zipball/966c982df3cca41324253dc0c7ffe76b6076b705",
|
||||
"reference": "966c982df3cca41324253dc0c7ffe76b6076b705",
|
||||
"url": "https://api.github.com/repos/symfony/stopwatch/zipball/5bfc064125b73ff81229e19381ce1c34d3416f4b",
|
||||
"reference": "5bfc064125b73ff81229e19381ce1c34d3416f4b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -6495,20 +6592,20 @@
|
||||
],
|
||||
"description": "Symfony Stopwatch Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-07-26T11:00:49+00:00"
|
||||
"time": "2018-10-02T12:40:59+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
"version": "v4.1.4",
|
||||
"version": "v4.1.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/yaml.git",
|
||||
"reference": "b832cc289608b6d305f62149df91529a2ab3c314"
|
||||
"reference": "367e689b2fdc19965be435337b50bc8adf2746c9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/b832cc289608b6d305f62149df91529a2ab3c314",
|
||||
"reference": "b832cc289608b6d305f62149df91529a2ab3c314",
|
||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/367e689b2fdc19965be435337b50bc8adf2746c9",
|
||||
"reference": "367e689b2fdc19965be435337b50bc8adf2746c9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -6554,7 +6651,7 @@
|
||||
],
|
||||
"description": "Symfony Yaml Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-08-18T16:52:46+00:00"
|
||||
"time": "2018-10-02T16:36:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "theseer/tokenizer",
|
||||
|
@ -231,7 +231,7 @@ return [
|
||||
'local_account' => 'Firefly III account',
|
||||
'from_date' => 'Date from',
|
||||
'to_date' => 'Date to',
|
||||
|
||||
|
||||
|
||||
'due_date' => 'Due date',
|
||||
'payment_date' => 'Payment date',
|
||||
|
@ -47,6 +47,9 @@ return [
|
||||
'button_yodlee' => 'Import using Yodlee',
|
||||
'button_quovo' => 'Import using Quovo',
|
||||
'button_ynab' => 'Import from You Need A Budget',
|
||||
'button_fints' => 'Import using FinTS',
|
||||
|
||||
|
||||
// global config box (index)
|
||||
'global_config_title' => 'Global import configuration',
|
||||
'global_config_text' => 'In the future, this box will feature preferences that apply to ALL import providers above.',
|
||||
@ -201,118 +204,118 @@ return [
|
||||
'spectre_extra_key_transactions_count' => 'Transaction count',
|
||||
//job configuration for finTS
|
||||
'fints_connection_failed' => 'An error occurred while trying to connecting to your bank. Please mak sure that all the data you entered is correct. Original error message: :originalError',
|
||||
'button_fints' => 'FinTS',
|
||||
'job_config_fints_url_help' => 'E.g. https://banking-dkb.s-fints-pt-dkb.de/fints30',
|
||||
'job_config_fints_username_help' => 'For many banks this is your account number.',
|
||||
'job_config_fints_port_help' => 'The default port is 443.',
|
||||
'job_config_fints_account_help' => 'Choose the bank account for which you want to import transactions.',
|
||||
'job_config_local_account_help' => 'Choose the Firefly III account corresponding to your bank account chosen above.',
|
||||
|
||||
'job_config_fints_url_help' => 'E.g. https://banking-dkb.s-fints-pt-dkb.de/fints30',
|
||||
'job_config_fints_username_help' => 'For many banks this is your account number.',
|
||||
'job_config_fints_port_help' => 'The default port is 443.',
|
||||
'job_config_fints_account_help' => 'Choose the bank account for which you want to import transactions.',
|
||||
'job_config_local_account_help' => 'Choose the Firefly III account corresponding to your bank account chosen above.',
|
||||
// specifics:
|
||||
'specific_ing_name' => 'ING NL',
|
||||
'specific_ing_descr' => 'Create better descriptions in ING exports',
|
||||
'specific_sns_name' => 'SNS / Volksbank NL',
|
||||
'specific_sns_descr' => 'Trim quotes from SNS / Volksbank export files',
|
||||
'specific_abn_name' => 'ABN AMRO NL',
|
||||
'specific_abn_descr' => 'Fixes potential problems with ABN AMRO files',
|
||||
'specific_rabo_name' => 'Rabobank NL',
|
||||
'specific_rabo_descr' => 'Fixes potential problems with Rabobank files',
|
||||
'specific_pres_name' => 'President\'s Choice Financial CA',
|
||||
'specific_pres_descr' => 'Fixes potential problems with PC files',
|
||||
'specific_ing_name' => 'ING NL',
|
||||
'specific_ing_descr' => 'Create better descriptions in ING exports',
|
||||
'specific_sns_name' => 'SNS / Volksbank NL',
|
||||
'specific_sns_descr' => 'Trim quotes from SNS / Volksbank export files',
|
||||
'specific_abn_name' => 'ABN AMRO NL',
|
||||
'specific_abn_descr' => 'Fixes potential problems with ABN AMRO files',
|
||||
'specific_rabo_name' => 'Rabobank NL',
|
||||
'specific_rabo_descr' => 'Fixes potential problems with Rabobank files',
|
||||
'specific_pres_name' => 'President\'s Choice Financial CA',
|
||||
'specific_pres_descr' => 'Fixes potential problems with PC files',
|
||||
// job configuration for file provider (stage: roles)
|
||||
'job_config_roles_title' => 'Import setup (3/4) - Define each column\'s role',
|
||||
'job_config_roles_text' => 'Each column in your CSV file contains certain data. Please indicate what kind of data the importer should expect. The option to "map" data means that you will link each entry found in the column to a value in your database. An often mapped column is the column that contains the IBAN of the opposing account. That can be easily matched to IBAN\'s present in your database already.',
|
||||
'job_config_roles_submit' => 'Continue',
|
||||
'job_config_roles_column_name' => 'Name of column',
|
||||
'job_config_roles_column_example' => 'Column example data',
|
||||
'job_config_roles_column_role' => 'Column data meaning',
|
||||
'job_config_roles_do_map_value' => 'Map these values',
|
||||
'job_config_roles_no_example' => 'No example data available',
|
||||
'job_config_roles_fa_warning' => 'If you mark a column as containing an amount in a foreign currency, you must also set the column that contains which currency it is.',
|
||||
'job_config_roles_rwarning' => 'At the very least, mark one column as the amount-column. It is advisable to also select a column for the description, date and the opposing account.',
|
||||
'job_config_roles_colum_count' => 'Column',
|
||||
'job_config_roles_title' => 'Import setup (3/4) - Define each column\'s role',
|
||||
'job_config_roles_text' => 'Each column in your CSV file contains certain data. Please indicate what kind of data the importer should expect. The option to "map" data means that you will link each entry found in the column to a value in your database. An often mapped column is the column that contains the IBAN of the opposing account. That can be easily matched to IBAN\'s present in your database already.',
|
||||
'job_config_roles_submit' => 'Continue',
|
||||
'job_config_roles_column_name' => 'Name of column',
|
||||
'job_config_roles_column_example' => 'Column example data',
|
||||
'job_config_roles_column_role' => 'Column data meaning',
|
||||
'job_config_roles_do_map_value' => 'Map these values',
|
||||
'job_config_roles_no_example' => 'No example data available',
|
||||
'job_config_roles_fa_warning' => 'If you mark a column as containing an amount in a foreign currency, you must also set the column that contains which currency it is.',
|
||||
'job_config_roles_rwarning' => 'At the very least, mark one column as the amount-column. It is advisable to also select a column for the description, date and the opposing account.',
|
||||
'job_config_roles_colum_count' => 'Column',
|
||||
// job config for the file provider (stage: mapping):
|
||||
'job_config_map_title' => 'Import setup (4/4) - Connect import data to Firefly III data',
|
||||
'job_config_map_text' => 'In the following tables, the left value shows you information found in your uploaded file. It is your task to map this value, if possible, to a value already present in your database. Firefly will stick to this mapping. If there is no value to map to, or you do not wish to map the specific value, select nothing.',
|
||||
'job_config_map_nothing' => 'There is no data present in your file that you can map to existing values. Please press "Start the import" to continue.',
|
||||
'job_config_field_value' => 'Field value',
|
||||
'job_config_field_mapped' => 'Mapped to',
|
||||
'map_do_not_map' => '(do not map)',
|
||||
'job_config_map_submit' => 'Start the import',
|
||||
'job_config_map_title' => 'Import setup (4/4) - Connect import data to Firefly III data',
|
||||
'job_config_map_text' => 'In the following tables, the left value shows you information found in your uploaded file. It is your task to map this value, if possible, to a value already present in your database. Firefly will stick to this mapping. If there is no value to map to, or you do not wish to map the specific value, select nothing.',
|
||||
'job_config_map_nothing' => 'There is no data present in your file that you can map to existing values. Please press "Start the import" to continue.',
|
||||
'job_config_field_value' => 'Field value',
|
||||
'job_config_field_mapped' => 'Mapped to',
|
||||
'map_do_not_map' => '(do not map)',
|
||||
'job_config_map_submit' => 'Start the import',
|
||||
|
||||
|
||||
// import status page:
|
||||
'import_with_key' => 'Import with key \':key\'',
|
||||
'status_wait_title' => 'Please hold...',
|
||||
'status_wait_text' => 'This box will disappear in a moment.',
|
||||
'status_running_title' => 'The import is running',
|
||||
'status_job_running' => 'Please wait, running the import...',
|
||||
'status_job_storing' => 'Please wait, storing data...',
|
||||
'status_job_rules' => 'Please wait, running rules...',
|
||||
'status_fatal_title' => 'Fatal error',
|
||||
'status_fatal_text' => 'The import has suffered from an error it could not recover from. Apologies!',
|
||||
'status_fatal_more' => 'This (possibly very cryptic) error message is complemented by log files, which you can find on your hard drive, or in the Docker container where you run Firefly III from.',
|
||||
'status_finished_title' => 'Import finished',
|
||||
'status_finished_text' => 'The import has finished.',
|
||||
'finished_with_errors' => 'There were some errors during the import. Please review them carefully.',
|
||||
'unknown_import_result' => 'Unknown import result',
|
||||
'result_no_transactions' => 'No transactions have been imported. Perhaps they were all duplicates is simply no transactions where present to be imported. Perhaps the log files can tell you what happened. If you import data regularly, this is normal.',
|
||||
'result_one_transaction' => 'Exactly one transaction has been imported. It is stored under tag <a href=":route" class="label label-success" style="font-size:100%;font-weight:normal;">:tag</a> where you can inspect it further.',
|
||||
'result_many_transactions' => 'Firefly III has imported :count transactions. They are stored under tag <a href=":route" class="label label-success" style="font-size:100%;font-weight:normal;">:tag</a> where you can inspect them further.',
|
||||
'import_with_key' => 'Import with key \':key\'',
|
||||
'status_wait_title' => 'Please hold...',
|
||||
'status_wait_text' => 'This box will disappear in a moment.',
|
||||
'status_running_title' => 'The import is running',
|
||||
'status_job_running' => 'Please wait, running the import...',
|
||||
'status_job_storing' => 'Please wait, storing data...',
|
||||
'status_job_rules' => 'Please wait, running rules...',
|
||||
'status_fatal_title' => 'Fatal error',
|
||||
'status_fatal_text' => 'The import has suffered from an error it could not recover from. Apologies!',
|
||||
'status_fatal_more' => 'This (possibly very cryptic) error message is complemented by log files, which you can find on your hard drive, or in the Docker container where you run Firefly III from.',
|
||||
'status_finished_title' => 'Import finished',
|
||||
'status_finished_text' => 'The import has finished.',
|
||||
'finished_with_errors' => 'There were some errors during the import. Please review them carefully.',
|
||||
'unknown_import_result' => 'Unknown import result',
|
||||
'result_no_transactions' => 'No transactions have been imported. Perhaps they were all duplicates is simply no transactions where present to be imported. Perhaps the log files can tell you what happened. If you import data regularly, this is normal.',
|
||||
'result_one_transaction' => 'Exactly one transaction has been imported. It is stored under tag <a href=":route" class="label label-success" style="font-size:100%;font-weight:normal;">:tag</a> where you can inspect it further.',
|
||||
'result_many_transactions' => 'Firefly III has imported :count transactions. They are stored under tag <a href=":route" class="label label-success" style="font-size:100%;font-weight:normal;">:tag</a> where you can inspect them further.',
|
||||
|
||||
|
||||
// general errors and warnings:
|
||||
'bad_job_status' => 'To access this page, your import job cannot have status ":status".',
|
||||
'bad_job_status' => 'To access this page, your import job cannot have status ":status".',
|
||||
|
||||
// column roles for CSV import:
|
||||
'column__ignore' => '(ignore this column)',
|
||||
'column_account-iban' => 'Asset account (IBAN)',
|
||||
'column_account-id' => 'Asset account ID (matching FF3)',
|
||||
'column_account-name' => 'Asset account (name)',
|
||||
'column_account-bic' => 'Asset account (BIC)',
|
||||
'column_amount' => 'Amount',
|
||||
'column_amount_foreign' => 'Amount (in foreign currency)',
|
||||
'column_amount_debit' => 'Amount (debit column)',
|
||||
'column_amount_credit' => 'Amount (credit column)',
|
||||
'column_amount_negated' => 'Amount (negated column)',
|
||||
'column_amount-comma-separated' => 'Amount (comma as decimal separator)',
|
||||
'column_bill-id' => 'Bill ID (matching FF3)',
|
||||
'column_bill-name' => 'Bill name',
|
||||
'column_budget-id' => 'Budget ID (matching FF3)',
|
||||
'column_budget-name' => 'Budget name',
|
||||
'column_category-id' => 'Category ID (matching FF3)',
|
||||
'column_category-name' => 'Category name',
|
||||
'column_currency-code' => 'Currency code (ISO 4217)',
|
||||
'column_foreign-currency-code' => 'Foreign currency code (ISO 4217)',
|
||||
'column_currency-id' => 'Currency ID (matching FF3)',
|
||||
'column_currency-name' => 'Currency name (matching FF3)',
|
||||
'column_currency-symbol' => 'Currency symbol (matching FF3)',
|
||||
'column_date-interest' => 'Interest calculation date',
|
||||
'column_date-book' => 'Transaction booking date',
|
||||
'column_date-process' => 'Transaction process date',
|
||||
'column_date-transaction' => 'Date',
|
||||
'column_date-due' => 'Transaction due date',
|
||||
'column_date-payment' => 'Transaction payment date',
|
||||
'column_date-invoice' => 'Transaction invoice date',
|
||||
'column_description' => 'Description',
|
||||
'column_opposing-iban' => 'Opposing account (IBAN)',
|
||||
'column_opposing-bic' => 'Opposing account (BIC)',
|
||||
'column_opposing-id' => 'Opposing account ID (matching FF3)',
|
||||
'column_external-id' => 'External ID',
|
||||
'column_opposing-name' => 'Opposing account (name)',
|
||||
'column_rabo-debit-credit' => 'Rabobank specific debit/credit indicator',
|
||||
'column_ing-debit-credit' => 'ING specific debit/credit indicator',
|
||||
'column_sepa-ct-id' => 'SEPA end-to-end Identifier',
|
||||
'column_sepa-ct-op' => 'SEPA Opposing Account Identifier',
|
||||
'column_sepa-db' => 'SEPA Mandate Identifier',
|
||||
'column_sepa-cc' => 'SEPA Clearing Code',
|
||||
'column_sepa-ci' => 'SEPA Creditor Identifier',
|
||||
'column_sepa-ep' => 'SEPA External Purpose',
|
||||
'column_sepa-country' => 'SEPA Country Code',
|
||||
'column_tags-comma' => 'Tags (comma separated)',
|
||||
'column_tags-space' => 'Tags (space separated)',
|
||||
'column_account-number' => 'Asset account (account number)',
|
||||
'column_opposing-number' => 'Opposing account (account number)',
|
||||
'column_note' => 'Note(s)',
|
||||
'column_internal-reference' => 'Internal reference',
|
||||
'column__ignore' => '(ignore this column)',
|
||||
'column_account-iban' => 'Asset account (IBAN)',
|
||||
'column_account-id' => 'Asset account ID (matching FF3)',
|
||||
'column_account-name' => 'Asset account (name)',
|
||||
'column_account-bic' => 'Asset account (BIC)',
|
||||
'column_amount' => 'Amount',
|
||||
'column_amount_foreign' => 'Amount (in foreign currency)',
|
||||
'column_amount_debit' => 'Amount (debit column)',
|
||||
'column_amount_credit' => 'Amount (credit column)',
|
||||
'column_amount_negated' => 'Amount (negated column)',
|
||||
'column_amount-comma-separated' => 'Amount (comma as decimal separator)',
|
||||
'column_bill-id' => 'Bill ID (matching FF3)',
|
||||
'column_bill-name' => 'Bill name',
|
||||
'column_budget-id' => 'Budget ID (matching FF3)',
|
||||
'column_budget-name' => 'Budget name',
|
||||
'column_category-id' => 'Category ID (matching FF3)',
|
||||
'column_category-name' => 'Category name',
|
||||
'column_currency-code' => 'Currency code (ISO 4217)',
|
||||
'column_foreign-currency-code' => 'Foreign currency code (ISO 4217)',
|
||||
'column_currency-id' => 'Currency ID (matching FF3)',
|
||||
'column_currency-name' => 'Currency name (matching FF3)',
|
||||
'column_currency-symbol' => 'Currency symbol (matching FF3)',
|
||||
'column_date-interest' => 'Interest calculation date',
|
||||
'column_date-book' => 'Transaction booking date',
|
||||
'column_date-process' => 'Transaction process date',
|
||||
'column_date-transaction' => 'Date',
|
||||
'column_date-due' => 'Transaction due date',
|
||||
'column_date-payment' => 'Transaction payment date',
|
||||
'column_date-invoice' => 'Transaction invoice date',
|
||||
'column_description' => 'Description',
|
||||
'column_opposing-iban' => 'Opposing account (IBAN)',
|
||||
'column_opposing-bic' => 'Opposing account (BIC)',
|
||||
'column_opposing-id' => 'Opposing account ID (matching FF3)',
|
||||
'column_external-id' => 'External ID',
|
||||
'column_opposing-name' => 'Opposing account (name)',
|
||||
'column_rabo-debit-credit' => 'Rabobank specific debit/credit indicator',
|
||||
'column_ing-debit-credit' => 'ING specific debit/credit indicator',
|
||||
'column_sepa-ct-id' => 'SEPA end-to-end Identifier',
|
||||
'column_sepa-ct-op' => 'SEPA Opposing Account Identifier',
|
||||
'column_sepa-db' => 'SEPA Mandate Identifier',
|
||||
'column_sepa-cc' => 'SEPA Clearing Code',
|
||||
'column_sepa-ci' => 'SEPA Creditor Identifier',
|
||||
'column_sepa-ep' => 'SEPA External Purpose',
|
||||
'column_sepa-country' => 'SEPA Country Code',
|
||||
'column_tags-comma' => 'Tags (comma separated)',
|
||||
'column_tags-space' => 'Tags (space separated)',
|
||||
'column_account-number' => 'Asset account (account number)',
|
||||
'column_opposing-number' => 'Opposing account (account number)',
|
||||
'column_note' => 'Note(s)',
|
||||
'column_internal-reference' => 'Internal reference',
|
||||
|
||||
];
|
||||
|
Loading…
Reference in New Issue
Block a user