From 233532f5a63399ef752f540e3a3b7e691cda6624 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 16 Nov 2022 22:27:05 +1100 Subject: [PATCH 1/2] Update README.md --- README.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 5426d3a18220..0c5c0004200b 100644 --- a/README.md +++ b/README.md @@ -26,15 +26,14 @@ All Pro and Enterprise features from the hosted app are included in the open-cod * [Support Forum](https://forum.invoiceninja.com) * [StackOverflow](https://stackoverflow.com/tags/invoice-ninja/) -## Mobile App -* [iPhone](https://apps.apple.com/us/app/invoice-ninja-v5/id1503970375#?platform=iphone) +## Mobile Apps +* [iPhone](https://apps.apple.com/app/id1503970375?platform=iphone) * [Android](https://play.google.com/store/apps/details?id=com.invoiceninja.app) -* [Linux](https://github.com/invoiceninja/flutter-mobile) -## Desktop App -* [MacOS](https://apps.apple.com/app/id1503970375) +## Desktop Apps +* [macOS](https://apps.apple.com/app/id1503970375?platform=mac) * [Windows](https://microsoft.com/en-us/p/invoice-ninja/9n3f2bbcfdr6) -* [MacOS Desktop](https://snapcraft.io/invoiceninja) +* [Linux](https://snapcraft.io/invoiceninja) ## Installation Options From b63b53e9d39d80d4717e5e77da3c6918504bf758 Mon Sep 17 00:00:00 2001 From: checkitsedo <56700394+checkitsedo@users.noreply.github.com> Date: Wed, 30 Nov 2022 00:52:27 +0100 Subject: [PATCH 2/2] Add CSV delimiter Autodetection Line 139 and Lines 162-173: Checks $csvfile for the most accurate delimiter ($bestDelimiter) Line 140: Sets the Delimiter for league/csv Reader --- app/Http/Controllers/ImportController.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/Http/Controllers/ImportController.php b/app/Http/Controllers/ImportController.php index 25cc858e7500..41102869a90e 100644 --- a/app/Http/Controllers/ImportController.php +++ b/app/Http/Controllers/ImportController.php @@ -136,6 +136,8 @@ class ImportController extends Controller } $csv = Reader::createFromString($csvfile); + $csvdelimiter = self::detectDelimiter($csvfile); + $csv->setDelimiter($csvdelimiter); $stmt = new Statement(); $data = iterator_to_array($stmt->process($csv)); @@ -156,4 +158,17 @@ class ImportController extends Controller return $data; } + + public function detectDelimiter($csvfile) + { + $delimiters = array(',', '.', ';'); + $bestDelimiter = false; + $count = 0; + foreach ($delimiters as $delimiter) + if (substr_count($csvfile, $delimiter) > $count) { + $count = substr_count($csvfile, $delimiter); + $bestDelimiter = $delimiter; + } + return $bestDelimiter; + } }