diff --git a/app/Http/Controllers/GeneralController.php b/app/Http/Controllers/GeneralController.php index 0559b8b..c75cc43 100644 --- a/app/Http/Controllers/GeneralController.php +++ b/app/Http/Controllers/GeneralController.php @@ -2,11 +2,15 @@ namespace App\Http\Controllers; +use App\Models\Customer; + class GeneralController extends Controller { public function index() { - return inertia('Dashboard'); + return inertia('Dashboard', [ + 'customer_count' => Customer::count() + ]); } public function maintance() diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 0eb7a39..d45d029 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -2,8 +2,10 @@ namespace App\Http\Controllers; +use App\Models\Customer; use App\Models\Setting; use Illuminate\Http\Request; +use Illuminate\Support\Str; class HomeController extends Controller { @@ -11,6 +13,8 @@ class HomeController extends Controller { return inertia('Home', [ 'app_name' => Setting::where('key', 'app_name')->value('value'), + 'customer' => null, + 'point' => 0, ]); } @@ -19,5 +23,18 @@ class HomeController extends Controller $request->validate([ 'customer_code' => 'required|string|exists:customers,code' ]); + + $name = ""; + $customer = Customer::where('code', $request->customer_code)->first(); + $names = explode(' ', $customer->name); + foreach ($names as $n) { + $name .= Str::mask($n, '*', 3) . ' '; + } + return inertia('Home', [ + 'app_name' => Setting::where('key', 'app_name')->value('value'), + 'customer' => $name, + 'point' => $customer->last_point, + 'names' => $names + ]); } } diff --git a/resources/js/Pages/CustomerPoint/Index.jsx b/resources/js/Pages/CustomerPoint/Index.jsx index 4e9aed9..4438934 100644 --- a/resources/js/Pages/CustomerPoint/Index.jsx +++ b/resources/js/Pages/CustomerPoint/Index.jsx @@ -84,6 +84,7 @@ export default function Customer(props) { onItemSelected={(id) => setCustomerId(id) } + placeholder="filter customer" />
diff --git a/resources/js/Pages/Dashboard.jsx b/resources/js/Pages/Dashboard.jsx index 8da35b7..96b1272 100644 --- a/resources/js/Pages/Dashboard.jsx +++ b/resources/js/Pages/Dashboard.jsx @@ -1,8 +1,10 @@ -import React from 'react'; -import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout'; -import { Head } from '@inertiajs/react'; +import React from 'react' +import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout' +import { Head } from '@inertiajs/react' +import { formatIDR } from '@/utils' export default function Dashboard(props) { + const { customer_count } = props return (
-
-
Dashboard
+
+
+
+
Total Customer
+
+ {formatIDR(customer_count)} +
+
+
- ); + ) } diff --git a/resources/js/Pages/Home.jsx b/resources/js/Pages/Home.jsx index 4aea277..48f0147 100644 --- a/resources/js/Pages/Home.jsx +++ b/resources/js/Pages/Home.jsx @@ -4,7 +4,7 @@ import InputError from '@/Components/Defaults/InputError' import { Head, Link, useForm } from '@inertiajs/react' import { Button, TextInput, Label, Checkbox, Spinner } from 'flowbite-react' -export default function Login({ app_name }) { +export default function Login({ app_name, customer, point }) { const { data, setData, post, processing, errors, reset } = useForm({ customer_code: '', }) @@ -44,7 +44,6 @@ export default function Login({ app_name }) { type="text" name="customer_code" value={data.customer_code} - className="mt-1 block w-full" autoFocus={true} onChange={onHandleChange} placeholder="Customer Code" @@ -53,9 +52,24 @@ export default function Login({ app_name }) {
+ {customer !== null && ( +
+
+ Customer:{' '} + {customer} +
+
+ Point:{' '} + {point} +
+
+ )}