Browse Source

tambah fitur hapus bulk peti

master
Gunawan19621 1 year ago
parent
commit
88733e66e7
  1. 38
      app/Http/Controllers/PetiController.php
  2. 156
      resources/views/dashboard/Master_Data/Manajemen_Peti/Peti/index.blade.php
  3. 1
      routes/web.php

38
app/Http/Controllers/PetiController.php

@ -322,31 +322,6 @@ class PetiController extends Controller
); );
} }
// public function importPeti(Request $request)
// {
// $import = new PetiImport;
// Excel::import($import, request()->file('file'));
// // Cek apakah ada data yang berhasil diimpor
// if ($import->getRowCount() > 0) {
// return redirect()->route('dashboard.peti.index')->with('success', 'Data Peti berhasil diimport');
// } else {
// $errors = $import->getErrors();
// if ($errors) {
// foreach ($errors as $error) {
// foreach ($error->all() as $message) {
// // Tampilkan pesan kesalahan untuk setiap baris
// // Simpan pesan flash dengan kategori 'error'
// session()->flash('error', $message);
// }
// }
// }
// // Redirect back with import data and error message
// return redirect()->back()->with('import', $import)->with('error', 'Data Import Peti gagal di import.');
// }
// }
public function importPeti(Request $request) public function importPeti(Request $request)
{ {
$import = new PetiImport; $import = new PetiImport;
@ -373,4 +348,17 @@ class PetiController extends Controller
} }
} }
} }
public function deleteSelected(Request $request)
{
$petiIds = $request->input('peti_ids');
if (!empty($petiIds)) {
Peti::destroy($petiIds);
return response()->json(['message' => 'Data peti terpilih berhasil dihapus.']);
} else {
return response()->json(['error' => 'Tidak ada data peti terpilih untuk dihapus.'], 400);
}
}
} }

156
resources/views/dashboard/Master_Data/Manajemen_Peti/Peti/index.blade.php

