diff --git a/app/Http/Controllers/User/UserTransactionController.php b/app/Http/Controllers/User/UserTransactionController.php index 3103e8a..930e2e4 100644 --- a/app/Http/Controllers/User/UserTransactionController.php +++ b/app/Http/Controllers/User/UserTransactionController.php @@ -6,14 +6,11 @@ use App\Models\Transaction; use App\Models\TransactionDescription; use App\Http\Controllers\Controller; use App\Models\Contact; -use App\Models\Refund; -use App\Models\RefundDescription; use App\Models\Setting; use Illuminate\Http\Request; use App\Models\TransactionUser; use App\Models\User; use Carbon\Carbon; -use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; @@ -169,9 +166,7 @@ class UserTransactionController extends Controller 'callbacks' => [ 'finish' => route('user-transaction.index.pembeli'), ], - 'enabled_payments' => [ - 'credit_card', 'gopay', 'shopeepay' - ], + 'enabled_payments' => ['credit_card', 'gopay', 'shopeepay'], 'expiry' => [ 'start_time' => $now->format('Y-m-d H:i:s P'), 'unit' => 'days', @@ -183,7 +178,7 @@ class UserTransactionController extends Controller $token = $snap_token; $status = 'created'; - try{ + try { DB::beginTransaction(); $query = Transaction::create([ @@ -231,7 +226,7 @@ class UserTransactionController extends Controller 'status' => true, 'message' => 'Berhasil menambahkan transaksi. Silahkan lakukan pembayaran.', ]); - }catch(Throwable $e){ + } catch (Throwable $e) { DB::rollBack(); Log::error($e->getMessage()); @@ -245,10 +240,13 @@ class UserTransactionController extends Controller public function acceptTransaction($id) { - $query = Transaction::where('id', $id)->update([ - 'status' => 'process', - ]); - if ($query) { + try { + DB::beginTransaction(); + + Transaction::where('id', $id)->update([ + 'status' => 'process', + ]); + TransactionDescription::create([ 'transaction_id' => $id, 'status' => 'process', @@ -258,11 +256,17 @@ class UserTransactionController extends Controller 'deskripsi' => 'Transaksi telah diterima oleh ' . Auth::user()->nama_depan, ]); + DB::commit(); + return response()->json([ 'status' => true, 'message' => 'Transaksi telah diterima. Siapkan pesanan untuk dikirim ke penjual.', ]); - } else { + } catch (Throwable $e) { + DB::rollBack(); + + Log::error($e->getMessage()); + return response()->json([ 'status' => false, 'message' => 'Gagal update status karena kesalahan server.', @@ -272,10 +276,13 @@ class UserTransactionController extends Controller public function sendingOrder($id) { - $query = Transaction::where('id', $id)->update([ - 'status' => 'sending', - ]); - if ($query) { + try { + DB::beginTransaction(); + + Transaction::where('id', $id)->update([ + 'status' => 'sending', + ]); + TransactionDescription::create([ 'transaction_id' => $id, 'status' => 'sending', @@ -285,11 +292,17 @@ class UserTransactionController extends Controller 'deskripsi' => 'Pesanan telah dikirim oleh ' . Auth::user()->nama_depan . ' dan sedang dalam perjalanan menuju pembeli.', ]); + DB::commit(); + return response()->json([ 'status' => true, 'message' => 'Pesanan sedang dikirim dan menuju pembeli.', ]); - } else { + } catch (Throwable $e) { + DB::rollBack(); + + Log::error($e->getMessage()); + return response()->json([ 'status' => false, 'message' => 'Gagal update status karena kesalahan server.', @@ -299,10 +312,13 @@ class UserTransactionController extends Controller public function sentOrder($id) { - $query = Transaction::where('id', $id)->update([ - 'status' => 'sended', - ]); - if ($query) { + try { + DB::beginTransaction(); + + Transaction::where('id', $id)->update([ + 'status' => 'sended', + ]); + TransactionDescription::create([ 'transaction_id' => $id, 'status' => 'sended', @@ -312,11 +328,17 @@ class UserTransactionController extends Controller 'deskripsi' => 'Pesanan telah sampai di tempat pembeli.', ]); + DB::commit(); + return response()->json([ 'status' => true, 'message' => 'Pesanan telah sampai di tempat pembeli.', ]); - } else { + } catch (Throwable $e) { + DB::rollBack(); + + Log::error($e->getMessage()); + return response()->json([ 'status' => false, 'message' => 'Gagal update status karena kesalahan server.', @@ -326,24 +348,33 @@ class UserTransactionController extends Controller public function finishTransaction($id) { - $query = Transaction::where('id', $id)->update([ - 'status' => 'finished', - ]); - if ($query) { + try { + DB::beginTransaction(); + + Transaction::where('id', $id)->update([ + 'status' => 'finished', + ]); + TransactionDescription::create([ 'transaction_id' => $id, - 'status' => 'sended', + 'status' => 'finished', 'background' => 'bg-buyer', 'user' => Auth::user()->email, 'judul' => 'fas fa-check', - 'deskripsi' => 'Pesanan telah sampai di tempat pembeli.', + 'deskripsi' => 'Pesanan telah diselesaikan oleh '.auth()->user()->nama_depan.'.', ]); + DB::commit(); + return response()->json([ 'status' => true, - 'message' => 'Pesanan telah sampai di tempat pembeli.', + 'message' => 'Pesanan telah diselesaikan oleh '.auth()->user()->nama_depan.'.', ]); - } else { + } catch (Throwable $e) { + DB::rollBack(); + + Log::error($e->getMessage()); + return response()->json([ 'status' => false, 'message' => 'Gagal update status karena kesalahan server.', @@ -362,57 +393,46 @@ class UserTransactionController extends Controller $payment = Trans::status($id); $result = json_decode(json_encode($payment), true); - if (in_array($result['status_code'], ['200', '201', '202'])) { - $query = Transaction::where('id', $id)->update([ - 'currency' => $result['currency'], - 'merchant_id' => $result['merchant_id'], - 'metode_pembayaran' => $result['payment_type'], - 'tanggal_transaksi' => $result['transaction_time'], - 'signature_key' => $result['signature_key'], - 'status' => $result['transaction_status'], - 'fraud_status' => $result['fraud_status'], - ]); - if ($query) { - if ($result['transaction_status'] == 'pending') { - TransactionDescription::create([ - 'transaction_id' => $id, - 'status' => $result['transaction_status'], - 'user' => Auth::user()->email, - 'judul' => 'fas fa-clock', - 'status_code' => $result['status_code'], - 'background' => 'bg-buyer', - 'deskripsi' => 'Pembayaran ditunda.', - ]); - return response()->json([ - 'status' => true, - 'message' => 'Transaksi ditunda. Silahkan bayar nanti selama dalam waktu batas pembayaran.', - ]); - } else { - TransactionDescription::create([ - 'transaction_id' => $id, - 'status' => $result['transaction_status'], - 'user' => Auth::user()->email, - 'judul' => 'fas fa-plus', - 'status_code' => $result['status_code'], - 'background' => 'bg-buyer', - 'deskripsi' => Auth::user()->nama_depan . ' telah sukses melakukan pembayaran. Transaksi diteruskan ke penjual.', - ]); - return response()->json([ - 'status' => true, - 'message' => 'Pembayaran sukses.', - ]); - } - } else { + if ($result['status_code'] == '200') { + try { + DB::beginTransaction(); + + Transaction::where('id', $id)->update([ + 'currency' => $result['currency'], + 'merchant_id' => $result['merchant_id'], + 'metode_pembayaran' => $result['payment_type'], + 'tanggal_transaksi' => $result['transaction_time'], + 'signature_key' => $result['signature_key'], + 'status' => $result['transaction_status'], + 'fraud_status' => $result['fraud_status'], + ]); + + TransactionDescription::create([ + 'transaction_id' => $id, + 'status' => $result['transaction_status'], + 'user' => Auth::user()->email, + 'judul' => 'fas fa-check', + 'status_code' => $result['status_code'], + 'background' => 'bg-buyer', + 'deskripsi' => Auth::user()->nama_depan . ' telah sukses melakukan pembayaran. Transaksi diteruskan ke penjual.', + ]); + + DB::rollBack(); + + return response()->json([ + 'status' => true, + 'message' => 'Pembayaran sukses.', + ]); + } catch (Throwable $e) { + DB::rollBack(); + + Log::error($e->getMessage()); + return response()->json([ 'status' => false, 'message' => 'Transaksi pembayaran gagal.', ]); } - } elseif (in_array($result['status_code'], ['400', '401', '402', '403', '404', '405', '406', '407', '408', '409', '410', '411', '412', '413'])) { - return response()->json([ - 'status' => false, - 'message' => 'Terjadi kesalahan di server.', - ]); } else { return response()->json([ 'status' => false, @@ -426,17 +446,18 @@ class UserTransactionController extends Controller // Membuat objek Google Translate $translator = new GoogleTranslate(); - // Mengatur bahasa sumber (Inggris) dan bahasa target (Indonesia) $translator->setSource('en'); $translator->setTarget('id'); - $transaction = Transaction::where('id', $id)->first(); + $cancel = json_decode(json_encode(Trans::cancel($id)), true); + if ($cancel['status_code'] == '200') { + try { + DB::beginTransaction(); + + Transaction::where('id', $id)->update([ + 'status' => 'cancel', + ]); - if ($transaction->status == 'created') { - $query = Transaction::where('id', $id)->update([ - 'status' => 'cancel', - ]); - if ($query) { TransactionDescription::create([ 'transcation_id' => $id, 'status' => 'cancel', @@ -446,53 +467,31 @@ class UserTransactionController extends Controller 'deskripsi' => 'Transaksi dibatalkan', ]); + DB::commit(); + return response()->json([ 'status' => true, 'message' => 'Transaksi berhasil dibatal', ]); - } else { + } catch (Throwable $e) { + DB::rollBack(); + + Log::error($e->getMessage()); + return response()->json([ 'status' => false, 'message' => 'Transaksi gagal dibatalkan', ]); } } else { - $cancel = json_decode(json_encode(Trans::cancel($id)), true); - if ($cancel['status_code'] == '200') { - $query = Transaction::where('id', $id)->update([ - 'status' => $cancel['transaction_status'], - ]); - if ($query) { - TransactionDescription::create([ - 'transaction_id' => $id, - 'status' => $cancel['transaction_status'], - 'user' => Auth::user()->email, - 'judul' => 'fas fa-exclamation', - 'status_code' => $cancel['status_code'], - 'background' => 'bg-buyer', - 'deskripsi' => $translator->translate($cancel['status_message']), - ]); - - return response()->json([ - 'status' => true, - 'message' => $translator->translate($cancel['status_message']), - ]); - } else { - return response()->json([ - 'status' => false, - 'message' => $translator->translate($cancel['status_message']), - ]); - } - } elseif ($cancel['status_code'] == '412') { - return response()->json([ - 'status' => false, - 'message' => $translator->translate($cancel['status_message']), - ]); - } + return response()->json([ + 'status' => false, + 'message' => $translator->translate($cancel['status_message']), + ]); } } - public function complainTransaction($id) + public function complaintTransaction($id) { return view('user.refund.new-refund', compact('id')); } diff --git a/public/assets/js/page/modules-datatables.js b/public/assets/js/page/modules-datatables.js index 8db18c9..cb2bb12 100644 --- a/public/assets/js/page/modules-datatables.js +++ b/public/assets/js/page/modules-datatables.js @@ -52,7 +52,7 @@ $("#table-2").dataTable({ // Transaksi pembeli $("#table-3").dataTable({ - columnDefs: [{ sortable: false, targets: [6] }], + columnDefs: [{ sortable: false, targets: [7] }], searchable: true, }); diff --git a/resources/views/User/transaction/Pembeli/index.blade.php b/resources/views/User/transaction/Pembeli/index.blade.php index c3d5f74..3d3c0a6 100644 --- a/resources/views/User/transaction/Pembeli/index.blade.php +++ b/resources/views/User/transaction/Pembeli/index.blade.php @@ -37,6 +37,7 @@ #