maskurir/app/Http/Controllers/KurirDashboardController.php

63 lines
2.0 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Order;
use App\Models\User;
use App\Models\Location;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Controller;
use Carbon\Carbon;
class KurirDashboardController extends Controller
{
public function indexKurir()
{
$kurirId = auth()->id(); // Ambil ID kurir yang sedang login'
$totalOrders = Order::where('kurir_id', $kurirId)
->whereDate('created_at', Carbon::today())
->count();
$ordersProcessing = Order::where('kurir_id', $kurirId)
->where('status', 'Assigned')
->whereDate('created_at', Carbon::today())
->count();
$ordersCompleted = Order::where('kurir_id', $kurirId)
->where('status', 'Delivered')
->whereDate('created_at', Carbon::today())
->count();
$locations = Location::where('user_id', $kurirId)
->whereDate('created_at', Carbon::today()) // Hanya ambil data dari hari ini
->get();
$estimateSalary = $ordersCompleted * 5000;
return view('kurir.dashboard', compact('totalOrders', 'ordersProcessing', 'ordersCompleted', 'locations', 'estimateSalary'));
}
public function updateLocation(Request $request)
{
$request->validate([
'order_id' => 'required|exists:orders,id',
'kurir_id' => 'required|exists:users,id',
'latitude' => 'required|numeric',
'longitude' => 'required|numeric',
]);
Location::create([
'user_id' => $request->kurir_id,
'latitude' => $request->latitude,
'longitude' => $request->longitude,
'order_id' => $request->order_id
]);
return response()->json(['message' => 'Lokasi terkini berhasil dikirim']);
}
}