diff --git a/app/Livewire/Sparepart/CreateSparepart.php b/app/Livewire/Sparepart/CreateSparepart.php new file mode 100644 index 0000000..1bebe71 --- /dev/null +++ b/app/Livewire/Sparepart/CreateSparepart.php @@ -0,0 +1,46 @@ +validate([ + 'name' => ['required', 'string', 'max:255'], + 'description' => ['nullable', 'string', 'max:255'], + 'manufacturer_id' => ['required', 'integer'], + ]); + + $sparepart = new Model(); + $sparepart->name = $this->name; + $sparepart->description = $this->description; + $sparepart->manufacturer_id = $this->manufacturer_id; + $sparepart->save(); + + return $this->redirectRoute('spareparts.show', $sparepart->id, navigate: true); + } + + public function cancel(){ + return $this->redirectRoute('spareparts.index', navigate: true); + } + + public function render() + { + return view('livewire.sparepart.create', [ + ]); + } +} diff --git a/app/Livewire/Sparepart/EditSparepart.php b/app/Livewire/Sparepart/EditSparepart.php new file mode 100644 index 0000000..39a28ca --- /dev/null +++ b/app/Livewire/Sparepart/EditSparepart.php @@ -0,0 +1,52 @@ +validate([ + 'name' => ['required', 'string', 'max:255'], + 'description' => ['nullable', 'string', 'max:255'], + 'manufacturer_id' => ['required', 'integer'], + ]); + + $this->sparepart->update([ + 'name' => $this->name, + 'description' => $this->description, + 'manufacturer_id' => $this->manufacturer_id + ]); + + return $this->redirectRoute('spareparts.show', $this->sparepart->id, navigate: true); + } + + public function cancel(){ + return $this->redirectRoute('spareparts.index', navigate: true); + } + + public function mount(Model $sparepart){ + $this->filament = $sparepart; + $this->name = $sparepart->name; + $this->description = $sparepart->description; + $this->manufacturer_id = $sparepart->manufacturer_id; + } + + public function render() + { + return view('livewire.sparepart.create', [ + ]); + } +} diff --git a/app/Livewire/Sparepart/ShowSparepart.php b/app/Livewire/Sparepart/ShowSparepart.php new file mode 100644 index 0000000..39df0fd --- /dev/null +++ b/app/Livewire/Sparepart/ShowSparepart.php @@ -0,0 +1,29 @@ +route('spareparts.index'); + } + + public function edit($id){ + return redirect()->route('spareparts.edit', $id); + } + + public function render() + { + return view('livewire.sparepart.show', [ + + ]); + } +} diff --git a/app/Livewire/Sparepart/Sparepart.php b/app/Livewire/Sparepart/Sparepart.php new file mode 100644 index 0000000..519646a --- /dev/null +++ b/app/Livewire/Sparepart/Sparepart.php @@ -0,0 +1,44 @@ +redirectRoute('spareparts.create', navigate: true); + } + + public function show($id){ + return $this->redirectRoute('spareparts.show', $id); + } + + public function edit($id){ + return $this->redirectRoute('spareparts.edit', $id); + } + + public function delete($id){ + @Auth::check(); + Model::destroy($id); + } + + public function render() + { + return view('livewire.sparepart.index', [ + 'spareparts' => Model::search('name', $this->search)->paginate(25) + ]); + } +} diff --git a/app/Models/Sparepart.php b/app/Models/Sparepart.php new file mode 100644 index 0000000..34683cc --- /dev/null +++ b/app/Models/Sparepart.php @@ -0,0 +1,20 @@ +belongsTo(Manufacturer::class); + } +} diff --git a/database/migrations/2026_01_24_083842_create_spareparts_table.php b/database/migrations/2026_01_24_083842_create_spareparts_table.php new file mode 100644 index 0000000..ce1ff95 --- /dev/null +++ b/database/migrations/2026_01_24_083842_create_spareparts_table.php @@ -0,0 +1,30 @@ +id(); + $table->string('name'); + $table->string('description')->nullable(); + $table->foreignId('manufacturer_id')->constrained('manufacturers')->onUpdate('cascade')->onDelete('cascade'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('spareparts'); + } +}; diff --git a/resources/views/components/navbar.blade.php b/resources/views/components/navbar.blade.php index f308320..b1a3f14 100644 --- a/resources/views/components/navbar.blade.php +++ b/resources/views/components/navbar.blade.php @@ -15,7 +15,7 @@ Filaments - + SpareParts diff --git a/resources/views/livewire/buildplate/show.blade.php b/resources/views/livewire/buildplate/show.blade.php index 9d173a4..4c4f31e 100644 --- a/resources/views/livewire/buildplate/show.blade.php +++ b/resources/views/livewire/buildplate/show.blade.php @@ -3,7 +3,7 @@ {{ __('Show Buildplate') }} - Back + Back Edit @@ -45,5 +45,5 @@ - + diff --git a/resources/views/livewire/color/show.blade.php b/resources/views/livewire/color/show.blade.php index f0fb673..7a5caf1 100644 --- a/resources/views/livewire/color/show.blade.php +++ b/resources/views/livewire/color/show.blade.php @@ -3,7 +3,7 @@ {{ __('Show Color') }} - Back + Back Edit diff --git a/resources/views/livewire/extruder/show.blade.php b/resources/views/livewire/extruder/show.blade.php index 784c957..ed6aff7 100644 --- a/resources/views/livewire/extruder/show.blade.php +++ b/resources/views/livewire/extruder/show.blade.php @@ -3,7 +3,7 @@ {{ __('Show Extruder') }} - Back + Back Edit @@ -51,5 +51,4 @@ - diff --git a/resources/views/livewire/filament/show.blade.php b/resources/views/livewire/filament/show.blade.php index 2bd8706..49186c5 100644 --- a/resources/views/livewire/filament/show.blade.php +++ b/resources/views/livewire/filament/show.blade.php @@ -4,7 +4,7 @@ {{ __('Show Filament') }} - Back + Back Edit diff --git a/resources/views/livewire/manufacturer/show.blade.php b/resources/views/livewire/manufacturer/show.blade.php index 83d65b3..20987f6 100644 --- a/resources/views/livewire/manufacturer/show.blade.php +++ b/resources/views/livewire/manufacturer/show.blade.php @@ -4,7 +4,7 @@ {{ __('Show Manufacturer') }} - Back + Back Edit diff --git a/resources/views/livewire/sparepart/create.blade.php b/resources/views/livewire/sparepart/create.blade.php new file mode 100644 index 0000000..093291b --- /dev/null +++ b/resources/views/livewire/sparepart/create.blade.php @@ -0,0 +1,49 @@ +
+
+ + {{ __('Create Sparepart') }} + + + Save + Cancel + + + +
+
+
+

