diff --git a/app/Http/Controllers/API/Contact/ContactApiController.php b/app/Http/Controllers/API/Contact/ContactApiController.php
new file mode 100644
index 0000000..3a71ae0
--- /dev/null
+++ b/app/Http/Controllers/API/Contact/ContactApiController.php
@@ -0,0 +1,11 @@
+middleware('auth:api', ['except' => ['login', 'register', 'hai']]);
+ }
+
+ /**
+ * Get a JWT via given credentials.
+ *
+ * @return \Illuminate\Http\JsonResponse
+ */
+ public function login(Request $request)
+ {
+ // $credentials = $request->validate(
+ // [
+ // 'email' => ['required', 'email'],
+ // 'password' => ['required', 'min:8'],
+ // ],
+ // [
+ // 'email.required' => 'Alamat email wajib diisi.',
+ // 'email.email' => 'Alamat email harus berformat valid.',
+ // 'password.required' => 'Password wajib diisi.',
+ // 'password.min' => 'Password harus memiliki panjang minimal 8 karakter.',
+ // ],
+ // );
+
+ // $credentials = $request->only('email', 'password');
+
+ // if (!$token = Auth::attempt($credentials)) {
+ // return response()->json(['error' => 'Unauthorized', 'message' => $credentials ], 401);
+ // }
+
+ // // return $this->respondWithToken($token);
+ // return response()->json([
+ // 'token' => $token
+ // ]);
+
+ $credentials = request(['email', 'password']);
+
+ if (!($token = Auth::guard('api')->attempt($credentials))) {
+ return response()->json(['error' => 'Unauthorized'], 401);
+ }
+
+ return $this->respondWithToken($token);
+ }
+
+ /**
+ * Get the authenticated User.
+ *
+ * @return \Illuminate\Http\JsonResponse
+ */
+ public function me()
+ {
+ $token = JWTAuth::getToken();
+ return response()->json(JWTAuth::user($token));
+ }
+
+ public function test(Request $request)
+ {
+ return response()->json([
+ 'message' => 'Hello from API',
+ 'data' => $request->input('data'),
+ ]);
+ }
+
+ /**
+ * Log the user out (Invalidate the token).
+ *
+ * @return \Illuminate\Http\JsonResponse
+ */
+ public function logout()
+ {
+ auth()->logout();
+
+ return response()->json(['message' => 'Successfully logged out']);
+ }
+
+ /**
+ * Refresh a token.
+ *
+ * @return \Illuminate\Http\JsonResponse
+ */
+ public function refresh()
+ {
+ return $this->respondWithToken(Auth::refresh());
+ }
+
+ /**
+ * Get the token array structure.
+ *
+ * @param string $token
+ *
+ * @return \Illuminate\Http\JsonResponse
+ */
+ protected function respondWithToken($token)
+ {
+ return response()->json([
+ 'access_token' => $token,
+ 'token_type' => 'bearer',
+ 'expires_in' => JWTFactory::getTTL() * 60,
+ ]);
+ }
+
+ public function register(Request $request)
+ {
+ $nama_depan = $request->input('nama_depan');
+ $nama_belakang = $request->input('nama_belakang');
+ $tanggal_lahir = $request->input('tanggal_lahir');
+ $new_password = $request->input('new_password');
+ $nik = $request->input('nik');
+ $email = $request->input('new_email');
+ $nohp = $request->input('nohp');
+ $alamat = $request->input('alamat');
+ $foto_ktp = '';
+ $foto_wajah = '';
+ $persentase_kemiripan = 0;
+ $gender = $request->input('gender');
+ $kode_kelurahan = $request->input('village_code');
+
+ // $ktpBase64 = $request->input('ktp');
+ // $wajahBase64 = $request->input('wajah');
+
+ // if ($ktpBase64 && $wajahBase64) {
+ // // Konversi string Base64 ke file gambar
+ // $ktpFile = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $ktpBase64));
+ // $wajahFile = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $wajahBase64));
+
+ // $foto_ktp = 'Foto-KTP-' . $nama_depan . '-' . $nama_belakang . '.jpg';
+ // $foto_wajah = 'Foto-Wajah-' . $nama_depan . '-' . $nama_belakang . '.jpg';
+
+ // file_put_contents(public_path('storage/foto-ktp/' . $foto_ktp), $ktpFile);
+ // file_put_contents(public_path('storage/foto-wajah/' . $foto_wajah), $wajahFile);
+ // }
+
+ if ($request->hasFile('ktp') && $request->hasFile('wajah')) {
+ $fileKtp = $request->file('ktp');
+ $fileWajah = $request->file('wajah');
+ $foto_ktp = $nama_depan.'-'.$nama_belakang. '.' . $fileKtp->getClientOriginalExtension();
+ $foto_wajah = $nama_depan.'-'.$nama_belakang. '.' . $fileWajah->getClientOriginalExtension();
+ $pathKtp = 'foto-ktp/' . $foto_ktp;
+ $pathWajah = 'foto-wajah/' . $foto_wajah;
+
+ Storage::disk('public')->put($pathKtp, file_get_contents($fileKtp));
+ Storage::disk('public')->put($pathWajah, file_get_contents($fileWajah));
+ }
+
+ //OCR
+ try {
+ // $fotoKTP = public_path('storage/foto-ktp/' . $foto_ktp);
+
+ // $image = Image::make($fotoKTP);
+
+ // $image->greyscale(); // Convert to grayscale
+ // $image->contrast(10); // Increase contrast, adjust the value as needed
+
+ // $preprocessedfotoKTP = public_path('storage/preprocessed/preprocessed_image.jpg');
+ // $image->save($preprocessedfotoKTP);
+
+ // $result = (new TesseractOCR($preprocessedfotoKTP))->run();
+
+ // (5) Normalize
+
+ // $lines = explode("\n", $result);
+ // $namaOCR = '';
+ // $nikOCR = '';
+ // $nikInputan = $nik;
+ // $namaInputan = $nama_depan . ' ' . $nama_belakang;
+
+ // foreach ($lines as $line) {
+ // // Mencari NIK
+ // if (strpos($line, $nikInputan) !== false) {
+ // $nikOCR = preg_replace('/[^0-9]/', '', $line);
+ // }
+
+ // // Mencari nama
+ // if (strpos($line, $namaInputan) !== false) {
+ // $namaOCR = trim(substr($line, strpos($line, ':') + 1));
+ // }
+ // }
+
+ //Selesai
+
+ // $persentase_kemiripan = (similar_text($nikInputan, $nikOCR, $percent) + similar_text($namaOCR, $namaOCR, $percent)) / 2;
+ // $status = 'Progress';
+
+ // if (similar_text($nikInputan, $nikOCR, $percent) >= 70 && similar_text($namaOCR, $namaOCR, $percent) >= 70) {
+ // $status = 'Progress';
+ // } else {
+ // $status = 'Progress';
+ // }
+
+ DB::beginTransaction();
+
+ $password = Hash::make($new_password);
+
+ User::create([
+ 'nama_depan' => $nama_depan,
+ 'nama_belakang' => $nama_belakang,
+ 'tanggal_lahir' => $tanggal_lahir,
+ 'email' => $email,
+ 'email_verified_at' => now(),
+ 'password' => $password,
+ 'nohp' => $nohp,
+ 'nik' => $nik,
+ 'alamat' => $alamat,
+ 'foto_ktp' => $foto_ktp,
+ 'foto_wajah' => $foto_wajah,
+ 'persentase_kemiripan' => $persentase_kemiripan,
+ 'gender' => $gender,
+ 'kode_kelurahan' => $kode_kelurahan,
+ 'remember_token' => Str::random(10),
+ ]);
+
+ DB::commit();
+
+ return response()->json([
+ 'status' => true,
+ 'message' => 'Akun anda sudah terdaftar dan butuh verifikasi hingga maksimal 1 hari kerja',
+ ]);
+ } catch (\Exception $e) {
+ DB::rollBack();
+
+ Log::error($e->getMessage());
+
+ return response()->json([
+ 'status' => false,
+ 'message' => 'Akun anda gagal terdaftar. Coba lagi!',
+ ]);
+ }
+ }
+}
diff --git a/app/Http/Controllers/API/LoginApiController.php b/app/Http/Controllers/API/LoginApiController.php
deleted file mode 100644
index bdff943..0000000
--- a/app/Http/Controllers/API/LoginApiController.php
+++ /dev/null
@@ -1,127 +0,0 @@
-middleware('auth:api', ['except' => ['login', 'register', 'hai']]);
- }
-
- /**
- * Get a JWT via given credentials.
- *
- * @return \Illuminate\Http\JsonResponse
- */
- public function login()
- {
- // $request->validate([
- // 'email' => 'required|string|email',
- // 'password' => 'required',
- // ]);
-
- $credentials = request(['email', 'password']);
-
- if (!($token = auth()->attempt($credentials))) {
- return response()->json(['error' => 'Unauthorized'], 401);
- }
-
- return $this->respondWithToken($token);
- }
-
- /**
- * Get the authenticated User.
- *
- * @return \Illuminate\Http\JsonResponse
- */
- public function me()
- {
- return response()->json(Auth::user());
- }
-
- public function hai()
- {
- return response()->json([
- 'message' => 'Hello from API',
- ]);
- }
-
- /**
- * Log the user out (Invalidate the token).
- *
- * @return \Illuminate\Http\JsonResponse
- */
- public function logout()
- {
- auth()->logout();
-
- return response()->json(['message' => 'Successfully logged out']);
- }
-
- /**
- * Refresh a token.
- *
- * @return \Illuminate\Http\JsonResponse
- */
- public function refresh()
- {
- return $this->respondWithToken(Auth::refresh());
- }
-
- /**
- * Get the token array structure.
- *
- * @param string $token
- *
- * @return \Illuminate\Http\JsonResponse
- */
- protected function respondWithToken($token)
- {
- return response()->json([
- 'user' => auth()->user(),
- 'access_token' => $token,
- 'token_type' => 'bearer',
- 'expires_in' => Auth::factory()->getTTL() * 60,
- // 'status' => auth()->check(),
- ]);
- }
-
- public function register(Request $request)
- {
- $request->validate([
- 'name' => 'required|string|max:255',
- 'email' => 'required|string|email|unique:users',
- 'password' => 'required|string|min:8',
- ]);
-
- $user = User::create([
- 'name' => $request->name,
- 'email' => $request->email,
- 'password' => Hash::make($request->password),
- ]);
-
- return response()->json([
- 'message' => 'User created successfully',
- 'user' => $user,
- ]);
- }
-
- // public function check()
- // {
- // return response()->json([
- // 'status' => auth()->check(),
- // ]);
- // }
-}
diff --git a/app/Http/Controllers/API/Pembeli/PembeliApiController.php b/app/Http/Controllers/API/Pembeli/PembeliApiController.php
new file mode 100644
index 0000000..bab4e6e
--- /dev/null
+++ b/app/Http/Controllers/API/Pembeli/PembeliApiController.php
@@ -0,0 +1,11 @@
+ auth()->user()->email,
'judul' => 'fas fa-long-arrow-alt-right',
'background' => 'bg-primary',
- 'deskripsi' => 'Admin telah menolak refund. Transaksi akan diteruskan ke penjual',
+ 'deskripsi' => 'Admin telah menolak refund. Transaksi akan diteruskan ke penjual. Alasan: '.$request->complaint,
]);
DB::commit();
diff --git a/app/Http/Controllers/Admin/AdminSettingController.php b/app/Http/Controllers/Admin/Setting/AdminSettingController.php
similarity index 98%
rename from app/Http/Controllers/Admin/AdminSettingController.php
rename to app/Http/Controllers/Admin/Setting/AdminSettingController.php
index 113c6be..d182fdc 100644
--- a/app/Http/Controllers/Admin/AdminSettingController.php
+++ b/app/Http/Controllers/Admin/Setting/AdminSettingController.php
@@ -1,6 +1,6 @@
auth()->user()->email,
'judul' => 'fa fa-times',
'background' => 'bg-primary',
- 'deskripsi' => 'Admin telah menolak pembayaran karena terindikasi penipuan.',
+ 'deskripsi' => 'Admin telah menolak pembayaran. Alasan: '.$request->compaint,
]);
DB::commit();
diff --git a/app/Http/Controllers/Admin/AdminUserController.php b/app/Http/Controllers/Admin/User/AdminUserController.php
similarity index 97%
rename from app/Http/Controllers/Admin/AdminUserController.php
rename to app/Http/Controllers/Admin/User/AdminUserController.php
index 142cef9..96ea836 100644
--- a/app/Http/Controllers/Admin/AdminUserController.php
+++ b/app/Http/Controllers/Admin/User/AdminUserController.php
@@ -1,6 +1,6 @@
id)->update([
- 'status' => 'Rejected'
+ 'status' => 'Rejected',
+ 'keterangan' => $request->keterangan
]);
DB::commit();
diff --git a/app/Http/Controllers/Login/LoginController.php b/app/Http/Controllers/Login/LoginController.php
index 63e2297..6e58734 100644
--- a/app/Http/Controllers/Login/LoginController.php
+++ b/app/Http/Controllers/Login/LoginController.php
@@ -61,7 +61,7 @@ class LoginController extends Controller
return redirect()->intended('user');
}
} elseif (Auth::user()->status == 'Rejected') {
- Session::flash('message', 'Akun ditolak karena tidak memenuhi persyaratan');
+ Session::flash('message', 'Akun ditolak. Alasan: '.Auth::user()->keterangan);
return redirect()->back();
} else {
Session::flash('message', 'Akun tidak ditemukan atau sedang dalam pengajuan');
@@ -93,7 +93,7 @@ class LoginController extends Controller
public function register(Request $request)
{
- $credentials = $request->validate(
+ $request->validate(
[
'nama_depan' => ['required'],
'nama_belakang' => ['required'],
@@ -281,8 +281,8 @@ class LoginController extends Controller
public function accountStatus(Request $request)
{
- $result = User::where('email', $request->email)->get();
- if ($result->isNotEmpty()) {
+ $result = User::where('email', $request->email)->first();
+ if ($result) {
return response()->json([
'status' => true,
'message' => $result,
@@ -290,7 +290,7 @@ class LoginController extends Controller
} else {
return response()->json([
'status' => false,
- 'message' => $result,
+ 'message' => 'Akun dengan email '.$request->email.' tidak tersedia',
]);
}
}
@@ -417,12 +417,10 @@ class LoginController extends Controller
}
public function invoice(){
- // return view('invoice.export-invoice', [
- // 'transaction' => Transaction::findOrFail('80d9b19b-ba17-4aea-8cad-c3b4661d33bc'),
- // ]);
+ // return view('invoice.export-invoice');
- $transaction = Transaction::findOrFail('80d9b19b-ba17-4aea-8cad-c3b4661d33bc');
- $pdf = Pdf::loadView('invoice.export-invoice',compact('transaction'))->setPaper('A4','portrait');
+ // $transaction = Transaction::findOrFail('80d9b19b-ba17-4aea-8cad-c3b4661d33bc');
+ $pdf = Pdf::loadView('invoice.export-invoice')->setPaper('A4','portrait');
return $pdf->download("invoice-80d9b19b-ba17-4aea-8cad-c3b4661d33b-".uniqid().".pdf");
}
}
diff --git a/app/Http/Controllers/User/UserContactController.php b/app/Http/Controllers/User/Contact/UserContactController.php
similarity index 99%
rename from app/Http/Controllers/User/UserContactController.php
rename to app/Http/Controllers/User/Contact/UserContactController.php
index b6749f1..6ab1866 100644
--- a/app/Http/Controllers/User/UserContactController.php
+++ b/app/Http/Controllers/User/Contact/UserContactController.php
@@ -1,6 +1,6 @@
$this->faker->randomElement(['Progress', 'Finished', 'Rejected']),
'gender' => $this->faker->randomElement(['Laki-laki', 'Perempuan']),
'kode_kelurahan' => '1101012002',
+ 'keterangan' => $this->faker->sentence
];
}
diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php
index a4a879a..1591301 100644
--- a/database/seeders/DatabaseSeeder.php
+++ b/database/seeders/DatabaseSeeder.php
@@ -68,7 +68,8 @@ class DatabaseSeeder extends Seeder
'gender' => $faker->randomElement(['Laki-laki', 'Perempuan']),
'kode_kelurahan' => '1101012002',
'nama_bank' => 'mandiri',
- 'no_rek' => '019809210873'
+ 'no_rek' => '019809210873',
+ 'keterangan' => $faker->sentence()
]);
$user2 = User::factory()->create([
@@ -89,7 +90,8 @@ class DatabaseSeeder extends Seeder
'gender' => $faker->randomElement(['Laki-laki', 'Perempuan']),
'kode_kelurahan' => '1101012002',
'nama_bank' => 'bca',
- 'no_rek' => '01980921'
+ 'no_rek' => '01980921',
+ 'keterangan' => $faker->sentence()
]);
User::factory(100)->create();
diff --git a/resources/views/Admin/refund/detail-refund.blade.php b/resources/views/Admin/refund/detail-refund.blade.php
index 748f345..2cc5813 100644
--- a/resources/views/Admin/refund/detail-refund.blade.php
+++ b/resources/views/Admin/refund/detail-refund.blade.php
@@ -106,12 +106,12 @@
const csrfToken = $('meta[name="csrf-token"]').attr("content");
Swal.fire({
- title: 'Setuju Refund',
- text: 'Apakah anda yakin untuk menyetujui refund ini?',
+ title: 'Terima Refund?',
+ text: 'Apakah anda yakin untuk menerima refund ini?',
icon: 'question',
confirmButtonText: 'Ya, setuju',
showCancelButton: true,
- cancelButtonText: 'Tunggu sebentar.'
+ cancelButtonText: 'Tunggu, lihat detail dahulu'
}).then((result) => {
if (result.isConfirmed) {
Swal.fire({
@@ -142,9 +142,9 @@
text: response.message,
icon: response.status ? 'success' : 'error'
}).then(function() {
- // if (response.status) {
- // location.reload();
- // }
+ if (response.status) {
+ location.reload();
+ }
});
console.log(response);
},
@@ -159,7 +159,7 @@
} else {
Swal.fire({
title: 'Ditunda',
- text: 'Mohon diperiksa dahulu sebelum disetujui',
+ text: 'Mohon diperiksa dahulu sebelum menerima refund',
icon: 'info'
});
}
@@ -171,60 +171,74 @@
const csrfToken = $('meta[name="csrf-token"]').attr("content");
Swal.fire({
- title: 'Tolak Refund',
+ title: 'Tolak Refund?',
text: 'Apakah anda yakin untuk menolak refund ini?',
icon: 'question',
confirmButtonText: 'Ya, setuju',
showCancelButton: true,
- cancelButtonText: 'Tunggu sebentar.'
+ cancelButtonText: 'Tunggu, lihat detail dahulu'
}).then((result) => {
if (result.isConfirmed) {
Swal.fire({
- html: '
Form Anda sedang diproses!
Mohon tunggu...
',
- allowEscapeKey: false,
- allowOutsideClick: false,
- didOpen: () => {
- Swal.showLoading();
- }
- });
+ title: 'Tolak Refund?',
+ text: 'Berikan alasan menolak refund ini'
+ input: 'text',
+ inputPlaceholder: 'Cth. Bukti foto tidak sesuai',
+ confirmButtonText: 'Kirim',
+ showCancelButton: true
+ cancelButtonText: 'Batal'
+ }).then((a) => {
+ if (a.isConfirmed) {
+ if (a.value) {
+ $.ajaxSetup({
+ headers: {
+ 'X-CSRF-TOKEN': csrfToken,
+ }
+ });
- $.ajaxSetup({
- headers: {
- 'X-CSRF-TOKEN': csrfToken,
- }
- });
-
- $.ajax({
- url: "{{ route('admin-refund.deny') }}",
- type: 'PUT',
- data: {
- id: id
- },
- success: function(response) {
- Swal.fire({
- title: response.status ? 'Berhasil' :
- 'Gagal',
- text: response.message,
- icon: response.status ? 'success' : 'error'
- }).then(function() {
- if (response.status) {
- location.reload();
- }
- });
- },
- error: function(error) {
- Swal.fire({
- title: 'Gagal',
- text: 'Terjadi kesalahan di error',
- icon: 'error',
- });
+ $.ajax({
+ url: "{{ route('admin-refund.deny') }}",
+ type: 'PUT',
+ data: {
+ id: id,
+ complaint: a.value
+ },
+ success: function(response) {
+ Swal.fire({
+ title: response.status ?
+ 'Berhasil' :
+ 'Gagal',
+ text: response.message,
+ icon: response.status ?
+ 'success' : 'error'
+ }).then(function() {
+ if (response.status) {
+ location.reload();
+ }
+ });
+ },
+ error: function(error) {
+ Swal.fire({
+ title: 'Gagal',
+ text: 'Terjadi kesalahan di error',
+ icon: 'error',
+ });
+ }
+ });
+ } else {
+ Swal.fire({
+ title: 'Peringatan',
+ text: 'Masukkan alasan untuk menolak transaksi ini',
+ icon: 'warning'
+ });
+ }
}
});
} else {
Swal.fire({
- title: 'Ditunda',
- text: 'Mohon diperiksa dahulu sebelum ditolak',
- icon: 'info'
+ title: 'Peringatan',
+ text: 'Mohon diperiksa dahulu sebelum menolak refund',
+ icon: 'warning'
});
}
});
diff --git a/resources/views/Admin/transaction/detail-transaction.blade.php b/resources/views/Admin/transaction/detail-transaction.blade.php
index 8c73140..97fc1b8 100644
--- a/resources/views/Admin/transaction/detail-transaction.blade.php
+++ b/resources/views/Admin/transaction/detail-transaction.blade.php
@@ -187,11 +187,11 @@
const csrfToken = $('meta[name="csrf-token"]').attr('content');
Swal.fire({
- title: 'Terima Transaksi',
+ title: 'Terima Transaksi?',
text: 'Apakah anda yakin untuk menerima transaksi ini?',
icon: 'question',
showCancelButton: true,
- cancelButtonText: 'Tunggu, Lihat sebentar',
+ cancelButtonText: 'Tunggu, lihat detail dahulu',
confirmButtonText: 'Ya, terima transaksi ini'
}).then((result) => {
if (result.isConfirmed) {
@@ -237,6 +237,12 @@
console.log(error);
}
});
+ } else {
+ Swal.fire({
+ title: 'Peringatan',
+ text: 'Periksa dahulu sebelum menerima transaksi',
+ icon: 'warning'
+ });
}
});
});
@@ -246,55 +252,84 @@
const csrfToken = $('meta[name="csrf-token"]').attr('content');
Swal.fire({
- title: 'Tolak Transaksi',
+ title: 'Tolak Transaksi?',
text: 'Apakah anda yakin untuk menolak transaksi ini?',
icon: 'question',
showCancelButton: true,
- cancelButtonText: 'Tunggu, Lihat sebentar',
+ cancelButtonText: 'Tunggu, lihat detail dahulu',
confirmButtonText: 'Ya, tolak transaksi ini'
}).then((result) => {
if (result.isConfirmed) {
Swal.fire({
- html: 'Form Anda sedang diproses!
Mohon tunggu...
',
- allowEscapeKey: false,
- allowOutsideClick: false,
- didOpen: () => {
- Swal.showLoading();
+ title: 'Tolak Transaksi?',
+ text: 'Berikan alasan untuk menolak transaksi ini',
+ input: 'text',
+ inputPlaceholder: 'Cth. terindikasi penipuan.',
+ confirmButtonText: 'Kirim',
+ showCancelButton: true,
+ cancelButtonText: 'Batal'
+ }).then((a) => {
+ if (a.isConfirmed) {
+ if (a.value) {
+ Swal.fire({
+ html: 'Form Anda sedang diproses!
Mohon tunggu...
',
+ allowEscapeKey: false,
+ allowOutsideClick: false,
+ didOpen: () => {
+ Swal.showLoading();
+ }
+ });
+
+ $.ajaxSetup({
+ headers: {
+ 'X-CSRF-TOKEN': csrfToken
+ }
+ });
+
+ $.ajax({
+ url: "{{ route('admin-transaction.deny-transaction') }}",
+ data: {
+ id: id,
+ complaint: a.value
+ },
+ type: 'PUT',
+ success: function(response) {
+ Swal.fire({
+ title: response.status ?
+ 'Berhasil' :
+ 'Gagal',
+ text: response.message,
+ icon: response.status ?
+ 'success' : 'error'
+ }).then(function() {
+ if (response.status) {
+ location.reload();
+ }
+ });
+ },
+ error: function(error) {
+ Swal.fire({
+ title: 'Gagal',
+ text: 'Terjadi kesalahan di server',
+ icon: 'error'
+ });
+ console.log(error);
+ }
+ });
+ } else {
+ Swal.fire({
+ title: 'Peringatan',
+ text: 'Masukkan alasan untuk menolak transaksi.',
+ icon: 'warning'
+ });
+ }
}
});
-
- $.ajaxSetup({
- headers: {
- 'X-CSRF-TOKEN': csrfToken
- }
- });
-
- $.ajax({
- url: "{{ route('admin-transaction.deny-transaction') }}",
- data: {
- id: id
- },
- type: 'PUT',
- success: function(response) {
- Swal.fire({
- title: response.status ? 'Berhasil' :
- 'Gagal',
- text: response.message,
- icon: response.status ? 'success' : 'error'
- }).then(function() {
- if (response.status) {
- location.reload();
- }
- });
- },
- error: function(error) {
- Swal.fire({
- title: 'Gagal',
- text: 'Terjadi kesalahan di server',
- icon: 'error'
- });
- console.log(error);
- }
+ } else {
+ Swal.fire({
+ title: 'Peringatan',
+ text: 'Periksa dahulu sebelum menolak transaksi.',
+ icon: 'warning'
});
}
});
diff --git a/resources/views/Admin/users/detail-user.blade.php b/resources/views/Admin/users/detail-user.blade.php
index 5e129f1..26cbdfc 100644
--- a/resources/views/Admin/users/detail-user.blade.php
+++ b/resources/views/Admin/users/detail-user.blade.php
@@ -31,6 +31,9 @@
Status :
{{ $user->status == 'Finished' ? 'Selesai diverifikasi' : ($user->status == 'Progress' ? 'Sedang diverifikasi' : 'Tolak') }}
+ @if ($user->status == 'Rejected')
+ Keterangan : {{ $user->keterangan }}
+ @endif
NIK
@@ -178,12 +181,12 @@
let id = $(this).data('id');
const csrfToken = $('meta[name="csrf-token"]').attr('content');
Swal.fire({
- title: 'Status Akun',
+ title: 'Terima Akun?',
text: 'Apakah anda yakin menyetujui akun ini?',
icon: 'info',
confirmButtonText: 'Ya, setuju!',
showCancelButton: true,
- cancelButtonText: 'Tidak'
+ cancelButtonText: 'Tunggu, lihat sebentar'
}).then((result) => {
if (result.isConfirmed) {
Swal.fire({
@@ -229,6 +232,12 @@
});
}
});
+ } else {
+ Swal.fire({
+ title: 'Peringatan',
+ text: 'Silahkan periksa dahulu sebelum menerima user',
+ icon: 'warning'
+ });
}
});
});
@@ -237,54 +246,85 @@
let id = $(this).data('id');
const csrfToken = $('meta[name="csrf-token"]').attr('content');
Swal.fire({
- title: 'Status Akun',
+ title: 'Tolak Akun?',
text: 'Apakah anda yakin menolak akun ini?',
icon: 'info',
- confirmButtonText: 'Ya, setuju!',
+ confirmButtonText: 'Ya, tolak!',
showCancelButton: true,
- cancelButtonText: 'Tidak'
+ cancelButtonText: 'Tunggu, lihat sebentar'
}).then((result) => {
if (result.isConfirmed) {
Swal.fire({
- html: '
Form Anda sedang diproses!
Mohon tunggu...
',
- allowEscapeKey: false,
- allowOutsideClick: false,
- didOpen: () => {
- Swal.showLoading();
+ title: 'Tolak Akun?',
+ text: 'Berikan alasan menolak akun ini?',
+ icon: 'question',
+ input: 'text',
+ inputPlaceholder: 'Cth. Data tidak sesuai.',
+ confirmButtonText: 'Kirim',
+ showCancelButton: true,
+ cancelButtonText: 'Batal'
+ }).then((a) => {
+ if (a.isConfirmed) {
+ if (a.value) {
+ Swal.fire({
+ html: '
Form Anda sedang diproses!
Mohon tunggu...
',
+ allowEscapeKey: false,
+ allowOutsideClick: false,
+ didOpen: () => {
+ Swal.showLoading();
+ }
+ });
+
+ $.ajaxSetup({
+ headers: {
+ 'X-CSRF-TOKEN': csrfToken
+ }
+ });
+
+ $.ajax({
+ url: "{{ route('admin-user.deny') }}",
+ data: {
+ id: id,
+ keterangan: a.value
+ },
+ type: 'PUT',
+ success: function(response) {
+ Swal.fire({
+ title: response.status ?
+ 'Berhasil!' :
+ 'Gagal!',
+ text: response.message,
+ icon: response.status ?
+ 'success' : 'error',
+ confirmButtonText: 'OK'
+ }).then(function() {
+ location.reload();
+ });
+ },
+ error: function(error) {
+ Swal.fire({
+ title: 'Gagal!',
+ text: 'Gagal mengubah status akun, karena ' +
+ error,
+ icon: 'info'
+ });
+ }
+ });
+ } else {
+ Swal.fire({
+ title: 'Peringatan',
+ text: 'Masukkan alasan menolak user ini.',
+ icon: 'warning'
+ });
+ }
}
});
- $.ajaxSetup({
- headers: {
- 'X-CSRF-TOKEN': csrfToken
- }
- });
-
- $.ajax({
- url: "{{ route('admin-user.deny') }}",
- data: {
- id: id
- }
- type: 'PUT',
- success: function(response) {
- Swal.fire({
- title: response.status ? 'Berhasil!' :
- 'Gagal!',
- text: response.message,
- icon: response.status ? 'success' : 'error',
- confirmButtonText: 'OK'
- }).then(function() {
- location.reload();
- });
- },
- error: function(error) {
- Swal.fire({
- title: 'Gagal!',
- text: 'Gagal mengubah status akun, karena ' +
- error,
- icon: 'info'
- });
- }
+ } else {
+ Swal.fire({
+ title: 'Peringatan',
+ text: 'Silahkan periksa dahulu sebelum menolak user',
+ icon: 'warning'
});
}
});
diff --git a/resources/views/Admin/users/index.blade.php b/resources/views/Admin/users/index.blade.php
index 9357a94..df10532 100644
--- a/resources/views/Admin/users/index.blade.php
+++ b/resources/views/Admin/users/index.blade.php
@@ -53,7 +53,7 @@
render: function(data, type, row) {
var foto = data;
return `
-
`;
},
@@ -108,64 +108,6 @@
className: 'text-center'
}],
});
-
- // Hapus data
- $('#table-user').on('click', '#deleteUser', function() {
- const csrfToken = $('meta[name="csrf-token"]').attr('content');
- let dataId = $(this).data("id");
-
- Swal.fire({
- title: 'Hapus data',
- text: 'Apakah yakin ingin menghapus data user ini?',
- icon: 'question',
- confirmButtonText: 'Ya, hapus!',
- showDenyButton: true,
- denyButtonText: 'Tidak, jangan hapus!',
- }).then((result) => {
- if (result.isConfirmed) {
- $.ajaxSetup({
- headers: {
- 'X-CSRF-TOKEN': csrfToken
- }
- });
-
- $.ajax({
- url: "{{ route('admin-user.destroy') }}"
- data: {
- id: dataId
- },
- type: 'DELETE',
- processData: false,
- contentType: false,
- success: function(response) {
- Swal.fire({
- title: response.status ? 'Berhasil!' :
- 'Gagal!',
- text: response.message,
- icon: response.status ? 'success' : 'error',
- confirmButtonText: 'OK'
- }).then(function() {
- location.reload();
- });
- },
- error: function(error) {
- Swal.fire({
- title: 'Gagal!',
- text: 'Tidak ada data yang dihapus, karena ' +
- error,
- icon: 'info'
- });
- }
- });
- } else if (result.isDenied) {
- Swal.fire({
- title: 'Gagal!',
- text: 'Tidak ada data yang dihapus',
- icon: 'info'
- });
- }
- });
- });
});
@endsection
diff --git a/resources/views/User/index.blade.php b/resources/views/User/index.blade.php
index a91abb9..b7d7a61 100644
--- a/resources/views/User/index.blade.php
+++ b/resources/views/User/index.blade.php
@@ -114,56 +114,10 @@
INCOME
-
+
-
-
- {{--
-
-
-
-
-
-
- Order ID |
- Customer |
- Seller |
- Total |
- Due Date |
- Status |
- Image |
-
- @foreach ($refundUserss as $HistoryRefundUser)
-
-
- {{ $HistoryRefundUser['orderId'] }} |
-
- {{ $HistoryRefundUser['Customer'] }} |
-
- {{ $HistoryRefundUser['seller'] }} |
-
- {{ $HistoryRefundUser['Total'] }} |
- {{ $HistoryRefundUser['dueDate'] }} |
-
- Diterima
- |
-
- {{ $HistoryRefundUser['uploadBukti'] }} |
-
-
- |
- @endforeach
-
-
-
-
-
--}}
-
diff --git a/resources/views/User/transaction/Pembeli/index.blade.php b/resources/views/User/transaction/Pembeli/index.blade.php
index abe4f1a..d760a94 100644
--- a/resources/views/User/transaction/Pembeli/index.blade.php
+++ b/resources/views/User/transaction/Pembeli/index.blade.php
@@ -421,7 +421,7 @@
text: 'Apakah anda yakin untuk membatalkan transaksi?',
icon: 'question',
showCancelButton: true,
- cancelButtonText: 'Tidak.',
+ cancelButtonText: 'Tunggu, lihat detail dahulu.',
confirmButtonText: 'Ya, batalkan transaksi.'
}).then((result) => {
if (result.isConfirmed) {
@@ -484,13 +484,16 @@
});
} else {
Swal.fire({
- title: 'Gagal',
+ title: 'Peringatan',
text: 'Masukan alasan untuk membatalkan transaksi',
- icon: 'error'
+ icon: 'warning'
});
}
}
});
+ } else {
+ location.href = "{{ route('user-transaction.show', ':id') }}".replace(
+ ':id', id);
}
});
});
diff --git a/resources/views/User/transaction/penjual/index.blade.php b/resources/views/User/transaction/penjual/index.blade.php
index a90f022..9f2bfe0 100644
--- a/resources/views/User/transaction/penjual/index.blade.php
+++ b/resources/views/User/transaction/penjual/index.blade.php
@@ -236,44 +236,59 @@
const csrfToken = $('meta[name="csrf-token"]').attr('content');
Swal.fire({
- html: 'Form Anda sedang diproses!
Mohon tunggu...
',
- allowEscapeKey: false,
- allowOutsideClick: false,
- didOpen: () => {
- Swal.showLoading();
- }
- });
-
- $.ajaxSetup({
- headers: {
- 'X-CSRF-TOKEN': csrfToken
- }
- });
-
- $.ajax({
- url: "{{ route('user-penjual.accept') }}",
- type: 'PUT',
- data: {
- id: id,
- },
- success: function(response) {
+ title: 'Terima Transaksi?',
+ text: 'Apakah anda yakin untuk menerima transaksi ini?',
+ icon: 'question',
+ showCancelButton: true,
+ cancelButtonText: "Tunggu, lihat detail dahulu",
+ confirmButtonText: 'Ya, proses transaksi'
+ }).then((result) => {
+ if (result.isConfirmed) {
Swal.fire({
- title: response.status ? 'Berhasil' : 'Gagal',
- text: response.message,
- icon: response.status ? 'success' : 'error',
- }).then(function() {
- Swal.close();
- if (response.status) {
- listPenjual.ajax.reload();
+ html: 'Form Anda sedang diproses!
Mohon tunggu...
',
+ allowEscapeKey: false,
+ allowOutsideClick: false,
+ didOpen: () => {
+ Swal.showLoading();
}
});
- },
- error: function(error) {
- Swal.fire({
- title: 'Gagal',
- text: 'Pemrosesan transaksi gagal',
- icon: 'error'
+
+ $.ajaxSetup({
+ headers: {
+ 'X-CSRF-TOKEN': csrfToken
+ }
});
+
+ $.ajax({
+ url: "{{ route('user-penjual.accept') }}",
+ type: 'PUT',
+ data: {
+ id: id,
+ },
+ success: function(response) {
+ Swal.fire({
+ title: response.status ? 'Berhasil' :
+ 'Gagal',
+ text: response.message,
+ icon: response.status ? 'success' : 'error',
+ }).then(function() {
+ Swal.close();
+ if (response.status) {
+ listPenjual.ajax.reload();
+ }
+ });
+ },
+ error: function(error) {
+ Swal.fire({
+ title: 'Gagal',
+ text: 'Pemrosesan transaksi gagal',
+ icon: 'error'
+ });
+ }
+ });
+ } else {
+ location.href = "{{ route('user-transaction.show', ':id') }}".replace(':id',
+ id);
}
});
});
@@ -349,15 +364,13 @@
});
} else {
Swal.fire({
- title: 'Gagal',
+ title: 'Peringatan',
text: 'Masukan alasan untuk menolak transaksi',
- icon: 'error'
+ icon: 'warning'
});
}
}
});
-
-
} else {
location.href = "{{ route('user-transaction.show', ':id') }}".replace(':id',
id);
diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php
index 549b1d8..a8586e0 100644
--- a/resources/views/index.blade.php
+++ b/resources/views/index.blade.php
@@ -457,7 +457,7 @@
},
type: 'GET',
success: function(response) {
- let status = response.message[0].status
+ let status = response.message.status
if (response.status) {
Swal.fire({
title: 'Akun ditemukan',
@@ -465,7 +465,8 @@
'Finished' ? ' siap digunakan' : (
status == 'Progress' ?
' masih proses verifikasi' :
- ' ditolak')),
+ ' ditolak. Alasan: ' + response
+ .message.keterangan)),
icon: (status == 'Finished' ? 'success' : (
status == 'Progress' ? 'info' :
'error')),
@@ -475,8 +476,7 @@
} else {
Swal.fire({
title: 'Gagal',
- text: 'Akun dengen email ' + email +
- ' tidak tersedia',
+ text: response.message,
icon: 'error',
confirmButtonText: 'OK'
});
diff --git a/routes/api.php b/routes/api.php
index ab5de87..243086e 100644
--- a/routes/api.php
+++ b/routes/api.php
@@ -1,15 +1,8 @@
group(function(){
- Route::middleware(['admin'])->group(function(){
- Route::prefix('admin')->group(function(){
- // aprove atau deny dan hapus user
- Route::controller(AdminUserController::class)->group(function(){
-
- });
-
- // approve atau deny dan hapus refund
- Route::controller(AdminRefundController::class)->group(function(){
-
- });
-
- Route::controller(AdminSettingController::class)->group(function(){
-
- });
- });
- });
Route::prefix('profile')->group(function(){
Route::controller(ProfileController::class)->group(function(){
diff --git a/routes/web.php b/routes/web.php
index 73bfd60..32880ca 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -3,27 +3,30 @@
use App\Models\Refunds;
use App\Models\Transactions;
use Illuminate\Support\Facades\Route;
+
//Admin
-use App\Http\Controllers\Login\LoginController;
-use App\Http\Controllers\Admin\AdminUserController;
-use App\Http\Controllers\User\UserRefundController;
+use App\Http\Controllers\Admin\User\AdminUserController;
+use App\Http\Controllers\Admin\Setting\AdminSettingController;
+use App\Http\Controllers\Admin\Dashboard\AdminDashboardController;
+use App\Http\Controllers\Admin\Transaction\AdminTransactionController;
+use App\Http\Controllers\Admin\Refund\AdminRefundController;
+
//Login
-use App\Http\Controllers\User\UserContactController;
-use App\Http\Controllers\Admin\AdminRefundController;
+use App\Http\Controllers\Login\LoginController;
+
//User
-use App\Http\Controllers\Admin\AdminSettingController;
-use App\Http\Controllers\User\UserDashboardController;
-use App\Http\Controllers\Admin\AdminDashboardController;
-use App\Http\Controllers\User\UserTransactionController;
-use App\Http\Controllers\Admin\AdminTransactionController;
+use App\Http\Controllers\User\Contact\UserContactController;
+use App\Http\Controllers\User\Refund\UserRefundController;
+use App\Http\Controllers\User\Dashboard\UserDashboardController;
+use App\Http\Controllers\User\Transaction\UserTransactionController;
+use App\Http\Controllers\User\Pembeli\PembeliController;
+use App\Http\Controllers\User\Penjual\PenjualController;
//Profile
use App\Http\Controllers\Profile\ProfileController;
//Invoice
use App\Http\Controllers\Invoice\InvoiceController;
-use App\Http\Controllers\User\PembeliController;
-use App\Http\Controllers\User\PenjualController;
// use Illuminate\Foundation\Auth\User;
@@ -80,7 +83,7 @@ Route::controller(LoginController::class)->group(function(){
Route::post('kode-verifikasi','sendVerificationCode')->name('kirim-kode');
Route::get('ocr','getOcr');
Route::get('email','email');
- Route::get('test-invoice','invoice');
+ Route::get('test','invoice');
});
// admin dan user