diff --git a/app/Http/Controllers/HistoryController.php b/app/Http/Controllers/HistoryController.php index f2dab39..0c48a10 100644 --- a/app/Http/Controllers/HistoryController.php +++ b/app/Http/Controllers/HistoryController.php @@ -11,18 +11,7 @@ use Illuminate\Support\Facades\Log; class HistoryController extends Controller { - // public function historyPeminjaman() - // { - - - // $data = [ - // 'peminjaman' => asset_status::withTrashed()->orderBy('created_at', 'desc')->get(), - // 'warehouse' => m_warehouse::get(), - // 'active' => 'history-peminjaman', - // ]; - - // return view('dashboard.History.Peminjaman.index', $data); - // } + // Halaman index history peminjaman public function historyPeminjaman(Request $request) { $perPage = $request->input('perPage', 5); @@ -32,32 +21,110 @@ class HistoryController extends Controller //logika pencarian $search = $request->input('search') ?? ''; + if ($search) { + $searchArray = explode(' - ', $search); + + if (count($searchArray) === 2) { + // Case: DPM - B100X63 + list($codeCustomer, $typePeti) = $searchArray; + + $query->whereHas('peti.customer', function ($customerQuery) use ($codeCustomer) { + $customerQuery->where('code_customer', 'like', "%$codeCustomer%"); + })->whereHas('peti.tipe_peti', function ($tipePetiQuery) use ($typePeti) { + $tipePetiQuery->where('type', 'like', "%$typePeti%"); + }); + } else { + // Case: Other scenarios + $query->where(function ($q) use ($search) { + $q->where('mobile_id', 'like', "%$search%") + ->orWhereHas('peti', function ($warehouseQuery) use ($search) { + $warehouseQuery->where('fix_lot', 'like', "%$search%"); + }) + ->orWhereHas('customer', function ($warehouseQuery) use ($search) { + $warehouseQuery->where('name', 'like', "%$search%"); + }) + ->orWhereHas('peti.customer', function ($customerQuery) use ($search) { + $customerQuery->where('code_customer', 'like', "%$search%"); + }) + ->orWhereHas('peti.tipe_peti', function ($tipePetiQuery) use ($search) { + $tipePetiQuery->where('type', 'like', "%$search%"); + }) + ->orWhere(function ($dateQuery) use ($search) { + try { + // Format tanggal yang diharapkan dari input pengguna + $formattedDate = \Carbon\Carbon::createFromFormat('d-m-Y', $search)->format('Y-m-d'); + + // Cek kesamaan tanggal + $dateQuery->whereDate('exit_at', $formattedDate); + } catch (\Exception $e) { + Log::error('Error parsing date: ' . $e->getMessage()); + } + }) + ->orWhere(function ($dateQuery) use ($search) { + try { + // Format tanggal yang diharapkan dari input pengguna + $formattedDate = \Carbon\Carbon::createFromFormat('d-m-Y', $search)->format('Y-m-d'); + + // Cek kesamaan tanggal + $dateQuery->whereDate('est_pengembalian', $formattedDate); + } catch (\Exception $e) { + Log::error('Error parsing date: ' . $e->getMessage()); + } + }) + ->orWhere('exit_pic', 'like', "%$search%") + ->orWhereHas('warehouse', function ($warehouseQuery) use ($search) { + $warehouseQuery->where('name', 'like', "%$search%") + ->orWhere('address', '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 = [ + 'peminjaman' => $stores, + 'warehouse' => m_warehouse::get(), + 'i' => ($stores->currentPage() - 1) * $stores->perPage() + 1, + 'search' => $search, + 'active' => 'history-peminjaman', + ]; + + return view('dashboard.History.Peminjaman.index', $data); + } + + // Halaman index history pengembalian + public function historyPengembalian(Request $request) + { + $perPage = $request->input('perPage', 5); + $query = asset_status::with(['customer', 'warehouseId', 'warehouse', 'warehouseEnter', 'kondisi_peti']) + ->where('status', '=', 1) + ->orderBy('created_at', 'desc'); + + // Logika pencarian + $search = $request->input('search') ?? ''; if ($search) { $query->where(function ($q) use ($search) { $q->where('mobile_id', 'like', "%$search%") ->orWhereHas('peti', function ($warehouseQuery) use ($search) { $warehouseQuery->where('fix_lot', 'like', "%$search%"); - }) + }) // sudah cari fix lot ->orWhereHas('customer', function ($warehouseQuery) use ($search) { $warehouseQuery->where('name', 'like', "%$search%"); - }) - // ->orWhereHas('peti.customer', function ($customerQuery) use ($search) { - // $customerQuery->where('code_customer', 'like', "%$search%"); - // }) - // ->orWhereHas('peti.tipe_peti', function ($tipePetiQuery) use ($search) { - // $tipePetiQuery->where('type', 'like', "%$search%"); - // }) - // ->orWhere(function ($combinedQuery) use ($search) { - // // Pisahkan code customer dan tipe peti dari pencarian - // list($codeCustomer, $typePeti) = explode(' - ', $search); - - // // Cek kesamaan code customer dan tipe peti - // $combinedQuery->whereHas('peti.customer', function ($customerQuery) use ($codeCustomer) { - // $customerQuery->where('code_customer', 'like', "%$codeCustomer%"); - // })->whereHas('peti.tipe_peti', function ($tipePetiQuery) use ($typePeti) { - // $tipePetiQuery->where('type', 'like', "%$typePeti%"); - // }); - // }) + }) // sudah cari nama customer ->orWhere(function ($dateQuery) use ($search) { try { // Format tanggal yang diharapkan dari input pengguna @@ -79,15 +146,41 @@ class HistoryController extends Controller } catch (\Exception $e) { Log::error('Error parsing date: ' . $e->getMessage()); } - }) - ->orWhere('exit_pic', 'like', "%$search%") + }) // sudah cari est pengembalian (tanggal pengembalian) + ->orWhere('exit_pic', 'like', "%$search%") // sudah cari exit pic (nama peminjam) ->orWhereHas('warehouse', function ($warehouseQuery) use ($search) { $warehouseQuery->where('name', 'like', "%$search%") ->orWhere('address', 'like', "%$search%"); - }); + }) // sudah cari warehouse (lokasi peminjaman) + ->orWhere(function ($dateQuery) use ($search) { + try { + // Format tanggal yang diharapkan dari input pengguna + $formattedDate = \Carbon\Carbon::createFromFormat('d-m-Y', $search)->format('Y-m-d'); + + // Cek kesamaan tanggal + $dateQuery->whereDate('enter_at', $formattedDate); + } catch (\Exception $e) { + Log::error('Error parsing date: ' . $e->getMessage()); + } + }) // sudah cari enter at (tanggal pengembalian) + ->orWhere('enter_pic', 'like', "%$search%") // sudah cari enter pic (nama pengembali) + ->orWhereHas('warehouseEnter', function ($warehouseQuery) use ($search) { + $warehouseQuery->where('name', 'like', "%$search%"); + }) // sudah cari warehouse enter (lokasi pengembalian) + ->orWhereHas('kondisi_peti', function ($warehouseQuery) use ($search) { + $warehouseQuery->where('nama_kondisi', 'like', "%$search%"); + }) // sudah cari kondisi peti + ->orWhere(function ($statusQuery) use ($search) { + if (strtolower($search) === 'return') { + $statusQuery->where('status', 1); + } else { + $statusQuery->where('status', 'like', "%$search%"); + } + }); // sudah cari status }); } + // Periksa apakah perPage adalah 'Semua' if ($perPage == 'Semua') { $chunkSize = 100; $stores = new Collection(); @@ -95,34 +188,35 @@ class HistoryController extends Controller $query->chunk($chunkSize, function ($storesChunk) use ($stores, &$currentPage) { foreach ($storesChunk as $store) { - $store->setAttribute('i', ($currentPage - 1) * $storesChunk->perPage() + 1); + $store->setAttribute('i', ($currentPage - 1) * $storesChunk->perPage() + $store->getQueueableId()); $stores->push($store); $currentPage++; } }); } else { - $stores = $query->paginate($perPage); + // Hitung halaman berdasarkan parameter halaman yang diberikan atau default ke halaman pertama + $page = $request->input('page') ?? 1; + + // Paginasi dengan parameter halaman + $stores = $query->paginate($perPage, ['*'], 'page', $page); + + // Hitung nomor urutan untuk setiap item di halaman + $stores->each(function ($store) use ($page, $perPage) { + $store->setAttribute('i', ($page - 1) * $perPage + $store->getQueueableId()); + }); } + $data = [ 'peminjaman' => $stores, 'warehouse' => m_warehouse::get(), 'i' => ($stores->currentPage() - 1) * $stores->perPage() + 1, 'search' => $search, - 'active' => 'history-peminjaman', - ]; - - return view('dashboard.History.Peminjaman.index', $data); - } - - public function historyPengembalian() - { - $data = [ - 'peminjaman' => asset_status::withTrashed()->orderBy('created_at', 'desc')->get(), 'active' => 'history-pengembalian', ]; return view('dashboard.History.Pengembalian.index', $data); } + // Halaman index history transfer public function historyTransfer() { $data = [ diff --git a/app/Http/Controllers/PeminjamanController.php b/app/Http/Controllers/PeminjamanController.php index d9551ff..c835e9e 100644 --- a/app/Http/Controllers/PeminjamanController.php +++ b/app/Http/Controllers/PeminjamanController.php @@ -32,42 +32,62 @@ class PeminjamanController extends Controller //logika pencarian $search = $request->input('search') ?? ''; if ($search) { - $query->where(function ($q) use ($search) { - $q->where('mobile_id', 'like', "%$search%") - ->orWhereHas('peti', function ($warehouseQuery) use ($search) { - $warehouseQuery->where('fix_lot', 'like', "%$search%"); - }) - ->orWhereHas('customer', function ($warehouseQuery) use ($search) { - $warehouseQuery->where('name', 'like', "%$search%"); - }) - ->orWhere(function ($dateQuery) use ($search) { - try { - // Format tanggal yang diharapkan dari input pengguna - $formattedDate = \Carbon\Carbon::createFromFormat('d-m-Y', $search)->format('Y-m-d'); - - // Cek kesamaan tanggal - $dateQuery->whereDate('exit_at', $formattedDate); - } catch (\Exception $e) { - Log::error('Error parsing date: ' . $e->getMessage()); - } - }) - ->orWhere(function ($dateQuery) use ($search) { - try { - // Format tanggal yang diharapkan dari input pengguna - $formattedDate = \Carbon\Carbon::createFromFormat('d-m-Y', $search)->format('Y-m-d'); - - // Cek kesamaan tanggal - $dateQuery->whereDate('est_pengembalian', $formattedDate); - } catch (\Exception $e) { - Log::error('Error parsing date: ' . $e->getMessage()); - } - }) - ->orWhere('exit_pic', 'like', "%$search%") - ->orWhereHas('warehouse', function ($warehouseQuery) use ($search) { - $warehouseQuery->where('name', 'like', "%$search%") - ->orWhere('address', 'like', "%$search%"); - }); - }); + $searchArray = explode(' - ', $search); + + if (count($searchArray) === 2) { + // Case: DPM - B100X63 + list($codeCustomer, $typePeti) = $searchArray; + + $query->whereHas('peti.customer', function ($customerQuery) use ($codeCustomer) { + $customerQuery->where('code_customer', 'like', "%$codeCustomer%"); + })->whereHas('peti.tipe_peti', function ($tipePetiQuery) use ($typePeti) { + $tipePetiQuery->where('type', 'like', "%$typePeti%"); + }); + } else { + // Case: Other scenarios + $query->where(function ($q) use ($search) { + $q->where('mobile_id', 'like', "%$search%") + ->orWhereHas('peti', function ($warehouseQuery) use ($search) { + $warehouseQuery->where('fix_lot', 'like', "%$search%"); + }) + ->orWhereHas('customer', function ($warehouseQuery) use ($search) { + $warehouseQuery->where('name', 'like', "%$search%"); + }) + ->orWhereHas('peti.customer', function ($customerQuery) use ($search) { + $customerQuery->where('code_customer', 'like', "%$search%"); + }) + ->orWhereHas('peti.tipe_peti', function ($tipePetiQuery) use ($search) { + $tipePetiQuery->where('type', 'like', "%$search%"); + }) + ->orWhere(function ($dateQuery) use ($search) { + try { + // Format tanggal yang diharapkan dari input pengguna + $formattedDate = \Carbon\Carbon::createFromFormat('d-m-Y', $search)->format('Y-m-d'); + + // Cek kesamaan tanggal + $dateQuery->whereDate('exit_at', $formattedDate); + } catch (\Exception $e) { + Log::error('Error parsing date: ' . $e->getMessage()); + } + }) + ->orWhere(function ($dateQuery) use ($search) { + try { + // Format tanggal yang diharapkan dari input pengguna + $formattedDate = \Carbon\Carbon::createFromFormat('d-m-Y', $search)->format('Y-m-d'); + + // Cek kesamaan tanggal + $dateQuery->whereDate('est_pengembalian', $formattedDate); + } catch (\Exception $e) { + Log::error('Error parsing date: ' . $e->getMessage()); + } + }) + ->orWhere('exit_pic', 'like', "%$search%") + ->orWhereHas('warehouse', function ($warehouseQuery) use ($search) { + $warehouseQuery->where('name', 'like', "%$search%") + ->orWhere('address', 'like', "%$search%"); + }); + }); + } } if ($perPage == 'Semua') { diff --git a/app/Models/User.php b/app/Models/User.php index 8cb2de9..0d02520 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -44,6 +44,11 @@ class User extends Authenticatable implements JWTSubject return $this->belongsTo(m_warehouse::class, 'warehouse_id')->withTrashed(); } + public function role() + { + return $this->belongsTo(m_role::class, 'role_id')->withTrashed(); + } + /** * The attributes that should be hidden for serialization. * diff --git a/resources/views/dashboard/History/Peminjaman/index.blade.php b/resources/views/dashboard/History/Peminjaman/index.blade.php index 1dd2050..12f6170 100644 --- a/resources/views/dashboard/History/Peminjaman/index.blade.php +++ b/resources/views/dashboard/History/Peminjaman/index.blade.php @@ -64,7 +64,7 @@ Kode Tgl Peminjaman PJ Peminjaman - WH Peminjam + GD Peminjam @@ -75,7 +75,7 @@ {{ $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') }} + {{ \Carbon\Carbon::parse($data_peminjaman->exit_at)->format('d-m-Y') }} {{ $data_peminjaman->exit_pic }} {{ $data_peminjaman->warehouse->name }} diff --git a/resources/views/dashboard/History/Pengembalian/index.blade.php b/resources/views/dashboard/History/Pengembalian/index.blade.php index 217aba9..447f36b 100644 --- a/resources/views/dashboard/History/Pengembalian/index.blade.php +++ b/resources/views/dashboard/History/Pengembalian/index.blade.php @@ -18,8 +18,38 @@
+
+
+ +
+ + + + +
+
+
+ +
+ + + + +
+
+
- +
@@ -28,76 +58,107 @@ - + - + - @php - $no_peminjaman = 1; - @endphp @forelse ($peminjaman as $data) - @if ($data->enter_warehouse !== null) - - - - - - - - - - - - - - - @endif + + + + + + + + + + + + + + @empty + + + @endforelse
NoTgl Peinjaman Estimasi Pengembalian PJ PeminjamanAsal WH PeminjamanAsal GD Peminjaman Tgl Pengembalian PJ PengembalianTujuan WH PengembalianTujuan GD Pengembalian Kondisi Peti Status
{{ $no_peminjaman++ }}{{ $data->peti->fix_lot }}{{ $data->peti->customer->name }}{{ \Carbon\Carbon::parse($data->exit_at)->format('d/m/Y') }}{{ \Carbon\Carbon::parse($data->est_pengembalian)->format('d/m/Y') }}{{ $data->exit_pic }} - @if ($data->exit_warehouse) - {{ $data->warehouse->name }} - @else -

-

- @endif -
- @if ($data->enter_at) - {{ \Carbon\Carbon::parse($data->enter_at)->format('d-m-Y') }} - @else -

-

- @endif -
- @if ($data->enter_pic) - {{ $data->enter_pic }} - @else -

-

- @endif -
- @if ($data->enter_warehouse) - {{ $data->warehouseEnter->name }} - @else -

-

- @endif -
- @if ($data->kondisi_peti) - {{ $data->kondisi_peti->nama_kondisi }} - @else -

-

- @endif -
- @if ($data->enter_warehouse === null) - Not Return - @else - Return - @endif -
{{ $i++ }}{{ $data->peti->fix_lot }}{{ $data->peti->customer->name }}{{ \Carbon\Carbon::parse($data->exit_at)->format('d-m-Y') }}{{ \Carbon\Carbon::parse($data->est_pengembalian)->format('d-m-Y') }}{{ $data->exit_pic }} + @if ($data->exit_warehouse) + {{ $data->warehouse->name }} + @else +

-

+ @endif +
+ @if ($data->enter_at) + {{ \Carbon\Carbon::parse($data->enter_at)->format('d-m-Y') }} + @else +

-

+ @endif +
+ @if ($data->enter_pic) + {{ $data->enter_pic }} + @else +

-

+ @endif +
+ @if ($data->enter_warehouse) + {{ $data->warehouseEnter->name }} + @else +

-

+ @endif +
+ @if ($data->kondisi_peti) + {{ $data->kondisi_peti->nama_kondisi }} + @else +

-

+ @endif +
+ @if ($data->status == 1) + Return + @elseif($data->status == 0) + Not Return + @endif +
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/dashboard/Master_Data/Customer/index.blade.php b/resources/views/dashboard/Master_Data/Customer/index.blade.php index 2dbd2a8..1cd6b1c 100644 --- a/resources/views/dashboard/Master_Data/Customer/index.blade.php +++ b/resources/views/dashboard/Master_Data/Customer/index.blade.php @@ -3,22 +3,27 @@ @include('layouts.components.alert-prompt') @if (auth()->user()->role_id == 1)
-
-
-
-
Data Customer
-
- -
-
+
diff --git a/resources/views/dashboard/Master_Data/Manajemen_Peti/Kondisi_Peti/index.blade.php b/resources/views/dashboard/Master_Data/Manajemen_Peti/Kondisi_Peti/index.blade.php index 23d9728..7c79c4b 100644 --- a/resources/views/dashboard/Master_Data/Manajemen_Peti/Kondisi_Peti/index.blade.php +++ b/resources/views/dashboard/Master_Data/Manajemen_Peti/Kondisi_Peti/index.blade.php @@ -3,23 +3,26 @@ @include('layouts.components.alert-prompt') @if (auth()->user()->role_id == 1)
-
- -
+
@@ -117,8 +120,8 @@ - + @@ -123,8 +122,8 @@ - + @csrf @method('DELETE') + + + +
Fix Lot User CustomerWHGD Kode Customer Tipe Peti Ukuran Peti
diff --git a/resources/views/dashboard/Master_Data/Report/Pattern_lot_peti/index.blade.php b/resources/views/dashboard/Master_Data/Report/Pattern_lot_peti/index.blade.php index 86b0750..c331083 100644 --- a/resources/views/dashboard/Master_Data/Report/Pattern_lot_peti/index.blade.php +++ b/resources/views/dashboard/Master_Data/Report/Pattern_lot_peti/index.blade.php @@ -14,7 +14,7 @@
-
Report Pettern Lot Peti
+
Report Peti
- + diff --git a/resources/views/dashboard/Master_Data/User/index.blade.php b/resources/views/dashboard/Master_Data/User/index.blade.php index c67c5ed..3bf5ea6 100644 --- a/resources/views/dashboard/Master_Data/User/index.blade.php +++ b/resources/views/dashboard/Master_Data/User/index.blade.php @@ -25,21 +25,11 @@ - + + - - - - - - - - - - - @php $noUser = 1; @@ -52,6 +42,7 @@ +
FIX LOT CustomerWHGD CODE CUSTOMER TYPE PETI UKURAN PETIEmail No. HP AlamatDitugaskanGudangStatus Action
NoNamaEmailNo. HPAlamatDitugaskanAction
{{ isset($data->no_hp) ? $data->no_hp : '-' }} {{ isset($data->address) ? $data->address : '-' }} {{ $data->warehouse->name }}{{ $data->role->name }} diff --git a/resources/views/dashboard/Master_Data/Warehouse/index.blade.php b/resources/views/dashboard/Master_Data/Warehouse/index.blade.php index 7fafb01..1c01f84 100644 --- a/resources/views/dashboard/Master_Data/Warehouse/index.blade.php +++ b/resources/views/dashboard/Master_Data/Warehouse/index.blade.php @@ -6,23 +6,25 @@ @if (auth()->user()->role_id == 1)
- +
@@ -79,7 +81,7 @@