diff --git a/Modules/Company/Http/Controllers/CompanyController.php b/Modules/Company/Http/Controllers/CompanyController.php index 042dc401..dcb586a8 100644 --- a/Modules/Company/Http/Controllers/CompanyController.php +++ b/Modules/Company/Http/Controllers/CompanyController.php @@ -5,6 +5,7 @@ namespace Modules\Company\Http\Controllers; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Str; +use Illuminate\Validation\Rule; use Modules\Company\Models\Company; class CompanyController extends Controller @@ -38,4 +39,56 @@ class CompanyController extends Controller return back()->with('status', 'Company created.'); } + + public function create() + { + + return view('company::create', [ + + 'company' => new Company, + + ]); + + } + + public function show(Company $company) + { + return view('company::show', [ + 'company' => $company, + ]); + } + + public function edit(Company $company) + { + return view('company::edit', [ + 'company' => $company, + ]); + } + + public function update(Request $request, Company $company) + { + $company->update($this->validated($request, $company)); + + return redirect() + ->route('platform.companies.show', $company) + ->with('status', 'Company updated.'); + } + + public function destroy(Company $company) + { + $company->delete(); + + return redirect() + ->route('platform.companies.index') + ->with('status', 'Company deleted.'); + } + + private function validated(Request $request, ?Company $company = null): array + { + return $request->validate([ + 'name' => ['required', 'string', 'max:255'], + 'billing_email' => ['required', 'email', 'max:255'], + 'status' => ['required', Rule::in(['active', 'inactive'])], + ]); + } } diff --git a/Modules/Company/Providers/RouteServiceProvider.php b/Modules/Company/Providers/RouteServiceProvider.php index 0e0adf2b..8d38c074 100644 --- a/Modules/Company/Providers/RouteServiceProvider.php +++ b/Modules/Company/Providers/RouteServiceProvider.php @@ -12,7 +12,8 @@ class RouteServiceProvider extends ServiceProvider * * @var string */ - protected $moduleNamespace = 'Modules\Company\Http\Controllers'; + protected $moduleNamespace = ''; + // this must be blank for resource routes !! /** * Called before routes are registered. diff --git a/Modules/Company/Resources/views/_form.blade.php b/Modules/Company/Resources/views/_form.blade.php new file mode 100644 index 00000000..cf989ca7 --- /dev/null +++ b/Modules/Company/Resources/views/_form.blade.php @@ -0,0 +1,47 @@ +{{-- Modules/Company/resources/views/companies/_form.blade.php --}} + +@csrf + +
{{ $message }}
@enderror +{{ $message }}
@enderror +{{ $message }}
@enderror +| Name | -Users | -Warehouses | -Licences | -Status | -|
|---|---|---|---|---|---|
| Name | +Users | +Warehouses | +Licences | +Status | +Actions | +
| {{ $company->name }} | -{{ $company->users_count }} | -{{ $company->warehouses_count }} | -{{ $company->license_keys_count }} | -{{ $company->is_system_company ? 'System' : $company->status }} | -|
| + {{ $company->name }} + | + ++ {{ $company->users_count }} + | + ++ {{ $company->warehouses_count }} + | + ++ {{ $company->license_keys_count }} + | + ++ + {{ $company->is_system_company ? 'System' : ucfirst($company->status) }} + + | + ++ + | +
| + No companies found. + | +|||||