diff --git a/app/Helpers/Csv/Importer.php b/app/Helpers/Csv/Importer.php index 14a3e8705e..0ce9fab492 100644 --- a/app/Helpers/Csv/Importer.php +++ b/app/Helpers/Csv/Importer.php @@ -30,7 +30,7 @@ class Importer /** @var array */ protected $errors; /** @var int */ - protected $imported; + protected $imported = 0; /** @var array */ protected $map; /** @var array */ @@ -131,12 +131,14 @@ class Importer $journal = null; if ($result === true) { $journal = $this->createTransactionJournal($data); + } else { + return $result; } if ($journal instanceof TransactionJournal) { return true; } - return 'Not a journal.'; + return $journal; } @@ -278,6 +280,9 @@ class Importer if ($errors->count() == 0) { $journal->completed = 1; $journal->save(); + } else { + $text = join(',', $errors->all()); + return $text; } // add budget: diff --git a/app/Http/Controllers/CsvController.php b/app/Http/Controllers/CsvController.php index 3111f23cef..744235606f 100644 --- a/app/Http/Controllers/CsvController.php +++ b/app/Http/Controllers/CsvController.php @@ -50,10 +50,9 @@ class CsvController extends Controller /** * Define column roles and mapping. * - * * STEP THREE * - * @return View + * @return \Illuminate\Http\RedirectResponse|\Illuminate\View\View */ public function columnRoles() { @@ -82,7 +81,7 @@ class CsvController extends Controller } foreach (Config::get('csv.roles') as $name => $role) { - $availableRoles[$name] = $role['name']; + $availableRoles[$name] = trans('firefly.csv_column_' . $name);//$role['name']; } ksort($availableRoles); diff --git a/config/firefly.php b/config/firefly.php index 81f741bd77..c7dde36697 100644 --- a/config/firefly.php +++ b/config/firefly.php @@ -5,7 +5,7 @@ return [ 'version' => '3.4.6', 'index_periods' => ['1D', '1W', '1M', '3M', '6M', '1Y', 'custom'], 'budget_periods' => ['daily', 'weekly', 'monthly', 'quarterly', 'half-year', 'yearly'], - 'csv_import_enabled' => false, + 'csv_import_enabled' => true, 'piggy_bank_periods' => [ 'week' => 'Week', 'month' => 'Month', diff --git a/resources/lang/en/firefly.php b/resources/lang/en/firefly.php index 692d534076..1fc0365f4f 100644 --- a/resources/lang/en/firefly.php +++ b/resources/lang/en/firefly.php @@ -69,21 +69,44 @@ return [ 'csv_unsupported_value' => 'The importer does not know how to handle values in columns marked as ":columnRole".', 'csv_cannot_store_value' => 'The importer has not reserved space for columns marked ":columnRole" and will be incapable of processing them.', 'csv_process_title' => 'CVS import finished!', - 'csv_process_text' => 'The CVS importer has finished and has imported :rows rows', + 'csv_process_text' => 'The CVS importer has finished and has processed :rows rows', 'csv_row' => 'Row', 'csv_import_with_errors' => 'There was one error.|There were :errors errors.', 'csv_error_see_logs' => 'Check the log files to see details.', + 'csv_process_new_entries' => 'Firefly has created :imported new transaction(s).', 'csv_start_over' => 'Import again', 'csv_to_index' => 'Back home', 'csv_do_not_map' => 'Do not map this value', - // 'csv_index_text' => 'Here be explanation.', - // 'csv_upload_form' => 'Upload form', - // 'upload_csv_file' => 'Upload CSV file', - // 'csv_header_help' => 'Check this when bla bla', - // 'csv_date_help' => - // 'csv_row' => 'row', 'csv_upload_not_writeable' => 'Cannot write to the path mentioned here. Cannot upload', + 'csv_column__ignore' => '(ignore this column)', + 'csv_column_account-iban' => 'Asset account (IBAN)', + 'csv_column_account-id' => 'Asset account ID (matching Firefly)', + 'csv_column_account-name' => 'Asset account (name)', + 'csv_column_amount' => 'Amount', + 'csv_column_bill-id' => 'Bill ID (matching Firefly)', + 'csv_column_bill-name' => 'Bill name', + 'csv_column_budget-id' => 'Budget ID (matching Firefly)', + 'csv_column_budget-name' => 'Budget name', + 'csv_column_category-id' => 'Category ID (matching Firefly)', + 'csv_column_category-name' => 'Category name', + 'csv_column_currency-code' => 'Currency code (ISO 4217)', + 'csv_column_currency-id' => 'Currency ID (matching Firefly)', + 'csv_column_currency-name' => 'Currency name (matching Firefly)', + 'csv_column_currency-symbol' => 'Currency symbol (matching Firefly)', + 'csv_column_date-rent' => 'Rent calculation date', + 'csv_column_date-transaction' => 'Date', + 'csv_column_description' => 'Description', + 'csv_column_opposing-iban' => 'Opposing account (IBAN)', + 'csv_column_opposing-id' => 'Opposing account ID (matching Firefly)', + 'csv_column_opposing-name' => 'Opposing account (name)', + 'csv_column_rabo-debet-credit' => 'Rabobank specific debet/credit indicator', + 'csv_column_sepa-ct-id' => 'SEPA Credit Transfer end-to-end ID', + 'csv_column_sepa-ct-op' => 'SEPA Credit Transfer opposing account', + 'csv_column_sepa-db' => 'SEPA Direct Debet', + 'csv_column_tags-comma' => 'Tags (comma separated)', + 'csv_column_tags-space' => 'Tags (space separated)', + // create new stuff: 'create_new_withdrawal' => 'Create new withdrawal', 'create_new_deposit' => 'Create new deposit', diff --git a/resources/lang/nl/firefly.php b/resources/lang/nl/firefly.php index aaa2a9a90e..a64b157eac 100644 --- a/resources/lang/nl/firefly.php +++ b/resources/lang/nl/firefly.php @@ -22,13 +22,84 @@ return [ // csv import: 'csv_import' => 'Importeer CSV-bestand', 'csv' => 'CSV', - 'csv_index_text' => 'Hier komt uitleg.', - 'csv_upload_form' => 'Upload formulier', - 'upload_csv_file' => 'Upload CSV-bestand', - 'csv_header_help' => 'Check dit als bla bla', - 'csv_row' => 'rij', - 'upload_not_writeable' => 'Cannot write to the path mentioned here. Cannot upload', - + 'csv_index_title' => 'Upload en importeer een kommagescheiden tekstbestand', + 'csv_index_text' => 'Met deze (en de komende) pagina\'s kan je kommagescheiden tekstbestanden importeren. Deze tool is gebaseerd ' + . 'op de prachtige tool van Atlassian. Om te beginnen selecteer' . + ' je jouw tekstbestand bij "CSV-bestand". ' + . 'Als je hulp nodig hebt, klik dan op het -icoontje rechtsboven.', + 'csv_index_beta_warning' => 'Deze tool is nog erg experimenteel. Wees dus voorzichtig.', + 'csv_header_help' => 'Zet hier een vinkje als de eerste rij van je tekstbestand bestaat uit kolomnamen, en niet uit daadwerkelijke gegevens.', + 'csv_date_help' => 'Het gebruikte datumformaat in jouw bestand. Gebruik het formaat zoals deze' . + ' pagina het uitlegt (Engels). Het standaardformaat kan omgaan met data zoals deze: ' . date('Ymd'), + 'csv_csv_file_help' => 'Voer hier je kommagescheiden tekstbestand in. Je kan er maar één tegelijkertijd invoeren.', + 'csv_csv_config_file_help' => 'Voer hier je configuratiebestand in. Als je deze niet hebt, geen zorgen. Latere stappen leggen dit uit.', + 'csv_upload_button' => 'Begin de import', + 'csv_define_column_roles' => 'Bepaal kolominhoud', + 'csv_column_roles_title' => 'Bepaal de inhoud van elke kolom', + 'csv_column_roles_text' => 'Firefly kan niet automatisch ontdekken wat elke kolom betekent. Je moet het zelf aangeven. Gebruik de' . + ' voorbeeldgegevens als je het ook niet zeker weet. Klik op het -icoontje ' . + 'rechtsboven om te ontdekken wat elke kolomsoort precies is. Als de kolominhoud een directe relatie heeft met gegevens' . + ' die al in Firefly staan, gebruik dan het vinkje. Tijdens de volgende stap komt Firefly hier dan op terug.', + 'csv_column' => 'CSV-kolom', + 'cvs_column_name' => 'CSV-kolomnaam', + 'cvs_column_example' => 'Voorbeeldgegevens', + 'cvs_column_role' => 'Kolom bevat?', + 'csv_do_map_value' => 'Directe relatie?', + 'csv_column__ignore' => '(negeer deze kolom)', + 'csv_column_account-iban' => 'Betaalrekening (IBAN)', + 'csv_column_account-id' => 'Betaalrekening (ID gelijk aan Firefly)', + 'csv_column_account-name' => 'Betaalrekeningnaam', + 'csv_column_amount' => 'Bedrag', + 'csv_column_bill-id' => 'Contract (ID gelijk aan Firefly)', + 'csv_column_bill-name' => 'Contractnaam', + 'csv_column_budget-id' => 'Budget (ID gelijk aan Firefly)', + 'csv_column_budget-name' => 'Budgetnaam', + 'csv_column_category-id' => 'Categorie (ID gelijk aan Firefly)', + 'csv_column_category-name' => 'Categorienaam', + 'csv_column_currency-code' => 'Valutacode (ISO 4217)', + 'csv_column_currency-id' => 'Valuta (ID gelijk aan Firefly)', + 'csv_column_currency-name' => 'Valutanaam', + 'csv_column_currency-symbol' => 'Valuta', + 'csv_column_date-rent' => 'Datum (renteberekening)', + 'csv_column_date-transaction' => 'Datum (transactie)', + 'csv_column_description' => 'Beschrijving', + 'csv_column_opposing-iban' => 'Tegenrekening (IBAN)', + 'csv_column_opposing-id' => 'Tegenrekening (ID gelijk aan Firefly)', + 'csv_column_opposing-name' => 'Tegenrekeningnaam', + 'csv_column_rabo-debet-credit' => 'Rabobankspecifiek bij/af indicator', + 'csv_column_sepa-ct-id' => 'SEPA transactienummer', + 'csv_column_sepa-ct-op' => 'SEPA tegenrekeningnummer', + 'csv_column_sepa-db' => 'SEPA "direct debet"-nummer', + 'csv_column_tags-comma' => 'Tags (kommagescheiden)', + 'csv_column_tags-space' => 'Tags (spatiegescheiden)', + 'csv_column_roles_table' => 'Kolominhoud', + 'csv_continue' => 'Naar de volgende stap', + 'csv_go_back' => 'Terug naar de vorige stap', + 'csv_map_values' => 'Leg relaties met kolomwaardes', + 'csv_map_title' => 'Leg relaties met kolomwaardes', + 'csv_map_text' => 'Sommige kolommen bevatten waardes die misschien al in Firefly bestaan. Selecteer hier de juiste combinaties' . + 'zodat het importeren netjes aansluit bij je huidige gegevens.', + 'cvs_field_value' => 'Veldwaarde', + 'csv_field_mapped_to' => 'Is gelijk aan', + 'csv_do_not_map' => 'Geen relatie', + 'csv_download_config_title' => 'Download importconfiguratie', + 'csv_download_config_text' => + 'Firefly is klaar om je bestand te importeren. De instellingen en selecties die je zojuist hebt gemaakt kan je downloaden' + . ' en opslaan. Bij de volgende keer kan je dit bestand ook uploaden. Als je kommagescheiden bestand dezelfde indeling' + . ' heeft, zullen alle selecties goed staan. Dat scheelt weer!', + 'csv_more_information_text' => 'Ook als het importeren fout gaat is dit bestand handig. Na het importeren krijg je nogmaals de gelegenheid dit bestand' + . 'te downloaden.', + 'csv_do_download_config' => 'Download het configuratiebestand', + 'csv_process_title' => 'Het importeren is klaar', + 'csv_row' => 'Rij', + 'csv_error_see_logs' => 'De logboeken bevatten mogelijk meer details.', + 'csv_process_new_entries' => 'Firefly heeft :imported nieuwe transactie(s) gemaakt.', + 'csv_start_over' => 'Begin opnieuw', + 'csv_to_index' => 'Naar de index', + 'csv_process_text' => ':rows rijen zijn verwerkt.', + 'csv_import_with_errors' => 'Er was één fout. Deze foutmelding is mogelijk in het Engels.|Er zijn :errors fouten opgetreden. De foutmeldingen' + . ' zijn mogelijk in het Engels.', // create new stuff: 'create_new_withdrawal' => 'Nieuwe uitgave', 'create_new_deposit' => 'Nieuwe inkomsten', diff --git a/resources/lang/nl/form.php b/resources/lang/nl/form.php index 397c87cb76..f209eb9f96 100644 --- a/resources/lang/nl/form.php +++ b/resources/lang/nl/form.php @@ -47,8 +47,9 @@ return [ 'code' => 'Code', 'iban' => 'IBAN', 'csv' => 'CSV-bestand', - 'has_headers' => 'Eerste rij zijn kolomnamen', + 'has_headers' => 'Kolomnamen op de eerste rij?', 'date_format' => 'Datumformaat', + 'csv_config' => 'Configuratiebestand', 'store_new_withdrawal' => 'Nieuwe uitgave opslaan', 'store_new_deposit' => 'Nieuwe inkomsten opslaan', diff --git a/resources/twig/csv/process.twig b/resources/twig/csv/process.twig index b9a4c22221..89911bc291 100644 --- a/resources/twig/csv/process.twig +++ b/resources/twig/csv/process.twig @@ -36,6 +36,12 @@ {{ trans('firefly.csv_error_see_logs') }}
{% endif %} + ++ + {{ trans('firefly.csv_process_new_entries',{imported: imported}) }} +
+