From c3c392e7ea2e3cc7d29bedbc88cf6022d490f4ec Mon Sep 17 00:00:00 2001 From: Gunawan19621 Date: Sun, 3 Dec 2023 08:52:04 +0700 Subject: [PATCH] create not datatables boostrap --- app/Http/Controllers/PeminjamanController.php | 60 ++++- app/Http/Controllers/PetiController.php | 76 +++++- app/Models/asset_status.php | 8 +- app/Providers/AppServiceProvider.php | 3 +- .../Manajemen_Peti/Peti/index.blade.php | 222 +++++++++++++++++- .../dashboard/Peminjaman/index.blade.php | 162 ++++++++++++- resources/views/layouts/main.blade.php | 8 + 7 files changed, 516 insertions(+), 23 deletions(-) diff --git a/app/Http/Controllers/PeminjamanController.php b/app/Http/Controllers/PeminjamanController.php index 1446011..9ec5de1 100644 --- a/app/Http/Controllers/PeminjamanController.php +++ b/app/Http/Controllers/PeminjamanController.php @@ -2,34 +2,80 @@ namespace App\Http\Controllers; -use App\Http\Requests\ValidasiCreatePeminjaman; -use App\Http\Requests\ValidasiUpdatePeminjaman; use App\Models\Peti; +use App\Models\Customer; use App\Models\m_warehouse; use App\Models\asset_status; -use App\Models\Customer; use App\Models\Kondisi_Peti; -use Illuminate\Support\Facades\Auth; +use Illuminate\Http\Request; use Symfony\Component\Uid\Uuid; +use Illuminate\Support\Facades\Auth; +use App\Http\Requests\ValidasiCreatePeminjaman; +use App\Http\Requests\ValidasiUpdatePeminjaman; class PeminjamanController extends Controller { /** * Display a listing of the resource. */ - public function index() + // public function index() + // { + + // $data = [ + // // 'peminjaman' => asset_status::get(), + // 'peminjaman' => asset_status::orderBy('created_at', 'desc')->get(), + // 'warehouse' => m_warehouse::get(), + // 'active' => 'menu-peminjaman', + // ]; + + // return view('dashboard.Peminjaman.index', $data); + // } + public function index(Request $request) { + $perPage = $request->input('perPage', 5); + + $query = asset_status::orderBy('created_at', 'desc'); + // $query = asset_status::select(['asset_statuses.*', 'Petis.code_customer', 'customers.lot_no', 'type_petis.type', 'type_petis.size_peti', 'm_warehouses.name as warehouse_name']) + // ->join('Petis', 'peti.id', '=', 'asset_statuses.peti_id') + // ->join('type_petis', 'type_petis.id', '=', 'petis.tipe_peti_id') + // ->join('m_warehouses', 'm_warehouses.id', '=', 'petis.warehouse_id') + // ->join('kondisi_petis', 'kondisipeti_id', '=', 'petis.kondisipeti_id') + // ->orderBy('petis.created_at', 'desc'); + + // Tambahkan logika pencarian + $search = $request->input('search') ?? ''; + if ($search) { + $query->where(function ($q) use ($search) { + $q->where('mobile_id', 'like', "%$search%") + ->orWhere('exit_at', 'like', "%$search%") + ->orWhere('est_pengembalian', 'like', "%$search%") + ->orWhere('exit_pic', 'like', "%$search%") + ->orWhere('customer_id', 'like', "%$search%") + ->orWhere('warehouse_id', 'like', "%$search%") + ->orWhere('exit_warehouse', 'like', "%$search%") + ->orWhere('enter_at', 'like', "%$search%") + ->orWhere('enter_pic', 'like', "%$search%") + ->orWhere('enter_warehouse', 'like', "%$search%") + ->orWhere('kondisi_peti_id', 'like', "%$search%") + ->orWhere('status', 'like', "%$search%") + ->orWhere('created_by', 'like', "%$search%") + ->orWhere('updated_by', 'like', "%$search%"); + }); + } + + $peminjaman = $query->paginate($perPage); $data = [ - // 'peminjaman' => asset_status::get(), - 'peminjaman' => asset_status::orderBy('created_at', 'desc')->get(), + 'peminjaman' => $peminjaman, 'warehouse' => m_warehouse::get(), + 'search' => $search, 'active' => 'menu-peminjaman', ]; return view('dashboard.Peminjaman.index', $data); } + /** * Show the form for creating a new resource. */ diff --git a/app/Http/Controllers/PetiController.php b/app/Http/Controllers/PetiController.php index bd9dfbc..0fc7f08 100644 --- a/app/Http/Controllers/PetiController.php +++ b/app/Http/Controllers/PetiController.php @@ -12,6 +12,7 @@ use App\Imports\PetiImport; use App\Models\m_warehouse; use App\Models\Kondisi_Peti; use Illuminate\Http\Request; +use Illuminate\Support\Collection; use Illuminate\Support\Facades\Auth; use Maatwebsite\Excel\Facades\Excel; use App\Http\Requests\ValidasiCreatePeti; @@ -23,11 +24,82 @@ class PetiController extends Controller /** * Display a listing of the resource. */ - public function index() + // public function index() + // { + // $data = [ + // // 'peti' => Peti::orderBy('created_at', 'desc')->get(), + // 'peti' => Peti::orderBy('created_at', 'desc')->get(), + // 'kondisiPeti' => Kondisi_Peti::all(), + // 'active' => 'menu-peti', + // ]; + // return view('dashboard.Master_Data.Manajemen_Peti.Peti.index', $data); + // } + // public function index() + // { + // // $perPage = 10; // Jumlah data per halaman, sesuaikan dengan kebutuhan Anda + + // // $peti = Peti::orderBy('created_at', 'desc')->paginate($perPage); + // $peti = Peti::orderBy('created_at', 'desc')->get(); + // $kondisiPeti = Kondisi_Peti::all(); + + // $data = [ + // 'peti' => $peti, + // 'kondisiPeti' => $kondisiPeti, + // 'active' => 'menu-peti', + // ]; + + // return view('dashboard.Master_Data.Manajemen_Peti.Peti.index', $data); + // } + public function index(Request $request) { + $perPage = $request->input('perPage', 5); + + $query = Peti::select(['petis.*', 'customers.code_customer', 'customers.lot_no', 'type_petis.type', 'type_petis.size_peti', 'm_warehouses.name as warehouse_name']) + ->join('customers', 'customers.id', '=', 'petis.customer_id') + ->join('type_petis', 'type_petis.id', '=', 'petis.tipe_peti_id') + ->join('m_warehouses', 'm_warehouses.id', '=', 'petis.warehouse_id') + ->join('kondisi_petis', 'kondisipeti_id', '=', 'petis.kondisipeti_id') + ->orderBy('petis.created_at', 'desc'); + // Tambahkan logika pencarian + $search = $request->input('search') ?? ''; + if ($search) { + $query->where(function ($q) use ($search) { + $q->where('petis.fix_lot', 'like', "%$search%") + ->orWhere('petis.created_by', 'like', "%$search%") + ->orWhere('customers.name', 'like', "%$search%") + ->orWhere('m_warehouses.name', 'like', "%$search%") + ->orWhere('customers.code_customer', 'like', "%$search%") + ->orWhere('type_petis.type', 'like', "%$search%") + ->orWhere('type_petis.size_peti', 'like', "%$search%") + ->orWhere('customers.lot_no', 'like', "%$search%") + ->orWhere('kondisi_petis.nama_kondisi', 'like', "%$search%") + ->orWhere('petis.packing_no', 'like', "%$search%") + ->orWhere('petis.status', 'like', "%$search%"); + }); + } + + if ($perPage == 'Semua') { + $chunkSize = 100; + $stores = new Collection(); + $currentPage = 1; + + $query->chunk($chunkSize, function ($storesChunk) use ($stores, &$currentPage) { + foreach ($storesChunk as $store) { + $store->setAttribute('i', ($currentPage - 1) * $storesChunk->perPage() + 1); + $stores->push($store); + $currentPage++; + } + }); + } else { + $stores = $query->paginate($perPage); + } + $data = [ - 'peti' => Peti::orderBy('created_at', 'desc')->get(), + // 'peti' => Peti::orderBy('created_at', 'desc')->paginate(10), + 'peti' => $stores, 'kondisiPeti' => Kondisi_Peti::all(), + 'i' => ($stores->currentPage() - 1) * $stores->perPage() + 1, + 'search' => $search, 'active' => 'menu-peti', ]; return view('dashboard.Master_Data.Manajemen_Peti.Peti.index', $data); diff --git a/app/Models/asset_status.php b/app/Models/asset_status.php index 3e5d7c2..5322ee1 100644 --- a/app/Models/asset_status.php +++ b/app/Models/asset_status.php @@ -33,10 +33,10 @@ class asset_status extends Model 'updated_by', ]; - public function asset() - { - return $this->belongsTo(m_asset::class, 'asset_id')->withTrashed(); - } + // public function asset() + // { + // return $this->belongsTo(m_asset::class, 'asset_id')->withTrashed(); + // } public function warehouseId() { diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 452e6b6..b6e0fe6 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,6 +2,7 @@ namespace App\Providers; +use Illuminate\Pagination\Paginator; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider @@ -19,6 +20,6 @@ class AppServiceProvider extends ServiceProvider */ public function boot(): void { - // + Paginator::useBootstrap(); } } diff --git a/resources/views/dashboard/Master_Data/Manajemen_Peti/Peti/index.blade.php b/resources/views/dashboard/Master_Data/Manajemen_Peti/Peti/index.blade.php index a9128a9..18acde3 100644 --- a/resources/views/dashboard/Master_Data/Manajemen_Peti/Peti/index.blade.php +++ b/resources/views/dashboard/Master_Data/Manajemen_Peti/Peti/index.blade.php @@ -12,7 +12,220 @@ @include('layouts.components.alert-prompt') @if (auth()->user()->role_id == 1) +
+
+
+
+
Data Peti
+
+
+ + Tambah Peti + +
+
+ @csrf + + +
+
+ + Import Customer + +
+
+
+
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + @forelse ($peti as $data_peti) + @if ($search) + @if (stripos($data_peti->fix_lot, $search) !== false || + stripos($data_peti->created_by, $search) !== false || + stripos($data_peti->customer->name, $search) !== false || + stripos($data_peti->warehouse->name, $search) !== false || + stripos($data_peti->customer->code_customer, $search) !== false || + stripos($data_peti->tipe_peti->type, $search) !== false || + stripos($data_peti->tipe_peti->size_peti, $search) !== false || + stripos($data_peti->customer->lot_no, $search) !== false || + stripos($data_peti->kondisipeti->nama_kondisi, $search) !== false || + stripos($data_peti->packing_no, $search) !== false || + stripos($data_peti->status, $search) !== false) + + + + + + + + + + + + + + + + + + @endif + @else + + + + + + + + + + + + + + + + + + @endif + @empty + + + + @endforelse + +
NoFix LotUserCustomerWHKode CustomerTipe PetiUkuran PetiLot NoKondisi PetiPacking NoStatusAction
{{ $i++ }}{{ $data_peti->fix_lot }}{{ $data_peti->created_by }}{{ $data_peti->customer->name }}{{ $data_peti->warehouse->name }}{{ $data_peti->customer->code_customer }}{{ $data_peti->tipe_peti->type }}{{ $data_peti->tipe_peti->size_peti }}{{ $data_peti->customer->lot_no }}{{ $data_peti->kondisipeti->nama_kondisi }}{{ $data_peti->packing_no }}{{ $data_peti->status }} + + + + + + +
+ @csrf + @method('DELETE') + +
+
{{ $i++ }}{{ $data_peti->fix_lot }}{{ $data_peti->created_by }}{{ $data_peti->customer->name }}{{ $data_peti->warehouse->name }}{{ $data_peti->customer->code_customer }}{{ $data_peti->tipe_peti->type }}{{ $data_peti->tipe_peti->size_peti }}{{ $data_peti->customer->lot_no }}{{ $data_peti->kondisipeti->nama_kondisi }}{{ $data_peti->packing_no }}{{ $data_peti->status }} + + + + + + +
+ @csrf + @method('DELETE') + +
+
Data Kosong
+
+
+
+ + @if (!$peti->isEmpty()) +

Showing {{ $peti->firstItem() }} to + {{ $peti->lastItem() }} of + {{ $peti->total() }} entries

+ @endif +
+
+ @if ($peti->total() > $peti->perPage()) + + @endif +
+
+
+
+ + + {{--
@@ -39,7 +252,7 @@
- +
@@ -60,11 +273,11 @@ @php - $nopeti = 1; + $i = 1; @endphp @forelse ($peti as $data_peti) - + @@ -100,10 +313,9 @@ @endforelse
No
{{ $nopeti++ }}{{ $i++ }} {{ $data_peti->fix_lot }} {{ $data_peti->created_by }}
-
-
+
--}} @elseif (auth()->user()->role_id == 2) @include('pages.user.Master_Data.Manajemen_Peti.Peti.index') @endif diff --git a/resources/views/dashboard/Peminjaman/index.blade.php b/resources/views/dashboard/Peminjaman/index.blade.php index 8a431a7..36736dd 100644 --- a/resources/views/dashboard/Peminjaman/index.blade.php +++ b/resources/views/dashboard/Peminjaman/index.blade.php @@ -25,8 +25,44 @@
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
- +
@@ -39,7 +75,7 @@ - + {{-- @php $no_peminjaman = 1; @endphp @@ -59,10 +95,91 @@ title="Pengembalian"> - {{-- + + + + @csrf + @method('DELETE') + + + + + @endif + @empty + + + + @endforelse + --}} + + @php + $no_peminjaman = 1; + @endphp + @forelse ($peminjaman as $data_peminjaman) + @if ($search) + @if (stripos($data_peminjaman->peti->fix_lot, $search) !== false || + stripos($data_peminjaman->peti->customer->name, $search) !== false || + stripos($data_peminjaman->peti->customer->code_customer, $search) !== false || + stripos($data_peminjaman->peti->tipe_peti->type, $search) !== false || + stripos($data_peminjaman->exit_at, $search) !== false || + stripos($data_peminjaman->exit_pic, $search) !== false || + stripos($data_peminjaman->warehouse->name, $search) !== false) + + + + + + + + + + + + @endif + @else + + + + + + + + + + @endif @empty + + + @endforelse +
NoAction
Data Kosong
{{ $no_peminjaman++ }}{{ $data_peminjaman->peti->fix_lot }}{{ $data_peminjaman->peti->customer->name }}{{ $data_peminjaman->peti->customer->code_customer }} - + {{ $data_peminjaman->peti->tipe_peti->type }}{{ \Carbon\Carbon::parse($data_peminjaman->exit_at)->format('d/m/Y') }}{{ $data_peminjaman->exit_pic }}{{ $data_peminjaman->warehouse->name }} + + + + + + +
+ @csrf + @method('DELETE') + +
+
{{ $no_peminjaman++ }}{{ $data_peminjaman->peti->fix_lot }}{{ $data_peminjaman->peti->customer->name }}{{ $data_peminjaman->peti->customer->code_customer }} - + {{ $data_peminjaman->peti->tipe_peti->type }}{{ \Carbon\Carbon::parse($data_peminjaman->exit_at)->format('d/m/Y') }}{{ $data_peminjaman->exit_pic }}{{ $data_peminjaman->warehouse->name }} + - --}} + @@ -81,10 +198,47 @@
Data Kosong
+
+
+ + @if (!$peminjaman->isEmpty()) +

Showing {{ $peminjaman->firstItem() }} to + {{ $peminjaman->lastItem() }} of + {{ $peminjaman->total() }} entries

+ @endif +
+
+ @if ($peminjaman->total() > $peminjaman->perPage()) + + @endif +
+
@endsection diff --git a/resources/views/layouts/main.blade.php b/resources/views/layouts/main.blade.php index 71343f3..9f29345 100644 --- a/resources/views/layouts/main.blade.php +++ b/resources/views/layouts/main.blade.php @@ -65,6 +65,14 @@ lengthMenu: [10, 25, 50, 100], // Pilihan jumlah data per halaman dom: '<"top"lf<"clear">>rt<"bottom"ip<"clear">>', // Susunan elemen tabel }); + $('#tablePeti').DataTable({ + paging: true, // Aktifkan paging + searching: true, // Aktifkan fitur pencarian + scrollX: true, // Aktifkan scroll horizontal + pageLength: 10, // Jumlah data per halaman + lengthMenu: [10, 25, 50, 100], // Pilihan jumlah data per halaman + dom: '<"top"lf<"clear">>rt<"bottom"ip<"clear">>', // Susunan elemen tabel + }); });