show doc and dashboard by user region

pull/2/head
ajikamaludin 2 years ago
parent 5ab08584e2
commit ccd57a542b

@ -43,6 +43,11 @@ class DocumentController extends Controller
}); });
} }
if($request->user()->region_id != null) {
$companies = Company::where('region_id', $request->user()->region_id)->pluck('id')->toArray();
$query->whereIn('company_id', $companies);
}
return inertia('Document/Index', [ return inertia('Document/Index', [
'docs' => $query->paginate(10), 'docs' => $query->paginate(10),
]); ]);

@ -2,26 +2,44 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Company;
use App\Models\Category; use App\Models\Category;
use App\Models\Document; use App\Models\Document;
class GeneralController extends Controller class GeneralController extends Controller
{ {
public function index() public function index(Request $request)
{ {
$companies = [];
if($request->user()->region_id != null) {
$companies = Company::where('region_id', $request->user()->region_id)->pluck('id')->toArray();
}
$count = 0; $count = 0;
$categories = Category::all(); $categories = Category::all();
foreach($categories as $category) { foreach($categories as $category) {
foreach($category->documents as $docs) { if(count($companies) > 0) {
$documents = $category->documents()->whereIn('company_id', $companies)->get();
} else {
$documents = $category->documents;
}
foreach($documents as $docs) {
if ($docs->is_close_due != 0) { if ($docs->is_close_due != 0) {
$count += 1; $count += 1;
} }
} }
} }
if(count($companies) > 0) {
$update = Document::whereDate('due_date', '<=', now()->toDateString())->whereIn('company_id', $companies)->count();
} else {
$update = Document::whereDate('due_date', '<=', now()->toDateString())->count();
}
return inertia('Dashboard', [ return inertia('Dashboard', [
'count_active' => $count, 'count_active' => $count,
'count_update' => Document::whereDate('due_date', '<=', now()->toDateString())->count(), 'count_update' => $update
]); ]);
} }
} }

@ -25,7 +25,7 @@ class UserController extends Controller
return inertia('User/Index', [ return inertia('User/Index', [
'users' => $query->paginate(10), 'users' => $query->paginate(10),
'roles' => Role::all(), 'roles' => Role::all(),
'regions' => Region::all(), 'regions' => Region::with(['group'])->get(),
]); ]);
} }

10
composer.lock generated

@ -1251,16 +1251,16 @@
}, },
{ {
"name": "laravel/framework", "name": "laravel/framework",
"version": "v9.50.1", "version": "v9.50.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/framework.git", "url": "https://github.com/laravel/framework.git",
"reference": "3b400f76619cd5257a69fdd6b897043b6522a89a" "reference": "39932773c09658ddea9045958f305e67f9304995"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/3b400f76619cd5257a69fdd6b897043b6522a89a", "url": "https://api.github.com/repos/laravel/framework/zipball/39932773c09658ddea9045958f305e67f9304995",
"reference": "3b400f76619cd5257a69fdd6b897043b6522a89a", "reference": "39932773c09658ddea9045958f305e67f9304995",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1435,7 +1435,7 @@
"issues": "https://github.com/laravel/framework/issues", "issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework" "source": "https://github.com/laravel/framework"
}, },
"time": "2023-02-01T17:36:26+00:00" "time": "2023-02-02T20:52:46+00:00"
}, },
{ {
"name": "laravel/sanctum", "name": "laravel/sanctum",

@ -73,7 +73,7 @@ export default function Types(props) {
{regions?.map((region) => ( {regions?.map((region) => (
<tr key={region.id}> <tr key={region.id}>
<th>{region.id}</th> <th>{region.id}</th>
<td>{region.name}</td> <td>{`${region.name} (${region.group.name})`}</td>
<td>{region.group.name}</td> <td>{region.group.name}</td>
<td className="text-right"> <td className="text-right">
{canUpdate && ( {canUpdate && (

@ -109,7 +109,9 @@ export default function Users(props) {
<td>{user.email}</td> <td>{user.email}</td>
<td>{user?.role?.name}</td> <td>{user?.role?.name}</td>
<td>{user?.region?.group?.name}</td> <td>{user?.region?.group?.name}</td>
<td>{user?.region?.name}</td> <td>
{user.region ? `${user?.region?.name} (${user?.region?.group?.name})` : ''}
</td>
<td className="text-right"> <td className="text-right">
{canUpdate && ( {canUpdate && (
<div <div

@ -149,7 +149,7 @@ export default function UserFormModal(props) {
> >
<option disabled value=""></option> <option disabled value=""></option>
{regions.map(region => ( {regions.map(region => (
<option key={region.id} value={region.id}>{region.name}</option> <option key={region.id} value={region.id}>{`${region.name} (${region.group.name})`}</option>
))} ))}
</select> </select>
<label className="label"> <label className="label">

Loading…
Cancel
Save