diff --git a/app/Http/Controllers/CustomerController.php b/app/Http/Controllers/CustomerController.php
index 5b69263..54672c9 100644
--- a/app/Http/Controllers/CustomerController.php
+++ b/app/Http/Controllers/CustomerController.php
@@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use App\Models\Customer;
+use App\Services\GeneralService;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
@@ -17,7 +18,7 @@ class CustomerController extends Controller
}
$query->orderBy('created_at', 'desc');
-
+
return inertia('Customer/Index', [
'query' => $query->paginate(10),
]);
@@ -32,7 +33,7 @@ class CustomerController extends Controller
]);
Customer::create([
- 'code' => Str::upper(Str::random(6)),
+ 'code' => 'PE-' . GeneralService::formatNum(Customer::count() + 1),
'name' => $request->name,
'phone' => $request->phone,
'address' => $request->address,
diff --git a/app/Http/Controllers/ProductController.php b/app/Http/Controllers/ProductController.php
index 216e80f..61cbb07 100644
--- a/app/Http/Controllers/ProductController.php
+++ b/app/Http/Controllers/ProductController.php
@@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use App\Models\Product;
+use App\Services\GeneralService;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
@@ -17,7 +18,7 @@ class ProductController extends Controller
}
$query->orderBy('created_at', 'desc');
-
+
return inertia('Product/Index', [
'query' => $query->paginate(10),
]);
@@ -31,15 +32,17 @@ class ProductController extends Controller
'cost' => 'required|numeric|min:1',
'stock' => 'required|numeric|min:1',
'category_id' => 'required|exists:categories,id',
+ 'is_active' => 'required|in:0,1',
]);
Product::create([
- 'code' => Str::upper(Str::random(6)),
+ 'code' => 'PO-' . GeneralService::formatNum(Product::count() + 1),
'name' => $request->name,
'price' => $request->price,
'cost' => $request->cost,
'stock' => $request->stock,
'category_id' => $request->category_id,
+ 'is_active' => $request->is_active,
]);
return redirect()->route('product.index')
@@ -54,6 +57,7 @@ class ProductController extends Controller
'cost' => 'required|numeric|min:1',
'stock' => 'required|numeric|min:1',
'category_id' => 'required|exists:categories,id',
+ 'is_active' => 'required|in:0,1',
]);
$product->update([
@@ -62,6 +66,7 @@ class ProductController extends Controller
'cost' => $request->cost,
'stock' => $request->stock,
'category_id' => $request->category_id,
+ 'is_active' => $request->is_active,
]);
return redirect()->route('product.index')
diff --git a/app/Models/Product.php b/app/Models/Product.php
index 20c64c5..3afe19a 100644
--- a/app/Models/Product.php
+++ b/app/Models/Product.php
@@ -4,6 +4,10 @@ namespace App\Models;
class Product extends Model
{
+ const ACTIVE = 0;
+
+ const INACTIVE = 1;
+
protected $fillable = [
'code',
'name',
@@ -11,6 +15,7 @@ class Product extends Model
'cost',
'stock',
'category_id',
+ 'is_active'
];
public function category()
diff --git a/app/Services/GeneralService.php b/app/Services/GeneralService.php
new file mode 100644
index 0000000..bc7acee
--- /dev/null
+++ b/app/Services/GeneralService.php
@@ -0,0 +1,24 @@
+decimal('cost', 14, 2)->default(0);
$table->decimal('stock', 14, 2)->default(0);
$table->uuid('category_id')->nullable();
+ $table->smallInteger('is_active')->default(0);
$table->timestamps();
$table->softDeletes();
$table->uuid('created_by')->nullable();
diff --git a/database/seeders/DummySeeder.php b/database/seeders/DummySeeder.php
index d862960..9377b12 100644
--- a/database/seeders/DummySeeder.php
+++ b/database/seeders/DummySeeder.php
@@ -5,6 +5,7 @@ namespace Database\Seeders;
use App\Models\Category;
use App\Models\Customer;
use App\Models\Product;
+use App\Services\GeneralService;
use Illuminate\Database\Seeder;
use Illuminate\Support\Str;
@@ -48,9 +49,9 @@ class DummySeeder extends Seeder
'Sepatu',
'Obat Nyamuk'
];
- foreach ($products as $prod) {
+ foreach ($products as $index => $prod) {
Product::create([
- 'code' => Str::upper(Str::random(6)),
+ 'code' => 'PO-' . GeneralService::formatNum($index + 1),
'name' => $prod,
'price' => rand(1000, 10000),
'cost' => rand(1000, 10000),
@@ -59,9 +60,9 @@ class DummySeeder extends Seeder
]);
}
- foreach (['Customer A', 'Customer B'] as $cust) {
+ foreach (['Customer A', 'Customer B'] as $index => $cust) {
Customer::create([
- 'code' => Str::upper(Str::random(6)),
+ 'code' => 'PE-' . GeneralService::formatNum($index + 1),
'name' => $cust,
]);
}
diff --git a/resources/js/Pages/Auth/Login.jsx b/resources/js/Pages/Auth/Login.jsx
index ef9e826..705af10 100644
--- a/resources/js/Pages/Auth/Login.jsx
+++ b/resources/js/Pages/Auth/Login.jsx
@@ -1,43 +1,52 @@
-import React, { useEffect } from 'react';
-import GuestLayout from '@/Layouts/GuestLayout';
-import InputError from '@/Components/Defaults/InputError';
-import { Head, Link, useForm } from '@inertiajs/react';
-import { Button, TextInput,Label, Checkbox, Spinner } from 'flowbite-react';
+import React, { useEffect } from 'react'
+import GuestLayout from '@/Layouts/GuestLayout'
+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({ status }) {
const { data, setData, post, processing, errors, reset } = useForm({
email: '',
password: '',
remember: '',
- });
+ })
useEffect(() => {
return () => {
- reset('password');
- };
- }, []);
+ reset('password')
+ }
+ }, [])
const onHandleChange = (event) => {
- setData(event.target.name, event.target.type === 'checkbox' ? event.target.checked : event.target.value);
- };
+ setData(
+ event.target.name,
+ event.target.type === 'checkbox'
+ ? event.target.checked
+ : event.target.value
+ )
+ }
- const handleKeyDown = e => {
- if(e.code === 'Enter') {
+ const handleKeyDown = (e) => {
+ if (e.code === 'Enter') {
post(route('login'))
}
}
const submit = (e) => {
- e.preventDefault();
+ e.preventDefault()
- post(route('login'));
- };
+ post(route('login'))
+ }
return (