fully working now
This commit is contained in:
@ -42,6 +42,6 @@ class AuthenticatedSessionController extends Controller
|
||||
|
||||
$request->session()->regenerateToken();
|
||||
|
||||
return redirect('/');
|
||||
return redirect()->route('login');
|
||||
}
|
||||
}
|
||||
|
74
crm-panel/app/Http/Controllers/CompanyController.php
Normal file
74
crm-panel/app/Http/Controllers/CompanyController.php
Normal file
@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Company;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CompanyController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$companies = Company::paginate(10);
|
||||
return view('companies.index', compact('companies'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('companies.create');
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'name' => 'required',
|
||||
'email' => 'nullable|email',
|
||||
'logo' => 'nullable|image|dimensions:min_width=100,min_height=100',
|
||||
'website' => 'nullable|url',
|
||||
]);
|
||||
|
||||
if ($request->hasFile('logo')) {
|
||||
$path = $request->file('logo')->store('public/logos');
|
||||
$request->merge(['logo' => $path]);
|
||||
}
|
||||
|
||||
Company::create($request->all());
|
||||
|
||||
return redirect()->route('companies.index')->with('success', 'Company created successfully.');
|
||||
}
|
||||
|
||||
public function show(Company $company)
|
||||
{
|
||||
return view('companies.show', compact('company'));
|
||||
}
|
||||
|
||||
public function edit(Company $company)
|
||||
{
|
||||
return view('companies.edit', compact('company'));
|
||||
}
|
||||
|
||||
public function update(Request $request, Company $company)
|
||||
{
|
||||
$request->validate([
|
||||
'name' => 'required',
|
||||
'email' => 'nullable|email',
|
||||
'logo' => 'nullable|image|dimensions:min_width=100,min_height=100',
|
||||
'website' => 'nullable|url',
|
||||
]);
|
||||
|
||||
if ($request->hasFile('logo')) {
|
||||
$path = $request->file('logo')->store('public/logos');
|
||||
$company->logo = $path;
|
||||
}
|
||||
|
||||
$company->update($request->all());
|
||||
|
||||
return redirect()->route('companies.index')->with('success', 'Company updated successfully.');
|
||||
}
|
||||
|
||||
public function destroy(Company $company)
|
||||
{
|
||||
$company->delete();
|
||||
return redirect()->route('companies.index')->with('success', 'Company deleted successfully.');
|
||||
}
|
||||
}
|
69
crm-panel/app/Http/Controllers/EmployeeController.php
Normal file
69
crm-panel/app/Http/Controllers/EmployeeController.php
Normal file
@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Employee;
|
||||
use App\Models\Company;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class EmployeeController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$employees = Employee::paginate(10);
|
||||
return view('employees.index', compact('employees'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
$companies = Company::all(); // You need to fetch companies for the dropdown
|
||||
return view('employees.create', compact('companies'));
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'first_name' => 'required',
|
||||
'last_name' => 'required',
|
||||
'company_id' => 'required|exists:companies,id',
|
||||
'email' => 'nullable|email',
|
||||
'phone' => 'nullable|string',
|
||||
]);
|
||||
|
||||
Employee::create($request->all());
|
||||
|
||||
return redirect()->route('employees.index');
|
||||
}
|
||||
|
||||
public function show(Employee $employee)
|
||||
{
|
||||
return view('employees.show', compact('employee'));
|
||||
}
|
||||
|
||||
public function edit(Employee $employee)
|
||||
{
|
||||
$companies = Company::all();
|
||||
return view('employees.edit', compact('employee', 'companies'));
|
||||
}
|
||||
|
||||
public function update(Request $request, Employee $employee)
|
||||
{
|
||||
$request->validate([
|
||||
'first_name' => 'required',
|
||||
'last_name' => 'required',
|
||||
'company_id' => 'required|exists:companies,id',
|
||||
'email' => 'nullable|email',
|
||||
'phone' => 'nullable|string',
|
||||
]);
|
||||
|
||||
$employee->update($request->all());
|
||||
|
||||
return redirect()->route('employees.index');
|
||||
}
|
||||
|
||||
public function destroy(Employee $employee)
|
||||
{
|
||||
$employee->delete();
|
||||
return redirect()->route('employees.index');
|
||||
}
|
||||
}
|
@ -2,9 +2,18 @@
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Company extends Model
|
||||
{
|
||||
//
|
||||
use HasFactory;
|
||||
|
||||
// Define fillable fields for mass assignment
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'email',
|
||||
'logo',
|
||||
'website',
|
||||
];
|
||||
}
|
||||
|
@ -2,9 +2,19 @@
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Employee extends Model
|
||||
{
|
||||
//
|
||||
use HasFactory;
|
||||
|
||||
// Add these fields to allow mass assignment
|
||||
protected $fillable = [
|
||||
'first_name',
|
||||
'last_name',
|
||||
'company_id',
|
||||
'email',
|
||||
'phone',
|
||||
];
|
||||
}
|
||||
|
Reference in New Issue
Block a user