Files
firefly-iii/config/csv.php

406 lines
15 KiB
PHP
Raw Normal View History

<?php
2018-04-02 14:43:06 +02:00
/**
* csv.php
2018-05-11 10:08:34 +02:00
* Copyright (c) 2018 thegrumpydictator@gmail.com
*
2017-10-21 08:40:00 +02:00
* This file is part of Firefly III.
*
2017-10-21 08:40:00 +02:00
* 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
2017-12-17 14:44:46 +01:00
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
*/
2018-05-11 10:08:34 +02:00
declare(strict_types=1);
use FireflyIII\Import\Specifics\AbnAmroDescription;
use FireflyIII\Import\Specifics\IngDescription;
use FireflyIII\Import\Specifics\PresidentsChoice;
use FireflyIII\Import\Specifics\RabobankDescription;
use FireflyIII\Import\Specifics\SnsDescription;
2016-05-20 08:57:45 +02:00
return [
2016-06-27 15:15:46 +02:00
/*
* Configuration for the CSV specifics.
*/
'import_specifics' => [
2018-04-02 14:43:06 +02:00
'IngDescription' => IngDescription::class,
'RabobankDescription' => RabobankDescription::class,
'AbnAmroDescription' => AbnAmroDescription::class,
'SnsDescription' => SnsDescription::class,
'PresidentsChoice' => PresidentsChoice::class,
2016-06-27 15:15:46 +02:00
],
/*
* Configuration for possible column roles.
2016-07-23 21:37:06 +02:00
*
* The key is the short name for the column role. There are five values, which mean this:
*
* 'mappable'
* Whether or not the value in the CSV column can be linked to an existing value in your
* Firefly database. For example: account names can be linked to existing account names you have already
* so double entries cannot occur. This process is called "mapping". You have to make each unique value in your
* CSV file to an existing entry in your database. For example, map all account names in your CSV file to existing
* accounts. If you have an entry that does not exist in your database, you can set Firefly to ignore it, and it will
* create it.
*
* 'pre-process-map'
* In the case of tags, there are multiple values in one csv column (for example: "expense groceries snack" in one column).
* This means the content of the column must be "pre processed" aka split in parts so the importer can work with the data.
*
* 'pre-process-mapper'
* This is the class that will actually do the pre-processing.
*
* 'field'
* I don't believe this value is used any more, but I am not sure.
*
* 'converter'
* The converter is a class in app/Import/Converter that converts the given value into an object Firefly understands.
* The CategoryName converter can convert a category name into an actual category. This converter will take a mapping
* into account: if you mapped "Groceries" to category "Groceries" the converter will simply return "Groceries" instead of
* trying to make a new category also named Groceries.
*
* 'mapper'
* When you map data (see "mappable") you need a list of stuff you can map to. If you say a certain column is mappable
* and the column contains "category names", the mapper will be "Category" and it will give you a list of possible categories.
* This way the importer always presents you with a valid list of things to map to.
*
*
*
2016-06-27 15:15:46 +02:00
*/
2016-07-02 23:08:47 +02:00
'import_roles' => [
2018-01-10 19:59:40 +01:00
'_ignore' => [
2016-07-23 21:37:06 +02:00
'mappable' => false,
'pre-process-map' => false,
'field' => 'ignored',
'converter' => 'Ignore',
'mapper' => null,
2016-07-02 23:08:47 +02:00
2016-06-27 15:15:46 +02:00
],
2018-01-10 19:59:40 +01:00
'bill-id' => [
'mappable' => true,
2016-07-23 21:37:06 +02:00
'pre-process-map' => false,
'field' => 'bill',
'converter' => 'BillId',
'mapper' => 'Bills',
2016-06-27 15:15:46 +02:00
],
2018-01-10 19:59:40 +01:00
'note' => [
2017-12-21 19:18:53 +01:00
'mappable' => false,
'pre-process-map' => false,
'field' => 'note',
'converter' => 'Note',
],
2018-01-10 19:59:40 +01:00
'bill-name' => [
2016-07-23 21:37:06 +02:00
'mappable' => true,
'pre-process-map' => false,
'field' => 'bill',
'converter' => 'BillName',
'mapper' => 'Bills',
2016-06-27 15:15:46 +02:00
],
2018-01-10 19:59:40 +01:00
'currency-id' => [
2016-07-23 21:37:06 +02:00
'mappable' => true,
'pre-process-map' => false,
'field' => 'currency',
'converter' => 'CurrencyId',
'mapper' => 'TransactionCurrencies',
2016-06-27 15:15:46 +02:00
],
2018-01-10 19:59:40 +01:00
'currency-name' => [
2016-07-23 21:37:06 +02:00
'mappable' => true,
'pre-process-map' => false,
'converter' => 'CurrencyName',
'field' => 'currency',
'mapper' => 'TransactionCurrencies',
2016-06-27 15:15:46 +02:00
],
2018-01-10 19:59:40 +01:00
'currency-code' => [
2016-07-23 21:37:06 +02:00
'mappable' => true,
'pre-process-map' => false,
'converter' => 'CurrencyCode',
'field' => 'currency',
'mapper' => 'TransactionCurrencies',
2016-06-27 15:15:46 +02:00
],
2018-01-10 19:59:40 +01:00
'foreign-currency-code' => [
'mappable' => true,
'pre-process-map' => false,
'converter' => 'CurrencyCode',
'field' => 'foreign_currency',
'mapper' => 'TransactionCurrencies',
],
'external-id' => [
2016-08-06 06:21:46 +02:00
'mappable' => false,
'pre-process-map' => false,
'converter' => 'ExternalId',
'field' => 'external-id',
],
2018-04-02 14:43:06 +02:00
'currency-symbol' => [
2016-07-23 21:37:06 +02:00
'mappable' => true,
'pre-process-map' => false,
'converter' => 'CurrencySymbol',
'field' => 'currency',
'mapper' => 'TransactionCurrencies',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'description' => [
2016-07-23 21:37:06 +02:00
'mappable' => false,
'pre-process-map' => false,
'converter' => 'Description',
'field' => 'description',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'date-transaction' => [
2016-07-23 21:37:06 +02:00
'mappable' => false,
'pre-process-map' => false,
'converter' => 'Date',
'field' => 'date',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'date-interest' => [
2016-07-23 21:37:06 +02:00
'mappable' => false,
'pre-process-map' => false,
'converter' => 'Date',
'field' => 'date-interest',
],
2018-04-02 14:43:06 +02:00
'date-book' => [
'mappable' => false,
'pre-process-map' => false,
'converter' => 'Date',
'field' => 'date-book',
],
2018-04-02 14:43:06 +02:00
'date-process' => [
'mappable' => false,
'pre-process-map' => false,
'converter' => 'Date',
'field' => 'date-process',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'date-due' => [
'mappable' => false,
'pre-process-map' => false,
'converter' => 'Date',
'field' => 'date-due',
],
2018-04-02 14:43:06 +02:00
'date-payment' => [
'mappable' => false,
'pre-process-map' => false,
'converter' => 'Date',
'field' => 'date-payment',
],
2018-04-02 14:43:06 +02:00
'date-invoice' => [
'mappable' => false,
'pre-process-map' => false,
'converter' => 'Date',
'field' => 'date-invoice',
],
2018-04-02 14:43:06 +02:00
'budget-id' => [
2016-07-23 21:37:06 +02:00
'mappable' => true,
'pre-process-map' => false,
'converter' => 'BudgetId',
'field' => 'budget',
'mapper' => 'Budgets',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'budget-name' => [
2016-07-23 21:37:06 +02:00
'mappable' => true,
'pre-process-map' => false,
'converter' => 'BudgetName',
'field' => 'budget',
'mapper' => 'Budgets',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'rabo-debit-credit' => [
2016-07-23 21:37:06 +02:00
'mappable' => false,
'pre-process-map' => false,
2017-12-19 18:53:50 +01:00
'converter' => 'RabobankDebitCredit',
2016-07-23 21:37:06 +02:00
'field' => 'amount-modifier',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'ing-debit-credit' => [
2016-07-23 21:37:06 +02:00
'mappable' => false,
'pre-process-map' => false,
2017-12-19 18:53:50 +01:00
'converter' => 'INGDebitCredit',
2016-07-23 21:37:06 +02:00
'field' => 'amount-modifier',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'category-id' => [
2016-07-23 21:37:06 +02:00
'mappable' => true,
'pre-process-map' => false,
'converter' => 'CategoryId',
'field' => 'category',
'mapper' => 'Categories',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'category-name' => [
2016-07-23 21:37:06 +02:00
'mappable' => true,
'pre-process-map' => false,
'converter' => 'CategoryName',
'field' => 'category',
'mapper' => 'Categories',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'tags-comma' => [
2017-07-28 14:40:53 +02:00
'mappable' => false,
2016-07-23 21:37:06 +02:00
'pre-process-map' => true,
'pre-process-mapper' => 'TagsComma',
'field' => 'tags',
'converter' => 'TagsComma',
'mapper' => 'Tags',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'tags-space' => [
2017-07-28 14:40:53 +02:00
'mappable' => false,
2016-07-23 21:37:06 +02:00
'pre-process-map' => true,
'pre-process-mapper' => 'TagsSpace',
'field' => 'tags',
'converter' => 'TagsSpace',
'mapper' => 'Tags',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'account-id' => [
2016-07-23 21:37:06 +02:00
'mappable' => true,
'pre-process-map' => false,
'field' => 'asset-account-id',
'converter' => 'AccountId',
2016-07-23 21:37:06 +02:00
'mapper' => 'AssetAccounts',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'account-name' => [
2016-07-23 21:37:06 +02:00
'mappable' => true,
'pre-process-map' => false,
'field' => 'asset-account-name',
'converter' => 'AssetAccountName',
'mapper' => 'AssetAccounts',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'account-iban' => [
2016-07-23 21:37:06 +02:00
'mappable' => true,
'pre-process-map' => false,
'field' => 'asset-account-iban',
'converter' => 'AssetAccountIban',
'mapper' => 'AssetAccountIbans',
2016-07-02 23:08:47 +02:00
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'account-number' => [
2016-07-23 21:37:06 +02:00
'mappable' => true,
'pre-process-map' => false,
'field' => 'asset-account-number',
'converter' => 'AssetAccountNumber',
'mapper' => 'AssetAccounts',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'opposing-id' => [
2016-07-23 21:37:06 +02:00
'mappable' => true,
'pre-process-map' => false,
'field' => 'opposing-account-id',
'converter' => 'AccountId',
2016-07-23 21:37:06 +02:00
'mapper' => 'OpposingAccounts',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'opposing-bic' => [
2018-03-19 10:03:08 +01:00
'mappable' => false,
'pre-process-map' => false,
'field' => 'opposing-account-bic',
'converter' => 'AccountBic',
],
2018-04-02 14:43:06 +02:00
'opposing-name' => [
2016-07-23 21:37:06 +02:00
'mappable' => true,
'pre-process-map' => false,
'field' => 'opposing-account-name',
'converter' => 'OpposingAccountName',
'mapper' => 'OpposingAccounts',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'opposing-iban' => [
2016-07-23 21:37:06 +02:00
'mappable' => true,
'pre-process-map' => false,
'field' => 'opposing-account-iban',
'converter' => 'OpposingAccountIban',
'mapper' => 'OpposingAccountIbans',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'opposing-number' => [
2016-07-23 21:37:06 +02:00
'mappable' => true,
'pre-process-map' => false,
'field' => 'opposing-account-number',
'converter' => 'OpposingAccountNumber',
'mapper' => 'OpposingAccounts',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'amount' => [
2016-07-23 21:37:06 +02:00
'mappable' => false,
'pre-process-map' => false,
'converter' => 'Amount',
'field' => 'amount',
2016-06-27 15:15:46 +02:00
],
2018-04-02 14:43:06 +02:00
'amount_debit' => [
2017-11-18 20:26:42 +01:00
'mappable' => false,
'pre-process-map' => false,
2017-12-19 18:53:50 +01:00
'converter' => 'AmountDebit',
'field' => 'amount_debit',
2017-11-18 20:26:42 +01:00
],
2018-04-02 14:43:06 +02:00
'amount_credit' => [
2017-11-18 20:26:42 +01:00
'mappable' => false,
'pre-process-map' => false,
'converter' => 'AmountCredit',
'field' => 'amount_credit',
],
2018-04-02 14:43:06 +02:00
'amount_foreign' => [
2018-01-10 19:59:40 +01:00
'mappable' => false,
'pre-process-map' => false,
'converter' => 'Amount',
'field' => 'amount_foreign',
],
// SEPA end to end ID
2018-04-02 14:43:06 +02:00
'sepa-ct-id' => [
2016-07-23 21:37:06 +02:00
'mappable' => false,
'pre-process-map' => false,
'converter' => 'Description',
'field' => 'sepa_ct_id',
2016-06-27 15:15:46 +02:00
],
// SEPA opposing account identifier
2018-04-02 14:43:06 +02:00
'sepa-ct-op' => [
2016-07-23 21:37:06 +02:00
'mappable' => false,
'pre-process-map' => false,
'converter' => 'Description',
'field' => 'sepa_ct_op',
2016-06-27 15:15:46 +02:00
],
// SEPA Direct Debit Mandate Identifier
2018-04-02 14:43:06 +02:00
'sepa-db' => [
2016-07-23 21:37:06 +02:00
'mappable' => false,
'pre-process-map' => false,
'converter' => 'Description',
'field' => 'sepa_db',
],
// SEPA clearing code
2018-04-02 14:43:06 +02:00
'sepa-cc' => [
'mappable' => false,
'pre-process-map' => false,
'converter' => 'Description',
'field' => 'sepa_cc',
],
// SEPA country
2018-04-02 14:43:06 +02:00
'sepa-country' => [
'mappable' => false,
'pre-process-map' => false,
'converter' => 'Description',
'field' => 'sepa_country',
],
// SEPA external purpose
2018-04-02 14:43:06 +02:00
'sepa-ep' => [
'mappable' => false,
'pre-process-map' => false,
'converter' => 'Description',
'field' => 'sepa_ep',
],
// SEPA creditor identifier
2018-04-02 14:43:06 +02:00
'sepa-ci' => [
'mappable' => false,
'pre-process-map' => false,
'converter' => 'Description',
'field' => 'sepa_ci',
],
// Internal reference
2018-04-02 14:43:06 +02:00
'internal-reference' => [
'mappable' => false,
'pre-process-map' => false,
'converter' => 'Description',
'field' => 'internal_reference',
2016-06-27 15:15:46 +02:00
],
],
2016-09-25 08:32:53 +02:00
// number of example rows:
'example_rows' => 5,
2015-07-09 21:26:40 +02:00
];