fix orderable datatable on mutations and products index

This commit is contained in:
2025-06-16 19:01:11 +07:00
parent aa233eb793
commit b803068d0e
12 changed files with 383 additions and 178 deletions

View File

@@ -10,6 +10,7 @@ use App\Enums\MutationStatus;
use App\Models\Menu;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Yajra\DataTables\DataTables;
class MutationsController extends Controller
@@ -19,13 +20,18 @@ class MutationsController extends Controller
$menu = Menu::where('link','mutations.index')->first();
if ($request->ajax()) {
Log::info('Mutations DataTables request', [
'order' => $request->get('order'),
'columns' => $request->get('columns'),
'user_id' => auth()->id()
]);
// Use a more specific query to avoid join conflicts
$data = Mutation::query()
->with(['fromDealer', 'toDealer', 'requestedBy.role', 'approvedBy.role', 'receivedBy.role'])
->select([
'mutations.*'
])
->orderBy('mutations.id', 'desc'); // Default order by ID desc
]); // Remove default ordering to let DataTables handle it
// Filter berdasarkan dealer jika user bukan admin
if (auth()->user()->dealer_id) {
@@ -60,7 +66,7 @@ class MutationsController extends Controller
return number_format($row->total_items, 0);
})
->addColumn('created_at', function($row) {
return $row->created_at->format('d/m/Y H:i');
return $row->created_at->format('d M Y, H:i');
})
->addColumn('action', function($row) {
return view('warehouse_management.mutations._action', compact('row'))->render();
@@ -426,7 +432,7 @@ class MutationsController extends Controller
return number_format($row->total_items, 0);
})
->addColumn('created_at', function($row) {
return $row->created_at->format('d/m/Y H:i');
return $row->created_at->format('d M Y, H:i');
})
->addColumn('action', function($row) use ($dealerId) {
$buttons = '';
@@ -478,7 +484,7 @@ class MutationsController extends Controller
]);
// Format created_at
$mutation->created_at_formatted = $mutation->created_at->format('d/m/Y H:i');
$mutation->created_at_formatted = $mutation->created_at->format('d M Y, H:i');
// Add status color and label
$mutation->status_color = $mutation->status_color;