From c5a58436e1f724f26b56d0dc835fcc3b9c14ec72 Mon Sep 17 00:00:00 2001 From: chris Date: Wed, 12 Feb 2025 19:08:33 +0100 Subject: [PATCH] Make handling of incoming invoices smoother. --- .../Controllers/Api/IncomingController.php | 39 ++++---- lang/de/invoice.php | 1 + resources/views/incoming/create.blade.php | 99 ++++++++++++++----- 3 files changed, 93 insertions(+), 46 deletions(-) diff --git a/app/Http/Controllers/Api/IncomingController.php b/app/Http/Controllers/Api/IncomingController.php index 1c42e43..a388ac7 100644 --- a/app/Http/Controllers/Api/IncomingController.php +++ b/app/Http/Controllers/Api/IncomingController.php @@ -79,7 +79,7 @@ class IncomingController extends Controller 'supplier.contact_email' => 'nullable|string', ]); - $supplier = Supplier::where('name', '=', $supplierData['supplier']['name'])->firstOrNew($supplierData['supplier']); + $supplier = Supplier::updateOrCreate(['name' => $supplierData['supplier']['name']], $supplierData['supplier']); $supplier->save(); $incomingData = $request->validate([ @@ -118,23 +118,6 @@ class IncomingController extends Controller */ public function update(Request $request, Incoming $incoming): JsonResponse { - $incomingData = $request->validate([ - 'incoming.invoice_number' => 'required|string', - 'incoming.issue_date' => 'required|date', - 'incoming.due_date' => 'nullable|date', - 'incoming.invoice_type_code' => 'required|string', - 'incoming.currency_code' => 'required|string', - 'incoming.net' => 'required|numeric', - 'incoming.gross' => 'required|numeric', - 'incoming.tax' => 'required|numeric', - 'incoming.pay_date' => 'nullable|date', - 'incoming.pay_name' => 'nullable|string', - 'incoming.pay_bic' => 'nullable|string', - 'incoming.pay_iban' => 'nullable|string', - ]); - - $incoming->update($incomingData['incoming']); - $supplierData = $request->validate([ 'supplier.name' => 'required|string', 'supplier.registration_name' => 'nullable|string', @@ -150,7 +133,25 @@ class IncomingController extends Controller 'supplier.contact_email' => 'nullable|string', ]); - $incoming->supplier()->update($supplierData['supplier']); + $supplier = Supplier::updateOrCreate(['name' => $supplierData['supplier']['name']], $supplierData['supplier']); + + $incomingData = $request->validate([ + 'incoming.invoice_number' => 'required|string', + 'incoming.issue_date' => 'required|date', + 'incoming.due_date' => 'nullable|date', + 'incoming.invoice_type_code' => 'required|string', + 'incoming.currency_code' => 'required|string', + 'incoming.net' => 'required|numeric', + 'incoming.gross' => 'required|numeric', + 'incoming.tax' => 'required|numeric', + 'incoming.pay_date' => 'nullable|date', + 'incoming.pay_name' => 'nullable|string', + 'incoming.pay_bic' => 'nullable|string', + 'incoming.pay_iban' => 'nullable|string', + ]); + + $incomingData['incoming']['supplier_id'] = $supplier->id; + $incoming->update($incomingData['incoming']); $itemsData = $request->validate([ 'items.*.name' => 'required|string', diff --git a/lang/de/invoice.php b/lang/de/invoice.php index 521263b..eab27d9 100644 --- a/lang/de/invoice.php +++ b/lang/de/invoice.php @@ -57,6 +57,7 @@ return [ 'state_created' => 'Erstellt', 'state_sent' => 'Gesendet', 'state_paid' => 'Bezahlt', + 'state_deleted' => 'Storniert', 'Mail' => 'E-Mail', 'Send email to your customer with attachments.' => 'E-Mail mit Anlagen an den Kunden versenden.', 'Invoice body' => 'Sehr geehrte Kundin, sehr geehrter Kunde\n\nim Anhang erhalten Sie die Rechnung :invoice_number.\n\nMit freundlichen Grüßen', diff --git a/resources/views/incoming/create.blade.php b/resources/views/incoming/create.blade.php index 5ccb781..0e01c0f 100644 --- a/resources/views/incoming/create.blade.php +++ b/resources/views/incoming/create.blade.php @@ -84,15 +84,22 @@ autocomplete="name" x-model="incoming.pay_date"/> - - {{ __('form.Save') }} - +
+

+ +

{{ __('form.Saved') }}

+ + {{ __('form.Save') }} + {{ __('form.SaveAndContinue') }} +
+
@@ -107,12 +114,19 @@
- + - + +{{-- --}}
@@ -269,23 +283,32 @@