Make handling of incoming invoices smoother.

This commit is contained in:
2025-02-12 19:08:33 +01:00
parent 7b4d8f7fb0
commit c5a58436e1
3 changed files with 93 additions and 46 deletions

View File

@@ -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',