@ -20,21 +20,26 @@
<h5 class="m-0 font-weight-bold text-primary mt-2">Data Peti</h5> <h5 class="m-0 font-weight-bold text-primary mt-2">Data Peti</h5>
</div> </div>
<div class="col-5 d-flex justify-content-end"> <div class="col-5 d-flex justify-content-end">
<a href="{{ route('dashboard.peti.create') }}" class="btn btn-success btn-icon-split ml-4"> <!-- Example single danger button -->
<span class="text">Tambah Peti</span> <div class="btn-group">
</a> <button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown"
<div class="mr-2"> aria-haspopup="true" aria-expanded="false">
Action
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="{{ route('dashboard.peti.create') }}">Tambah Peti</a>
<form action="{{ route('dashboard.all-pdf.cetakpdf') }}" method="GET" id="pdfForm" <form action="{{ route('dashboard.all-pdf.cetakpdf') }}" method="GET" id="pdfForm"
class="ml-2" target="_blank"> target="_blank">
@csrf @csrf
<input type="hidden" name="peti_ids" id="peti_ids" value=""> <input type="hidden" name="peti_ids" id="peti_ids" value="">
<button type="submit" class="btn btn-primary">Cetak PDF</button> <button type="submit" class="dropdown-item">Cetak Label Peti</button>
</form> </form>
<a class="dropdown-item" href="#" data-toggle="modal"
data-target="#importDataModal">Import Data Peti</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#" id="hapusPetiBtn">Hapus Peti</a>
</div>
</div> </div>
<a href="#" class="btn btn-info btn-icon-split" data-toggle="modal"
data-target="#importDataModal">
<span class="text">Import Peti</span>
</a>
</div> </div>
</div> </div>
</div> </div>
@ -173,99 +178,6 @@
</div> </div>
</div> </div>
</div> </div>
<!-- cara data table bostrap-->
{{-- <div class="card shadow mb-4">
<div class="card-header py-3">
<div class="row">
<div class="col-7">
<h5 class="m-0 font-weight-bold text-primary mt-2">Data Peti</h5>
</div>
<div class="col-5 d-flex">
<a href="{{ route('dashboard.peti.create') }}" class="btn btn-success btn-icon-split ml-4">
<span class="text">Tambah Peti</span>
</a>
<div class="mr-2">
<form action="{{ route('dashboard.all-pdf.cetakpdf') }}" method="GET" id="pdfForm"
class="ml-2" target="_blank">
@csrf
<input type="hidden" name="peti_ids" id="peti_ids" value="">
<button type="submit" class="btn btn-primary">Cetak PDF</button>
</form>
</div>
<a href="#" class="btn btn-info btn-icon-split" data-toggle="modal"
data-target="#importDataModal">
<span class="text">Import Customer</span>
</a>
</div>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered" id="tablePeti" width="100%" cellspacing="0">
<thead>
<tr>
<th class="text-center" style="width: 10px">No</th>
<th><input type="checkbox" class="checkbox " id="selectAll"></th>
<th>Fix Lot</th>
<th>User</th>
<th>Customer</th>
<th>WH</th>
<th>Kode Customer</th>
<th>Tipe Peti</th>
<th>Ukuran Peti</th>
<th>Lot No</th>
<th>Kondisi Peti</th>
<th>Packing No</th>
<th>Status</th>
<th class="text-center">Action</th>
</tr>
</thead>
<tbody>
@php
$i = 1;
@endphp
@forelse ($peti as $data_peti)
<tr>
<td>{{ $i++ }}</td>
<td><input type="checkbox" class="checkbox" value="{{ $data_peti->id }}"></td>
<td>{{ $data_peti->fix_lot }}</td>
<td>{{ $data_peti->created_by }}</td>
<td>{{ $data_peti->customer->name }}</td>
<td>{{ $data_peti->warehouse->name }}</td>
<td>{{ $data_peti->customer->code_customer }}</td>
<td>{{ $data_peti->tipe_peti->type }}</td>
<td>{{ $data_peti->tipe_peti->size_peti }}</td>
<td>{{ $data_peti->customer->lot_no }}</td>
<td>{{ $data_peti->kondisipeti->nama_kondisi }}</td>
<td class="text-right">{{ $data_peti->packing_no }}</td>
<td>{{ $data_peti->status }}</td>
<td class="text-center">
<a href="{{ route('dashboard.peti.show', [$data_peti->id]) }}">
<i class="fa fa-eye mr-2" style="font-size: 20px"></i>
</a>
<a href="{{ route('dashboard.peti.edit', [$data_peti->id]) }}">
<i class="fa fa-edit mr-2" style="font-size: 20px"></i>
</a>
<form action="{{ route('dashboard.peti.destroy', $data_peti->id) }}" method="POST"
style="display: inline;">
@csrf
@method('DELETE')
<button type="submit"
onclick="return confirm('Apakah Anda yakin ingin menghapus data ini?')"
style="border: none; background: none; cursor: pointer;">
<i class="fa fa-trash text-danger" style="font-size: 20px"></i>
</button>
</form>
</td>
</tr>
@empty
@endforelse
</tbody>
</table>
</div>
</div>
</div> --}}
@elseif (auth()->user()->role_id == 2) @elseif (auth()->user()->role_id == 2)
@include('pages.user.Master_Data.Manajemen_Peti.Peti.index') @include('pages.user.Master_Data.Manajemen_Peti.Peti.index')
@endif @endif
@ -308,6 +220,7 @@
</div> </div>
</div> </div>
<!-- checkbox peti -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script> <script>
$(document).ready(function() { $(document).ready(function() {
@ -342,6 +255,43 @@
return false; return false;
} }
}); });
$('#hapusPetiBtn').click(function() {
var selectedIds = [];
$('.checkbox:checked').each(function() {
var id = $(this).val();
if (id !== 'on') {
selectedIds.push(id);
}
});
if (selectedIds.length > 0) {
var confirmation = confirm('Apakah Anda yakin ingin menghapus data terpilih?');
if (confirmation) {
// Kirim data ke controller menggunakan AJAX
$.ajax({
url: '{{ route('dashboard.peti.delete-selected') }}',
type: 'POST',
data: {
_token: '{{ csrf_token() }}',
peti_ids: selectedIds
},
dataType: 'json', // Ensure that the response is treated as JSON
success: function(response) {
alert(response.message); // Tampilkan pesan sukses
location.reload(); // Muat ulang halaman setelah penghapusan
},
error: function(xhr, status, error) {
console.error(xhr
.responseText); // Tampilkan pesan error (debugging)
alert('Terjadi kesalahan saat menghapus data.');
}
});
}
} else {
alert('Pilih setidaknya satu ID untuk menghapus data.');
}
});
}); });
</script> </script>

1
routes/web.php

@ -184,6 +184,7 @@ Route::prefix('dashboard')->name('dashboard.')->middleware(['auth'])->group(func
Route::get('peticetak_pdf/{id}', 'cetakPdf')->name('peticetakpdf.cetakpdf'); Route::get('peticetak_pdf/{id}', 'cetakPdf')->name('peticetakpdf.cetakpdf');
Route::get('all-cetak/peti', 'AllPdf')->name('all-pdf.cetakpdf'); Route::get('all-cetak/peti', 'AllPdf')->name('all-pdf.cetakpdf');
Route::post('peti/import', 'importPeti')->name('peti.import'); Route::post('peti/import', 'importPeti')->name('peti.import');
Route::post('peti/delete-selected', 'deleteSelected')->name('peti.delete-selected');
}); });

Loading…
Cancel
Save