2025-10-20 08:57:51 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
|
use App\Http\Controllers\CustomerController;
|
2025-11-21 13:23:13 +01:00
|
|
|
use App\Http\Controllers\NoteController;
|
2025-10-20 08:57:51 +02:00
|
|
|
use App\Http\Controllers\InvoiceController;
|
2025-11-18 10:27:49 +01:00
|
|
|
use App\Http\Controllers\LineItemController;
|
2025-10-20 08:57:51 +02:00
|
|
|
use App\Http\Controllers\PaymentTermsController;
|
2025-11-26 10:05:43 +01:00
|
|
|
use App\Http\Controllers\ProductController;
|
2025-10-20 08:57:51 +02:00
|
|
|
use App\Http\Controllers\SettingController;
|
2025-12-02 17:32:52 +01:00
|
|
|
use App\Http\Controllers\TodoController;
|
2025-12-08 13:20:52 +01:00
|
|
|
use App\Http\Controllers\UnitController;
|
2025-10-29 12:07:30 +01:00
|
|
|
use App\Mail\OrderConfirmation;
|
2025-12-02 17:32:52 +01:00
|
|
|
use App\Services\CaldavService;
|
2026-02-17 10:35:03 +01:00
|
|
|
use App\Http\Controllers\TimesheetController;
|
|
|
|
|
use App\Http\Controllers\TimesheetEntryController;
|
|
|
|
|
use App\Http\Controllers\PipelineController;
|
|
|
|
|
use App\Http\Controllers\PipelineItemController;
|
|
|
|
|
|
|
|
|
|
Route::get('/pipeline', [PipelineController::class, 'index']);
|
|
|
|
|
Route::post('/pipeline/positions', [PipelineController::class, 'updatePositions']);
|
|
|
|
|
|
|
|
|
|
Route::get('/pipelineItems', [PipelineItemController::class, 'index']);
|
|
|
|
|
Route::get('/pipelineItems/{id}', [PipelineItemController::class, 'single']);
|
|
|
|
|
Route::post('/pipelineItems', [PipelineItemController::class, 'store']);
|
|
|
|
|
Route::put('/pipelineItems/{id}', [PipelineItemController::class, 'update']);
|
|
|
|
|
Route::delete('/pipelineItems/{id}', [PipelineItemController::class, 'delete']);
|
2025-10-20 08:57:51 +02:00
|
|
|
|
2025-11-18 10:27:49 +01:00
|
|
|
Route::get('/customers/{id}', [CustomerController::class, 'single']);
|
|
|
|
|
Route::get('/customers', [CustomerController::class, 'index']);
|
2025-10-20 08:57:51 +02:00
|
|
|
|
2026-02-24 16:15:21 +01:00
|
|
|
Route::get('/notes', [NoteController::class, 'index']);
|
|
|
|
|
Route::get('/notes/{modelType}/{notableId}', [NoteController::class, 'notesForModel']);
|
2026-02-17 10:35:03 +01:00
|
|
|
Route::delete('/notes/{id}', [NoteController::class, 'delete']);
|
|
|
|
|
Route::post('/notes', [NoteController::class, 'store'])
|
2025-11-21 13:23:13 +01:00
|
|
|
->name('customers.notes.store');
|
|
|
|
|
|
2025-12-02 17:32:52 +01:00
|
|
|
|
|
|
|
|
Route::get('/todo-types', function () {
|
|
|
|
|
return \App\Models\TodoType::all();
|
|
|
|
|
});
|
|
|
|
|
Route::apiResource('/todos', TodoController::class);
|
2026-02-24 16:15:21 +01:00
|
|
|
Route::get('/todos/{modelType}/{notableId}', [TodoController::class, 'todosForModel']);
|
2025-12-02 17:32:52 +01:00
|
|
|
|
2025-11-26 10:05:43 +01:00
|
|
|
Route::get('/products/', [ProductController::class, 'index']);
|
|
|
|
|
Route::get('/products/{id}', [ProductController::class, 'single']);
|
|
|
|
|
|
2025-11-18 10:27:49 +01:00
|
|
|
Route::get('/invoices/summary', [InvoiceController::class, 'summaryAll']);
|
|
|
|
|
Route::get('/invoices/summaryThisYear', [InvoiceController::class, 'summaryThisYear']);
|
|
|
|
|
Route::get('/invoices/summaryBeforeThisYear', [InvoiceController::class, 'summaryBeforeThisYear']);
|
2025-11-25 13:46:45 +01:00
|
|
|
Route::get('/invoices/salesStatistics', [InvoiceController::class, 'salesStatistics']);
|
2025-10-20 08:57:51 +02:00
|
|
|
Route::get('/invoices', [InvoiceController::class, 'index']);
|
|
|
|
|
Route::post('/invoices', [InvoiceController::class, 'store']);
|
2025-10-22 11:58:18 +02:00
|
|
|
Route::get('/invoices/{id}', [InvoiceController::class, 'single']);
|
2025-10-20 08:57:51 +02:00
|
|
|
Route::put('/invoices/{id}', [InvoiceController::class, 'update']);
|
|
|
|
|
Route::delete('/invoices/{id}', [InvoiceController::class, 'delete']);
|
2025-11-19 14:30:24 +01:00
|
|
|
Route::get('/invoices/{id}/remind', [InvoiceController::class, 'remind']);
|
2025-10-22 11:58:18 +02:00
|
|
|
|
2025-11-18 10:27:49 +01:00
|
|
|
Route::get('/lineitems/{invoiceId}', [LineItemController::class, 'index']);
|
2026-01-20 12:21:31 +01:00
|
|
|
Route::post('/lineitems/import', [LineItemController::class, 'importFromCsv']);
|
2025-11-19 14:30:24 +01:00
|
|
|
|
2025-10-29 13:53:08 +01:00
|
|
|
Route::get('/offers/{id}/confirm', function ($id) {
|
2025-10-29 12:07:30 +01:00
|
|
|
// $offer = offerController::single($id);
|
|
|
|
|
$offer = [
|
|
|
|
|
'nr' => 0,
|
|
|
|
|
'offerDate' => '2025-10-01',
|
|
|
|
|
'orderDate' => '2025-10-28',
|
|
|
|
|
'customerId' => 0,
|
|
|
|
|
'customer' => [
|
|
|
|
|
'companyName' => '',
|
|
|
|
|
'vatId' => '',
|
|
|
|
|
'billingAddress' => [
|
|
|
|
|
'lineOne' => '',
|
|
|
|
|
'lineTwo' => '',
|
|
|
|
|
'city' => '',
|
|
|
|
|
'postalCode' => '',
|
|
|
|
|
'countryCode' => 'DE',
|
|
|
|
|
]
|
|
|
|
|
],
|
|
|
|
|
'contact' => [
|
|
|
|
|
'salutation' => 'Frau',
|
2025-10-29 13:53:08 +01:00
|
|
|
'firstName' => 'Claudia',
|
|
|
|
|
'lastName' => 'Mustermann',
|
2025-10-29 12:07:30 +01:00
|
|
|
'email' => '',
|
|
|
|
|
'phone' => '',
|
|
|
|
|
'position' => null,
|
|
|
|
|
'isPrimary' => false,
|
|
|
|
|
'avatar' => null,
|
|
|
|
|
],
|
2025-10-29 13:53:08 +01:00
|
|
|
'totalAmount' => '84.033',
|
|
|
|
|
'title' => "Angebots-Titel",
|
2025-10-29 12:07:30 +01:00
|
|
|
'text' => '',
|
|
|
|
|
'items' => [],
|
|
|
|
|
'paymentTerms' => [
|
|
|
|
|
'name' => 'onReceipt',
|
|
|
|
|
'description' => 'Bei Rechnungserhalt',
|
|
|
|
|
'isFixed' => true,
|
2025-10-29 13:53:08 +01:00
|
|
|
'days' => 14,
|
2025-10-29 12:07:30 +01:00
|
|
|
]
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
// Mail::to('')->cc([''])->send(new OrderConfirmation($offer));
|
|
|
|
|
return new OrderConfirmation($offer);
|
2025-10-22 11:58:18 +02:00
|
|
|
});
|
2025-10-20 08:57:51 +02:00
|
|
|
|
|
|
|
|
Route::get('/paymentterms', [PaymentTermsController::class, 'index']);
|
|
|
|
|
|
|
|
|
|
Route::get('/settings', [SettingController::class, 'index']);
|
2025-10-22 11:58:18 +02:00
|
|
|
Route::post('/settings', [SettingController::class, 'update']);
|
2025-12-08 13:20:52 +01:00
|
|
|
|
|
|
|
|
Route::apiResource('/units', UnitController::class);
|
2026-02-17 10:35:03 +01:00
|
|
|
|
|
|
|
|
Route::apiResource('timesheets', TimesheetController::class);
|
|
|
|
|
Route::get('timesheets/{timesheet}/entries', [TimesheetEntryController::class, 'getEntriesForTimesheet']);
|
|
|
|
|
Route::apiResource('timesheet-entries', TimesheetEntryController::class);
|
|
|
|
|
Route::patch('timesheet-entries/{timesheetEntry}/toggle-billed', [TimesheetEntryController::class, 'toggleBilled']);
|