828 lines
32 KiB
PHP
828 lines
32 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\API;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Middleware\ApiKetAuthenticate;
|
|
use App\Models\Detail;
|
|
use App\Models\Items;
|
|
use App\Models\Pickup;
|
|
use App\Models\User;
|
|
use Carbon\Carbon;
|
|
use Illuminate\Support\Arr;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Intervention\Image\Facades\Image;
|
|
use Illuminate\Http\Request;
|
|
|
|
class ApiPickup extends Controller
|
|
{
|
|
public function __construct()
|
|
{
|
|
$this->middleware(ApiKetAuthenticate::class);
|
|
}
|
|
|
|
function listPenjemputan(Request $request)
|
|
{
|
|
$token = $request->bearerToken();
|
|
$user = User::where('token', $token)->first();
|
|
|
|
if ($user->id_role != 1) {
|
|
return $this->sendMassage('Token tidak valid', 401, false);
|
|
}
|
|
|
|
// Tambahkan where pickup.status_penjemputan = 3 atau 4
|
|
$pickup = Pickup::leftJoin('user', 'user.id_user', '=', 'pickup.id_customer')
|
|
->where('pickup.id_pegawai', '=', $user->id_user)
|
|
->where(function ($query) {
|
|
$query->orWhere('pickup.status_penjemputan', '3')
|
|
->orWhere('pickup.status_penjemputan', '4');
|
|
})
|
|
->get()->toArray();
|
|
|
|
$result = User::leftJoin('pickup', 'user.id_user', '=', 'pickup.id_customer')
|
|
->where(function ($query) {
|
|
$query->orWhere('pickup.status_penjemputan', 3)
|
|
->orWhere('pickup.status_penjemputan', 4);
|
|
})
|
|
->get()
|
|
->map(function ($item) {
|
|
$pickup = Detail::where('kode_detail', '=', $item->kode_pu)->get();
|
|
return [
|
|
'user' => $item->toArray(),
|
|
'pickup' => $pickup->toArray(),
|
|
];
|
|
});
|
|
|
|
|
|
return $this->sendMassage($result, 200, true);
|
|
}
|
|
|
|
function listKonfirmasiCustomer(Request $request)
|
|
{
|
|
$token = $request->bearerToken();
|
|
$user = User::where('token', $token)->first();
|
|
|
|
if ($user->id_role != 1) {
|
|
return $this->sendMassage('Token tidak valid', 401, false);
|
|
}
|
|
|
|
// Tambahkan where pickup.status_penjemputan = 4 atau 5
|
|
// $pickup = Pickup::leftJoin('user', 'user.id_user', '=', 'pickup.id_customer')
|
|
// ->where('pickup.id_pegawai', '=', $user->id_user)
|
|
// ->whereIn('pickup.status_penjemputan', [4, 5])
|
|
// ->get();
|
|
|
|
// $cekPegawaiNotFree = Pickup::leftJoin('user', 'user.id_user', '=', 'pickup.id_customer')
|
|
// ->where('pickup.id_customer', '=', $user->id_user)
|
|
// // ->where('user.id_role', 1)
|
|
// ->where(function ($query) {
|
|
// $query->orWhere('pickup.status_penjemputan', 5)
|
|
// ->orWhere('pickup.status_penjemputan', 6);
|
|
// })
|
|
// ->get()
|
|
// // ->pluck('id_user')
|
|
// ->toArray();
|
|
|
|
$result = User::leftJoin('pickup', 'user.id_user', '=', 'pickup.id_customer')
|
|
->where(function ($query) {
|
|
$query->orWhere('pickup.status_penjemputan', 5)
|
|
->orWhere('pickup.status_penjemputan', 6);
|
|
})
|
|
->get()
|
|
->map(function ($item) {
|
|
$pickup = Detail::where('kode_detail', '=', $item->kode_pu)->get();
|
|
return [
|
|
'user' => $item->toArray(),
|
|
'pickup' => $pickup->toArray(),
|
|
];
|
|
});
|
|
|
|
return $this->sendMassage($result, 200, true);
|
|
}
|
|
|
|
function listNegosiasi(Request $request)
|
|
{
|
|
$token = $request->bearerToken();
|
|
$user = User::where('token', $token)->first();
|
|
|
|
if ($user->id_role != 2) {
|
|
return $this->sendMassage('Token tidak valid', 401, false);
|
|
}
|
|
|
|
// Tambahkan where pickup.status_penjemputan = 2
|
|
|
|
// DB::raw('DATE_FORMAT(detail_transaksi.created_at, "%Y-%m-%d %H:%i:%s") as tanggal_transaksi'),
|
|
//masukkan formula di atas ke code di bawah
|
|
|
|
|
|
// $pickup = Pickup::with('checkboxOptions')->join('user', 'user.id_user', '=', 'pickup.id_customer')
|
|
// ->where('pickup.id_pegawai', '=', $user->id_user)
|
|
// ->where('pickup.status_penjemputan', 1)
|
|
// ->get();
|
|
|
|
$pickups = Pickup::with(['checkboxOptions', 'customer'])
|
|
->where('pickup.id_pegawai', $user->id_user)
|
|
->where('pickup.status_penjemputan', 1)
|
|
->get();
|
|
|
|
$result = $pickups->map(function ($pickup) {
|
|
return [
|
|
"kode_pu" => $pickup->kode_pu,
|
|
"id_customer" => $pickup->id_customer,
|
|
"id_pegawai" => $pickup->id_pegawai,
|
|
"status_penjemputan" => $pickup->status_penjemputan,
|
|
"status" => $pickup->status,
|
|
"bukti_pengiriman" => $pickup->bukti_pengiriman,
|
|
"image_path" => $pickup->image_path,
|
|
"image_bukti" => $pickup->image_bukti,
|
|
"metode_pembayaran" => $pickup->metode_pembayaran,
|
|
"keterangan" => $pickup->keterangan,
|
|
"merk_kendaraan" => $pickup->merk_kendaraan,
|
|
"plat_nomor" => $pickup->plat_nomor,
|
|
"biaya" => $pickup->biaya,
|
|
"penambahan_biaya" => $pickup->penambahan_biaya,
|
|
"detail_biaya" => $pickup->detail_biaya,
|
|
"created_at" => Carbon::parse($pickup->created_at)->format('Y-m-d H:i'),
|
|
"updated_at" => Carbon::parse($pickup->updated_at)->format('Y-m-d H:i'),
|
|
"id_user" => $pickup->user->id_user,
|
|
"nama" => $pickup->user->nama,
|
|
"no_telepon" => $pickup->user->no_telepon,
|
|
"token" => $pickup->user->token,
|
|
"alamat" => $pickup->user->alamat,
|
|
"longitude" => $pickup->user->longitude,
|
|
"latitude" => $pickup->user->latitude,
|
|
"email" => $pickup->user->email,
|
|
"password" => $pickup->user->password,
|
|
"id_role" => $pickup->user->id_role,
|
|
"foto" => $pickup->user->foto,
|
|
"checkbox_options" => $pickup->checkboxOptions->map(function ($option) {
|
|
return [
|
|
"id" => $option->id,
|
|
"name" => $option->name,
|
|
"price" => $option->price,
|
|
"handling_fee" => $option->handling_fee,
|
|
"selected" => $option->selected,
|
|
"kode_pu" => $option->kode_pu,
|
|
"created_at" => Carbon::parse($option->created_at)->format('Y-m-d H:i'),
|
|
"updated_at" => Carbon::parse($option->updated_at)->format('Y-m-d H:i'),
|
|
];
|
|
}),
|
|
];
|
|
});
|
|
|
|
|
|
return $this->sendMassage($result, 200, true);
|
|
}
|
|
|
|
function listProses(Request $request)
|
|
{
|
|
$token = $request->bearerToken();
|
|
$user = User::where('token', $token)->first();
|
|
|
|
if ($user->id_role != 2) {
|
|
return $this->sendMassage('Token tidak valid', 401, false);
|
|
}
|
|
|
|
// Tambahkan where pickup.status_penjemputan = 3 atau 4
|
|
$pickup = Pickup::leftJoin('user', 'user.id_user', '=', 'pickup.id_customer')
|
|
->where('pickup.id_pegawai', '=', $user->id_user)
|
|
->whereIn('pickup.status_penjemputan', [3, 4])
|
|
->get();
|
|
|
|
$pickups = Pickup::with(['checkboxOptions', 'customer'])
|
|
->where('pickup.id_pegawai', $user->id_user)
|
|
// ->where('user.id_role', 1)
|
|
->where(function ($query) {
|
|
$query->orWhere('pickup.status_penjemputan', 3)
|
|
->orWhere('pickup.status_penjemputan', 4);
|
|
})
|
|
->get();
|
|
// ->pluck('id_user')
|
|
// ->toArray();
|
|
|
|
$result = $pickups->map(function ($pickup) {
|
|
return [
|
|
"kode_pu" => $pickup->kode_pu,
|
|
"id_customer" => $pickup->id_customer,
|
|
"id_pegawai" => $pickup->id_pegawai,
|
|
"status_penjemputan" => $pickup->status_penjemputan,
|
|
"status" => $pickup->status,
|
|
"bukti_pengiriman" => $pickup->bukti_pengiriman,
|
|
"image_path" => $pickup->image_path,
|
|
"image_bukti" => $pickup->image_bukti,
|
|
"metode_pembayaran" => $pickup->metode_pembayaran,
|
|
"keterangan" => $pickup->keterangan,
|
|
"merk_kendaraan" => $pickup->merk_kendaraan,
|
|
"plat_nomor" => $pickup->plat_nomor,
|
|
"biaya" => $pickup->biaya,
|
|
"penambahan_biaya" => $pickup->penambahan_biaya,
|
|
"detail_biaya" => $pickup->detail_biaya,
|
|
"created_at" => Carbon::parse($pickup->created_at)->format('Y-m-d H:i'),
|
|
"updated_at" => Carbon::parse($pickup->updated_at)->format('Y-m-d H:i'),
|
|
"id_user" => $pickup->user->id_user,
|
|
"nama" => $pickup->user->nama,
|
|
"no_telepon" => $pickup->user->no_telepon,
|
|
"token" => $pickup->user->token,
|
|
"alamat" => $pickup->user->alamat,
|
|
"longitude" => $pickup->user->longitude,
|
|
"latitude" => $pickup->user->latitude,
|
|
"email" => $pickup->user->email,
|
|
"password" => $pickup->user->password,
|
|
"id_role" => $pickup->user->id_role,
|
|
"foto" => $pickup->user->foto,
|
|
"checkbox_options" => $pickup->checkboxOptions->map(function ($option) {
|
|
return [
|
|
"id" => $option->id,
|
|
"name" => $option->name,
|
|
"price" => $option->price,
|
|
"handling_fee" => $option->handling_fee,
|
|
"selected" => $option->selected,
|
|
"kode_pu" => $option->kode_pu,
|
|
"created_at" => Carbon::parse($option->created_at)->format('Y-m-d H:i'),
|
|
"updated_at" => Carbon::parse($option->updated_at)->format('Y-m-d H:i'),
|
|
];
|
|
}),
|
|
];
|
|
});
|
|
|
|
return $this->sendMassage($result, 200, true);
|
|
}
|
|
|
|
function listKonfirmasi(Request $request)
|
|
{
|
|
$token = $request->bearerToken();
|
|
$user = User::where('token', $token)->first();
|
|
|
|
if ($user->id_role != 2) {
|
|
return $this->sendMassage('Token tidak valid', 401, false);
|
|
}
|
|
|
|
// Tambahkan where pickup.status_penjemputan = 5
|
|
$pickup = Pickup::leftJoin('user', 'user.id_user', '=', 'pickup.id_customer')
|
|
->where('pickup.id_pegawai', '=', $user->id_user)
|
|
->where('pickup.status_penjemputan', 5)
|
|
->get([
|
|
'pickup.*',
|
|
'user.*',
|
|
DB::raw('DATE_FORMAT(pickup.created_at, "%Y-%m-%d %H:%i") as created_at'),
|
|
DB::raw('DATE_FORMAT(pickup.updated_at, "%Y-%m-%d %H:%i") as updated_at')
|
|
]);
|
|
|
|
return $this->sendMassage($pickup, 200, true);
|
|
}
|
|
|
|
function listDetail(Request $request)
|
|
{
|
|
$token = $request->bearerToken();
|
|
$user = User::where('token', $token)->first();
|
|
|
|
if ($user->id_role != 1) {
|
|
return $this->sendMassage('Token tidak valid', 401, false);
|
|
}
|
|
$getKodePickup = $request->kode_pu;
|
|
|
|
$pickup = Detail::where('kode_detail', $getKodePickup)->get();
|
|
|
|
return $this->sendMassage($pickup, 200, true);
|
|
}
|
|
|
|
function sendStruk(Request $request)
|
|
{
|
|
$token = $request->bearerToken();
|
|
$user = User::where('token', $token)->first();
|
|
|
|
if ($user->id_role != 2) {
|
|
return $this->sendMassage('Token tidak valid', 401, false);
|
|
}
|
|
|
|
$getKodePickup = $request->kode_pu;
|
|
|
|
$cekPickup = Pickup::where('kode_pu', $getKodePickup)->where('id_pegawai', $user->id_user)->first();
|
|
|
|
if (!$cekPickup) {
|
|
return $this->sendMassage("Pickup Not Available", 400, false);
|
|
}
|
|
|
|
// $status = "1";
|
|
// $cekStatusPickup = $cekPickup->where('status_penjemputan', $status)
|
|
// ->first();
|
|
|
|
// if (!$cekStatusPickup) {
|
|
// return $this->sendMassage("Pickup Not Available", 400, true);
|
|
// }
|
|
|
|
$inputBiaya = $request->biaya;
|
|
$inputPenambahanBiaya = $request->penambahan_biaya;
|
|
$inputDetailBiaya = $request->detail_biaya;
|
|
// $inputKeterangan = $request->keterangan;
|
|
|
|
try {
|
|
Pickup::where('kode_pu', $getKodePickup)
|
|
->update([
|
|
"status_penjemputan" => "2",
|
|
// "keterangan" => $inputKeterangan,
|
|
"biaya" => $inputBiaya,
|
|
"penambahan_biaya" => $inputPenambahanBiaya,
|
|
"detail_biaya" => $inputDetailBiaya,
|
|
]);
|
|
|
|
return $this->sendMassage("Success Change Status", 200, true);
|
|
} catch (\Exception $e) {
|
|
return $this->sendMassage("Failed Change Status", 400, true);
|
|
}
|
|
}
|
|
public function updateService(Request $request)
|
|
{
|
|
$token = $request->bearerToken();
|
|
$user = User::where('token', $token)->first();
|
|
|
|
if ($user->id_role != 2) {
|
|
return $this->sendMassage('Token tidak valid', 401, false);
|
|
}
|
|
|
|
$getKodePickup = $request->kodePickup;
|
|
|
|
$cekPickup = Pickup::where('kode_pu', $getKodePickup)->where('id_pegawai', $user->id_user)->first();
|
|
|
|
if (!$cekPickup) {
|
|
return $this->sendMassage("Pickup Not Available", 400, false);
|
|
}
|
|
|
|
$status = "4";
|
|
$cekStatusPickup = $cekPickup->where('status_penjemputan', $status)->first();
|
|
|
|
if (!$cekStatusPickup) {
|
|
return $this->sendMassage("Pickup Not Available", 400, true);
|
|
}
|
|
|
|
if ($request->hasFile('image')) {
|
|
$image = $request->file('image');
|
|
$imagePath = 'gambar/' . $image->getClientOriginalName();
|
|
|
|
// Mengompresi gambar menggunakan Intervention Image
|
|
$compressedImage = Image::make($image->getRealPath());
|
|
$compressedImage->resize(800, 800, function ($constraint) {
|
|
$constraint->aspectRatio();
|
|
$constraint->upsize();
|
|
})->save($imagePath, 75); // Simpan gambar dengan kualitas 75%
|
|
|
|
} else {
|
|
return $this->sendMassage("No image file uploaded", 400, false);
|
|
}
|
|
|
|
try {
|
|
$Pickup = new Detail();
|
|
$Pickup->kode_detail = $getKodePickup;
|
|
$Pickup->image = $imagePath;
|
|
$Pickup->keterangan = $request->keterangan;
|
|
$Pickup->save();
|
|
|
|
return $this->sendMassage("Success Change Status", 200, true);
|
|
} catch (\Exception $e) {
|
|
return $this->sendMassage("Failed Change Status", 400, true);
|
|
}
|
|
}
|
|
|
|
function serviceDone(Request $request)
|
|
{
|
|
$token = $request->bearerToken();
|
|
$user = User::where('token', $token)->first();
|
|
|
|
if ($user->id_role != 2) {
|
|
return $this->sendMassage('Token tidak valid', 401, false);
|
|
}
|
|
|
|
$getKodePickup = $request->kode_pu;
|
|
|
|
$cekPickup = Pickup::where('kode_pu', $getKodePickup)->where('id_pegawai', $user->id_user)->first();
|
|
|
|
if (!$cekPickup) {
|
|
return $this->sendMassage("Pickup Not Available", 400, false);
|
|
}
|
|
|
|
$status = "4";
|
|
$cekStatusPickup = $cekPickup->where('status_penjemputan', $status)
|
|
->first();
|
|
|
|
if (!$cekStatusPickup) {
|
|
return $this->sendMassage("Pickup Not Available", 400, true);
|
|
}
|
|
|
|
try {
|
|
Pickup::where('kode_pu', $getKodePickup)
|
|
->update(["status_penjemputan" => "5"]);
|
|
|
|
return $this->sendMassage("Success Change Status", 200, true);
|
|
} catch (\Exception $e) {
|
|
return $this->sendMassage("Failed Change Status", 400, true);
|
|
}
|
|
}
|
|
|
|
|
|
function submitPickup(Request $request)
|
|
{
|
|
$token = $request->bearerToken();
|
|
$user = User::where('token', $token)->first();
|
|
|
|
if ($user->id_role != 2) {
|
|
return $this->sendMassage('Token tidak valid', 401, false);
|
|
}
|
|
|
|
$getKodePickup = $request->kodePickup;
|
|
|
|
$cekPickup = Pickup::where('kode_pu', $getKodePickup)->where('id_pegawai', $user->id_user)->first();
|
|
|
|
if (!$cekPickup) {
|
|
return $this->sendMassage("Pickup Not Available", 400, false);
|
|
}
|
|
|
|
// $status = "3";
|
|
// $cekStatusPickup = $cekPickup->where('status_penjemputan', $status)
|
|
// ->first();
|
|
|
|
// if (!$cekStatusPickup) {
|
|
// return $this->sendMassage("Pickup Not Available", 400, true);
|
|
// }
|
|
|
|
try {
|
|
Pickup::where('kode_pu', $getKodePickup)
|
|
// ->update(["status_penjemputan" => "4", "bukti_pengiriman" => $cekPickup->kode_pu]);
|
|
->update(["status_penjemputan" => "3"]);
|
|
|
|
return $this->sendMassage("Success Change Status", 200, true);
|
|
} catch (\Exception $e) {
|
|
return $this->sendMassage("Failed Change Status", 400, true);
|
|
}
|
|
}
|
|
|
|
function kirimStruk(Request $request)
|
|
{
|
|
$token = $request->bearerToken();
|
|
$user = User::where('token', $token)->first();
|
|
|
|
if ($user->id_role != 1) {
|
|
return $this->sendMassage('Token tidak valid', 401, false);
|
|
}
|
|
|
|
$getKodePickup = $request->kode_pu;
|
|
|
|
$cekPickup = Pickup::where('kode_pu', $getKodePickup)->where('id_customer', $user->id_user)->first();
|
|
|
|
if (!$cekPickup) {
|
|
return $this->sendMassage("Pickup Not Available", 400, false);
|
|
}
|
|
|
|
$status = "5";
|
|
$cekStatusPickup = $cekPickup->where('status_penjemputan', $status)
|
|
->first();
|
|
|
|
if (!$cekStatusPickup) {
|
|
return $this->sendMassage("Pickup Not Available", 400, true);
|
|
}
|
|
|
|
if ($request->hasFile('image')) {
|
|
$image = $request->file('image');
|
|
$imagePath = 'gambar/' . $image->getClientOriginalName();
|
|
|
|
// Mengompresi gambar menggunakan Intervention Image
|
|
$compressedImage = Image::make($image->getRealPath());
|
|
$compressedImage->resize(800, 800, function ($constraint) {
|
|
$constraint->aspectRatio();
|
|
$constraint->upsize();
|
|
})->save($imagePath, 75); // Simpan gambar dengan kualitas 75%
|
|
|
|
} else {
|
|
return $this->sendMassage("No image file uploaded", 400, false);
|
|
}
|
|
|
|
try {
|
|
if ($cekPickup->bukti_pengiriman == "booking") {
|
|
if ($request->metode_pembayaran == "QRIS") {
|
|
Pickup::where('kode_pu', $getKodePickup)
|
|
->update(["status" => "lunas", "image_bukti" => $imagePath]);
|
|
|
|
return $this->sendMassage("Success Change Status", 200, true);
|
|
} else {
|
|
Pickup::where('kode_pu', $getKodePickup)
|
|
->update(["status" => "lunas", "image_bukti" => $imagePath]);
|
|
|
|
return $this->sendMassage("Success Change Status", 200, true);
|
|
}
|
|
} else {
|
|
if ($request->metode_pembayaran == "QRIS") {
|
|
Pickup::where('kode_pu', $getKodePickup)
|
|
// ->update(["status_penjemputan" => "3", "metode_pembayaran" => $request->metode_pembayaran, "image_bukti" => $imagePath]);
|
|
->update(["status" => "lunas", "image_bukti" => $imagePath]);
|
|
|
|
return $this->sendMassage("Success Change Status", 200, true);
|
|
} else {
|
|
Pickup::where('kode_pu', $getKodePickup)
|
|
// ->update(["status_penjemputan" => "3", "metode_pembayaran" => $request->metode_pembayaran]);
|
|
->update(["status" => "lunas", "image_bukti" => $imagePath]);
|
|
|
|
return $this->sendMassage("Success Change Status", 200, true);
|
|
}
|
|
}
|
|
} catch (\Exception $e) {
|
|
return $this->sendMassage("Failed Change Status", 400, true);
|
|
}
|
|
}
|
|
|
|
function terimaStruk(Request $request)
|
|
{
|
|
$token = $request->bearerToken();
|
|
$user = User::where('token', $token)->first();
|
|
|
|
if ($user->id_role != 1) {
|
|
return $this->sendMassage('Token tidak valid', 401, false);
|
|
}
|
|
|
|
$getKodePickup = $request->kode_pu;
|
|
|
|
$cekPickup = Pickup::where('kode_pu', $getKodePickup)->where('id_customer', $user->id_user)->first();
|
|
|
|
if (!$cekPickup) {
|
|
return $this->sendMassage("Pickup Not Available", 400, false);
|
|
}
|
|
|
|
$status = "2";
|
|
$cekStatusPickup = $cekPickup->where('status_penjemputan', $status)
|
|
->first();
|
|
|
|
if (!$cekStatusPickup) {
|
|
return $this->sendMassage("Pickup Not Available", 400, true);
|
|
}
|
|
|
|
try {
|
|
if ($cekPickup->bukti_pengiriman == "booking") {
|
|
if ($request->metode_pembayaran == "QRIS") {
|
|
Pickup::where('kode_pu', $getKodePickup)
|
|
->update(["status_penjemputan" => "4", "metode_pembayaran" => $request->metode_pembayaran]);
|
|
|
|
return $this->sendMassage("Success Change Status", 200, true);
|
|
} else {
|
|
Pickup::where('kode_pu', $getKodePickup)
|
|
->update(["status_penjemputan" => "4", "metode_pembayaran" => $request->metode_pembayaran]);
|
|
|
|
return $this->sendMassage("Success Change Status", 200, true);
|
|
}
|
|
} else {
|
|
if ($request->metode_pembayaran == "QRIS") {
|
|
Pickup::where('kode_pu', $getKodePickup)
|
|
// ->update(["status_penjemputan" => "3", "metode_pembayaran" => $request->metode_pembayaran, "image_bukti" => $imagePath]);
|
|
->update(["status_penjemputan" => "4", "biaya" => $request->harga, "Penambahan_biaya" => $request->customHarga, "detail_biaya" => $request->totalHarga, "metode_pembayaran" => $request->metode_pembayaran]);
|
|
|
|
return $this->sendMassage("Success Change Status", 200, true);
|
|
} else {
|
|
Pickup::where('kode_pu', $getKodePickup)
|
|
// ->update(["status_penjemputan" => "3", "metode_pembayaran" => $request->metode_pembayaran]);
|
|
->update(["status_penjemputan" => "4", "biaya" => $request->harga, "Penambahan_biaya" => $request->customHarga, "detail_biaya" => $request->totalHarga, "metode_pembayaran" => $request->metode_pembayaran]);
|
|
|
|
return $this->sendMassage("Success Change Status", 200, true);
|
|
}
|
|
}
|
|
} catch (\Exception $e) {
|
|
return $this->sendMassage("Failed Change Status", 400, true);
|
|
}
|
|
}
|
|
|
|
function konfirmasiPickup(Request $request)
|
|
{
|
|
|
|
if ($request->kodeBukti == "cancel") {
|
|
Pickup::where('kode_pu', $request->kodePickup)
|
|
->update([
|
|
"status_penjemputan" => "6",
|
|
"bukti_pengiriman" => "cancel",
|
|
"image_path" => "cancel",
|
|
"keterangan" => "cancel",
|
|
]);
|
|
|
|
return $this->sendMassage('Pembatalan Di setujui', 200, true);
|
|
}
|
|
|
|
$token = $request->bearerToken();
|
|
$user = User::where('token', $token)->first();
|
|
|
|
if ($user->id_role != 2) {
|
|
return $this->sendMassage('Token tidak valid', 401, false);
|
|
}
|
|
|
|
$getKodePickup = $request->kodePickup;
|
|
|
|
$cekPickup = Pickup::where('kode_pu', $getKodePickup)->where('id_pegawai', $user->id_user)->first();
|
|
|
|
if (!$cekPickup) {
|
|
return $this->sendMassage("Pickup Not Available", 400, false);
|
|
}
|
|
|
|
$status = "5";
|
|
$cekStatusPickup = $cekPickup->where('status_penjemputan', $status)
|
|
->first();
|
|
|
|
if (!$cekStatusPickup) {
|
|
return $this->sendMassage("Pickup Not Available", 400, true);
|
|
}
|
|
|
|
if ($request->hasFile('image')) {
|
|
$imagePath = $request->file('image')->move('gambar', $request->file('image')->getClientOriginalName());
|
|
|
|
// Lanjutkan dengan proses Anda
|
|
} else {
|
|
return $this->sendMassage("No image file uploaded", 400, false);
|
|
}
|
|
|
|
|
|
|
|
try {
|
|
Pickup::where('kode_pu', $getKodePickup)
|
|
->update([
|
|
"status_penjemputan" => "6",
|
|
"bukti_pengiriman" => $request->keterangan,
|
|
"image_path" => $imagePath,
|
|
]);
|
|
|
|
return $this->sendMassage("Success Change Status", 200, true);
|
|
} catch (\Exception $e) {
|
|
return $this->sendMassage("Failed Change Status", 400, true);
|
|
}
|
|
}
|
|
|
|
function submitReqPickup(Request $request)
|
|
{
|
|
$token = $request->bearerToken();
|
|
$user = User::where('token', $token)->first();
|
|
|
|
if ($user->id_role != 1) {
|
|
return $this->sendMassage('Token tidak valid', 401, false);
|
|
}
|
|
$userLongitude = $user->longitude;
|
|
$userLatitude = $user->latitude;
|
|
|
|
$inputLongitude = $request->longitude;
|
|
$inputLatitude = $request->latitude;
|
|
|
|
if ($inputLongitude !== null && $inputLatitude !== null) {
|
|
if ($userLongitude != $inputLongitude || $userLatitude != $inputLatitude) {
|
|
$user->longitude = $inputLongitude;
|
|
$user->latitude = $inputLatitude;
|
|
$user->save();
|
|
}
|
|
}
|
|
|
|
if (isset($request->merk_kendaraan) && isset($request->plat_nomor) && isset($request->keterangan)) {
|
|
$Pickup = new Pickup();
|
|
$Pickup->kode_pu = $request->kode_pu;
|
|
$Pickup->id_customer = $user->id_user;
|
|
$Pickup->id_pegawai = "PEG001";
|
|
$Pickup->status_penjemputan = "1";
|
|
$Pickup->bukti_pengiriman = "Pemesanan";
|
|
$Pickup->status = "belum_bayar";
|
|
$Pickup->merk_kendaraan = $request->merk_kendaraan;
|
|
$Pickup->plat_nomor = $request->plat_nomor;
|
|
$Pickup->keterangan = $request->keterangan;
|
|
$Pickup->save();
|
|
|
|
$services = [
|
|
['name' => 'Filter Oli Bosch', 'price' => 150000, 'handling_fee' => 10000],
|
|
['name' => 'Busi Denso', 'price' => 35000, 'handling_fee' => 5000],
|
|
['name' => 'Kampas Rem Aisin', 'price' => 300000, 'handling_fee' => 15000],
|
|
['name' => 'Disc Brake TRW', 'price' => 750000, 'handling_fee' => 20000],
|
|
['name' => 'Filter Udara Sakura', 'price' => 100000, 'handling_fee' => 7000],
|
|
['name' => 'Kampas Kopling Federal Parts', 'price' => 500000, 'handling_fee' => 18000],
|
|
['name' => 'Water Pump GMB', 'price' => 450000, 'handling_fee' => 16000],
|
|
['name' => 'Shock Absorber KYB', 'price' => 800000, 'handling_fee' => 22000],
|
|
['name' => 'Aki Yuasa', 'price' => 1200000, 'handling_fee' => 30000],
|
|
['name' => 'Ban Dunlop', 'price' => 900000, 'handling_fee' => 25000],
|
|
['name' => 'Oli Mesin Motul', 'price' => 250000, 'handling_fee' => 12000],
|
|
];
|
|
|
|
foreach ($services as $service) {
|
|
$item = new Items();
|
|
$item->name = $service['name'];
|
|
$item->price = $service['price']; // Store original price
|
|
$item->handling_fee = $service['handling_fee']; // Store handling fee separately
|
|
$item->selected = 0; // Default value
|
|
$item->kode_pu = $request->kode_pu;
|
|
$item->save();
|
|
}
|
|
|
|
return $this->sendMassage("Mohon Tunggu, Kendaraan anda akan segera di jemput", 200, true);
|
|
} else {
|
|
return $this->sendMassage("Lengkapi data kendaraan", 400, false);
|
|
}
|
|
}
|
|
|
|
function submitReqBooking(Request $request)
|
|
{
|
|
$token = $request->bearerToken();
|
|
$user = User::where('token', $token)->first();
|
|
|
|
if ($user->id_role != 1) {
|
|
return $this->sendMassage('Token tidak valid', 401, false);
|
|
}
|
|
|
|
if (isset($request->merk_kendaraan) && isset($request->plat_nomor) && isset($request->keterangan)) {
|
|
$Pickup = new Pickup();
|
|
$Pickup->kode_pu = $request->kode_pu;
|
|
$Pickup->id_customer = $user->id_user;
|
|
$Pickup->id_pegawai = "PEG001";
|
|
$Pickup->status_penjemputan = "1";
|
|
$Pickup->status = "belum_bayar";
|
|
$Pickup->bukti_pengiriman = "booking";
|
|
$Pickup->merk_kendaraan = $request->merk_kendaraan;
|
|
$Pickup->plat_nomor = $request->plat_nomor;
|
|
$Pickup->keterangan = $request->keterangan;
|
|
$Pickup->save();
|
|
|
|
$services = [
|
|
['name' => 'Filter Oli Bosch', 'price' => 150000, 'handling_fee' => 10000],
|
|
['name' => 'Busi Denso', 'price' => 35000, 'handling_fee' => 5000],
|
|
['name' => 'Kampas Rem Aisin', 'price' => 300000, 'handling_fee' => 15000],
|
|
['name' => 'Disc Brake TRW', 'price' => 750000, 'handling_fee' => 20000],
|
|
['name' => 'Filter Udara Sakura', 'price' => 100000, 'handling_fee' => 7000],
|
|
['name' => 'Kampas Kopling Federal Parts', 'price' => 500000, 'handling_fee' => 18000],
|
|
['name' => 'Water Pump GMB', 'price' => 450000, 'handling_fee' => 16000],
|
|
['name' => 'Shock Absorber KYB', 'price' => 800000, 'handling_fee' => 22000],
|
|
['name' => 'Aki Yuasa', 'price' => 1200000, 'handling_fee' => 30000],
|
|
['name' => 'Ban Dunlop', 'price' => 900000, 'handling_fee' => 25000],
|
|
['name' => 'Oli Mesin Motul', 'price' => 250000, 'handling_fee' => 12000],
|
|
];
|
|
|
|
foreach ($services as $service) {
|
|
$item = new Items();
|
|
$item->name = $service['name'];
|
|
$item->price = $service['price']; // Store original price
|
|
$item->handling_fee = $service['handling_fee']; // Store handling fee separately
|
|
$item->selected = 0; // Default value
|
|
$item->kode_pu = $request->kode_pu;
|
|
$item->save();
|
|
}
|
|
return $this->sendMassage("Booking antrian berhasil", 200, true);
|
|
} else {
|
|
return $this->sendMassage("Lengkapi data kendaraan", 400, false);
|
|
}
|
|
}
|
|
|
|
public function listDashboard(Request $request)
|
|
{
|
|
$token = $request->bearerToken();
|
|
$user = User::where('token', $token)->first();
|
|
|
|
if ($user->id_role != 1) {
|
|
return $this->sendMassage('Token tidak valid', 401, false);
|
|
}
|
|
|
|
$pickup = Pickup::where('id_customer', $user->id_user)
|
|
->where('status_penjemputan', '1')
|
|
->orderBy('created_at', 'desc')
|
|
->get();
|
|
|
|
$cekPegawaiNotFree = Pickup::with([
|
|
'checkboxOptions' => function ($query) {
|
|
$query->where('selected', 1);
|
|
}
|
|
])
|
|
->leftJoin('user', 'user.id_user', '=', 'pickup.id_customer')
|
|
->where('pickup.id_customer', '=', $user->id_user)
|
|
->where(function ($query) {
|
|
$query->orWhere('pickup.status_penjemputan', 1)
|
|
->orWhere('pickup.status_penjemputan', 2);
|
|
})
|
|
->get();
|
|
|
|
$formattedPickup = $cekPegawaiNotFree->map(function ($item) {
|
|
return [
|
|
'kode_pu' => $item->kode_pu,
|
|
'nama_customer' => $item->nama,
|
|
'id_customer' => $item->id_customer,
|
|
'id_pegawai' => $item->id_pegawai,
|
|
'status_penjemputan' => $item->status_penjemputan,
|
|
'bukti_pengiriman' => $item->bukti_pengiriman,
|
|
'image_path' => asset($item->image_path), // Menggunakan asset untuk menghasilkan URL gambar
|
|
'keterangan' => $item->keterangan,
|
|
'biaya' => $item->biaya,
|
|
'penambahan_biaya' => $item->penambahan_biaya,
|
|
'detail_biaya' => $item->detail_biaya,
|
|
'created_at' => $item->created_at,
|
|
'updated_at' => $item->updated_at,
|
|
'checkboxOptions' => $item->checkboxOptions
|
|
];
|
|
});
|
|
|
|
return $this->sendMassage($formattedPickup, 200, true);
|
|
}
|
|
|
|
|
|
|
|
// Function Massage
|
|
public function sendMassage($text, $kode, $status)
|
|
{
|
|
return response()->json([
|
|
'data' => $text,
|
|
'code' => $kode,
|
|
'status' => $status
|
|
], $kode);
|
|
}
|
|
}
|