feat: implement core ERP modules, multi-tenant architecture, and comprehensive system workflow documentation.

This commit is contained in:
Ajjj
2026-08-05 01:18:31 +08:00
parent 1fcb468dc1
commit c03de704e2
46 changed files with 1902 additions and 387 deletions

View File

@@ -45,40 +45,6 @@ class ProjectController extends Controller
->where('current_wizard_step', '<', 7)
->with(['contractor:id,company_name', 'personnel:id,name']);
// Filter non-admin users to assigned projects or company projects
if ($user && $user->user_type !== 'admin' && ! $user->hasRole('Super Admin')) {
$query->where(function ($q) use ($user) {
$q->whereHas('personnel', function ($pq) use ($user) {
$pq->where('users.id', $user->id);
});
if ($user->contractor_id) {
$q->orWhere('contractor_id', $user->contractor_id);
} else {
$q->orWhereNull('contractor_id');
}
});
$historyQuery->where(function ($q) use ($user) {
$q->whereHas('personnel', function ($pq) use ($user) {
$pq->where('users.id', $user->id);
});
if ($user->contractor_id) {
$q->orWhere('contractor_id', $user->contractor_id);
} else {
$q->orWhereNull('contractor_id');
}
});
$draftsQuery->where(function ($q) use ($user) {
$q->whereHas('personnel', function ($pq) use ($user) {
$pq->where('users.id', $user->id);
});
if ($user->contractor_id) {
$q->orWhere('contractor_id', $user->contractor_id);
} else {
$q->orWhereNull('contractor_id');
}
});
}
$projects = $query
->when($request->search, fn ($q, $s) => $q->where('name', 'like', "%{$s}%")->orWhere('code', 'like', "%{$s}%"))
->when($request->status, fn ($q, $s) => $q->where('status', $s))