Sparepart Information

+

Sparepart details.

+
+
+
+
+
Name
+
+ +
+
+
+
Description
+
+ +
+
+
+
Manufacturer
+
+ + Select Manufacturer + @foreach(\App\Models\Manufacturer::all() as $manufacturer) + {{$manufacturer->name}} + @endforeach + +
+
+
+
+
+ +
+
+
diff --git a/resources/views/livewire/sparepart/edit.blade.php b/resources/views/livewire/sparepart/edit.blade.php new file mode 100644 index 0000000..d1150f2 --- /dev/null +++ b/resources/views/livewire/sparepart/edit.blade.php @@ -0,0 +1,116 @@ +
+
+ + {{ __('Edit Filament') }} + + + Save + Cancel + + + +
+
+
+

Filament Information

+

Filament details.

+
+
+
+
+
Name
+
+ +
+
+
+
Description
+
+ +
+
+
+
Color
+
+ + Select Color + @foreach(\App\Models\Color::all() as $color) + {{$color->name}} + @endforeach + +
+
+
+
Manufacturer
+
+ + Select Manufacturer + @foreach(\App\Models\Manufacturer::all() as $manufacturer) + {{$manufacturer->name}} + @endforeach + +
+
+
+
Filament Type
+
+ + Select Filament Type + @foreach(\App\Models\FilamentType::all() as $filament_type) + {{$filament_type->name}} + @endforeach + +
+
+
+
Weight
+
+ + + g + +
+
+
+
Diameter
+
+ + + mm + +
+
+
+
Price
+
+ + + + +
+
+
+
Min Temperature
+
+ + + °C + +
+
+
+
Max Temperature
+
+ + + °C + +
+
+
+
+
+ +
+
+
diff --git a/resources/views/livewire/sparepart/index.blade.php b/resources/views/livewire/sparepart/index.blade.php new file mode 100644 index 0000000..b067966 --- /dev/null +++ b/resources/views/livewire/sparepart/index.blade.php @@ -0,0 +1,54 @@ +
+ + {{ __('Spareparts') }} + + + + + + + Create Sparepart + + + +
+
+ +
+ + + ID + Name + Manufacturer + Actions + + + @foreach ($spareparts as $sparepart) + +

