63 lines
2.0 KiB
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']);
|
|
}
|
|
|
|
} |