From 57ee54032f83489e262d11768ff7fbc45441b420 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 15 Dec 2020 09:59:41 +1100 Subject: [PATCH] Import CSV --- app/Http/Controllers/ImportController.php | 8 ++++ app/Http/Requests/Import/ImportRequest.php | 37 +++++++++++++++++++ app/Http/Requests/Import/PreImportRequest.php | 4 +- app/Import/Definitions/InvoiceMap.php | 10 ++++- 4 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 app/Http/Requests/Import/ImportRequest.php diff --git a/app/Http/Controllers/ImportController.php b/app/Http/Controllers/ImportController.php index e1f38b2690da..8d65b0e33d13 100644 --- a/app/Http/Controllers/ImportController.php +++ b/app/Http/Controllers/ImportController.php @@ -12,9 +12,11 @@ namespace App\Http\Controllers; use App\Http\Controllers\Controller; +use App\Http\Requests\Import\ImportRequest; use App\Http\Requests\Import\PreImportRequest; use App\Import\Definitions\Import\ImportMap; use App\Import\Definitions\InvoiceMap; +use App\Jobs\Import\CSVImport; use Illuminate\Http\Request; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Str; @@ -91,6 +93,12 @@ class ImportController extends Controller return response()->json($data); } + public function import(ImportRequest $request) + { + CSVImport::dispatch($request, auth()->user()->company()); + + return response()->json(['message' => 'Importing data, email will be sent on completion'], 200); + } private function getCsvData($csvfile) { diff --git a/app/Http/Requests/Import/ImportRequest.php b/app/Http/Requests/Import/ImportRequest.php new file mode 100644 index 000000000000..a1f92a0dc465 --- /dev/null +++ b/app/Http/Requests/Import/ImportRequest.php @@ -0,0 +1,37 @@ +user()->isAdmin(); + } + + public function rules() + { + + return [ + 'hash' => 'required', + 'entity_type' => 'required', + ]; + + } +} diff --git a/app/Http/Requests/Import/PreImportRequest.php b/app/Http/Requests/Import/PreImportRequest.php index fdfb162e20af..b0f76e5637ce 100644 --- a/app/Http/Requests/Import/PreImportRequest.php +++ b/app/Http/Requests/Import/PreImportRequest.php @@ -12,7 +12,6 @@ namespace App\Http\Requests\Import; use App\Http\Requests\Request; -use App\Models\GroupSetting; class PreImportRequest extends Request { @@ -30,7 +29,8 @@ class PreImportRequest extends Request { return [ - 'file' => 'required|file|mimes:csv,txt' + 'file' => 'required|file|mimes:csv,txt', + 'entity_type' => 'required', ]; } diff --git a/app/Import/Definitions/InvoiceMap.php b/app/Import/Definitions/InvoiceMap.php index cf8dfdb8f82f..a2e05c0256ca 100644 --- a/app/Import/Definitions/InvoiceMap.php +++ b/app/Import/Definitions/InvoiceMap.php @@ -54,6 +54,9 @@ class InvoiceMap 34 => 'invoice.line_items', 35 => 'client.name', 36 => 'client.email', + 37 => 'payment.date', + 38 => 'payment.amount', + 39 => 'payment.transaction_reference', ]; } @@ -75,7 +78,7 @@ class InvoiceMap 12 => 'texts.public_notes', 13 => 'texts.private_notes', 14 => 'texts.uses_inclusive_taxes', - 15 => 'texts.tax_name1', + 15 => 'texts.tax_name', 16 => 'texts.tax_rate', 17 => 'texts.tax_name', 18 => 'texts.tax_rate', @@ -95,6 +98,11 @@ class InvoiceMap 32 => 'texts.surcharge', 33 => 'texts.exchange_rate', 34 => 'texts.items', + 35 => 'texts.client_name', + 36 => 'texts.email', + 37 => 'texts.payment_date', + 38 => 'texts.payment_amount', + 39 => 'texts.transaction_reference', ]; } } \ No newline at end of file