{{ $sparepart->id }}

+

{{ $sparepart->name }}

+

+ @if ($sparepart->manufacturer_id !== 0) + + {{ App\Models\Manufacturer::find($sparepart->manufacturer_id)->name }} + + + @endif +

+ +
+ + + +
+
+ + @endforeach + + + {{ $spareparts->links() }} + +
+ +
+
diff --git a/resources/views/livewire/sparepart/show.blade.php b/resources/views/livewire/sparepart/show.blade.php new file mode 100644 index 0000000..d9ceeb5 --- /dev/null +++ b/resources/views/livewire/sparepart/show.blade.php @@ -0,0 +1,47 @@ +
+
+ + {{ __('Show Sparepart') }} + + + Back + Edit + + + +
+
+
+

Filament Information

+

Filament details.

+
+
+
+
+
Name
+
+ {{ $sparepart->name }} +
+
+
+
Description
+
+ {{ $sparepart->description }} +
+
+ +
+
+
+ +
+
+
diff --git a/resources/views/livewire/type/show.blade.php b/resources/views/livewire/type/show.blade.php index 40bf1ab..35efa08 100644 --- a/resources/views/livewire/type/show.blade.php +++ b/resources/views/livewire/type/show.blade.php @@ -3,7 +3,7 @@ {{ __('Show Type - ') . $type->name }} - Back + Back Edit diff --git a/routes/web.php b/routes/web.php index 55aacbd..553dc8f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -5,6 +5,7 @@ use App\Livewire\Buildplate\Buildplate; use App\Livewire\Color\Color; use App\Livewire\Dashboard; use App\Livewire\Filament\Filament; +use App\Livewire\Sparepart\Sparepart; use App\Livewire\Manufacturer\Manufacturer; use App\Livewire\Orders\Orders; use App\Livewire\Settings\Settings; @@ -49,6 +50,12 @@ Route::middleware([ Route::get('filaments/{filament}/edit', \App\Livewire\Filament\EditFilament::class)->name('filaments.edit'); Route::get('filaments/{filament}', \App\Livewire\Filament\ShowFilament::class)->name('filaments.show'); + // SpareParts + Route::get('spareparts', Sparepart::class)->name('spareparts.index'); + Route::get('spareparts/create', \App\Livewire\Sparepart\CreateSparepart::class)->name('spareparts.create'); + Route::get('spareparts/{sparepart}/edit', \App\Livewire\Sparepart\EditSparepart::class)->name('spareparts.edit'); + Route::get('spareparts/{sparepart}', \App\Livewire\Sparepart\ShowSparepart::class)->name('spareparts.show'); + // Manufacturers Route::get('manufacturer', Manufacturer::class)->name('manufacturer.index'); Route::get('manufacturer/create', \App\Livewire\Manufacturer\CreateManufacturer::class)->name('manufacturer.create');